Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vfpbV-005JeA-1Y for pgsql-hackers@arkaria.postgresql.org; Wed, 14 Jan 2026 01:23:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vfpbT-007E7p-2P for pgsql-hackers@arkaria.postgresql.org; Wed, 14 Jan 2026 01:23:19 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vfpbT-007E7g-0p for pgsql-hackers@lists.postgresql.org; Wed, 14 Jan 2026 01:23:19 +0000 Received: from mail-lf1-x136.google.com ([2a00:1450:4864:20::136]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vfpbQ-000KTy-2p for pgsql-hackers@lists.postgresql.org; Wed, 14 Jan 2026 01:23:18 +0000 Received: by mail-lf1-x136.google.com with SMTP id 2adb3069b0e04-59b6f59c4f5so9248961e87.3 for ; Tue, 13 Jan 2026 17:23:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768353795; x=1768958595; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=85FmrMstWCmGgGwVpwczfkShMmaQjAwM8eeztSHeuhs=; b=OAhHuL4Xh1U3VYePl3wUgLRjmtYqgsQGbrow8/Nc+hX2tAVtPeMoCWdO8UIwskw5Be LvcTjG6dZ2ZuvtxJ2grcPu9IVYasMEJBSZ8k8zzB0JLtj2njXts/JTOtxDZA2147etA5 crCNWYWYC1qMmT2zSkc1Wzk3zTL5ZYpn7SVuVtz3HvX+ncJpdh8z+4KdrDUMoPZhLCzP BQCO8Ie4ubS896uf9BcYL4d7N604jyc9OaSUPWAaqcdTELPTChqIxaTSu/K/WXSvdKDA x9zH1aGV3J09T7jtWC8DKlhrJmjC2JTTpiP/dlRwcQmGHjkmhzCRrjhG9/UB/rBI3g5M 2fkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768353795; x=1768958595; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=85FmrMstWCmGgGwVpwczfkShMmaQjAwM8eeztSHeuhs=; b=OSaxBjIyyGEjAj47KFtolztwobZF2vxYUbZ07PMfjn07I0murC3zcKRedEnPn+lVhN p1CLnbn8EhLE8dEYCae9YZteFPHD+mlB9f8DfIFqrESa4iqxbP1HrRgLP8H7NAUne94s +bAblVvxOyurOemSvy7an3XybudUrqfAFb2xtlWyoY6Jk71SsNU/AzjMHxClFxRV5oyt ZgfyXvA9k6RlzDr0if5sq51hdFyVzQdJNEbq7+KUThWQcfd8lzc8uupDjw+5DnBYkwDC iKbSdc4frHFTbVxbXQeP84tv9f9YxYwd7zQZOGanZCfaIt1UzpQo20L98CoiTG9QnpRa yrow== X-Forwarded-Encrypted: i=1; AJvYcCVkMdMN+3/wQxh6D1jIgS9hxpFqYtXLsRihOOYli39DnuKDP6KY/b7RFF7TGE9n0urylqlFAH2bR/PicZB/@lists.postgresql.org X-Gm-Message-State: AOJu0YxavPCO6dQbJSjst4jT2R4L/x9OCeCXxFjVQ8f1nYI03fVdGbtO YSCY/zOL5k9t0s6ynQz35KjkwumMF9AFGyoDdyJlt082P5TgY8zWAfB4piBk0d7ptSODh441LIk /RewORkD0aGihUlDE9E53+QwLSbkMYAI= X-Gm-Gg: AY/fxX7Q/HvLPj4jvQd+HLTu7PzBY+0DDdYvlq5zDP4uRznrOBgfPw0Zu1hr1VHaRVh Ww0wiGgoCrSRiuDMGCZIVQ0U7VTAZ9iYsdyQzZO13UXL9U5haZhdMwlR/zfu6jS+mvyJ7IU2hGh EVQgKxUf9bA3xL804Vb+J8Ivi4JaSNgfoI4YptwMoC/689W1P/dye42pRyAFrlnHERResrJl5uR LSjQ/kbAMd7OvY8DCE+EZzbcZEjGaupTIEGg3m40U9fxvyTIj1RcvVtafp8PNYJSNkwG3fY+Agc ZPDNhIlB8oOtDzZ64/I27HsLcm1q X-Received: by 2002:a05:6512:3da4:b0:59b:6cc7:ca27 with SMTP id 2adb3069b0e04-59ba151b481mr135756e87.9.1768353795124; Tue, 13 Jan 2026 17:23:15 -0800 (PST) MIME-Version: 1.0 References: <89DE974B-F318-4D0A-A60B-51EDE84054E2@gmail.com> <9A074422-2308-4BD0-9FFA-0B6D70989935@yandex-team.ru> <70c72cb1-a39f-41b3-bfe3-e32ee7fda9c4@uni-muenster.de> <68a012d3-121b-418a-913b-aa0aaf32915d@uni-muenster.de> In-Reply-To: From: Marcos Magueta Date: Tue, 13 Jan 2026 22:23:03 -0300 X-Gm-Features: AZwV_QgJNvJSET_b8bHMDAnm8cbZYZlN1FA98vBnHzK0Y11pPKDAJvwyHtSh9bA Message-ID: Subject: Re: WIP - xmlvalidate implementation from TODO list To: Jim Jones Cc: Andrey Borodin , Kirill Reshke , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000cbc3de06484ef328" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000cbc3de06484ef328 Content-Type: multipart/alternative; boundary="000000000000cbc3dd06484ef326" --000000000000cbc3dd06484ef326 Content-Type: text/plain; charset="UTF-8" On 01.12.2026 12:54, Jim Jones wrote: > The code is no longer compiling. The header pg_xmlschema_d.h wasn't > added to the patch (probably containing the definitions of > Anum_pg_xmlschema_oid, Anum_pg_xmlschema_schemaname, etc ..) I forgot to edit the makefiles so they generate those, I was building with a powershell script. I could compile on Linux and all tests are now passing, so I hope that was it. Please follow the updated version attached. Thanks for taking a look at this! Marcos Magueta. --000000000000cbc3dd06484ef326 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On 01.12.2026 12:54, = Jim Jones <jim.jones@uni-mu= enster.de> wrote:
> The code is no longer compiling. The heade= r pg_xmlschema_d.h wasn't
> added to the patch (probably containi= ng the definitions of
> Anum_pg_xmlschema_oid, Anum_pg_xmlschema_sche= maname, etc ..)

I forgot to edit the makefiles so they generate those, = I was building with a powershell script. I could compile on Linux and all t= ests are now passing, so I hope that was it.

Please follow the= updated version attached.

Thanks for taking a=C2=A0look at th= is!
Marcos Magueta.
--000000000000cbc3dd06484ef326-- --000000000000cbc3de06484ef328 Content-Type: application/octet-stream; name="0002-xmlschema-catalog-and-xmlvalidate.patch" Content-Disposition: attachment; filename="0002-xmlschema-catalog-and-xmlvalidate.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdc6i7a0 RnJvbSBkZDAxMTBlZDUxMjc2Yzg0MzJiNzZiNzEwMDhhNzE4M2FlNWNiNmRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjb3MgTWFndWV0YSA8bWFndWV0YW1hcmNvc0BnbWFpbC5j b20+CkRhdGU6IFR1ZSwgMTMgSmFuIDIwMjYgMjI6MDg6MDQgLTAzMDAKU3ViamVjdDogW1BBVENI XSB4bWxzY2hlbWEgY2F0YWxvZyBhbmQgeG1sdmFsaWRhdGUKCi0tLQogZG9jL3NyYy9zZ21sL2Z1 bmMvZnVuYy14bWwuc2dtbCAgICAgICAgfCAxMTkgKysrKysrKysrKwogc3JjL2JhY2tlbmQvY2F0 YWxvZy9NYWtlZmlsZSAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xj aGsuYyAgICAgICAgICAgfCAgMTcgKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5j ICAgICAgIHwgIDMxICsrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZCAgICAgICAg fCAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyAgICAgICAgfCAgNTYgKysr KysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jICAgIHwgIDg0ICsrKysrKysK IHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfeG1sc2NoZW1hLmMgICAgIHwgMTkxICsrKysrKysrKysr KysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlICAgICAgICAgIHwgICAzICstCiBz cmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jICAgICAgICAgICB8ICAgOCArCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy9kcm9wY21kcy5jICAgICAgICB8ICAgNyArCiBzcmMvYmFja2VuZC9jb21tYW5k cy9ldmVudF90cmlnZ2VyLmMgICB8ICAgMiArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5i dWlsZCAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jICAgICAg ICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy94bWxzY2hlbWFjbWRzLmMgICB8IDExOSAr KysrKysrKysrCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jICB8ICAyNyAr KysKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgIHwgIDgzICsrKysrKy0K IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgIHwgIDQyICsrKysKIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL3Rj b3AvdXRpbGl0eS5jICAgICAgICAgICAgIHwgIDE3ICsrCiBzcmMvYmFja2VuZC91dGlscy9hZHQv YWNsLmMgICAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxz LmMgICAgICB8ICAxNiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jICAgICAgICAgICAg fCAxNDEgKysrKysrKysrKystCiBzcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlICAgICAgICAg ICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkICAgICAgICB8ICAgMSAr CiBzcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oICAgICAgICB8ICAgMSArCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3htbHNjaGVtYS5oICAgICB8ICA0MyArKysrCiBzcmMvaW5jbHVkZS9j b21tYW5kcy94bWxzY2hlbWFjbWRzLmggICB8ICAxMCArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmggICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAg ICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICB8 ICAgMyArCiBzcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCAgICAgICAgICB8ICAgMyArCiBz cmMvaW5jbHVkZS91dGlscy9hY2wuaCAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVk ZS91dGlscy94bWwuaCAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL29pZGpvaW5zLm91dCB8ICAgMiArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ht bC5vdXQgICAgICB8IDI5NyArKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3htbF8yLm91dCAgICB8IDI5NyArKysrKysrKysrKysrKysrKysrKysrKysr CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC94bWwuc3FsICAgICAgICAgICB8IDI3NCArKysrKysrKysr KysrKysrKysrKysrKwogMzggZmlsZXMgY2hhbmdlZCwgMTkwMiBpbnNlcnRpb25zKCspLCA4IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfeG1s c2NoZW1hLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9jb21tYW5kcy94bWxzY2hl bWFjbWRzLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3htbHNj aGVtYS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY29tbWFuZHMveG1sc2NoZW1h Y21kcy5oCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy14bWwuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9mdW5jL2Z1bmMteG1sLnNnbWwKaW5kZXggNTExYmM5MDg1MmEuLmIwMmRiNmM5 YjViIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXhtbC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9mdW5jL2Z1bmMteG1sLnNnbWwKQEAgLTEwMTAsNiArMTAxMCwxMjUgQEAgU0VM RUNUIHhtbHRhYmxlLioKIF1dPjwvc2NyZWVuPgogICAgIDwvcGFyYT4KICAgIDwvc2VjdDM+CisK KyAgIDxzZWN0MyBpZD0iZnVuY3Rpb25zLXhtbC1wcm9jZXNzaW5nLXhtbHZhbGlkYXRlIj4KKyAg ICA8dGl0bGU+PGxpdGVyYWw+eG1sdmFsaWRhdGU8L2xpdGVyYWw+PC90aXRsZT4KKworICAgIDxp bmRleHRlcm0+CisgICAgIDxwcmltYXJ5PnhtbHZhbGlkYXRlPC9wcmltYXJ5PgorICAgIDwvaW5k ZXh0ZXJtPgorCis8c3lub3BzaXM+Cis8ZnVuY3Rpb24+WE1MVkFMSURBVEU8L2Z1bmN0aW9uPiAo IHs8bGl0ZXJhbD5ET0NVTUVOVDwvbGl0ZXJhbD58PGxpdGVyYWw+Q09OVEVOVDwvbGl0ZXJhbD59 IDxyZXBsYWNlYWJsZT54bWxfdmFsdWU8L3JlcGxhY2VhYmxlPiA8bGl0ZXJhbD5BQ0NPUkRJTkcg VE8gWE1MU0NIRU1BPC9saXRlcmFsPiA8cmVwbGFjZWFibGU+c2NoZW1hX3RleHQ8L3JlcGxhY2Vh YmxlPiApIDxyZXR1cm52YWx1ZT5ib29sZWFuPC9yZXR1cm52YWx1ZT4KKzwvc3lub3BzaXM+CisK KyAgICA8cGFyYT4KKyAgICAgVGhlIDxmdW5jdGlvbj54bWx2YWxpZGF0ZTwvZnVuY3Rpb24+IGZ1 bmN0aW9uIHZhbGlkYXRlcyBhbiBYTUwgdmFsdWUKKyAgICAgYWdhaW5zdCBhbiBYTUwgU2NoZW1h IChYU0QpLiBJdCByZXR1cm5zIDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+IGlmIHRoZQorICAgICBY TUwgaXMgdmFsaWQgYWNjb3JkaW5nIHRvIHRoZSBzY2hlbWEsIDxsaXRlcmFsPmZhbHNlPC9saXRl cmFsPiBpZiBpdCBpcworICAgICBpbnZhbGlkLCBvciA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiBp ZiBlaXRoZXIgYXJndW1lbnQgaXMKKyAgICAgPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4uCisgICAg PC9wYXJhPgorCisgICAgPHBhcmE+CisgICAgIFRoZSBmaXJzdCBhcmd1bWVudCBzcGVjaWZpZXMg d2hldGhlciB0byB2YWxpZGF0ZSB0aGUgWE1MIGFzIGEKKyAgICAgPGxpdGVyYWw+RE9DVU1FTlQ8 L2xpdGVyYWw+IChhIGNvbXBsZXRlIFhNTCBkb2N1bWVudCB3aXRoIGEgc2luZ2xlIHJvb3QKKyAg ICAgZWxlbWVudCkgb3IgYXMgPGxpdGVyYWw+Q09OVEVOVDwvbGl0ZXJhbD4gKGFuIFhNTCBjb250 ZW50IGZyYWdtZW50KS4KKyAgICA8L3BhcmE+CisKKyAgICA8cGFyYT4KKyAgICAgVGhlIDxyZXBs YWNlYWJsZT5zY2hlbWFfdGV4dDwvcmVwbGFjZWFibGU+IGFyZ3VtZW50IHNob3VsZCBiZSBhCisg ICAgIDx0eXBlPnRleHQ8L3R5cGU+IHZhbHVlIGNvbnRhaW5pbmcgYSB2YWxpZCBYTUwgU2NoZW1h IERlZmluaXRpb24gKFhTRCkuCisgICAgIEZvciBzZWN1cml0eSByZWFzb25zLCB0aGUgc2NoZW1h IGlzIHRyZWF0ZWQgYXMgcGxhaW4gdGV4dCBhbmQgcGFyc2VkCisgICAgIGluLW1lbW9yeSBvbmx5 LiBUaGlzIHByZXZlbnRzIG1hbGljaW91cyBpbXBvcnRzIG9yIGV4dGVybmFsIGZpbGUgYWNjZXNz CisgICAgIHRocm91Z2ggc2NoZW1hIGxvY2F0aW9uIHJlZmVyZW5jZXMgKHN1Y2ggYXMgPGxpdGVy YWw+eHM6aW1wb3J0PC9saXRlcmFsPiwKKyAgICAgPGxpdGVyYWw+eHM6aW5jbHVkZTwvbGl0ZXJh bD4sIG9yIDxsaXRlcmFsPnNjaGVtYUxvY2F0aW9uPC9saXRlcmFsPgorICAgICBhdHRyaWJ1dGVz KS4gQW55IGF0dGVtcHRzIHRvIHJlZmVyZW5jZSBleHRlcm5hbCByZXNvdXJjZXMgd2lsbCBiZQor ICAgICBpZ25vcmVkLCByZXN1bHRpbmcgaW4gYW4gZW1wdHkgc2NoZW1hIHJlZmVyZW5jZS4KKyAg ICA8L3BhcmE+CisKKyAgICA8cGFyYT4KKyAgICAgRXhhbXBsZXM6Cis8c2NyZWVuPjwhW0NEQVRB WworU0VMRUNUIHhtbHZhbGlkYXRlKERPQ1VNRU5UICc8cGVyc29uPjxuYW1lPkpvaG48L25hbWU+ PGFnZT4zMDwvYWdlPjwvcGVyc29uPicKKyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSAnPD94bWwg dmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8y MDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50IG5hbWU9InBlcnNvbiI+CisgICAgPHhzOmNv bXBsZXhUeXBlPgorICAgICAgPHhzOnNlcXVlbmNlPgorICAgICAgICA8eHM6ZWxlbWVudCBuYW1l PSJuYW1lIiB0eXBlPSJ4czpzdHJpbmciLz4KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iYWdl IiB0eXBlPSJ4czppbnRlZ2VyIi8+CisgICAgICA8L3hzOnNlcXVlbmNlPgorICAgIDwveHM6Y29t cGxleFR5cGU+CisgIDwveHM6ZWxlbWVudD4KKzwveHM6c2NoZW1hPicpOworCisgeG1sdmFsaWRh dGUKKy0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCitdXT48L3NjcmVlbj4KKyAgICA8L3BhcmE+ CisKKyAgICA8cGFyYT4KKyAgICAgVGhpcyBleGFtcGxlIHNob3dzIGEgdmFsaWRhdGlvbiBmYWls dXJlIGR1ZSB0byBhIG1pc3NpbmcgcmVxdWlyZWQgZWxlbWVudDoKKzxzY3JlZW4+PCFbQ0RBVEFb CitTRUxFQ1QgeG1sdmFsaWRhdGUoRE9DVU1FTlQgJzxwZXJzb24+PG5hbWU+Sm9objwvbmFtZT48 L3BlcnNvbj4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgJzw/eG1sIHZlcnNpb249IjEuMCI/ PgorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEi PgorICA8eHM6ZWxlbWVudCBuYW1lPSJwZXJzb24iPgorICAgIDx4czpjb21wbGV4VHlwZT4KKyAg ICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0ibmFtZSIgdHlwZT0i eHM6c3RyaW5nIi8+CisgICAgICAgIDx4czplbGVtZW50IG5hbWU9ImFnZSIgdHlwZT0ieHM6aW50 ZWdlciIvPgorICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICA8L3hzOmNvbXBsZXhUeXBlPgorICA8 L3hzOmVsZW1lbnQ+Cis8L3hzOnNjaGVtYT4nKTsKKworIHhtbHZhbGlkYXRlCistLS0tLS0tLS0t LS0tCisgZgorKDEgcm93KQorXV0+PC9zY3JlZW4+CisgICAgPC9wYXJhPgorCisgICAgPHBhcmE+ CisgICAgIFRoZSBzY2hlbWEgY2FuIGFsc28gdmFsaWRhdGUgYXR0cmlidXRlczoKKzxzY3JlZW4+ PCFbQ0RBVEFbCitTRUxFQ1QgeG1sdmFsaWRhdGUoRE9DVU1FTlQgJzxwcm9kdWN0IGlkPSIxMjMi PjxuYW1lPldpZGdldDwvbmFtZT48cHJpY2U+OS45OTwvcHJpY2U+PC9wcm9kdWN0PicKKyAgQUND T1JESU5HIFRPIFhNTFNDSEVNQSAnPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHht bG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50 IG5hbWU9InByb2R1Y3QiPgorICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgIDx4czpzZXF1ZW5j ZT4KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0ibmFtZSIgdHlwZT0ieHM6c3RyaW5nIi8+Cisg ICAgICAgIDx4czplbGVtZW50IG5hbWU9InByaWNlIiB0eXBlPSJ4czpkZWNpbWFsIi8+CisgICAg ICA8L3hzOnNlcXVlbmNlPgorICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJpZCIgdHlwZT0ieHM6 c3RyaW5nIiB1c2U9InJlcXVpcmVkIi8+CisgICAgPC94czpjb21wbGV4VHlwZT4KKyAgPC94czpl bGVtZW50PgorPC94czpzY2hlbWE+Jyk7CisKKyB4bWx2YWxpZGF0ZQorLS0tLS0tLS0tLS0tLQor IHQKKygxIHJvdykKK11dPjwvc2NyZWVuPgorICAgIDwvcGFyYT4KKworICAgIDxub3RlPgorICAg ICA8cGFyYT4KKyAgICAgIEZvciBzZWN1cml0eSwgPGZ1bmN0aW9uPnhtbHZhbGlkYXRlPC9mdW5j dGlvbj4gcHJvY2Vzc2VzIHRoZSBYTUwgU2NoZW1hCisgICAgICBhcyBhbiBpbi1tZW1vcnkgdGV4 dCB2YWx1ZS4gRXh0ZXJuYWwgcmVzb3VyY2UgcmVmZXJlbmNlcyBzdWNoIGFzCisgICAgICA8bGl0 ZXJhbD5zY2hlbWFMb2NhdGlvbjwvbGl0ZXJhbD4gaW4gPGxpdGVyYWw+eHM6aW1wb3J0PC9saXRl cmFsPiBvcgorICAgICAgPGxpdGVyYWw+eHM6aW5jbHVkZTwvbGl0ZXJhbD4gZGlyZWN0aXZlcyBh cmUgbm90IGZvbGxvd2VkIGFuZCBhcmUKKyAgICAgIHRyZWF0ZWQgYXMgZW1wdHkgc2NoZW1hIHJl ZmVyZW5jZXMuIFRoaXMgZGVzaWduIHByZXZlbnRzIHBvdGVudGlhbAorICAgICAgc2VjdXJpdHkg dnVsbmVyYWJpbGl0aWVzIHdoZXJlIG1hbGljaW91cyBzY2hlbWFzIGNvdWxkIGF0dGVtcHQgdG8K KyAgICAgIGFjY2VzcyBleHRlcm5hbCBmaWxlcyBvciBuZXR3b3JrIHJlc291cmNlcy4KKyAgICAg PC9wYXJhPgorICAgIDwvbm90ZT4KKyAgIDwvc2VjdDM+CiAgIDwvc2VjdDI+CiAKICAgPHNlY3Qy IGlkPSJmdW5jdGlvbnMteG1sLW1hcHBpbmciPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggMjZmYTBj OWIxOGMuLmVkOTQxNGJhNjM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2Vm aWxlCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTQ2LDYgKzQ2LDcgQEAg T0JKUyA9IFwKIAlwZ19zdWJzY3JpcHRpb24ubyBcCiAJcGdfdGFibGVzcGFjZS5vIFwKIAlwZ190 eXBlLm8gXAorCXBnX3htbHNjaGVtYS5vIFwKIAlzdG9yYWdlLm8gXAogCXRvYXN0aW5nLm8KIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvYWNsY2hrLmMKaW5kZXggYTQzMWZjMDkyNmYuLmM1MTk4ZWE2ZWM2IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv YWNsY2hrLmMKQEAgLTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3htbHNjaGVtYS5oIgogI2luY2x1ZGUgImNv bW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKICNp bmNsdWRlICJjb21tYW5kcy9leHRlbnNpb24uaCIKQEAgLTI5MCw2ICsyOTEsOSBAQCByZXN0cmlj dF9hbmRfY2hlY2tfZ3JhbnQoYm9vbCBpc19ncmFudCwgQWNsTW9kZSBhdmFpbF9nb3B0aW9ucywg Ym9vbCBhbGxfcHJpdnMsCiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CiAJCQl3aG9sZV9t YXNrID0gQUNMX0FMTF9SSUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWJyZWFrOworCQljYXNlIE9C SkVDVF9YTUxTQ0hFTUE6CisJCQl3aG9sZV9tYXNrID0gQUNMX0FMTF9SSUdIVFNfWE1MU0NIRU1B OworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9i amVjdCB0eXBlOiAlZCIsIG9ianR5cGUpOwogCQkJLyogbm90IHJlYWNoZWQsIGJ1dCBrZWVwIGNv bXBpbGVyIHF1aWV0ICovCkBAIC01MzQsNiArNTM4LDEwIEBAIEV4ZWN1dGVHcmFudFN0bXQoR3Jh bnRTdG10ICpzdG10KQogCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVU RVJfQUNMOwogCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5 cGUgJXMgZm9yIHBhcmFtZXRlciIpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1hNTFNDSEVN QToKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfWE1MU0NIRU1BOworCQkJZXJy b3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMgZm9yIFhNTCBz Y2hlbWEiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2du aXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAoaW50KSBzdG10LT5vYmp0eXBlKTsK QEAgLTYzOSw2ICs2NDcsOSBAQCBFeGVjR3JhbnRTdG10X29pZHMoSW50ZXJuYWxHcmFudCAqaXN0 bXQpCiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CiAJCQlFeGVjR3JhbnRfUGFyYW1ldGVy KGlzdG10KTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9YTUxTQ0hFTUE6CisJCQlFeGVjR3Jh bnRfY29tbW9uKGlzdG10LCBYbWxTY2hlbWFSZWxhdGlvbklkLCBBQ0xfQUxMX1JJR0hUU19YTUxT Q0hFTUEsIE5VTEwpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5y ZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCiAJCQkJIChpbnQpIGlzdG10LT5vYmp0 eXBlKTsKQEAgLTI2NzcsNiArMjY4OCw5IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xl cnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJ CQkJCW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbnZlcnNpb24g JXMiKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIE9CSkVDVF9YTUxTQ0hFTUE6CisJCQkJCQlt c2cgPSBnZXR0ZXh0X25vb3AoInBlcm1pc3Npb24gZGVuaWVkIGZvciBYTUwgc2NoZW1hICVzIik7 CisJCQkJCQlicmVhazsKIAkJCQkJY2FzZSBPQkpFQ1RfREFUQUJBU0U6CiAJCQkJCQltc2cgPSBn ZXR0ZXh0X25vb3AoInBlcm1pc3Npb24gZGVuaWVkIGZvciBkYXRhYmFzZSAlcyIpOwogCQkJCQkJ YnJlYWs7CkBAIC0yODA5LDYgKzI4MjMsOSBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNs ZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CiAJ CQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2YgY29udmVyc2lvbiAlcyIp OwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgT0JKRUNUX1hNTFNDSEVNQToKKwkJCQkJCW1zZyA9 IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBvZiBYTUwgc2NoZW1hICVzIik7CisJCQkJCQli cmVhazsKIAkJCQkJY2FzZSBPQkpFQ1RfREFUQUJBU0U6CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25v b3AoIm11c3QgYmUgb3duZXIgb2YgZGF0YWJhc2UgJXMiKTsKIAkJCQkJCWJyZWFrOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgYi9zcmMvYmFja2VuZC9jYXRh bG9nL2RlcGVuZGVuY3kuYwppbmRleCBmODkyNjdmMDM0Mi4uNTBjZTM4NzFlNzggMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvZGVwZW5kZW5jeS5jCkBAIC02Niw2ICs2Niw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9w Z190c190ZW1wbGF0ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ194bWxzY2hl bWEuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb21tZW50LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv ZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgpAQCAtNzksNiAr ODAsNyBAQAogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNp bmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKKyNpbmNsdWRlICJub2Rlcy9wcmltbm9kZXMuaCIK ICNpbmNsdWRlICJwYXJzZXIvcGFyc2V0cmVlLmgiCiAjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRl UmVtb3ZlLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCkBAIC0xNTE0LDYgKzE1MTYsNyBA QCBkb0RlbGV0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgaW50IGZsYWdzKQogCQlj YXNlIEV2ZW50VHJpZ2dlclJlbGF0aW9uSWQ6CiAJCWNhc2UgVHJhbnNmb3JtUmVsYXRpb25JZDoK IAkJY2FzZSBBdXRoTWVtUmVsYXRpb25JZDoKKwkJY2FzZSBYbWxTY2hlbWFSZWxhdGlvbklkOgog CQkJRHJvcE9iamVjdEJ5SWQob2JqZWN0KTsKIAkJCWJyZWFrOwogCkBAIC0yNDE2LDYgKzI0MTks MzQgQEAgZmluZF9leHByX3JlZmVyZW5jZXNfd2Fsa2VyKE5vZGUgKm5vZGUsCiAJCQkJCQkgICBj b250ZXh0LT5hZGRycyk7CiAJCS8qIGZhbGwgdGhyb3VnaCB0byBleGFtaW5lIGFyZ3VtZW50cyAq LwogCX0KKwllbHNlIGlmIChJc0Eobm9kZSwgWG1sRXhwcikpCisJeworCQlYbWxFeHByICAgICp4 bWxleHByID0gKFhtbEV4cHIgKikgbm9kZTsKKworCQkvKgorCQkgKiBYTUxWQUxJREFURSdzIHNl Y29uZCBhcmd1bWVudCBpcyBhIENvbnN0IGNvbnRhaW5pbmcgdGhlIHNjaGVtYSBPSUQuCisJCSAq IFJlY29yZCBhIGRlcGVuZGVuY3kgb24gaXQuCisJCSAqLworCQlpZiAoeG1sZXhwci0+b3AgPT0g SVNfWE1MVkFMSURBVEUgJiYgbGlzdF9sZW5ndGgoeG1sZXhwci0+YXJncykgPT0gMikKKwkJewor CQkJTm9kZQkgICAqc2NoZW1hX2FyZyA9IChOb2RlICopIGxzZWNvbmQoeG1sZXhwci0+YXJncyk7 CisKKwkJCWlmIChJc0Eoc2NoZW1hX2FyZywgQ29uc3QpKQorCQkJeworCQkJCUNvbnN0CSAgICpz Y2hlbWFfY29uc3QgPSAoQ29uc3QgKikgc2NoZW1hX2FyZzsKKwkJCQlPaWQJCQlzY2hlbWFfb2lk OworCisJCQkJaWYgKCFzY2hlbWFfY29uc3QtPmNvbnN0aXNudWxsICYmCisJCQkJCXNjaGVtYV9j b25zdC0+Y29uc3R0eXBlID09IE9JRE9JRCkKKwkJCQl7CisJCQkJCXNjaGVtYV9vaWQgPSBEYXR1 bUdldE9iamVjdElkKHNjaGVtYV9jb25zdC0+Y29uc3R2YWx1ZSk7CisJCQkJCWFkZF9vYmplY3Rf YWRkcmVzcyhYbWxTY2hlbWFSZWxhdGlvbklkLCBzY2hlbWFfb2lkLCAwLAorCQkJCQkJCQkJICAg Y29udGV4dC0+YWRkcnMpOworCQkJCX0KKwkJCX0KKwkJfQorCQkvKiBmYWxsIHRocm91Z2ggdG8g ZXhhbWluZSBhcmd1bWVudHMgKi8KKwl9CiAKIAlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtl cihub2RlLCBmaW5kX2V4cHJfcmVmZXJlbmNlc193YWxrZXIsCiAJCQkJCQkJCSAgY29udGV4dCk7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9tZXNvbi5idWlsZAppbmRleCAxMWQyMWM1YWQ2Yi4uOWJhMTVlNzFiNzIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9tZXNvbi5idWlsZApAQCAtMzMsNiArMzMsNyBAQCBiYWNrZW5kX3NvdXJjZXMg Kz0gZmlsZXMoCiAgICdwZ19zdWJzY3JpcHRpb24uYycsCiAgICdwZ190YWJsZXNwYWNlLmMnLAog ICAncGdfdHlwZS5jJywKKyAgJ3BnX3htbHNjaGVtYS5jJywKICAgJ3N0b3JhZ2UuYycsCiAgICd0 b2FzdGluZy5jJywKICkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNl LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCmluZGV4IGMzYjc5YTJiYTQ4Li44 OWU4N2EwNjU3MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC0zMCw2ICszMCw3IEBACiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Nv bnZlcnNpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFiYXNlLmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ194bWxzY2hlbWEuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BjbGFzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf b3BlcmF0b3IuaCIKQEAgLTQxNDMsNiArNDE0NCw2MSBAQCBnZXRfY29udmVyc2lvbl9vaWQoTGlz dCAqY29ubmFtZSwgYm9vbCBtaXNzaW5nX29rKQogCXJldHVybiBjb25vaWQ7CiB9CiAKKy8qCisg KiBnZXRfeG1sc2NoZW1hX29pZCAtIGZpbmQgYW4gWE1MIHNjaGVtYSBieSBwb3NzaWJseSBxdWFs aWZpZWQgbmFtZQorICovCitPaWQKK2dldF94bWxzY2hlbWFfb2lkKExpc3QgKnNjaGVtYW5hbWUs IGJvb2wgbWlzc2luZ19vaykKK3sKKwljaGFyCSAgICpuc3BuYW1lOworCWNoYXIJICAgKnNjaGVt YV9uYW1lOworCU9pZAkJCW5hbWVzcGFjZUlkOworCU9pZAkJCXNjaGVtYV9vaWQgPSBJbnZhbGlk T2lkOworCUxpc3RDZWxsICAgKmw7CisKKwkvKiBkZWNvbnN0cnVjdCB0aGUgbmFtZSBsaXN0ICov CisJRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1lKHNjaGVtYW5hbWUsICZuc3BuYW1lLCAmc2NoZW1h X25hbWUpOworCisJaWYgKG5zcG5hbWUpCisJeworCQkvKiB1c2UgZXhhY3Qgc2NoZW1hIGdpdmVu ICovCisJCW5hbWVzcGFjZUlkID0gTG9va3VwRXhwbGljaXROYW1lc3BhY2UobnNwbmFtZSwgbWlz c2luZ19vayk7CisJCWlmIChtaXNzaW5nX29rICYmICFPaWRJc1ZhbGlkKG5hbWVzcGFjZUlkKSkK KwkJCXNjaGVtYV9vaWQgPSBJbnZhbGlkT2lkOworCQllbHNlCisJCQlzY2hlbWFfb2lkID0gR2V0 U3lzQ2FjaGVPaWQyKFhNTFNDSEVNQU5BTUVOU1AsIEFudW1fcGdfeG1sc2NoZW1hX29pZCwKKwkJ CQkJCQkJCQkgUG9pbnRlckdldERhdHVtKHNjaGVtYV9uYW1lKSwKKwkJCQkJCQkJCQkgT2JqZWN0 SWRHZXREYXR1bShuYW1lc3BhY2VJZCkpOworCX0KKwllbHNlCisJeworCQkvKiBzZWFyY2ggZm9y IGl0IGluIHNlYXJjaCBwYXRoICovCisJCXJlY29tcHV0ZU5hbWVzcGFjZVBhdGgoKTsKKworCQlm b3JlYWNoKGwsIGFjdGl2ZVNlYXJjaFBhdGgpCisJCXsKKwkJCW5hbWVzcGFjZUlkID0gbGZpcnN0 X29pZChsKTsKKworCQkJaWYgKG5hbWVzcGFjZUlkID09IG15VGVtcE5hbWVzcGFjZSkKKwkJCQlj b250aW51ZTsgLyogZG8gbm90IGxvb2sgaW4gdGVtcCBuYW1lc3BhY2UgKi8KKworCQkJc2NoZW1h X29pZCA9IEdldFN5c0NhY2hlT2lkMihYTUxTQ0hFTUFOQU1FTlNQLCBBbnVtX3BnX3htbHNjaGVt YV9vaWQsCisJCQkJCQkJCQkJIFBvaW50ZXJHZXREYXR1bShzY2hlbWFfbmFtZSksCisJCQkJCQkJ CQkJIE9iamVjdElkR2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKwkJCWlmIChPaWRJc1ZhbGlkKHNj aGVtYV9vaWQpKQorCQkJCXJldHVybiBzY2hlbWFfb2lkOworCQl9CisJfQorCisJLyogTm90IGZv dW5kIGluIHBhdGggKi8KKwlpZiAoIU9pZElzVmFsaWQoc2NoZW1hX29pZCkgJiYgIW1pc3Npbmdf b2spCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JK RUNUKSwKKwkJCQkgZXJybXNnKCJYTUwgc2NoZW1hIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJ CQkJCQlOYW1lTGlzdFRvU3RyaW5nKHNjaGVtYW5hbWUpKSkpOworCXJldHVybiBzY2hlbWFfb2lk OworfQorCiAvKgogICogRmluZERlZmF1bHRDb252ZXJzaW9uUHJvYyAtIGZpbmQgZGVmYXVsdCBl bmNvZGluZyBjb252ZXJzaW9uIHByb2MKICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9vYmplY3RhZGRyZXNzLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3Mu YwppbmRleCAwMmFmNjRiODJjNi4uNjMwNmI5YzhmNmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0 YWRkcmVzcy5jCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1w bGF0ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfdXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ194bWxzY2hlbWEuaCIKICNp bmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy9ldmVudF90cmln Z2VyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXh0ZW5zaW9uLmgiCkBAIC0xODcsNiArMTg4LDIw IEBAIHN0YXRpYyBjb25zdCBPYmplY3RQcm9wZXJ0eVR5cGUgT2JqZWN0UHJvcGVydHlbXSA9CiAJ CU9CSkVDVF9DT0xMQVRJT04sCiAJCXRydWUKIAl9LAorCXsKKwkJInhtbHNjaGVtYSIsCisJCVht bFNjaGVtYVJlbGF0aW9uSWQsCisJCVhtbFNjaGVtYU9pZEluZGV4SWQsCisJCVhNTFNDSEVNQU9J RCwKKwkJWE1MU0NIRU1BTkFNRU5TUCwKKwkJQW51bV9wZ194bWxzY2hlbWFfb2lkLAorCQlBbnVt X3BnX3htbHNjaGVtYV9zY2hlbWFuYW1lLAorCQlBbnVtX3BnX3htbHNjaGVtYV9zY2hlbWFuYW1l c3BhY2UsCisJCUFudW1fcGdfeG1sc2NoZW1hX3NjaGVtYW93bmVyLAorCQlBbnVtX3BnX3htbHNj aGVtYV9zY2hlbWFhY2wsCisJCU9CSkVDVF9YTUxTQ0hFTUEsCisJCXRydWUKKwl9LAogCXsKIAkJ ImNvbnN0cmFpbnQiLAogCQlDb25zdHJhaW50UmVsYXRpb25JZCwKQEAgLTcyMCw2ICs3MzUsOSBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IG9iamVjdF90eXBlX21hcAogCXsKIAkJImNvbGxhdGlvbiIs IE9CSkVDVF9DT0xMQVRJT04KIAl9LAorCXsKKwkJInhtbHNjaGVtYSIsIE9CSkVDVF9YTUxTQ0hF TUEKKwl9LAogCXsKIAkJInRhYmxlIGNvbnN0cmFpbnQiLCBPQkpFQ1RfVEFCQ09OU1RSQUlOVAog CX0sCkBAIC0xMDI5LDYgKzEwNDcsMTEgQEAgZ2V0X29iamVjdF9hZGRyZXNzKE9iamVjdFR5cGUg b2JqdHlwZSwgTm9kZSAqb2JqZWN0LAogCQkJCWFkZHJlc3Mub2JqZWN0SWQgPSBnZXRfY29sbGF0 aW9uX29pZChjYXN0Tm9kZShMaXN0LCBvYmplY3QpLCBtaXNzaW5nX29rKTsKIAkJCQlhZGRyZXNz Lm9iamVjdFN1YklkID0gMDsKIAkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX1hNTFNDSEVNQToK KwkJCQlhZGRyZXNzLmNsYXNzSWQgPSBYbWxTY2hlbWFSZWxhdGlvbklkOworCQkJCWFkZHJlc3Mu b2JqZWN0SWQgPSBnZXRfeG1sc2NoZW1hX29pZChjYXN0Tm9kZShMaXN0LCBvYmplY3QpLCBtaXNz aW5nX29rKTsKKwkJCQlhZGRyZXNzLm9iamVjdFN1YklkID0gMDsKKwkJCQlicmVhazsKIAkJCWNh c2UgT0JKRUNUX0NPTlZFUlNJT046CiAJCQkJYWRkcmVzcy5jbGFzc0lkID0gQ29udmVyc2lvblJl bGF0aW9uSWQ7CiAJCQkJYWRkcmVzcy5vYmplY3RJZCA9IGdldF9jb252ZXJzaW9uX29pZChjYXN0 Tm9kZShMaXN0LCBvYmplY3QpLCBtaXNzaW5nX29rKTsKQEAgLTIyODIsNiArMjMwNSw3IEBAIHBn X2dldF9vYmplY3RfYWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQljYXNlIE9CSkVDVF9DT0xV TU46CiAJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgor CQljYXNlIE9CSkVDVF9YTUxTQ0hFTUE6CiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CiAJCWNh c2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCWNhc2UgT0JKRUNUX1RTUEFSU0VSOgpAQCAtMjQ2 MCw2ICsyNDg0LDcgQEAgY2hlY2tfb2JqZWN0X293bmVyc2hpcChPaWQgcm9sZWlkLCBPYmplY3RU eXBlIG9ianR5cGUsIE9iamVjdEFkZHJlc3MgYWRkcmVzcywKIAkJCQkJCQkgICBzdHJWYWwob2Jq ZWN0KSk7CiAJCQlicmVhazsKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgorCQljYXNlIE9CSkVD VF9YTUxTQ0hFTUE6CiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CiAJCWNhc2UgT0JKRUNUX09Q Q0xBU1M6CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgpAQCAtNDA2Nyw2ICs0MDkyLDM0IEBAIGdl dE9iamVjdERlc2NyaXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNz aW5nX29rKQogCQkJCWJyZWFrOwogCQkJfQogCisJCWNhc2UgWG1sU2NoZW1hUmVsYXRpb25JZDoK KwkJCXsKKwkJCQlIZWFwVHVwbGUJc2NoZW1hVHVwOworCQkJCUZvcm1fcGdfeG1sc2NoZW1hIHNj aGVtYTsKKwkJCQljaGFyCSAgICpuc3BuYW1lOworCisJCQkJc2NoZW1hVHVwID0gU2VhcmNoU3lz Q2FjaGUxKFhNTFNDSEVNQU9JRCwKKwkJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShvYmplY3Qt Pm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHNjaGVtYVR1cCkpCisJCQkJ eworCQkJCQlpZiAoIW1pc3Npbmdfb2spCisJCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3Vw IGZhaWxlZCBmb3IgWE1MIHNjaGVtYSAldSIsCisJCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOwor CQkJCQlicmVhazsKKwkJCQl9CisKKwkJCQlzY2hlbWEgPSAoRm9ybV9wZ194bWxzY2hlbWEpIEdF VFNUUlVDVChzY2hlbWFUdXApOworCisJCQkJLyogUXVhbGlmeSB0aGUgbmFtZSBpZiBub3Qgdmlz aWJsZSBpbiBzZWFyY2ggcGF0aCAqLworCQkJCW5zcG5hbWUgPSBnZXRfbmFtZXNwYWNlX25hbWUo c2NoZW1hLT5zY2hlbWFuYW1lc3BhY2UpOworCisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVy LCBfKCJYTUwgc2NoZW1hICVzIiksCisJCQkJCQkJCSBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmll cihuc3BuYW1lLAorCQkJCQkJCQkJCQkJCQkJTmFtZVN0cihzY2hlbWEtPnNjaGVtYW5hbWUpKSk7 CisJCQkJUmVsZWFzZVN5c0NhY2hlKHNjaGVtYVR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKIAkJ ZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1Iiwg b2JqZWN0LT5jbGFzc0lkKTsKIAl9CkBAIC00NjY5LDYgKzQ3MjIsMTAgQEAgZ2V0T2JqZWN0VHlw ZURlc2NyaXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29r KQogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCAidHJhbnNmb3JtIik7CiAJCQli cmVhazsKIAorCQljYXNlIFhtbFNjaGVtYVJlbGF0aW9uSWQ6CisJCQlhcHBlbmRTdHJpbmdJbmZv U3RyaW5nKCZidWZmZXIsICJYTUwgc2NoZW1hIik7CisJCQlicmVhazsKKwogCQlkZWZhdWx0Ogog CQkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9iamVjdCBjbGFzczogJXUiLCBvYmplY3QtPmNs YXNzSWQpOwogCX0KQEAgLTYwMTksNiArNjA3NiwzMyBAQCBnZXRPYmplY3RJZGVudGl0eVBhcnRz KGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwKIAkJCX0KIAkJCWJyZWFrOwogCisJCWNhc2Ug WG1sU2NoZW1hUmVsYXRpb25JZDoKKwkJCXsKKwkJCQlIZWFwVHVwbGUJc2NoZW1hVHVwOworCQkJ CUZvcm1fcGdfeG1sc2NoZW1hIHNjaGVtYTsKKwkJCQljaGFyCSAgICpuc3BuYW1lOworCisJCQkJ c2NoZW1hVHVwID0gU2VhcmNoU3lzQ2FjaGUxKFhNTFNDSEVNQU9JRCwKKwkJCQkJCQkJCQkJT2Jq ZWN0SWRHZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1Zh bGlkKHNjaGVtYVR1cCkpCisJCQkJeworCQkJCQlpZiAoIW1pc3Npbmdfb2spCisJCQkJCQllbG9n KEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgWE1MIHNjaGVtYSAldSIsCisJCQkJCQkJ IG9iamVjdC0+b2JqZWN0SWQpOworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJc2NoZW1hID0gKEZv cm1fcGdfeG1sc2NoZW1hKSBHRVRTVFJVQ1Qoc2NoZW1hVHVwKTsKKwkJCQluc3BuYW1lID0gZ2V0 X25hbWVzcGFjZV9uYW1lX29yX3RlbXAoc2NoZW1hLT5zY2hlbWFuYW1lc3BhY2UpOworCQkJCWFw cGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwKKwkJCQkJCQkJCSAgIHF1b3RlX3F1YWxpZmll ZF9pZGVudGlmaWVyKG5zcG5hbWUsCisJCQkJCQkJCQkJCQkJCQkJICBOYW1lU3RyKHNjaGVtYS0+ c2NoZW1hbmFtZSkpKTsKKwkJCQlpZiAob2JqbmFtZSkKKwkJCQkJKm9iam5hbWUgPSBsaXN0X21h a2UyKG5zcG5hbWUsCisJCQkJCQkJCQkJICBwc3RyZHVwKE5hbWVTdHIoc2NoZW1hLT5zY2hlbWFu YW1lKSkpOworCQkJCVJlbGVhc2VTeXNDYWNoZShzY2hlbWFUdXApOworCQkJCWJyZWFrOworCQkJ fQorCiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0IGNsYXNz OiAldSIsIG9iamVjdC0+Y2xhc3NJZCk7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ194bWxzY2hlbWEuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfeG1sc2NoZW1hLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRkNDRhNGVmMTBiCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ194bWxzY2hlbWEuYwpAQCAtMCww ICsxLDE5MSBAQAorI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvaHR1 cF9kZXRhaWxzLmgiCisjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9jYXRhbG9nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9kZXBlbmRlbmN5LmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9pbmRleGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWNjZXNzLmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ194bWxzY2hlbWEuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX25h bWVzcGFjZS5oIgorI2luY2x1ZGUgInV0aWxzL2FjbC5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0 aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvcmVsLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUu aCIKKyNpbmNsdWRlICJ1dGlscy94bWwuaCIKKworI2lmZGVmIFVTRV9MSUJYTUwKKyNpbmNsdWRl IDxsaWJ4bWwveG1sc2NoZW1hcy5oPgorI2VuZGlmCisKKy8qCisgKiBYbWxTY2hlbWFDcmVhdGUK KyAqCisgKiBBZGQgYSBuZXcgdHVwbGUgdG8gcGdfeG1sc2NoZW1hLgorICoKKyAqIGlmX25vdF9l eGlzdHM6IGlmIHRydWUsIGRvbid0IGZhaWwgb24gZHVwbGljYXRlIG5hbWUsIGp1c3QgcHJpbnQg YSBub3RpY2UKKyAqIGFuZCByZXR1cm4gSW52YWxpZE9pZC4KKyAqIHF1aWV0OiBpZiB0cnVlLCBk b24ndCBmYWlsIG9uIGR1cGxpY2F0ZSBuYW1lLCBqdXN0IHNpbGVudGx5IHJldHVybgorICogSW52 YWxpZE9pZCAod2hpY2ggb3ZlcmlkZXMgaWZfbm90X2V4aXN0cykuCisgKi8KK09pZAorWG1sU2No ZW1hQ3JlYXRlKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCisgICAgICAgICAgICAgICAgT2lkIHNj aGVtYW5hbWVzcGFjZSwKKyAgICAgICAgICAgICAgICBPaWQgc2NoZW1hb3duZXIsCisgICAgICAg ICAgICAgICAgY29uc3QgY2hhciAqc2NoZW1hZGF0YSwKKyAgICAgICAgICAgICAgICBib29sIGlm X25vdF9leGlzdHMsCisgICAgICAgICAgICAgICAgYm9vbCBxdWlldCkKK3sKKyAgICBSZWxhdGlv biAgICAgIHJlbDsKKyAgICBUdXBsZURlc2MgICAgIHR1cERlc2M7CisgICAgSGVhcFR1cGxlICAg ICB0dXA7CisgICAgRGF0dW0gICAgICAgICB2YWx1ZXNbTmF0dHNfcGdfeG1sc2NoZW1hXTsKKyAg ICBib29sICAgICAgICAgIG51bGxzW05hdHRzX3BnX3htbHNjaGVtYV07CisgICAgTmFtZURhdGEg ICAgICBuYW1lX25hbWU7CisgICAgT2lkICAgICAgICAgICBvaWQ7CisgICAgT2JqZWN0QWRkcmVz cyBteXNlbGYsCisgICAgICAgICAgICAgICAgICByZWZlcmVuY2VkOworCisgICAgQXNzZXJ0KHNj aGVtYW5hbWUpOworICAgIEFzc2VydChzY2hlbWFuYW1lc3BhY2UpOworICAgIEFzc2VydChzY2hl bWFvd25lcik7CisgICAgQXNzZXJ0KHNjaGVtYWRhdGEpOworCisjaWZkZWYgVVNFX0xJQlhNTAor ICAgIC8qIFZhbGlkYXRlIHRoZSBYTUwgU2NoZW1hIGJlZm9yZSBzdG9yaW5nIGl0ICovCisgICAg eworICAgICAgICB4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBhcnNlcl9jdHh0OworICAgICAgICB4 bWxTY2hlbWFQdHIgc2NoZW1hX3B0cjsKKyAgICAgICAgUGdYbWxFcnJvckNvbnRleHQgKnhtbGVy cmN4dDsKKworICAgICAgICB4bWxlcnJjeHQgPSBwZ194bWxfaW5pdChQR19YTUxfU1RSSUNUTkVT U19XRUxMRk9STUVEKTsKKworICAgICAgICBQR19UUlkoKTsKKyAgICAgICAgeworICAgICAgICAg ICAgcGFyc2VyX2N0eHQgPSB4bWxTY2hlbWFOZXdNZW1QYXJzZXJDdHh0KHNjaGVtYWRhdGEsIHN0 cmxlbihzY2hlbWFkYXRhKSk7CisgICAgICAgICAgICBpZiAocGFyc2VyX2N0eHQgPT0gTlVMTCkK KyAgICAgICAgICAgICAgICB4bWxfZXJlcG9ydCh4bWxlcnJjeHQsIEVSUk9SLCBFUlJDT0RFX0lO VkFMSURfWE1MX0RPQ1VNRU5ULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmYWlsZWQg dG8gY3JlYXRlIHNjaGVtYSBwYXJzZXIgY29udGV4dCIpOworCisgICAgICAgICAgICBzY2hlbWFf cHRyID0geG1sU2NoZW1hUGFyc2UocGFyc2VyX2N0eHQpOworICAgICAgICAgICAgaWYgKHNjaGVt YV9wdHIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICB4bWxfZXJlcG9ydCh4bWxlcnJjeHQsIEVS Uk9SLCBFUlJDT0RFX0lOVkFMSURfWE1MX0RPQ1VNRU5ULAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJpbnZhbGlkIFhNTCBzY2hlbWEgZGVmaW5pdGlvbiIpOworCisgICAgICAgICAgICAv KiBDbGVhbiB1cCAqLworICAgICAgICAgICAgeG1sU2NoZW1hRnJlZShzY2hlbWFfcHRyKTsKKyAg ICAgICAgICAgIHhtbFNjaGVtYUZyZWVQYXJzZXJDdHh0KHBhcnNlcl9jdHh0KTsKKyAgICAgICAg fQorICAgICAgICBQR19DQVRDSCgpOworICAgICAgICB7CisgICAgICAgICAgICBwZ194bWxfZG9u ZSh4bWxlcnJjeHQsIHRydWUpOworICAgICAgICAgICAgUEdfUkVfVEhST1coKTsKKyAgICAgICAg fQorICAgICAgICBQR19FTkRfVFJZKCk7CisKKyAgICAgICAgcGdfeG1sX2RvbmUoeG1sZXJyY3h0 LCBmYWxzZSk7CisgICAgfQorI2Vsc2UKKyAgICBlcmVwb3J0KEVSUk9SLAorICAgICAgICAgICAg KGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorICAgICAgICAgICAgIGVy cm1zZygieG1sc2NoZW1hIHN1cHBvcnQgcmVxdWlyZXMgbGlieG1sIikpKTsKKyNlbmRpZgorCisg ICAgLyoKKyAgICAgKiBNYWtlIHN1cmUgdGhlcmUgaXMgbm8gZXhpc3RpbmcgWE1MIHNjaGVtYSBv ZiBzYW1lIG5hbWUgaW4gdGhlIG5hbWVzcGFjZS4KKyAgICAgKgorICAgICAqIFRoaXMgd291bGQg YmUgY2F1Z2h0IGJ5IHRoZSB1bmlxdWUgaW5kZXggYW55d2F5OyB3ZSdyZSBqdXN0IGdpdmluZyBh CisgICAgICogZnJpZW5kbGllciBlcnJvciBtZXNzYWdlLiAgVGhlIHVuaXF1ZSBpbmRleCBwcm92 aWRlcyBhIGJhY2tzdG9wIGFnYWluc3QKKyAgICAgKiByYWNlIGNvbmRpdGlvbnMuCisgICAgICov CisgICAgb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFhNTFNDSEVNQU5BTUVOU1AsCisgICAgICAgICAg ICAgICAgICAgICAgICAgIEFudW1fcGdfeG1sc2NoZW1hX29pZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgUG9pbnRlckdldERhdHVtKHNjaGVtYW5hbWUpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICBPYmplY3RJZEdldERhdHVtKHNjaGVtYW5hbWVzcGFjZSkpOworICAgIGlmIChPaWRJ c1ZhbGlkKG9pZCkpCisgICAgeworICAgICAgICBpZiAocXVpZXQpCisgICAgICAgICAgICByZXR1 cm4gSW52YWxpZE9pZDsKKyAgICAgICAgZWxzZSBpZiAoaWZfbm90X2V4aXN0cykKKyAgICAgICAg eworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIElmIHdlIGFyZSBpbiBhbiBleHRlbnNp b24gc2NyaXB0LCBpbnNpc3QgdGhhdCB0aGUgcHJlLWV4aXN0aW5nCisgICAgICAgICAgICAgKiBv YmplY3QgYmUgYSBtZW1iZXIgb2YgdGhlIGV4dGVuc2lvbiwgdG8gYXZvaWQgc2VjdXJpdHkgcmlz a3MuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIE9iamVjdEFkZHJlc3NTZXQobXlzZWxm LCBYbWxTY2hlbWFSZWxhdGlvbklkLCBvaWQpOworICAgICAgICAgICAgY2hlY2tNZW1iZXJzaGlw SW5DdXJyZW50RXh0ZW5zaW9uKCZteXNlbGYpOworCisgICAgICAgICAgICAvKiBPSyB0byBza2lw ICovCisgICAgICAgICAgICBlcmVwb3J0KE5PVElDRSwKKyAgICAgICAgICAgICAgICAgICAgKGVy cmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKyAgICAgICAgICAgICAgICAgICAgIGVy cm1zZygiWE1MIHNjaGVtYSBcIiVzXCIgYWxyZWFkeSBleGlzdHMsIHNraXBwaW5nIiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFuYW1lKSkpOworICAgICAgICAgICAgcmV0dXJu IEludmFsaWRPaWQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXJlcG9y dChFUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVf T0JKRUNUKSwKKyAgICAgICAgICAgICAgICAgICAgIGVycm1zZygiWE1MIHNjaGVtYSBcIiVzXCIg YWxyZWFkeSBleGlzdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYW5hbWUp KSk7CisgICAgfQorCisgICAgLyogb3BlbiBwZ194bWxzY2hlbWE7IGxvY2sgdG8gcHJvdGVjdCBh Z2FpbnN0IGNvbmN1cnJlbnQgY2hhbmdlcyAqLworICAgIHJlbCA9IHRhYmxlX29wZW4oWG1sU2No ZW1hUmVsYXRpb25JZCwgU2hhcmVSb3dFeGNsdXNpdmVMb2NrKTsKKworICAgIHR1cERlc2MgPSBS ZWxhdGlvbkdldERlc2NyKHJlbCk7CisKKyAgICAvKiBmb3JtIGEgdHVwbGUgKi8KKyAgICBtZW1z ZXQobnVsbHMsIDAsIHNpemVvZihudWxscykpOworCisgICAgbmFtZXN0cmNweSgmbmFtZV9uYW1l LCBzY2hlbWFuYW1lKTsKKyAgICBvaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBYbWxTY2hl bWFPaWRJbmRleElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFudW1fcGdf eG1sc2NoZW1hX29pZCk7CisgICAgdmFsdWVzW0FudW1fcGdfeG1sc2NoZW1hX29pZCAtIDFdID0g T2JqZWN0SWRHZXREYXR1bShvaWQpOworICAgIHZhbHVlc1tBbnVtX3BnX3htbHNjaGVtYV9zY2hl bWFuYW1lIC0gMV0gPSBOYW1lR2V0RGF0dW0oJm5hbWVfbmFtZSk7CisgICAgdmFsdWVzW0FudW1f cGdfeG1sc2NoZW1hX3NjaGVtYW5hbWVzcGFjZSAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShzY2hl bWFuYW1lc3BhY2UpOworICAgIHZhbHVlc1tBbnVtX3BnX3htbHNjaGVtYV9zY2hlbWFvd25lciAt IDFdID0gT2JqZWN0SWRHZXREYXR1bShzY2hlbWFvd25lcik7CisgICAgdmFsdWVzW0FudW1fcGdf eG1sc2NoZW1hX3NjaGVtYWRhdGEgLSAxXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oc2NoZW1hZGF0 YSk7CisKKyAgICAvKiBTZXQgdXAgZGVmYXVsdCBBQ0wgKi8KKyAgICB7CisgICAgICAgIEFjbCAq c2NoZW1hYWNsOworCisgICAgICAgIHNjaGVtYWFjbCA9IGdldF91c2VyX2RlZmF1bHRfYWNsKE9C SkVDVF9YTUxTQ0hFTUEsIHNjaGVtYW93bmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzY2hlbWFuYW1lc3BhY2UpOworICAgICAgICBpZiAoc2NoZW1hYWNsICE9 IE5VTEwpCisgICAgICAgICAgICB2YWx1ZXNbQW51bV9wZ194bWxzY2hlbWFfc2NoZW1hYWNsIC0g MV0gPSBQb2ludGVyR2V0RGF0dW0oc2NoZW1hYWNsKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg ICAgbnVsbHNbQW51bV9wZ194bWxzY2hlbWFfc2NoZW1hYWNsIC0gMV0gPSB0cnVlOworICAgIH0K KworICAgIHR1cCA9IGhlYXBfZm9ybV90dXBsZSh0dXBEZXNjLCB2YWx1ZXMsIG51bGxzKTsKKwor ICAgIC8qIGluc2VydCBhIG5ldyB0dXBsZSAqLworICAgIENhdGFsb2dUdXBsZUluc2VydChyZWws IHR1cCk7CisgICAgQXNzZXJ0KE9pZElzVmFsaWQob2lkKSk7CisKKyAgICAvKiBzZXQgdXAgZGVw ZW5kZW5jaWVzIGZvciB0aGUgbmV3IFhNTCBzY2hlbWEgKi8KKyAgICBteXNlbGYuY2xhc3NJZCA9 IFhtbFNjaGVtYVJlbGF0aW9uSWQ7CisgICAgbXlzZWxmLm9iamVjdElkID0gb2lkOworICAgIG15 c2VsZi5vYmplY3RTdWJJZCA9IDA7CisKKyAgICAvKiBjcmVhdGUgZGVwZW5kZW5jeSBvbiBuYW1l c3BhY2UgKi8KKyAgICByZWZlcmVuY2VkLmNsYXNzSWQgPSBOYW1lc3BhY2VSZWxhdGlvbklkOwor ICAgIHJlZmVyZW5jZWQub2JqZWN0SWQgPSBzY2hlbWFuYW1lc3BhY2U7CisgICAgcmVmZXJlbmNl ZC5vYmplY3RTdWJJZCA9IDA7CisgICAgcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZyZWZl cmVuY2VkLCBERVBFTkRFTkNZX05PUk1BTCk7CisKKyAgICAvKiBjcmVhdGUgZGVwZW5kZW5jeSBv biBvd25lciAqLworICAgIHJlY29yZERlcGVuZGVuY3lPbk93bmVyKFhtbFNjaGVtYVJlbGF0aW9u SWQsIG9pZCwgc2NoZW1hb3duZXIpOworCisgICAgLyogZGVwZW5kZW5jeSBvbiBleHRlbnNpb24g Ki8KKyAgICByZWNvcmREZXBlbmRlbmN5T25DdXJyZW50RXh0ZW5zaW9uKCZteXNlbGYsIGZhbHNl KTsKKworICAgIC8qIFBvc3QgY3JlYXRpb24gaG9vayBmb3IgbmV3IFhNTCBzY2hlbWEgKi8KKyAg ICBJbnZva2VPYmplY3RQb3N0Q3JlYXRlSG9vayhYbWxTY2hlbWFSZWxhdGlvbklkLCBvaWQsIDAp OworCisgICAgaGVhcF9mcmVldHVwbGUodHVwKTsKKyAgICB0YWJsZV9jbG9zZShyZWwsIE5vTG9j ayk7CisKKyAgICByZXR1cm4gb2lkOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQppbmRleCA2NGNiNjI3 ODQwOS4uMDdmMDRlYWZkYWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2Vm aWxlCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCkBAIC02Niw2ICs2Niw3IEBA IE9CSlMgPSBcCiAJdmFjdXVtcGFyYWxsZWwubyBcCiAJdmFyaWFibGUubyBcCiAJdmlldy5vIFwK LQl3YWl0Lm8KKwl3YWl0Lm8gXAorCXhtbHNjaGVtYWNtZHMubwogCiBpbmNsdWRlICQodG9wX3Ny Y2Rpcikvc3JjL2JhY2tlbmQvY29tbW9uLm1rCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9hbHRlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYwppbmRleCBmN2IyMzg5 YjAxOS4uNzc4ZjU0YmRhZTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVy LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYwpAQCAtNDEsNiArNDEsNyBAQAog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfZGljdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNf cGFyc2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0ZS5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfeG1sc2NoZW1hLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYWx0ZXIuaCIKICNp bmNsdWRlICJjb21tYW5kcy9jb2xsYXRpb25jbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJj b21tYW5kcy5oIgpAQCAtMTQwLDYgKzE0MSwxMCBAQCByZXBvcnRfbmFtZXNwYWNlX2NvbmZsaWN0 KE9pZCBjbGFzc0lkLCBjb25zdCBjaGFyICpuYW1lLCBPaWQgbnNwT2lkKQogCQkJQXNzZXJ0KE9p ZElzVmFsaWQobnNwT2lkKSk7CiAJCQltc2dmbXQgPSBnZXR0ZXh0X25vb3AoInRleHQgc2VhcmNo IGNvbmZpZ3VyYXRpb24gXCIlc1wiIGFscmVhZHkgZXhpc3RzIGluIHNjaGVtYSBcIiVzXCIiKTsK IAkJCWJyZWFrOworCQljYXNlIFhtbFNjaGVtYVJlbGF0aW9uSWQ6CisJCQlBc3NlcnQoT2lkSXNW YWxpZChuc3BPaWQpKTsKKwkJCW1zZ2ZtdCA9IGdldHRleHRfbm9vcCgiWE1MIHNjaGVtYSBcIiVz XCIgYWxyZWFkeSBleGlzdHMgaW4gc2NoZW1hIFwiJXNcIiIpOworCQkJYnJlYWs7CiAJCWRlZmF1 bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0IGNsYXNzOiAldSIsIGNsYXNz SWQpOwogCQkJYnJlYWs7CkBAIC00MjMsNiArNDI4LDcgQEAgRXhlY1JlbmFtZVN0bXQoUmVuYW1l U3RtdCAqc3RtdCkKIAkJY2FzZSBPQkpFQ1RfRkRXOgogCQljYXNlIE9CSkVDVF9GT1JFSUdOX1NF UlZFUjoKIAkJY2FzZSBPQkpFQ1RfRlVOQ1RJT046CisJCWNhc2UgT0JKRUNUX1hNTFNDSEVNQToK IAkJY2FzZSBPQkpFQ1RfT1BDTEFTUzoKIAkJY2FzZSBPQkpFQ1RfT1BGQU1JTFk6CiAJCWNhc2Ug T0JKRUNUX0xBTkdVQUdFOgpAQCAtNTY3LDYgKzU3Myw3IEBAIEV4ZWNBbHRlck9iamVjdFNjaGVt YVN0bXQoQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpzdG10LAogCQljYXNlIE9CSkVDVF9GVU5DVElP TjoKIAkJY2FzZSBPQkpFQ1RfT1BFUkFUT1I6CiAJCWNhc2UgT0JKRUNUX09QQ0xBU1M6CisJCWNh c2UgT0JKRUNUX1hNTFNDSEVNQToKIAkJY2FzZSBPQkpFQ1RfT1BGQU1JTFk6CiAJCWNhc2UgT0JK RUNUX1BST0NFRFVSRToKIAkJY2FzZSBPQkpFQ1RfUk9VVElORToKQEAgLTg3Nyw2ICs4ODQsNyBA QCBFeGVjQWx0ZXJPd25lclN0bXQoQWx0ZXJPd25lclN0bXQgKnN0bXQpCiAJCWNhc2UgT0JKRUNU X0NPTlZFUlNJT046CiAJCWNhc2UgT0JKRUNUX0ZVTkNUSU9OOgogCQljYXNlIE9CSkVDVF9MQU5H VUFHRToKKwkJY2FzZSBPQkpFQ1RfWE1MU0NIRU1BOgogCQljYXNlIE9CSkVDVF9MQVJHRU9CSkVD VDoKIAkJY2FzZSBPQkpFQ1RfT1BFUkFUT1I6CiAJCWNhc2UgT0JKRUNUX09QQ0xBU1M6CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvZHJvcGNtZHMuYwppbmRleCA5MjUyNjAxMmQyYS4uMmU4OTM5NjhhYjMgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvZHJvcGNtZHMuYwpAQCAtMjc4LDYgKzI3OCwxMyBAQCBkb2VzX25vdF9leGlzdF9za2lw cGluZyhPYmplY3RUeXBlIG9ianR5cGUsIE5vZGUgKm9iamVjdCkKIAkJCQluYW1lID0gTmFtZUxp c3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKTsKIAkJCX0KIAkJCWJyZWFrOworCQlj YXNlIE9CSkVDVF9YTUxTQ0hFTUE6CisJCQlpZiAoIXNjaGVtYV9kb2VzX25vdF9leGlzdF9za2lw cGluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpLCAmbXNnLCAmbmFtZSkpCisJCQl7CisJCQkJbXNn ID0gZ2V0dGV4dF9ub29wKCJYTUwgc2NoZW1hIFwiJXNcIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBp bmciKTsKKwkJCQluYW1lID0gTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3Qp KTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIE9CSkVDVF9TQ0hFTUE6CiAJCQltc2cgPSBnZXR0 ZXh0X25vb3AoInNjaGVtYSBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIik7CiAJCQlu YW1lID0gc3RyVmFsKG9iamVjdCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9l dmVudF90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKaW5k ZXggMDI4ZjllMmRlOTAuLjRhMDg3OTM1ZjE2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy9ldmVudF90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJp Z2dlci5jCkBAIC0yMzE4LDYgKzIzMTgsNyBAQCBzdHJpbmdpZnlfZ3JhbnRfb2JqdHlwZShPYmpl Y3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX1RTVEVNUExBVEU6CiAJCWNhc2UgT0JKRUNU X1VTRVJfTUFQUElORzoKIAkJY2FzZSBPQkpFQ1RfVklFVzoKKwkJY2FzZSBPQkpFQ1RfWE1MU0NI RU1BOgogCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9iamVjdCB0eXBlOiAlZCIsIChpbnQp IG9ianR5cGUpOwogCX0KIApAQCAtMjQwMiw2ICsyNDAzLDcgQEAgc3RyaW5naWZ5X2FkZWZwcml2 c19vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfVFNURU1QTEFURToK IAkJY2FzZSBPQkpFQ1RfVVNFUl9NQVBQSU5HOgogCQljYXNlIE9CSkVDVF9WSUVXOgorCQljYXNl IE9CSkVDVF9YTUxTQ0hFTUE6CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0IHR5 cGU6ICVkIiwgKGludCkgb2JqdHlwZSk7CiAJfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCmlu ZGV4IGNhM2Y1M2M2MjEzLi4zMzYzNzk3ZWNlZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQK QEAgLTU1LDQgKzU1LDUgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAndmFyaWFibGUu YycsCiAgICd2aWV3LmMnLAogICAnd2FpdC5jJywKKyAgJ3htbHNjaGVtYWNtZHMuYycsCiApCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2VjbGFiZWwuYwppbmRleCA0MTYwZjViNjg1NS4uODNjNmNkZDliYjMgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2VjbGFiZWwuYwpAQCAtOTIsNiArOTIsNyBAQCBTZWNMYWJlbFN1cHBvcnRzT2Jq ZWN0VHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX1RTUEFSU0VSOgogCQlj YXNlIE9CSkVDVF9UU1RFTVBMQVRFOgogCQljYXNlIE9CSkVDVF9VU0VSX01BUFBJTkc6CisJCWNh c2UgT0JKRUNUX1hNTFNDSEVNQToKIAkJCXJldHVybiBmYWxzZTsKIAogCQkJLyoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3htbHNjaGVtYWNtZHMuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3htbHNjaGVtYWNtZHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uMTNhNGQ0Yjc4MzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy94bWxzY2hlbWFjbWRzLmMKQEAgLTAsMCArMSwxMTkgQEAKKyNpbmNsdWRlICJwb3N0Z3Jlcy5o IgorCisjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgorI2luY2x1ZGUgImFjY2Vzcy90 YWJsZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9vYmplY3RhY2Nlc3MuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3htbHNjaGVtYS5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMveG1sc2No ZW1hY21kcy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgorI2luY2x1ZGUgIm1pc2Nh ZG1pbi5oIgorI2luY2x1ZGUgInV0aWxzL2FjbC5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5z LmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvcmVsLmgi CisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKworCisvKgorICogQ1JFQVRFIFhNTFNDSEVN QQorICovCitPYmplY3RBZGRyZXNzCitEZWZpbmVYbWxTY2hlbWEoUGFyc2VTdGF0ZSAqcHN0YXRl LCBMaXN0ICpuYW1lcywgTGlzdCAqcGFyYW1ldGVycywgYm9vbCBpZl9ub3RfZXhpc3RzKQorewor CWNoYXIJICAgKnNjaGVtYU5hbWU7CisJT2lkCQkJc2NoZW1hTmFtZXNwYWNlOworCUFjbFJlc3Vs dAlhY2xyZXN1bHQ7CisJTGlzdENlbGwgICAqcGw7CisJRGVmRWxlbSAgICAqc2NoZW1hRGF0YUVs ID0gTlVMTDsKKwljaGFyCSAgICpzY2hlbWFEYXRhOworCU9pZAkJCW5ld29pZDsKKwlPYmplY3RB ZGRyZXNzIGFkZHJlc3M7CisKKwlzY2hlbWFOYW1lc3BhY2UgPSBRdWFsaWZpZWROYW1lR2V0Q3Jl YXRpb25OYW1lc3BhY2UobmFtZXMsICZzY2hlbWFOYW1lKTsKKworCWFjbHJlc3VsdCA9IG9iamVj dF9hY2xjaGVjayhOYW1lc3BhY2VSZWxhdGlvbklkLCBzY2hlbWFOYW1lc3BhY2UsIEdldFVzZXJJ ZCgpLCBBQ0xfQ1JFQVRFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xj aGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9TQ0hFTUEsCisJCQkJCSAgIGdldF9uYW1lc3Bh Y2VfbmFtZShzY2hlbWFOYW1lc3BhY2UpKTsKKworCS8qIFBhcnNlIHBhcmFtZXRlcnMgKi8KKwlm b3JlYWNoKHBsLCBwYXJhbWV0ZXJzKQorCXsKKwkJRGVmRWxlbSAgICAqZGVmZWwgPSBsZmlyc3Rf bm9kZShEZWZFbGVtLCBwbCk7CisJCURlZkVsZW0gICAqKmRlZmVscDsKKworCQlpZiAoc3RyY21w KGRlZmVsLT5kZWZuYW1lLCAic2NoZW1hIikgPT0gMCkKKwkJCWRlZmVscCA9ICZzY2hlbWFEYXRh RWw7CisJCWVsc2UKKwkJeworCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09E RV9TWU5UQVhfRVJST1IpLAorCQkJCQkgZXJybXNnKCJYTUwgc2NoZW1hIGF0dHJpYnV0ZSBcIiVz XCIgbm90IHJlY29nbml6ZWQiLAorCQkJCQkJCWRlZmVsLT5kZWZuYW1lKSwKKwkJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIGRlZmVsLT5sb2NhdGlvbikpKTsKKwkJCWJyZWFrOworCQl9 CisJCWlmICgqZGVmZWxwICE9IE5VTEwpCisJCQllcnJvckNvbmZsaWN0aW5nRGVmRWxlbShkZWZl bCwgcHN0YXRlKTsKKwkJKmRlZmVscCA9IGRlZmVsOworCX0KKworCWlmICghc2NoZW1hRGF0YUVs KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwK KwkJCQkgZXJybXNnKCJwYXJhbWV0ZXIgXCJzY2hlbWFcIiBtdXN0IGJlIHNwZWNpZmllZCIpKSk7 CisKKwlzY2hlbWFEYXRhID0gZGVmR2V0U3RyaW5nKHNjaGVtYURhdGFFbCk7CisKKwluZXdvaWQg PSBYbWxTY2hlbWFDcmVhdGUoc2NoZW1hTmFtZSwKKwkJCQkJCQkgc2NoZW1hTmFtZXNwYWNlLAor CQkJCQkJCSBHZXRVc2VySWQoKSwKKwkJCQkJCQkgc2NoZW1hRGF0YSwKKwkJCQkJCQkgaWZfbm90 X2V4aXN0cywKKwkJCQkJCQkgZmFsc2UpOworCisJaWYgKCFPaWRJc1ZhbGlkKG5ld29pZCkpCisJ eworCQkvKgorCQkgKiBXaGVuIElGIE5PVCBFWElTVFMgd2FzIHNwZWNpZmllZCBhbmQgdGhlIG9i amVjdCBhbHJlYWR5IGV4aXN0ZWQsCisJCSAqIFhtbFNjaGVtYUNyZWF0ZSByZXR1cm5lZCBJbnZh bGlkT2lkLiBSZXBvcnQgYW4gaW52YWxpZCBvYmplY3QKKwkJICogYWRkcmVzcy4KKwkJICovCisJ CWFkZHJlc3MuY2xhc3NJZCA9IFhtbFNjaGVtYVJlbGF0aW9uSWQ7CisJCWFkZHJlc3Mub2JqZWN0 SWQgPSBJbnZhbGlkT2lkOworCQlhZGRyZXNzLm9iamVjdFN1YklkID0gMDsKKwkJcmV0dXJuIGFk ZHJlc3M7CisJfQorCisJLyoKKwkgKiBDaGVjayB0aGF0IHRoZXJlIGlzIG5vdCBhbHJlYWR5IGFu IFhNTCBzY2hlbWEgd2l0aCBzYW1lIG5hbWUgaW4gc2NoZW1hLgorCSAqIFRoaXMgaXMgcmVhbGx5 IGp1c3QgYSBmcmllbmRsaWVyIGVycm9yIG1lc3NhZ2UgdGhhbiB0aGUgdW5pcXVlIGluZGV4CisJ ICogdmlvbGF0aW9uLgorCSAqLworCUlzVGhlcmVYbWxTY2hlbWFJbk5hbWVzcGFjZShzY2hlbWFO YW1lLCBzY2hlbWFOYW1lc3BhY2UpOworCisJT2JqZWN0QWRkcmVzc1NldChhZGRyZXNzLCBYbWxT Y2hlbWFSZWxhdGlvbklkLCBuZXdvaWQpOworCisJcmV0dXJuIGFkZHJlc3M7Cit9CisKKy8qCisg KiBJc1RoZXJlWG1sU2NoZW1hSW5OYW1lc3BhY2UKKyAqCisgKiBDaGVjayBpZiB0aGVyZSBpcyBh biBYTUwgc2NoZW1hIHdpdGggdGhlIGdpdmVuIG5hbWUgaW4gdGhlIGdpdmVuIG5hbWVzcGFjZS4K KyAqIElmIHNvLCByYWlzZSBhbiBhcHByb3ByaWF0ZSBlcnJvci4KKyAqLwordm9pZAorSXNUaGVy ZVhtbFNjaGVtYUluTmFtZXNwYWNlKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsIE9pZCBuc3BPaWQp Cit7CisJLyogbWFrZSBzdXJlIHRoZSBuYW1lIGRvZXNuJ3QgY29uZmxpY3QgKi8KKwlpZiAoU2Vh cmNoU3lzQ2FjaGVFeGlzdHMyKFhNTFNDSEVNQU5BTUVOU1AsCisJCQkJCQkJICBQb2ludGVyR2V0 RGF0dW0oc2NoZW1hbmFtZSksCisJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKG5zcE9pZCkpKQor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCks CisJCQkJIGVycm1zZygiWE1MIHNjaGVtYSBcIiVzXCIgZm9yIHNjaGVtYSBcIiVzXCIgYWxyZWFk eSBleGlzdHMiLAorCQkJCQkJc2NoZW1hbmFtZSwgZ2V0X25hbWVzcGFjZV9uYW1lKG5zcE9pZCkp KSk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5j IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCBhN2E1YWMxZTgz Yi4uMmI0MTZhNGQ5MDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBy SW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAt NDYyNiw2ICs0NjI2LDMzIEBAIEV4ZWNFdmFsWG1sRXhwcihFeHByU3RhdGUgKnN0YXRlLCBFeHBy RXZhbFN0ZXAgKm9wKQogCQkJfQogCQkJYnJlYWs7CiAKKwkJY2FzZSBJU19YTUxWQUxJREFURToK KwkJCXsKKwkJCQlEYXR1bQkgICAqYXJndmFsdWUgPSBvcC0+ZC54bWxleHByLmFyZ3ZhbHVlOwor CQkJCWJvb2wJICAgKmFyZ251bGwgPSBvcC0+ZC54bWxleHByLmFyZ251bGw7CisJCQkJeG1sdHlw ZSAgICAqZGF0YTsKKwkJCQlPaWQJCQlzY2hlbWFfb2lkOworCQkJCXhtbHR5cGUgICAgKnJlc3Vs dDsKKworCQkJCS8qIFR3byBhcmd1bWVudHM6IFhNTCBkYXRhIGFuZCBzY2hlbWEgT0lEICovCisJ CQkJQXNzZXJ0KGxpc3RfbGVuZ3RoKHhleHByLT5hcmdzKSA9PSAyKTsKKworCQkJCWlmIChhcmdu dWxsWzBdIHx8IGFyZ251bGxbMV0pCisJCQkJeworCQkJCQkqb3AtPnJlc251bGwgPSB0cnVlOwor CQkJCQlyZXR1cm47CisJCQkJfQorCisJCQkJZGF0YSA9IERhdHVtR2V0WG1sUChhcmd2YWx1ZVsw XSk7CisJCQkJc2NoZW1hX29pZCA9IERhdHVtR2V0T2JqZWN0SWQoYXJndmFsdWVbMV0pOworCisJ CQkJcmVzdWx0ID0geG1sdmFsaWRhdGVfc2NoZW1hKGRhdGEsIHNjaGVtYV9vaWQpOworCisJCQkJ Km9wLT5yZXN2YWx1ZSA9IFBvaW50ZXJHZXREYXR1bShyZXN1bHQpOworCQkJCSpvcC0+cmVzbnVs bCA9IGZhbHNlOworCQkJfQorCQkJYnJlYWs7CisKIAkJY2FzZSBJU19ET0NVTUVOVDoKIAkJCXsK IAkJCQlEYXR1bQkgICAqYXJndmFsdWUgPSBvcC0+ZC54bWxleHByLmFyZ3ZhbHVlOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkKaW5kZXggNzEzZWU1YzEwYTIuLjI0MDRmMmE4NDllIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTcwNyw3 ICs3MDcsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVs bmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogICovCiAKIC8qIG9yZGluYXJ5IGtl eSB3b3JkcyBpbiBhbHBoYWJldGljYWwgb3JkZXIgKi8KLSV0b2tlbiA8a2V5d29yZD4gQUJPUlRf UCBBQlNFTlQgQUJTT0xVVEVfUCBBQ0NFU1MgQUNUSU9OIEFERF9QIEFETUlOIEFGVEVSCisldG9r ZW4gPGtleXdvcmQ+IEFCT1JUX1AgQUJTRU5UIEFCU09MVVRFX1AgQUNDRVNTIEFDQ09SRElORyBB Q1RJT04gQUREX1AgQURNSU4gQUZURVIKIAlBR0dSRUdBVEUgQUxMIEFMU08gQUxURVIgQUxXQVlT IEFOQUxZU0UgQU5BTFlaRSBBTkQgQU5ZIEFSUkFZIEFTIEFTQwogCUFTRU5TSVRJVkUgQVNTRVJU SU9OIEFTU0lHTk1FTlQgQVNZTU1FVFJJQyBBVE9NSUMgQVQgQVRUQUNIIEFUVFJJQlVURSBBVVRI T1JJWkFUSU9OCiAKQEAgLTcyOCw3ICs3MjgsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwog CURFVEFDSCBESUNUSU9OQVJZIERJU0FCTEVfUCBESVNDQVJEIERJU1RJTkNUIERPIERPQ1VNRU5U X1AgRE9NQUlOX1AKIAlET1VCTEVfUCBEUk9QCiAKLQlFQUNIIEVMU0UgRU1QVFlfUCBFTkFCTEVf UCBFTkNPRElORyBFTkNSWVBURUQgRU5EX1AgRU5GT1JDRUQgRU5VTV9QIEVSUk9SX1AKKwlFQUNI IEVMU0UgRUxFTUVOVCBFTVBUWV9QIEVOQUJMRV9QIEVOQ09ESU5HIEVOQ1JZUFRFRCBFTkRfUCBF TkZPUkNFRCBFTlVNX1AgRVJST1JfUAogCUVTQ0FQRSBFVkVOVCBFWENFUFQgRVhDTFVERSBFWENM VURJTkcgRVhDTFVTSVZFIEVYRUNVVEUgRVhJU1RTIEVYUExBSU4KIAlFWFBSRVNTSU9OIEVYVEVO U0lPTiBFWFRFUk5BTCBFWFRSQUNUCiAKQEAgLTc5OCw3ICs3OTgsNyBAQCBzdGF0aWMgTm9kZSAq bWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9k ZSAqcXVlcnkpOwogCVdBSVQgV0hFTiBXSEVSRSBXSElURVNQQUNFX1AgV0lORE9XIFdJVEggV0lU SElOIFdJVEhPVVQgV09SSyBXUkFQUEVSIFdSSVRFCiAKIAlYTUxfUCBYTUxBVFRSSUJVVEVTIFhN TENPTkNBVCBYTUxFTEVNRU5UIFhNTEVYSVNUUyBYTUxGT1JFU1QgWE1MTkFNRVNQQUNFUwotCVhN TFBBUlNFIFhNTFBJIFhNTFJPT1QgWE1MU0VSSUFMSVpFIFhNTFRBQkxFCisJWE1MUEFSU0UgWE1M UEkgWE1MUk9PVCBYTUxTQ0hFTUEgWE1MU0VSSUFMSVpFIFhNTFRBQkxFIFhNTFZBTElEQVRFCiAK IAlZRUFSX1AgWUVTX1AKIApAQCAtNjY1NCw2ICs2NjU0LDI3IEBAIERlZmluZVN0bXQ6CiAJCQkJ CW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQor CQkJfCBDUkVBVEUgWE1MU0NIRU1BIGFueV9uYW1lIEFTIFNjb25zdAorCQkJCXsKKwkJCQkJRGVm aW5lU3RtdCAqbiA9IG1ha2VOb2RlKERlZmluZVN0bXQpOworCisJCQkJCW4tPmtpbmQgPSBPQkpF Q1RfWE1MU0NIRU1BOworCQkJCQluLT5hcmdzID0gTklMOworCQkJCQluLT5kZWZuYW1lcyA9ICQz OworCQkJCQluLT5kZWZpbml0aW9uID0gbGlzdF9tYWtlMShtYWtlRGVmRWxlbSgic2NoZW1hIiwg KE5vZGUgKikgbWFrZVN0cmluZygkNSksIEA1KSk7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJ CQl9CisJCQl8IENSRUFURSBYTUxTQ0hFTUEgSUZfUCBOT1QgRVhJU1RTIGFueV9uYW1lIEFTIFNj b25zdAorCQkJCXsKKwkJCQkJRGVmaW5lU3RtdCAqbiA9IG1ha2VOb2RlKERlZmluZVN0bXQpOwor CisJCQkJCW4tPmtpbmQgPSBPQkpFQ1RfWE1MU0NIRU1BOworCQkJCQluLT5hcmdzID0gTklMOwor CQkJCQluLT5kZWZuYW1lcyA9ICQ2OworCQkJCQluLT5kZWZpbml0aW9uID0gbGlzdF9tYWtlMSht YWtlRGVmRWxlbSgic2NoZW1hIiwgKE5vZGUgKikgbWFrZVN0cmluZygkOCksIEA4KSk7CisJCQkJ CW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQog CQk7CiAKIGRlZmluaXRpb246ICcoJyBkZWZfbGlzdCAnKScJCQkJCQl7ICQkID0gJDI7IH0KQEAg LTcxOTMsNiArNzIxNCw3IEBAIG9iamVjdF90eXBlX2FueV9uYW1lOgogCQkJfCBJTkRFWAkJCQkJ CQkJCXsgJCQgPSBPQkpFQ1RfSU5ERVg7IH0KIAkJCXwgRk9SRUlHTiBUQUJMRQkJCQkJCQl7ICQk ID0gT0JKRUNUX0ZPUkVJR05fVEFCTEU7IH0KIAkJCXwgQ09MTEFUSU9OCQkJCQkJCQl7ICQkID0g T0JKRUNUX0NPTExBVElPTjsgfQorCQkJfCBYTUxTQ0hFTUEJCQkJCQkJCXsgJCQgPSBPQkpFQ1Rf WE1MU0NIRU1BOyB9CiAJCQl8IENPTlZFUlNJT05fUAkJCQkJCQl7ICQkID0gT0JKRUNUX0NPTlZF UlNJT047IH0KIAkJCXwgU1RBVElTVElDUwkJCQkJCQl7ICQkID0gT0JKRUNUX1NUQVRJU1RJQ19F WFQ7IH0KIAkJCXwgVEVYVF9QIFNFQVJDSCBQQVJTRVIJCQkJCXsgJCQgPSBPQkpFQ1RfVFNQQVJT RVI7IH0KQEAgLTgxMDcsNiArODEyOSwxNSBAQCBwcml2aWxlZ2VfdGFyZ2V0OgogCQkJCQluLT5v YmpzID0gJDI7CiAJCQkJCSQkID0gbjsKIAkJCQl9CisJCQl8IFhNTFNDSEVNQSBhbnlfbmFtZV9s aXN0CisJCQkJeworCQkJCQlQcml2VGFyZ2V0ICpuID0gcGFsbG9jX29iamVjdChQcml2VGFyZ2V0 KTsKKworCQkJCQluLT50YXJndHlwZSA9IEFDTF9UQVJHRVRfT0JKRUNUOworCQkJCQluLT5vYmp0 eXBlID0gT0JKRUNUX1hNTFNDSEVNQTsKKwkJCQkJbi0+b2JqcyA9ICQyOworCQkJCQkkJCA9IG47 CisJCQkJfQogCQkJfCBBTEwgVEFCTEVTIElOX1AgU0NIRU1BIG5hbWVfbGlzdAogCQkJCXsKIAkJ CQkJUHJpdlRhcmdldCAqbiA9IHBhbGxvY19vYmplY3QoUHJpdlRhcmdldCk7CkBAIC05NTczLDYg Kzk2MDQsMTYgQEAgUmVuYW1lU3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2Fy Z3R5cGVzIFJFTkFNRSBUTyBuYW1lCiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJ JCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgWE1MU0NIRU1BIGFueV9uYW1lIFJF TkFNRSBUTyBuYW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1l U3RtdCk7CisKKwkJCQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVDVF9YTUxTQ0hFTUE7CisJCQkJCW4t Pm9iamVjdCA9IChOb2RlICopICQzOworCQkJCQluLT5uZXduYW1lID0gJDY7CisJCQkJCW4tPm1p c3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KIAkJCXwgQUxU RVIgQ09OVkVSU0lPTl9QIGFueV9uYW1lIFJFTkFNRSBUTyBuYW1lCiAJCQkJewogCQkJCQlSZW5h bWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3RtdCk7CkBAIC0xMDI1MCw2ICsxMDI5MSwxNiBA QCBBbHRlck9iamVjdFNjaGVtYVN0bXQ6CiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJ CQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgWE1MU0NIRU1BIGFueV9uYW1l IFNFVCBTQ0hFTUEgbmFtZQorCQkJCXsKKwkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpuID0g bWFrZU5vZGUoQWx0ZXJPYmplY3RTY2hlbWFTdG10KTsKKworCQkJCQluLT5vYmplY3RUeXBlID0g T0JKRUNUX1hNTFNDSEVNQTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDM7CisJCQkJCW4t Pm5ld3NjaGVtYSA9ICQ2OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0g KE5vZGUgKikgbjsKKwkJCQl9CiAJCQl8IEFMVEVSIENPTlZFUlNJT05fUCBhbnlfbmFtZSBTRVQg U0NIRU1BIG5hbWUKIAkJCQl7CiAJCQkJCUFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1ha2VO b2RlKEFsdGVyT2JqZWN0U2NoZW1hU3RtdCk7CkBAIC0xMDU4Myw2ICsxMDYzNCwxNSBAQCBBbHRl ck93bmVyU3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIE9XTkVS IFRPIFJvbGVTcGVjCiAJCQkJCW4tPm5ld293bmVyID0gJDY7CiAJCQkJCSQkID0gKE5vZGUgKikg bjsKIAkJCQl9CisJCQl8IEFMVEVSIFhNTFNDSEVNQSBhbnlfbmFtZSBPV05FUiBUTyBSb2xlU3Bl YworCQkJCXsKKwkJCQkJQWx0ZXJPd25lclN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck93bmVyU3Rt dCk7CisKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9YTUxTQ0hFTUE7CisJCQkJCW4tPm9i amVjdCA9IChOb2RlICopICQzOworCQkJCQluLT5uZXdvd25lciA9ICQ2OworCQkJCQkkJCA9IChO b2RlICopIG47CisJCQkJfQogCQkJfCBBTFRFUiBDT05WRVJTSU9OX1AgYW55X25hbWUgT1dORVIg VE8gUm9sZVNwZWMKIAkJCQl7CiAJCQkJCUFsdGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0 ZXJPd25lclN0bXQpOwpAQCAtMTYyODgsNiArMTYzNDgsMTcgQEAgZnVuY19leHByX2NvbW1vbl9z dWJleHByOgogCQkJCQluLT5sb2NhdGlvbiA9IEAxOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJ CQkJfQorCQkJfCBYTUxWQUxJREFURSAnKCcgRE9DVU1FTlRfUCBhX2V4cHIgQUNDT1JESU5HIFRP IFhNTFNDSEVNQSBhbnlfbmFtZSAnKScKKwkJCQl7CisJCQkJCVhtbEV4cHIgKnggPSAoWG1sRXhw ciAqKQorCQkJCQkJbWFrZVhtbEV4cHIoSVNfWE1MVkFMSURBVEUsIE5VTEwsICQ4LAorCQkJCQkJ CQkJbGlzdF9tYWtlMSgkNCksCisJCQkJCQkJCQlAMSk7CisKKwkJCQkJeC0+eG1sb3B0aW9uID0g WE1MT1BUSU9OX0RPQ1VNRU5UOworCQkJCQl4LT5sb2NhdGlvbiA9IEAxOworCQkJCQkkJCA9IChO b2RlICopIHg7CisJCQkJfQogCQkJfCBKU09OX09CSkVDVCAnKCcgZnVuY19hcmdfbGlzdCAnKScK IAkJCQl7CiAJCQkJCS8qIFN1cHBvcnQgZm9yIGxlZ2FjeSAobm9uLXN0YW5kYXJkKSBqc29uX29i amVjdCgpICovCkBAIC0xNzg5OCw2ICsxNzk2OSw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJ CXwgQUJTRU5UCiAJCQl8IEFCU09MVVRFX1AKIAkJCXwgQUNDRVNTCisJCQl8IEFDQ09SRElORwog CQkJfCBBQ1RJT04KIAkJCXwgQUREX1AKIAkJCXwgQURNSU4KQEAgLTE4MjI3LDYgKzE4Mjk5LDcg QEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBXUkFQUEVSCiAJCQl8IFdSSVRFCiAJCQl8IFhN TF9QCisJCQl8IFhNTFNDSEVNQQogCQkJfCBZRUFSX1AKIAkJCXwgWUVTX1AKIAkJCXwgWk9ORQpA QCAtMTgzMDYsNiArMTgzNzksNyBAQCBjb2xfbmFtZV9rZXl3b3JkOgogCQkJfCBYTUxST09UCiAJ CQl8IFhNTFNFUklBTElaRQogCQkJfCBYTUxUQUJMRQorCQkJfCBYTUxWQUxJREFURQogCQk7CiAK IC8qIFR5cGUvZnVuY3Rpb24gaWRlbnRpZmllciAtLS0ga2V5d29yZHMgdGhhdCBjYW4gYmUgdHlw ZSBvciBmdW5jdGlvbiBuYW1lcy4KQEAgLTE4NDQ1LDYgKzE4NTE5LDcgQEAgYmFyZV9sYWJlbF9r ZXl3b3JkOgogCQkJfCBBQlNFTlQKIAkJCXwgQUJTT0xVVEVfUAogCQkJfCBBQ0NFU1MKKwkJCXwg QUNDT1JESU5HCiAJCQl8IEFDVElPTgogCQkJfCBBRERfUAogCQkJfCBBRE1JTgpAQCAtMTg4OTYs OCArMTg5NzEsMTAgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBYTUxQQVJTRQogCQkJfCBY TUxQSQogCQkJfCBYTUxST09UCisJCQl8IFhNTFNDSEVNQQogCQkJfCBYTUxTRVJJQUxJWkUKIAkJ CXwgWE1MVEFCTEUKKwkJCXwgWE1MVkFMSURBVEUKIAkJCXwgWUVTX1AKIAkJCXwgWk9ORQogCQk7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCA1NjgyNmRiNGMyNi4uZDFjNjZjNTNhYTggMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtMTYsNiArMTYsNyBAQAogI2luY2x1ZGUgInBvc3Rn cmVzLmgiCiAKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgpAQCAtMjM2 MSw2ICsyMzYyLDcgQEAgdHJhbnNmb3JtWG1sRXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIFhtbEV4 cHIgKngpCiAJWG1sRXhwciAgICAqbmV3eDsKIAlMaXN0Q2VsbCAgICpsYzsKIAlpbnQJCQlpOwor CU9pZAkJCXhtbHZhbGlkYXRlX3NjaGVtYV9vaWQgPSBJbnZhbGlkT2lkOwogCiAJbmV3eCA9IG1h a2VOb2RlKFhtbEV4cHIpOwogCW5ld3gtPm9wID0geC0+b3A7CkBAIC0yMzczLDYgKzIzNzUsMjEg QEAgdHJhbnNmb3JtWG1sRXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIFhtbEV4cHIgKngpCiAJbmV3 eC0+dHlwbW9kID0gLTE7CiAJbmV3eC0+bG9jYXRpb24gPSB4LT5sb2NhdGlvbjsKIAorCS8qCisJ ICogWE1MVkFMSURBVEUgc3RvcmVzIHRoZSBzY2hlbWEgbmFtZSBsaXN0IGluIG5hbWVkX2FyZ3Ms IG5vdCBSZXNUYXJnZXRzLgorCSAqIEV4dHJhY3QgaXQgYmVmb3JlIHByb2Nlc3NpbmcgbmFtZWQg YXJndW1lbnRzLgorCSAqLworCWlmICh4LT5vcCA9PSBJU19YTUxWQUxJREFURSAmJiB4LT5uYW1l ZF9hcmdzICE9IE5JTCkKKwl7CisJCUxpc3QgKnNjaGVtYV9uYW1lX2xpc3Q7CisJCXNjaGVtYV9u YW1lX2xpc3QgPSB4LT5uYW1lZF9hcmdzOworCQl4bWx2YWxpZGF0ZV9zY2hlbWFfb2lkID0gZ2V0 X3htbHNjaGVtYV9vaWQoc2NoZW1hX25hbWVfbGlzdCwgZmFsc2UpOworCQkvKiBQcmVzZXJ2ZSBz Y2hlbWEgbmFtZSBmb3IgZGVwYXJzaW5nICovCisJCW5ld3gtPm5hbWUgPSBOYW1lTGlzdFRvU3Ry aW5nKHNjaGVtYV9uYW1lX2xpc3QpOworCQkvKiBDbGVhciB0byBhdm9pZCBwcm9jZXNzaW5nIGFz IFJlc1RhcmdldHMgKi8KKwkJeC0+bmFtZWRfYXJncyA9IE5JTDsKKwl9CisKIAkvKgogCSAqIGdy YW0ueSBidWlsdCB0aGUgbmFtZWQgYXJncyBhcyBhIGxpc3Qgb2YgUmVzVGFyZ2V0LiAgVHJhbnNm b3JtIGVhY2gsCiAJICogYW5kIGJyZWFrIHRoZSBuYW1lcyBvdXQgYXMgYSBzZXBhcmF0ZSBsaXN0 LgpAQCAtMjQ3Miw2ICsyNDg5LDExIEBAIHRyYW5zZm9ybVhtbEV4cHIoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBYbWxFeHByICp4KQogCQkJCS8qIG5vdCBoYW5kbGVkIGhlcmUgKi8KIAkJCQlBc3NlcnQo ZmFsc2UpOwogCQkJCWJyZWFrOworCQkJY2FzZSBJU19YTUxWQUxJREFURToKKwkJCQkvKiBGaXJz dCBhcmd1bWVudCBpcyB0aGUgWE1MIGRhdGEgKi8KKwkJCQluZXdlID0gY29lcmNlX3RvX3NwZWNp ZmljX3R5cGUocHN0YXRlLCBuZXdlLCBYTUxPSUQsCisJCQkJCQkJCQkJCSAgICJYTUxWQUxJREFU RSIpOworCQkJCWJyZWFrOwogCQkJY2FzZSBJU19ET0NVTUVOVDoKIAkJCQluZXdlID0gY29lcmNl X3RvX3NwZWNpZmljX3R5cGUocHN0YXRlLCBuZXdlLCBYTUxPSUQsCiAJCQkJCQkJCQkJCSAgICJJ UyBET0NVTUVOVCIpOwpAQCAtMjQ4MSw2ICsyNTAzLDI2IEBAIHRyYW5zZm9ybVhtbEV4cHIoUGFy c2VTdGF0ZSAqcHN0YXRlLCBYbWxFeHByICp4KQogCQlpKys7CiAJfQogCisJLyogRm9yIFhNTFZB TElEQVRFLCBhZGQgdGhlIHNjaGVtYSBPSUQgYXMgc2Vjb25kIGFyZ3VtZW50ICovCisJaWYgKHgt Pm9wID09IElTX1hNTFZBTElEQVRFKQorCXsKKwkJQ29uc3QgKnNjaGVtYV9vaWRfY29uc3Q7CisK KwkJQXNzZXJ0KE9pZElzVmFsaWQoeG1sdmFsaWRhdGVfc2NoZW1hX29pZCkpOworCisJCXNjaGVt YV9vaWRfY29uc3QgPSBtYWtlQ29uc3QoT0lET0lELAorCQkJCQkJCQkJIC0xLAorCQkJCQkJCQkJ IEludmFsaWRPaWQsCisJCQkJCQkJCQkgc2l6ZW9mKE9pZCksCisJCQkJCQkJCQkgT2JqZWN0SWRH ZXREYXR1bSh4bWx2YWxpZGF0ZV9zY2hlbWFfb2lkKSwKKwkJCQkJCQkJCSBmYWxzZSwKKwkJCQkJ CQkJCSB0cnVlKTsKKwkJbmV3eC0+YXJncyA9IGxhcHBlbmQobmV3eC0+YXJncywgc2NoZW1hX29p ZF9jb25zdCk7CisKKwkJLyogUmV0dXJuIHR5cGUgaXMgWE1MICovCisJCW5ld3gtPnR5cGUgPSBY TUxPSUQ7CisJfQorCiAJcmV0dXJuIChOb2RlICopIG5ld3g7CiB9CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYwppbmRleCBiNWEyZjkxNWI2Ny4uYjM4MGJiMzllYjEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfdGFyZ2V0LmMKQEAgLTE5NzYsNiArMTk3Niw5IEBAIEZpZ3VyZUNvbG5hbWVJbnRlcm5h bChOb2RlICpub2RlLCBjaGFyICoqbmFtZSkKIAkJCQljYXNlIElTX1hNTFNFUklBTElaRToKIAkJ CQkJKm5hbWUgPSAieG1sc2VyaWFsaXplIjsKIAkJCQkJcmV0dXJuIDI7CisJCQkJY2FzZSBJU19Y TUxWQUxJREFURToKKwkJCQkJKm5hbWUgPSAieG1sdmFsaWRhdGUiOworCQkJCQlyZXR1cm4gMjsK IAkJCQljYXNlIElTX0RPQ1VNRU5UOgogCQkJCQkvKiBub3RoaW5nICovCiAJCQkJCWJyZWFrOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29w L3V0aWxpdHkuYwppbmRleCAzNGRkNmUxOGRmNS4uNjBlMGEwZjdlN2MgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5j CkBAIC01Nyw2ICs1Nyw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvdmFjdXVtLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvdmlldy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3dhaXQuaCIKKyNpbmNsdWRl ICJjb21tYW5kcy94bWxzY2hlbWFjbWRzLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5j bHVkZSAicGFyc2VyL3BhcnNlX3V0aWxjbWQuaCIKICNpbmNsdWRlICJwb3N0bWFzdGVyL2Jnd3Jp dGVyLmgiCkBAIC0xNDQzLDYgKzE0NDQsMTMgQEAgUHJvY2Vzc1V0aWxpdHlTbG93KFBhcnNlU3Rh dGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJCQkgIHN0bXQtPmRlZmluaXRpb24sCiAJCQkJCQkJCQkJ CQkJICBzdG10LT5pZl9ub3RfZXhpc3RzKTsKIAkJCQkJCQlicmVhazsKKwkJCQkJCWNhc2UgT0JK RUNUX1hNTFNDSEVNQToKKwkJCQkJCQlBc3NlcnQoc3RtdC0+YXJncyA9PSBOSUwpOworCQkJCQkJ CWFkZHJlc3MgPSBEZWZpbmVYbWxTY2hlbWEocHN0YXRlLAorCQkJCQkJCQkJCQkJCSAgc3RtdC0+ ZGVmbmFtZXMsCisJCQkJCQkJCQkJCQkJICBzdG10LT5kZWZpbml0aW9uLAorCQkJCQkJCQkJCQkJ CSAgc3RtdC0+aWZfbm90X2V4aXN0cyk7CisJCQkJCQkJYnJlYWs7CiAJCQkJCQlkZWZhdWx0Ogog CQkJCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgZGVmaW5lIHN0bXQgdHlwZTogJWQiLAog CQkJCQkJCQkgKGludCkgc3RtdC0+a2luZCk7CkBAIC0yMjM4LDYgKzIyNDYsOSBAQCBBbHRlck9i amVjdFR5cGVDb21tYW5kVGFnKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfQ09M TEFUSU9OOgogCQkJdGFnID0gQ01EVEFHX0FMVEVSX0NPTExBVElPTjsKIAkJCWJyZWFrOworCQlj YXNlIE9CSkVDVF9YTUxTQ0hFTUE6CisJCQl0YWcgPSBDTURUQUdfQUxURVJfWE1MU0NIRU1BOwor CQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0NPTFVNTjoKIAkJCXRhZyA9IENNRFRBR19BTFRFUl9U QUJMRTsKIAkJCWJyZWFrOwpAQCAtMjU3NSw2ICsyNTg2LDkgQEAgQ3JlYXRlQ29tbWFuZFRhZyhO b2RlICpwYXJzZXRyZWUpCiAJCQkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQkJCQl0YWcgPSBD TURUQUdfRFJPUF9DT0xMQVRJT047CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgT0JKRUNUX1hNTFND SEVNQToKKwkJCQkJdGFnID0gQ01EVEFHX0RST1BfWE1MU0NIRU1BOworCQkJCQlicmVhazsKIAkJ CQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgogCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9DT05WRVJT SU9OOwogCQkJCQlicmVhazsKQEAgLTI3NzYsNiArMjc5MCw5IEBAIENyZWF0ZUNvbW1hbmRUYWco Tm9kZSAqcGFyc2V0cmVlKQogCQkJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJCQkJdGFnID0g Q01EVEFHX0NSRUFURV9DT0xMQVRJT047CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgT0JKRUNUX1hN TFNDSEVNQToKKwkJCQkJdGFnID0gQ01EVEFHX0NSRUFURV9YTUxTQ0hFTUE7CisJCQkJCWJyZWFr OwogCQkJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6CiAJCQkJCXRhZyA9IENNRFRBR19DUkVB VEVfQUNDRVNTX01FVEhPRDsKIAkJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvYWNsLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMKaW5kZXggM2E2OTA1 Zjk1NDYuLjQxMmEwNDUwNDMwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNs LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCkBAIC04NjcsNiArODY3LDEwIEBA IGFjbGRlZmF1bHQoT2JqZWN0VHlwZSBvYmp0eXBlLCBPaWQgb3duZXJJZCkKIAkJCXdvcmxkX2Rl ZmF1bHQgPSBBQ0xfTk9fUklHSFRTOwogCQkJb3duZXJfZGVmYXVsdCA9IEFDTF9BTExfUklHSFRT X1BBUkFNRVRFUl9BQ0w7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfWE1MU0NIRU1BOgorCQkJ d29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CisJCQlvd25lcl9kZWZhdWx0ID0gQUNMX0FM TF9SSUdIVFNfWE1MU0NIRU1BOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9S LCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsIChpbnQpIG9ianR5cGUpOwogCQkJd29y bGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCAwMzNiNjI1ZjNmYy4uMWM0MDBlOGRjYmQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTEwMTE5LDE3ICsxMDExOSwyMCBAQCBnZXRf cnVsZV9leHByKE5vZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCwKIAkJCQkJY2Fz ZSBJU19YTUxTRVJJQUxJWkU6CiAJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIlhN TFNFUklBTElaRSgiKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIElTX1hNTFZBTElEQVRFOgor CQkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJYTUxWQUxJREFURSgiKTsKKwkJCQkJ CWJyZWFrOwogCQkJCQljYXNlIElTX0RPQ1VNRU5UOgogCQkJCQkJYnJlYWs7CiAJCQkJfQotCQkJ CWlmICh4ZXhwci0+b3AgPT0gSVNfWE1MUEFSU0UgfHwgeGV4cHItPm9wID09IElTX1hNTFNFUklB TElaRSkKKwkJCQlpZiAoeGV4cHItPm9wID09IElTX1hNTFBBUlNFIHx8IHhleHByLT5vcCA9PSBJ U19YTUxTRVJJQUxJWkUgfHwgeGV4cHItPm9wID09IElTX1hNTFZBTElEQVRFKQogCQkJCXsKIAkJ CQkJaWYgKHhleHByLT54bWxvcHRpb24gPT0gWE1MT1BUSU9OX0RPQ1VNRU5UKQogCQkJCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJET0NVTUVOVCAiKTsKIAkJCQkJZWxzZQogCQkJCQkJ YXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJDT05URU5UICIpOwogCQkJCX0KLQkJCQlpZiAo eGV4cHItPm5hbWUpCisJCQkJaWYgKHhleHByLT5uYW1lICYmIHhleHByLT5vcCAhPSBJU19YTUxW QUxJREFURSkKIAkJCQl7CiAJCQkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiTkFNRSAlcyIsCiAJ CQkJCQkJCQkgcXVvdGVfaWRlbnRpZmllcihtYXBfeG1sX25hbWVfdG9fc3FsX2lkZW50aWZpZXIo eGV4cHItPm5hbWUpKSk7CkBAIC0xMDIyNiw2ICsxMDIyOSwxNSBAQCBnZXRfcnVsZV9leHByKE5v ZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCwKIAkJCQkJCQkJfQogCQkJCQkJCX0K IAkJCQkJCQlicmVhazsKKwkJCQkJCWNhc2UgSVNfWE1MVkFMSURBVEU6CisJCQkJCQkJQXNzZXJ0 KGxpc3RfbGVuZ3RoKHhleHByLT5hcmdzKSA9PSAyKTsKKworCQkJCQkJCWdldF9ydWxlX2V4cHIo KE5vZGUgKikgbGluaXRpYWwoeGV4cHItPmFyZ3MpLAorCQkJCQkJCQkJCSAgY29udGV4dCwgdHJ1 ZSk7CisKKwkJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiBBQ0NPUkRJTkcgVE8g WE1MU0NIRU1BICIpOworCQkJCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCB4ZXhwci0+ bmFtZSk7CisJCQkJCQkJYnJlYWs7CiAJCQkJCQljYXNlIElTX0RPQ1VNRU5UOgogCQkJCQkJCWdl dF9ydWxlX2V4cHJfcGFyZW4oKE5vZGUgKikgeGV4cHItPmFyZ3MsIGNvbnRleHQsIGZhbHNlLCBu b2RlKTsKIAkJCQkJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94 bWwuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYwppbmRleCBmNjlkYzY4Mjg2Yy4uZTE3 OWQ2MWY5MjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYworKysgYi9z cmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNsdWRlIDxs aWJ4bWwveG1sd3JpdGVyLmg+CiAjaW5jbHVkZSA8bGlieG1sL3hwYXRoLmg+CiAjaW5jbHVkZSA8 bGlieG1sL3hwYXRoSW50ZXJuYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbHNjaGVtYXMuaD4K IAogLyoKICAqIFdlIHVzZWQgdG8gY2hlY2sgZm9yIHhtbFN0cnVjdHVyZWRFcnJvckNvbnRleHQg dmlhIGEgY29uZmlndXJlIHRlc3Q7IGJ1dApAQCAtODQsNiArODUsNyBAQAogI2luY2x1ZGUgImNh dGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jbGFzcy5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfeG1sc2NoZW1hLmgi CiAjaW5jbHVkZSAiZXhlY3V0b3Ivc3BpLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvdGFibGVmdW5j LmgiCiAjaW5jbHVkZSAiZm1nci5oIgpAQCAtOTQsNiArOTYsNyBAQAogI2luY2x1ZGUgIm5vZGVz L2V4ZWNub2Rlcy5oIgogI2luY2x1ZGUgIm5vZGVzL21pc2Nub2Rlcy5oIgogI2luY2x1ZGUgIm5v ZGVzL25vZGVGdW5jcy5oIgorI2luY2x1ZGUgInV0aWxzL2FjbC5oIgogI2luY2x1ZGUgInV0aWxz L2FycmF5LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9k YXRlLmgiCkBAIC0xMTU4LDEwICsxMTYxLDE0NCBAQCB4bWx2YWxpZGF0ZShQR19GVU5DVElPTl9B UkdTKQogewogCWVyZXBvcnQoRVJST1IsCiAJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCi0JCQkgZXJybXNnKCJ4bWx2YWxpZGF0ZSBpcyBub3QgaW1wbGVtZW50ZWQi KSkpOworCQkJIGVycm1zZygieG1sdmFsaWRhdGUgaXMgbm90IGltcGxlbWVudGVkIGFnYWluc3Qg Z2VuZXJhbGl6ZWQgc2NoZW1hIGRlZmluaXRpb25zIikpKTsKIAlyZXR1cm4gMDsKIH0KKy8qCisg KiB4bWx2YWxpZGF0ZV9zY2hlbWEgLSB2YWxpZGF0ZSBYTUwgZG9jdW1lbnQgYWdhaW5zdCBhIHJl Z2lzdGVyZWQgWE1MIFNjaGVtYQorICoKKyAqIFZhbGlkYXRlcyB0aGUgZ2l2ZW4gWE1MIGRvY3Vt ZW50IGFnYWluc3QgdGhlIHNjaGVtYSBpZGVudGlmaWVkIGJ5IGEgc2NoZW1hX29pZC4KKyAqIFJl dHVybnMgdGhlIHZhbGlkYXRlZCBYTUwgdmFsdWUsIG9yIHJhaXNlcyBhbiBlcnJvciBpZiB0aGUg dmFsaWRhdGlvbiBmYWlscy4KKyAqLworeG1sdHlwZSAqCit4bWx2YWxpZGF0ZV9zY2hlbWEoeG1s dHlwZSAqZGF0YSwgT2lkIHNjaGVtYV9vaWQpCit7CisjaWZkZWYgVVNFX0xJQlhNTAorCUhlYXBU dXBsZQl0dXBsZTsKKwlEYXR1bQkJc2NoZW1hX2RhdHVtOworCWJvb2wJCWlzbnVsbDsKKwl0ZXh0 CSAgICpzY2hlbWFfdGV4dDsKKwljaGFyCSAgICpzY2hlbWFzdHI7CisJdm9sYXRpbGUgeG1sRG9j UHRyIGRvYyA9IE5VTEw7CisJdm9sYXRpbGUgeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBzY2hlbWFf cGFyc2VyX2N0eHQgPSBOVUxMOworCXZvbGF0aWxlIHhtbFNjaGVtYVB0ciBzY2hlbWFfcHRyID0g TlVMTDsKKwl2b2xhdGlsZSB4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmFsaWRfY3R4dCA9IE5VTEw7 CisJaW50CQkJcmVzdWx0OworCVBnWG1sRXJyb3JDb250ZXh0ICp4bWxlcnJjeHQ7CisJQWNsUmVz dWx0CWFjbHJlc3VsdDsKKworCS8qIENoZWNrIHVzYWdlIHBlcm1pc3Npb24gZmlyc3QgKi8KKwlh Y2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soWG1sU2NoZW1hUmVsYXRpb25JZCwgc2NoZW1hX29p ZCwKKwkJCQkJCQkJR2V0VXNlcklkKCksIEFDTF9VU0FHRSk7CisJaWYgKGFjbHJlc3VsdCAhPSBB Q0xDSEVDS19PSykKKwl7CisJCS8qIEZldGNoIHR1cGxlIG9ubHkgdG8gZ2V0IG5hbWUgZm9yIHRo ZSBlcnJvciBtZXNzYWdlICovCisJCUZvcm1fcGdfeG1sc2NoZW1hIHNjaGVtYV9mb3JtOworCisJ CXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKFhNTFNDSEVNQU9JRCwgT2JqZWN0SWRHZXREYXR1bShz Y2hlbWFfb2lkKSk7CisJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkpCisJCQllbG9nKEVS Uk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgWE1MIHNjaGVtYSAldSIsIHNjaGVtYV9vaWQp OworCisJCXNjaGVtYV9mb3JtID0gKEZvcm1fcGdfeG1sc2NoZW1hKSBHRVRTVFJVQ1QodHVwbGUp OworCQlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworCisJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3Vs dCwgT0JKRUNUX1hNTFNDSEVNQSwKKwkJCQkJICAgTmFtZVN0cihzY2hlbWFfZm9ybS0+c2NoZW1h bmFtZSkpOworCX0KKworCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKFhNTFNDSEVNQU9JRCwgT2Jq ZWN0SWRHZXREYXR1bShzY2hlbWFfb2lkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cGxl KSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIFhNTCBzY2hlbWEgJXUi LCBzY2hlbWFfb2lkKTsKKworCXNjaGVtYV9kYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihYTUxTQ0hF TUFPSUQsIHR1cGxlLAorCQkJCQkJCQkgICBBbnVtX3BnX3htbHNjaGVtYV9zY2hlbWFkYXRhLCAm aXNudWxsKTsKKwlpZiAoaXNudWxsKQorCQllbG9nKEVSUk9SLCAibnVsbCBzY2hlbWFkYXRhIGZv ciBYTUwgc2NoZW1hICV1Iiwgc2NoZW1hX29pZCk7CisKKwlzY2hlbWFfdGV4dCA9IERhdHVtR2V0 VGV4dFBQKHNjaGVtYV9kYXR1bSk7CisJc2NoZW1hc3RyID0gdGV4dF90b19jc3RyaW5nKHNjaGVt YV90ZXh0KTsKKwlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworCisJeG1sZXJyY3h0ID0gcGdfeG1s X2luaXQoUEdfWE1MX1NUUklDVE5FU1NfV0VMTEZPUk1FRCk7CisKKwlQR19UUlkoKTsKKwl7CisJ CUVycm9yU2F2ZUNvbnRleHQgZXNjb250ZXh0ID0ge1RfRXJyb3JTYXZlQ29udGV4dH07CisJCWRv YyA9IHhtbF9wYXJzZSgodGV4dCAqKSBkYXRhLCBYTUxPUFRJT05fRE9DVU1FTlQsIHRydWUsCisJ CQkJCQlHZXREYXRhYmFzZUVuY29kaW5nKCksIE5VTEwsIE5VTEwsIChOb2RlICopICZlc2NvbnRl eHQpOworCisJCWlmIChlc2NvbnRleHQuZXJyb3Jfb2NjdXJyZWQgfHwgZG9jID09IE5VTEwpCisJ CXsKKwkJCWlmIChlc2NvbnRleHQuZXJyb3Jfb2NjdXJyZWQgJiYgZXNjb250ZXh0LmVycm9yX2Rh dGEpCisJCQl7CisJCQkJRXJyb3JEYXRhICplZGF0YSA9IGVzY29udGV4dC5lcnJvcl9kYXRhOwor CQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfWE1MX0RP Q1VNRU5UKSwKKwkJCQkJCSBlcnJtc2coImludmFsaWQgWE1MIGRvY3VtZW50IiksCisJCQkJCQkg ZXJyZGV0YWlsX2ludGVybmFsKCIlcyIsIGVkYXRhLT5tZXNzYWdlID8gZWRhdGEtPm1lc3NhZ2Ug OiAidW5rbm93biBlcnJvciIpKSk7CisJCQl9CisJCQl4bWxfZXJlcG9ydCh4bWxlcnJjeHQsIEVS Uk9SLCBFUlJDT0RFX0lOVkFMSURfWE1MX0RPQ1VNRU5ULAorCQkJCQkJImludmFsaWQgWE1MIGRv Y3VtZW50Iik7CisJCX0KIAorCQlzY2hlbWFfcGFyc2VyX2N0eHQgPSB4bWxTY2hlbWFOZXdNZW1Q YXJzZXJDdHh0KHNjaGVtYXN0ciwgc3RybGVuKHNjaGVtYXN0cikpOworCQlpZiAoc2NoZW1hX3Bh cnNlcl9jdHh0ID09IE5VTEwpCisJCQl4bWxfZXJlcG9ydCh4bWxlcnJjeHQsIEVSUk9SLCBFUlJD T0RFX0lOVEVSTkFMX0VSUk9SLAorCQkJCQkJImZhaWxlZCB0byBjcmVhdGUgc2NoZW1hIHBhcnNl ciBjb250ZXh0Iik7CisKKwkJc2NoZW1hX3B0ciA9IHhtbFNjaGVtYVBhcnNlKHNjaGVtYV9wYXJz ZXJfY3R4dCk7CisJCWlmIChzY2hlbWFfcHRyID09IE5VTEwpCisJCQl4bWxfZXJlcG9ydCh4bWxl cnJjeHQsIEVSUk9SLCBFUlJDT0RFX0lOVkFMSURfWE1MX0RPQ1VNRU5ULAorCQkJCQkJImZhaWxl ZCB0byBwYXJzZSBYTUwgc2NoZW1hIik7CisKKwkJdmFsaWRfY3R4dCA9IHhtbFNjaGVtYU5ld1Zh bGlkQ3R4dChzY2hlbWFfcHRyKTsKKwkJaWYgKHZhbGlkX2N0eHQgPT0gTlVMTCkKKwkJCXhtbF9l cmVwb3J0KHhtbGVycmN4dCwgRVJST1IsIEVSUkNPREVfT1VUX09GX01FTU9SWSwKKwkJCQkJCSJm YWlsZWQgdG8gY3JlYXRlIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQiKTsKKworCQl4bWxTY2hl bWFTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnModmFsaWRfY3R4dCwgeG1sX2Vycm9ySGFuZGxlciwg eG1sZXJyY3h0KTsKKworCQlyZXN1bHQgPSB4bWxTY2hlbWFWYWxpZGF0ZURvYyh2YWxpZF9jdHh0 LCBkb2MpOworCQlpZiAocmVzdWx0IDwgMCkKKwkJCXhtbF9lcmVwb3J0KHhtbGVycmN4dCwgRVJS T1IsIEVSUkNPREVfSU5URVJOQUxfRVJST1IsCisJCQkJCQkiaW50ZXJuYWwgZXJyb3IgZHVyaW5n IHNjaGVtYSB2YWxpZGF0aW9uIik7CisJCWlmIChyZXN1bHQgPiAwKQorCQkJeG1sX2VyZXBvcnQo eG1sZXJyY3h0LCBFUlJPUiwgRVJSQ09ERV9JTlZBTElEX1hNTF9ET0NVTUVOVCwKKwkJCQkJCSJY TUwgdmFsaWRhdGlvbiBmYWlsZWQiKTsKKwl9CisJUEdfQ0FUQ0goKTsKKwl7CisJCWlmICh2YWxp ZF9jdHh0KQorCQkJeG1sU2NoZW1hRnJlZVZhbGlkQ3R4dCh2YWxpZF9jdHh0KTsKKwkJaWYgKHNj aGVtYV9wdHIpCisJCQl4bWxTY2hlbWFGcmVlKHNjaGVtYV9wdHIpOworCQlpZiAoc2NoZW1hX3Bh cnNlcl9jdHh0KQorCQkJeG1sU2NoZW1hRnJlZVBhcnNlckN0eHQoc2NoZW1hX3BhcnNlcl9jdHh0 KTsKKwkJaWYgKGRvYykKKwkJCXhtbEZyZWVEb2MoZG9jKTsKKwkJcGdfeG1sX2RvbmUoeG1sZXJy Y3h0LCB0cnVlKTsKKwkJcGZyZWUoc2NoZW1hc3RyKTsKKwkJUEdfUkVfVEhST1coKTsKKwl9CisJ UEdfRU5EX1RSWSgpOworCisJaWYgKHZhbGlkX2N0eHQpCisJCXhtbFNjaGVtYUZyZWVWYWxpZEN0 eHQodmFsaWRfY3R4dCk7CisJaWYgKHNjaGVtYV9wdHIpCisJCXhtbFNjaGVtYUZyZWUoc2NoZW1h X3B0cik7CisJaWYgKHNjaGVtYV9wYXJzZXJfY3R4dCkKKwkJeG1sU2NoZW1hRnJlZVBhcnNlckN0 eHQoc2NoZW1hX3BhcnNlcl9jdHh0KTsKKwlpZiAoZG9jKQorCQl4bWxGcmVlRG9jKGRvYyk7CisK KwlwZ194bWxfZG9uZSh4bWxlcnJjeHQsIGZhbHNlKTsKKwlwZnJlZShzY2hlbWFzdHIpOworCXJl dHVybiBkYXRhOworI2Vsc2UKKwlOT19YTUxfU1VQUE9SVCgpOworCXJldHVybiBOVUxMOworI2Vu ZGlmCit9CiAKIGJvb2wKIHhtbF9pc19kb2N1bWVudCh4bWx0eXBlICphcmcpCkBAIC0xMTgxLDcg KzEzMTgsNyBAQCB4bWxfaXNfZG9jdW1lbnQoeG1sdHlwZSAqYXJnKQogCXJldHVybiAhZXNjb250 ZXh0LmVycm9yX29jY3VycmVkOwogI2Vsc2UJCQkJCQkJLyogbm90IFVTRV9MSUJYTUwgKi8KIAlO T19YTUxfU1VQUE9SVCgpOwotCXJldHVybiBmYWxzZTsKKwlyZXR1cm4gTlVMTDsKICNlbmRpZgkJ CQkJCQkvKiBub3QgVVNFX0xJQlhNTCAqLwogfQogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL01ha2VmaWxlIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQppbmRleCBjOTAw MjJmN2M1Ny4uZGNiMWQ4OTZkOWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFr ZWZpbGUKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQpAQCAtNzIsNiArNzIsNyBA QCBDQVRBTE9HX0hFQURFUlMgOj0gXAogCXBnX3NlY2xhYmVsLmggXAogCXBnX3Noc2VjbGFiZWwu aCBcCiAJcGdfY29sbGF0aW9uLmggXAorCXBnX3htbHNjaGVtYS5oIFwKIAlwZ19wYXJhbWV0ZXJf YWNsLmggXAogCXBnX3BhcnRpdGlvbmVkX3RhYmxlLmggXAogCXBnX3JhbmdlLmggXApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvbWVzb24uYnVpbGQKaW5kZXggYjYzY2Q1ODQwNjguLjU4NDY5MTlmNjI2IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvbWVzb24uYnVpbGQKQEAgLTU5LDYgKzU5LDcgQEAgY2F0YWxvZ19oZWFkZXJzID0gWwogICAn cGdfc2VjbGFiZWwuaCcsCiAgICdwZ19zaHNlY2xhYmVsLmgnLAogICAncGdfY29sbGF0aW9uLmgn LAorICAncGdfeG1sc2NoZW1hLmgnLAogICAncGdfcGFyYW1ldGVyX2FjbC5oJywKICAgJ3BnX3Bh cnRpdGlvbmVkX3RhYmxlLmgnLAogICAncGdfcmFuZ2UuaCcsCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2Uu aAppbmRleCAxYTI1OTczNjg1Yy4uYTBmOTU4NWM1M2EgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvbmFtZXNwYWNlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2Uu aApAQCAtMTkxLDYgKzE5MSw3IEBAIGV4dGVybiBib29sIFNlYXJjaFBhdGhNYXRjaGVzQ3VycmVu dEVudmlyb25tZW50KFNlYXJjaFBhdGhNYXRjaGVyICpwYXRoKTsKIAogZXh0ZXJuIE9pZAlnZXRf Y29sbGF0aW9uX29pZChMaXN0ICpjb2xsbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBP aWQJZ2V0X2NvbnZlcnNpb25fb2lkKExpc3QgKmNvbm5hbWUsIGJvb2wgbWlzc2luZ19vayk7Citl eHRlcm4gT2lkCWdldF94bWxzY2hlbWFfb2lkKExpc3QgKnNjaGVtYW5hbWUsIGJvb2wgbWlzc2lu Z19vayk7CiBleHRlcm4gT2lkCUZpbmREZWZhdWx0Q29udmVyc2lvblByb2MoaW50MzIgZm9yX2Vu Y29kaW5nLCBpbnQzMiB0b19lbmNvZGluZyk7CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ194bWxzY2hlbWEuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfeG1sc2NoZW1h LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg2ZDIyOGFkMTVmCi0t LSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ194bWxzY2hlbWEuaApAQCAt MCwwICsxLDQzIEBACisjaWZuZGVmIFBHX1hNTFNDSEVNQV9ICisjZGVmaW5lIFBHX1hNTFNDSEVN QV9ICisKKyNpbmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdf eG1sc2NoZW1hX2QuaCIKKworQ0FUQUxPRyhwZ194bWxzY2hlbWEsNjQzNCxYbWxTY2hlbWFSZWxh dGlvbklkKQoreworICAgIE9pZCAgICAgIG9pZDsgICAgICAgIC8qIG9pZCAqLworICAgIE5hbWVE YXRhIHNjaGVtYW5hbWU7IC8qIFhNTCBzY2hlbWEgbmFtZSAqLworICAgIC8qIE9JRCBvZiBuYW1l c3BhY2UgY29udGFpbmluZyB0aGlzIFhNTCBzY2hlbWEgKi8KKyAgICBPaWQgc2NoZW1hbmFtZXNw YWNlIEJLSV9ERUZBVUxUKHBnX2NhdGFsb2cpIEJLSV9MT09LVVAocGdfbmFtZXNwYWNlKTsKKyAg ICAvKiBvd25lciBvZiBYTUwgc2NoZW1hICovCisgICAgT2lkIHNjaGVtYW93bmVyIEJLSV9ERUZB VUxUKFBPU1RHUkVTKSBCS0lfTE9PS1VQKHBnX2F1dGhpZCk7CisjaWZkZWYgQ0FUQUxPR19WQVJM RU4KKyAgICB0ZXh0IHNjaGVtYWRhdGEgQktJX0ZPUkNFX05PVF9OVUxMOyAvKiBYU0Qgc2NoZW1h IGRlZmluaXRpb24gdGV4dCAqLworICAgIC8qIEFjY2VzcyBwcml2aWxlZ2VzICovCisgICAgYWNs aXRlbSBzY2hlbWFhY2xbMV0gQktJX0RFRkFVTFQoX251bGxfKTsKKyNlbmRpZgorfSBGb3JtRGF0 YV9wZ194bWxzY2hlbWE7CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqICAgICAgICBGb3JtX3Bn X3htbHNjaGVtYSBtYXBzIHRvIGEgcG9pbnRlciB0byBhIHJvdyB3aXRoCisgKiAgICAgICAgdGhl IGZvcm1hdCBvZiBwZ194bWxzY2hlbWEgcmVsYXRpb24uCisgKiAtLS0tLS0tLS0tLS0tLS0tCisg Ki8KK3R5cGVkZWYgRm9ybURhdGFfcGdfeG1sc2NoZW1hICpGb3JtX3BnX3htbHNjaGVtYTsKKwor REVDTEFSRV9UT0FTVChwZ194bWxzY2hlbWEsIDY0MzUsIDY0MzYpOworREVDTEFSRV9VTklRVUVf SU5ERVgocGdfeG1sc2NoZW1hX25hbWVfbnNwX2luZGV4LCA2NDM3LCBYbWxTY2hlbWFOYW1lTnNw SW5kZXhJZCwgcGdfeG1sc2NoZW1hLCBidHJlZShzY2hlbWFuYW1lIG5hbWVfb3BzLCBzY2hlbWFu YW1lc3BhY2Ugb2lkX29wcykpOworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ194bWxzY2hl bWFfb2lkX2luZGV4LCA2NDM4LCBYbWxTY2hlbWFPaWRJbmRleElkLCBwZ194bWxzY2hlbWEsIGJ0 cmVlKG9pZCBvaWRfb3BzKSk7CisKK01BS0VfU1lTQ0FDSEUoWE1MU0NIRU1BTkFNRU5TUCwgcGdf eG1sc2NoZW1hX25hbWVfbnNwX2luZGV4LCA4KTsKK01BS0VfU1lTQ0FDSEUoWE1MU0NIRU1BT0lE LCBwZ194bWxzY2hlbWFfb2lkX2luZGV4LCA4KTsKKworZXh0ZXJuIE9pZCAgICBYbWxTY2hlbWFD cmVhdGUoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBPaWQgc2NoZW1hbmFtZXNwYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9pZCBz Y2hlbWFvd25lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzY2hl bWFkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaWZfbm90X2V4aXN0cywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHF1aWV0KTsKKworI2VuZGlmIC8qIFBH X1hNTFNDSEVNQV9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy94bWxzY2hl bWFjbWRzLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy94bWxzY2hlbWFjbWRzLmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRiOGMxNjk0NTJlCi0tLSAvZGV2L251bGwK KysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMveG1sc2NoZW1hY21kcy5oCkBAIC0wLDAgKzEsMTAg QEAKKyNpZm5kZWYgWE1MU0NIRU1BQ01EU19ICisjZGVmaW5lIFhNTFNDSEVNQUNNRFNfSAorCisj aW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNl X25vZGUuaCIKKworZXh0ZXJuIE9iamVjdEFkZHJlc3MgRGVmaW5lWG1sU2NoZW1hKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgTGlzdCAqbmFtZXMsIExpc3QgKnBhcmFtZXRlcnMsIGJvb2wgaWZfbm90X2V4 aXN0cyk7CitleHRlcm4gdm9pZCBJc1RoZXJlWG1sU2NoZW1hSW5OYW1lc3BhY2UoY29uc3QgY2hh ciAqc2NoZW1hbmFtZSwgT2lkIG5zcE9pZCk7CisKKyNlbmRpZiAvKiBYTUxTQ0hFTUFDTURTX0gg Ki8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBhYWM0YmZjNzBkOS4uYjEyMjdmMWE3YjcgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTI0MDEsNiArMjQwMSw3IEBAIHR5cGVkZWYgZW51bSBP YmplY3RUeXBlCiAJT0JKRUNUX1RZUEUsCiAJT0JKRUNUX1VTRVJfTUFQUElORywKIAlPQkpFQ1Rf VklFVywKKwlPQkpFQ1RfWE1MU0NIRU1BLAogfSBPYmplY3RUeXBlOwogCiAvKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBi L3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IDUyMTFjYWRjMjU4Li5jNDBjYmM4 OTgxYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAgLTE2MTAsNiArMTYxMCw3IEBAIHR5cGVkZWYg ZW51bSBYbWxFeHByT3AKIAlJU19YTUxST09ULAkJCQkJLyogWE1MUk9PVCh4bWwsIHZlcnNpb24s IHN0YW5kYWxvbmUpICovCiAJSVNfWE1MU0VSSUFMSVpFLAkJCS8qIFhNTFNFUklBTElaRShpc19k b2N1bWVudCwgeG1sdmFsLCBpbmRlbnQpICovCiAJSVNfRE9DVU1FTlQsCQkJCS8qIHhtbHZhbCBJ UyBET0NVTUVOVCAqLworCUlTX1hNTFZBTElEQVRFLAkJCQkvKiBYTUxWQUxJREFURSh4bWx2YWws IHNjaGVtYSkgKi8KIH0gWG1sRXhwck9wOwogCiB0eXBlZGVmIGVudW0gWG1sT3B0aW9uVHlwZQpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFy c2VyL2t3bGlzdC5oCmluZGV4IGY3NzUzYzVjOGE4Li40ZThiNWUxZDdlNyAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xp c3QuaApAQCAtMjksNiArMjksNyBAQCBQR19LRVlXT1JEKCJhYm9ydCIsIEFCT1JUX1AsIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImFic2VudCIsIEFCU0VOVCwg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiYWJzb2x1dGUiLCBB QlNPTFVURV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJh Y2Nlc3MiLCBBQ0NFU1MsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdP UkQoImFjY29yZGluZyIsIEFDQ09SRElORywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQogUEdfS0VZV09SRCgiYWN0aW9uIiwgQUNUSU9OLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJhZGQiLCBBRERfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgiYWRtaW4iLCBBRE1JTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQpAQCAtNTIwLDggKzUyMSwxMCBAQCBQR19LRVlXT1JEKCJ4bWxuYW1lc3BhY2Vz IiwgWE1MTkFNRVNQQUNFUywgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdP UkQoInhtbHBhcnNlIiwgWE1MUEFSU0UsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJ4bWxwaSIsIFhNTFBJLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQog UEdfS0VZV09SRCgieG1scm9vdCIsIFhNTFJPT1QsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFC RUwpCitQR19LRVlXT1JEKCJ4bWxzY2hlbWEiLCBYTUxTQ0hFTUEsIFVOUkVTRVJWRURfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInhtbHNlcmlhbGl6ZSIsIFhNTFNFUklBTElaRSwg Q09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInhtbHRhYmxlIiwgWE1M VEFCTEUsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJ4bWx2YWxp ZGF0ZSIsIFhNTFZBTElEQVRFLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZ V09SRCgieWVhciIsIFlFQVJfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKIFBHX0tF WVdPUkQoInllcyIsIFlFU19QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19L RVlXT1JEKCJ6b25lIiwgWk9ORSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9zcmMvaW5jbHVkZS90Y29w L2NtZHRhZ2xpc3QuaAppbmRleCAxMjkwYzliYWI2OC4uMWNkMzU0NTJhY2QgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21k dGFnbGlzdC5oCkBAIC0zMSw2ICszMSw3IEBAIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfQ0FTVCwg IkFMVEVSIENBU1QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVS X0NPTExBVElPTiwgIkFMVEVSIENPTExBVElPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NN RFRBRyhDTURUQUdfQUxURVJfQ09OU1RSQUlOVCwgIkFMVEVSIENPTlNUUkFJTlQiLCB0cnVlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX0NPTlZFUlNJT04sICJBTFRFUiBD T05WRVJTSU9OIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19BTFRFUl9Y TUxTQ0hFTUEsICJBTFRFUiBYTUxTQ0hFTUEiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURU QUcoQ01EVEFHX0FMVEVSX0RBVEFCQVNFLCAiQUxURVIgREFUQUJBU0UiLCBmYWxzZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9ERUZBVUxUX1BSSVZJTEVHRVMsICJBTFRF UiBERUZBVUxUIFBSSVZJTEVHRVMiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0FMVEVSX0RPTUFJTiwgIkFMVEVSIERPTUFJTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKQEAg LTg4LDYgKzg5LDcgQEAgUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQ0FTVCwgIkNSRUFURSBDQVNU IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQ09MTEFUSU9O LCAiQ1JFQVRFIENPTExBVElPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfQ1JFQVRFX0NPTlNUUkFJTlQsICJDUkVBVEUgQ09OU1RSQUlOVCIsIHRydWUsIGZhbHNlLCBm YWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX0NPTlZFUlNJT04sICJDUkVBVEUgQ09OVkVS U0lPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1hNTFND SEVNQSwgIkNSRUFURSBYTUxTQ0hFTUEiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUco Q01EVEFHX0NSRUFURV9EQVRBQkFTRSwgIkNSRUFURSBEQVRBQkFTRSIsIGZhbHNlLCBmYWxzZSwg ZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9ET01BSU4sICJDUkVBVEUgRE9NQUlOIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfRVZFTlRfVFJJR0dF UiwgIkNSRUFURSBFVkVOVCBUUklHR0VSIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKQEAgLTE0MCw2 ICsxNDIsNyBAQCBQR19DTURUQUcoQ01EVEFHX0RST1BfQ0FTVCwgIkRST1AgQ0FTVCIsIHRydWUs IGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9DT0xMQVRJT04sICJEUk9QIENP TExBVElPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9DT05T VFJBSU5ULCAiRFJPUCBDT05TVFJBSU5UIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19EUk9QX0NPTlZFUlNJT04sICJEUk9QIENPTlZFUlNJT04iLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0RST1BfWE1MU0NIRU1BLCAiRFJPUCBYTUxTQ0hFTUEi LCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfREFUQUJBU0UsICJE Uk9QIERBVEFCQVNFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJP UF9ET01BSU4sICJEUk9QIERPTUFJTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhD TURUQUdfRFJPUF9FVkVOVF9UUklHR0VSLCAiRFJPUCBFVkVOVCBUUklHR0VSIiwgZmFsc2UsIGZh bHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oIGIvc3JjL2lu Y2x1ZGUvdXRpbHMvYWNsLmgKaW5kZXggZWMwMWZkNTgxY2YuLmUyNDQyN2M5NjYzIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9hY2wu aApAQCAtMTY5LDYgKzE2OSw3IEBAIHR5cGVkZWYgc3RydWN0IEFycmF5VHlwZSBBY2w7CiAjZGVm aW5lIEFDTF9BTExfUklHSFRTX1NDSEVNQQkJKEFDTF9VU0FHRXxBQ0xfQ1JFQVRFKQogI2RlZmlu ZSBBQ0xfQUxMX1JJR0hUU19UQUJMRVNQQUNFCShBQ0xfQ1JFQVRFKQogI2RlZmluZSBBQ0xfQUxM X1JJR0hUU19UWVBFCQkJKEFDTF9VU0FHRSkKKyNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfWE1MU0NI RU1BCShBQ0xfVVNBR0UpCiAKIC8qIG9wZXJhdGlvbiBjb2RlcyBmb3IgcGdfKl9hY2xtYXNrICov CiB0eXBlZGVmIGVudW0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3htbC5oIGIvc3Jj L2luY2x1ZGUvdXRpbHMveG1sLmgKaW5kZXggMDNhY2IyNTU0NDkuLmRjNmE0ZDM3ODQwIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy94bWwuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy94 bWwuaApAQCAtNzYsNiArNzYsNyBAQCBleHRlcm4geG1sdHlwZSAqeG1sZWxlbWVudChYbWxFeHBy ICp4ZXhwciwKIGV4dGVybiB4bWx0eXBlICp4bWxwYXJzZSh0ZXh0ICpkYXRhLCBYbWxPcHRpb25U eXBlIHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJlc2VydmVfd2hpdGVzcGFjZSk7CiBleHRlcm4geG1s dHlwZSAqeG1scGkoY29uc3QgY2hhciAqdGFyZ2V0LCB0ZXh0ICphcmcsIGJvb2wgYXJnX2lzX251 bGwsIGJvb2wgKnJlc3VsdF9pc19udWxsKTsKIGV4dGVybiB4bWx0eXBlICp4bWxyb290KHhtbHR5 cGUgKmRhdGEsIHRleHQgKnZlcnNpb24sIGludCBzdGFuZGFsb25lKTsKK2V4dGVybiB4bWx0eXBl ICp4bWx2YWxpZGF0ZV9zY2hlbWEoeG1sdHlwZSAqZGF0YSwgT2lkIHNjaGVtYV9vaWQpOwogZXh0 ZXJuIGJvb2wgeG1sX2lzX2RvY3VtZW50KHhtbHR5cGUgKmFyZyk7CiBleHRlcm4gdGV4dCAqeG1s dG90ZXh0X3dpdGhfb3B0aW9ucyh4bWx0eXBlICpkYXRhLCBYbWxPcHRpb25UeXBlIHhtbG9wdGlv bl9hcmcsCiAJCQkJCQkJCQlib29sIGluZGVudCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lk am9pbnMub3V0CmluZGV4IDIxNWViODk5YmUzLi41NDRiM2VmMzFlZCAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9vaWRqb2lucy5vdXQKQEAgLTIzOSw2ICsyMzksOCBAQCBOT1RJQ0U6ICBjaGVj a2luZyBwZ19zZWNsYWJlbCB7Y2xhc3NvaWR9ID0+IHBnX2NsYXNzIHtvaWR9CiBOT1RJQ0U6ICBj aGVja2luZyBwZ19zaHNlY2xhYmVsIHtjbGFzc29pZH0gPT4gcGdfY2xhc3Mge29pZH0KIE5PVElD RTogIGNoZWNraW5nIHBnX2NvbGxhdGlvbiB7Y29sbG5hbWVzcGFjZX0gPT4gcGdfbmFtZXNwYWNl IHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19jb2xsYXRpb24ge2NvbGxvd25lcn0gPT4gcGdf YXV0aGlkIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ194bWxzY2hlbWEge3NjaGVtYW5hbWVz cGFjZX0gPT4gcGdfbmFtZXNwYWNlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ194bWxzY2hl bWEge3NjaGVtYW93bmVyfSA9PiBwZ19hdXRoaWQge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBn X3BhcnRpdGlvbmVkX3RhYmxlIHtwYXJ0cmVsaWR9ID0+IHBnX2NsYXNzIHtvaWR9CiBOT1RJQ0U6 ICBjaGVja2luZyBwZ19wYXJ0aXRpb25lZF90YWJsZSB7cGFydGRlZmlkfSA9PiBwZ19jbGFzcyB7 b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfcGFydGl0aW9uZWRfdGFibGUge3BhcnRjbGFzc30g PT4gcGdfb3BjbGFzcyB7b2lkfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC94bWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC94bWwub3V0CmluZGV4IDEwM2Ey MmEzYjFkLi4wMzYyZjMxNzUyZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC94bWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQveG1sLm91dApAQCAtMTg4 MSwzICsxODgxLDMwMCBAQCBTRUxFQ1QgeG1sdGV4dCgneCd8fCAnPFA+NzM8L1A+Jzo6eG1sIHx8 IC40MiB8fCB0cnVlIHx8ICdqJzo6Y2hhcik7CiAgeCZsdDtQJmd0OzczJmx0Oy9QJmd0OzAuNDJ0 cnVlagogKDEgcm93KQogCitDUkVBVEUgWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWEgQVMgJzw/eG1s IHZlcnNpb249IjEuMCI/PgorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcv MjAwMS9YTUxTY2hlbWEiPgorICA8eHM6ZWxlbWVudCBuYW1lPSJwZXJzb24iPgorICAgIDx4czpj b21wbGV4VHlwZT4KKyAgICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFt ZT0ibmFtZSIgdHlwZT0ieHM6c3RyaW5nIi8+CisgICAgICAgIDx4czplbGVtZW50IG5hbWU9ImFn ZSIgdHlwZT0ieHM6aW50ZWdlciIvPgorICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICA8L3hzOmNv bXBsZXhUeXBlPgorICA8L3hzOmVsZW1lbnQ+Cis8L3hzOnNjaGVtYT4nOworQ1JFQVRFIFhNTFND SEVNQSBJRiBOT1QgRVhJU1RTIHBlcnNvbl9zY2hlbWEgQVMgJzw/eG1sIHZlcnNpb249IjEuMCI/ PgorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEi PgorICA8eHM6ZWxlbWVudCBuYW1lPSJvdGhlciIgdHlwZT0ieHM6c3RyaW5nIi8+Cis8L3hzOnNj aGVtYT4nOworTk9USUNFOiAgWE1MIHNjaGVtYSAicGVyc29uX3NjaGVtYSIgYWxyZWFkeSBleGlz dHMsIHNraXBwaW5nCitDUkVBVEUgWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWEgQVMgJzw/eG1sIHZl cnNpb249IjEuMCI/PgorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAw MS9YTUxTY2hlbWEiPgorICA8eHM6ZWxlbWVudCBuYW1lPSJkdXBsaWNhdGUiIHR5cGU9InhzOnN0 cmluZyIvPgorPC94czpzY2hlbWE+JzsKK0VSUk9SOiAgWE1MIHNjaGVtYSAicGVyc29uX3NjaGVt YSIgYWxyZWFkeSBleGlzdHMKK0NSRUFURSBTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnM7CitDUkVB VEUgWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLnByb2R1Y3Rfc2NoZW1hIEFTICc8P3htbCB2 ZXJzaW9uPSIxLjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIw MDEvWE1MU2NoZW1hIj4KKyAgPHhzOmVsZW1lbnQgbmFtZT0icHJvZHVjdCI+CisgICAgPHhzOmNv bXBsZXhUeXBlPgorICAgICAgPHhzOnNlcXVlbmNlPgorICAgICAgICA8eHM6ZWxlbWVudCBuYW1l PSJuYW1lIiB0eXBlPSJ4czpzdHJpbmciLz4KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0icHJp Y2UiIHR5cGU9InhzOmRlY2ltYWwiLz4KKyAgICAgIDwveHM6c2VxdWVuY2U+CisgICAgICA8eHM6 YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJ4czpzdHJpbmciIHVzZT0icmVxdWlyZWQiLz4KKyAg ICA8L3hzOmNvbXBsZXhUeXBlPgorICA8L3hzOmVsZW1lbnQ+Cis8L3hzOnNjaGVtYT4nOworQ1JF QVRFIFhNTFNDSEVNQSBiYWRfc2NoZW1hIEFTICc8dGhpcy1pcy1ub3QtdmFsaWQteHNkPic7CitF UlJPUjogIGludmFsaWQgWE1MIHNjaGVtYSBkZWZpbml0aW9uCitERVRBSUw6ICBsaW5lIDE6IFBy ZW1hdHVyZSBlbmQgb2YgZGF0YSBpbiB0YWcgdGhpcy1pcy1ub3QtdmFsaWQteHNkIGxpbmUgMQor PHRoaXMtaXMtbm90LXZhbGlkLXhzZD4KKyAgICAgICAgICAgICAgICAgICAgICAgXgorQ1JFQVRF IFhNTFNDSEVNQSBiYWRfeG1sX3NjaGVtYSBBUyAnbm90IGV2ZW4geG1sJzsKK0VSUk9SOiAgaW52 YWxpZCBYTUwgc2NoZW1hIGRlZmluaXRpb24KK0RFVEFJTDogIGxpbmUgMTogU3RhcnQgdGFnIGV4 cGVjdGVkLCAnPCcgbm90IGZvdW5kCitub3QgZXZlbiB4bWwKK14KK0NSRUFURSBYTUxTQ0hFTUEg Ym9va19zY2hlbWEgQVMgJzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzOnNjaGVtYSB4bWxuczp4 cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPgorICA8eHM6ZWxlbWVudCBuYW1l PSJib29rIj4KKyAgICA8eHM6Y29tcGxleFR5cGU+CisgICAgICA8eHM6c2VxdWVuY2U+CisgICAg ICAgIDx4czplbGVtZW50IG5hbWU9InRpdGxlIiB0eXBlPSJ4czpzdHJpbmciLz4KKyAgICAgICAg PHhzOmVsZW1lbnQgbmFtZT0iYXV0aG9yIiBtYXhPY2N1cnM9InVuYm91bmRlZCI+CisgICAgICAg ICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgICAgICAgPHhzOnNlcXVlbmNlPgorICAgICAgICAg ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJmaXJzdG5hbWUiIHR5cGU9InhzOnN0cmluZyIvPgorICAg ICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJsYXN0bmFtZSIgdHlwZT0ieHM6c3RyaW5nIi8+ CisgICAgICAgICAgICA8L3hzOnNlcXVlbmNlPgorICAgICAgICAgIDwveHM6Y29tcGxleFR5cGU+ CisgICAgICAgIDwveHM6ZWxlbWVudD4KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0ieWVhciIg dHlwZT0ieHM6aW50ZWdlciIvPgorICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICAgIDx4czphdHRy aWJ1dGUgbmFtZT0iaXNibiIgdHlwZT0ieHM6c3RyaW5nIiB1c2U9InJlcXVpcmVkIi8+CisgICAg PC94czpjb21wbGV4VHlwZT4KKyAgPC94czplbGVtZW50PgorPC94czpzY2hlbWE+JzsKK1NFTEVD VCBYTUxWQUxJREFURShET0NVTUVOVCAnPHBlcnNvbj48bmFtZT5Kb2huPC9uYW1lPjxhZ2U+MzA8 L2FnZT48L3BlcnNvbj4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSk7 CisgICAgICAgICAgICAgICAgICAgeG1sdmFsaWRhdGUgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgPHBlcnNvbj48 bmFtZT5Kb2huPC9uYW1lPjxhZ2U+MzA8L2FnZT48L3BlcnNvbj4KKygxIHJvdykKKworU0VMRUNU IFhNTFZBTElEQVRFKERPQ1VNRU5UICc8cHJvZHVjdCBpZD0iUDEyMyI+PG5hbWU+V2lkZ2V0PC9u YW1lPjxwcmljZT45Ljk5PC9wcmljZT48L3Byb2R1Y3Q+JworICBBQ0NPUkRJTkcgVE8gWE1MU0NI RU1BIHRlc3RfeG1sc2NoZW1hX25zLnByb2R1Y3Rfc2NoZW1hKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgeG1sdmFsaWRhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgPHByb2R1Y3QgaWQ9IlAxMjMiPjxuYW1lPldpZGdldDwvbmFtZT48cHJpY2U+ OS45OTwvcHJpY2U+PC9wcm9kdWN0PgorKDEgcm93KQorCitTRUxFQ1QgWE1MVkFMSURBVEUoRE9D VU1FTlQKKyAgJzxib29rIGlzYm49Ijk3OC0wLTEyMzQ1Ni03OC05Ij4KKyAgICA8dGl0bGU+UG9z dGdyZVNRTCBJbnRlcm5hbHM8L3RpdGxlPgorICAgIDxhdXRob3I+PGZpcnN0bmFtZT5Kb2huPC9m aXJzdG5hbWU+PGxhc3RuYW1lPlRpdG9yPC9sYXN0bmFtZT48L2F1dGhvcj4KKyAgICA8YXV0aG9y PjxmaXJzdG5hbWU+SmFuZTwvZmlyc3RuYW1lPjwvYXV0aG9yPgorICAgIDx5ZWFyPjIwMjQ8L3ll YXI+CisgIDwvYm9vaz4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgYm9va19zY2hlbWEpOwor RVJST1I6ICBYTUwgdmFsaWRhdGlvbiBmYWlsZWQKK1NFTEVDVCBYTUxTRVJJQUxJWkUoRE9DVU1F TlQKKyAgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxwZXJzb24+PG5hbWU+QWxpY2U8L25hbWU+PGFn ZT4yNTwvYWdlPjwvcGVyc29uPicKKyAgICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9z Y2hlbWEpIEFTIHRleHQpOworICAgICAgICAgICAgICAgICAgIHhtbHNlcmlhbGl6ZSAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgPHBlcnNvbj48bmFtZT5BbGljZTwvbmFtZT48YWdlPjI1PC9hZ2U+PC9wZXJzb24+ CisoMSByb3cpCisKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCBOVUxMIEFDQ09SRElORyBU TyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSk7CisgeG1sdmFsaWRhdGUgCistLS0tLS0tLS0tLS0t CisgCisoMSByb3cpCisKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCBOVUxMIEFDQ09SRElO RyBUTyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSkgSVMgTlVMTCBBUyBpc19udWxsOworIGlzX251 bGwgCistLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVO VCAnPHBlcnNvbj48bmFtZT5Kb2huPC9uYW1lPjwvcGVyc29uPicKKyAgQUNDT1JESU5HIFRPIFhN TFNDSEVNQSBwZXJzb25fc2NoZW1hKTsKK0VSUk9SOiAgWE1MIHZhbGlkYXRpb24gZmFpbGVkCitT RUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxwZXJzb24+PG5hbWU+Sm9objwvbmFtZT48YWdl Pm5vdC1hLW51bWJlcjwvYWdlPjwvcGVyc29uPicKKyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBw ZXJzb25fc2NoZW1hKTsKK0VSUk9SOiAgWE1MIHZhbGlkYXRpb24gZmFpbGVkCitTRUxFQ1QgWE1M VkFMSURBVEUoRE9DVU1FTlQgJzxwcm9kdWN0PjxuYW1lPldpZGdldDwvbmFtZT48cHJpY2U+OS45 OTwvcHJpY2U+PC9wcm9kdWN0PicKKyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSB0ZXN0X3htbHNj aGVtYV9ucy5wcm9kdWN0X3NjaGVtYSk7CitFUlJPUjogIFhNTCB2YWxpZGF0aW9uIGZhaWxlZAor U0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8cGVyc29uPjxuYW1lPkpvaG48L25hbWU+PGFn ZT4zMDwvYWdlPjxleHRyYT5kYXRhPC9leHRyYT48L3BlcnNvbj4nCisgIEFDQ09SRElORyBUTyBY TUxTQ0hFTUEgcGVyc29uX3NjaGVtYSk7CitFUlJPUjogIFhNTCB2YWxpZGF0aW9uIGZhaWxlZAor U0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8bm90cGVyc29uPjxuYW1lPkpvaG48L25hbWU+ PGFnZT4zMDwvYWdlPjwvbm90cGVyc29uPicKKyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJz b25fc2NoZW1hKTsKK0VSUk9SOiAgWE1MIHZhbGlkYXRpb24gZmFpbGVkCitTRUxFQ1QgWE1MVkFM SURBVEUoRE9DVU1FTlQgJzx0ZXN0PnZhbHVlPC90ZXN0PicKKyAgQUNDT1JESU5HIFRPIFhNTFND SEVNQSBub25leGlzdGVudF9zY2hlbWEpOworRVJST1I6ICBYTUwgc2NoZW1hICJub25leGlzdGVu dF9zY2hlbWEiIGRvZXMgbm90IGV4aXN0CitDUkVBVEUgVklFVyB2YWxpZGF0ZWRfcGVvcGxlIEFT CisgIFNFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCBkYXRhIEFDQ09SRElORyBUTyBYTUxTQ0hF TUEgcGVyc29uX3NjaGVtYSkgQVMgdmFsaWRhdGVkX3htbAorICBGUk9NIHhtbHRlc3QgV0hFUkUg aWQgPSAxOworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCd2YWxpZGF0ZWRfcGVvcGxlJzo6cmVnY2xh c3MsIHRydWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRf dmlld2RlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UIGRh dGEgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJzb25fc2NoZW1hKSBBUyB2YWxpZGF0ZWRfeG1s KworICAgIEZST00geG1sdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBXSEVSRSBpZCA9IDE7Ciso MSByb3cpCisKK0RST1AgVklFVyB2YWxpZGF0ZWRfcGVvcGxlOworQ1JFQVRFIFZJRVcgdmFsaWRh dGVkX3Byb2R1Y3RzIEFTCisgIFNFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPHByb2R1Y3Qg aWQ9IjEyMyI+PG5hbWU+VGVzdDwvbmFtZT48cHJpY2U+MS45OTwvcHJpY2U+PC9wcm9kdWN0PicK KyAgICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLnByb2R1Y3Rfc2No ZW1hKSBBUyB2YWxpZGF0ZWRfeG1sOworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCd2YWxpZGF0ZWRf cHJvZHVjdHMnOjpyZWdjbGFzcywgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19n ZXRfdmlld2RlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBTRUxFQ1QgWE1M VkFMSURBVEUoRE9DVU1FTlQgJzxwcm9kdWN0IGlkPSIxMjMiPjxuYW1lPlRlc3Q8L25hbWU+PHBy aWNlPjEuOTk8L3ByaWNlPjwvcHJvZHVjdD4nOjp4bWwgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSB0 ZXN0X3htbHNjaGVtYV9ucy5wcm9kdWN0X3NjaGVtYSkgQVMgdmFsaWRhdGVkX3htbDsKKygxIHJv dykKKworRFJPUCBWSUVXIHZhbGlkYXRlZF9wcm9kdWN0czsKK0FMVEVSIFhNTFNDSEVNQSBib29r X3NjaGVtYSBSRU5BTUUgVE8gbGlicmFyeV9ib29rX3NjaGVtYTsKK1NFTEVDVCBYTUxWQUxJREFU RShET0NVTUVOVCAnPGJvb2sgaXNibj0iMTIzIj48dGl0bGU+VGVzdDwvdGl0bGU+PGF1dGhvcj48 Zmlyc3RuYW1lPkE8L2ZpcnN0bmFtZT48bGFzdG5hbWU+QjwvbGFzdG5hbWU+PC9hdXRob3I+PHll YXI+MjAyNDwveWVhcj48L2Jvb2s+JworICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIGJvb2tfc2No ZW1hKTsKK0VSUk9SOiAgWE1MIHNjaGVtYSAiYm9va19zY2hlbWEiIGRvZXMgbm90IGV4aXN0CitT RUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxib29rIGlzYm49IjEyMyI+PHRpdGxlPlRlc3Q8 L3RpdGxlPjxhdXRob3I+PGZpcnN0bmFtZT5BPC9maXJzdG5hbWU+PGxhc3RuYW1lPkI8L2xhc3Ru YW1lPjwvYXV0aG9yPjx5ZWFyPjIwMjQ8L3llYXI+PC9ib29rPicKKyAgQUNDT1JESU5HIFRPIFhN TFNDSEVNQSBsaWJyYXJ5X2Jvb2tfc2NoZW1hKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbHZhbGlkYXRlICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IDxib29rIGlzYm49IjEyMyI+PHRpdGxlPlRlc3Q8L3RpdGxlPjxhdXRob3I+PGZpcnN0bmFtZT5B PC9maXJzdG5hbWU+PGxhc3RuYW1lPkI8L2xhc3RuYW1lPjwvYXV0aG9yPjx5ZWFyPjIwMjQ8L3ll YXI+PC9ib29rPgorKDEgcm93KQorCitBTFRFUiBYTUxTQ0hFTUEgbGlicmFyeV9ib29rX3NjaGVt YSBTRVQgU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zOworU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VN RU5UICc8Ym9vayBpc2JuPSIxMjMiPjx0aXRsZT5UZXN0PC90aXRsZT48YXV0aG9yPjxmaXJzdG5h bWU+QTwvZmlyc3RuYW1lPjxsYXN0bmFtZT5CPC9sYXN0bmFtZT48L2F1dGhvcj48eWVhcj4yMDI0 PC95ZWFyPjwvYm9vaz4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgbGlicmFyeV9ib29rX3Nj aGVtYSk7CitFUlJPUjogIFhNTCBzY2hlbWEgImxpYnJhcnlfYm9va19zY2hlbWEiIGRvZXMgbm90 IGV4aXN0CitTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxib29rIGlzYm49IjEyMyI+PHRp dGxlPlRlc3Q8L3RpdGxlPjxhdXRob3I+PGZpcnN0bmFtZT5BPC9maXJzdG5hbWU+PGxhc3RuYW1l PkI8L2xhc3RuYW1lPjwvYXV0aG9yPjx5ZWFyPjIwMjQ8L3llYXI+PC9ib29rPicKKyAgQUNDT1JE SU5HIFRPIFhNTFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5saWJyYXJ5X2Jvb2tfc2NoZW1hKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHhtbHZhbGlkYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDxib29rIGlzYm49IjEyMyI+PHRpdGxlPlRlc3Q8 L3RpdGxlPjxhdXRob3I+PGZpcnN0bmFtZT5BPC9maXJzdG5hbWU+PGxhc3RuYW1lPkI8L2xhc3Ru YW1lPjwvYXV0aG9yPjx5ZWFyPjIwMjQ8L3llYXI+PC9ib29rPgorKDEgcm93KQorCitDUkVBVEUg Uk9MRSByZWdyZXNzX3htbHNjaGVtYV90ZXN0X3JvbGU7CitBTFRFUiBYTUxTQ0hFTUEgdGVzdF94 bWxzY2hlbWFfbnMubGlicmFyeV9ib29rX3NjaGVtYSBPV05FUiBUTyByZWdyZXNzX3htbHNjaGVt YV90ZXN0X3JvbGU7CitTRUxFQ1Qgc2NoZW1hbmFtZSwgc2NoZW1hbmFtZXNwYWNlOjpyZWduYW1l c3BhY2UsIHNjaGVtYW93bmVyOjpyZWdyb2xlCitGUk9NIHBnX3htbHNjaGVtYQorV0hFUkUgc2No ZW1hbmFtZSA9ICdsaWJyYXJ5X2Jvb2tfc2NoZW1hJzsKKyAgICAgc2NoZW1hbmFtZSAgICAgIHwg IHNjaGVtYW5hbWVzcGFjZSAgfCAgICAgICAgIHNjaGVtYW93bmVyICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIGxpYnJhcnlfYm9va19zY2hlbWEgfCB0ZXN0X3htbHNjaGVtYV9ucyB8IHJlZ3Jl c3NfeG1sc2NoZW1hX3Rlc3Rfcm9sZQorKDEgcm93KQorCitDUkVBVEUgVklFVyBib29rX3ZpZXcg QVMKKyAgU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8Ym9vayBpc2JuPSI0NTYiPjx0aXRs ZT5EZXAgVGVzdDwvdGl0bGU+PGF1dGhvcj48Zmlyc3RuYW1lPlg8L2ZpcnN0bmFtZT48bGFzdG5h bWU+WTwvbGFzdG5hbWU+PC9hdXRob3I+PHllYXI+MjAyNTwveWVhcj48L2Jvb2s+JworICAgIEFD Q09SRElORyBUTyBYTUxTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMubGlicmFyeV9ib29rX3NjaGVt YSkgQVMgdmFsaWRhdGVkX2Jvb2s7CitEUk9QIFhNTFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5s aWJyYXJ5X2Jvb2tfc2NoZW1hOworRVJST1I6ICBjYW5ub3QgZHJvcCBYTUwgc2NoZW1hIHRlc3Rf eG1sc2NoZW1hX25zLmxpYnJhcnlfYm9va19zY2hlbWEgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRl cGVuZCBvbiBpdAorREVUQUlMOiAgdmlldyBib29rX3ZpZXcgZGVwZW5kcyBvbiBYTUwgc2NoZW1h IHRlc3RfeG1sc2NoZW1hX25zLmxpYnJhcnlfYm9va19zY2hlbWEKK0hJTlQ6ICBVc2UgRFJPUCAu Li4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitEUk9QIFhNTFND SEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5saWJyYXJ5X2Jvb2tfc2NoZW1hIENBU0NBREU7CitOT1RJ Q0U6ICBkcm9wIGNhc2NhZGVzIHRvIHZpZXcgYm9va192aWV3CitTRUxFQ1QgKiBGUk9NIGJvb2tf dmlldzsKK0VSUk9SOiAgcmVsYXRpb24gImJvb2tfdmlldyIgZG9lcyBub3QgZXhpc3QKK0xJTkUg MTogU0VMRUNUICogRlJPTSBib29rX3ZpZXc7CisgICAgICAgICAgICAgICAgICAgICAgXgorRFJP UCBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYTsKK0RST1AgWE1MU0NIRU1BIElGIEVYSVNUUyBwZXJz b25fc2NoZW1hOworTk9USUNFOiAgWE1MIHNjaGVtYSAicGVyc29uX3NjaGVtYSIgZG9lcyBub3Qg ZXhpc3QsIHNraXBwaW5nCitEUk9QIFhNTFNDSEVNQSBwZXJzb25fc2NoZW1hOworRVJST1I6ICBY TUwgc2NoZW1hICJwZXJzb25fc2NoZW1hIiBkb2VzIG5vdCBleGlzdAorRFJPUCBYTUxTQ0hFTUEg dGVzdF94bWxzY2hlbWFfbnMucHJvZHVjdF9zY2hlbWE7CitTRVQgUk9MRSByZWdyZXNzX3htbHNj aGVtYV90ZXN0X3JvbGU7CitDUkVBVEUgWE1MU0NIRU1BIHB1YmxpYy5zaG91bGRfZmFpbF9zY2hl bWEgQVMgJzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDov L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPgorICA8eHM6ZWxlbWVudCBuYW1lPSJ0ZXN0IiB0 eXBlPSJ4czpzdHJpbmciLz4KKzwveHM6c2NoZW1hPic7CitSRVNFVCBST0xFOworR1JBTlQgQ1JF QVRFIE9OIFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9ucyBUTyByZWdyZXNzX3htbHNjaGVtYV90ZXN0 X3JvbGU7CitTRVQgUk9MRSByZWdyZXNzX3htbHNjaGVtYV90ZXN0X3JvbGU7CitDUkVBVEUgWE1M U0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLnJvbGVfc2NoZW1hIEFTICc8P3htbCB2ZXJzaW9uPSIx LjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2No ZW1hIj4KKyAgPHhzOmVsZW1lbnQgbmFtZT0idGVzdCIgdHlwZT0ieHM6c3RyaW5nIi8+Cis8L3hz OnNjaGVtYT4nOworUkVTRVQgUk9MRTsKK0RST1AgWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25z LnJvbGVfc2NoZW1hOworRFJPUCBST0xFIHJlZ3Jlc3NfeG1sc2NoZW1hX3Rlc3Rfcm9sZTsKK0VS Uk9SOiAgcm9sZSAicmVncmVzc194bWxzY2hlbWFfdGVzdF9yb2xlIiBjYW5ub3QgYmUgZHJvcHBl ZCBiZWNhdXNlIHNvbWUgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHByaXZpbGVnZXMg Zm9yIHNjaGVtYSB0ZXN0X3htbHNjaGVtYV9ucworb3duZXIgb2YgWE1MIHNjaGVtYSBwdWJsaWMu c2hvdWxkX2ZhaWxfc2NoZW1hCitEUk9QIFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9ucyBDQVNDQURF OworQ1JFQVRFIFJPTEUgcmVncmVzc194bWxzY2hlbWFfdXNlcjE7CitDUkVBVEUgUk9MRSByZWdy ZXNzX3htbHNjaGVtYV91c2VyMjsKK0NSRUFURSBYTUxTQ0hFTUEgcGVybWlzc2lvbl90ZXN0X3Nj aGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRw Oi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50IG5hbWU9InRlc3Qi IHR5cGU9InhzOnN0cmluZyIvPgorPC94czpzY2hlbWE+JzsKK1NFVCBST0xFIHJlZ3Jlc3NfeG1s c2NoZW1hX3VzZXIxOworU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8dGVzdD5kYXRhPC90 ZXN0PicKKyAgICAgICAgICAgICAgICAgICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcm1pc3Np b25fdGVzdF9zY2hlbWEpOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgWE1MIHNjaGVt YSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hCitSRVNFVCBST0xFOworR1JBTlQgVVNBR0UgT04gWE1M U0NIRU1BIHBlcm1pc3Npb25fdGVzdF9zY2hlbWEgVE8gcmVncmVzc194bWxzY2hlbWFfdXNlcjE7 CitTRVQgUk9MRSByZWdyZXNzX3htbHNjaGVtYV91c2VyMTsKK1NFTEVDVCBYTUxWQUxJREFURShE T0NVTUVOVCAnPHRlc3Q+ZGF0YTwvdGVzdD4nCisgICAgICAgICAgICAgICAgICAgQUNDT1JESU5H IFRPIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hKTsKKyAgICB4bWx2YWxpZGF0ZSAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyA8dGVzdD5kYXRhPC90ZXN0PgorKDEgcm93KQorCitS RVNFVCBST0xFOworU0VUIFJPTEUgcmVncmVzc194bWxzY2hlbWFfdXNlcjI7CitTRUxFQ1QgWE1M VkFMSURBVEUoRE9DVU1FTlQgJzx0ZXN0PmRhdGE8L3Rlc3Q+JworICAgICAgICAgICAgICAgICAg IEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVybWlzc2lvbl90ZXN0X3NjaGVtYSk7CitFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBYTUwgc2NoZW1hIHBlcm1pc3Npb25fdGVzdF9zY2hlbWEK K1JFU0VUIFJPTEU7CitHUkFOVCBVU0FHRSBPTiBYTUxTQ0hFTUEgcGVybWlzc2lvbl90ZXN0X3Nj aGVtYSBUTyByZWdyZXNzX3htbHNjaGVtYV91c2VyMjsKK1NFVCBST0xFIHJlZ3Jlc3NfeG1sc2No ZW1hX3VzZXIyOworU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8dGVzdD5kYXRhPC90ZXN0 PicKKyAgICAgICAgICAgICAgICAgICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcm1pc3Npb25f dGVzdF9zY2hlbWEpOworICAgIHhtbHZhbGlkYXRlICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLQor IDx0ZXN0PmRhdGE8L3Rlc3Q+CisoMSByb3cpCisKK1JFU0VUIFJPTEU7CitSRVZPS0UgVVNBR0Ug T04gWE1MU0NIRU1BIHBlcm1pc3Npb25fdGVzdF9zY2hlbWEgRlJPTSByZWdyZXNzX3htbHNjaGVt YV91c2VyMTsKK1NFVCBST0xFIHJlZ3Jlc3NfeG1sc2NoZW1hX3VzZXIxOworU0VMRUNUIFhNTFZB TElEQVRFKERPQ1VNRU5UICc8dGVzdD5kYXRhPC90ZXN0PicKKyAgICAgICAgICAgICAgICAgICBB Q0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcm1pc3Npb25fdGVzdF9zY2hlbWEpOworRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3IgWE1MIHNjaGVtYSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hCitS RVNFVCBST0xFOworRFJPUCBYTUxTQ0hFTUEgcGVybWlzc2lvbl90ZXN0X3NjaGVtYTsKK0RST1Ag Uk9MRSByZWdyZXNzX3htbHNjaGVtYV91c2VyMTsKK0RST1AgUk9MRSByZWdyZXNzX3htbHNjaGVt YV91c2VyMjsKK0NSRUFURSBUQUJMRSB2YWxpZGF0ZWRfeG1sX2RhdGEgKAorICBpZCBzZXJpYWwg UFJJTUFSWSBLRVksCisgIGRhdGEgeG1sCispOworQ1JFQVRFIFhNTFNDSEVNQSBkYXRhX3NjaGVt YSBBUyAnPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8v d3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50IG5hbWU9ImRhdGEiPgor ICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgICAgPHhzOmVs ZW1lbnQgbmFtZT0idmFsdWUiIHR5cGU9InhzOmludGVnZXIiLz4KKyAgICAgIDwveHM6c2VxdWVu Y2U+CisgICAgPC94czpjb21wbGV4VHlwZT4KKyAgPC94czplbGVtZW50PgorPC94czpzY2hlbWE+ JzsKK0lOU0VSVCBJTlRPIHZhbGlkYXRlZF94bWxfZGF0YSAoZGF0YSkKK1ZBTFVFUyAoWE1MVkFM SURBVEUoRE9DVU1FTlQgJzxkYXRhPjx2YWx1ZT40MjwvdmFsdWU+PC9kYXRhPicKKyAgQUNDT1JE SU5HIFRPIFhNTFNDSEVNQSBkYXRhX3NjaGVtYSkpOworSU5TRVJUIElOVE8gdmFsaWRhdGVkX3ht bF9kYXRhIChkYXRhKQorVkFMVUVTIChYTUxWQUxJREFURShET0NVTUVOVCAnPGRhdGE+PHZhbHVl PjEwMDwvdmFsdWU+PC9kYXRhPicKKyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBkYXRhX3NjaGVt YSkpOworU0VMRUNUIGlkLCBkYXRhIEZST00gdmFsaWRhdGVkX3htbF9kYXRhIE9SREVSIEJZIGlk OworIGlkIHwgICAgICAgICAgICAgIGRhdGEgICAgICAgICAgICAgICAKKy0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIDEgfCA8ZGF0YT48dmFsdWU+NDI8L3ZhbHVlPjwv ZGF0YT4KKyAgMiB8IDxkYXRhPjx2YWx1ZT4xMDA8L3ZhbHVlPjwvZGF0YT4KKygyIHJvd3MpCisK K0lOU0VSVCBJTlRPIHZhbGlkYXRlZF94bWxfZGF0YSAoZGF0YSkKK1ZBTFVFUyAoWE1MVkFMSURB VEUoRE9DVU1FTlQgJzxkYXRhPjx2YWx1ZT5ub3QtYW4taW50PC92YWx1ZT48L2RhdGE+JworICBB Q0NPUkRJTkcgVE8gWE1MU0NIRU1BIGRhdGFfc2NoZW1hKSk7CitFUlJPUjogIFhNTCB2YWxpZGF0 aW9uIGZhaWxlZAorRFJPUCBUQUJMRSB2YWxpZGF0ZWRfeG1sX2RhdGE7CitEUk9QIFhNTFNDSEVN QSBkYXRhX3NjaGVtYTsKK0RST1AgWE1MU0NIRU1BIHNob3VsZF9mYWlsX3NjaGVtYTsKK0RST1Ag Uk9MRSByZWdyZXNzX3htbHNjaGVtYV90ZXN0X3JvbGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3htbF8yLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQveG1s XzIub3V0CmluZGV4IGE4NWQ5NTM1OGQ5Li41MTE2Y2E3M2U0YiAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC94bWxfMi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC94bWxfMi5vdXQKQEAgLTE4NjcsMyArMTg2NywzMDAgQEAgU0VMRUNUIHhtbHRleHQoJ3gn fHwgJzxQPjczPC9QPic6OnhtbCB8fCAuNDIgfHwgdHJ1ZSB8fCAnaic6OmNoYXIpOwogIHgmbHQ7 UCZndDs3MyZsdDsvUCZndDswLjQydHJ1ZWoKICgxIHJvdykKIAorQ1JFQVRFIFhNTFNDSEVNQSBw ZXJzb25fc2NoZW1hIEFTICc8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6 eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzOmVsZW1lbnQgbmFt ZT0icGVyc29uIj4KKyAgICA8eHM6Y29tcGxleFR5cGU+CisgICAgICA8eHM6c2VxdWVuY2U+Cisg ICAgICAgIDx4czplbGVtZW50IG5hbWU9Im5hbWUiIHR5cGU9InhzOnN0cmluZyIvPgorICAgICAg ICA8eHM6ZWxlbWVudCBuYW1lPSJhZ2UiIHR5cGU9InhzOmludGVnZXIiLz4KKyAgICAgIDwveHM6 c2VxdWVuY2U+CisgICAgPC94czpjb21wbGV4VHlwZT4KKyAgPC94czplbGVtZW50PgorPC94czpz Y2hlbWE+JzsKK0NSRUFURSBYTUxTQ0hFTUEgSUYgTk9UIEVYSVNUUyBwZXJzb25fc2NoZW1hIEFT ICc8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cu dzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzOmVsZW1lbnQgbmFtZT0ib3RoZXIiIHR5cGU9 InhzOnN0cmluZyIvPgorPC94czpzY2hlbWE+JzsKK05PVElDRTogIFhNTCBzY2hlbWEgInBlcnNv bl9zY2hlbWEiIGFscmVhZHkgZXhpc3RzLCBza2lwcGluZworQ1JFQVRFIFhNTFNDSEVNQSBwZXJz b25fc2NoZW1hIEFTICc8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9 Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzOmVsZW1lbnQgbmFtZT0i ZHVwbGljYXRlIiB0eXBlPSJ4czpzdHJpbmciLz4KKzwveHM6c2NoZW1hPic7CitFUlJPUjogIFhN TCBzY2hlbWEgInBlcnNvbl9zY2hlbWEiIGFscmVhZHkgZXhpc3RzCitDUkVBVEUgU0NIRU1BIHRl c3RfeG1sc2NoZW1hX25zOworQ1JFQVRFIFhNTFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5wcm9k dWN0X3NjaGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhz PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50IG5hbWU9 InByb2R1Y3QiPgorICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgIDx4czpzZXF1ZW5jZT4KKyAg ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0ibmFtZSIgdHlwZT0ieHM6c3RyaW5nIi8+CisgICAgICAg IDx4czplbGVtZW50IG5hbWU9InByaWNlIiB0eXBlPSJ4czpkZWNpbWFsIi8+CisgICAgICA8L3hz OnNlcXVlbmNlPgorICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJpZCIgdHlwZT0ieHM6c3RyaW5n IiB1c2U9InJlcXVpcmVkIi8+CisgICAgPC94czpjb21wbGV4VHlwZT4KKyAgPC94czplbGVtZW50 PgorPC94czpzY2hlbWE+JzsKK0NSRUFURSBYTUxTQ0hFTUEgYmFkX3NjaGVtYSBBUyAnPHRoaXMt aXMtbm90LXZhbGlkLXhzZD4nOworRVJST1I6ICBpbnZhbGlkIFhNTCBzY2hlbWEgZGVmaW5pdGlv bgorREVUQUlMOiAgbGluZSAxOiBQcmVtYXR1cmUgZW5kIG9mIGRhdGEgaW4gdGFnIHRoaXMtaXMt bm90LXZhbGlkLXhzZCBsaW5lIDEKKzx0aGlzLWlzLW5vdC12YWxpZC14c2Q+CisgICAgICAgICAg ICAgICAgICAgICAgIF4KK0NSRUFURSBYTUxTQ0hFTUEgYmFkX3htbF9zY2hlbWEgQVMgJ25vdCBl dmVuIHhtbCc7CitFUlJPUjogIGludmFsaWQgWE1MIHNjaGVtYSBkZWZpbml0aW9uCitERVRBSUw6 ICBsaW5lIDE6IFN0YXJ0IHRhZyBleHBlY3RlZCwgJzwnIG5vdCBmb3VuZAorbm90IGV2ZW4geG1s CiteCitDUkVBVEUgWE1MU0NIRU1BIGJvb2tfc2NoZW1hIEFTICc8P3htbCB2ZXJzaW9uPSIxLjAi Pz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1h Ij4KKyAgPHhzOmVsZW1lbnQgbmFtZT0iYm9vayI+CisgICAgPHhzOmNvbXBsZXhUeXBlPgorICAg ICAgPHhzOnNlcXVlbmNlPgorICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJ0aXRsZSIgdHlwZT0i eHM6c3RyaW5nIi8+CisgICAgICAgIDx4czplbGVtZW50IG5hbWU9ImF1dGhvciIgbWF4T2NjdXJz PSJ1bmJvdW5kZWQiPgorICAgICAgICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgICAgICAgIDx4 czpzZXF1ZW5jZT4KKyAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iZmlyc3RuYW1lIiB0 eXBlPSJ4czpzdHJpbmciLz4KKyAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0ibGFzdG5h bWUiIHR5cGU9InhzOnN0cmluZyIvPgorICAgICAgICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICAg ICAgICA8L3hzOmNvbXBsZXhUeXBlPgorICAgICAgICA8L3hzOmVsZW1lbnQ+CisgICAgICAgIDx4 czplbGVtZW50IG5hbWU9InllYXIiIHR5cGU9InhzOmludGVnZXIiLz4KKyAgICAgIDwveHM6c2Vx dWVuY2U+CisgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImlzYm4iIHR5cGU9InhzOnN0cmluZyIg dXNlPSJyZXF1aXJlZCIvPgorICAgIDwveHM6Y29tcGxleFR5cGU+CisgIDwveHM6ZWxlbWVudD4K KzwveHM6c2NoZW1hPic7CitTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxwZXJzb24+PG5h bWU+Sm9objwvbmFtZT48YWdlPjMwPC9hZ2U+PC9wZXJzb24+JworICBBQ0NPUkRJTkcgVE8gWE1M U0NIRU1BIHBlcnNvbl9zY2hlbWEpOworICAgICAgICAgICAgICAgICAgIHhtbHZhbGlkYXRlICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIDxwZXJzb24+PG5hbWU+Sm9objwvbmFtZT48YWdlPjMwPC9hZ2U+PC9wZXJz b24+CisoMSByb3cpCisKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPHByb2R1Y3QgaWQ9 IlAxMjMiPjxuYW1lPldpZGdldDwvbmFtZT48cHJpY2U+OS45OTwvcHJpY2U+PC9wcm9kdWN0PicK KyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5wcm9kdWN0X3NjaGVt YSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbHZhbGlkYXRlICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDxwcm9kdWN0IGlkPSJQMTIzIj48bmFt ZT5XaWRnZXQ8L25hbWU+PHByaWNlPjkuOTk8L3ByaWNlPjwvcHJvZHVjdD4KKygxIHJvdykKKwor U0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UCisgICc8Ym9vayBpc2JuPSI5NzgtMC0xMjM0NTYt NzgtOSI+CisgICAgPHRpdGxlPlBvc3RncmVTUUwgSW50ZXJuYWxzPC90aXRsZT4KKyAgICA8YXV0 aG9yPjxmaXJzdG5hbWU+Sm9objwvZmlyc3RuYW1lPjxsYXN0bmFtZT5UaXRvcjwvbGFzdG5hbWU+ PC9hdXRob3I+CisgICAgPGF1dGhvcj48Zmlyc3RuYW1lPkphbmU8L2ZpcnN0bmFtZT48L2F1dGhv cj4KKyAgICA8eWVhcj4yMDI0PC95ZWFyPgorICA8L2Jvb2s+JworICBBQ0NPUkRJTkcgVE8gWE1M U0NIRU1BIGJvb2tfc2NoZW1hKTsKK0VSUk9SOiAgWE1MIHZhbGlkYXRpb24gZmFpbGVkCitTRUxF Q1QgWE1MU0VSSUFMSVpFKERPQ1VNRU5UCisgIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8cGVyc29u PjxuYW1lPkFsaWNlPC9uYW1lPjxhZ2U+MjU8L2FnZT48L3BlcnNvbj4nCisgICAgQUNDT1JESU5H IFRPIFhNTFNDSEVNQSBwZXJzb25fc2NoZW1hKSBBUyB0ZXh0KTsKKyAgICAgICAgICAgICAgICAg ICB4bWxzZXJpYWxpemUgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDxwZXJzb24+PG5hbWU+QWxpY2U8L25hbWU+ PGFnZT4yNTwvYWdlPjwvcGVyc29uPgorKDEgcm93KQorCitTRUxFQ1QgWE1MVkFMSURBVEUoRE9D VU1FTlQgTlVMTCBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWEpOworIHhtbHZh bGlkYXRlIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgWE1MVkFMSURBVEUo RE9DVU1FTlQgTlVMTCBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWEpIElTIE5V TEwgQVMgaXNfbnVsbDsKKyBpc19udWxsIAorLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxF Q1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxwZXJzb24+PG5hbWU+Sm9objwvbmFtZT48L3BlcnNv bj4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSk7CitFUlJPUjogIFhN TCB2YWxpZGF0aW9uIGZhaWxlZAorU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8cGVyc29u PjxuYW1lPkpvaG48L25hbWU+PGFnZT5ub3QtYS1udW1iZXI8L2FnZT48L3BlcnNvbj4nCisgIEFD Q09SRElORyBUTyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSk7CitFUlJPUjogIFhNTCB2YWxpZGF0 aW9uIGZhaWxlZAorU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8cHJvZHVjdD48bmFtZT5X aWRnZXQ8L25hbWU+PHByaWNlPjkuOTk8L3ByaWNlPjwvcHJvZHVjdD4nCisgIEFDQ09SRElORyBU TyBYTUxTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMucHJvZHVjdF9zY2hlbWEpOworRVJST1I6ICBY TUwgdmFsaWRhdGlvbiBmYWlsZWQKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPHBlcnNv bj48bmFtZT5Kb2huPC9uYW1lPjxhZ2U+MzA8L2FnZT48ZXh0cmE+ZGF0YTwvZXh0cmE+PC9wZXJz b24+JworICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWEpOworRVJST1I6ICBY TUwgdmFsaWRhdGlvbiBmYWlsZWQKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPG5vdHBl cnNvbj48bmFtZT5Kb2huPC9uYW1lPjxhZ2U+MzA8L2FnZT48L25vdHBlcnNvbj4nCisgIEFDQ09S RElORyBUTyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSk7CitFUlJPUjogIFhNTCB2YWxpZGF0aW9u IGZhaWxlZAorU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8dGVzdD52YWx1ZTwvdGVzdD4n CisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgbm9uZXhpc3RlbnRfc2NoZW1hKTsKK0VSUk9SOiAg WE1MIHNjaGVtYSAibm9uZXhpc3RlbnRfc2NoZW1hIiBkb2VzIG5vdCBleGlzdAorQ1JFQVRFIFZJ RVcgdmFsaWRhdGVkX3Blb3BsZSBBUworICBTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgZGF0 YSBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWEpIEFTIHZhbGlkYXRlZF94bWwK KyAgRlJPTSB4bWx0ZXN0IFdIRVJFIGlkID0gMTsKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigndmFs aWRhdGVkX3Blb3BsZSc6OnJlZ2NsYXNzLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFNFTEVDVCBY TUxWQUxJREFURShET0NVTUVOVCBkYXRhIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVyc29uX3Nj aGVtYSkgQVMgdmFsaWRhdGVkX3htbCsKKyAgICBGUk9NIHhtbHRlc3QgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgV0hFUkUgaWQgPSAxOworKDEgcm93KQorCitEUk9QIFZJRVcgdmFsaWRhdGVkX3Blb3Bs ZTsKK0NSRUFURSBWSUVXIHZhbGlkYXRlZF9wcm9kdWN0cyBBUworICBTRUxFQ1QgWE1MVkFMSURB VEUoRE9DVU1FTlQgJzxwcm9kdWN0IGlkPSIxMjMiPjxuYW1lPlRlc3Q8L25hbWU+PHByaWNlPjEu OTk8L3ByaWNlPjwvcHJvZHVjdD4nCisgICAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSB0ZXN0X3ht bHNjaGVtYV9ucy5wcm9kdWN0X3NjaGVtYSkgQVMgdmFsaWRhdGVkX3htbDsKK1NFTEVDVCBwZ19n ZXRfdmlld2RlZigndmFsaWRhdGVkX3Byb2R1Y3RzJzo6cmVnY2xhc3MsIHRydWUpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8cHJvZHVjdCBpZD0iMTIz Ij48bmFtZT5UZXN0PC9uYW1lPjxwcmljZT4xLjk5PC9wcmljZT48L3Byb2R1Y3Q+Jzo6eG1sIEFD Q09SRElORyBUTyBYTUxTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMucHJvZHVjdF9zY2hlbWEpIEFT IHZhbGlkYXRlZF94bWw7CisoMSByb3cpCisKK0RST1AgVklFVyB2YWxpZGF0ZWRfcHJvZHVjdHM7 CitBTFRFUiBYTUxTQ0hFTUEgYm9va19zY2hlbWEgUkVOQU1FIFRPIGxpYnJhcnlfYm9va19zY2hl bWE7CitTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxib29rIGlzYm49IjEyMyI+PHRpdGxl PlRlc3Q8L3RpdGxlPjxhdXRob3I+PGZpcnN0bmFtZT5BPC9maXJzdG5hbWU+PGxhc3RuYW1lPkI8 L2xhc3RuYW1lPjwvYXV0aG9yPjx5ZWFyPjIwMjQ8L3llYXI+PC9ib29rPicKKyAgQUNDT1JESU5H IFRPIFhNTFNDSEVNQSBib29rX3NjaGVtYSk7CitFUlJPUjogIFhNTCBzY2hlbWEgImJvb2tfc2No ZW1hIiBkb2VzIG5vdCBleGlzdAorU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8Ym9vayBp c2JuPSIxMjMiPjx0aXRsZT5UZXN0PC90aXRsZT48YXV0aG9yPjxmaXJzdG5hbWU+QTwvZmlyc3Ru YW1lPjxsYXN0bmFtZT5CPC9sYXN0bmFtZT48L2F1dGhvcj48eWVhcj4yMDI0PC95ZWFyPjwvYm9v az4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgbGlicmFyeV9ib29rX3NjaGVtYSk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWx2 YWxpZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA8Ym9vayBpc2JuPSIxMjMiPjx0aXRsZT5UZXN0PC90aXRs ZT48YXV0aG9yPjxmaXJzdG5hbWU+QTwvZmlyc3RuYW1lPjxsYXN0bmFtZT5CPC9sYXN0bmFtZT48 L2F1dGhvcj48eWVhcj4yMDI0PC95ZWFyPjwvYm9vaz4KKygxIHJvdykKKworQUxURVIgWE1MU0NI RU1BIGxpYnJhcnlfYm9va19zY2hlbWEgU0VUIFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9uczsKK1NF TEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPGJvb2sgaXNibj0iMTIzIj48dGl0bGU+VGVzdDwv dGl0bGU+PGF1dGhvcj48Zmlyc3RuYW1lPkE8L2ZpcnN0bmFtZT48bGFzdG5hbWU+QjwvbGFzdG5h bWU+PC9hdXRob3I+PHllYXI+MjAyNDwveWVhcj48L2Jvb2s+JworICBBQ0NPUkRJTkcgVE8gWE1M U0NIRU1BIGxpYnJhcnlfYm9va19zY2hlbWEpOworRVJST1I6ICBYTUwgc2NoZW1hICJsaWJyYXJ5 X2Jvb2tfc2NoZW1hIiBkb2VzIG5vdCBleGlzdAorU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5U ICc8Ym9vayBpc2JuPSIxMjMiPjx0aXRsZT5UZXN0PC90aXRsZT48YXV0aG9yPjxmaXJzdG5hbWU+ QTwvZmlyc3RuYW1lPjxsYXN0bmFtZT5CPC9sYXN0bmFtZT48L2F1dGhvcj48eWVhcj4yMDI0PC95 ZWFyPjwvYm9vaz4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMu bGlicmFyeV9ib29rX3NjaGVtYSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB4bWx2YWxpZGF0ZSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA8Ym9vayBp c2JuPSIxMjMiPjx0aXRsZT5UZXN0PC90aXRsZT48YXV0aG9yPjxmaXJzdG5hbWU+QTwvZmlyc3Ru YW1lPjxsYXN0bmFtZT5CPC9sYXN0bmFtZT48L2F1dGhvcj48eWVhcj4yMDI0PC95ZWFyPjwvYm9v az4KKygxIHJvdykKKworQ1JFQVRFIFJPTEUgcmVncmVzc194bWxzY2hlbWFfdGVzdF9yb2xlOwor QUxURVIgWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLmxpYnJhcnlfYm9va19zY2hlbWEgT1dO RVIgVE8gcmVncmVzc194bWxzY2hlbWFfdGVzdF9yb2xlOworU0VMRUNUIHNjaGVtYW5hbWUsIHNj aGVtYW5hbWVzcGFjZTo6cmVnbmFtZXNwYWNlLCBzY2hlbWFvd25lcjo6cmVncm9sZQorRlJPTSBw Z194bWxzY2hlbWEKK1dIRVJFIHNjaGVtYW5hbWUgPSAnbGlicmFyeV9ib29rX3NjaGVtYSc7Cisg ICAgIHNjaGVtYW5hbWUgICAgICB8ICBzY2hlbWFuYW1lc3BhY2UgIHwgICAgICAgICBzY2hlbWFv d25lciAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBsaWJyYXJ5X2Jvb2tfc2NoZW1hIHwgdGVz dF94bWxzY2hlbWFfbnMgfCByZWdyZXNzX3htbHNjaGVtYV90ZXN0X3JvbGUKKygxIHJvdykKKwor Q1JFQVRFIFZJRVcgYm9va192aWV3IEFTCisgIFNFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAn PGJvb2sgaXNibj0iNDU2Ij48dGl0bGU+RGVwIFRlc3Q8L3RpdGxlPjxhdXRob3I+PGZpcnN0bmFt ZT5YPC9maXJzdG5hbWU+PGxhc3RuYW1lPlk8L2xhc3RuYW1lPjwvYXV0aG9yPjx5ZWFyPjIwMjU8 L3llYXI+PC9ib29rPicKKyAgICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1h X25zLmxpYnJhcnlfYm9va19zY2hlbWEpIEFTIHZhbGlkYXRlZF9ib29rOworRFJPUCBYTUxTQ0hF TUEgdGVzdF94bWxzY2hlbWFfbnMubGlicmFyeV9ib29rX3NjaGVtYTsKK0VSUk9SOiAgY2Fubm90 IGRyb3AgWE1MIHNjaGVtYSB0ZXN0X3htbHNjaGVtYV9ucy5saWJyYXJ5X2Jvb2tfc2NoZW1hIGJl Y2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHZpZXcgYm9va192aWV3 IGRlcGVuZHMgb24gWE1MIHNjaGVtYSB0ZXN0X3htbHNjaGVtYV9ucy5saWJyYXJ5X2Jvb2tfc2No ZW1hCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9i amVjdHMgdG9vLgorRFJPUCBYTUxTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMubGlicmFyeV9ib29r X3NjaGVtYSBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byB2aWV3IGJvb2tfdmll dworU0VMRUNUICogRlJPTSBib29rX3ZpZXc7CitFUlJPUjogIHJlbGF0aW9uICJib29rX3ZpZXci IGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IFNFTEVDVCAqIEZST00gYm9va192aWV3OworICAgICAg ICAgICAgICAgICAgICAgIF4KK0RST1AgWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWE7CitEUk9QIFhN TFNDSEVNQSBJRiBFWElTVFMgcGVyc29uX3NjaGVtYTsKK05PVElDRTogIFhNTCBzY2hlbWEgInBl cnNvbl9zY2hlbWEiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZworRFJPUCBYTUxTQ0hFTUEgcGVy c29uX3NjaGVtYTsKK0VSUk9SOiAgWE1MIHNjaGVtYSAicGVyc29uX3NjaGVtYSIgZG9lcyBub3Qg ZXhpc3QKK0RST1AgWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLnByb2R1Y3Rfc2NoZW1hOwor U0VUIFJPTEUgcmVncmVzc194bWxzY2hlbWFfdGVzdF9yb2xlOworQ1JFQVRFIFhNTFNDSEVNQSBw dWJsaWMuc2hvdWxkX2ZhaWxfc2NoZW1hIEFTICc8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4czpz Y2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhz OmVsZW1lbnQgbmFtZT0idGVzdCIgdHlwZT0ieHM6c3RyaW5nIi8+Cis8L3hzOnNjaGVtYT4nOwor UkVTRVQgUk9MRTsKK0dSQU5UIENSRUFURSBPTiBTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMgVE8g cmVncmVzc194bWxzY2hlbWFfdGVzdF9yb2xlOworU0VUIFJPTEUgcmVncmVzc194bWxzY2hlbWFf dGVzdF9yb2xlOworQ1JFQVRFIFhNTFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5yb2xlX3NjaGVt YSBBUyAnPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8v d3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50IG5hbWU9InRlc3QiIHR5 cGU9InhzOnN0cmluZyIvPgorPC94czpzY2hlbWE+JzsKK1JFU0VUIFJPTEU7CitEUk9QIFhNTFND SEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5yb2xlX3NjaGVtYTsKK0RST1AgUk9MRSByZWdyZXNzX3ht bHNjaGVtYV90ZXN0X3JvbGU7CitFUlJPUjogIHJvbGUgInJlZ3Jlc3NfeG1sc2NoZW1hX3Rlc3Rf cm9sZSIgY2Fubm90IGJlIGRyb3BwZWQgYmVjYXVzZSBzb21lIG9iamVjdHMgZGVwZW5kIG9uIGl0 CitERVRBSUw6ICBwcml2aWxlZ2VzIGZvciBzY2hlbWEgdGVzdF94bWxzY2hlbWFfbnMKK293bmVy IG9mIFhNTCBzY2hlbWEgcHVibGljLnNob3VsZF9mYWlsX3NjaGVtYQorRFJPUCBTQ0hFTUEgdGVz dF94bWxzY2hlbWFfbnMgQ0FTQ0FERTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfeG1sc2NoZW1hX3Vz ZXIxOworQ1JFQVRFIFJPTEUgcmVncmVzc194bWxzY2hlbWFfdXNlcjI7CitDUkVBVEUgWE1MU0NI RU1BIHBlcm1pc3Npb25fdGVzdF9zY2hlbWEgQVMgJzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhz OnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPgorICA8 eHM6ZWxlbWVudCBuYW1lPSJ0ZXN0IiB0eXBlPSJ4czpzdHJpbmciLz4KKzwveHM6c2NoZW1hPic7 CitTRVQgUk9MRSByZWdyZXNzX3htbHNjaGVtYV91c2VyMTsKK1NFTEVDVCBYTUxWQUxJREFURShE T0NVTUVOVCAnPHRlc3Q+ZGF0YTwvdGVzdD4nCisgICAgICAgICAgICAgICAgICAgQUNDT1JESU5H IFRPIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hKTsKK0VSUk9SOiAgcGVybWlzc2lv biBkZW5pZWQgZm9yIFhNTCBzY2hlbWEgcGVybWlzc2lvbl90ZXN0X3NjaGVtYQorUkVTRVQgUk9M RTsKK0dSQU5UIFVTQUdFIE9OIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hIFRPIHJl Z3Jlc3NfeG1sc2NoZW1hX3VzZXIxOworU0VUIFJPTEUgcmVncmVzc194bWxzY2hlbWFfdXNlcjE7 CitTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzx0ZXN0PmRhdGE8L3Rlc3Q+JworICAgICAg ICAgICAgICAgICAgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVybWlzc2lvbl90ZXN0X3NjaGVt YSk7CisgICAgeG1sdmFsaWRhdGUgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tCisgPHRlc3Q+ZGF0 YTwvdGVzdD4KKygxIHJvdykKKworUkVTRVQgUk9MRTsKK1NFVCBST0xFIHJlZ3Jlc3NfeG1sc2No ZW1hX3VzZXIyOworU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8dGVzdD5kYXRhPC90ZXN0 PicKKyAgICAgICAgICAgICAgICAgICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcm1pc3Npb25f dGVzdF9zY2hlbWEpOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgWE1MIHNjaGVtYSBw ZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hCitSRVNFVCBST0xFOworR1JBTlQgVVNBR0UgT04gWE1MU0NI RU1BIHBlcm1pc3Npb25fdGVzdF9zY2hlbWEgVE8gcmVncmVzc194bWxzY2hlbWFfdXNlcjI7CitT RVQgUk9MRSByZWdyZXNzX3htbHNjaGVtYV91c2VyMjsKK1NFTEVDVCBYTUxWQUxJREFURShET0NV TUVOVCAnPHRlc3Q+ZGF0YTwvdGVzdD4nCisgICAgICAgICAgICAgICAgICAgQUNDT1JESU5HIFRP IFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hKTsKKyAgICB4bWx2YWxpZGF0ZSAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0KKyA8dGVzdD5kYXRhPC90ZXN0PgorKDEgcm93KQorCitSRVNF VCBST0xFOworUkVWT0tFIFVTQUdFIE9OIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1h IEZST00gcmVncmVzc194bWxzY2hlbWFfdXNlcjE7CitTRVQgUk9MRSByZWdyZXNzX3htbHNjaGVt YV91c2VyMTsKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPHRlc3Q+ZGF0YTwvdGVzdD4n CisgICAgICAgICAgICAgICAgICAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rl c3Rfc2NoZW1hKTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIFhNTCBzY2hlbWEgcGVy bWlzc2lvbl90ZXN0X3NjaGVtYQorUkVTRVQgUk9MRTsKK0RST1AgWE1MU0NIRU1BIHBlcm1pc3Np b25fdGVzdF9zY2hlbWE7CitEUk9QIFJPTEUgcmVncmVzc194bWxzY2hlbWFfdXNlcjE7CitEUk9Q IFJPTEUgcmVncmVzc194bWxzY2hlbWFfdXNlcjI7CitDUkVBVEUgVEFCTEUgdmFsaWRhdGVkX3ht bF9kYXRhICgKKyAgaWQgc2VyaWFsIFBSSU1BUlkgS0VZLAorICBkYXRhIHhtbAorKTsKK0NSRUFU RSBYTUxTQ0hFTUEgZGF0YV9zY2hlbWEgQVMgJzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzOnNj aGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPgorICA8eHM6 ZWxlbWVudCBuYW1lPSJkYXRhIj4KKyAgICA8eHM6Y29tcGxleFR5cGU+CisgICAgICA8eHM6c2Vx dWVuY2U+CisgICAgICAgIDx4czplbGVtZW50IG5hbWU9InZhbHVlIiB0eXBlPSJ4czppbnRlZ2Vy Ii8+CisgICAgICA8L3hzOnNlcXVlbmNlPgorICAgIDwveHM6Y29tcGxleFR5cGU+CisgIDwveHM6 ZWxlbWVudD4KKzwveHM6c2NoZW1hPic7CitJTlNFUlQgSU5UTyB2YWxpZGF0ZWRfeG1sX2RhdGEg KGRhdGEpCitWQUxVRVMgKFhNTFZBTElEQVRFKERPQ1VNRU5UICc8ZGF0YT48dmFsdWU+NDI8L3Zh bHVlPjwvZGF0YT4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgZGF0YV9zY2hlbWEpKTsKK0lO U0VSVCBJTlRPIHZhbGlkYXRlZF94bWxfZGF0YSAoZGF0YSkKK1ZBTFVFUyAoWE1MVkFMSURBVEUo RE9DVU1FTlQgJzxkYXRhPjx2YWx1ZT4xMDA8L3ZhbHVlPjwvZGF0YT4nCisgIEFDQ09SRElORyBU TyBYTUxTQ0hFTUEgZGF0YV9zY2hlbWEpKTsKK1NFTEVDVCBpZCwgZGF0YSBGUk9NIHZhbGlkYXRl ZF94bWxfZGF0YSBPUkRFUiBCWSBpZDsKKyBpZCB8ICAgICAgICAgICAgICBkYXRhICAgICAgICAg ICAgICAgCistLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAxIHwgPGRh dGE+PHZhbHVlPjQyPC92YWx1ZT48L2RhdGE+CisgIDIgfCA8ZGF0YT48dmFsdWU+MTAwPC92YWx1 ZT48L2RhdGE+CisoMiByb3dzKQorCitJTlNFUlQgSU5UTyB2YWxpZGF0ZWRfeG1sX2RhdGEgKGRh dGEpCitWQUxVRVMgKFhNTFZBTElEQVRFKERPQ1VNRU5UICc8ZGF0YT48dmFsdWU+bm90LWFuLWlu dDwvdmFsdWU+PC9kYXRhPicKKyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBkYXRhX3NjaGVtYSkp OworRVJST1I6ICBYTUwgdmFsaWRhdGlvbiBmYWlsZWQKK0RST1AgVEFCTEUgdmFsaWRhdGVkX3ht bF9kYXRhOworRFJPUCBYTUxTQ0hFTUEgZGF0YV9zY2hlbWE7CitEUk9QIFhNTFNDSEVNQSBzaG91 bGRfZmFpbF9zY2hlbWE7CitEUk9QIFJPTEUgcmVncmVzc194bWxzY2hlbWFfdGVzdF9yb2xlOwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwveG1sLnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3htbC5zcWwKaW5kZXggMGVhNGY1MDg4MzcuLmI2MGNkY2Y0NzM4IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC94bWwuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3htbC5zcWwKQEAgLTY3OSwzICs2NzksMjc3IEBAIFNFTEVDVCB4bWx0ZXh0KCcgICcpOwogU0VM RUNUIHhtbHRleHQoJ2ZvbyBgJF8tKz89Kl4lIXwvXCgpW117fScpOwogU0VMRUNUIHhtbHRleHQo J2ZvbyAmIDwiYmFyIj4nKTsKIFNFTEVDVCB4bWx0ZXh0KCd4J3x8ICc8UD43MzwvUD4nOjp4bWwg fHwgLjQyIHx8IHRydWUgfHwgJ2onOjpjaGFyKTsKKworQ1JFQVRFIFhNTFNDSEVNQSBwZXJzb25f c2NoZW1hIEFTICc8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0 dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzOmVsZW1lbnQgbmFtZT0icGVy c29uIj4KKyAgICA8eHM6Y29tcGxleFR5cGU+CisgICAgICA8eHM6c2VxdWVuY2U+CisgICAgICAg IDx4czplbGVtZW50IG5hbWU9Im5hbWUiIHR5cGU9InhzOnN0cmluZyIvPgorICAgICAgICA8eHM6 ZWxlbWVudCBuYW1lPSJhZ2UiIHR5cGU9InhzOmludGVnZXIiLz4KKyAgICAgIDwveHM6c2VxdWVu Y2U+CisgICAgPC94czpjb21wbGV4VHlwZT4KKyAgPC94czplbGVtZW50PgorPC94czpzY2hlbWE+ JzsKKworCitDUkVBVEUgWE1MU0NIRU1BIElGIE5PVCBFWElTVFMgcGVyc29uX3NjaGVtYSBBUyAn PD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3Lncz Lm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50IG5hbWU9Im90aGVyIiB0eXBlPSJ4 czpzdHJpbmciLz4KKzwveHM6c2NoZW1hPic7CisKK0NSRUFURSBYTUxTQ0hFTUEgcGVyc29uX3Nj aGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRw Oi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50IG5hbWU9ImR1cGxp Y2F0ZSIgdHlwZT0ieHM6c3RyaW5nIi8+Cis8L3hzOnNjaGVtYT4nOworCitDUkVBVEUgU0NIRU1B IHRlc3RfeG1sc2NoZW1hX25zOworCitDUkVBVEUgWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25z LnByb2R1Y3Rfc2NoZW1hIEFTICc8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4czpzY2hlbWEgeG1s bnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzOmVsZW1lbnQg bmFtZT0icHJvZHVjdCI+CisgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgPHhzOnNlcXVlbmNl PgorICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJuYW1lIiB0eXBlPSJ4czpzdHJpbmciLz4KKyAg ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0icHJpY2UiIHR5cGU9InhzOmRlY2ltYWwiLz4KKyAgICAg IDwveHM6c2VxdWVuY2U+CisgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJ4czpz dHJpbmciIHVzZT0icmVxdWlyZWQiLz4KKyAgICA8L3hzOmNvbXBsZXhUeXBlPgorICA8L3hzOmVs ZW1lbnQ+Cis8L3hzOnNjaGVtYT4nOworCitDUkVBVEUgWE1MU0NIRU1BIGJhZF9zY2hlbWEgQVMg Jzx0aGlzLWlzLW5vdC12YWxpZC14c2Q+JzsKKworQ1JFQVRFIFhNTFNDSEVNQSBiYWRfeG1sX3Nj aGVtYSBBUyAnbm90IGV2ZW4geG1sJzsKKworQ1JFQVRFIFhNTFNDSEVNQSBib29rX3NjaGVtYSBB UyAnPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3 LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50IG5hbWU9ImJvb2siPgorICAg IDx4czpjb21wbGV4VHlwZT4KKyAgICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgICAgPHhzOmVsZW1l bnQgbmFtZT0idGl0bGUiIHR5cGU9InhzOnN0cmluZyIvPgorICAgICAgICA8eHM6ZWxlbWVudCBu YW1lPSJhdXRob3IiIG1heE9jY3Vycz0idW5ib3VuZGVkIj4KKyAgICAgICAgICA8eHM6Y29tcGxl eFR5cGU+CisgICAgICAgICAgICA8eHM6c2VxdWVuY2U+CisgICAgICAgICAgICAgIDx4czplbGVt ZW50IG5hbWU9ImZpcnN0bmFtZSIgdHlwZT0ieHM6c3RyaW5nIi8+CisgICAgICAgICAgICAgIDx4 czplbGVtZW50IG5hbWU9Imxhc3RuYW1lIiB0eXBlPSJ4czpzdHJpbmciLz4KKyAgICAgICAgICAg IDwveHM6c2VxdWVuY2U+CisgICAgICAgICAgPC94czpjb21wbGV4VHlwZT4KKyAgICAgICAgPC94 czplbGVtZW50PgorICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJ5ZWFyIiB0eXBlPSJ4czppbnRl Z2VyIi8+CisgICAgICA8L3hzOnNlcXVlbmNlPgorICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJp c2JuIiB0eXBlPSJ4czpzdHJpbmciIHVzZT0icmVxdWlyZWQiLz4KKyAgICA8L3hzOmNvbXBsZXhU eXBlPgorICA8L3hzOmVsZW1lbnQ+Cis8L3hzOnNjaGVtYT4nOworCitTRUxFQ1QgWE1MVkFMSURB VEUoRE9DVU1FTlQgJzxwZXJzb24+PG5hbWU+Sm9objwvbmFtZT48YWdlPjMwPC9hZ2U+PC9wZXJz b24+JworICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWEpOworCitTRUxFQ1Qg WE1MVkFMSURBVEUoRE9DVU1FTlQgJzxwcm9kdWN0IGlkPSJQMTIzIj48bmFtZT5XaWRnZXQ8L25h bWU+PHByaWNlPjkuOTk8L3ByaWNlPjwvcHJvZHVjdD4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hF TUEgdGVzdF94bWxzY2hlbWFfbnMucHJvZHVjdF9zY2hlbWEpOworCitTRUxFQ1QgWE1MVkFMSURB VEUoRE9DVU1FTlQKKyAgJzxib29rIGlzYm49Ijk3OC0wLTEyMzQ1Ni03OC05Ij4KKyAgICA8dGl0 bGU+UG9zdGdyZVNRTCBJbnRlcm5hbHM8L3RpdGxlPgorICAgIDxhdXRob3I+PGZpcnN0bmFtZT5K b2huPC9maXJzdG5hbWU+PGxhc3RuYW1lPlRpdG9yPC9sYXN0bmFtZT48L2F1dGhvcj4KKyAgICA8 YXV0aG9yPjxmaXJzdG5hbWU+SmFuZTwvZmlyc3RuYW1lPjwvYXV0aG9yPgorICAgIDx5ZWFyPjIw MjQ8L3llYXI+CisgIDwvYm9vaz4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgYm9va19zY2hl bWEpOworCitTRUxFQ1QgWE1MU0VSSUFMSVpFKERPQ1VNRU5UCisgIFhNTFZBTElEQVRFKERPQ1VN RU5UICc8cGVyc29uPjxuYW1lPkFsaWNlPC9uYW1lPjxhZ2U+MjU8L2FnZT48L3BlcnNvbj4nCisg ICAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJzb25fc2NoZW1hKSBBUyB0ZXh0KTsKKworU0VM RUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UIE5VTEwgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJz b25fc2NoZW1hKTsKKworU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UIE5VTEwgQUNDT1JESU5H IFRPIFhNTFNDSEVNQSBwZXJzb25fc2NoZW1hKSBJUyBOVUxMIEFTIGlzX251bGw7CisKK1NFTEVD VCBYTUxWQUxJREFURShET0NVTUVOVCAnPHBlcnNvbj48bmFtZT5Kb2huPC9uYW1lPjwvcGVyc29u PicKKyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJzb25fc2NoZW1hKTsKKworU0VMRUNUIFhN TFZBTElEQVRFKERPQ1VNRU5UICc8cGVyc29uPjxuYW1lPkpvaG48L25hbWU+PGFnZT5ub3QtYS1u dW1iZXI8L2FnZT48L3BlcnNvbj4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVyc29uX3Nj aGVtYSk7CisKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPHByb2R1Y3Q+PG5hbWU+V2lk Z2V0PC9uYW1lPjxwcmljZT45Ljk5PC9wcmljZT48L3Byb2R1Y3Q+JworICBBQ0NPUkRJTkcgVE8g WE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLnByb2R1Y3Rfc2NoZW1hKTsKKworU0VMRUNUIFhN TFZBTElEQVRFKERPQ1VNRU5UICc8cGVyc29uPjxuYW1lPkpvaG48L25hbWU+PGFnZT4zMDwvYWdl PjxleHRyYT5kYXRhPC9leHRyYT48L3BlcnNvbj4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEg cGVyc29uX3NjaGVtYSk7CisKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPG5vdHBlcnNv bj48bmFtZT5Kb2huPC9uYW1lPjxhZ2U+MzA8L2FnZT48L25vdHBlcnNvbj4nCisgIEFDQ09SRElO RyBUTyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSk7CisKK1NFTEVDVCBYTUxWQUxJREFURShET0NV TUVOVCAnPHRlc3Q+dmFsdWU8L3Rlc3Q+JworICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIG5vbmV4 aXN0ZW50X3NjaGVtYSk7CisKK0NSRUFURSBWSUVXIHZhbGlkYXRlZF9wZW9wbGUgQVMKKyAgU0VM RUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UIGRhdGEgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJz b25fc2NoZW1hKSBBUyB2YWxpZGF0ZWRfeG1sCisgIEZST00geG1sdGVzdCBXSEVSRSBpZCA9IDE7 CisKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigndmFsaWRhdGVkX3Blb3BsZSc6OnJlZ2NsYXNzLCB0 cnVlKTsKKworRFJPUCBWSUVXIHZhbGlkYXRlZF9wZW9wbGU7CisKK0NSRUFURSBWSUVXIHZhbGlk YXRlZF9wcm9kdWN0cyBBUworICBTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxwcm9kdWN0 IGlkPSIxMjMiPjxuYW1lPlRlc3Q8L25hbWU+PHByaWNlPjEuOTk8L3ByaWNlPjwvcHJvZHVjdD4n CisgICAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5wcm9kdWN0X3Nj aGVtYSkgQVMgdmFsaWRhdGVkX3htbDsKKworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCd2YWxpZGF0 ZWRfcHJvZHVjdHMnOjpyZWdjbGFzcywgdHJ1ZSk7CisKK0RST1AgVklFVyB2YWxpZGF0ZWRfcHJv ZHVjdHM7CisKK0FMVEVSIFhNTFNDSEVNQSBib29rX3NjaGVtYSBSRU5BTUUgVE8gbGlicmFyeV9i b29rX3NjaGVtYTsKKworU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8Ym9vayBpc2JuPSIx MjMiPjx0aXRsZT5UZXN0PC90aXRsZT48YXV0aG9yPjxmaXJzdG5hbWU+QTwvZmlyc3RuYW1lPjxs YXN0bmFtZT5CPC9sYXN0bmFtZT48L2F1dGhvcj48eWVhcj4yMDI0PC95ZWFyPjwvYm9vaz4nCisg IEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgYm9va19zY2hlbWEpOworCitTRUxFQ1QgWE1MVkFMSURB VEUoRE9DVU1FTlQgJzxib29rIGlzYm49IjEyMyI+PHRpdGxlPlRlc3Q8L3RpdGxlPjxhdXRob3I+ PGZpcnN0bmFtZT5BPC9maXJzdG5hbWU+PGxhc3RuYW1lPkI8L2xhc3RuYW1lPjwvYXV0aG9yPjx5 ZWFyPjIwMjQ8L3llYXI+PC9ib29rPicKKyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBsaWJyYXJ5 X2Jvb2tfc2NoZW1hKTsKKworQUxURVIgWE1MU0NIRU1BIGxpYnJhcnlfYm9va19zY2hlbWEgU0VU IFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9uczsKKworU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5U ICc8Ym9vayBpc2JuPSIxMjMiPjx0aXRsZT5UZXN0PC90aXRsZT48YXV0aG9yPjxmaXJzdG5hbWU+ QTwvZmlyc3RuYW1lPjxsYXN0bmFtZT5CPC9sYXN0bmFtZT48L2F1dGhvcj48eWVhcj4yMDI0PC95 ZWFyPjwvYm9vaz4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgbGlicmFyeV9ib29rX3NjaGVt YSk7CisKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPGJvb2sgaXNibj0iMTIzIj48dGl0 bGU+VGVzdDwvdGl0bGU+PGF1dGhvcj48Zmlyc3RuYW1lPkE8L2ZpcnN0bmFtZT48bGFzdG5hbWU+ QjwvbGFzdG5hbWU+PC9hdXRob3I+PHllYXI+MjAyNDwveWVhcj48L2Jvb2s+JworICBBQ0NPUkRJ TkcgVE8gWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLmxpYnJhcnlfYm9va19zY2hlbWEpOwor CitDUkVBVEUgUk9MRSByZWdyZXNzX3htbHNjaGVtYV90ZXN0X3JvbGU7CisKK0FMVEVSIFhNTFND SEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5saWJyYXJ5X2Jvb2tfc2NoZW1hIE9XTkVSIFRPIHJlZ3Jl c3NfeG1sc2NoZW1hX3Rlc3Rfcm9sZTsKKworU0VMRUNUIHNjaGVtYW5hbWUsIHNjaGVtYW5hbWVz cGFjZTo6cmVnbmFtZXNwYWNlLCBzY2hlbWFvd25lcjo6cmVncm9sZQorRlJPTSBwZ194bWxzY2hl bWEKK1dIRVJFIHNjaGVtYW5hbWUgPSAnbGlicmFyeV9ib29rX3NjaGVtYSc7CisKK0NSRUFURSBW SUVXIGJvb2tfdmlldyBBUworICBTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxib29rIGlz Ym49IjQ1NiI+PHRpdGxlPkRlcCBUZXN0PC90aXRsZT48YXV0aG9yPjxmaXJzdG5hbWU+WDwvZmly c3RuYW1lPjxsYXN0bmFtZT5ZPC9sYXN0bmFtZT48L2F1dGhvcj48eWVhcj4yMDI1PC95ZWFyPjwv Ym9vaz4nCisgICAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5saWJy YXJ5X2Jvb2tfc2NoZW1hKSBBUyB2YWxpZGF0ZWRfYm9vazsKKworRFJPUCBYTUxTQ0hFTUEgdGVz dF94bWxzY2hlbWFfbnMubGlicmFyeV9ib29rX3NjaGVtYTsKKworRFJPUCBYTUxTQ0hFTUEgdGVz dF94bWxzY2hlbWFfbnMubGlicmFyeV9ib29rX3NjaGVtYSBDQVNDQURFOworCitTRUxFQ1QgKiBG Uk9NIGJvb2tfdmlldzsKKworRFJPUCBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYTsKKworRFJPUCBY TUxTQ0hFTUEgSUYgRVhJU1RTIHBlcnNvbl9zY2hlbWE7CisKK0RST1AgWE1MU0NIRU1BIHBlcnNv bl9zY2hlbWE7CisKK0RST1AgWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLnByb2R1Y3Rfc2No ZW1hOworCitTRVQgUk9MRSByZWdyZXNzX3htbHNjaGVtYV90ZXN0X3JvbGU7CisKK0NSRUFURSBY TUxTQ0hFTUEgcHVibGljLnNob3VsZF9mYWlsX3NjaGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4w Ij8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVt YSI+CisgIDx4czplbGVtZW50IG5hbWU9InRlc3QiIHR5cGU9InhzOnN0cmluZyIvPgorPC94czpz Y2hlbWE+JzsKKworUkVTRVQgUk9MRTsKKworR1JBTlQgQ1JFQVRFIE9OIFNDSEVNQSB0ZXN0X3ht bHNjaGVtYV9ucyBUTyByZWdyZXNzX3htbHNjaGVtYV90ZXN0X3JvbGU7CisKK1NFVCBST0xFIHJl Z3Jlc3NfeG1sc2NoZW1hX3Rlc3Rfcm9sZTsKKworQ1JFQVRFIFhNTFNDSEVNQSB0ZXN0X3htbHNj aGVtYV9ucy5yb2xlX3NjaGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1h IHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVt ZW50IG5hbWU9InRlc3QiIHR5cGU9InhzOnN0cmluZyIvPgorPC94czpzY2hlbWE+JzsKKworUkVT RVQgUk9MRTsKKworRFJPUCBYTUxTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMucm9sZV9zY2hlbWE7 CisKK0RST1AgUk9MRSByZWdyZXNzX3htbHNjaGVtYV90ZXN0X3JvbGU7CisKK0RST1AgU0NIRU1B IHRlc3RfeG1sc2NoZW1hX25zIENBU0NBREU7CisKK0NSRUFURSBST0xFIHJlZ3Jlc3NfeG1sc2No ZW1hX3VzZXIxOworQ1JFQVRFIFJPTEUgcmVncmVzc194bWxzY2hlbWFfdXNlcjI7CisKK0NSRUFU RSBYTUxTQ0hFTUEgcGVybWlzc2lvbl90ZXN0X3NjaGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4w Ij8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVt YSI+CisgIDx4czplbGVtZW50IG5hbWU9InRlc3QiIHR5cGU9InhzOnN0cmluZyIvPgorPC94czpz Y2hlbWE+JzsKKworU0VUIFJPTEUgcmVncmVzc194bWxzY2hlbWFfdXNlcjE7CitTRUxFQ1QgWE1M VkFMSURBVEUoRE9DVU1FTlQgJzx0ZXN0PmRhdGE8L3Rlc3Q+JworICAgICAgICAgICAgICAgICAg IEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVybWlzc2lvbl90ZXN0X3NjaGVtYSk7CisKK1JFU0VU IFJPTEU7CisKK0dSQU5UIFVTQUdFIE9OIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1h IFRPIHJlZ3Jlc3NfeG1sc2NoZW1hX3VzZXIxOworCitTRVQgUk9MRSByZWdyZXNzX3htbHNjaGVt YV91c2VyMTsKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPHRlc3Q+ZGF0YTwvdGVzdD4n CisgICAgICAgICAgICAgICAgICAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rl c3Rfc2NoZW1hKTsKKworUkVTRVQgUk9MRTsKKworU0VUIFJPTEUgcmVncmVzc194bWxzY2hlbWFf dXNlcjI7CitTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzx0ZXN0PmRhdGE8L3Rlc3Q+Jwor ICAgICAgICAgICAgICAgICAgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVybWlzc2lvbl90ZXN0 X3NjaGVtYSk7CisKK1JFU0VUIFJPTEU7CisKK0dSQU5UIFVTQUdFIE9OIFhNTFNDSEVNQSBwZXJt aXNzaW9uX3Rlc3Rfc2NoZW1hIFRPIHJlZ3Jlc3NfeG1sc2NoZW1hX3VzZXIyOworCitTRVQgUk9M RSByZWdyZXNzX3htbHNjaGVtYV91c2VyMjsKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAn PHRlc3Q+ZGF0YTwvdGVzdD4nCisgICAgICAgICAgICAgICAgICAgQUNDT1JESU5HIFRPIFhNTFND SEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hKTsKKworUkVTRVQgUk9MRTsKKworUkVWT0tFIFVT QUdFIE9OIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hIEZST00gcmVncmVzc194bWxz Y2hlbWFfdXNlcjE7CisKK1NFVCBST0xFIHJlZ3Jlc3NfeG1sc2NoZW1hX3VzZXIxOworU0VMRUNU IFhNTFZBTElEQVRFKERPQ1VNRU5UICc8dGVzdD5kYXRhPC90ZXN0PicKKyAgICAgICAgICAgICAg ICAgICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcm1pc3Npb25fdGVzdF9zY2hlbWEpOworCitS RVNFVCBST0xFOworCitEUk9QIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hOworRFJP UCBST0xFIHJlZ3Jlc3NfeG1sc2NoZW1hX3VzZXIxOworRFJPUCBST0xFIHJlZ3Jlc3NfeG1sc2No ZW1hX3VzZXIyOworCitDUkVBVEUgVEFCTEUgdmFsaWRhdGVkX3htbF9kYXRhICgKKyAgaWQgc2Vy aWFsIFBSSU1BUlkgS0VZLAorICBkYXRhIHhtbAorKTsKKworQ1JFQVRFIFhNTFNDSEVNQSBkYXRh X3NjaGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJo dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50IG5hbWU9ImRh dGEiPgorICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgICAg PHhzOmVsZW1lbnQgbmFtZT0idmFsdWUiIHR5cGU9InhzOmludGVnZXIiLz4KKyAgICAgIDwveHM6 c2VxdWVuY2U+CisgICAgPC94czpjb21wbGV4VHlwZT4KKyAgPC94czplbGVtZW50PgorPC94czpz Y2hlbWE+JzsKKworSU5TRVJUIElOVE8gdmFsaWRhdGVkX3htbF9kYXRhIChkYXRhKQorVkFMVUVT IChYTUxWQUxJREFURShET0NVTUVOVCAnPGRhdGE+PHZhbHVlPjQyPC92YWx1ZT48L2RhdGE+Jwor ICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIGRhdGFfc2NoZW1hKSk7CisKK0lOU0VSVCBJTlRPIHZh bGlkYXRlZF94bWxfZGF0YSAoZGF0YSkKK1ZBTFVFUyAoWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxk YXRhPjx2YWx1ZT4xMDA8L3ZhbHVlPjwvZGF0YT4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEg ZGF0YV9zY2hlbWEpKTsKKworU0VMRUNUIGlkLCBkYXRhIEZST00gdmFsaWRhdGVkX3htbF9kYXRh IE9SREVSIEJZIGlkOworCitJTlNFUlQgSU5UTyB2YWxpZGF0ZWRfeG1sX2RhdGEgKGRhdGEpCitW QUxVRVMgKFhNTFZBTElEQVRFKERPQ1VNRU5UICc8ZGF0YT48dmFsdWU+bm90LWFuLWludDwvdmFs dWU+PC9kYXRhPicKKyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBkYXRhX3NjaGVtYSkpOworCitE Uk9QIFRBQkxFIHZhbGlkYXRlZF94bWxfZGF0YTsKKworRFJPUCBYTUxTQ0hFTUEgZGF0YV9zY2hl bWE7CisKK0RST1AgWE1MU0NIRU1BIHNob3VsZF9mYWlsX3NjaGVtYTsKKworRFJPUCBST0xFIHJl Z3Jlc3NfeG1sc2NoZW1hX3Rlc3Rfcm9sZTsKLS0gCjIuNTEuMgoK --000000000000cbc3de06484ef328--