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 1vqAs5-005wqY-19 for pgsql-hackers@arkaria.postgresql.org; Wed, 11 Feb 2026 14:07:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vqAs4-003ytw-20 for pgsql-hackers@arkaria.postgresql.org; Wed, 11 Feb 2026 14:07:13 +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 1vqAs4-003ytn-0J for pgsql-hackers@lists.postgresql.org; Wed, 11 Feb 2026 14:07:13 +0000 Received: from mail-dy1-x1332.google.com ([2607:f8b0:4864:20::1332]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vqAs2-000000009qL-0TQ0 for pgsql-hackers@lists.postgresql.org; Wed, 11 Feb 2026 14:07:12 +0000 Received: by mail-dy1-x1332.google.com with SMTP id 5a478bee46e88-2ba76d64d14so141639eec.0 for ; Wed, 11 Feb 2026 06:07:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1770818828; cv=none; d=google.com; s=arc-20240605; b=RbZBhme32eB7kenOjX1D9hROEhyKfxGfaGec0cLc4OUi1zP4wCh65hdapsHy8XdN41 8dKgheqBPauopsM2yJBUr6rVUj+QZWfWdQAUtvSCoTcn2FsxzrPjvCQBvUDMswl2BU+a wjIDD4ORHgSO+JkM87LMv0xcngtgW0ZOZXRhF+TgxeTjAV3vsR0YR49HiaBAuL85ATyx rsFey0zu6Ubhr+tw+IHurejVrpznNgDJpFDNRxOTRByogAgDSIg9bhkpN14QfJPJ7c79 0KWlvdqLJ35iR6oV/SzTRjkpwSeq8B+zrf3RnXDpS03kyUdoL+wENkuiVYowJy5w1RG3 Vk2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=AhmG+COEHe24CQolLGjA3V+wtg/kWP/SJiJB0+QWnvE=; fh=GWmwWJDa4yOx7jwfQ8m+pRWbJJ+pitUW/5PUON4mmiU=; b=QaZJMY6ba7quhaBoM4JzKSFhUvUXKsY8p/7g6j4FiMypfKM6FuyHYwnKB7LnbAl5ar uuMpzK4416qzzg1ztshz1BHR2I5smTcguSfXtgd6dQDRpyB4qPcRBRcj3QWcIM+dq4/Q umbJeftwUMZwBNruH0nsGO4lA0TCCEnPReEbnByGwSz9YbrJi7+ETx+QKHw8kn/Yexua bg/Iv05w9ASD3+PyV66ZX7E8YJUYfDF9L9T+IeP9VWw1VuZylF6F3uTyOovEus9pVGdW ZfhS1x5lXoO8wA9Jv8npuN4uopvDR6DmSQwhD6nmymtCea1UtteEsR0IXIAW/L52eTky +ciQ==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770818828; x=1771423628; 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=AhmG+COEHe24CQolLGjA3V+wtg/kWP/SJiJB0+QWnvE=; b=ZwF2jaCgq0fs61uoVNUvLYwdeQh1+cWWJiJZQWUuBP3VcTn1wCODuuYgWnnKQwsWad Ix4YfPfdmByozYGUa5lLWpZu7sS3fwvosX7gORLni/Ml08hiMmQV+c80ovit2tDgiwPB rrIWVBJbJcbRm7EKs5cwNElcIK3hDdA9x2VDwoWBHdflJXGxx+/OpVJmx4Q6+0MB8RHA JfXPMmkluwL69m3niiaZD7UxEbt2ODrDZHnNbuflRVGxMpqXvavCyHmFdQTXz2XD9U+N wNKlF/c4YknuapfxKG5l1NN3XSyfeJ4ykXHOsHfgHKThWqKjBXe6xgeXibjB4bmSTxvh GL3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770818828; x=1771423628; 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=AhmG+COEHe24CQolLGjA3V+wtg/kWP/SJiJB0+QWnvE=; b=QjI81pYEAtWMbaKpFuvfz7jpCsrfUzH8289HOZAdrsjndd31NOyyy0Nb6DlJijFNm5 e+wOiJ9PfvmLpE8sS7Utb3hxhILJLiN+HpxCs849Womv+e6eIoBRXyl3pQmMM4csGm6I YUNtvGYtf7qEZPqgQoYSRbaGCMhnIwMpih4Bj8OTQMAdXr9h2JiPr0kmoEfH68TUcCRU an2/+dqrbvJNahkWhRRyVHP61WTlc4AdWsg+eMDzFnMMXbHcj3KSdRasO6Y1PO+8OYwo lqbKH4/qAiUWEKizfp52R/qNvv8BxTK4Il2uZbei1wuJHIRmst6XjaohWH2FwVm+Pt/0 9Dmg== X-Gm-Message-State: AOJu0YxTAL7KeNzZmmnJQQi2eUaCBPk6OTa5uhqERsTu++lN+1dJh3sk 02PgxW0B9cW+zgRFCDP8TD+yxSQgnLM733BBFPp6ORVSEZc2IDTxo5cYrK7euAKuA6TvDSOc/Se DVbl5uiUKVqmfkdFB1NArq6H5hcYadTo= X-Gm-Gg: AZuq6aJ+L6PIBwquis2TIFiLij82IyA4iIjQ+CKWLKe3GTeuw/wYOy4tyJfrj44TPyl ZuZ8PSRmheiqhYb/+9Wh+jf31NRQGAprU44c+75Ox81uZtXnPaoAztzQZquKK+EVIigv/EDhOhv tiHvzO1mGbemFHaT0R+KGeKewFtEi++ClNWUuf/0j5DHinoh/9PhC8IGTMtLkrmIxOhd9FBEJfK g8CW2dcIWjt+kQEX+IDmBp0vMTymhdGw1mDR2mMIjlpn761sTRMoaUFRPkbrxiEN6jtESmGKdfM RUP6Pe9ovfVkYMBKMX1hWN6fjiNGusyaTrigZEwEOtssIaa/nqGG5LB5CnYfDK9PaWIjOFz9f5T gvSIquZPb0DSrCsV74Trf4A== X-Received: by 2002:a05:7301:10cb:b0:2ab:ca55:89cb with SMTP id 5a478bee46e88-2ba9e1600a7mr366156eec.6.1770818827391; Wed, 11 Feb 2026 06:07:07 -0800 (PST) MIME-Version: 1.0 References: <20260211.155236.1457492817322202220.ishii@postgresql.org> In-Reply-To: <20260211.155236.1457492817322202220.ishii@postgresql.org> From: Thomas Munro Date: Thu, 12 Feb 2026 03:06:29 +1300 X-Gm-Features: AZwV_Qhd1qGUjNNTMu8wINwl7t3M42_mUW7miUqimsZHvqV4NyByRirMGBXZPsU Message-ID: Subject: Re: Do we still need MULE_INTERNAL? To: Tatsuo Ishii Cc: pgsql-hackers@lists.postgresql.org, Tom Lane Content-Type: multipart/mixed; boundary="0000000000002b964c064a8ce376" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000002b964c064a8ce376 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Feb 11, 2026 at 7:52=E2=80=AFPM Tatsuo Ishii = wrote: > Thank you for the report. I find it is quite useful, especially the > Emacs 23 internal (new to me). I agree that MULE_INTERNAL has > fulfilled its historic role. Thanks Ishii-san and Tom. Here's a patch. Obviously it mostly just deletes thousands of lines, but also: I had to preserve the encoding number, so there's a hole in the table, and I had to think of a new name for cyrillic_and_mic.c, so I went with cyrillic.c because it handles 4 single-byte encodings and it wasn't clear how to fit into the existing x_and_y pattern (ie which two to highlight arbitrarily in the name). > > Since there are two encodings for kana characters and MULE's > > superpower is to switch, I guess it depends how you chose to encode it > > and what your ratio of kana to kanji is. > > The reason for 2 encodings in MULE for "kana" exist is, it's a nature > of the character sets mule supports. In Japanese there are 2 types of > "kana", one is "hiragana" and the other is "katakana". JIS X0208/0212 > includes both types of "kana", while JIS X0201 includes only > "katakana". So why "katakana" appears on those two encodings? Katakana > in JIS X0201 is often rendered on screen in half width comparing with > JIS X 0208 and 0212. Some users find this beneficial. Ah, right, I see. And judging by Wikipedia's article on half-width katakana, it sounds like any scenario where it's mixed with hiragana and kanji would probably not use them anyway, so perhaps 3 is a better guess. In other words, MULE_INTERNAL databases would probably not get bigger if reloaded as UTF-8. > > UTF8: 3 3 > > I thought some of JIS 2004 kanji are mapped to 4-byte UTF8 character. Looks like it: grep 'U+[0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F].*\[200[04]\]' \ ./src/backend/utils/mb/Unicode/euc-jis-2004-std.txt They are in "CJK Unified Ideographs Extension B" for "rare and historic CJK ideographs", so I guess they wouldn't matter much, but in any case we're talking about a hypothetical user moving from MULE_INTERNAL, which *doesn't* have JIS 2004. I think the older standards are entirely in the basic plane, so only 1-3-byte UTF-8 sequences. . o O ( UTF-16 would probably be the ideal storage for CJK text if we could do it... ) --0000000000002b964c064a8ce376 Content-Type: application/x-patch; name="v1-0001-Remove-MULE_INTERNAL-encoding.patch" Content-Disposition: attachment; filename="v1-0001-Remove-MULE_INTERNAL-encoding.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mli38w200 RnJvbSBhZTgyNGU4MzhhZWI2NzlkYmEzYTUzODg2OGY3NTk4MGQ0YTBkNjQ1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgTXVucm8gPHRob21hcy5tdW5yb0BnbWFpbC5jb20+ CkRhdGU6IE1vbiwgOSBGZWIgMjAyNiAyMDoyNToxOCArMTMwMApTdWJqZWN0OiBbUEFUQ0ggdjFd IFJlbW92ZSBNVUxFX0lOVEVSTkFMIGVuY29kaW5nLgoKVGhpcyB3YXMgdXNlZnVsIGJlZm9yZSB3 aWRlc3ByZWFkIFVuaWNvZGUgYWRvcHRpb24sIGFuZCB3YXMgYmFzZWQgb24gdGhlCmludGVybmFs IGVuY29kaW5nIEVtYWNzIHVzZWQgdG8gbWl4IG11bHRpcGxlIHN1Yi1lbmNvZGluZ3MuICBFbWFj cwppdHNlbGYgaGFzIHN0b3BwZWQgdXNpbmcgaXQsIGFuZCBvdXIgaW1wbGVtZW50YXRpb24gaGFk bid0IGJlZW4gdXBkYXRlZAp3aXRoIG1vZGVybiB1bmRlcmx5aW5nIHN0YW5kYXJkcy4gIEl0IGlz IHRob3VnaHQgdG8gYmUgdmVyeSB1bmxpa2VseQp0aGF0IGFueW9uZSBpcyBzdGlsbCB1c2luZyBp dCBpbiB0aGUgZmllbGQuICBTaW5jZSBzdWNoIGEgY29tcGxleAplbmNvZGluZyBjb21lcyB3aXRo IGNvc3RzIGFuZCByaXNrcywgd2UgYWdyZWVkIHRvIGRyb3Agc3VwcG9ydC4KCkFueSBleGlzdGlu ZyBkYXRhYmFzZSB1c2luZyB0aGlzIGVuY29kaW5nIHdvdWxkIG5lZWQgdG8gYmUgZHVtcGVkIGFu ZApyZXN0b3JlZCB3aXRoIGEgbmV3IGVuY29kaW5nIHRvIHVwZ3JhZGUgdG8gUG9zdGdyZVNRTCAx OSwgbW9zdCBsaWtlbHkKVVRGOCwgc2luY2UgcGdfdXBncmFkZSB3b3VsZCBmYWlsLgoKUmV2aWV3 ZWQtYnk6IFRvbSBMYW5lIDx0Z2xAc3NzLnBnaC5wYS51cz4KUmV2aWV3ZWQtYnk6IFRhdHN1byBJ c2hpaSA8aXNoaWlAcG9zdGdyZXNxbC5vcmc+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0ElMkJoVUtHS1hEWGgtRmRVMG9yamZ2JTJCRjA4ZiUzREQ5MUJoVjNSYS00ekwtcSUyQkpt R1lxVEElNDBtYWlsLmdtYWlsLmNvbQotLS0KIGRvYy9zcmMvc2dtbC9jaGFyc2V0LnNnbWwgICAg ICAgICAgICAgICAgICAgICB8IDE5MSArLS0tLS0tLQogc3JjL2JhY2tlbmQvdXRpbHMvbWIvY29u di5jICAgICAgICAgICAgICAgICAgIHwgMjM4IC0tLS0tLS0tLS0KIC4uLi91dGlscy9tYi9jb252 ZXJzaW9uX3Byb2NzL01ha2VmaWxlICAgICAgICB8ICAgNCArLQogLi4uL3tsYXRpbl9hbmRfbWlj ID0+IGN5cmlsbGljfS9NYWtlZmlsZSAgICAgIHwgICA4ICstCiAuLi4vY3lyaWxsaWMuY30gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNDQgKy0tLS0tCiAuLi4vY3lyaWxsaWNfYW5k X21pYy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgMTMgLQogLi4uL2NvbnZlcnNpb25fcHJv Y3MvZXVjX2NuX2FuZF9taWMvTWFrZWZpbGUgIHwgIDEzIC0KIC4uLi9ldWNfY25fYW5kX21pYy9l dWNfY25fYW5kX21pYy5jICAgICAgICAgICB8IDE2OSAtLS0tLS0tCiAuLi4vZXVjX2pwX2FuZF9z amlzL2V1Y19qcF9hbmRfc2ppcy5jICAgICAgICAgfCA0NDggKy0tLS0tLS0tLS0tLS0tLS0tCiAu Li4vY29udmVyc2lvbl9wcm9jcy9ldWNfa3JfYW5kX21pYy9NYWtlZmlsZSAgfCAgMTMgLQogLi4u L2V1Y19rcl9hbmRfbWljL2V1Y19rcl9hbmRfbWljLmMgICAgICAgICAgIHwgMTc3IC0tLS0tLS0K IC4uLi9jb252ZXJzaW9uX3Byb2NzL2V1Y190d19hbmRfYmlnNS9iaWc1LmMgICB8ICAgMyArLQog Li4uL2V1Y190d19hbmRfYmlnNS9ldWNfdHdfYW5kX2JpZzUuYyAgICAgICAgIHwgMzU2ICstLS0t LS0tLS0tLS0tCiAuLi4vbGF0aW4yX2FuZF93aW4xMjUwL2xhdGluMl9hbmRfd2luMTI1MC5jICAg fCAgNzAgLS0tCiAuLi4vbGF0aW5fYW5kX21pYy9sYXRpbl9hbmRfbWljLmMgICAgICAgICAgICAg fCAxMzkgLS0tLS0tCiAuLi4vdXRpbHMvbWIvY29udmVyc2lvbl9wcm9jcy9tZXNvbi5idWlsZCAg ICAgfCAgIDUgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL21iL21idXRpbHMuYyAgICAgICAgICAgICAg ICB8ICAgNiArLQogc3JjL2NvbW1vbi9lbmNuYW1lcy5jICAgICAgICAgICAgICAgICAgICAgICAg IHwgICA4IC0KIHNyYy9jb21tb24vd2NoYXIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDIyMyAtLS0tLS0tLS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29udmVyc2lvbi5kYXQgICAg ICAgICB8ICA5MCAtLS0tCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAg ICAgICAgfCAxNzQgKy0tLS0tLQogc3JjL2luY2x1ZGUvbWIvcGdfd2NoYXIuaCAgICAgICAgICAg ICAgICAgICAgIHwgMTk4ICstLS0tLS0tCiBzcmMvcGwvcGxweXRob24vcGxweV91dGlsLmMgICAg ICAgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy90ZXN0L21iL2V4cGVjdGVkL211bGVfaW50ZXJu YWwub3V0ICAgICAgICB8IDMzMyAtLS0tLS0tLS0tLS0tCiBzcmMvdGVzdC9tYi9tYnJlZ3Jlc3Mu c2ggICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L21iL3NxbC9tdWxlX2lu dGVybmFsLnNxbCAgICAgICAgICAgICB8ICA3MiAtLS0KIHNyYy90ZXN0L21vZHVsZXMvdGVzdF9l c2NhcGUvdGVzdF9lc2NhcGUuYyAgICB8ICAgMiAtCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2NvbnZlcnNpb24ub3V0ICAgICAgfCAxMjcgLS0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvZW5jb2Rpbmcub3V0ICAgICAgICB8ICAxNyArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9vYmplY3RfYWRkcmVzcy5vdXQgIHwgICA0ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3htbC5vdXQgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv eG1sXzEub3V0ICAgICAgICAgICB8ICAgNCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC94 bWxfMi5vdXQgICAgICAgICAgIHwgICA0ICstCiBzcmMvdGVzdC9yZWdyZXNzL3JlZ3Jlc3MuYyAg ICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29udmVyc2lv bi5zcWwgICAgICAgICAgIHwgIDI3IC0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9lbmNvZGluZy5z cWwgICAgICAgICAgICAgfCAgMTEgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVjdF9hZGRy ZXNzLnNxbCAgICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwveG1sLnNxbCAgICAg ICAgICAgICAgICAgIHwgICA0ICstCiAzOCBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCsp LCAzMjU0IGRlbGV0aW9ucygtKQogcmVuYW1lIHNyYy9iYWNrZW5kL3V0aWxzL21iL2NvbnZlcnNp b25fcHJvY3Mve2xhdGluX2FuZF9taWMgPT4gY3lyaWxsaWN9L01ha2VmaWxlICg1NyUpCiByZW5h bWUgc3JjL2JhY2tlbmQvdXRpbHMvbWIvY29udmVyc2lvbl9wcm9jcy97Y3lyaWxsaWNfYW5kX21p Yy9jeXJpbGxpY19hbmRfbWljLmMgPT4gY3lyaWxsaWMvY3lyaWxsaWMuY30gKDgwJSkKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC91dGlscy9tYi9jb252ZXJzaW9uX3Byb2NzL2N5cmls bGljX2FuZF9taWMvTWFrZWZpbGUKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC91dGls cy9tYi9jb252ZXJzaW9uX3Byb2NzL2V1Y19jbl9hbmRfbWljL01ha2VmaWxlCiBkZWxldGUgbW9k ZSAxMDA2NDQgc3JjL2JhY2tlbmQvdXRpbHMvbWIvY29udmVyc2lvbl9wcm9jcy9ldWNfY25fYW5k X21pYy9ldWNfY25fYW5kX21pYy5jCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvdXRp bHMvbWIvY29udmVyc2lvbl9wcm9jcy9ldWNfa3JfYW5kX21pYy9NYWtlZmlsZQogZGVsZXRlIG1v ZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3V0aWxzL21iL2NvbnZlcnNpb25fcHJvY3MvZXVjX2tyX2Fu ZF9taWMvZXVjX2tyX2FuZF9taWMuYwogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3V0 aWxzL21iL2NvbnZlcnNpb25fcHJvY3MvbGF0aW5fYW5kX21pYy9sYXRpbl9hbmRfbWljLmMKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tYi9leHBlY3RlZC9tdWxlX2ludGVybmFsLm91dAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21iL3NxbC9tdWxlX2ludGVybmFsLnNxbAoKZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jaGFyc2V0LnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2hhcnNl dC5zZ21sCmluZGV4IDNhYWJjNzk4MDEyLi4yODk1ZmQ0M2Y4NiAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL2NoYXJzZXQuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2hhcnNldC5zZ21sCkBAIC0y MDQ1LDE1ICsyMDQ1LDYgQEAgT1JERVIgQlkgYyBDT0xMQVRFIGViY2RpYzsKICAgICAgICAgIDxl bnRyeT4xPC9lbnRyeT4KICAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5JU084ODU5MTY8L2xpdGVy YWw+PC9lbnRyeT4KICAgICAgICAgPC9yb3c+Ci0gICAgICAgIDxyb3c+Ci0gICAgICAgICA8ZW50 cnk+PGxpdGVyYWw+TVVMRV9JTlRFUk5BTDwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgICAgPGVu dHJ5Pk11bGUgaW50ZXJuYWwgY29kZTwvZW50cnk+Ci0gICAgICAgICA8ZW50cnk+TXVsdGlsaW5n dWFsIEVtYWNzPC9lbnRyeT4KLSAgICAgICAgIDxlbnRyeT5ZZXM8L2VudHJ5PgotICAgICAgICAg PGVudHJ5Pk5vPC9lbnRyeT4KLSAgICAgICAgIDxlbnRyeT4xJm5kYXNoOzQ8L2VudHJ5PgotICAg ICAgICAgPGVudHJ5PjwvZW50cnk+Ci0gICAgICAgIDwvcm93PgogICAgICAgICA8cm93PgogICAg ICAgICAgPGVudHJ5PjxsaXRlcmFsPlNKSVM8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAgIDxl bnRyeT5TaGlmdCBKSVM8L2VudHJ5PgpAQCAtMjIwNSw3ICsyMTk2LDcgQEAgT1JERVIgQlkgYyBD T0xMQVRFIGViY2RpYzsKICAgICAgPHBhcmE+CiAgICAgICBOb3QgYWxsIGNsaWVudCA8YWNyb255 bT5BUEk8L2Fjcm9ueW0+cyBzdXBwb3J0IGFsbCB0aGUgbGlzdGVkIGNoYXJhY3RlciBzZXRzLiBG b3IgZXhhbXBsZSwgdGhlCiAgICAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5h bWU+Ci0gICAgICBKREJDIGRyaXZlciBkb2VzIG5vdCBzdXBwb3J0IDxsaXRlcmFsPk1VTEVfSU5U RVJOQUw8L2xpdGVyYWw+LCA8bGl0ZXJhbD5MQVRJTjY8L2xpdGVyYWw+LAorICAgICAgSkRCQyBk cml2ZXIgZG9lcyBub3Qgc3VwcG9ydCA8bGl0ZXJhbD5MQVRJTjY8L2xpdGVyYWw+LAogICAgICAg PGxpdGVyYWw+TEFUSU44PC9saXRlcmFsPiwgYW5kIDxsaXRlcmFsPkxBVElOMTA8L2xpdGVyYWw+ LgogICAgICA8L3BhcmE+CiAKQEAgLTI0NjMsMTQgKzI0NTQsMTIgQEAgUkVTRVQgY2xpZW50X2Vu Y29kaW5nOwogICAgICAgIDxyb3c+CiAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5FVUNfQ048L2xp dGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5PjxlbXBoYXNpcz5FVUNfQ048L2VtcGhhc2lz PiwKLSAgICAgICAgPGxpdGVyYWw+TVVMRV9JTlRFUk5BTDwvbGl0ZXJhbD4sCiAgICAgICAgIDxs aXRlcmFsPlVURjg8L2xpdGVyYWw+CiAgICAgICAgIDwvZW50cnk+CiAgICAgICAgPC9yb3c+CiAg ICAgICAgPHJvdz4KICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPkVVQ19KUDwvbGl0ZXJhbD48L2Vu dHJ5PgogICAgICAgICA8ZW50cnk+PGVtcGhhc2lzPkVVQ19KUDwvZW1waGFzaXM+LAotICAgICAg ICA8bGl0ZXJhbD5NVUxFX0lOVEVSTkFMPC9saXRlcmFsPiwKICAgICAgICAgPGxpdGVyYWw+U0pJ UzwvbGl0ZXJhbD4sCiAgICAgICAgIDxsaXRlcmFsPlVURjg8L2xpdGVyYWw+CiAgICAgICAgIDwv ZW50cnk+CkBAIC0yNDg1LDcgKzI0NzQsNiBAQCBSRVNFVCBjbGllbnRfZW5jb2Rpbmc7CiAgICAg ICAgPHJvdz4KICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPkVVQ19LUjwvbGl0ZXJhbD48L2VudHJ5 PgogICAgICAgICA8ZW50cnk+PGVtcGhhc2lzPkVVQ19LUjwvZW1waGFzaXM+LAotICAgICAgICA8 bGl0ZXJhbD5NVUxFX0lOVEVSTkFMPC9saXRlcmFsPiwKICAgICAgICAgPGxpdGVyYWw+VVRGODwv bGl0ZXJhbD4KICAgICAgICAgPC9lbnRyeT4KICAgICAgICA8L3Jvdz4KQEAgLTI0OTMsNyArMjQ4 MSw2IEBAIFJFU0VUIGNsaWVudF9lbmNvZGluZzsKICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPkVV Q19UVzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnk+PGVtcGhhc2lzPkVVQ19UVzwv ZW1waGFzaXM+LAogICAgICAgICA8bGl0ZXJhbD5CSUc1PC9saXRlcmFsPiwKLSAgICAgICAgPGxp dGVyYWw+TVVMRV9JTlRFUk5BTDwvbGl0ZXJhbD4sCiAgICAgICAgIDxsaXRlcmFsPlVURjg8L2xp dGVyYWw+CiAgICAgICAgIDwvZW50cnk+CiAgICAgICAgPC9yb3c+CkBAIC0yNTExLDcgKzI0OTgs NiBAQCBSRVNFVCBjbGllbnRfZW5jb2Rpbmc7CiAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5JU09f ODg1OV81PC9saXRlcmFsPjwvZW50cnk+CiAgICAgICAgIDxlbnRyeT48ZW1waGFzaXM+SVNPXzg4 NTlfNTwvZW1waGFzaXM+LAogICAgICAgICA8bGl0ZXJhbD5LT0k4UjwvbGl0ZXJhbD4sCi0gICAg ICAgIDxsaXRlcmFsPk1VTEVfSU5URVJOQUw8L2xpdGVyYWw+LAogICAgICAgICA8bGl0ZXJhbD5V VEY4PC9saXRlcmFsPiwKICAgICAgICAgPGxpdGVyYWw+V0lOODY2PC9saXRlcmFsPiwKICAgICAg ICAgPGxpdGVyYWw+V0lOMTI1MTwvbGl0ZXJhbD4KQEAgLTI1NDQsNyArMjUzMCw2IEBAIFJFU0VU IGNsaWVudF9lbmNvZGluZzsKICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPktPSThSPC9saXRlcmFs PjwvZW50cnk+CiAgICAgICAgIDxlbnRyeT48ZW1waGFzaXM+S09JOFI8L2VtcGhhc2lzPiwKICAg ICAgICAgPGxpdGVyYWw+SVNPXzg4NTlfNTwvbGl0ZXJhbD4sCi0gICAgICAgIDxsaXRlcmFsPk1V TEVfSU5URVJOQUw8L2xpdGVyYWw+LAogICAgICAgICA8bGl0ZXJhbD5VVEY4PC9saXRlcmFsPiwK ICAgICAgICAgPGxpdGVyYWw+V0lOODY2PC9saXRlcmFsPiwKICAgICAgICAgPGxpdGVyYWw+V0lO MTI1MTwvbGl0ZXJhbD4KQEAgLTI1NTksMTQgKzI1NDQsMTIgQEAgUkVTRVQgY2xpZW50X2VuY29k aW5nOwogICAgICAgIDxyb3c+CiAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5MQVRJTjE8L2xpdGVy YWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5PjxlbXBoYXNpcz5MQVRJTjE8L2VtcGhhc2lzPiwK LSAgICAgICAgPGxpdGVyYWw+TVVMRV9JTlRFUk5BTDwvbGl0ZXJhbD4sCiAgICAgICAgIDxsaXRl cmFsPlVURjg8L2xpdGVyYWw+CiAgICAgICAgIDwvZW50cnk+CiAgICAgICAgPC9yb3c+CiAgICAg ICAgPHJvdz4KICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPkxBVElOMjwvbGl0ZXJhbD48L2VudHJ5 PgogICAgICAgICA8ZW50cnk+PGVtcGhhc2lzPkxBVElOMjwvZW1waGFzaXM+LAotICAgICAgICA8 bGl0ZXJhbD5NVUxFX0lOVEVSTkFMPC9saXRlcmFsPiwKICAgICAgICAgPGxpdGVyYWw+VVRGODwv bGl0ZXJhbD4sCiAgICAgICAgIDxsaXRlcmFsPldJTjEyNTA8L2xpdGVyYWw+CiAgICAgICAgIDwv ZW50cnk+CkBAIC0yNTc0LDE0ICsyNTU3LDEyIEBAIFJFU0VUIGNsaWVudF9lbmNvZGluZzsKICAg ICAgICA8cm93PgogICAgICAgICA8ZW50cnk+PGxpdGVyYWw+TEFUSU4zPC9saXRlcmFsPjwvZW50 cnk+CiAgICAgICAgIDxlbnRyeT48ZW1waGFzaXM+TEFUSU4zPC9lbXBoYXNpcz4sCi0gICAgICAg IDxsaXRlcmFsPk1VTEVfSU5URVJOQUw8L2xpdGVyYWw+LAogICAgICAgICA8bGl0ZXJhbD5VVEY4 PC9saXRlcmFsPgogICAgICAgICA8L2VudHJ5PgogICAgICAgIDwvcm93PgogICAgICAgIDxyb3c+ CiAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5MQVRJTjQ8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAg ICAgPGVudHJ5PjxlbXBoYXNpcz5MQVRJTjQ8L2VtcGhhc2lzPiwKLSAgICAgICAgPGxpdGVyYWw+ TVVMRV9JTlRFUk5BTDwvbGl0ZXJhbD4sCiAgICAgICAgIDxsaXRlcmFsPlVURjg8L2xpdGVyYWw+ CiAgICAgICAgIDwvZW50cnk+CiAgICAgICAgPC9yb3c+CkBAIC0yNjIxLDIzICsyNjAyLDYgQEAg UkVTRVQgY2xpZW50X2VuY29kaW5nOwogICAgICAgICA8bGl0ZXJhbD5VVEY4PC9saXRlcmFsPgog ICAgICAgICA8L2VudHJ5PgogICAgICAgIDwvcm93PgotICAgICAgIDxyb3c+Ci0gICAgICAgIDxl bnRyeT48bGl0ZXJhbD5NVUxFX0lOVEVSTkFMPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgIDxl bnRyeT48ZW1waGFzaXM+TVVMRV9JTlRFUk5BTDwvZW1waGFzaXM+LAotICAgICAgICAgPGxpdGVy YWw+QklHNTwvbGl0ZXJhbD4sCi0gICAgICAgICA8bGl0ZXJhbD5FVUNfQ048L2xpdGVyYWw+LAot ICAgICAgICAgPGxpdGVyYWw+RVVDX0pQPC9saXRlcmFsPiwKLSAgICAgICAgIDxsaXRlcmFsPkVV Q19LUjwvbGl0ZXJhbD4sCi0gICAgICAgICA8bGl0ZXJhbD5FVUNfVFc8L2xpdGVyYWw+LAotICAg ICAgICAgPGxpdGVyYWw+SVNPXzg4NTlfNTwvbGl0ZXJhbD4sCi0gICAgICAgICA8bGl0ZXJhbD5L T0k4UjwvbGl0ZXJhbD4sCi0gICAgICAgICA8bGl0ZXJhbD5MQVRJTjE8L2xpdGVyYWw+IHRvIDxs aXRlcmFsPkxBVElONDwvbGl0ZXJhbD4sCi0gICAgICAgICA8bGl0ZXJhbD5TSklTPC9saXRlcmFs PiwKLSAgICAgICAgIDxsaXRlcmFsPldJTjg2NjwvbGl0ZXJhbD4sCi0gICAgICAgICA8bGl0ZXJh bD5XSU4xMjUwPC9saXRlcmFsPiwKLSAgICAgICAgIDxsaXRlcmFsPldJTjEyNTE8L2xpdGVyYWw+ Ci0gICAgICAgIDwvZW50cnk+Ci0gICAgICAgPC9yb3c+CiAgICAgICAgPHJvdz4KICAgICAgICAg PGVudHJ5PjxsaXRlcmFsPlNKSVM8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5Pjxl bXBoYXNpcz5ub3Qgc3VwcG9ydGVkIGFzIGEgc2VydmVyIGVuY29kaW5nPC9lbXBoYXNpcz4KQEAg LTI2NjgsNyArMjYzMiw2IEBAIFJFU0VUIGNsaWVudF9lbmNvZGluZzsKICAgICAgICAgPGVudHJ5 PjxlbXBoYXNpcz5XSU44NjY8L2VtcGhhc2lzPiwKICAgICAgICAgIDxsaXRlcmFsPklTT184ODU5 XzU8L2xpdGVyYWw+LAogICAgICAgICAgPGxpdGVyYWw+S09JOFI8L2xpdGVyYWw+LAotICAgICAg ICAgPGxpdGVyYWw+TVVMRV9JTlRFUk5BTDwvbGl0ZXJhbD4sCiAgICAgICAgICA8bGl0ZXJhbD5V VEY4PC9saXRlcmFsPiwKICAgICAgICAgIDxsaXRlcmFsPldJTjEyNTE8L2xpdGVyYWw+CiAgICAg ICAgIDwvZW50cnk+CkBAIC0yNjgzLDcgKzI2NDYsNiBAQCBSRVNFVCBjbGllbnRfZW5jb2Rpbmc7 CiAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5XSU4xMjUwPC9saXRlcmFsPjwvZW50cnk+CiAgICAg ICAgIDxlbnRyeT48ZW1waGFzaXM+V0lOMTI1MDwvZW1waGFzaXM+LAogICAgICAgICAgPGxpdGVy YWw+TEFUSU4yPC9saXRlcmFsPiwKLSAgICAgICAgIDxsaXRlcmFsPk1VTEVfSU5URVJOQUw8L2xp dGVyYWw+LAogICAgICAgICAgPGxpdGVyYWw+VVRGODwvbGl0ZXJhbD4KICAgICAgICAgPC9lbnRy eT4KICAgICAgICA8L3Jvdz4KQEAgLTI2OTIsNyArMjY1NCw2IEBAIFJFU0VUIGNsaWVudF9lbmNv ZGluZzsKICAgICAgICAgPGVudHJ5PjxlbXBoYXNpcz5XSU4xMjUxPC9lbXBoYXNpcz4sCiAgICAg ICAgICA8bGl0ZXJhbD5JU09fODg1OV81PC9saXRlcmFsPiwKICAgICAgICAgIDxsaXRlcmFsPktP SThSPC9saXRlcmFsPiwKLSAgICAgICAgIDxsaXRlcmFsPk1VTEVfSU5URVJOQUw8L2xpdGVyYWw+ LAogICAgICAgICAgPGxpdGVyYWw+VVRGODwvbGl0ZXJhbD4sCiAgICAgICAgICA8bGl0ZXJhbD5X SU44NjY8L2xpdGVyYWw+CiAgICAgICAgIDwvZW50cnk+CkBAIC0yNzc1LDMxICsyNzM2LDE2IEBA IFJFU0VUIGNsaWVudF9lbmNvZGluZzsKICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPkJJRzU8L2xp dGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPkVVQ19UVzwvbGl0ZXJhbD48 L2VudHJ5PgogICAgICAgIDwvcm93PgotICAgICAgIDxyb3c+Ci0gICAgICAgIDxlbnRyeT48bGl0 ZXJhbD5iaWc1X3RvX21pYzwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgICA8ZW50cnk+PGxpdGVy YWw+QklHNTwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+TVVMRV9J TlRFUk5BTDwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgIDwvcm93PgogICAgICAgIDxyb3c+CiAg ICAgICAgIDxlbnRyeT48bGl0ZXJhbD5iaWc1X3RvX3V0Zjg8L2xpdGVyYWw+PC9lbnRyeT4KICAg ICAgICAgPGVudHJ5PjxsaXRlcmFsPkJJRzU8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVu dHJ5PjxsaXRlcmFsPlVURjg8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICA8L3Jvdz4KLSAgICAg ICA8cm93PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+ZXVjX2NuX3RvX21pYzwvbGl0ZXJhbD48 L2VudHJ5PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+RVVDX0NOPC9saXRlcmFsPjwvZW50cnk+ Ci0gICAgICAgIDxlbnRyeT48bGl0ZXJhbD5NVUxFX0lOVEVSTkFMPC9saXRlcmFsPjwvZW50cnk+ Ci0gICAgICAgPC9yb3c+CiAgICAgICAgPHJvdz4KICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPmV1 Y19jbl90b191dGY4PC9saXRlcmFsPjwvZW50cnk+CiAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5F VUNfQ048L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPlVURjg8L2xp dGVyYWw+PC9lbnRyeT4KICAgICAgICA8L3Jvdz4KLSAgICAgICA8cm93PgotICAgICAgICA8ZW50 cnk+PGxpdGVyYWw+ZXVjX2pwX3RvX21pYzwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgICA8ZW50 cnk+PGxpdGVyYWw+RVVDX0pQPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgIDxlbnRyeT48bGl0 ZXJhbD5NVUxFX0lOVEVSTkFMPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgPC9yb3c+CiAgICAg ICAgPHJvdz4KICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPmV1Y19qcF90b19zamlzPC9saXRlcmFs PjwvZW50cnk+CiAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5FVUNfSlA8L2xpdGVyYWw+PC9lbnRy eT4KQEAgLTI4MTAsMTEgKzI3NTYsNiBAQCBSRVNFVCBjbGllbnRfZW5jb2Rpbmc7CiAgICAgICAg IDxlbnRyeT48bGl0ZXJhbD5FVUNfSlA8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5 PjxsaXRlcmFsPlVURjg8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICA8L3Jvdz4KLSAgICAgICA8 cm93PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+ZXVjX2tyX3RvX21pYzwvbGl0ZXJhbD48L2Vu dHJ5PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+RVVDX0tSPC9saXRlcmFsPjwvZW50cnk+Ci0g ICAgICAgIDxlbnRyeT48bGl0ZXJhbD5NVUxFX0lOVEVSTkFMPC9saXRlcmFsPjwvZW50cnk+Ci0g ICAgICAgPC9yb3c+CiAgICAgICAgPHJvdz4KICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPmV1Y19r cl90b191dGY4PC9saXRlcmFsPjwvZW50cnk+CiAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5FVUNf S1I8L2xpdGVyYWw+PC9lbnRyeT4KQEAgLTI4MjUsMTEgKzI3NjYsNiBAQCBSRVNFVCBjbGllbnRf ZW5jb2Rpbmc7CiAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5FVUNfVFc8L2xpdGVyYWw+PC9lbnRy eT4KICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPkJJRzU8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAg ICA8L3Jvdz4KLSAgICAgICA8cm93PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+ZXVjX3R3X3Rv X21pYzwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+RVVDX1RXPC9s aXRlcmFsPjwvZW50cnk+Ci0gICAgICAgIDxlbnRyeT48bGl0ZXJhbD5NVUxFX0lOVEVSTkFMPC9s aXRlcmFsPjwvZW50cnk+Ci0gICAgICAgPC9yb3c+CiAgICAgICAgPHJvdz4KICAgICAgICAgPGVu dHJ5PjxsaXRlcmFsPmV1Y190d190b191dGY4PC9saXRlcmFsPjwvZW50cnk+CiAgICAgICAgIDxl bnRyeT48bGl0ZXJhbD5FVUNfVFc8L2xpdGVyYWw+PC9lbnRyeT4KQEAgLTI4NzAsMjEgKzI4MDYs MTEgQEAgUkVTRVQgY2xpZW50X2VuY29kaW5nOwogICAgICAgICA8ZW50cnk+PGxpdGVyYWw+TEFU SU4xMDwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnk+PGxpdGVyYWw+VVRGODwvbGl0 ZXJhbD48L2VudHJ5PgogICAgICAgIDwvcm93PgotICAgICAgIDxyb3c+Ci0gICAgICAgIDxlbnRy eT48bGl0ZXJhbD5pc29fODg1OV8xX3RvX21pYzwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgICA8 ZW50cnk+PGxpdGVyYWw+TEFUSU4xPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgIDxlbnRyeT48 bGl0ZXJhbD5NVUxFX0lOVEVSTkFMPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgPC9yb3c+CiAg ICAgICAgPHJvdz4KICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPmlzb184ODU5XzFfdG9fdXRmODwv bGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnk+PGxpdGVyYWw+TEFUSU4xPC9saXRlcmFs PjwvZW50cnk+CiAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5VVEY4PC9saXRlcmFsPjwvZW50cnk+ CiAgICAgICAgPC9yb3c+Ci0gICAgICAgPHJvdz4KLSAgICAgICAgPGVudHJ5PjxsaXRlcmFsPmlz b184ODU5XzJfdG9fbWljPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgIDxlbnRyeT48bGl0ZXJh bD5MQVRJTjI8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgICAgPGVudHJ5PjxsaXRlcmFsPk1VTEVf SU5URVJOQUw8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgICA8L3Jvdz4KICAgICAgICA8cm93Pgog ICAgICAgICA8ZW50cnk+PGxpdGVyYWw+aXNvXzg4NTlfMl90b191dGY4PC9saXRlcmFsPjwvZW50 cnk+CiAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5MQVRJTjI8L2xpdGVyYWw+PC9lbnRyeT4KQEAg LTI4OTUsMjEgKzI4MjEsMTEgQEAgUkVTRVQgY2xpZW50X2VuY29kaW5nOwogICAgICAgICA8ZW50 cnk+PGxpdGVyYWw+TEFUSU4yPC9saXRlcmFsPjwvZW50cnk+CiAgICAgICAgIDxlbnRyeT48bGl0 ZXJhbD5XSU4xMjUwPC9saXRlcmFsPjwvZW50cnk+CiAgICAgICAgPC9yb3c+Ci0gICAgICAgPHJv dz4KLSAgICAgICAgPGVudHJ5PjxsaXRlcmFsPmlzb184ODU5XzNfdG9fbWljPC9saXRlcmFsPjwv ZW50cnk+Ci0gICAgICAgIDxlbnRyeT48bGl0ZXJhbD5MQVRJTjM8L2xpdGVyYWw+PC9lbnRyeT4K LSAgICAgICAgPGVudHJ5PjxsaXRlcmFsPk1VTEVfSU5URVJOQUw8L2xpdGVyYWw+PC9lbnRyeT4K LSAgICAgICA8L3Jvdz4KICAgICAgICA8cm93PgogICAgICAgICA8ZW50cnk+PGxpdGVyYWw+aXNv Xzg4NTlfM190b191dGY4PC9saXRlcmFsPjwvZW50cnk+CiAgICAgICAgIDxlbnRyeT48bGl0ZXJh bD5MQVRJTjM8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPlVURjg8 L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICA8L3Jvdz4KLSAgICAgICA8cm93PgotICAgICAgICA8 ZW50cnk+PGxpdGVyYWw+aXNvXzg4NTlfNF90b19taWM8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAg ICAgPGVudHJ5PjxsaXRlcmFsPkxBVElONDwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgICA8ZW50 cnk+PGxpdGVyYWw+TVVMRV9JTlRFUk5BTDwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgIDwvcm93 PgogICAgICAgIDxyb3c+CiAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5pc29fODg1OV80X3RvX3V0 Zjg8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPkxBVElONDwvbGl0 ZXJhbD48L2VudHJ5PgpAQCAtMjkyMCwxMSArMjgzNiw2IEBAIFJFU0VUIGNsaWVudF9lbmNvZGlu ZzsKICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPklTT184ODU5XzU8L2xpdGVyYWw+PC9lbnRyeT4K ICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPktPSThSPC9saXRlcmFsPjwvZW50cnk+CiAgICAgICAg PC9yb3c+Ci0gICAgICAgPHJvdz4KLSAgICAgICAgPGVudHJ5PjxsaXRlcmFsPmlzb184ODU5XzVf dG9fbWljPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgIDxlbnRyeT48bGl0ZXJhbD5JU09fODg1 OV81PC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgIDxlbnRyeT48bGl0ZXJhbD5NVUxFX0lOVEVS TkFMPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgPC9yb3c+CiAgICAgICAgPHJvdz4KICAgICAg ICAgPGVudHJ5PjxsaXRlcmFsPmlzb184ODU5XzVfdG9fdXRmODwvbGl0ZXJhbD48L2VudHJ5Pgog ICAgICAgICA8ZW50cnk+PGxpdGVyYWw+SVNPXzg4NTlfNTwvbGl0ZXJhbD48L2VudHJ5PgpAQCAt Mjk3MCwxMSArMjg4MSw2IEBAIFJFU0VUIGNsaWVudF9lbmNvZGluZzsKICAgICAgICAgPGVudHJ5 PjxsaXRlcmFsPktPSThSPC9saXRlcmFsPjwvZW50cnk+CiAgICAgICAgIDxlbnRyeT48bGl0ZXJh bD5JU09fODg1OV81PC9saXRlcmFsPjwvZW50cnk+CiAgICAgICAgPC9yb3c+Ci0gICAgICAgPHJv dz4KLSAgICAgICAgPGVudHJ5PjxsaXRlcmFsPmtvaThfcl90b19taWM8L2xpdGVyYWw+PC9lbnRy eT4KLSAgICAgICAgPGVudHJ5PjxsaXRlcmFsPktPSThSPC9saXRlcmFsPjwvZW50cnk+Ci0gICAg ICAgIDxlbnRyeT48bGl0ZXJhbD5NVUxFX0lOVEVSTkFMPC9saXRlcmFsPjwvZW50cnk+Ci0gICAg ICAgPC9yb3c+CiAgICAgICAgPHJvdz4KICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPmtvaThfcl90 b191dGY4PC9saXRlcmFsPjwvZW50cnk+CiAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5LT0k4Ujwv bGl0ZXJhbD48L2VudHJ5PgpAQCAtMjk5NSw5MSArMjkwMSwxMSBAQCBSRVNFVCBjbGllbnRfZW5j b2Rpbmc7CiAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5LT0k4VTwvbGl0ZXJhbD48L2VudHJ5Pgog ICAgICAgICA8ZW50cnk+PGxpdGVyYWw+VVRGODwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgIDwv cm93PgotICAgICAgIDxyb3c+Ci0gICAgICAgIDxlbnRyeT48bGl0ZXJhbD5taWNfdG9fYmlnNTwv bGl0ZXJhbD48L2VudHJ5PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+TVVMRV9JTlRFUk5BTDwv bGl0ZXJhbD48L2VudHJ5PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+QklHNTwvbGl0ZXJhbD48 L2VudHJ5PgotICAgICAgIDwvcm93PgotICAgICAgIDxyb3c+Ci0gICAgICAgIDxlbnRyeT48bGl0 ZXJhbD5taWNfdG9fZXVjX2NuPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgIDxlbnRyeT48bGl0 ZXJhbD5NVUxFX0lOVEVSTkFMPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgIDxlbnRyeT48bGl0 ZXJhbD5FVUNfQ048L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgICA8L3Jvdz4KLSAgICAgICA8cm93 PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+bWljX3RvX2V1Y19qcDwvbGl0ZXJhbD48L2VudHJ5 PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+TVVMRV9JTlRFUk5BTDwvbGl0ZXJhbD48L2VudHJ5 PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+RVVDX0pQPC9saXRlcmFsPjwvZW50cnk+Ci0gICAg ICAgPC9yb3c+Ci0gICAgICAgPHJvdz4KLSAgICAgICAgPGVudHJ5PjxsaXRlcmFsPm1pY190b19l dWNfa3I8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgICAgPGVudHJ5PjxsaXRlcmFsPk1VTEVfSU5U RVJOQUw8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgICAgPGVudHJ5PjxsaXRlcmFsPkVVQ19LUjwv bGl0ZXJhbD48L2VudHJ5PgotICAgICAgIDwvcm93PgotICAgICAgIDxyb3c+Ci0gICAgICAgIDxl bnRyeT48bGl0ZXJhbD5taWNfdG9fZXVjX3R3PC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgIDxl bnRyeT48bGl0ZXJhbD5NVUxFX0lOVEVSTkFMPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgIDxl bnRyeT48bGl0ZXJhbD5FVUNfVFc8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgICA8L3Jvdz4KLSAg ICAgICA8cm93PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+bWljX3RvX2lzb184ODU5XzE8L2xp dGVyYWw+PC9lbnRyeT4KLSAgICAgICAgPGVudHJ5PjxsaXRlcmFsPk1VTEVfSU5URVJOQUw8L2xp dGVyYWw+PC9lbnRyeT4KLSAgICAgICAgPGVudHJ5PjxsaXRlcmFsPkxBVElOMTwvbGl0ZXJhbD48 L2VudHJ5PgotICAgICAgIDwvcm93PgotICAgICAgIDxyb3c+Ci0gICAgICAgIDxlbnRyeT48bGl0 ZXJhbD5taWNfdG9faXNvXzg4NTlfMjwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgICA8ZW50cnk+ PGxpdGVyYWw+TVVMRV9JTlRFUk5BTDwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgICA8ZW50cnk+ PGxpdGVyYWw+TEFUSU4yPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgPC9yb3c+Ci0gICAgICAg PHJvdz4KLSAgICAgICAgPGVudHJ5PjxsaXRlcmFsPm1pY190b19pc29fODg1OV8zPC9saXRlcmFs PjwvZW50cnk+Ci0gICAgICAgIDxlbnRyeT48bGl0ZXJhbD5NVUxFX0lOVEVSTkFMPC9saXRlcmFs PjwvZW50cnk+Ci0gICAgICAgIDxlbnRyeT48bGl0ZXJhbD5MQVRJTjM8L2xpdGVyYWw+PC9lbnRy eT4KLSAgICAgICA8L3Jvdz4KLSAgICAgICA8cm93PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+ bWljX3RvX2lzb184ODU5XzQ8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgICAgPGVudHJ5PjxsaXRl cmFsPk1VTEVfSU5URVJOQUw8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgICAgPGVudHJ5PjxsaXRl cmFsPkxBVElONDwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgIDwvcm93PgotICAgICAgIDxyb3c+ Ci0gICAgICAgIDxlbnRyeT48bGl0ZXJhbD5taWNfdG9faXNvXzg4NTlfNTwvbGl0ZXJhbD48L2Vu dHJ5PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+TVVMRV9JTlRFUk5BTDwvbGl0ZXJhbD48L2Vu dHJ5PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+SVNPXzg4NTlfNTwvbGl0ZXJhbD48L2VudHJ5 PgotICAgICAgIDwvcm93PgotICAgICAgIDxyb3c+Ci0gICAgICAgIDxlbnRyeT48bGl0ZXJhbD5t aWNfdG9fa29pOF9yPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgIDxlbnRyeT48bGl0ZXJhbD5N VUxFX0lOVEVSTkFMPC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgIDxlbnRyeT48bGl0ZXJhbD5L T0k4UjwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgIDwvcm93PgotICAgICAgIDxyb3c+Ci0gICAg ICAgIDxlbnRyeT48bGl0ZXJhbD5taWNfdG9fc2ppczwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAg ICA8ZW50cnk+PGxpdGVyYWw+TVVMRV9JTlRFUk5BTDwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAg ICA8ZW50cnk+PGxpdGVyYWw+U0pJUzwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgIDwvcm93Pgot ICAgICAgIDxyb3c+Ci0gICAgICAgIDxlbnRyeT48bGl0ZXJhbD5taWNfdG9fd2luZG93c18xMjUw PC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgIDxlbnRyeT48bGl0ZXJhbD5NVUxFX0lOVEVSTkFM PC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgIDxlbnRyeT48bGl0ZXJhbD5XSU4xMjUwPC9saXRl cmFsPjwvZW50cnk+Ci0gICAgICAgPC9yb3c+Ci0gICAgICAgPHJvdz4KLSAgICAgICAgPGVudHJ5 PjxsaXRlcmFsPm1pY190b193aW5kb3dzXzEyNTE8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgICAg PGVudHJ5PjxsaXRlcmFsPk1VTEVfSU5URVJOQUw8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgICAg PGVudHJ5PjxsaXRlcmFsPldJTjEyNTE8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgICA8L3Jvdz4K LSAgICAgICA8cm93PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+bWljX3RvX3dpbmRvd3NfODY2 PC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgIDxlbnRyeT48bGl0ZXJhbD5NVUxFX0lOVEVSTkFM PC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgIDxlbnRyeT48bGl0ZXJhbD5XSU44NjY8L2xpdGVy YWw+PC9lbnRyeT4KLSAgICAgICA8L3Jvdz4KICAgICAgICA8cm93PgogICAgICAgICA8ZW50cnk+ PGxpdGVyYWw+c2ppc190b19ldWNfanA8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5 PjxsaXRlcmFsPlNKSVM8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5PjxsaXRlcmFs PkVVQ19KUDwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgIDwvcm93PgotICAgICAgIDxyb3c+Ci0g ICAgICAgIDxlbnRyeT48bGl0ZXJhbD5zamlzX3RvX21pYzwvbGl0ZXJhbD48L2VudHJ5PgotICAg ICAgICA8ZW50cnk+PGxpdGVyYWw+U0pJUzwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgICA8ZW50 cnk+PGxpdGVyYWw+TVVMRV9JTlRFUk5BTDwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgIDwvcm93 PgogICAgICAgIDxyb3c+CiAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5zamlzX3RvX3V0Zjg8L2xp dGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPlNKSVM8L2xpdGVyYWw+PC9l bnRyeT4KQEAgLTMyODUsMTEgKzMxMTEsNiBAQCBSRVNFVCBjbGllbnRfZW5jb2Rpbmc7CiAgICAg ICAgIDxlbnRyeT48bGl0ZXJhbD5XSU4xMjUwPC9saXRlcmFsPjwvZW50cnk+CiAgICAgICAgIDxl bnRyeT48bGl0ZXJhbD5MQVRJTjI8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICA8L3Jvdz4KLSAg ICAgICA8cm93PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+d2luZG93c18xMjUwX3RvX21pYzwv bGl0ZXJhbD48L2VudHJ5PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+V0lOMTI1MDwvbGl0ZXJh bD48L2VudHJ5PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+TVVMRV9JTlRFUk5BTDwvbGl0ZXJh bD48L2VudHJ5PgotICAgICAgIDwvcm93PgogICAgICAgIDxyb3c+CiAgICAgICAgIDxlbnRyeT48 bGl0ZXJhbD53aW5kb3dzXzEyNTBfdG9fdXRmODwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8 ZW50cnk+PGxpdGVyYWw+V0lOMTI1MDwvbGl0ZXJhbD48L2VudHJ5PgpAQCAtMzMwNSwxMSArMzEy Niw2IEBAIFJFU0VUIGNsaWVudF9lbmNvZGluZzsKICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPldJ TjEyNTE8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPktPSThSPC9s aXRlcmFsPjwvZW50cnk+CiAgICAgICAgPC9yb3c+Ci0gICAgICAgPHJvdz4KLSAgICAgICAgPGVu dHJ5PjxsaXRlcmFsPndpbmRvd3NfMTI1MV90b19taWM8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAg ICAgPGVudHJ5PjxsaXRlcmFsPldJTjEyNTE8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgICAgPGVu dHJ5PjxsaXRlcmFsPk1VTEVfSU5URVJOQUw8L2xpdGVyYWw+PC9lbnRyeT4KLSAgICAgICA8L3Jv dz4KICAgICAgICA8cm93PgogICAgICAgICA8ZW50cnk+PGxpdGVyYWw+d2luZG93c18xMjUxX3Rv X3V0Zjg8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPldJTjEyNTE8 L2xpdGVyYWw+PC9lbnRyeT4KQEAgLTMzNDAsMTEgKzMxNTYsNiBAQCBSRVNFVCBjbGllbnRfZW5j b2Rpbmc7CiAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5XSU44NjY8L2xpdGVyYWw+PC9lbnRyeT4K ICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPktPSThSPC9saXRlcmFsPjwvZW50cnk+CiAgICAgICAg PC9yb3c+Ci0gICAgICAgPHJvdz4KLSAgICAgICAgPGVudHJ5PjxsaXRlcmFsPndpbmRvd3NfODY2 X3RvX21pYzwvbGl0ZXJhbD48L2VudHJ5PgotICAgICAgICA8ZW50cnk+PGxpdGVyYWw+V0lOODY2 PC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgIDxlbnRyeT48bGl0ZXJhbD5NVUxFX0lOVEVSTkFM PC9saXRlcmFsPjwvZW50cnk+Ci0gICAgICAgPC9yb3c+CiAgICAgICAgPHJvdz4KICAgICAgICAg PGVudHJ5PjxsaXRlcmFsPndpbmRvd3NfODY2X3RvX3V0Zjg8L2xpdGVyYWw+PC9lbnRyeT4KICAg ICAgICAgPGVudHJ5PjxsaXRlcmFsPldJTjg2NjwvbGl0ZXJhbD48L2VudHJ5PgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWIvY29udi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWIvY29u di5jCmluZGV4IDU0MzlkMDk0MGQxLi43OTIzOGJmNjY0NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvbWIvY29udi5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21iL2NvbnYuYwpAQCAt NzQsMjQ0ICs3NCw2IEBAIGxvY2FsMmxvY2FsKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmwsCiAJcmV0 dXJuIGwgLSBzdGFydDsKIH0KIAotLyoKLSAqIExBVElObiAtLS0+IE1JQyB3aGVuIHRoZSBjaGFy c2V0J3MgbG9jYWwgY29kZXMgbWFwIGRpcmVjdGx5IHRvIE1JQwotICoKLSAqIGwgcG9pbnRzIHRv IHRoZSBzb3VyY2Ugc3RyaW5nIG9mIGxlbmd0aCBsZW4KLSAqIHAgaXMgdGhlIG91dHB1dCBhcmVh IChtdXN0IGJlIGxhcmdlIGVub3VnaCEpCi0gKiBsYyBpcyB0aGUgbXVsZSBjaGFyYWN0ZXIgc2V0 IGlkIGZvciB0aGUgbG9jYWwgZW5jb2RpbmcKLSAqIGVuY29kaW5nIGlzIHRoZSBQRyBpZGVudGlm aWVyIGZvciB0aGUgbG9jYWwgZW5jb2RpbmcKLSAqCi0gKiBSZXR1cm5zIHRoZSBudW1iZXIgb2Yg aW5wdXQgYnl0ZXMgY29uc3VtZWQuICBJZiBub0Vycm9yIGlzIHRydWUsIHRoaXMgY2FuCi0gKiBi ZSBsZXNzIHRoYW4gJ2xlbicuCi0gKi8KLWludAotbGF0aW4ybWljKGNvbnN0IHVuc2lnbmVkIGNo YXIgKmwsIHVuc2lnbmVkIGNoYXIgKnAsIGludCBsZW4sCi0JCSAgaW50IGxjLCBpbnQgZW5jb2Rp bmcsIGJvb2wgbm9FcnJvcikKLXsKLQljb25zdCB1bnNpZ25lZCBjaGFyICpzdGFydCA9IGw7Ci0J aW50CQkJYzE7Ci0KLQl3aGlsZSAobGVuID4gMCkKLQl7Ci0JCWMxID0gKmw7Ci0JCWlmIChjMSA9 PSAwKQotCQl7Ci0JCQlpZiAobm9FcnJvcikKLQkJCQlicmVhazsKLQkJCXJlcG9ydF9pbnZhbGlk X2VuY29kaW5nKGVuY29kaW5nLCAoY29uc3QgY2hhciAqKSBsLCBsZW4pOwotCQl9Ci0JCWlmIChJ U19ISUdIQklUX1NFVChjMSkpCi0JCQkqcCsrID0gbGM7Ci0JCSpwKysgPSBjMTsKLQkJbCsrOwot CQlsZW4tLTsKLQl9Ci0JKnAgPSAnXDAnOwotCi0JcmV0dXJuIGwgLSBzdGFydDsKLX0KLQotLyoK LSAqIE1JQyAtLS0+IExBVElObiB3aGVuIHRoZSBjaGFyc2V0J3MgbG9jYWwgY29kZXMgbWFwIGRp cmVjdGx5IHRvIE1JQwotICoKLSAqIG1pYyBwb2ludHMgdG8gdGhlIHNvdXJjZSBzdHJpbmcgb2Yg bGVuZ3RoIGxlbgotICogcCBpcyB0aGUgb3V0cHV0IGFyZWEgKG11c3QgYmUgbGFyZ2UgZW5vdWdo ISkKLSAqIGxjIGlzIHRoZSBtdWxlIGNoYXJhY3RlciBzZXQgaWQgZm9yIHRoZSBsb2NhbCBlbmNv ZGluZwotICogZW5jb2RpbmcgaXMgdGhlIFBHIGlkZW50aWZpZXIgZm9yIHRoZSBsb2NhbCBlbmNv ZGluZwotICoKLSAqIFJldHVybnMgdGhlIG51bWJlciBvZiBpbnB1dCBieXRlcyBjb25zdW1lZC4g IElmIG5vRXJyb3IgaXMgdHJ1ZSwgdGhpcyBjYW4KLSAqIGJlIGxlc3MgdGhhbiAnbGVuJy4KLSAq LwotaW50Ci1taWMybGF0aW4oY29uc3QgdW5zaWduZWQgY2hhciAqbWljLCB1bnNpZ25lZCBjaGFy ICpwLCBpbnQgbGVuLAotCQkgIGludCBsYywgaW50IGVuY29kaW5nLCBib29sIG5vRXJyb3IpCi17 Ci0JY29uc3QgdW5zaWduZWQgY2hhciAqc3RhcnQgPSBtaWM7Ci0JaW50CQkJYzE7Ci0KLQl3aGls ZSAobGVuID4gMCkKLQl7Ci0JCWMxID0gKm1pYzsKLQkJaWYgKGMxID09IDApCi0JCXsKLQkJCWlm IChub0Vycm9yKQotCQkJCWJyZWFrOwotCQkJcmVwb3J0X2ludmFsaWRfZW5jb2RpbmcoUEdfTVVM RV9JTlRFUk5BTCwgKGNvbnN0IGNoYXIgKikgbWljLCBsZW4pOwotCQl9Ci0JCWlmICghSVNfSElH SEJJVF9TRVQoYzEpKQotCQl7Ci0JCQkvKiBlYXN5IGZvciBBU0NJSSAqLwotCQkJKnArKyA9IGMx OwotCQkJbWljKys7Ci0JCQlsZW4tLTsKLQkJfQotCQllbHNlCi0JCXsKLQkJCWludAkJCWwgPSBw Z19tdWxlX21ibGVuKG1pYyk7Ci0KLQkJCWlmIChsZW4gPCBsKQotCQkJewotCQkJCWlmIChub0Vy cm9yKQotCQkJCQlicmVhazsKLQkJCQlyZXBvcnRfaW52YWxpZF9lbmNvZGluZyhQR19NVUxFX0lO VEVSTkFMLCAoY29uc3QgY2hhciAqKSBtaWMsCi0JCQkJCQkJCQkJbGVuKTsKLQkJCX0KLQkJCWlm IChsICE9IDIgfHwgYzEgIT0gbGMgfHwgIUlTX0hJR0hCSVRfU0VUKG1pY1sxXSkpCi0JCQl7Ci0J CQkJaWYgKG5vRXJyb3IpCi0JCQkJCWJyZWFrOwotCQkJCXJlcG9ydF91bnRyYW5zbGF0YWJsZV9j aGFyKFBHX01VTEVfSU5URVJOQUwsIGVuY29kaW5nLAotCQkJCQkJCQkJCSAgIChjb25zdCBjaGFy ICopIG1pYywgbGVuKTsKLQkJCX0KLQkJCSpwKysgPSBtaWNbMV07Ci0JCQltaWMgKz0gMjsKLQkJ CWxlbiAtPSAyOwotCQl9Ci0JfQotCSpwID0gJ1wwJzsKLQotCXJldHVybiBtaWMgLSBzdGFydDsK LX0KLQotCi0vKgotICogbGF0aW4ybWljX3dpdGhfdGFibGU6IGEgZ2VuZXJpYyBzaW5nbGUgYnl0 ZSBjaGFyc2V0IGVuY29kaW5nCi0gKiBjb252ZXJzaW9uIGZyb20gYSBsb2NhbCBjaGFyc2V0IHRv IHRoZSBtdWxlIGludGVybmFsIGNvZGUuCi0gKgotICogbCBwb2ludHMgdG8gdGhlIHNvdXJjZSBz dHJpbmcgb2YgbGVuZ3RoIGxlbgotICogcCBpcyB0aGUgb3V0cHV0IGFyZWEgKG11c3QgYmUgbGFy Z2UgZW5vdWdoISkKLSAqIGxjIGlzIHRoZSBtdWxlIGNoYXJhY3RlciBzZXQgaWQgZm9yIHRoZSBs b2NhbCBlbmNvZGluZwotICogZW5jb2RpbmcgaXMgdGhlIFBHIGlkZW50aWZpZXIgZm9yIHRoZSBs b2NhbCBlbmNvZGluZwotICogdGFiIGhvbGRzIGNvbnZlcnNpb24gZW50cmllcyBmb3IgdGhlIGxv Y2FsIGNoYXJzZXQKLSAqIHN0YXJ0aW5nIGZyb20gMTI4ICgweDgwKS4gZWFjaCBlbnRyeSBpbiB0 aGUgdGFibGUgaG9sZHMgdGhlIGNvcnJlc3BvbmRpbmcKLSAqIGNvZGUgcG9pbnQgZm9yIHRoZSBt dWxlIGVuY29kaW5nLCBvciAwIGlmIHRoZXJlIGlzIG5vIGVxdWl2YWxlbnQgY29kZS4KLSAqCi0g KiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgaW5wdXQgYnl0ZXMgY29uc3VtZWQuICBJZiBub0Vycm9y IGlzIHRydWUsIHRoaXMgY2FuCi0gKiBiZSBsZXNzIHRoYW4gJ2xlbicuCi0gKi8KLWludAotbGF0 aW4ybWljX3dpdGhfdGFibGUoY29uc3QgdW5zaWduZWQgY2hhciAqbCwKLQkJCQkJIHVuc2lnbmVk IGNoYXIgKnAsCi0JCQkJCSBpbnQgbGVuLAotCQkJCQkgaW50IGxjLAotCQkJCQkgaW50IGVuY29k aW5nLAotCQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqdGFiLAotCQkJCQkgYm9vbCBub0Vycm9y KQotewotCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnN0YXJ0ID0gbDsKLQl1bnNpZ25lZCBjaGFyIGMx LAotCQkJCWMyOwotCi0Jd2hpbGUgKGxlbiA+IDApCi0JewotCQljMSA9ICpsOwotCQlpZiAoYzEg PT0gMCkKLQkJewotCQkJaWYgKG5vRXJyb3IpCi0JCQkJYnJlYWs7Ci0JCQlyZXBvcnRfaW52YWxp ZF9lbmNvZGluZyhlbmNvZGluZywgKGNvbnN0IGNoYXIgKikgbCwgbGVuKTsKLQkJfQotCQlpZiAo IUlTX0hJR0hCSVRfU0VUKGMxKSkKLQkJCSpwKysgPSBjMTsKLQkJZWxzZQotCQl7Ci0JCQljMiA9 IHRhYltjMSAtIEhJR0hCSVRdOwotCQkJaWYgKGMyKQotCQkJewotCQkJCSpwKysgPSBsYzsKLQkJ CQkqcCsrID0gYzI7Ci0JCQl9Ci0JCQllbHNlCi0JCQl7Ci0JCQkJaWYgKG5vRXJyb3IpCi0JCQkJ CWJyZWFrOwotCQkJCXJlcG9ydF91bnRyYW5zbGF0YWJsZV9jaGFyKGVuY29kaW5nLCBQR19NVUxF X0lOVEVSTkFMLAotCQkJCQkJCQkJCSAgIChjb25zdCBjaGFyICopIGwsIGxlbik7Ci0JCQl9Ci0J CX0KLQkJbCsrOwotCQlsZW4tLTsKLQl9Ci0JKnAgPSAnXDAnOwotCi0JcmV0dXJuIGwgLSBzdGFy dDsKLX0KLQotLyoKLSAqIG1pYzJsYXRpbl93aXRoX3RhYmxlOiBhIGdlbmVyaWMgc2luZ2xlIGJ5 dGUgY2hhcnNldCBlbmNvZGluZwotICogY29udmVyc2lvbiBmcm9tIHRoZSBtdWxlIGludGVybmFs IGNvZGUgdG8gYSBsb2NhbCBjaGFyc2V0LgotICoKLSAqIG1pYyBwb2ludHMgdG8gdGhlIHNvdXJj ZSBzdHJpbmcgb2YgbGVuZ3RoIGxlbgotICogcCBpcyB0aGUgb3V0cHV0IGFyZWEgKG11c3QgYmUg bGFyZ2UgZW5vdWdoISkKLSAqIGxjIGlzIHRoZSBtdWxlIGNoYXJhY3RlciBzZXQgaWQgZm9yIHRo ZSBsb2NhbCBlbmNvZGluZwotICogZW5jb2RpbmcgaXMgdGhlIFBHIGlkZW50aWZpZXIgZm9yIHRo ZSBsb2NhbCBlbmNvZGluZwotICogdGFiIGhvbGRzIGNvbnZlcnNpb24gZW50cmllcyBmb3IgdGhl IG11bGUgaW50ZXJuYWwgY29kZSdzIHNlY29uZCBieXRlLAotICogc3RhcnRpbmcgZnJvbSAxMjgg KDB4ODApLiBlYWNoIGVudHJ5IGluIHRoZSB0YWJsZSBob2xkcyB0aGUgY29ycmVzcG9uZGluZwot ICogY29kZSBwb2ludCBmb3IgdGhlIGxvY2FsIGNoYXJzZXQsIG9yIDAgaWYgdGhlcmUgaXMgbm8g ZXF1aXZhbGVudCBjb2RlLgotICoKLSAqIFJldHVybnMgdGhlIG51bWJlciBvZiBpbnB1dCBieXRl cyBjb25zdW1lZC4gIElmIG5vRXJyb3IgaXMgdHJ1ZSwgdGhpcyBjYW4KLSAqIGJlIGxlc3MgdGhh biAnbGVuJy4KLSAqLwotaW50Ci1taWMybGF0aW5fd2l0aF90YWJsZShjb25zdCB1bnNpZ25lZCBj aGFyICptaWMsCi0JCQkJCSB1bnNpZ25lZCBjaGFyICpwLAotCQkJCQkgaW50IGxlbiwKLQkJCQkJ IGludCBsYywKLQkJCQkJIGludCBlbmNvZGluZywKLQkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIg KnRhYiwKLQkJCQkJIGJvb2wgbm9FcnJvcikKLXsKLQljb25zdCB1bnNpZ25lZCBjaGFyICpzdGFy dCA9IG1pYzsKLQl1bnNpZ25lZCBjaGFyIGMxLAotCQkJCWMyOwotCi0Jd2hpbGUgKGxlbiA+IDAp Ci0JewotCQljMSA9ICptaWM7Ci0JCWlmIChjMSA9PSAwKQotCQl7Ci0JCQlpZiAobm9FcnJvcikK LQkJCQlicmVhazsKLQkJCXJlcG9ydF9pbnZhbGlkX2VuY29kaW5nKFBHX01VTEVfSU5URVJOQUws IChjb25zdCBjaGFyICopIG1pYywgbGVuKTsKLQkJfQotCQlpZiAoIUlTX0hJR0hCSVRfU0VUKGMx KSkKLQkJewotCQkJLyogZWFzeSBmb3IgQVNDSUkgKi8KLQkJCSpwKysgPSBjMTsKLQkJCW1pYysr OwotCQkJbGVuLS07Ci0JCX0KLQkJZWxzZQotCQl7Ci0JCQlpbnQJCQlsID0gcGdfbXVsZV9tYmxl bihtaWMpOwotCi0JCQlpZiAobGVuIDwgbCkKLQkJCXsKLQkJCQlpZiAobm9FcnJvcikKLQkJCQkJ YnJlYWs7Ci0JCQkJcmVwb3J0X2ludmFsaWRfZW5jb2RpbmcoUEdfTVVMRV9JTlRFUk5BTCwgKGNv bnN0IGNoYXIgKikgbWljLAotCQkJCQkJCQkJCWxlbik7Ci0JCQl9Ci0JCQlpZiAobCAhPSAyIHx8 IGMxICE9IGxjIHx8ICFJU19ISUdIQklUX1NFVChtaWNbMV0pIHx8Ci0JCQkJKGMyID0gdGFiW21p Y1sxXSAtIEhJR0hCSVRdKSA9PSAwKQotCQkJewotCQkJCWlmIChub0Vycm9yKQotCQkJCQlicmVh azsKLQkJCQlyZXBvcnRfdW50cmFuc2xhdGFibGVfY2hhcihQR19NVUxFX0lOVEVSTkFMLCBlbmNv ZGluZywKLQkJCQkJCQkJCQkgICAoY29uc3QgY2hhciAqKSBtaWMsIGxlbik7Ci0JCQkJYnJlYWs7 CQkJLyoga2VlcCBjb21waWxlciBxdWlldCAqLwotCQkJfQotCQkJKnArKyA9IGMyOwotCQkJbWlj ICs9IDI7Ci0JCQlsZW4gLT0gMjsKLQkJfQotCX0KLQkqcCA9ICdcMCc7Ci0KLQlyZXR1cm4gbWlj IC0gc3RhcnQ7Ci19Ci0KIC8qCiAgKiBjb21wYXJpc29uIHJvdXRpbmUgZm9yIGJzZWFyY2goKQog ICogdGhpcyByb3V0aW5lIGlzIGludGVuZGVkIGZvciBjb21iaW5lZCBVVEY4IC0+IGxvY2FsIGNv ZGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21iL2NvbnZlcnNpb25fcHJvY3MvTWFr ZWZpbGUgYi9zcmMvYmFja2VuZC91dGlscy9tYi9jb252ZXJzaW9uX3Byb2NzL01ha2VmaWxlCmlu ZGV4IGJjYWRmNjY4OGQ2Li5kM2M0OTI3NWExNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvbWIvY29udmVyc2lvbl9wcm9jcy9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9t Yi9jb252ZXJzaW9uX3Byb2NzL01ha2VmaWxlCkBAIC0xNCw4ICsxNCw4IEBAIHRvcF9idWlsZGRp ciA9IC4uLy4uLy4uLy4uLy4uCiBpbmNsdWRlICQodG9wX2J1aWxkZGlyKS9zcmMvTWFrZWZpbGUu Z2xvYmFsCiAKIFNVQkRJUlMgPSBcCi0JY3lyaWxsaWNfYW5kX21pYyBldWNfY25fYW5kX21pYyBl dWNfanBfYW5kX3NqaXMgXAotCWV1Y19rcl9hbmRfbWljIGV1Y190d19hbmRfYmlnNSBsYXRpbjJf YW5kX3dpbjEyNTAgbGF0aW5fYW5kX21pYyBcCisJY3lyaWxsaWMgZXVjX2pwX2FuZF9zamlzIFwK KwlldWNfdHdfYW5kX2JpZzUgbGF0aW4yX2FuZF93aW4xMjUwIFwKIAl1dGY4X2FuZF9iaWc1IHV0 ZjhfYW5kX2N5cmlsbGljIHV0ZjhfYW5kX2V1Y19jbiBcCiAJdXRmOF9hbmRfZXVjX2pwIHV0Zjhf YW5kX2V1Y19rciB1dGY4X2FuZF9ldWNfdHcgdXRmOF9hbmRfZ2IxODAzMCBcCiAJdXRmOF9hbmRf Z2JrIHV0ZjhfYW5kX2lzbzg4NTkgdXRmOF9hbmRfaXNvODg1OV8xIHV0ZjhfYW5kX2pvaGFiIFwK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21iL2NvbnZlcnNpb25fcHJvY3MvbGF0aW5f YW5kX21pYy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL21iL2NvbnZlcnNpb25fcHJvY3Mv Y3lyaWxsaWMvTWFrZWZpbGUKc2ltaWxhcml0eSBpbmRleCA1NyUKcmVuYW1lIGZyb20gc3JjL2Jh Y2tlbmQvdXRpbHMvbWIvY29udmVyc2lvbl9wcm9jcy9sYXRpbl9hbmRfbWljL01ha2VmaWxlCnJl bmFtZSB0byBzcmMvYmFja2VuZC91dGlscy9tYi9jb252ZXJzaW9uX3Byb2NzL2N5cmlsbGljL01h a2VmaWxlCmluZGV4IGM0MDQ3MzhkMmY2Li4xYWQwNGMyMDMwMCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvbWIvY29udmVyc2lvbl9wcm9jcy9sYXRpbl9hbmRfbWljL01ha2VmaWxlCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL21iL2NvbnZlcnNpb25fcHJvY3MvY3lyaWxsaWMvTWFrZWZp bGUKQEAgLTEsMTMgKzEsMTMgQEAKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjCi0jIHNyYy9iYWNrZW5k L3V0aWxzL21iL2NvbnZlcnNpb25fcHJvY3MvbGF0aW5fYW5kX21pYy9NYWtlZmlsZQorIyBzcmMv YmFja2VuZC91dGlscy9tYi9jb252ZXJzaW9uX3Byb2NzL2N5cmlsbGljL01ha2VmaWxlCiAjCiAj LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotc3ViZGlyID0gc3JjL2JhY2tlbmQvdXRpbHMvbWIvY29udmVyc2lv bl9wcm9jcy9sYXRpbl9hbmRfbWljCitzdWJkaXIgPSBzcmMvYmFja2VuZC91dGlscy9tYi9jb252 ZXJzaW9uX3Byb2NzL2N5cmlsbGljCiB0b3BfYnVpbGRkaXIgPSAuLi8uLi8uLi8uLi8uLi8uLgog aW5jbHVkZSAkKHRvcF9idWlsZGRpcikvc3JjL01ha2VmaWxlLmdsb2JhbAogCi1OQU1FCQk9IGxh dGluX2FuZF9taWMKLVBHRklMRURFU0MJPSAibGF0aW4gPC0+IG1pYyB0ZXh0IGNvbnZlcnNpb25z IgorTkFNRQkJPSBjeXJpbGxpYworUEdGSUxFREVTQwk9ICJjeXJpbGxpYyBzaW5nbGUtYnl0ZSBj b252ZXJzaW9ucyIKIAogaW5jbHVkZSAkKHNyY2RpcikvLi4vcHJvYy5tawpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvbWIvY29udmVyc2lvbl9wcm9jcy9jeXJpbGxpY19hbmRfbWljL2N5 cmlsbGljX2FuZF9taWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21iL2NvbnZlcnNpb25fcHJvY3Mv Y3lyaWxsaWMvY3lyaWxsaWMuYwpzaW1pbGFyaXR5IGluZGV4IDgwJQpyZW5hbWUgZnJvbSBzcmMv YmFja2VuZC91dGlscy9tYi9jb252ZXJzaW9uX3Byb2NzL2N5cmlsbGljX2FuZF9taWMvY3lyaWxs aWNfYW5kX21pYy5jCnJlbmFtZSB0byBzcmMvYmFja2VuZC91dGlscy9tYi9jb252ZXJzaW9uX3By b2NzL2N5cmlsbGljL2N5cmlsbGljLmMKaW5kZXggOGQzYzBlOTQzMjMuLjE2ZjkxYzgwYTc1IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9tYi9jb252ZXJzaW9uX3Byb2NzL2N5cmlsbGlj X2FuZF9taWMvY3lyaWxsaWNfYW5kX21pYy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21iL2Nv bnZlcnNpb25fcHJvY3MvY3lyaWxsaWMvY3lyaWxsaWMuYwpAQCAtMSwxMiArMSwxMiBAQAogLyot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgKgotICoJICBDeXJpbGxpYyBhbmQgTVVMRV9JTlRFUk5BTAorICoJ ICBLT0k4UiwgV0lOMTI1MSwgV0lOODY2IGFuZCBJU09fODg1OV81CiAgKgogICogUG9ydGlvbnMg Q29weXJpZ2h0IChjKSAxOTk2LTIwMjYsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdy b3VwCiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZl cnNpdHkgb2YgQ2FsaWZvcm5pYQogICoKICAqIElERU5USUZJQ0FUSU9OCi0gKgkgIHNyYy9iYWNr ZW5kL3V0aWxzL21iL2NvbnZlcnNpb25fcHJvY3MvY3lyaWxsaWNfYW5kX21pYy9jeXJpbGxpY19h bmRfbWljLmMKKyAqCSAgc3JjL2JhY2tlbmQvdXRpbHMvbWIvY29udmVyc2lvbl9wcm9jcy9jeXJp bGxpYy9jeXJpbGxpYy5jCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KQEAgLTE2LDE4ICsx NiwxMCBAQAogI2luY2x1ZGUgIm1iL3BnX3djaGFyLmgiCiAKIFBHX01PRFVMRV9NQUdJQ19FWFQo Ci0JCQkJCS5uYW1lID0gImN5cmlsbGljX2FuZF9taWMiLAorCQkJCQkubmFtZSA9ICJjeXJpbGxp YyIsCiAJCQkJCS52ZXJzaW9uID0gUEdfVkVSU0lPTgogKTsKIAotUEdfRlVOQ1RJT05fSU5GT19W MShrb2k4cl90b19taWMpOwotUEdfRlVOQ1RJT05fSU5GT19WMShtaWNfdG9fa29pOHIpOwotUEdf RlVOQ1RJT05fSU5GT19WMShpc29fdG9fbWljKTsKLVBHX0ZVTkNUSU9OX0lORk9fVjEobWljX3Rv X2lzbyk7Ci1QR19GVU5DVElPTl9JTkZPX1YxKHdpbjEyNTFfdG9fbWljKTsKLVBHX0ZVTkNUSU9O X0lORk9fVjEobWljX3RvX3dpbjEyNTEpOwotUEdfRlVOQ1RJT05fSU5GT19WMSh3aW44NjZfdG9f bWljKTsKLVBHX0ZVTkNUSU9OX0lORk9fVjEobWljX3RvX3dpbjg2Nik7CiBQR19GVU5DVElPTl9J TkZPX1YxKGtvaThyX3RvX3dpbjEyNTEpOwogUEdfRlVOQ1RJT05fSU5GT19WMSh3aW4xMjUxX3Rv X2tvaThyKTsKIFBHX0ZVTkNUSU9OX0lORk9fVjEoa29pOHJfdG9fd2luODY2KTsKQEAgLTU5LDcg KzUxLDcgQEAgUEdfRlVOQ1RJT05fSU5GT19WMSh3aW44NjZfdG9faXNvKTsKICAqIEN5cmlsbGlj IHN1cHBvcnQKICAqIGN1cnJlbnRseSBzdXBwb3J0ZWQgQ3lyaWxsaWMgZW5jb2RpbmdzOgogICoK LSAqIEtPSTgtUiAodGhpcyBpcyBhbHNvIHRoZSBjaGFyc2V0IGZvciB0aGUgbXVsZSBpbnRlcm5h bCBjb2RlIGZvciBDeXJpbGxpYykKKyAqIEtPSTgtUgogICogSVNPLTg4NTktNQogICogTWljcm9z b2Z0J3MgQ1AxMjUxICh3aW5kb3dzLTEyNTEpCiAgKiBBbHRlcm5hdGl2bnkgVmFyaWFudCAoTVMt RE9TIENQODY2KQpAQCAtMzA2LDEzNCArMjk4LDYgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNo YXIgd2luODY2Mmlzb1tdID0gewogfTsKIAogCi1EYXR1bQota29pOHJfdG9fbWljKFBHX0ZVTkNU SU9OX0FSR1MpCi17Ci0JdW5zaWduZWQgY2hhciAqc3JjID0gKHVuc2lnbmVkIGNoYXIgKikgUEdf R0VUQVJHX0NTVFJJTkcoMik7Ci0JdW5zaWduZWQgY2hhciAqZGVzdCA9ICh1bnNpZ25lZCBjaGFy ICopIFBHX0dFVEFSR19DU1RSSU5HKDMpOwotCWludAkJCWxlbiA9IFBHX0dFVEFSR19JTlQzMig0 KTsKLQlib29sCQlub0Vycm9yID0gUEdfR0VUQVJHX0JPT0woNSk7Ci0JaW50CQkJY29udmVydGVk OwotCi0JQ0hFQ0tfRU5DT0RJTkdfQ09OVkVSU0lPTl9BUkdTKFBHX0tPSThSLCBQR19NVUxFX0lO VEVSTkFMKTsKLQotCWNvbnZlcnRlZCA9IGxhdGluMm1pYyhzcmMsIGRlc3QsIGxlbiwgTENfS09J OF9SLCBQR19LT0k4Uiwgbm9FcnJvcik7Ci0KLQlQR19SRVRVUk5fSU5UMzIoY29udmVydGVkKTsK LX0KLQotRGF0dW0KLW1pY190b19rb2k4cihQR19GVU5DVElPTl9BUkdTKQotewotCXVuc2lnbmVk IGNoYXIgKnNyYyA9ICh1bnNpZ25lZCBjaGFyICopIFBHX0dFVEFSR19DU1RSSU5HKDIpOwotCXVu c2lnbmVkIGNoYXIgKmRlc3QgPSAodW5zaWduZWQgY2hhciAqKSBQR19HRVRBUkdfQ1NUUklORygz KTsKLQlpbnQJCQlsZW4gPSBQR19HRVRBUkdfSU5UMzIoNCk7Ci0JYm9vbAkJbm9FcnJvciA9IFBH X0dFVEFSR19CT09MKDUpOwotCWludAkJCWNvbnZlcnRlZDsKLQotCUNIRUNLX0VOQ09ESU5HX0NP TlZFUlNJT05fQVJHUyhQR19NVUxFX0lOVEVSTkFMLCBQR19LT0k4Uik7Ci0KLQljb252ZXJ0ZWQg PSBtaWMybGF0aW4oc3JjLCBkZXN0LCBsZW4sIExDX0tPSThfUiwgUEdfS09JOFIsIG5vRXJyb3Ip OwotCi0JUEdfUkVUVVJOX0lOVDMyKGNvbnZlcnRlZCk7Ci19Ci0KLURhdHVtCi1pc29fdG9fbWlj KFBHX0ZVTkNUSU9OX0FSR1MpCi17Ci0JdW5zaWduZWQgY2hhciAqc3JjID0gKHVuc2lnbmVkIGNo YXIgKikgUEdfR0VUQVJHX0NTVFJJTkcoMik7Ci0JdW5zaWduZWQgY2hhciAqZGVzdCA9ICh1bnNp Z25lZCBjaGFyICopIFBHX0dFVEFSR19DU1RSSU5HKDMpOwotCWludAkJCWxlbiA9IFBHX0dFVEFS R19JTlQzMig0KTsKLQlib29sCQlub0Vycm9yID0gUEdfR0VUQVJHX0JPT0woNSk7Ci0JaW50CQkJ Y29udmVydGVkOwotCi0JQ0hFQ0tfRU5DT0RJTkdfQ09OVkVSU0lPTl9BUkdTKFBHX0lTT184ODU5 XzUsIFBHX01VTEVfSU5URVJOQUwpOwotCi0JY29udmVydGVkID0gbGF0aW4ybWljX3dpdGhfdGFi bGUoc3JjLCBkZXN0LCBsZW4sIExDX0tPSThfUiwgUEdfSVNPXzg4NTlfNSwgaXNvMmtvaSwgbm9F cnJvcik7Ci0KLQlQR19SRVRVUk5fSU5UMzIoY29udmVydGVkKTsKLX0KLQotRGF0dW0KLW1pY190 b19pc28oUEdfRlVOQ1RJT05fQVJHUykKLXsKLQl1bnNpZ25lZCBjaGFyICpzcmMgPSAodW5zaWdu ZWQgY2hhciAqKSBQR19HRVRBUkdfQ1NUUklORygyKTsKLQl1bnNpZ25lZCBjaGFyICpkZXN0ID0g KHVuc2lnbmVkIGNoYXIgKikgUEdfR0VUQVJHX0NTVFJJTkcoMyk7Ci0JaW50CQkJbGVuID0gUEdf R0VUQVJHX0lOVDMyKDQpOwotCWJvb2wJCW5vRXJyb3IgPSBQR19HRVRBUkdfQk9PTCg1KTsKLQlp bnQJCQljb252ZXJ0ZWQ7Ci0KLQlDSEVDS19FTkNPRElOR19DT05WRVJTSU9OX0FSR1MoUEdfTVVM RV9JTlRFUk5BTCwgUEdfSVNPXzg4NTlfNSk7Ci0KLQljb252ZXJ0ZWQgPSBtaWMybGF0aW5fd2l0 aF90YWJsZShzcmMsIGRlc3QsIGxlbiwgTENfS09JOF9SLCBQR19JU09fODg1OV81LCBrb2kyaXNv LCBub0Vycm9yKTsKLQotCVBHX1JFVFVSTl9JTlQzMihjb252ZXJ0ZWQpOwotfQotCi1EYXR1bQot d2luMTI1MV90b19taWMoUEdfRlVOQ1RJT05fQVJHUykKLXsKLQl1bnNpZ25lZCBjaGFyICpzcmMg PSAodW5zaWduZWQgY2hhciAqKSBQR19HRVRBUkdfQ1NUUklORygyKTsKLQl1bnNpZ25lZCBjaGFy ICpkZXN0ID0gKHVuc2lnbmVkIGNoYXIgKikgUEdfR0VUQVJHX0NTVFJJTkcoMyk7Ci0JaW50CQkJ bGVuID0gUEdfR0VUQVJHX0lOVDMyKDQpOwotCWJvb2wJCW5vRXJyb3IgPSBQR19HRVRBUkdfQk9P TCg1KTsKLQlpbnQJCQljb252ZXJ0ZWQ7Ci0KLQlDSEVDS19FTkNPRElOR19DT05WRVJTSU9OX0FS R1MoUEdfV0lOMTI1MSwgUEdfTVVMRV9JTlRFUk5BTCk7Ci0KLQljb252ZXJ0ZWQgPSBsYXRpbjJt aWNfd2l0aF90YWJsZShzcmMsIGRlc3QsIGxlbiwgTENfS09JOF9SLCBQR19XSU4xMjUxLCB3aW4x MjUxMmtvaSwgbm9FcnJvcik7Ci0KLQlQR19SRVRVUk5fSU5UMzIoY29udmVydGVkKTsKLX0KLQot RGF0dW0KLW1pY190b193aW4xMjUxKFBHX0ZVTkNUSU9OX0FSR1MpCi17Ci0JdW5zaWduZWQgY2hh ciAqc3JjID0gKHVuc2lnbmVkIGNoYXIgKikgUEdfR0VUQVJHX0NTVFJJTkcoMik7Ci0JdW5zaWdu ZWQgY2hhciAqZGVzdCA9ICh1bnNpZ25lZCBjaGFyICopIFBHX0dFVEFSR19DU1RSSU5HKDMpOwot CWludAkJCWxlbiA9IFBHX0dFVEFSR19JTlQzMig0KTsKLQlib29sCQlub0Vycm9yID0gUEdfR0VU QVJHX0JPT0woNSk7Ci0JaW50CQkJY29udmVydGVkOwotCi0JQ0hFQ0tfRU5DT0RJTkdfQ09OVkVS U0lPTl9BUkdTKFBHX01VTEVfSU5URVJOQUwsIFBHX1dJTjEyNTEpOwotCi0JY29udmVydGVkID0g bWljMmxhdGluX3dpdGhfdGFibGUoc3JjLCBkZXN0LCBsZW4sIExDX0tPSThfUiwgUEdfV0lOMTI1 MSwga29pMndpbjEyNTEsIG5vRXJyb3IpOwotCi0JUEdfUkVUVVJOX0lOVDMyKGNvbnZlcnRlZCk7 Ci19Ci0KLURhdHVtCi13aW44NjZfdG9fbWljKFBHX0ZVTkNUSU9OX0FSR1MpCi17Ci0JdW5zaWdu ZWQgY2hhciAqc3JjID0gKHVuc2lnbmVkIGNoYXIgKikgUEdfR0VUQVJHX0NTVFJJTkcoMik7Ci0J dW5zaWduZWQgY2hhciAqZGVzdCA9ICh1bnNpZ25lZCBjaGFyICopIFBHX0dFVEFSR19DU1RSSU5H KDMpOwotCWludAkJCWxlbiA9IFBHX0dFVEFSR19JTlQzMig0KTsKLQlib29sCQlub0Vycm9yID0g UEdfR0VUQVJHX0JPT0woNSk7Ci0JaW50CQkJY29udmVydGVkOwotCi0JQ0hFQ0tfRU5DT0RJTkdf Q09OVkVSU0lPTl9BUkdTKFBHX1dJTjg2NiwgUEdfTVVMRV9JTlRFUk5BTCk7Ci0KLQljb252ZXJ0 ZWQgPSBsYXRpbjJtaWNfd2l0aF90YWJsZShzcmMsIGRlc3QsIGxlbiwgTENfS09JOF9SLCBQR19X SU44NjYsIHdpbjg2NjJrb2ksIG5vRXJyb3IpOwotCi0JUEdfUkVUVVJOX0lOVDMyKGNvbnZlcnRl ZCk7Ci19Ci0KLURhdHVtCi1taWNfdG9fd2luODY2KFBHX0ZVTkNUSU9OX0FSR1MpCi17Ci0JdW5z aWduZWQgY2hhciAqc3JjID0gKHVuc2lnbmVkIGNoYXIgKikgUEdfR0VUQVJHX0NTVFJJTkcoMik7 Ci0JdW5zaWduZWQgY2hhciAqZGVzdCA9ICh1bnNpZ25lZCBjaGFyICopIFBHX0dFVEFSR19DU1RS SU5HKDMpOwotCWludAkJCWxlbiA9IFBHX0dFVEFSR19JTlQzMig0KTsKLQlib29sCQlub0Vycm9y ID0gUEdfR0VUQVJHX0JPT0woNSk7Ci0JaW50CQkJY29udmVydGVkOwotCi0JQ0hFQ0tfRU5DT0RJ TkdfQ09OVkVSU0lPTl9BUkdTKFBHX01VTEVfSU5URVJOQUwsIFBHX1dJTjg2Nik7Ci0KLQljb252 ZXJ0ZWQgPSBtaWMybGF0aW5fd2l0aF90YWJsZShzcmMsIGRlc3QsIGxlbiwgTENfS09JOF9SLCBQ R19XSU44NjYsIGtvaTJ3aW44NjYsIG5vRXJyb3IpOwotCi0JUEdfUkVUVVJOX0lOVDMyKGNvbnZl cnRlZCk7Ci19Ci0KIERhdHVtCiBrb2k4cl90b193aW4xMjUxKFBHX0ZVTkNUSU9OX0FSR1MpCiB7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9tYi9jb252ZXJzaW9uX3Byb2NzL2N5cmls bGljX2FuZF9taWMvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC91dGlscy9tYi9jb252ZXJzaW9uX3By b2NzL2N5cmlsbGljX2FuZF9taWMvTWFrZWZpbGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IGU3Y2Q4ZTgxNjJhLi4wMDAwMDAwMDAwMAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9tYi9j b252ZXJzaW9uX3Byb2NzL2N5cmlsbGljX2FuZF9taWMvTWFrZWZpbGUKKysrIC9kZXYvbnVsbApA QCAtMSwxMyArMCwwIEBACi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIwotIyBzcmMvYmFja2VuZC91dGls cy9tYi9jb252ZXJzaW9uX3Byb2NzL2N5cmlsbGljX2FuZF9taWMvTWFrZWZpbGUKLSMKLSMtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi1zdWJkaXIgPSBzcmMvYmFja2VuZC91dGlscy9tYi9jb252ZXJzaW9uX3By b2NzL2N5cmlsbGljX2FuZF9taWMKLXRvcF9idWlsZGRpciA9IC4uLy4uLy4uLy4uLy4uLy4uCi1p bmNsdWRlICQodG9wX2J1aWxkZGlyKS9zcmMvTWFrZWZpbGUuZ2xvYmFsCi0KLU5BTUUJCT0gY3ly aWxsaWNfYW5kX21pYwotUEdGSUxFREVTQwk9ICJjeXJpbGxpYyA8LT4gbWljIHRleHQgY29udmVy c2lvbnMiCi0KLWluY2x1ZGUgJChzcmNkaXIpLy4uL3Byb2MubWsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL21iL2NvbnZlcnNpb25fcHJvY3MvZXVjX2NuX2FuZF9taWMvTWFrZWZpbGUg Yi9zcmMvYmFja2VuZC91dGlscy9tYi9jb252ZXJzaW9uX3Byb2NzL2V1Y19jbl9hbmRfbWljL01h a2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYjZhODNmNTg0MS4uMDAwMDAw MDAwMDAKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWIvY29udmVyc2lvbl9wcm9jcy9ldWNfY25f YW5kX21pYy9NYWtlZmlsZQorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLSMtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0jCi0jIHNyYy9iYWNrZW5kL3V0aWxzL21iL2NvbnZlcnNpb25fcHJvY3MvZXVj X2NuX2FuZF9taWMvTWFrZWZpbGUKLSMKLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1zdWJkaXIgPSBzcmMv YmFja2VuZC91dGlscy9tYi9jb252ZXJzaW9uX3Byb2NzL2V1Y19jbl9hbmRfbWljCi10b3BfYnVp bGRkaXIgPSAuLi8uLi8uLi8uLi8uLi8uLgotaW5jbHVkZSAkKHRvcF9idWlsZGRpcikvc3JjL01h a2VmaWxlLmdsb2JhbAotCi1OQU1FCQk9IGV1Y19jbl9hbmRfbWljCi1QR0ZJTEVERVNDCT0gImV1 Y19jbiA8LT4gbWljIHRleHQgY29udmVyc2lvbnMiCi0KLWluY2x1ZGUgJChzcmNkaXIpLy4uL3By b2MubWsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21iL2NvbnZlcnNpb25fcHJvY3Mv ZXVjX2NuX2FuZF9taWMvZXVjX2NuX2FuZF9taWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21iL2Nv bnZlcnNpb25fcHJvY3MvZXVjX2NuX2FuZF9taWMvZXVjX2NuX2FuZF9taWMuYwpkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMjc2NGQyZmIzZWYuLjAwMDAwMDAwMDAwCi0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL21iL2NvbnZlcnNpb25fcHJvY3MvZXVjX2NuX2FuZF9taWMvZXVjX2NuX2Fu ZF9taWMuYworKysgL2Rldi9udWxsCkBAIC0xLDE2OSArMCwwIEBACi0vKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSAqCi0gKgkgIEVVQ19DTiBhbmQgTVVMRV9JTlRFUk5BTAotICoKLSAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5Ni0yMDI2LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91 cAotICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJz aXR5IG9mIENhbGlmb3JuaWEKLSAqCi0gKiBJREVOVElGSUNBVElPTgotICoJICBzcmMvYmFja2Vu ZC91dGlscy9tYi9jb252ZXJzaW9uX3Byb2NzL2V1Y19jbl9hbmRfbWljL2V1Y19jbl9hbmRfbWlj LmMKLSAqCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqLwotCi0jaW5jbHVkZSAicG9zdGdyZXMuaCIK LSNpbmNsdWRlICJmbWdyLmgiCi0jaW5jbHVkZSAibWIvcGdfd2NoYXIuaCIKLQotUEdfTU9EVUxF X01BR0lDX0VYVCgKLQkJCQkJLm5hbWUgPSAiZXVjX2NuX2FuZF9taWMiLAotCQkJCQkudmVyc2lv biA9IFBHX1ZFUlNJT04KLSk7Ci0KLVBHX0ZVTkNUSU9OX0lORk9fVjEoZXVjX2NuX3RvX21pYyk7 Ci1QR19GVU5DVElPTl9JTkZPX1YxKG1pY190b19ldWNfY24pOwotCi0vKiAtLS0tLS0tLS0tCi0g KiBjb252X3Byb2MoCi0gKgkJSU5URUdFUiwJLS0gc291cmNlIGVuY29kaW5nIGlkCi0gKgkJSU5U RUdFUiwJLS0gZGVzdGluYXRpb24gZW5jb2RpbmcgaWQKLSAqCQlDU1RSSU5HLAktLSBzb3VyY2Ug c3RyaW5nIChudWxsIHRlcm1pbmF0ZWQgQyBzdHJpbmcpCi0gKgkJQ1NUUklORywJLS0gZGVzdGlu YXRpb24gc3RyaW5nIChudWxsIHRlcm1pbmF0ZWQgQyBzdHJpbmcpCi0gKgkJSU5URUdFUiwJLS0g c291cmNlIHN0cmluZyBsZW5ndGgKLSAqCQlCT09MCQktLSBpZiB0cnVlLCBkb24ndCB0aHJvdyBh biBlcnJvciBpZiBjb252ZXJzaW9uIGZhaWxzCi0gKiApIHJldHVybnMgSU5URUdFUjsKLSAqCi0g KiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgc3VjY2Vzc2Z1bGx5IGNvbnZlcnRlZC4KLSAq IC0tLS0tLS0tLS0KLSAqLwotCi1zdGF0aWMgaW50CWV1Y19jbjJtaWMoY29uc3QgdW5zaWduZWQg Y2hhciAqZXVjLCB1bnNpZ25lZCBjaGFyICpwLCBpbnQgbGVuLCBib29sIG5vRXJyb3IpOwotc3Rh dGljIGludAltaWMyZXVjX2NuKGNvbnN0IHVuc2lnbmVkIGNoYXIgKm1pYywgdW5zaWduZWQgY2hh ciAqcCwgaW50IGxlbiwgYm9vbCBub0Vycm9yKTsKLQotRGF0dW0KLWV1Y19jbl90b19taWMoUEdf RlVOQ1RJT05fQVJHUykKLXsKLQl1bnNpZ25lZCBjaGFyICpzcmMgPSAodW5zaWduZWQgY2hhciAq KSBQR19HRVRBUkdfQ1NUUklORygyKTsKLQl1bnNpZ25lZCBjaGFyICpkZXN0ID0gKHVuc2lnbmVk IGNoYXIgKikgUEdfR0VUQVJHX0NTVFJJTkcoMyk7Ci0JaW50CQkJbGVuID0gUEdfR0VUQVJHX0lO VDMyKDQpOwotCWJvb2wJCW5vRXJyb3IgPSBQR19HRVRBUkdfQk9PTCg1KTsKLQlpbnQJCQljb252 ZXJ0ZWQ7Ci0KLQlDSEVDS19FTkNPRElOR19DT05WRVJTSU9OX0FSR1MoUEdfRVVDX0NOLCBQR19N VUxFX0lOVEVSTkFMKTsKLQotCWNvbnZlcnRlZCA9IGV1Y19jbjJtaWMoc3JjLCBkZXN0LCBsZW4s IG5vRXJyb3IpOwotCi0JUEdfUkVUVVJOX0lOVDMyKGNvbnZlcnRlZCk7Ci19Ci0KLURhdHVtCi1t aWNfdG9fZXVjX2NuKFBHX0ZVTkNUSU9OX0FSR1MpCi17Ci0JdW5zaWduZWQgY2hhciAqc3JjID0g KHVuc2lnbmVkIGNoYXIgKikgUEdfR0VUQVJHX0NTVFJJTkcoMik7Ci0JdW5zaWduZWQgY2hhciAq ZGVzdCA9ICh1bnNpZ25lZCBjaGFyICopIFBHX0dFVEFSR19DU1RSSU5HKDMpOwotCWludAkJCWxl biA9IFBHX0dFVEFSR19JTlQzMig0KTsKLQlib29sCQlub0Vycm9yID0gUEdfR0VUQVJHX0JPT0wo NSk7Ci0JaW50CQkJY29udmVydGVkOwotCi0JQ0hFQ0tfRU5DT0RJTkdfQ09OVkVSU0lPTl9BUkdT KFBHX01VTEVfSU5URVJOQUwsIFBHX0VVQ19DTik7Ci0KLQljb252ZXJ0ZWQgPSBtaWMyZXVjX2Nu KHNyYywgZGVzdCwgbGVuLCBub0Vycm9yKTsKLQotCVBHX1JFVFVSTl9JTlQzMihjb252ZXJ0ZWQp OwotfQotCi0vKgotICogRVVDX0NOIC0tLT4gTUlDCi0gKi8KLXN0YXRpYyBpbnQKLWV1Y19jbjJt aWMoY29uc3QgdW5zaWduZWQgY2hhciAqZXVjLCB1bnNpZ25lZCBjaGFyICpwLCBpbnQgbGVuLCBi b29sIG5vRXJyb3IpCi17Ci0JY29uc3QgdW5zaWduZWQgY2hhciAqc3RhcnQgPSBldWM7Ci0JaW50 CQkJYzE7Ci0KLQl3aGlsZSAobGVuID4gMCkKLQl7Ci0JCWMxID0gKmV1YzsKLQkJaWYgKElTX0hJ R0hCSVRfU0VUKGMxKSkKLQkJewotCQkJaWYgKGxlbiA8IDIgfHwgIUlTX0hJR0hCSVRfU0VUKGV1 Y1sxXSkpCi0JCQl7Ci0JCQkJaWYgKG5vRXJyb3IpCi0JCQkJCWJyZWFrOwotCQkJCXJlcG9ydF9p bnZhbGlkX2VuY29kaW5nKFBHX0VVQ19DTiwgKGNvbnN0IGNoYXIgKikgZXVjLCBsZW4pOwotCQkJ fQotCQkJKnArKyA9IExDX0dCMjMxMl84MDsKLQkJCSpwKysgPSBjMTsKLQkJCSpwKysgPSBldWNb MV07Ci0JCQlldWMgKz0gMjsKLQkJCWxlbiAtPSAyOwotCQl9Ci0JCWVsc2UKLQkJewkJCQkJCS8q IHNob3VsZCBiZSBBU0NJSSAqLwotCQkJaWYgKGMxID09IDApCi0JCQl7Ci0JCQkJaWYgKG5vRXJy b3IpCi0JCQkJCWJyZWFrOwotCQkJCXJlcG9ydF9pbnZhbGlkX2VuY29kaW5nKFBHX0VVQ19DTiwg KGNvbnN0IGNoYXIgKikgZXVjLCBsZW4pOwotCQkJfQotCQkJKnArKyA9IGMxOwotCQkJZXVjKys7 Ci0JCQlsZW4tLTsKLQkJfQotCX0KLQkqcCA9ICdcMCc7Ci0KLQlyZXR1cm4gZXVjIC0gc3RhcnQ7 Ci19Ci0KLS8qCi0gKiBNSUMgLS0tPiBFVUNfQ04KLSAqLwotc3RhdGljIGludAotbWljMmV1Y19j bihjb25zdCB1bnNpZ25lZCBjaGFyICptaWMsIHVuc2lnbmVkIGNoYXIgKnAsIGludCBsZW4sIGJv b2wgbm9FcnJvcikKLXsKLQljb25zdCB1bnNpZ25lZCBjaGFyICpzdGFydCA9IG1pYzsKLQlpbnQJ CQljMTsKLQotCXdoaWxlIChsZW4gPiAwKQotCXsKLQkJYzEgPSAqbWljOwotCQlpZiAoSVNfSElH SEJJVF9TRVQoYzEpKQotCQl7Ci0JCQlpZiAoYzEgIT0gTENfR0IyMzEyXzgwKQotCQkJewotCQkJ CWlmIChub0Vycm9yKQotCQkJCQlicmVhazsKLQkJCQlyZXBvcnRfdW50cmFuc2xhdGFibGVfY2hh cihQR19NVUxFX0lOVEVSTkFMLCBQR19FVUNfQ04sCi0JCQkJCQkJCQkJICAgKGNvbnN0IGNoYXIg KikgbWljLCBsZW4pOwotCQkJfQotCQkJaWYgKGxlbiA8IDMgfHwgIUlTX0hJR0hCSVRfU0VUKG1p Y1sxXSkgfHwgIUlTX0hJR0hCSVRfU0VUKG1pY1syXSkpCi0JCQl7Ci0JCQkJaWYgKG5vRXJyb3Ip Ci0JCQkJCWJyZWFrOwotCQkJCXJlcG9ydF9pbnZhbGlkX2VuY29kaW5nKFBHX01VTEVfSU5URVJO QUwsCi0JCQkJCQkJCQkJKGNvbnN0IGNoYXIgKikgbWljLCBsZW4pOwotCQkJfQotCQkJbWljKys7 Ci0JCQkqcCsrID0gKm1pYysrOwotCQkJKnArKyA9ICptaWMrKzsKLQkJCWxlbiAtPSAzOwotCQl9 Ci0JCWVsc2UKLQkJewkJCQkJCS8qIHNob3VsZCBiZSBBU0NJSSAqLwotCQkJaWYgKGMxID09IDAp Ci0JCQl7Ci0JCQkJaWYgKG5vRXJyb3IpCi0JCQkJCWJyZWFrOwotCQkJCXJlcG9ydF9pbnZhbGlk X2VuY29kaW5nKFBHX01VTEVfSU5URVJOQUwsCi0JCQkJCQkJCQkJKGNvbnN0IGNoYXIgKikgbWlj LCBsZW4pOwotCQkJfQotCQkJKnArKyA9IGMxOwotCQkJbWljKys7Ci0JCQlsZW4tLTsKLQkJfQot CX0KLQkqcCA9ICdcMCc7Ci0KLQlyZXR1cm4gbWljIC0gc3RhcnQ7Ci19CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9tYi9jb252ZXJzaW9uX3Byb2NzL2V1Y19qcF9hbmRfc2ppcy9ldWNf anBfYW5kX3NqaXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21iL2NvbnZlcnNpb25fcHJvY3MvZXVj X2pwX2FuZF9zamlzL2V1Y19qcF9hbmRfc2ppcy5jCmluZGV4IDM4MTFhMTI0YTQ5Li4wODJjODAz YThlYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWIvY29udmVyc2lvbl9wcm9jcy9l dWNfanBfYW5kX3NqaXMvZXVjX2pwX2FuZF9zamlzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv bWIvY29udmVyc2lvbl9wcm9jcy9ldWNfanBfYW5kX3NqaXMvZXVjX2pwX2FuZF9zamlzLmMKQEAg LTEsNiArMSw2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCi0gKgkgIEVVQ19KUCwgU0pJUyBh bmQgTVVMRV9JTlRFUk5BTAorICoJICBFVUNfSlAgYW5kIFNKSVMKICAqCiAgKiBQb3J0aW9ucyBD b3B5cmlnaHQgKGMpIDE5OTYtMjAyNiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3Jv dXAKICAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVy c2l0eSBvZiBDYWxpZm9ybmlhCkBAIC0zNCwxMCArMzQsNiBAQCBQR19NT0RVTEVfTUFHSUNfRVhU KAogCiBQR19GVU5DVElPTl9JTkZPX1YxKGV1Y19qcF90b19zamlzKTsKIFBHX0ZVTkNUSU9OX0lO Rk9fVjEoc2ppc190b19ldWNfanApOwotUEdfRlVOQ1RJT05fSU5GT19WMShldWNfanBfdG9fbWlj KTsKLVBHX0ZVTkNUSU9OX0lORk9fVjEobWljX3RvX2V1Y19qcCk7Ci1QR19GVU5DVElPTl9JTkZP X1YxKHNqaXNfdG9fbWljKTsKLVBHX0ZVTkNUSU9OX0lORk9fVjEobWljX3RvX3NqaXMpOwogCiAv KiAtLS0tLS0tLS0tCiAgKiBjb252X3Byb2MoCkBAIC01MywxMCArNDksNiBAQCBQR19GVU5DVElP Tl9JTkZPX1YxKG1pY190b19zamlzKTsKICAqIC0tLS0tLS0tLS0KICAqLwogCi1zdGF0aWMgaW50 CXNqaXMybWljKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNqaXMsIHVuc2lnbmVkIGNoYXIgKnAsIGlu dCBsZW4sIGJvb2wgbm9FcnJvcik7Ci1zdGF0aWMgaW50CW1pYzJzamlzKGNvbnN0IHVuc2lnbmVk IGNoYXIgKm1pYywgdW5zaWduZWQgY2hhciAqcCwgaW50IGxlbiwgYm9vbCBub0Vycm9yKTsKLXN0 YXRpYyBpbnQJZXVjX2pwMm1pYyhjb25zdCB1bnNpZ25lZCBjaGFyICpldWMsIHVuc2lnbmVkIGNo YXIgKnAsIGludCBsZW4sIGJvb2wgbm9FcnJvcik7Ci1zdGF0aWMgaW50CW1pYzJldWNfanAoY29u c3QgdW5zaWduZWQgY2hhciAqbWljLCB1bnNpZ25lZCBjaGFyICpwLCBpbnQgbGVuLCBib29sIG5v RXJyb3IpOwogc3RhdGljIGludAlldWNfanAyc2ppcyhjb25zdCB1bnNpZ25lZCBjaGFyICpldWMs IHVuc2lnbmVkIGNoYXIgKnAsIGludCBsZW4sIGJvb2wgbm9FcnJvcik7CiBzdGF0aWMgaW50CXNq aXMyZXVjX2pwKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNqaXMsIHVuc2lnbmVkIGNoYXIgKnAsIGlu dCBsZW4sIGJvb2wgbm9FcnJvcik7CiAKQEAgLTkyLDQ0NCArODQsNiBAQCBzamlzX3RvX2V1Y19q cChQR19GVU5DVElPTl9BUkdTKQogCVBHX1JFVFVSTl9JTlQzMihjb252ZXJ0ZWQpOwogfQogCi1E YXR1bQotZXVjX2pwX3RvX21pYyhQR19GVU5DVElPTl9BUkdTKQotewotCXVuc2lnbmVkIGNoYXIg KnNyYyA9ICh1bnNpZ25lZCBjaGFyICopIFBHX0dFVEFSR19DU1RSSU5HKDIpOwotCXVuc2lnbmVk IGNoYXIgKmRlc3QgPSAodW5zaWduZWQgY2hhciAqKSBQR19HRVRBUkdfQ1NUUklORygzKTsKLQlp bnQJCQlsZW4gPSBQR19HRVRBUkdfSU5UMzIoNCk7Ci0JYm9vbAkJbm9FcnJvciA9IFBHX0dFVEFS R19CT09MKDUpOwotCWludAkJCWNvbnZlcnRlZDsKLQotCUNIRUNLX0VOQ09ESU5HX0NPTlZFUlNJ T05fQVJHUyhQR19FVUNfSlAsIFBHX01VTEVfSU5URVJOQUwpOwotCi0JY29udmVydGVkID0gZXVj X2pwMm1pYyhzcmMsIGRlc3QsIGxlbiwgbm9FcnJvcik7Ci0KLQlQR19SRVRVUk5fSU5UMzIoY29u dmVydGVkKTsKLX0KLQotRGF0dW0KLW1pY190b19ldWNfanAoUEdfRlVOQ1RJT05fQVJHUykKLXsK LQl1bnNpZ25lZCBjaGFyICpzcmMgPSAodW5zaWduZWQgY2hhciAqKSBQR19HRVRBUkdfQ1NUUklO RygyKTsKLQl1bnNpZ25lZCBjaGFyICpkZXN0ID0gKHVuc2lnbmVkIGNoYXIgKikgUEdfR0VUQVJH X0NTVFJJTkcoMyk7Ci0JaW50CQkJbGVuID0gUEdfR0VUQVJHX0lOVDMyKDQpOwotCWJvb2wJCW5v RXJyb3IgPSBQR19HRVRBUkdfQk9PTCg1KTsKLQlpbnQJCQljb252ZXJ0ZWQ7Ci0KLQlDSEVDS19F TkNPRElOR19DT05WRVJTSU9OX0FSR1MoUEdfTVVMRV9JTlRFUk5BTCwgUEdfRVVDX0pQKTsKLQot CWNvbnZlcnRlZCA9IG1pYzJldWNfanAoc3JjLCBkZXN0LCBsZW4sIG5vRXJyb3IpOwotCi0JUEdf UkVUVVJOX0lOVDMyKGNvbnZlcnRlZCk7Ci19Ci0KLURhdHVtCi1zamlzX3RvX21pYyhQR19GVU5D VElPTl9BUkdTKQotewotCXVuc2lnbmVkIGNoYXIgKnNyYyA9ICh1bnNpZ25lZCBjaGFyICopIFBH X0dFVEFSR19DU1RSSU5HKDIpOwotCXVuc2lnbmVkIGNoYXIgKmRlc3QgPSAodW5zaWduZWQgY2hh ciAqKSBQR19HRVRBUkdfQ1NUUklORygzKTsKLQlpbnQJCQlsZW4gPSBQR19HRVRBUkdfSU5UMzIo NCk7Ci0JYm9vbAkJbm9FcnJvciA9IFBHX0dFVEFSR19CT09MKDUpOwotCWludAkJCWNvbnZlcnRl ZDsKLQotCUNIRUNLX0VOQ09ESU5HX0NPTlZFUlNJT05fQVJHUyhQR19TSklTLCBQR19NVUxFX0lO VEVSTkFMKTsKLQotCWNvbnZlcnRlZCA9IHNqaXMybWljKHNyYywgZGVzdCwgbGVuLCBub0Vycm9y KTsKLQotCVBHX1JFVFVSTl9JTlQzMihjb252ZXJ0ZWQpOwotfQotCi1EYXR1bQotbWljX3RvX3Nq aXMoUEdfRlVOQ1RJT05fQVJHUykKLXsKLQl1bnNpZ25lZCBjaGFyICpzcmMgPSAodW5zaWduZWQg Y2hhciAqKSBQR19HRVRBUkdfQ1NUUklORygyKTsKLQl1bnNpZ25lZCBjaGFyICpkZXN0ID0gKHVu c2lnbmVkIGNoYXIgKikgUEdfR0VUQVJHX0NTVFJJTkcoMyk7Ci0JaW50CQkJbGVuID0gUEdfR0VU QVJHX0lOVDMyKDQpOwotCWJvb2wJCW5vRXJyb3IgPSBQR19HRVRBUkdfQk9PTCg1KTsKLQlpbnQJ CQljb252ZXJ0ZWQ7Ci0KLQlDSEVDS19FTkNPRElOR19DT05WRVJTSU9OX0FSR1MoUEdfTVVMRV9J TlRFUk5BTCwgUEdfU0pJUyk7Ci0KLQljb252ZXJ0ZWQgPSBtaWMyc2ppcyhzcmMsIGRlc3QsIGxl biwgbm9FcnJvcik7Ci0KLQlQR19SRVRVUk5fSU5UMzIoY29udmVydGVkKTsKLX0KLQotLyoKLSAq IFNKSVMgLS0tPiBNSUMKLSAqLwotc3RhdGljIGludAotc2ppczJtaWMoY29uc3QgdW5zaWduZWQg Y2hhciAqc2ppcywgdW5zaWduZWQgY2hhciAqcCwgaW50IGxlbiwgYm9vbCBub0Vycm9yKQotewot CWNvbnN0IHVuc2lnbmVkIGNoYXIgKnN0YXJ0ID0gc2ppczsKLQlpbnQJCQljMSwKLQkJCQljMiwK LQkJCQlpLAotCQkJCWssCi0JCQkJazI7Ci0KLQl3aGlsZSAobGVuID4gMCkKLQl7Ci0JCWMxID0g KnNqaXM7Ci0JCWlmIChjMSA+PSAweGExICYmIGMxIDw9IDB4ZGYpCi0JCXsKLQkJCS8qIEpJUyBY MDIwMSAoMSBieXRlIGthbmEpICovCi0JCQkqcCsrID0gTENfSklTWDAyMDFLOwotCQkJKnArKyA9 IGMxOwotCQkJc2ppcysrOwotCQkJbGVuLS07Ci0JCX0KLQkJZWxzZSBpZiAoSVNfSElHSEJJVF9T RVQoYzEpKQotCQl7Ci0JCQkvKgotCQkJICogSklTIFgwMjA4LCBYMDIxMiwgdXNlciBkZWZpbmVk IGV4dGVuZGVkIGNoYXJhY3RlcnMKLQkJCSAqLwotCQkJaWYgKGxlbiA8IDIgfHwgIUlTU0pJU0hF QUQoYzEpIHx8ICFJU1NKSVNUQUlMKHNqaXNbMV0pKQotCQkJewotCQkJCWlmIChub0Vycm9yKQot CQkJCQlicmVhazsKLQkJCQlyZXBvcnRfaW52YWxpZF9lbmNvZGluZyhQR19TSklTLCAoY29uc3Qg Y2hhciAqKSBzamlzLCBsZW4pOwotCQkJfQotCQkJYzIgPSBzamlzWzFdOwotCQkJayA9IChjMSA8 PCA4KSArIGMyOwotCQkJaWYgKGsgPj0gMHhlZDQwICYmIGsgPCAweGYwNDApCi0JCQl7Ci0JCQkJ LyogTkVDIHNlbGVjdGlvbiBJQk0ga2FuamkgKi8KLQkJCQlmb3IgKGkgPSAwOzsgaSsrKQotCQkJ CXsKLQkJCQkJazIgPSBpYm1rYW5qaVtpXS5uZWM7Ci0JCQkJCWlmIChrMiA9PSAweGZmZmYpCi0J CQkJCQlicmVhazsKLQkJCQkJaWYgKGsyID09IGspCi0JCQkJCXsKLQkJCQkJCWsgPSBpYm1rYW5q aVtpXS5zamlzOwotCQkJCQkJYzEgPSAoayA+PiA4KSAmIDB4ZmY7Ci0JCQkJCQljMiA9IGsgJiAw eGZmOwotCQkJCQl9Ci0JCQkJfQotCQkJfQotCi0JCQlpZiAoayA8IDB4ZWIzZikKLQkJCXsKLQkJ CQkvKiBKSVMgWDAyMDggKi8KLQkJCQkqcCsrID0gTENfSklTWDAyMDg7Ci0JCQkJKnArKyA9ICgo YzEgJiAweDNmKSA8PCAxKSArIDB4OWYgKyAoYzIgPiAweDllKTsKLQkJCQkqcCsrID0gYzIgKyAo KGMyID4gMHg5ZSkgPyAyIDogMHg2MCkgKyAoYzIgPCAweDgwKTsKLQkJCX0KLQkJCWVsc2UgaWYg KChrID49IDB4ZWI0MCAmJiBrIDwgMHhmMDQwKSB8fCAoayA+PSAweGZjNGMgJiYgayA8PSAweGZj ZmMpKQotCQkJewotCQkJCS8qIE5FQyBzZWxlY3Rpb24gSUJNIGthbmppIC0gT3RoZXIgdW5kZWNp ZGVkIGp1c3RpY2UgKi8KLQkJCQkqcCsrID0gTENfSklTWDAyMDg7Ci0JCQkJKnArKyA9IFBHRVVD QUxUQ09ERSA+PiA4OwotCQkJCSpwKysgPSBQR0VVQ0FMVENPREUgJiAweGZmOwotCQkJfQotCQkJ ZWxzZSBpZiAoayA+PSAweGYwNDAgJiYgayA8IDB4ZjU0MCkKLQkJCXsKLQkJCQkvKgotCQkJCSAq IFVEQzEgbWFwcGluZyB0byBYMDIwOCA4NSBrdSAtIDk0IGt1IEpJUyBjb2RlIDB4NzUyMSAtCi0J CQkJICogMHg3ZTdlIEVVQyAweGY1YTEgLSAweGZlZmUKLQkJCQkgKi8KLQkJCQkqcCsrID0gTENf SklTWDAyMDg7Ci0JCQkJYzEgLT0gMHg2ZjsKLQkJCQkqcCsrID0gKChjMSAmIDB4M2YpIDw8IDEp ICsgMHhmMyArIChjMiA+IDB4OWUpOwotCQkJCSpwKysgPSBjMiArICgoYzIgPiAweDllKSA/IDIg OiAweDYwKSArIChjMiA8IDB4ODApOwotCQkJfQotCQkJZWxzZSBpZiAoayA+PSAweGY1NDAgJiYg ayA8IDB4ZmE0MCkKLQkJCXsKLQkJCQkvKgotCQkJCSAqIFVEQzIgbWFwcGluZyB0byBYMDIxMiA4 NSBrdSAtIDk0IGt1IEpJUyBjb2RlIDB4NzUyMSAtCi0JCQkJICogMHg3ZTdlIEVVQyAweDhmZjVh MSAtIDB4OGZmZWZlCi0JCQkJICovCi0JCQkJKnArKyA9IExDX0pJU1gwMjEyOwotCQkJCWMxIC09 IDB4NzQ7Ci0JCQkJKnArKyA9ICgoYzEgJiAweDNmKSA8PCAxKSArIDB4ZjMgKyAoYzIgPiAweDll KTsKLQkJCQkqcCsrID0gYzIgKyAoKGMyID4gMHg5ZSkgPyAyIDogMHg2MCkgKyAoYzIgPCAweDgw KTsKLQkJCX0KLQkJCWVsc2UgaWYgKGsgPj0gMHhmYTQwKQotCQkJewotCQkJCS8qCi0JCQkJICog bWFwcGluZyBJQk0ga2FuamkgdG8gWDAyMDggYW5kIFgwMjEyCi0JCQkJICovCi0JCQkJZm9yIChp ID0gMDs7IGkrKykKLQkJCQl7Ci0JCQkJCWsyID0gaWJta2FuamlbaV0uc2ppczsKLQkJCQkJaWYg KGsyID09IDB4ZmZmZikKLQkJCQkJCWJyZWFrOwotCQkJCQlpZiAoazIgPT0gaykKLQkJCQkJewot CQkJCQkJayA9IGlibWthbmppW2ldLmV1YzsKLQkJCQkJCWlmIChrID49IDB4OGYwMDAwKQotCQkJ CQkJewotCQkJCQkJCSpwKysgPSBMQ19KSVNYMDIxMjsKLQkJCQkJCQkqcCsrID0gMHg4MCB8ICgo ayAmIDB4ZmYwMCkgPj4gOCk7Ci0JCQkJCQkJKnArKyA9IDB4ODAgfCAoayAmIDB4ZmYpOwotCQkJ CQkJfQotCQkJCQkJZWxzZQotCQkJCQkJewotCQkJCQkJCSpwKysgPSBMQ19KSVNYMDIwODsKLQkJ CQkJCQkqcCsrID0gMHg4MCB8IChrID4+IDgpOwotCQkJCQkJCSpwKysgPSAweDgwIHwgKGsgJiAw eGZmKTsKLQkJCQkJCX0KLQkJCQkJfQotCQkJCX0KLQkJCX0KLQkJCXNqaXMgKz0gMjsKLQkJCWxl biAtPSAyOwotCQl9Ci0JCWVsc2UKLQkJewkJCQkJCS8qIHNob3VsZCBiZSBBU0NJSSAqLwotCQkJ aWYgKGMxID09IDApCi0JCQl7Ci0JCQkJaWYgKG5vRXJyb3IpCi0JCQkJCWJyZWFrOwotCQkJCXJl cG9ydF9pbnZhbGlkX2VuY29kaW5nKFBHX1NKSVMsIChjb25zdCBjaGFyICopIHNqaXMsIGxlbik7 Ci0JCQl9Ci0JCQkqcCsrID0gYzE7Ci0JCQlzamlzKys7Ci0JCQlsZW4tLTsKLQkJfQotCX0KLQkq cCA9ICdcMCc7Ci0KLQlyZXR1cm4gc2ppcyAtIHN0YXJ0OwotfQotCi0vKgotICogTUlDIC0tLT4g U0pJUwotICovCi1zdGF0aWMgaW50Ci1taWMyc2ppcyhjb25zdCB1bnNpZ25lZCBjaGFyICptaWMs IHVuc2lnbmVkIGNoYXIgKnAsIGludCBsZW4sIGJvb2wgbm9FcnJvcikKLXsKLQljb25zdCB1bnNp Z25lZCBjaGFyICpzdGFydCA9IG1pYzsKLQlpbnQJCQljMSwKLQkJCQljMiwKLQkJCQlrLAotCQkJ CWw7Ci0KLQl3aGlsZSAobGVuID4gMCkKLQl7Ci0JCWMxID0gKm1pYzsKLQkJaWYgKCFJU19ISUdI QklUX1NFVChjMSkpCi0JCXsKLQkJCS8qIEFTQ0lJICovCi0JCQlpZiAoYzEgPT0gMCkKLQkJCXsK LQkJCQlpZiAobm9FcnJvcikKLQkJCQkJYnJlYWs7Ci0JCQkJcmVwb3J0X2ludmFsaWRfZW5jb2Rp bmcoUEdfTVVMRV9JTlRFUk5BTCwKLQkJCQkJCQkJCQkoY29uc3QgY2hhciAqKSBtaWMsIGxlbik7 Ci0JCQl9Ci0JCQkqcCsrID0gYzE7Ci0JCQltaWMrKzsKLQkJCWxlbi0tOwotCQkJY29udGludWU7 Ci0JCX0KLQkJbCA9IHBnX2VuY29kaW5nX3ZlcmlmeW1iY2hhcihQR19NVUxFX0lOVEVSTkFMLCAo Y29uc3QgY2hhciAqKSBtaWMsIGxlbik7Ci0JCWlmIChsIDwgMCkKLQkJewotCQkJaWYgKG5vRXJy b3IpCi0JCQkJYnJlYWs7Ci0JCQlyZXBvcnRfaW52YWxpZF9lbmNvZGluZyhQR19NVUxFX0lOVEVS TkFMLAotCQkJCQkJCQkJKGNvbnN0IGNoYXIgKikgbWljLCBsZW4pOwotCQl9Ci0JCWlmIChjMSA9 PSBMQ19KSVNYMDIwMUspCi0JCQkqcCsrID0gbWljWzFdOwotCQllbHNlIGlmIChjMSA9PSBMQ19K SVNYMDIwOCkKLQkJewotCQkJYzEgPSBtaWNbMV07Ci0JCQljMiA9IG1pY1syXTsKLQkJCWsgPSAo YzEgPDwgOCkgfCAoYzIgJiAweGZmKTsKLQkJCWlmIChrID49IDB4ZjVhMSkKLQkJCXsKLQkJCQkv KiBVREMxICovCi0JCQkJYzEgLT0gMHg1NDsKLQkJCQkqcCsrID0gKChjMSAtIDB4YTEpID4+IDEp ICsgKChjMSA8IDB4ZGYpID8gMHg4MSA6IDB4YzEpICsgMHg2ZjsKLQkJCX0KLQkJCWVsc2UKLQkJ CQkqcCsrID0gKChjMSAtIDB4YTEpID4+IDEpICsgKChjMSA8IDB4ZGYpID8gMHg4MSA6IDB4YzEp OwotCQkJKnArKyA9IGMyIC0gKChjMSAmIDEpID8gKChjMiA8IDB4ZTApID8gMHg2MSA6IDB4NjAp IDogMik7Ci0JCX0KLQkJZWxzZSBpZiAoYzEgPT0gTENfSklTWDAyMTIpCi0JCXsKLQkJCWludAkJ CWksCi0JCQkJCQlrMjsKLQotCQkJYzEgPSBtaWNbMV07Ci0JCQljMiA9IG1pY1syXTsKLQkJCWsg PSBjMSA8PCA4IHwgYzI7Ci0JCQlpZiAoayA+PSAweGY1YTEpCi0JCQl7Ci0JCQkJLyogVURDMiAq LwotCQkJCWMxIC09IDB4NTQ7Ci0JCQkJKnArKyA9ICgoYzEgLSAweGExKSA+PiAxKSArICgoYzEg PCAweGRmKSA/IDB4ODEgOiAweGMxKSArIDB4NzQ7Ci0JCQkJKnArKyA9IGMyIC0gKChjMSAmIDEp ID8gKChjMiA8IDB4ZTApID8gMHg2MSA6IDB4NjApIDogMik7Ci0JCQl9Ci0JCQllbHNlCi0JCQl7 Ci0JCQkJLyogSUJNIGthbmppICovCi0JCQkJZm9yIChpID0gMDs7IGkrKykKLQkJCQl7Ci0JCQkJ CWsyID0gaWJta2FuamlbaV0uZXVjICYgMHhmZmZmOwotCQkJCQlpZiAoazIgPT0gMHhmZmZmKQot CQkJCQl7Ci0JCQkJCQkqcCsrID0gUEdTSklTQUxUQ09ERSA+PiA4OwotCQkJCQkJKnArKyA9IFBH U0pJU0FMVENPREUgJiAweGZmOwotCQkJCQkJYnJlYWs7Ci0JCQkJCX0KLQkJCQkJaWYgKGsyID09 IGspCi0JCQkJCXsKLQkJCQkJCWsgPSBpYm1rYW5qaVtpXS5zamlzOwotCQkJCQkJKnArKyA9IGsg Pj4gODsKLQkJCQkJCSpwKysgPSBrICYgMHhmZjsKLQkJCQkJCWJyZWFrOwotCQkJCQl9Ci0JCQkJ fQotCQkJfQotCQl9Ci0JCWVsc2UKLQkJewotCQkJaWYgKG5vRXJyb3IpCi0JCQkJYnJlYWs7Ci0J CQlyZXBvcnRfdW50cmFuc2xhdGFibGVfY2hhcihQR19NVUxFX0lOVEVSTkFMLCBQR19TSklTLAot CQkJCQkJCQkJICAgKGNvbnN0IGNoYXIgKikgbWljLCBsZW4pOwotCQl9Ci0JCW1pYyArPSBsOwot CQlsZW4gLT0gbDsKLQl9Ci0JKnAgPSAnXDAnOwotCi0JcmV0dXJuIG1pYyAtIHN0YXJ0OwotfQot Ci0vKgotICogRVVDX0pQIC0tLT4gTUlDCi0gKi8KLXN0YXRpYyBpbnQKLWV1Y19qcDJtaWMoY29u c3QgdW5zaWduZWQgY2hhciAqZXVjLCB1bnNpZ25lZCBjaGFyICpwLCBpbnQgbGVuLCBib29sIG5v RXJyb3IpCi17Ci0JY29uc3QgdW5zaWduZWQgY2hhciAqc3RhcnQgPSBldWM7Ci0JaW50CQkJYzE7 Ci0JaW50CQkJbDsKLQotCXdoaWxlIChsZW4gPiAwKQotCXsKLQkJYzEgPSAqZXVjOwotCQlpZiAo IUlTX0hJR0hCSVRfU0VUKGMxKSkKLQkJewotCQkJLyogQVNDSUkgKi8KLQkJCWlmIChjMSA9PSAw KQotCQkJewotCQkJCWlmIChub0Vycm9yKQotCQkJCQlicmVhazsKLQkJCQlyZXBvcnRfaW52YWxp ZF9lbmNvZGluZyhQR19FVUNfSlAsCi0JCQkJCQkJCQkJKGNvbnN0IGNoYXIgKikgZXVjLCBsZW4p OwotCQkJfQotCQkJKnArKyA9IGMxOwotCQkJZXVjKys7Ci0JCQlsZW4tLTsKLQkJCWNvbnRpbnVl OwotCQl9Ci0JCWwgPSBwZ19lbmNvZGluZ192ZXJpZnltYmNoYXIoUEdfRVVDX0pQLCAoY29uc3Qg Y2hhciAqKSBldWMsIGxlbik7Ci0JCWlmIChsIDwgMCkKLQkJewotCQkJaWYgKG5vRXJyb3IpCi0J CQkJYnJlYWs7Ci0JCQlyZXBvcnRfaW52YWxpZF9lbmNvZGluZyhQR19FVUNfSlAsCi0JCQkJCQkJ CQkoY29uc3QgY2hhciAqKSBldWMsIGxlbik7Ci0JCX0KLQkJaWYgKGMxID09IFNTMikKLQkJewkJ CQkJCS8qIDEgYnl0ZSBrYW5hPyAqLwotCQkJKnArKyA9IExDX0pJU1gwMjAxSzsKLQkJCSpwKysg PSBldWNbMV07Ci0JCX0KLQkJZWxzZSBpZiAoYzEgPT0gU1MzKQotCQl7CQkJCQkJLyogSklTIFgw MjEyIGthbmppPyAqLwotCQkJKnArKyA9IExDX0pJU1gwMjEyOwotCQkJKnArKyA9IGV1Y1sxXTsK LQkJCSpwKysgPSBldWNbMl07Ci0JCX0KLQkJZWxzZQotCQl7CQkJCQkJLyoga2Fuamk/ICovCi0J CQkqcCsrID0gTENfSklTWDAyMDg7Ci0JCQkqcCsrID0gYzE7Ci0JCQkqcCsrID0gZXVjWzFdOwot CQl9Ci0JCWV1YyArPSBsOwotCQlsZW4gLT0gbDsKLQl9Ci0JKnAgPSAnXDAnOwotCi0JcmV0dXJu IGV1YyAtIHN0YXJ0OwotfQotCi0vKgotICogTUlDIC0tLT4gRVVDX0pQCi0gKi8KLXN0YXRpYyBp bnQKLW1pYzJldWNfanAoY29uc3QgdW5zaWduZWQgY2hhciAqbWljLCB1bnNpZ25lZCBjaGFyICpw LCBpbnQgbGVuLCBib29sIG5vRXJyb3IpCi17Ci0JY29uc3QgdW5zaWduZWQgY2hhciAqc3RhcnQg PSBtaWM7Ci0JaW50CQkJYzE7Ci0JaW50CQkJbDsKLQotCXdoaWxlIChsZW4gPiAwKQotCXsKLQkJ YzEgPSAqbWljOwotCQlpZiAoIUlTX0hJR0hCSVRfU0VUKGMxKSkKLQkJewotCQkJLyogQVNDSUkg Ki8KLQkJCWlmIChjMSA9PSAwKQotCQkJewotCQkJCWlmIChub0Vycm9yKQotCQkJCQlicmVhazsK LQkJCQlyZXBvcnRfaW52YWxpZF9lbmNvZGluZyhQR19NVUxFX0lOVEVSTkFMLAotCQkJCQkJCQkJ CShjb25zdCBjaGFyICopIG1pYywgbGVuKTsKLQkJCX0KLQkJCSpwKysgPSBjMTsKLQkJCW1pYysr OwotCQkJbGVuLS07Ci0JCQljb250aW51ZTsKLQkJfQotCQlsID0gcGdfZW5jb2RpbmdfdmVyaWZ5 bWJjaGFyKFBHX01VTEVfSU5URVJOQUwsIChjb25zdCBjaGFyICopIG1pYywgbGVuKTsKLQkJaWYg KGwgPCAwKQotCQl7Ci0JCQlpZiAobm9FcnJvcikKLQkJCQlicmVhazsKLQkJCXJlcG9ydF9pbnZh bGlkX2VuY29kaW5nKFBHX01VTEVfSU5URVJOQUwsCi0JCQkJCQkJCQkoY29uc3QgY2hhciAqKSBt aWMsIGxlbik7Ci0JCX0KLQkJaWYgKGMxID09IExDX0pJU1gwMjAxSykKLQkJewotCQkJKnArKyA9 IFNTMjsKLQkJCSpwKysgPSBtaWNbMV07Ci0JCX0KLQkJZWxzZSBpZiAoYzEgPT0gTENfSklTWDAy MTIpCi0JCXsKLQkJCSpwKysgPSBTUzM7Ci0JCQkqcCsrID0gbWljWzFdOwotCQkJKnArKyA9IG1p Y1syXTsKLQkJfQotCQllbHNlIGlmIChjMSA9PSBMQ19KSVNYMDIwOCkKLQkJewotCQkJKnArKyA9 IG1pY1sxXTsKLQkJCSpwKysgPSBtaWNbMl07Ci0JCX0KLQkJZWxzZQotCQl7Ci0JCQlpZiAobm9F cnJvcikKLQkJCQlicmVhazsKLQkJCXJlcG9ydF91bnRyYW5zbGF0YWJsZV9jaGFyKFBHX01VTEVf SU5URVJOQUwsIFBHX0VVQ19KUCwKLQkJCQkJCQkJCSAgIChjb25zdCBjaGFyICopIG1pYywgbGVu KTsKLQkJfQotCQltaWMgKz0gbDsKLQkJbGVuIC09IGw7Ci0JfQotCSpwID0gJ1wwJzsKLQotCXJl dHVybiBtaWMgLSBzdGFydDsKLX0KLQogLyoKICAqIEVVQ19KUCAtPiBTSklTCiAgKi8KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21iL2NvbnZlcnNpb25fcHJvY3MvZXVjX2tyX2FuZF9t aWMvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC91dGlscy9tYi9jb252ZXJzaW9uX3Byb2NzL2V1Y19r cl9hbmRfbWljL01ha2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDNiMDgy YmQ1Zi4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWIvY29udmVyc2lvbl9w cm9jcy9ldWNfa3JfYW5kX21pYy9NYWtlZmlsZQorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAg QEAKLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0jIHNyYy9iYWNrZW5kL3V0aWxzL21iL2NvbnZlcnNp b25fcHJvY3MvZXVjX2tyX2FuZF9taWMvTWFrZWZpbGUKLSMKLSMtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1z dWJkaXIgPSBzcmMvYmFja2VuZC91dGlscy9tYi9jb252ZXJzaW9uX3Byb2NzL2V1Y19rcl9hbmRf bWljCi10b3BfYnVpbGRkaXIgPSAuLi8uLi8uLi8uLi8uLi8uLgotaW5jbHVkZSAkKHRvcF9idWls ZGRpcikvc3JjL01ha2VmaWxlLmdsb2JhbAotCi1OQU1FCQk9IGV1Y19rcl9hbmRfbWljCi1QR0ZJ TEVERVNDCT0gImV1Y19rciA8LT4gbWljIHRleHQgY29udmVyc2lvbnMiCi0KLWluY2x1ZGUgJChz cmNkaXIpLy4uL3Byb2MubWsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21iL2NvbnZl cnNpb25fcHJvY3MvZXVjX2tyX2FuZF9taWMvZXVjX2tyX2FuZF9taWMuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL21iL2NvbnZlcnNpb25fcHJvY3MvZXVjX2tyX2FuZF9taWMvZXVjX2tyX2FuZF9taWMu YwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I5ZTMxNzQxZmMuLjAwMDAwMDAwMDAw Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21iL2NvbnZlcnNpb25fcHJvY3MvZXVjX2tyX2FuZF9t aWMvZXVjX2tyX2FuZF9taWMuYworKysgL2Rldi9udWxsCkBAIC0xLDE3NyArMCwwIEBACi0vKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSAqCi0gKgkgIEVVQ19LUiBhbmQgTVVMRV9JTlRFUk5BTAotICoKLSAq IFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI2LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZl bG9wbWVudCBHcm91cAotICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9m IHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKLSAqCi0gKiBJREVOVElGSUNBVElPTgotICoJ ICBzcmMvYmFja2VuZC91dGlscy9tYi9jb252ZXJzaW9uX3Byb2NzL2V1Y19rcl9hbmRfbWljL2V1 Y19rcl9hbmRfbWljLmMKLSAqCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqLwotCi0jaW5jbHVkZSAi cG9zdGdyZXMuaCIKLSNpbmNsdWRlICJmbWdyLmgiCi0jaW5jbHVkZSAibWIvcGdfd2NoYXIuaCIK LQotUEdfTU9EVUxFX01BR0lDX0VYVCgKLQkJCQkJLm5hbWUgPSAiZXVjX2tyX2FuZF9taWMiLAot CQkJCQkudmVyc2lvbiA9IFBHX1ZFUlNJT04KLSk7Ci0KLVBHX0ZVTkNUSU9OX0lORk9fVjEoZXVj X2tyX3RvX21pYyk7Ci1QR19GVU5DVElPTl9JTkZPX1YxKG1pY190b19ldWNfa3IpOwotCi0vKiAt LS0tLS0tLS0tCi0gKiBjb252X3Byb2MoCi0gKgkJSU5URUdFUiwJLS0gc291cmNlIGVuY29kaW5n IGlkCi0gKgkJSU5URUdFUiwJLS0gZGVzdGluYXRpb24gZW5jb2RpbmcgaWQKLSAqCQlDU1RSSU5H LAktLSBzb3VyY2Ugc3RyaW5nIChudWxsIHRlcm1pbmF0ZWQgQyBzdHJpbmcpCi0gKgkJQ1NUUklO RywJLS0gZGVzdGluYXRpb24gc3RyaW5nIChudWxsIHRlcm1pbmF0ZWQgQyBzdHJpbmcpCi0gKgkJ SU5URUdFUiwJLS0gc291cmNlIHN0cmluZyBsZW5ndGgKLSAqCQlCT09MCQktLSBpZiB0cnVlLCBk b24ndCB0aHJvdyBhbiBlcnJvciBpZiBjb252ZXJzaW9uIGZhaWxzCi0gKiApIHJldHVybnMgSU5U RUdFUjsKLSAqCi0gKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgc3VjY2Vzc2Z1bGx5IGNv bnZlcnRlZC4KLSAqIC0tLS0tLS0tLS0KLSAqLwotCi1zdGF0aWMgaW50CWV1Y19rcjJtaWMoY29u c3QgdW5zaWduZWQgY2hhciAqZXVjLCB1bnNpZ25lZCBjaGFyICpwLCBpbnQgbGVuLCBib29sIG5v RXJyb3IpOwotc3RhdGljIGludAltaWMyZXVjX2tyKGNvbnN0IHVuc2lnbmVkIGNoYXIgKm1pYywg dW5zaWduZWQgY2hhciAqcCwgaW50IGxlbiwgYm9vbCBub0Vycm9yKTsKLQotRGF0dW0KLWV1Y19r cl90b19taWMoUEdfRlVOQ1RJT05fQVJHUykKLXsKLQl1bnNpZ25lZCBjaGFyICpzcmMgPSAodW5z aWduZWQgY2hhciAqKSBQR19HRVRBUkdfQ1NUUklORygyKTsKLQl1bnNpZ25lZCBjaGFyICpkZXN0 ID0gKHVuc2lnbmVkIGNoYXIgKikgUEdfR0VUQVJHX0NTVFJJTkcoMyk7Ci0JaW50CQkJbGVuID0g UEdfR0VUQVJHX0lOVDMyKDQpOwotCWJvb2wJCW5vRXJyb3IgPSBQR19HRVRBUkdfQk9PTCg1KTsK LQlpbnQJCQljb252ZXJ0ZWQ7Ci0KLQlDSEVDS19FTkNPRElOR19DT05WRVJTSU9OX0FSR1MoUEdf RVVDX0tSLCBQR19NVUxFX0lOVEVSTkFMKTsKLQotCWNvbnZlcnRlZCA9IGV1Y19rcjJtaWMoc3Jj LCBkZXN0LCBsZW4sIG5vRXJyb3IpOwotCi0JUEdfUkVUVVJOX0lOVDMyKGNvbnZlcnRlZCk7Ci19 Ci0KLURhdHVtCi1taWNfdG9fZXVjX2tyKFBHX0ZVTkNUSU9OX0FSR1MpCi17Ci0JdW5zaWduZWQg Y2hhciAqc3JjID0gKHVuc2lnbmVkIGNoYXIgKikgUEdfR0VUQVJHX0NTVFJJTkcoMik7Ci0JdW5z aWduZWQgY2hhciAqZGVzdCA9ICh1bnNpZ25lZCBjaGFyICopIFBHX0dFVEFSR19DU1RSSU5HKDMp OwotCWludAkJCWxlbiA9IFBHX0dFVEFSR19JTlQzMig0KTsKLQlib29sCQlub0Vycm9yID0gUEdf R0VUQVJHX0JPT0woNSk7Ci0JaW50CQkJY29udmVydGVkOwotCi0JQ0hFQ0tfRU5DT0RJTkdfQ09O VkVSU0lPTl9BUkdTKFBHX01VTEVfSU5URVJOQUwsIFBHX0VVQ19LUik7Ci0KLQljb252ZXJ0ZWQg PSBtaWMyZXVjX2tyKHNyYywgZGVzdCwgbGVuLCBub0Vycm9yKTsKLQotCVBHX1JFVFVSTl9JTlQz Mihjb252ZXJ0ZWQpOwotfQotCi0vKgotICogRVVDX0tSIC0tLT4gTUlDCi0gKi8KLXN0YXRpYyBp bnQKLWV1Y19rcjJtaWMoY29uc3QgdW5zaWduZWQgY2hhciAqZXVjLCB1bnNpZ25lZCBjaGFyICpw LCBpbnQgbGVuLCBib29sIG5vRXJyb3IpCi17Ci0JY29uc3QgdW5zaWduZWQgY2hhciAqc3RhcnQg PSBldWM7Ci0JaW50CQkJYzE7Ci0JaW50CQkJbDsKLQotCXdoaWxlIChsZW4gPiAwKQotCXsKLQkJ YzEgPSAqZXVjOwotCQlpZiAoSVNfSElHSEJJVF9TRVQoYzEpKQotCQl7Ci0JCQlsID0gcGdfZW5j b2RpbmdfdmVyaWZ5bWJjaGFyKFBHX0VVQ19LUiwgKGNvbnN0IGNoYXIgKikgZXVjLCBsZW4pOwot CQkJaWYgKGwgIT0gMikKLQkJCXsKLQkJCQlpZiAobm9FcnJvcikKLQkJCQkJYnJlYWs7Ci0JCQkJ cmVwb3J0X2ludmFsaWRfZW5jb2RpbmcoUEdfRVVDX0tSLAotCQkJCQkJCQkJCShjb25zdCBjaGFy ICopIGV1YywgbGVuKTsKLQkJCX0KLQkJCSpwKysgPSBMQ19LUzU2MDE7Ci0JCQkqcCsrID0gYzE7 Ci0JCQkqcCsrID0gZXVjWzFdOwotCQkJZXVjICs9IDI7Ci0JCQlsZW4gLT0gMjsKLQkJfQotCQll bHNlCi0JCXsJCQkJCQkvKiBzaG91bGQgYmUgQVNDSUkgKi8KLQkJCWlmIChjMSA9PSAwKQotCQkJ ewotCQkJCWlmIChub0Vycm9yKQotCQkJCQlicmVhazsKLQkJCQlyZXBvcnRfaW52YWxpZF9lbmNv ZGluZyhQR19FVUNfS1IsCi0JCQkJCQkJCQkJKGNvbnN0IGNoYXIgKikgZXVjLCBsZW4pOwotCQkJ fQotCQkJKnArKyA9IGMxOwotCQkJZXVjKys7Ci0JCQlsZW4tLTsKLQkJfQotCX0KLQkqcCA9ICdc MCc7Ci0KLQlyZXR1cm4gZXVjIC0gc3RhcnQ7Ci19Ci0KLS8qCi0gKiBNSUMgLS0tPiBFVUNfS1IK LSAqLwotc3RhdGljIGludAotbWljMmV1Y19rcihjb25zdCB1bnNpZ25lZCBjaGFyICptaWMsIHVu c2lnbmVkIGNoYXIgKnAsIGludCBsZW4sIGJvb2wgbm9FcnJvcikKLXsKLQljb25zdCB1bnNpZ25l ZCBjaGFyICpzdGFydCA9IG1pYzsKLQlpbnQJCQljMTsKLQlpbnQJCQlsOwotCi0Jd2hpbGUgKGxl biA+IDApCi0JewotCQljMSA9ICptaWM7Ci0JCWlmICghSVNfSElHSEJJVF9TRVQoYzEpKQotCQl7 Ci0JCQkvKiBBU0NJSSAqLwotCQkJaWYgKGMxID09IDApCi0JCQl7Ci0JCQkJaWYgKG5vRXJyb3Ip Ci0JCQkJCWJyZWFrOwotCQkJCXJlcG9ydF9pbnZhbGlkX2VuY29kaW5nKFBHX01VTEVfSU5URVJO QUwsCi0JCQkJCQkJCQkJKGNvbnN0IGNoYXIgKikgbWljLCBsZW4pOwotCQkJfQotCQkJKnArKyA9 IGMxOwotCQkJbWljKys7Ci0JCQlsZW4tLTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0JCWwgPSBwZ19l bmNvZGluZ192ZXJpZnltYmNoYXIoUEdfTVVMRV9JTlRFUk5BTCwgKGNvbnN0IGNoYXIgKikgbWlj LCBsZW4pOwotCQlpZiAobCA8IDApCi0JCXsKLQkJCWlmIChub0Vycm9yKQotCQkJCWJyZWFrOwot CQkJcmVwb3J0X2ludmFsaWRfZW5jb2RpbmcoUEdfTVVMRV9JTlRFUk5BTCwKLQkJCQkJCQkJCShj b25zdCBjaGFyICopIG1pYywgbGVuKTsKLQkJfQotCQlpZiAoYzEgPT0gTENfS1M1NjAxKQotCQl7 Ci0JCQkqcCsrID0gbWljWzFdOwotCQkJKnArKyA9IG1pY1syXTsKLQkJfQotCQllbHNlCi0JCXsK LQkJCWlmIChub0Vycm9yKQotCQkJCWJyZWFrOwotCQkJcmVwb3J0X3VudHJhbnNsYXRhYmxlX2No YXIoUEdfTVVMRV9JTlRFUk5BTCwgUEdfRVVDX0tSLAotCQkJCQkJCQkJICAgKGNvbnN0IGNoYXIg KikgbWljLCBsZW4pOwotCQl9Ci0JCW1pYyArPSBsOwotCQlsZW4gLT0gbDsKLQl9Ci0JKnAgPSAn XDAnOwotCi0JcmV0dXJuIG1pYyAtIHN0YXJ0OwotfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvbWIvY29udmVyc2lvbl9wcm9jcy9ldWNfdHdfYW5kX2JpZzUvYmlnNS5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvbWIvY29udmVyc2lvbl9wcm9jcy9ldWNfdHdfYW5kX2JpZzUvYmlnNS5jCmlu ZGV4IDY4Zjc2YWE4Y2I4Li5jODRjN2VkMGUzOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvbWIvY29udmVyc2lvbl9wcm9jcy9ldWNfdHdfYW5kX2JpZzUvYmlnNS5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL21iL2NvbnZlcnNpb25fcHJvY3MvZXVjX3R3X2FuZF9iaWc1L2JpZzUuYwpA QCAtMSw2ICsxLDUgQEAKIC8qCi0gKiBjb252ZXJzaW9uIGJldHdlZW4gQklHNSBhbmQgTXVsZSBJ bnRlcm5hbCBDb2RlKENOUyAxMTY2NDMtMTk5MgotICogcGxhbmUgMSBhbmQgcGxhbmUgMikuCisg KiBCSUc1IHN1cHBvcnQgZnVuY3Rpb25zIChDTlMgMTE2NjQzLTE5OTIgKiBwbGFuZSAxIGFuZCBw bGFuZSAyKS4KICAqIFRoaXMgcHJvZ3JhbSBpcyBwYXJ0aWFsbHkgY29waWVkIGZyb20gbHYoTXVs dGlsaW5ndWFsIGZpbGUgdmlld2VyKQogICogYW5kIHNsaWdodGx5IG1vZGlmaWVkLiBsdiBpcyB3 cml0dGVuIGFuZCBjb3B5cmlnaHRlZCBieSBOQVJJVEEgVG9taW8KICAqIChucnRAd2ViLmFkLmpw KS4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21iL2NvbnZlcnNpb25fcHJvY3MvZXVj X3R3X2FuZF9iaWc1L2V1Y190d19hbmRfYmlnNS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWIvY29u dmVyc2lvbl9wcm9jcy9ldWNfdHdfYW5kX2JpZzUvZXVjX3R3X2FuZF9iaWc1LmMKaW5kZXggOGRi M2M3OTZmMWEuLjRkYWM0OWIzYjkwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9tYi9j b252ZXJzaW9uX3Byb2NzL2V1Y190d19hbmRfYmlnNS9ldWNfdHdfYW5kX2JpZzUuYworKysgYi9z cmMvYmFja2VuZC91dGlscy9tYi9jb252ZXJzaW9uX3Byb2NzL2V1Y190d19hbmRfYmlnNS9ldWNf dHdfYW5kX2JpZzUuYwpAQCAtMSw2ICsxLDYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAq CSAgRVVDX1RXLCBCSUc1IGFuZCBNVUxFX0lOVEVSTkFMCisgKgkgIEVVQ19UVyBhbmQgQklHNQog ICoKICAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI2LCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAogICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdl bnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKQEAgLTIyLDEwICsyMiw2IEBAIFBH X01PRFVMRV9NQUdJQ19FWFQoCiAKIFBHX0ZVTkNUSU9OX0lORk9fVjEoZXVjX3R3X3RvX2JpZzUp OwogUEdfRlVOQ1RJT05fSU5GT19WMShiaWc1X3RvX2V1Y190dyk7Ci1QR19GVU5DVElPTl9JTkZP X1YxKGV1Y190d190b19taWMpOwotUEdfRlVOQ1RJT05fSU5GT19WMShtaWNfdG9fZXVjX3R3KTsK LVBHX0ZVTkNUSU9OX0lORk9fVjEoYmlnNV90b19taWMpOwotUEdfRlVOQ1RJT05fSU5GT19WMSht aWNfdG9fYmlnNSk7CiAKIC8qIC0tLS0tLS0tLS0KICAqIGNvbnZfcHJvYygKQEAgLTQzLDEwICsz OSw2IEBAIFBHX0ZVTkNUSU9OX0lORk9fVjEobWljX3RvX2JpZzUpOwogCiBzdGF0aWMgaW50CWV1 Y190dzJiaWc1KGNvbnN0IHVuc2lnbmVkIGNoYXIgKmV1YywgdW5zaWduZWQgY2hhciAqcCwgaW50 IGxlbiwgYm9vbCBub0Vycm9yKTsKIHN0YXRpYyBpbnQJYmlnNTJldWNfdHcoY29uc3QgdW5zaWdu ZWQgY2hhciAqYmlnNSwgdW5zaWduZWQgY2hhciAqcCwgaW50IGxlbiwgYm9vbCBub0Vycm9yKTsK LXN0YXRpYyBpbnQJYmlnNTJtaWMoY29uc3QgdW5zaWduZWQgY2hhciAqYmlnNSwgdW5zaWduZWQg Y2hhciAqcCwgaW50IGxlbiwgYm9vbCBub0Vycm9yKTsKLXN0YXRpYyBpbnQJbWljMmJpZzUoY29u c3QgdW5zaWduZWQgY2hhciAqbWljLCB1bnNpZ25lZCBjaGFyICpwLCBpbnQgbGVuLCBib29sIG5v RXJyb3IpOwotc3RhdGljIGludAlldWNfdHcybWljKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmV1Yywg dW5zaWduZWQgY2hhciAqcCwgaW50IGxlbiwgYm9vbCBub0Vycm9yKTsKLXN0YXRpYyBpbnQJbWlj MmV1Y190dyhjb25zdCB1bnNpZ25lZCBjaGFyICptaWMsIHVuc2lnbmVkIGNoYXIgKnAsIGludCBs ZW4sIGJvb2wgbm9FcnJvcik7CiAKIERhdHVtCiBldWNfdHdfdG9fYmlnNShQR19GVU5DVElPTl9B UkdTKQpAQCAtODAsNzQgKzcyLDYgQEAgYmlnNV90b19ldWNfdHcoUEdfRlVOQ1RJT05fQVJHUykK IAlQR19SRVRVUk5fSU5UMzIoY29udmVydGVkKTsKIH0KIAotRGF0dW0KLWV1Y190d190b19taWMo UEdfRlVOQ1RJT05fQVJHUykKLXsKLQl1bnNpZ25lZCBjaGFyICpzcmMgPSAodW5zaWduZWQgY2hh ciAqKSBQR19HRVRBUkdfQ1NUUklORygyKTsKLQl1bnNpZ25lZCBjaGFyICpkZXN0ID0gKHVuc2ln bmVkIGNoYXIgKikgUEdfR0VUQVJHX0NTVFJJTkcoMyk7Ci0JaW50CQkJbGVuID0gUEdfR0VUQVJH X0lOVDMyKDQpOwotCWJvb2wJCW5vRXJyb3IgPSBQR19HRVRBUkdfQk9PTCg1KTsKLQlpbnQJCQlj b252ZXJ0ZWQ7Ci0KLQlDSEVDS19FTkNPRElOR19DT05WRVJTSU9OX0FSR1MoUEdfRVVDX1RXLCBQ R19NVUxFX0lOVEVSTkFMKTsKLQotCWNvbnZlcnRlZCA9IGV1Y190dzJtaWMoc3JjLCBkZXN0LCBs ZW4sIG5vRXJyb3IpOwotCi0JUEdfUkVUVVJOX0lOVDMyKGNvbnZlcnRlZCk7Ci19Ci0KLURhdHVt Ci1taWNfdG9fZXVjX3R3KFBHX0ZVTkNUSU9OX0FSR1MpCi17Ci0JdW5zaWduZWQgY2hhciAqc3Jj ID0gKHVuc2lnbmVkIGNoYXIgKikgUEdfR0VUQVJHX0NTVFJJTkcoMik7Ci0JdW5zaWduZWQgY2hh ciAqZGVzdCA9ICh1bnNpZ25lZCBjaGFyICopIFBHX0dFVEFSR19DU1RSSU5HKDMpOwotCWludAkJ CWxlbiA9IFBHX0dFVEFSR19JTlQzMig0KTsKLQlib29sCQlub0Vycm9yID0gUEdfR0VUQVJHX0JP T0woNSk7Ci0JaW50CQkJY29udmVydGVkOwotCi0JQ0hFQ0tfRU5DT0RJTkdfQ09OVkVSU0lPTl9B UkdTKFBHX01VTEVfSU5URVJOQUwsIFBHX0VVQ19UVyk7Ci0KLQljb252ZXJ0ZWQgPSBtaWMyZXVj X3R3KHNyYywgZGVzdCwgbGVuLCBub0Vycm9yKTsKLQotCVBHX1JFVFVSTl9JTlQzMihjb252ZXJ0 ZWQpOwotfQotCi1EYXR1bQotYmlnNV90b19taWMoUEdfRlVOQ1RJT05fQVJHUykKLXsKLQl1bnNp Z25lZCBjaGFyICpzcmMgPSAodW5zaWduZWQgY2hhciAqKSBQR19HRVRBUkdfQ1NUUklORygyKTsK LQl1bnNpZ25lZCBjaGFyICpkZXN0ID0gKHVuc2lnbmVkIGNoYXIgKikgUEdfR0VUQVJHX0NTVFJJ TkcoMyk7Ci0JaW50CQkJbGVuID0gUEdfR0VUQVJHX0lOVDMyKDQpOwotCWJvb2wJCW5vRXJyb3Ig PSBQR19HRVRBUkdfQk9PTCg1KTsKLQlpbnQJCQljb252ZXJ0ZWQ7Ci0KLQlDSEVDS19FTkNPRElO R19DT05WRVJTSU9OX0FSR1MoUEdfQklHNSwgUEdfTVVMRV9JTlRFUk5BTCk7Ci0KLQljb252ZXJ0 ZWQgPSBiaWc1Mm1pYyhzcmMsIGRlc3QsIGxlbiwgbm9FcnJvcik7Ci0KLQlQR19SRVRVUk5fSU5U MzIoY29udmVydGVkKTsKLX0KLQotRGF0dW0KLW1pY190b19iaWc1KFBHX0ZVTkNUSU9OX0FSR1Mp Ci17Ci0JdW5zaWduZWQgY2hhciAqc3JjID0gKHVuc2lnbmVkIGNoYXIgKikgUEdfR0VUQVJHX0NT VFJJTkcoMik7Ci0JdW5zaWduZWQgY2hhciAqZGVzdCA9ICh1bnNpZ25lZCBjaGFyICopIFBHX0dF VEFSR19DU1RSSU5HKDMpOwotCWludAkJCWxlbiA9IFBHX0dFVEFSR19JTlQzMig0KTsKLQlib29s CQlub0Vycm9yID0gUEdfR0VUQVJHX0JPT0woNSk7Ci0JaW50CQkJY29udmVydGVkOwotCi0JQ0hF Q0tfRU5DT0RJTkdfQ09OVkVSU0lPTl9BUkdTKFBHX01VTEVfSU5URVJOQUwsIFBHX0JJRzUpOwot Ci0JY29udmVydGVkID0gbWljMmJpZzUoc3JjLCBkZXN0LCBsZW4sIG5vRXJyb3IpOwotCi0JUEdf UkVUVVJOX0lOVDMyKGNvbnZlcnRlZCk7Ci19Ci0KLQotLyoKLSAqIEVVQ19UVyAtLS0+IEJpZzUK LSAqLwogc3RhdGljIGludAogZXVjX3R3MmJpZzUoY29uc3QgdW5zaWduZWQgY2hhciAqZXVjLCB1 bnNpZ25lZCBjaGFyICpwLCBpbnQgbGVuLCBib29sIG5vRXJyb3IpCiB7CkBAIC0zMDMsMjgxICsy MjcsMyBAQCBiaWc1MmV1Y190dyhjb25zdCB1bnNpZ25lZCBjaGFyICpiaWc1LCB1bnNpZ25lZCBj aGFyICpwLCBpbnQgbGVuLCBib29sIG5vRXJyb3IpCiAKIAlyZXR1cm4gYmlnNSAtIHN0YXJ0Owog fQotCi0vKgotICogRVVDX1RXIC0tLT4gTUlDCi0gKi8KLXN0YXRpYyBpbnQKLWV1Y190dzJtaWMo Y29uc3QgdW5zaWduZWQgY2hhciAqZXVjLCB1bnNpZ25lZCBjaGFyICpwLCBpbnQgbGVuLCBib29s IG5vRXJyb3IpCi17Ci0JY29uc3QgdW5zaWduZWQgY2hhciAqc3RhcnQgPSBldWM7Ci0JaW50CQkJ YzE7Ci0JaW50CQkJbDsKLQotCXdoaWxlIChsZW4gPiAwKQotCXsKLQkJYzEgPSAqZXVjOwotCQlp ZiAoSVNfSElHSEJJVF9TRVQoYzEpKQotCQl7Ci0JCQlsID0gcGdfZW5jb2RpbmdfdmVyaWZ5bWJj aGFyKFBHX0VVQ19UVywgKGNvbnN0IGNoYXIgKikgZXVjLCBsZW4pOwotCQkJaWYgKGwgPCAwKQot CQkJewotCQkJCWlmIChub0Vycm9yKQotCQkJCQlicmVhazsKLQkJCQlyZXBvcnRfaW52YWxpZF9l bmNvZGluZyhQR19FVUNfVFcsCi0JCQkJCQkJCQkJKGNvbnN0IGNoYXIgKikgZXVjLCBsZW4pOwot CQkJfQotCQkJaWYgKGMxID09IFNTMikKLQkJCXsKLQkJCQljMSA9IGV1Y1sxXTsJLyogcGxhbmUg Tm8uICovCi0JCQkJaWYgKGMxID09IDB4YTEpCi0JCQkJCSpwKysgPSBMQ19DTlMxMTY0M18xOwot CQkJCWVsc2UgaWYgKGMxID09IDB4YTIpCi0JCQkJCSpwKysgPSBMQ19DTlMxMTY0M18yOwotCQkJ CWVsc2UKLQkJCQl7Ci0JCQkJCS8qIG90aGVyIHBsYW5lcyBhcmUgTVVMRSBwcml2YXRlIGNoYXJz ZXRzICovCi0JCQkJCSpwKysgPSBMQ1BSVjJfQjsKLQkJCQkJKnArKyA9IGMxIC0gMHhhMyArIExD X0NOUzExNjQzXzM7Ci0JCQkJfQotCQkJCSpwKysgPSBldWNbMl07Ci0JCQkJKnArKyA9IGV1Y1sz XTsKLQkJCX0KLQkJCWVsc2UKLQkJCXsJCQkJCS8qIENOUzExNjQzLTEgKi8KLQkJCQkqcCsrID0g TENfQ05TMTE2NDNfMTsKLQkJCQkqcCsrID0gYzE7Ci0JCQkJKnArKyA9IGV1Y1sxXTsKLQkJCX0K LQkJCWV1YyArPSBsOwotCQkJbGVuIC09IGw7Ci0JCX0KLQkJZWxzZQotCQl7CQkJCQkJLyogc2hv dWxkIGJlIEFTQ0lJICovCi0JCQlpZiAoYzEgPT0gMCkKLQkJCXsKLQkJCQlpZiAobm9FcnJvcikK LQkJCQkJYnJlYWs7Ci0JCQkJcmVwb3J0X2ludmFsaWRfZW5jb2RpbmcoUEdfRVVDX1RXLAotCQkJ CQkJCQkJCShjb25zdCBjaGFyICopIGV1YywgbGVuKTsKLQkJCX0KLQkJCSpwKysgPSBjMTsKLQkJ CWV1YysrOwotCQkJbGVuLS07Ci0JCX0KLQl9Ci0JKnAgPSAnXDAnOwotCi0JcmV0dXJuIGV1YyAt IHN0YXJ0OwotfQotCi0vKgotICogTUlDIC0tLT4gRVVDX1RXCi0gKi8KLXN0YXRpYyBpbnQKLW1p YzJldWNfdHcoY29uc3QgdW5zaWduZWQgY2hhciAqbWljLCB1bnNpZ25lZCBjaGFyICpwLCBpbnQg bGVuLCBib29sIG5vRXJyb3IpCi17Ci0JY29uc3QgdW5zaWduZWQgY2hhciAqc3RhcnQgPSBtaWM7 Ci0JaW50CQkJYzE7Ci0JaW50CQkJbDsKLQotCXdoaWxlIChsZW4gPiAwKQotCXsKLQkJYzEgPSAq bWljOwotCQlpZiAoIUlTX0hJR0hCSVRfU0VUKGMxKSkKLQkJewotCQkJLyogQVNDSUkgKi8KLQkJ CWlmIChjMSA9PSAwKQotCQkJewotCQkJCWlmIChub0Vycm9yKQotCQkJCQlicmVhazsKLQkJCQly ZXBvcnRfaW52YWxpZF9lbmNvZGluZyhQR19NVUxFX0lOVEVSTkFMLAotCQkJCQkJCQkJCShjb25z dCBjaGFyICopIG1pYywgbGVuKTsKLQkJCX0KLQkJCSpwKysgPSBjMTsKLQkJCW1pYysrOwotCQkJ bGVuLS07Ci0JCQljb250aW51ZTsKLQkJfQotCQlsID0gcGdfZW5jb2RpbmdfdmVyaWZ5bWJjaGFy KFBHX01VTEVfSU5URVJOQUwsIChjb25zdCBjaGFyICopIG1pYywgbGVuKTsKLQkJaWYgKGwgPCAw KQotCQl7Ci0JCQlpZiAobm9FcnJvcikKLQkJCQlicmVhazsKLQkJCXJlcG9ydF9pbnZhbGlkX2Vu Y29kaW5nKFBHX01VTEVfSU5URVJOQUwsCi0JCQkJCQkJCQkoY29uc3QgY2hhciAqKSBtaWMsIGxl bik7Ci0JCX0KLQkJaWYgKGMxID09IExDX0NOUzExNjQzXzEpCi0JCXsKLQkJCSpwKysgPSBtaWNb MV07Ci0JCQkqcCsrID0gbWljWzJdOwotCQl9Ci0JCWVsc2UgaWYgKGMxID09IExDX0NOUzExNjQz XzIpCi0JCXsKLQkJCSpwKysgPSBTUzI7Ci0JCQkqcCsrID0gMHhhMjsKLQkJCSpwKysgPSBtaWNb MV07Ci0JCQkqcCsrID0gbWljWzJdOwotCQl9Ci0JCWVsc2UgaWYgKGMxID09IExDUFJWMl9CICYm Ci0JCQkJIG1pY1sxXSA+PSBMQ19DTlMxMTY0M18zICYmIG1pY1sxXSA8PSBMQ19DTlMxMTY0M183 KQotCQl7Ci0JCQkqcCsrID0gU1MyOwotCQkJKnArKyA9IG1pY1sxXSAtIExDX0NOUzExNjQzXzMg KyAweGEzOwotCQkJKnArKyA9IG1pY1syXTsKLQkJCSpwKysgPSBtaWNbM107Ci0JCX0KLQkJZWxz ZQotCQl7Ci0JCQlpZiAobm9FcnJvcikKLQkJCQlicmVhazsKLQkJCXJlcG9ydF91bnRyYW5zbGF0 YWJsZV9jaGFyKFBHX01VTEVfSU5URVJOQUwsIFBHX0VVQ19UVywKLQkJCQkJCQkJCSAgIChjb25z dCBjaGFyICopIG1pYywgbGVuKTsKLQkJfQotCQltaWMgKz0gbDsKLQkJbGVuIC09IGw7Ci0JfQot CSpwID0gJ1wwJzsKLQotCXJldHVybiBtaWMgLSBzdGFydDsKLX0KLQotLyoKLSAqIEJpZzUgLS0t PiBNSUMKLSAqLwotc3RhdGljIGludAotYmlnNTJtaWMoY29uc3QgdW5zaWduZWQgY2hhciAqYmln NSwgdW5zaWduZWQgY2hhciAqcCwgaW50IGxlbiwgYm9vbCBub0Vycm9yKQotewotCWNvbnN0IHVu c2lnbmVkIGNoYXIgKnN0YXJ0ID0gYmlnNTsKLQl1bnNpZ25lZCBzaG9ydCBjMTsKLQl1bnNpZ25l ZCBzaG9ydCBiaWc1YnVmLAotCQkJCWNuc0J1ZjsKLQl1bnNpZ25lZCBjaGFyIGxjOwotCWludAkJ CWw7Ci0KLQl3aGlsZSAobGVuID4gMCkKLQl7Ci0JCWMxID0gKmJpZzU7Ci0JCWlmICghSVNfSElH SEJJVF9TRVQoYzEpKQotCQl7Ci0JCQkvKiBBU0NJSSAqLwotCQkJaWYgKGMxID09IDApCi0JCQl7 Ci0JCQkJaWYgKG5vRXJyb3IpCi0JCQkJCWJyZWFrOwotCQkJCXJlcG9ydF9pbnZhbGlkX2VuY29k aW5nKFBHX0JJRzUsCi0JCQkJCQkJCQkJKGNvbnN0IGNoYXIgKikgYmlnNSwgbGVuKTsKLQkJCX0K LQkJCSpwKysgPSBjMTsKLQkJCWJpZzUrKzsKLQkJCWxlbi0tOwotCQkJY29udGludWU7Ci0JCX0K LQkJbCA9IHBnX2VuY29kaW5nX3ZlcmlmeW1iY2hhcihQR19CSUc1LCAoY29uc3QgY2hhciAqKSBi aWc1LCBsZW4pOwotCQlpZiAobCA8IDApCi0JCXsKLQkJCWlmIChub0Vycm9yKQotCQkJCWJyZWFr OwotCQkJcmVwb3J0X2ludmFsaWRfZW5jb2RpbmcoUEdfQklHNSwKLQkJCQkJCQkJCShjb25zdCBj aGFyICopIGJpZzUsIGxlbik7Ci0JCX0KLQkJYmlnNWJ1ZiA9IChjMSA8PCA4KSB8IGJpZzVbMV07 Ci0JCWNuc0J1ZiA9IEJJRzV0b0NOUyhiaWc1YnVmLCAmbGMpOwotCQlpZiAobGMgIT0gMCkKLQkJ ewotCQkJLyogUGxhbmVzIDMgYW5kIDQgYXJlIE1VTEUgcHJpdmF0ZSBjaGFyc2V0cyAqLwotCQkJ aWYgKGxjID09IExDX0NOUzExNjQzXzMgfHwgbGMgPT0gTENfQ05TMTE2NDNfNCkKLQkJCQkqcCsr ID0gTENQUlYyX0I7Ci0JCQkqcCsrID0gbGM7CQkJLyogUGxhbmUgTm8uICovCi0JCQkqcCsrID0g KGNuc0J1ZiA+PiA4KSAmIDB4MDBmZjsKLQkJCSpwKysgPSBjbnNCdWYgJiAweDAwZmY7Ci0JCX0K LQkJZWxzZQotCQl7Ci0JCQlpZiAobm9FcnJvcikKLQkJCQlicmVhazsKLQkJCXJlcG9ydF91bnRy YW5zbGF0YWJsZV9jaGFyKFBHX0JJRzUsIFBHX01VTEVfSU5URVJOQUwsCi0JCQkJCQkJCQkgICAo Y29uc3QgY2hhciAqKSBiaWc1LCBsZW4pOwotCQl9Ci0JCWJpZzUgKz0gbDsKLQkJbGVuIC09IGw7 Ci0JfQotCSpwID0gJ1wwJzsKLQotCXJldHVybiBiaWc1IC0gc3RhcnQ7Ci19Ci0KLS8qCi0gKiBN SUMgLS0tPiBCaWc1Ci0gKi8KLXN0YXRpYyBpbnQKLW1pYzJiaWc1KGNvbnN0IHVuc2lnbmVkIGNo YXIgKm1pYywgdW5zaWduZWQgY2hhciAqcCwgaW50IGxlbiwgYm9vbCBub0Vycm9yKQotewotCWNv bnN0IHVuc2lnbmVkIGNoYXIgKnN0YXJ0ID0gbWljOwotCXVuc2lnbmVkIHNob3J0IGMxOwotCXVu c2lnbmVkIHNob3J0IGJpZzVidWYsCi0JCQkJY25zQnVmOwotCWludAkJCWw7Ci0KLQl3aGlsZSAo bGVuID4gMCkKLQl7Ci0JCWMxID0gKm1pYzsKLQkJaWYgKCFJU19ISUdIQklUX1NFVChjMSkpCi0J CXsKLQkJCS8qIEFTQ0lJICovCi0JCQlpZiAoYzEgPT0gMCkKLQkJCXsKLQkJCQlpZiAobm9FcnJv cikKLQkJCQkJYnJlYWs7Ci0JCQkJcmVwb3J0X2ludmFsaWRfZW5jb2RpbmcoUEdfTVVMRV9JTlRF Uk5BTCwKLQkJCQkJCQkJCQkoY29uc3QgY2hhciAqKSBtaWMsIGxlbik7Ci0JCQl9Ci0JCQkqcCsr ID0gYzE7Ci0JCQltaWMrKzsKLQkJCWxlbi0tOwotCQkJY29udGludWU7Ci0JCX0KLQkJbCA9IHBn X2VuY29kaW5nX3ZlcmlmeW1iY2hhcihQR19NVUxFX0lOVEVSTkFMLCAoY29uc3QgY2hhciAqKSBt aWMsIGxlbik7Ci0JCWlmIChsIDwgMCkKLQkJewotCQkJaWYgKG5vRXJyb3IpCi0JCQkJYnJlYWs7 Ci0JCQlyZXBvcnRfaW52YWxpZF9lbmNvZGluZyhQR19NVUxFX0lOVEVSTkFMLAotCQkJCQkJCQkJ KGNvbnN0IGNoYXIgKikgbWljLCBsZW4pOwotCQl9Ci0JCWlmIChjMSA9PSBMQ19DTlMxMTY0M18x IHx8IGMxID09IExDX0NOUzExNjQzXzIgfHwgYzEgPT0gTENQUlYyX0IpCi0JCXsKLQkJCWlmIChj MSA9PSBMQ1BSVjJfQikKLQkJCXsKLQkJCQljMSA9IG1pY1sxXTsJLyogZ2V0IHBsYW5lIG5vLiAq LwotCQkJCWNuc0J1ZiA9IChtaWNbMl0gPDwgOCkgfCBtaWNbM107Ci0JCQl9Ci0JCQllbHNlCi0J CQl7Ci0JCQkJY25zQnVmID0gKG1pY1sxXSA8PCA4KSB8IG1pY1syXTsKLQkJCX0KLQkJCWJpZzVi dWYgPSBDTlN0b0JJRzUoY25zQnVmLCBjMSk7Ci0JCQlpZiAoYmlnNWJ1ZiA9PSAwKQotCQkJewot CQkJCWlmIChub0Vycm9yKQotCQkJCQlicmVhazsKLQkJCQlyZXBvcnRfdW50cmFuc2xhdGFibGVf Y2hhcihQR19NVUxFX0lOVEVSTkFMLCBQR19CSUc1LAotCQkJCQkJCQkJCSAgIChjb25zdCBjaGFy ICopIG1pYywgbGVuKTsKLQkJCX0KLQkJCSpwKysgPSAoYmlnNWJ1ZiA+PiA4KSAmIDB4MDBmZjsK LQkJCSpwKysgPSBiaWc1YnVmICYgMHgwMGZmOwotCQl9Ci0JCWVsc2UKLQkJewotCQkJaWYgKG5v RXJyb3IpCi0JCQkJYnJlYWs7Ci0JCQlyZXBvcnRfdW50cmFuc2xhdGFibGVfY2hhcihQR19NVUxF X0lOVEVSTkFMLCBQR19CSUc1LAotCQkJCQkJCQkJICAgKGNvbnN0IGNoYXIgKikgbWljLCBsZW4p OwotCQl9Ci0JCW1pYyArPSBsOwotCQlsZW4gLT0gbDsKLQl9Ci0JKnAgPSAnXDAnOwotCi0JcmV0 dXJuIG1pYyAtIHN0YXJ0OwotfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWIvY29u dmVyc2lvbl9wcm9jcy9sYXRpbjJfYW5kX3dpbjEyNTAvbGF0aW4yX2FuZF93aW4xMjUwLmMgYi9z cmMvYmFja2VuZC91dGlscy9tYi9jb252ZXJzaW9uX3Byb2NzL2xhdGluMl9hbmRfd2luMTI1MC9s YXRpbjJfYW5kX3dpbjEyNTAuYwppbmRleCBhYTQ2NjQxZDU2ZC4uMjkyMDFjOTQ0MzQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21iL2NvbnZlcnNpb25fcHJvY3MvbGF0aW4yX2FuZF93 aW4xMjUwL2xhdGluMl9hbmRfd2luMTI1MC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21iL2Nv bnZlcnNpb25fcHJvY3MvbGF0aW4yX2FuZF93aW4xMjUwL2xhdGluMl9hbmRfd2luMTI1MC5jCkBA IC0yMCwxMCArMjAsNiBAQCBQR19NT0RVTEVfTUFHSUNfRVhUKAogCQkJCQkudmVyc2lvbiA9IFBH X1ZFUlNJT04KICk7CiAKLVBHX0ZVTkNUSU9OX0lORk9fVjEobGF0aW4yX3RvX21pYyk7Ci1QR19G VU5DVElPTl9JTkZPX1YxKG1pY190b19sYXRpbjIpOwotUEdfRlVOQ1RJT05fSU5GT19WMSh3aW4x MjUwX3RvX21pYyk7Ci1QR19GVU5DVElPTl9JTkZPX1YxKG1pY190b193aW4xMjUwKTsKIFBHX0ZV TkNUSU9OX0lORk9fVjEobGF0aW4yX3RvX3dpbjEyNTApOwogUEdfRlVOQ1RJT05fSU5GT19WMSh3 aW4xMjUwX3RvX2xhdGluMik7CiAKQEAgLTgyLDcyICs3OCw2IEBAIHN0YXRpYyBjb25zdCB1bnNp Z25lZCBjaGFyIGlzbzg4NTkyXzJfd2luMTI1MFtdID0gewogfTsKIAogCi1EYXR1bQotbGF0aW4y X3RvX21pYyhQR19GVU5DVElPTl9BUkdTKQotewotCXVuc2lnbmVkIGNoYXIgKnNyYyA9ICh1bnNp Z25lZCBjaGFyICopIFBHX0dFVEFSR19DU1RSSU5HKDIpOwotCXVuc2lnbmVkIGNoYXIgKmRlc3Qg PSAodW5zaWduZWQgY2hhciAqKSBQR19HRVRBUkdfQ1NUUklORygzKTsKLQlpbnQJCQlsZW4gPSBQ R19HRVRBUkdfSU5UMzIoNCk7Ci0JYm9vbAkJbm9FcnJvciA9IFBHX0dFVEFSR19CT09MKDUpOwot CWludAkJCWNvbnZlcnRlZDsKLQotCUNIRUNLX0VOQ09ESU5HX0NPTlZFUlNJT05fQVJHUyhQR19M QVRJTjIsIFBHX01VTEVfSU5URVJOQUwpOwotCi0JY29udmVydGVkID0gbGF0aW4ybWljKHNyYywg ZGVzdCwgbGVuLCBMQ19JU084ODU5XzIsIFBHX0xBVElOMiwgbm9FcnJvcik7Ci0KLQlQR19SRVRV Uk5fSU5UMzIoY29udmVydGVkKTsKLX0KLQotRGF0dW0KLW1pY190b19sYXRpbjIoUEdfRlVOQ1RJ T05fQVJHUykKLXsKLQl1bnNpZ25lZCBjaGFyICpzcmMgPSAodW5zaWduZWQgY2hhciAqKSBQR19H RVRBUkdfQ1NUUklORygyKTsKLQl1bnNpZ25lZCBjaGFyICpkZXN0ID0gKHVuc2lnbmVkIGNoYXIg KikgUEdfR0VUQVJHX0NTVFJJTkcoMyk7Ci0JaW50CQkJbGVuID0gUEdfR0VUQVJHX0lOVDMyKDQp OwotCWJvb2wJCW5vRXJyb3IgPSBQR19HRVRBUkdfQk9PTCg1KTsKLQlpbnQJCQljb252ZXJ0ZWQ7 Ci0KLQlDSEVDS19FTkNPRElOR19DT05WRVJTSU9OX0FSR1MoUEdfTVVMRV9JTlRFUk5BTCwgUEdf TEFUSU4yKTsKLQotCWNvbnZlcnRlZCA9IG1pYzJsYXRpbihzcmMsIGRlc3QsIGxlbiwgTENfSVNP ODg1OV8yLCBQR19MQVRJTjIsIG5vRXJyb3IpOwotCi0JUEdfUkVUVVJOX0lOVDMyKGNvbnZlcnRl ZCk7Ci19Ci0KLURhdHVtCi13aW4xMjUwX3RvX21pYyhQR19GVU5DVElPTl9BUkdTKQotewotCXVu c2lnbmVkIGNoYXIgKnNyYyA9ICh1bnNpZ25lZCBjaGFyICopIFBHX0dFVEFSR19DU1RSSU5HKDIp OwotCXVuc2lnbmVkIGNoYXIgKmRlc3QgPSAodW5zaWduZWQgY2hhciAqKSBQR19HRVRBUkdfQ1NU UklORygzKTsKLQlpbnQJCQlsZW4gPSBQR19HRVRBUkdfSU5UMzIoNCk7Ci0JYm9vbAkJbm9FcnJv ciA9IFBHX0dFVEFSR19CT09MKDUpOwotCWludAkJCWNvbnZlcnRlZDsKLQotCUNIRUNLX0VOQ09E SU5HX0NPTlZFUlNJT05fQVJHUyhQR19XSU4xMjUwLCBQR19NVUxFX0lOVEVSTkFMKTsKLQotCWNv bnZlcnRlZCA9IGxhdGluMm1pY193aXRoX3RhYmxlKHNyYywgZGVzdCwgbGVuLCBMQ19JU084ODU5 XzIsIFBHX1dJTjEyNTAsCi0JCQkJCQkJCQkgd2luMTI1MF8yX2lzbzg4NTkyLCBub0Vycm9yKTsK LQotCVBHX1JFVFVSTl9JTlQzMihjb252ZXJ0ZWQpOwotfQotCi1EYXR1bQotbWljX3RvX3dpbjEy NTAoUEdfRlVOQ1RJT05fQVJHUykKLXsKLQl1bnNpZ25lZCBjaGFyICpzcmMgPSAodW5zaWduZWQg Y2hhciAqKSBQR19HRVRBUkdfQ1NUUklORygyKTsKLQl1bnNpZ25lZCBjaGFyICpkZXN0ID0gKHVu c2lnbmVkIGNoYXIgKikgUEdfR0VUQVJHX0NTVFJJTkcoMyk7Ci0JaW50CQkJbGVuID0gUEdfR0VU QVJHX0lOVDMyKDQpOwotCWJvb2wJCW5vRXJyb3IgPSBQR19HRVRBUkdfQk9PTCg1KTsKLQlpbnQJ CQljb252ZXJ0ZWQ7Ci0KLQlDSEVDS19FTkNPRElOR19DT05WRVJTSU9OX0FSR1MoUEdfTVVMRV9J TlRFUk5BTCwgUEdfV0lOMTI1MCk7Ci0KLQljb252ZXJ0ZWQgPSBtaWMybGF0aW5fd2l0aF90YWJs ZShzcmMsIGRlc3QsIGxlbiwgTENfSVNPODg1OV8yLCBQR19XSU4xMjUwLAotCQkJCQkJCQkJIGlz bzg4NTkyXzJfd2luMTI1MCwgbm9FcnJvcik7Ci0KLQlQR19SRVRVUk5fSU5UMzIoY29udmVydGVk KTsKLX0KLQogRGF0dW0KIGxhdGluMl90b193aW4xMjUwKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9tYi9jb252ZXJzaW9uX3Byb2NzL2xhdGluX2Fu ZF9taWMvbGF0aW5fYW5kX21pYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWIvY29udmVyc2lvbl9w cm9jcy9sYXRpbl9hbmRfbWljL2xhdGluX2FuZF9taWMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggM2I0M2U1NjA1NmIuLjAwMDAwMDAwMDAwCi0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L21iL2NvbnZlcnNpb25fcHJvY3MvbGF0aW5fYW5kX21pYy9sYXRpbl9hbmRfbWljLmMKKysrIC9k ZXYvbnVsbApAQCAtMSwxMzkgKzAsMCBAQAotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKgotICoJICBM QVRJTm4gYW5kIE1VTEVfSU5URVJOQUwKLSAqCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5 OTYtMjAyNiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKLSAqIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9y bmlhCi0gKgotICogSURFTlRJRklDQVRJT04KLSAqCSAgc3JjL2JhY2tlbmQvdXRpbHMvbWIvY29u dmVyc2lvbl9wcm9jcy9sYXRpbl9hbmRfbWljL2xhdGluX2FuZF9taWMuYwotICoKLSAqLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotICovCi0KLSNpbmNsdWRlICJwb3N0Z3Jlcy5oIgotI2luY2x1ZGUgImZtZ3Iu aCIKLSNpbmNsdWRlICJtYi9wZ193Y2hhci5oIgotCi1QR19NT0RVTEVfTUFHSUNfRVhUKAotCQkJ CQkubmFtZSA9ICJsYXRpbl9hbmRfbWljIiwKLQkJCQkJLnZlcnNpb24gPSBQR19WRVJTSU9OCi0p OwotCi1QR19GVU5DVElPTl9JTkZPX1YxKGxhdGluMV90b19taWMpOwotUEdfRlVOQ1RJT05fSU5G T19WMShtaWNfdG9fbGF0aW4xKTsKLVBHX0ZVTkNUSU9OX0lORk9fVjEobGF0aW4zX3RvX21pYyk7 Ci1QR19GVU5DVElPTl9JTkZPX1YxKG1pY190b19sYXRpbjMpOwotUEdfRlVOQ1RJT05fSU5GT19W MShsYXRpbjRfdG9fbWljKTsKLVBHX0ZVTkNUSU9OX0lORk9fVjEobWljX3RvX2xhdGluNCk7Ci0K LS8qIC0tLS0tLS0tLS0KLSAqIGNvbnZfcHJvYygKLSAqCQlJTlRFR0VSLAktLSBzb3VyY2UgZW5j b2RpbmcgaWQKLSAqCQlJTlRFR0VSLAktLSBkZXN0aW5hdGlvbiBlbmNvZGluZyBpZAotICoJCUNT VFJJTkcsCS0tIHNvdXJjZSBzdHJpbmcgKG51bGwgdGVybWluYXRlZCBDIHN0cmluZykKLSAqCQlD U1RSSU5HLAktLSBkZXN0aW5hdGlvbiBzdHJpbmcgKG51bGwgdGVybWluYXRlZCBDIHN0cmluZykK LSAqCQlJTlRFR0VSLAktLSBzb3VyY2Ugc3RyaW5nIGxlbmd0aAotICoJCUJPT0wJCS0tIGlmIHRy dWUsIGRvbid0IHRocm93IGFuIGVycm9yIGlmIGNvbnZlcnNpb24gZmFpbHMKLSAqICkgcmV0dXJu cyBJTlRFR0VSOwotICoKLSAqIFJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcyBzdWNjZXNzZnVs bHkgY29udmVydGVkLgotICogLS0tLS0tLS0tLQotICovCi0KLQotRGF0dW0KLWxhdGluMV90b19t aWMoUEdfRlVOQ1RJT05fQVJHUykKLXsKLQl1bnNpZ25lZCBjaGFyICpzcmMgPSAodW5zaWduZWQg Y2hhciAqKSBQR19HRVRBUkdfQ1NUUklORygyKTsKLQl1bnNpZ25lZCBjaGFyICpkZXN0ID0gKHVu c2lnbmVkIGNoYXIgKikgUEdfR0VUQVJHX0NTVFJJTkcoMyk7Ci0JaW50CQkJbGVuID0gUEdfR0VU QVJHX0lOVDMyKDQpOwotCWJvb2wJCW5vRXJyb3IgPSBQR19HRVRBUkdfQk9PTCg1KTsKLQlpbnQJ CQljb252ZXJ0ZWQ7Ci0KLQlDSEVDS19FTkNPRElOR19DT05WRVJTSU9OX0FSR1MoUEdfTEFUSU4x LCBQR19NVUxFX0lOVEVSTkFMKTsKLQotCWNvbnZlcnRlZCA9IGxhdGluMm1pYyhzcmMsIGRlc3Qs IGxlbiwgTENfSVNPODg1OV8xLCBQR19MQVRJTjEsIG5vRXJyb3IpOwotCi0JUEdfUkVUVVJOX0lO VDMyKGNvbnZlcnRlZCk7Ci19Ci0KLURhdHVtCi1taWNfdG9fbGF0aW4xKFBHX0ZVTkNUSU9OX0FS R1MpCi17Ci0JdW5zaWduZWQgY2hhciAqc3JjID0gKHVuc2lnbmVkIGNoYXIgKikgUEdfR0VUQVJH X0NTVFJJTkcoMik7Ci0JdW5zaWduZWQgY2hhciAqZGVzdCA9ICh1bnNpZ25lZCBjaGFyICopIFBH X0dFVEFSR19DU1RSSU5HKDMpOwotCWludAkJCWxlbiA9IFBHX0dFVEFSR19JTlQzMig0KTsKLQli b29sCQlub0Vycm9yID0gUEdfR0VUQVJHX0JPT0woNSk7Ci0JaW50CQkJY29udmVydGVkOwotCi0J Q0hFQ0tfRU5DT0RJTkdfQ09OVkVSU0lPTl9BUkdTKFBHX01VTEVfSU5URVJOQUwsIFBHX0xBVElO MSk7Ci0KLQljb252ZXJ0ZWQgPSBtaWMybGF0aW4oc3JjLCBkZXN0LCBsZW4sIExDX0lTTzg4NTlf MSwgUEdfTEFUSU4xLCBub0Vycm9yKTsKLQotCVBHX1JFVFVSTl9JTlQzMihjb252ZXJ0ZWQpOwot fQotCi1EYXR1bQotbGF0aW4zX3RvX21pYyhQR19GVU5DVElPTl9BUkdTKQotewotCXVuc2lnbmVk IGNoYXIgKnNyYyA9ICh1bnNpZ25lZCBjaGFyICopIFBHX0dFVEFSR19DU1RSSU5HKDIpOwotCXVu c2lnbmVkIGNoYXIgKmRlc3QgPSAodW5zaWduZWQgY2hhciAqKSBQR19HRVRBUkdfQ1NUUklORygz KTsKLQlpbnQJCQlsZW4gPSBQR19HRVRBUkdfSU5UMzIoNCk7Ci0JYm9vbAkJbm9FcnJvciA9IFBH X0dFVEFSR19CT09MKDUpOwotCWludAkJCWNvbnZlcnRlZDsKLQotCUNIRUNLX0VOQ09ESU5HX0NP TlZFUlNJT05fQVJHUyhQR19MQVRJTjMsIFBHX01VTEVfSU5URVJOQUwpOwotCi0JY29udmVydGVk ID0gbGF0aW4ybWljKHNyYywgZGVzdCwgbGVuLCBMQ19JU084ODU5XzMsIFBHX0xBVElOMywgbm9F cnJvcik7Ci0KLQlQR19SRVRVUk5fSU5UMzIoY29udmVydGVkKTsKLX0KLQotRGF0dW0KLW1pY190 b19sYXRpbjMoUEdfRlVOQ1RJT05fQVJHUykKLXsKLQl1bnNpZ25lZCBjaGFyICpzcmMgPSAodW5z aWduZWQgY2hhciAqKSBQR19HRVRBUkdfQ1NUUklORygyKTsKLQl1bnNpZ25lZCBjaGFyICpkZXN0 ID0gKHVuc2lnbmVkIGNoYXIgKikgUEdfR0VUQVJHX0NTVFJJTkcoMyk7Ci0JaW50CQkJbGVuID0g UEdfR0VUQVJHX0lOVDMyKDQpOwotCWJvb2wJCW5vRXJyb3IgPSBQR19HRVRBUkdfQk9PTCg1KTsK LQlpbnQJCQljb252ZXJ0ZWQ7Ci0KLQlDSEVDS19FTkNPRElOR19DT05WRVJTSU9OX0FSR1MoUEdf TVVMRV9JTlRFUk5BTCwgUEdfTEFUSU4zKTsKLQotCWNvbnZlcnRlZCA9IG1pYzJsYXRpbihzcmMs IGRlc3QsIGxlbiwgTENfSVNPODg1OV8zLCBQR19MQVRJTjMsIG5vRXJyb3IpOwotCi0JUEdfUkVU VVJOX0lOVDMyKGNvbnZlcnRlZCk7Ci19Ci0KLURhdHVtCi1sYXRpbjRfdG9fbWljKFBHX0ZVTkNU SU9OX0FSR1MpCi17Ci0JdW5zaWduZWQgY2hhciAqc3JjID0gKHVuc2lnbmVkIGNoYXIgKikgUEdf R0VUQVJHX0NTVFJJTkcoMik7Ci0JdW5zaWduZWQgY2hhciAqZGVzdCA9ICh1bnNpZ25lZCBjaGFy ICopIFBHX0dFVEFSR19DU1RSSU5HKDMpOwotCWludAkJCWxlbiA9IFBHX0dFVEFSR19JTlQzMig0 KTsKLQlib29sCQlub0Vycm9yID0gUEdfR0VUQVJHX0JPT0woNSk7Ci0JaW50CQkJY29udmVydGVk OwotCi0JQ0hFQ0tfRU5DT0RJTkdfQ09OVkVSU0lPTl9BUkdTKFBHX0xBVElONCwgUEdfTVVMRV9J TlRFUk5BTCk7Ci0KLQljb252ZXJ0ZWQgPSBsYXRpbjJtaWMoc3JjLCBkZXN0LCBsZW4sIExDX0lT Tzg4NTlfNCwgUEdfTEFUSU40LCBub0Vycm9yKTsKLQotCVBHX1JFVFVSTl9JTlQzMihjb252ZXJ0 ZWQpOwotfQotCi1EYXR1bQotbWljX3RvX2xhdGluNChQR19GVU5DVElPTl9BUkdTKQotewotCXVu c2lnbmVkIGNoYXIgKnNyYyA9ICh1bnNpZ25lZCBjaGFyICopIFBHX0dFVEFSR19DU1RSSU5HKDIp OwotCXVuc2lnbmVkIGNoYXIgKmRlc3QgPSAodW5zaWduZWQgY2hhciAqKSBQR19HRVRBUkdfQ1NU UklORygzKTsKLQlpbnQJCQlsZW4gPSBQR19HRVRBUkdfSU5UMzIoNCk7Ci0JYm9vbAkJbm9FcnJv ciA9IFBHX0dFVEFSR19CT09MKDUpOwotCWludAkJCWNvbnZlcnRlZDsKLQotCUNIRUNLX0VOQ09E SU5HX0NPTlZFUlNJT05fQVJHUyhQR19NVUxFX0lOVEVSTkFMLCBQR19MQVRJTjQpOwotCi0JY29u dmVydGVkID0gbWljMmxhdGluKHNyYywgZGVzdCwgbGVuLCBMQ19JU084ODU5XzQsIFBHX0xBVElO NCwgbm9FcnJvcik7Ci0KLQlQR19SRVRVUk5fSU5UMzIoY29udmVydGVkKTsKLX0KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL21iL2NvbnZlcnNpb25fcHJvY3MvbWVzb24uYnVpbGQgYi9z cmMvYmFja2VuZC91dGlscy9tYi9jb252ZXJzaW9uX3Byb2NzL21lc29uLmJ1aWxkCmluZGV4IDQw NGFmZGRlMzYwLi42YzZmZDMwYTAxZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWIv Y29udmVyc2lvbl9wcm9jcy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC91dGlscy9tYi9j b252ZXJzaW9uX3Byb2NzL21lc29uLmJ1aWxkCkBAIC0xLDE3ICsxLDE0IEBACiAjIENvcHlyaWdo dCAoYykgMjAyMi0yMDI2LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogCiBl bmNvZGluZ3MgPSB7Ci0gICdjeXJpbGxpY19hbmRfbWljJzogWydjeXJpbGxpY19hbmRfbWljL2N5 cmlsbGljX2FuZF9taWMuYyddLAorICAnY3lyaWxsaWMnOiBbJ2N5cmlsbGljL2N5cmlsbGljLmMn XSwKICAgJ2V1YzIwMDRfc2ppczIwMDQnOiBbJ2V1YzIwMDRfc2ppczIwMDQvZXVjMjAwNF9zamlz MjAwNC5jJ10sCi0gICdldWNfY25fYW5kX21pYyc6IFsnZXVjX2NuX2FuZF9taWMvZXVjX2NuX2Fu ZF9taWMuYyddLAogICAnZXVjX2pwX2FuZF9zamlzJzogWydldWNfanBfYW5kX3NqaXMvZXVjX2pw X2FuZF9zamlzLmMnXSwKLSAgJ2V1Y19rcl9hbmRfbWljJzogWydldWNfa3JfYW5kX21pYy9ldWNf a3JfYW5kX21pYy5jJ10sCiAgICdldWNfdHdfYW5kX2JpZzUnOiBbCiAgICAgJ2V1Y190d19hbmRf YmlnNS9ldWNfdHdfYW5kX2JpZzUuYycsCiAgICAgJ2V1Y190d19hbmRfYmlnNS9iaWc1LmMnLAog ICBdLAogICAnbGF0aW4yX2FuZF93aW4xMjUwJzogWydsYXRpbjJfYW5kX3dpbjEyNTAvbGF0aW4y X2FuZF93aW4xMjUwLmMnXSwKLSAgJ2xhdGluX2FuZF9taWMnOiBbJ2xhdGluX2FuZF9taWMvbGF0 aW5fYW5kX21pYy5jJ10sCiAgICd1dGY4X2FuZF9iaWc1JzogWyd1dGY4X2FuZF9iaWc1L3V0Zjhf YW5kX2JpZzUuYyddLAogICAndXRmOF9hbmRfY3lyaWxsaWMnOiBbJ3V0ZjhfYW5kX2N5cmlsbGlj L3V0ZjhfYW5kX2N5cmlsbGljLmMnXSwKICAgJ3V0ZjhfYW5kX2V1YzIwMDQnOiBbJ3V0ZjhfYW5k X2V1YzIwMDQvdXRmOF9hbmRfZXVjMjAwNC5jJ10sCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9tYi9tYnV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9tYi9tYnV0aWxzLmMKaW5kZXgg YTVhNzM0ODM5YWYuLjYwMDllZTJiOTg4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9t Yi9tYnV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWIvbWJ1dGlscy5jCkBAIC0xMzA2 LDggKzEzMDYsNyBAQCBTZXRNZXNzYWdlRW5jb2RpbmcoaW50IGVuY29kaW5nKQogI2lmZGVmIEVO QUJMRV9OTFMKIC8qCiAgKiBNYWtlIG9uZSBiaW5kX3RleHRkb21haW5fY29kZXNldCgpIGNhbGws IHRyYW5zbGF0aW5nIGEgcGdfZW5jIHRvIGEgZ2V0dGV4dAotICogY29kZXNldC4gIEZhaWxzIGZv ciBNVUxFX0lOVEVSTkFMLCBhbiBlbmNvZGluZyB1bmtub3duIHRvIGdldHRleHQ7IGNhbiBhbHNv Ci0gKiBmYWlsIGZvciBnZXR0ZXh0LWludGVybmFsIGNhdXNlcyBsaWtlIG91dC1vZi1tZW1vcnku CisgKiBjb2Rlc2V0LiAgQ2FuIGZhaWwgZm9yIGdldHRleHQtaW50ZXJuYWwgY2F1c2VzIGxpa2Ug b3V0LW9mLW1lbW9yeS4KICAqLwogc3RhdGljIGJvb2wKIHJhd19wZ19iaW5kX3RleHRkb21haW5f Y29kZXNldChjb25zdCBjaGFyICpkb21haW5uYW1lLCBpbnQgZW5jb2RpbmcpCkBAIC0xNDI3LDgg KzE0MjYsNyBAQCBQR19lbmNvZGluZ190b19jaGFyKFBHX0ZVTkNUSU9OX0FSR1MpCiAvKgogICog Z2V0dGV4dCgpIHJldHVybnMgbWVzc2FnZXMgaW4gdGhpcyBlbmNvZGluZy4gIFRoaXMgb2Z0ZW4g bWF0Y2hlcyB0aGUKICAqIGRhdGFiYXNlIGVuY29kaW5nLCBidXQgaXQgZGlmZmVycyBmb3IgU1FM X0FTQ0lJIGRhdGFiYXNlcywgZm9yIHByb2Nlc3NlcwotICogbm90IGF0dGFjaGVkIHRvIGEgZGF0 YWJhc2UsIGFuZCB1bmRlciBhIGRhdGFiYXNlIGVuY29kaW5nIGxhY2tpbmcgaWNvbnYKLSAqIHN1 cHBvcnQgKE1VTEVfSU5URVJOQUwpLgorICogbm90IGF0dGFjaGVkIHRvIGEgZGF0YWJhc2UuCiAg Ki8KIGludAogR2V0TWVzc2FnZUVuY29kaW5nKHZvaWQpCmRpZmYgLS1naXQgYS9zcmMvY29tbW9u L2VuY25hbWVzLmMgYi9zcmMvY29tbW9uL2VuY25hbWVzLmMKaW5kZXggZjgzM2FlOGVkZmUuLjkw ODVkYmVjY2UxIDEwMDY0NAotLS0gYS9zcmMvY29tbW9uL2VuY25hbWVzLmMKKysrIGIvc3JjL2Nv bW1vbi9lbmNuYW1lcy5jCkBAIC0xNjQsOSArMTY0LDYgQEAgc3RhdGljIGNvbnN0IHBnX2VuY25h bWUgcGdfZW5jbmFtZV90YmxbXSA9CiAJewogCQkibXNrYW5qaSIsIFBHX1NKSVMKIAl9LAkJCQkJ CQkvKiBhbGlhcyBmb3IgU2hpZnRfSklTICovCi0JewotCQkibXVsZWludGVybmFsIiwgUEdfTVVM RV9JTlRFUk5BTAotCX0sCiAJewogCQkic2hpZnRqaXMiLCBQR19TSklTCiAJfSwJCQkJCQkJLyog U2hpZnRfSklTOyBKSVMgWCAwMjAyLTE5OTEgKi8KQEAgLTMxNCw3ICszMTEsNiBAQCBjb25zdCBw Z19lbmMybmFtZSBwZ19lbmMybmFtZV90YmxbXSA9CiAJW1BHX0VVQ19UV10gPSBERUZfRU5DMk5B TUUoRVVDX1RXLCAwKSwKIAlbUEdfRVVDX0pJU18yMDA0XSA9IERFRl9FTkMyTkFNRShFVUNfSklT XzIwMDQsIDIwOTMyKSwKIAlbUEdfVVRGOF0gPSBERUZfRU5DMk5BTUUoVVRGOCwgNjUwMDEpLAot CVtQR19NVUxFX0lOVEVSTkFMXSA9IERFRl9FTkMyTkFNRShNVUxFX0lOVEVSTkFMLCAwKSwKIAlb UEdfTEFUSU4xXSA9IERFRl9FTkMyTkFNRShMQVRJTjEsIDI4NTkxKSwKIAlbUEdfTEFUSU4yXSA9 IERFRl9FTkMyTkFNRShMQVRJTjIsIDI4NTkyKSwKIAlbUEdfTEFUSU4zXSA9IERFRl9FTkMyTkFN RShMQVRJTjMsIDI4NTkzKSwKQEAgLTM1MywxNSArMzQ5LDEyIEBAIGNvbnN0IHBnX2VuYzJuYW1l IHBnX2VuYzJuYW1lX3RibFtdID0KIAogLyogLS0tLS0tLS0tLQogICogVGhlc2UgYXJlIGVuY29k aW5nIG5hbWVzIGZvciBnZXR0ZXh0LgotICoKLSAqIFRoaXMgY292ZXJzIGFsbCBlbmNvZGluZ3Mg ZXhjZXB0IE1VTEVfSU5URVJOQUwsIHdoaWNoIGlzIGFsaWVuIHRvIGdldHRleHQuCiAgKiAtLS0t LS0tLS0tCiAgKi8KIGNvbnN0IGNoYXIgKnBnX2VuYzJnZXR0ZXh0X3RibFtdID0KIHsKIAlbUEdf U1FMX0FTQ0lJXSA9ICJVUy1BU0NJSSIsCiAJW1BHX1VURjhdID0gIlVURi04IiwKLQlbUEdfTVVM RV9JTlRFUk5BTF0gPSBOVUxMLAogCVtQR19MQVRJTjFdID0gIkxBVElOMSIsCiAJW1BHX0xBVElO Ml0gPSAiTEFUSU4yIiwKIAlbUEdfTEFUSU4zXSA9ICJMQVRJTjMiLApAQCAtNDIwLDcgKzQxMyw2 IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBwZ19lbmMyaWN1X3RibFtdID0KIAlbUEdfRVVD X1RXXSA9ICJFVUMtVFciLAogCVtQR19FVUNfSklTXzIwMDRdID0gTlVMTCwKIAlbUEdfVVRGOF0g PSAiVVRGLTgiLAotCVtQR19NVUxFX0lOVEVSTkFMXSA9IE5VTEwsCiAJW1BHX0xBVElOMV0gPSAi SVNPLTg4NTktMSIsCiAJW1BHX0xBVElOMl0gPSAiSVNPLTg4NTktMiIsCiAJW1BHX0xBVElOM10g PSAiSVNPLTg4NTktMyIsCmRpZmYgLS1naXQgYS9zcmMvY29tbW9uL3djaGFyLmMgYi9zcmMvY29t bW9uL3djaGFyLmMKaW5kZXggZWIxNWVlNTk0OTcuLjdmYWI1ZDI2MmJlIDEwMDY0NAotLS0gYS9z cmMvY29tbW9uL3djaGFyLmMKKysrIGIvc3JjL2NvbW1vbi93Y2hhci5jCkBAIC02ODIsMTc4ICs2 ODIsNiBAQCBwZ191dGZfZHNwbGVuKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnMpCiAJcmV0dXJuIHVj c193Y3dpZHRoKHV0ZjhfdG9fdW5pY29kZShzKSk7CiB9CiAKLS8qCi0gKiBjb252ZXJ0IG11bGUg aW50ZXJuYWwgY29kZSB0byBwZ193Y2hhcgotICogY2FsbGVyIHNob3VsZCBhbGxvY2F0ZSBlbm91 Z2ggc3BhY2UgZm9yICJ0byIKLSAqIGxlbjogbGVuZ3RoIG9mIGZyb20uCi0gKiAiZnJvbSIgbm90 IG5lY2Vzc2FyaWx5IG51bGwgdGVybWluYXRlZC4KLSAqLwotc3RhdGljIGludAotcGdfbXVsZTJ3 Y2hhcl93aXRoX2xlbihjb25zdCB1bnNpZ25lZCBjaGFyICpmcm9tLCBwZ193Y2hhciAqdG8sIGlu dCBsZW4pCi17Ci0JaW50CQkJY250ID0gMDsKLQotCXdoaWxlIChsZW4gPiAwICYmICpmcm9tKQot CXsKLQkJaWYgKElTX0xDMSgqZnJvbSkpCi0JCXsKLQkJCU1CMkNIQVJfTkVFRF9BVF9MRUFTVChs ZW4sIDIpOwotCQkJKnRvID0gKmZyb20rKyA8PCAxNjsKLQkJCSp0byB8PSAqZnJvbSsrOwotCQkJ bGVuIC09IDI7Ci0JCX0KLQkJZWxzZSBpZiAoSVNfTENQUlYxKCpmcm9tKSkKLQkJewotCQkJTUIy Q0hBUl9ORUVEX0FUX0xFQVNUKGxlbiwgMyk7Ci0JCQlmcm9tKys7Ci0JCQkqdG8gPSAqZnJvbSsr IDw8IDE2OwotCQkJKnRvIHw9ICpmcm9tKys7Ci0JCQlsZW4gLT0gMzsKLQkJfQotCQllbHNlIGlm IChJU19MQzIoKmZyb20pKQotCQl7Ci0JCQlNQjJDSEFSX05FRURfQVRfTEVBU1QobGVuLCAzKTsK LQkJCSp0byA9ICpmcm9tKysgPDwgMTY7Ci0JCQkqdG8gfD0gKmZyb20rKyA8PCA4OwotCQkJKnRv IHw9ICpmcm9tKys7Ci0JCQlsZW4gLT0gMzsKLQkJfQotCQllbHNlIGlmIChJU19MQ1BSVjIoKmZy b20pKQotCQl7Ci0JCQlNQjJDSEFSX05FRURfQVRfTEVBU1QobGVuLCA0KTsKLQkJCWZyb20rKzsK LQkJCSp0byA9ICpmcm9tKysgPDwgMTY7Ci0JCQkqdG8gfD0gKmZyb20rKyA8PCA4OwotCQkJKnRv IHw9ICpmcm9tKys7Ci0JCQlsZW4gLT0gNDsKLQkJfQotCQllbHNlCi0JCXsJCQkJCQkvKiBhc3N1 bWUgQVNDSUkgKi8KLQkJCSp0byA9ICh1bnNpZ25lZCBjaGFyKSAqZnJvbSsrOwotCQkJbGVuLS07 Ci0JCX0KLQkJdG8rKzsKLQkJY250Kys7Ci0JfQotCSp0byA9IDA7Ci0JcmV0dXJuIGNudDsKLX0K LQotLyoKLSAqIGNvbnZlcnQgcGdfd2NoYXIgdG8gbXVsZSBpbnRlcm5hbCBjb2RlCi0gKiBjYWxs ZXIgc2hvdWxkIGFsbG9jYXRlIGVub3VnaCBzcGFjZSBmb3IgInRvIgotICogbGVuOiBsZW5ndGgg b2YgZnJvbS4KLSAqICJmcm9tIiBub3QgbmVjZXNzYXJpbHkgbnVsbCB0ZXJtaW5hdGVkLgotICov Ci1zdGF0aWMgaW50Ci1wZ193Y2hhcjJtdWxlX3dpdGhfbGVuKGNvbnN0IHBnX3djaGFyICpmcm9t LCB1bnNpZ25lZCBjaGFyICp0bywgaW50IGxlbikKLXsKLQlpbnQJCQljbnQgPSAwOwotCi0Jd2hp bGUgKGxlbiA+IDAgJiYgKmZyb20pCi0JewotCQl1bnNpZ25lZCBjaGFyIGxiOwotCi0JCWxiID0g KCpmcm9tID4+IDE2KSAmIDB4ZmY7Ci0JCWlmIChJU19MQzEobGIpKQotCQl7Ci0JCQkqdG8rKyA9 IGxiOwotCQkJKnRvKysgPSAqZnJvbSAmIDB4ZmY7Ci0JCQljbnQgKz0gMjsKLQkJfQotCQllbHNl IGlmIChJU19MQzIobGIpKQotCQl7Ci0JCQkqdG8rKyA9IGxiOwotCQkJKnRvKysgPSAoKmZyb20g Pj4gOCkgJiAweGZmOwotCQkJKnRvKysgPSAqZnJvbSAmIDB4ZmY7Ci0JCQljbnQgKz0gMzsKLQkJ fQotCQllbHNlIGlmIChJU19MQ1BSVjFfQV9SQU5HRShsYikpCi0JCXsKLQkJCSp0bysrID0gTENQ UlYxX0E7Ci0JCQkqdG8rKyA9IGxiOwotCQkJKnRvKysgPSAqZnJvbSAmIDB4ZmY7Ci0JCQljbnQg Kz0gMzsKLQkJfQotCQllbHNlIGlmIChJU19MQ1BSVjFfQl9SQU5HRShsYikpCi0JCXsKLQkJCSp0 bysrID0gTENQUlYxX0I7Ci0JCQkqdG8rKyA9IGxiOwotCQkJKnRvKysgPSAqZnJvbSAmIDB4ZmY7 Ci0JCQljbnQgKz0gMzsKLQkJfQotCQllbHNlIGlmIChJU19MQ1BSVjJfQV9SQU5HRShsYikpCi0J CXsKLQkJCSp0bysrID0gTENQUlYyX0E7Ci0JCQkqdG8rKyA9IGxiOwotCQkJKnRvKysgPSAoKmZy b20gPj4gOCkgJiAweGZmOwotCQkJKnRvKysgPSAqZnJvbSAmIDB4ZmY7Ci0JCQljbnQgKz0gNDsK LQkJfQotCQllbHNlIGlmIChJU19MQ1BSVjJfQl9SQU5HRShsYikpCi0JCXsKLQkJCSp0bysrID0g TENQUlYyX0I7Ci0JCQkqdG8rKyA9IGxiOwotCQkJKnRvKysgPSAoKmZyb20gPj4gOCkgJiAweGZm OwotCQkJKnRvKysgPSAqZnJvbSAmIDB4ZmY7Ci0JCQljbnQgKz0gNDsKLQkJfQotCQllbHNlCi0J CXsKLQkJCSp0bysrID0gKmZyb20gJiAweGZmOwotCQkJY250ICs9IDE7Ci0JCX0KLQkJZnJvbSsr OwotCQlsZW4tLTsKLQl9Ci0JKnRvID0gMDsKLQlyZXR1cm4gY250OwotfQotCi0vKiBleHBvcnRl ZCBmb3IgZGlyZWN0IHVzZSBieSBjb252LmMgKi8KLWludAotcGdfbXVsZV9tYmxlbihjb25zdCB1 bnNpZ25lZCBjaGFyICpzKQotewotCWludAkJCWxlbjsKLQotCWlmIChJU19MQzEoKnMpKQotCQls ZW4gPSAyOwotCWVsc2UgaWYgKElTX0xDUFJWMSgqcykpCi0JCWxlbiA9IDM7Ci0JZWxzZSBpZiAo SVNfTEMyKCpzKSkKLQkJbGVuID0gMzsKLQllbHNlIGlmIChJU19MQ1BSVjIoKnMpKQotCQlsZW4g PSA0OwotCWVsc2UKLQkJbGVuID0gMTsJCQkJLyogYXNzdW1lIEFTQ0lJICovCi0JcmV0dXJuIGxl bjsKLX0KLQotc3RhdGljIGludAotcGdfbXVsZV9kc3BsZW4oY29uc3QgdW5zaWduZWQgY2hhciAq cykKLXsKLQlpbnQJCQlsZW47Ci0KLQkvKgotCSAqIE5vdGU6IGl0J3Mgbm90IHJlYWxseSBhcHBy b3ByaWF0ZSB0byBhc3N1bWUgdGhhdCBhbGwgbXVsdGlieXRlIGNoYXJzZXRzCi0JICogYXJlIGRv dWJsZS13aWRlIG9uIHNjcmVlbi4gIEJ1dCB0aGlzIHNlZW1zIGFuIG9rYXkgYXBwcm94aW1hdGlv biBmb3IKLQkgKiB0aGUgTVVMRSBjaGFyc2V0cyB3ZSBjdXJyZW50bHkgc3VwcG9ydC4KLQkgKi8K LQotCWlmIChJU19MQzEoKnMpKQotCQlsZW4gPSAxOwotCWVsc2UgaWYgKElTX0xDUFJWMSgqcykp Ci0JCWxlbiA9IDE7Ci0JZWxzZSBpZiAoSVNfTEMyKCpzKSkKLQkJbGVuID0gMjsKLQllbHNlIGlm IChJU19MQ1BSVjIoKnMpKQotCQlsZW4gPSAyOwotCWVsc2UKLQkJbGVuID0gMTsJCQkJLyogYXNz dW1lIEFTQ0lJICovCi0KLQlyZXR1cm4gbGVuOwotfQotCiAvKgogICogSVNPODg1OS0xCiAgKi8K QEAgLTEzNzgsNTYgKzEyMDYsNiBAQCBwZ19qb2hhYl92ZXJpZnlzdHIoY29uc3QgdW5zaWduZWQg Y2hhciAqcywgaW50IGxlbikKIAlyZXR1cm4gcyAtIHN0YXJ0OwogfQogCi1zdGF0aWMgaW50Ci1w Z19tdWxlX3ZlcmlmeWNoYXIoY29uc3QgdW5zaWduZWQgY2hhciAqcywgaW50IGxlbikKLXsKLQlp bnQJCQlsLAotCQkJCW1ibDsKLQl1bnNpZ25lZCBjaGFyIGM7Ci0KLQlsID0gbWJsID0gcGdfbXVs ZV9tYmxlbihzKTsKLQotCWlmIChsZW4gPCBsKQotCQlyZXR1cm4gLTE7Ci0KLQl3aGlsZSAoLS1s ID4gMCkKLQl7Ci0JCWMgPSAqKytzOwotCQlpZiAoIUlTX0hJR0hCSVRfU0VUKGMpKQotCQkJcmV0 dXJuIC0xOwotCX0KLQlyZXR1cm4gbWJsOwotfQotCi1zdGF0aWMgaW50Ci1wZ19tdWxlX3Zlcmlm eXN0cihjb25zdCB1bnNpZ25lZCBjaGFyICpzLCBpbnQgbGVuKQotewotCWNvbnN0IHVuc2lnbmVk IGNoYXIgKnN0YXJ0ID0gczsKLQotCXdoaWxlIChsZW4gPiAwKQotCXsKLQkJaW50CQkJbDsKLQot CQkvKiBmYXN0IHBhdGggZm9yIEFTQ0lJLXN1YnNldCBjaGFyYWN0ZXJzICovCi0JCWlmICghSVNf SElHSEJJVF9TRVQoKnMpKQotCQl7Ci0JCQlpZiAoKnMgPT0gJ1wwJykKLQkJCQlicmVhazsKLQkJ CWwgPSAxOwotCQl9Ci0JCWVsc2UKLQkJewotCQkJbCA9IHBnX211bGVfdmVyaWZ5Y2hhcihzLCBs ZW4pOwotCQkJaWYgKGwgPT0gLTEpCi0JCQkJYnJlYWs7Ci0JCX0KLQkJcyArPSBsOwotCQlsZW4g LT0gbDsKLQl9Ci0KLQlyZXR1cm4gcyAtIHN0YXJ0OwotfQotCiBzdGF0aWMgaW50CiBwZ19sYXRp bjFfdmVyaWZ5Y2hhcihjb25zdCB1bnNpZ25lZCBjaGFyICpzLCBpbnQgbGVuKQogewpAQCAtMjA5 MSw3ICsxODY5LDYgQEAgY29uc3QgcGdfd2NoYXJfdGJsIHBnX3djaGFyX3RhYmxlW10gPSB7CiAJ W1BHX0VVQ19UV10gPSB7cGdfZXVjdHcyd2NoYXJfd2l0aF9sZW4sIHBnX3djaGFyMmV1Y193aXRo X2xlbiwgcGdfZXVjdHdfbWJsZW4sIHBnX2V1Y3R3X2RzcGxlbiwgcGdfZXVjdHdfdmVyaWZ5Y2hh ciwgcGdfZXVjdHdfdmVyaWZ5c3RyLCA0fSwKIAlbUEdfRVVDX0pJU18yMDA0XSA9IHtwZ19ldWNq cDJ3Y2hhcl93aXRoX2xlbiwgcGdfd2NoYXIyZXVjX3dpdGhfbGVuLCBwZ19ldWNqcF9tYmxlbiwg cGdfZXVjanBfZHNwbGVuLCBwZ19ldWNqcF92ZXJpZnljaGFyLCBwZ19ldWNqcF92ZXJpZnlzdHIs IDN9LAogCVtQR19VVEY4XSA9IHtwZ191dGYyd2NoYXJfd2l0aF9sZW4sIHBnX3djaGFyMnV0Zl93 aXRoX2xlbiwgcGdfdXRmX21ibGVuLCBwZ191dGZfZHNwbGVuLCBwZ191dGY4X3ZlcmlmeWNoYXIs IHBnX3V0ZjhfdmVyaWZ5c3RyLCA0fSwKLQlbUEdfTVVMRV9JTlRFUk5BTF0gPSB7cGdfbXVsZTJ3 Y2hhcl93aXRoX2xlbiwgcGdfd2NoYXIybXVsZV93aXRoX2xlbiwgcGdfbXVsZV9tYmxlbiwgcGdf bXVsZV9kc3BsZW4sIHBnX211bGVfdmVyaWZ5Y2hhciwgcGdfbXVsZV92ZXJpZnlzdHIsIDR9LAog CVtQR19MQVRJTjFdID0ge3BnX2xhdGluMTJ3Y2hhcl93aXRoX2xlbiwgcGdfd2NoYXIyc2luZ2xl X3dpdGhfbGVuLCBwZ19sYXRpbjFfbWJsZW4sIHBnX2xhdGluMV9kc3BsZW4sIHBnX2xhdGluMV92 ZXJpZnljaGFyLCBwZ19sYXRpbjFfdmVyaWZ5c3RyLCAxfSwKIAlbUEdfTEFUSU4yXSA9IHtwZ19s YXRpbjEyd2NoYXJfd2l0aF9sZW4sIHBnX3djaGFyMnNpbmdsZV93aXRoX2xlbiwgcGdfbGF0aW4x X21ibGVuLCBwZ19sYXRpbjFfZHNwbGVuLCBwZ19sYXRpbjFfdmVyaWZ5Y2hhciwgcGdfbGF0aW4x X3ZlcmlmeXN0ciwgMX0sCiAJW1BHX0xBVElOM10gPSB7cGdfbGF0aW4xMndjaGFyX3dpdGhfbGVu LCBwZ193Y2hhcjJzaW5nbGVfd2l0aF9sZW4sIHBnX2xhdGluMV9tYmxlbiwgcGdfbGF0aW4xX2Rz cGxlbiwgcGdfbGF0aW4xX3ZlcmlmeWNoYXIsIHBnX2xhdGluMV92ZXJpZnlzdHIsIDF9LApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb252ZXJzaW9uLmRhdCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfY29udmVyc2lvbi5kYXQKaW5kZXggNjhiZWIxMDBhNDAuLjQyNDNjODAw NmE3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnZlcnNpb24uZGF0Cisr KyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29udmVyc2lvbi5kYXQKQEAgLTE1LDMwICsxNSw2 IEBACiAKIFsKIAoteyBvaWQgPT4gJzQ0MDInLCBkZXNjciA9PiAnY29udmVyc2lvbiBmb3IgS09J OFIgdG8gTVVMRV9JTlRFUk5BTCcsCi0gIGNvbm5hbWUgPT4gJ2tvaThfcl90b19taWMnLCBjb25m b3JlbmNvZGluZyA9PiAnUEdfS09JOFInLAotICBjb250b2VuY29kaW5nID0+ICdQR19NVUxFX0lO VEVSTkFMJywgY29ucHJvYyA9PiAna29pOHJfdG9fbWljJyB9LAoteyBvaWQgPT4gJzQ0MDMnLCBk ZXNjciA9PiAnY29udmVyc2lvbiBmb3IgTVVMRV9JTlRFUk5BTCB0byBLT0k4UicsCi0gIGNvbm5h bWUgPT4gJ21pY190b19rb2k4X3InLCBjb25mb3JlbmNvZGluZyA9PiAnUEdfTVVMRV9JTlRFUk5B TCcsCi0gIGNvbnRvZW5jb2RpbmcgPT4gJ1BHX0tPSThSJywgY29ucHJvYyA9PiAnbWljX3RvX2tv aThyJyB9LAoteyBvaWQgPT4gJzQ0MDQnLCBkZXNjciA9PiAnY29udmVyc2lvbiBmb3IgSVNPLTg4 NTktNSB0byBNVUxFX0lOVEVSTkFMJywKLSAgY29ubmFtZSA9PiAnaXNvXzg4NTlfNV90b19taWMn LCBjb25mb3JlbmNvZGluZyA9PiAnUEdfSVNPXzg4NTlfNScsCi0gIGNvbnRvZW5jb2RpbmcgPT4g J1BHX01VTEVfSU5URVJOQUwnLCBjb25wcm9jID0+ICdpc29fdG9fbWljJyB9LAoteyBvaWQgPT4g JzQ0MDUnLCBkZXNjciA9PiAnY29udmVyc2lvbiBmb3IgTVVMRV9JTlRFUk5BTCB0byBJU08tODg1 OS01JywKLSAgY29ubmFtZSA9PiAnbWljX3RvX2lzb184ODU5XzUnLCBjb25mb3JlbmNvZGluZyA9 PiAnUEdfTVVMRV9JTlRFUk5BTCcsCi0gIGNvbnRvZW5jb2RpbmcgPT4gJ1BHX0lTT184ODU5XzUn LCBjb25wcm9jID0+ICdtaWNfdG9faXNvJyB9LAoteyBvaWQgPT4gJzQ0MDYnLCBkZXNjciA9PiAn Y29udmVyc2lvbiBmb3IgV0lOMTI1MSB0byBNVUxFX0lOVEVSTkFMJywKLSAgY29ubmFtZSA9PiAn d2luZG93c18xMjUxX3RvX21pYycsIGNvbmZvcmVuY29kaW5nID0+ICdQR19XSU4xMjUxJywKLSAg Y29udG9lbmNvZGluZyA9PiAnUEdfTVVMRV9JTlRFUk5BTCcsIGNvbnByb2MgPT4gJ3dpbjEyNTFf dG9fbWljJyB9LAoteyBvaWQgPT4gJzQ0MDcnLCBkZXNjciA9PiAnY29udmVyc2lvbiBmb3IgTVVM RV9JTlRFUk5BTCB0byBXSU4xMjUxJywKLSAgY29ubmFtZSA9PiAnbWljX3RvX3dpbmRvd3NfMTI1 MScsIGNvbmZvcmVuY29kaW5nID0+ICdQR19NVUxFX0lOVEVSTkFMJywKLSAgY29udG9lbmNvZGlu ZyA9PiAnUEdfV0lOMTI1MScsIGNvbnByb2MgPT4gJ21pY190b193aW4xMjUxJyB9LAoteyBvaWQg PT4gJzQ0MDgnLCBkZXNjciA9PiAnY29udmVyc2lvbiBmb3IgV0lOODY2IHRvIE1VTEVfSU5URVJO QUwnLAotICBjb25uYW1lID0+ICd3aW5kb3dzXzg2Nl90b19taWMnLCBjb25mb3JlbmNvZGluZyA9 PiAnUEdfV0lOODY2JywKLSAgY29udG9lbmNvZGluZyA9PiAnUEdfTVVMRV9JTlRFUk5BTCcsIGNv bnByb2MgPT4gJ3dpbjg2Nl90b19taWMnIH0sCi17IG9pZCA9PiAnNDQwOScsIGRlc2NyID0+ICdj b252ZXJzaW9uIGZvciBNVUxFX0lOVEVSTkFMIHRvIFdJTjg2NicsCi0gIGNvbm5hbWUgPT4gJ21p Y190b193aW5kb3dzXzg2NicsIGNvbmZvcmVuY29kaW5nID0+ICdQR19NVUxFX0lOVEVSTkFMJywK LSAgY29udG9lbmNvZGluZyA9PiAnUEdfV0lOODY2JywgY29ucHJvYyA9PiAnbWljX3RvX3dpbjg2 NicgfSwKIHsgb2lkID0+ICc0NDEwJywgZGVzY3IgPT4gJ2NvbnZlcnNpb24gZm9yIEtPSThSIHRv IFdJTjEyNTEnLAogICBjb25uYW1lID0+ICdrb2k4X3JfdG9fd2luZG93c18xMjUxJywgY29uZm9y ZW5jb2RpbmcgPT4gJ1BHX0tPSThSJywKICAgY29udG9lbmNvZGluZyA9PiAnUEdfV0lOMTI1MScs IGNvbnByb2MgPT4gJ2tvaThyX3RvX3dpbjEyNTEnIH0sCkBAIC03NSw5MCArNTEsMjQgQEAKIHsg b2lkID0+ICc0NDIxJywgZGVzY3IgPT4gJ2NvbnZlcnNpb24gZm9yIFdJTjg2NiB0byBJU08tODg1 OS01JywKICAgY29ubmFtZSA9PiAnd2luZG93c184NjZfdG9faXNvXzg4NTlfNScsIGNvbmZvcmVu Y29kaW5nID0+ICdQR19XSU44NjYnLAogICBjb250b2VuY29kaW5nID0+ICdQR19JU09fODg1OV81 JywgY29ucHJvYyA9PiAnd2luODY2X3RvX2lzbycgfSwKLXsgb2lkID0+ICc0NDIyJywgZGVzY3Ig PT4gJ2NvbnZlcnNpb24gZm9yIEVVQ19DTiB0byBNVUxFX0lOVEVSTkFMJywKLSAgY29ubmFtZSA9 PiAnZXVjX2NuX3RvX21pYycsIGNvbmZvcmVuY29kaW5nID0+ICdQR19FVUNfQ04nLAotICBjb250 b2VuY29kaW5nID0+ICdQR19NVUxFX0lOVEVSTkFMJywgY29ucHJvYyA9PiAnZXVjX2NuX3RvX21p YycgfSwKLXsgb2lkID0+ICc0NDIzJywgZGVzY3IgPT4gJ2NvbnZlcnNpb24gZm9yIE1VTEVfSU5U RVJOQUwgdG8gRVVDX0NOJywKLSAgY29ubmFtZSA9PiAnbWljX3RvX2V1Y19jbicsIGNvbmZvcmVu Y29kaW5nID0+ICdQR19NVUxFX0lOVEVSTkFMJywKLSAgY29udG9lbmNvZGluZyA9PiAnUEdfRVVD X0NOJywgY29ucHJvYyA9PiAnbWljX3RvX2V1Y19jbicgfSwKIHsgb2lkID0+ICc0NDI0JywgZGVz Y3IgPT4gJ2NvbnZlcnNpb24gZm9yIEVVQ19KUCB0byBTSklTJywKICAgY29ubmFtZSA9PiAnZXVj X2pwX3RvX3NqaXMnLCBjb25mb3JlbmNvZGluZyA9PiAnUEdfRVVDX0pQJywKICAgY29udG9lbmNv ZGluZyA9PiAnUEdfU0pJUycsIGNvbnByb2MgPT4gJ2V1Y19qcF90b19zamlzJyB9LAogeyBvaWQg PT4gJzQ0MjUnLCBkZXNjciA9PiAnY29udmVyc2lvbiBmb3IgU0pJUyB0byBFVUNfSlAnLAogICBj b25uYW1lID0+ICdzamlzX3RvX2V1Y19qcCcsIGNvbmZvcmVuY29kaW5nID0+ICdQR19TSklTJywK ICAgY29udG9lbmNvZGluZyA9PiAnUEdfRVVDX0pQJywgY29ucHJvYyA9PiAnc2ppc190b19ldWNf anAnIH0sCi17IG9pZCA9PiAnNDQyNicsIGRlc2NyID0+ICdjb252ZXJzaW9uIGZvciBFVUNfSlAg dG8gTVVMRV9JTlRFUk5BTCcsCi0gIGNvbm5hbWUgPT4gJ2V1Y19qcF90b19taWMnLCBjb25mb3Jl bmNvZGluZyA9PiAnUEdfRVVDX0pQJywKLSAgY29udG9lbmNvZGluZyA9PiAnUEdfTVVMRV9JTlRF Uk5BTCcsIGNvbnByb2MgPT4gJ2V1Y19qcF90b19taWMnIH0sCi17IG9pZCA9PiAnNDQyNycsIGRl c2NyID0+ICdjb252ZXJzaW9uIGZvciBTSklTIHRvIE1VTEVfSU5URVJOQUwnLAotICBjb25uYW1l ID0+ICdzamlzX3RvX21pYycsIGNvbmZvcmVuY29kaW5nID0+ICdQR19TSklTJywKLSAgY29udG9l bmNvZGluZyA9PiAnUEdfTVVMRV9JTlRFUk5BTCcsIGNvbnByb2MgPT4gJ3NqaXNfdG9fbWljJyB9 LAoteyBvaWQgPT4gJzQ0MjgnLCBkZXNjciA9PiAnY29udmVyc2lvbiBmb3IgTVVMRV9JTlRFUk5B TCB0byBFVUNfSlAnLAotICBjb25uYW1lID0+ICdtaWNfdG9fZXVjX2pwJywgY29uZm9yZW5jb2Rp bmcgPT4gJ1BHX01VTEVfSU5URVJOQUwnLAotICBjb250b2VuY29kaW5nID0+ICdQR19FVUNfSlAn LCBjb25wcm9jID0+ICdtaWNfdG9fZXVjX2pwJyB9LAoteyBvaWQgPT4gJzQ0MjknLCBkZXNjciA9 PiAnY29udmVyc2lvbiBmb3IgTVVMRV9JTlRFUk5BTCB0byBTSklTJywKLSAgY29ubmFtZSA9PiAn bWljX3RvX3NqaXMnLCBjb25mb3JlbmNvZGluZyA9PiAnUEdfTVVMRV9JTlRFUk5BTCcsCi0gIGNv bnRvZW5jb2RpbmcgPT4gJ1BHX1NKSVMnLCBjb25wcm9jID0+ICdtaWNfdG9fc2ppcycgfSwKLXsg b2lkID0+ICc0NDMwJywgZGVzY3IgPT4gJ2NvbnZlcnNpb24gZm9yIEVVQ19LUiB0byBNVUxFX0lO VEVSTkFMJywKLSAgY29ubmFtZSA9PiAnZXVjX2tyX3RvX21pYycsIGNvbmZvcmVuY29kaW5nID0+ ICdQR19FVUNfS1InLAotICBjb250b2VuY29kaW5nID0+ICdQR19NVUxFX0lOVEVSTkFMJywgY29u cHJvYyA9PiAnZXVjX2tyX3RvX21pYycgfSwKLXsgb2lkID0+ICc0NDMxJywgZGVzY3IgPT4gJ2Nv bnZlcnNpb24gZm9yIE1VTEVfSU5URVJOQUwgdG8gRVVDX0tSJywKLSAgY29ubmFtZSA9PiAnbWlj X3RvX2V1Y19rcicsIGNvbmZvcmVuY29kaW5nID0+ICdQR19NVUxFX0lOVEVSTkFMJywKLSAgY29u dG9lbmNvZGluZyA9PiAnUEdfRVVDX0tSJywgY29ucHJvYyA9PiAnbWljX3RvX2V1Y19rcicgfSwK IHsgb2lkID0+ICc0NDMyJywgZGVzY3IgPT4gJ2NvbnZlcnNpb24gZm9yIEVVQ19UVyB0byBCSUc1 JywKICAgY29ubmFtZSA9PiAnZXVjX3R3X3RvX2JpZzUnLCBjb25mb3JlbmNvZGluZyA9PiAnUEdf RVVDX1RXJywKICAgY29udG9lbmNvZGluZyA9PiAnUEdfQklHNScsIGNvbnByb2MgPT4gJ2V1Y190 d190b19iaWc1JyB9LAogeyBvaWQgPT4gJzQ0MzMnLCBkZXNjciA9PiAnY29udmVyc2lvbiBmb3Ig QklHNSB0byBFVUNfVFcnLAogICBjb25uYW1lID0+ICdiaWc1X3RvX2V1Y190dycsIGNvbmZvcmVu Y29kaW5nID0+ICdQR19CSUc1JywKICAgY29udG9lbmNvZGluZyA9PiAnUEdfRVVDX1RXJywgY29u cHJvYyA9PiAnYmlnNV90b19ldWNfdHcnIH0sCi17IG9pZCA9PiAnNDQzNCcsIGRlc2NyID0+ICdj b252ZXJzaW9uIGZvciBFVUNfVFcgdG8gTVVMRV9JTlRFUk5BTCcsCi0gIGNvbm5hbWUgPT4gJ2V1 Y190d190b19taWMnLCBjb25mb3JlbmNvZGluZyA9PiAnUEdfRVVDX1RXJywKLSAgY29udG9lbmNv ZGluZyA9PiAnUEdfTVVMRV9JTlRFUk5BTCcsIGNvbnByb2MgPT4gJ2V1Y190d190b19taWMnIH0s Ci17IG9pZCA9PiAnNDQzNScsIGRlc2NyID0+ICdjb252ZXJzaW9uIGZvciBCSUc1IHRvIE1VTEVf SU5URVJOQUwnLAotICBjb25uYW1lID0+ICdiaWc1X3RvX21pYycsIGNvbmZvcmVuY29kaW5nID0+ ICdQR19CSUc1JywKLSAgY29udG9lbmNvZGluZyA9PiAnUEdfTVVMRV9JTlRFUk5BTCcsIGNvbnBy b2MgPT4gJ2JpZzVfdG9fbWljJyB9LAoteyBvaWQgPT4gJzQ0MzYnLCBkZXNjciA9PiAnY29udmVy c2lvbiBmb3IgTVVMRV9JTlRFUk5BTCB0byBFVUNfVFcnLAotICBjb25uYW1lID0+ICdtaWNfdG9f ZXVjX3R3JywgY29uZm9yZW5jb2RpbmcgPT4gJ1BHX01VTEVfSU5URVJOQUwnLAotICBjb250b2Vu Y29kaW5nID0+ICdQR19FVUNfVFcnLCBjb25wcm9jID0+ICdtaWNfdG9fZXVjX3R3JyB9LAoteyBv aWQgPT4gJzQ0MzcnLCBkZXNjciA9PiAnY29udmVyc2lvbiBmb3IgTVVMRV9JTlRFUk5BTCB0byBC SUc1JywKLSAgY29ubmFtZSA9PiAnbWljX3RvX2JpZzUnLCBjb25mb3JlbmNvZGluZyA9PiAnUEdf TVVMRV9JTlRFUk5BTCcsCi0gIGNvbnRvZW5jb2RpbmcgPT4gJ1BHX0JJRzUnLCBjb25wcm9jID0+ ICdtaWNfdG9fYmlnNScgfSwKLXsgb2lkID0+ICc0NDM4JywgZGVzY3IgPT4gJ2NvbnZlcnNpb24g Zm9yIExBVElOMiB0byBNVUxFX0lOVEVSTkFMJywKLSAgY29ubmFtZSA9PiAnaXNvXzg4NTlfMl90 b19taWMnLCBjb25mb3JlbmNvZGluZyA9PiAnUEdfTEFUSU4yJywKLSAgY29udG9lbmNvZGluZyA9 PiAnUEdfTVVMRV9JTlRFUk5BTCcsIGNvbnByb2MgPT4gJ2xhdGluMl90b19taWMnIH0sCi17IG9p ZCA9PiAnNDQzOScsIGRlc2NyID0+ICdjb252ZXJzaW9uIGZvciBNVUxFX0lOVEVSTkFMIHRvIExB VElOMicsCi0gIGNvbm5hbWUgPT4gJ21pY190b19pc29fODg1OV8yJywgY29uZm9yZW5jb2Rpbmcg PT4gJ1BHX01VTEVfSU5URVJOQUwnLAotICBjb250b2VuY29kaW5nID0+ICdQR19MQVRJTjInLCBj b25wcm9jID0+ICdtaWNfdG9fbGF0aW4yJyB9LAoteyBvaWQgPT4gJzQ0NDAnLCBkZXNjciA9PiAn Y29udmVyc2lvbiBmb3IgV0lOMTI1MCB0byBNVUxFX0lOVEVSTkFMJywKLSAgY29ubmFtZSA9PiAn d2luZG93c18xMjUwX3RvX21pYycsIGNvbmZvcmVuY29kaW5nID0+ICdQR19XSU4xMjUwJywKLSAg Y29udG9lbmNvZGluZyA9PiAnUEdfTVVMRV9JTlRFUk5BTCcsIGNvbnByb2MgPT4gJ3dpbjEyNTBf dG9fbWljJyB9LAoteyBvaWQgPT4gJzQ0NDEnLCBkZXNjciA9PiAnY29udmVyc2lvbiBmb3IgTVVM RV9JTlRFUk5BTCB0byBXSU4xMjUwJywKLSAgY29ubmFtZSA9PiAnbWljX3RvX3dpbmRvd3NfMTI1 MCcsIGNvbmZvcmVuY29kaW5nID0+ICdQR19NVUxFX0lOVEVSTkFMJywKLSAgY29udG9lbmNvZGlu ZyA9PiAnUEdfV0lOMTI1MCcsIGNvbnByb2MgPT4gJ21pY190b193aW4xMjUwJyB9LAogeyBvaWQg PT4gJzQ0NDInLCBkZXNjciA9PiAnY29udmVyc2lvbiBmb3IgTEFUSU4yIHRvIFdJTjEyNTAnLAog ICBjb25uYW1lID0+ICdpc29fODg1OV8yX3RvX3dpbmRvd3NfMTI1MCcsIGNvbmZvcmVuY29kaW5n ID0+ICdQR19MQVRJTjInLAogICBjb250b2VuY29kaW5nID0+ICdQR19XSU4xMjUwJywgY29ucHJv YyA9PiAnbGF0aW4yX3RvX3dpbjEyNTAnIH0sCiB7IG9pZCA9PiAnNDQ0MycsIGRlc2NyID0+ICdj b252ZXJzaW9uIGZvciBXSU4xMjUwIHRvIExBVElOMicsCiAgIGNvbm5hbWUgPT4gJ3dpbmRvd3Nf MTI1MF90b19pc29fODg1OV8yJywgY29uZm9yZW5jb2RpbmcgPT4gJ1BHX1dJTjEyNTAnLAogICBj b250b2VuY29kaW5nID0+ICdQR19MQVRJTjInLCBjb25wcm9jID0+ICd3aW4xMjUwX3RvX2xhdGlu MicgfSwKLXsgb2lkID0+ICc0NDQ0JywgZGVzY3IgPT4gJ2NvbnZlcnNpb24gZm9yIExBVElOMSB0 byBNVUxFX0lOVEVSTkFMJywKLSAgY29ubmFtZSA9PiAnaXNvXzg4NTlfMV90b19taWMnLCBjb25m b3JlbmNvZGluZyA9PiAnUEdfTEFUSU4xJywKLSAgY29udG9lbmNvZGluZyA9PiAnUEdfTVVMRV9J TlRFUk5BTCcsIGNvbnByb2MgPT4gJ2xhdGluMV90b19taWMnIH0sCi17IG9pZCA9PiAnNDQ0NScs IGRlc2NyID0+ICdjb252ZXJzaW9uIGZvciBNVUxFX0lOVEVSTkFMIHRvIExBVElOMScsCi0gIGNv bm5hbWUgPT4gJ21pY190b19pc29fODg1OV8xJywgY29uZm9yZW5jb2RpbmcgPT4gJ1BHX01VTEVf SU5URVJOQUwnLAotICBjb250b2VuY29kaW5nID0+ICdQR19MQVRJTjEnLCBjb25wcm9jID0+ICdt aWNfdG9fbGF0aW4xJyB9LAoteyBvaWQgPT4gJzQ0NDYnLCBkZXNjciA9PiAnY29udmVyc2lvbiBm b3IgTEFUSU4zIHRvIE1VTEVfSU5URVJOQUwnLAotICBjb25uYW1lID0+ICdpc29fODg1OV8zX3Rv X21pYycsIGNvbmZvcmVuY29kaW5nID0+ICdQR19MQVRJTjMnLAotICBjb250b2VuY29kaW5nID0+ ICdQR19NVUxFX0lOVEVSTkFMJywgY29ucHJvYyA9PiAnbGF0aW4zX3RvX21pYycgfSwKLXsgb2lk ID0+ICc0NDQ3JywgZGVzY3IgPT4gJ2NvbnZlcnNpb24gZm9yIE1VTEVfSU5URVJOQUwgdG8gTEFU SU4zJywKLSAgY29ubmFtZSA9PiAnbWljX3RvX2lzb184ODU5XzMnLCBjb25mb3JlbmNvZGluZyA9 PiAnUEdfTVVMRV9JTlRFUk5BTCcsCi0gIGNvbnRvZW5jb2RpbmcgPT4gJ1BHX0xBVElOMycsIGNv bnByb2MgPT4gJ21pY190b19sYXRpbjMnIH0sCi17IG9pZCA9PiAnNDQ0OCcsIGRlc2NyID0+ICdj b252ZXJzaW9uIGZvciBMQVRJTjQgdG8gTVVMRV9JTlRFUk5BTCcsCi0gIGNvbm5hbWUgPT4gJ2lz b184ODU5XzRfdG9fbWljJywgY29uZm9yZW5jb2RpbmcgPT4gJ1BHX0xBVElONCcsCi0gIGNvbnRv ZW5jb2RpbmcgPT4gJ1BHX01VTEVfSU5URVJOQUwnLCBjb25wcm9jID0+ICdsYXRpbjRfdG9fbWlj JyB9LAoteyBvaWQgPT4gJzQ0NDknLCBkZXNjciA9PiAnY29udmVyc2lvbiBmb3IgTVVMRV9JTlRF Uk5BTCB0byBMQVRJTjQnLAotICBjb25uYW1lID0+ICdtaWNfdG9faXNvXzg4NTlfNCcsIGNvbmZv cmVuY29kaW5nID0+ICdQR19NVUxFX0lOVEVSTkFMJywKLSAgY29udG9lbmNvZGluZyA9PiAnUEdf TEFUSU40JywgY29ucHJvYyA9PiAnbWljX3RvX2xhdGluNCcgfSwKIHsgb2lkID0+ICc0NDUyJywg ZGVzY3IgPT4gJ2NvbnZlcnNpb24gZm9yIEJJRzUgdG8gVVRGOCcsCiAgIGNvbm5hbWUgPT4gJ2Jp ZzVfdG9fdXRmOCcsIGNvbmZvcmVuY29kaW5nID0+ICdQR19CSUc1JywKICAgY29udG9lbmNvZGlu ZyA9PiAnUEdfVVRGOCcsIGNvbnByb2MgPT4gJ2JpZzVfdG9fdXRmOCcgfSwKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0CmluZGV4IDgzZjY1MDFkZjM4Li4zMGYwNWU0NzMwZCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0CkBAIC0xMTg1MSwxMTIgKzExODUxLDYyIEBACiAgIHByb2FyZ3R5cGVzID0+ICcn LCBwcm9zcmMgPT4gJ2JpbmFyeV91cGdyYWRlX2NyZWF0ZV9jb25mbGljdF9kZXRlY3Rpb25fc2xv dCcgfSwKIAogIyBjb252ZXJzaW9uIGZ1bmN0aW9ucwoteyBvaWQgPT4gJzQzMDInLAotICBkZXNj ciA9PiAnaW50ZXJuYWwgY29udmVyc2lvbiBmdW5jdGlvbiBmb3IgS09JOFIgdG8gTVVMRV9JTlRF Uk5BTCcsCi0gIHByb25hbWUgPT4gJ2tvaThyX3RvX21pYycsIHByb2xhbmcgPT4gJ2MnLCBwcm9y ZXR0eXBlID0+ICdpbnQ0JywKLSAgcHJvYXJndHlwZXMgPT4gJ2ludDQgaW50NCBjc3RyaW5nIGlu dGVybmFsIGludDQgYm9vbCcsCi0gIHByb3NyYyA9PiAna29pOHJfdG9fbWljJywgcHJvYmluID0+ ICckbGliZGlyL2N5cmlsbGljX2FuZF9taWMnIH0sCi17IG9pZCA9PiAnNDMwMycsCi0gIGRlc2Ny ID0+ICdpbnRlcm5hbCBjb252ZXJzaW9uIGZ1bmN0aW9uIGZvciBNVUxFX0lOVEVSTkFMIHRvIEtP SThSJywKLSAgcHJvbmFtZSA9PiAnbWljX3RvX2tvaThyJywgcHJvbGFuZyA9PiAnYycsIHByb3Jl dHR5cGUgPT4gJ2ludDQnLAotICBwcm9hcmd0eXBlcyA9PiAnaW50NCBpbnQ0IGNzdHJpbmcgaW50 ZXJuYWwgaW50NCBib29sJywKLSAgcHJvc3JjID0+ICdtaWNfdG9fa29pOHInLCBwcm9iaW4gPT4g JyRsaWJkaXIvY3lyaWxsaWNfYW5kX21pYycgfSwKLXsgb2lkID0+ICc0MzA0JywKLSAgZGVzY3Ig PT4gJ2ludGVybmFsIGNvbnZlcnNpb24gZnVuY3Rpb24gZm9yIElTTy04ODU5LTUgdG8gTVVMRV9J TlRFUk5BTCcsCi0gIHByb25hbWUgPT4gJ2lzb190b19taWMnLCBwcm9sYW5nID0+ICdjJywgcHJv cmV0dHlwZSA9PiAnaW50NCcsCi0gIHByb2FyZ3R5cGVzID0+ICdpbnQ0IGludDQgY3N0cmluZyBp bnRlcm5hbCBpbnQ0IGJvb2wnLCBwcm9zcmMgPT4gJ2lzb190b19taWMnLAotICBwcm9iaW4gPT4g JyRsaWJkaXIvY3lyaWxsaWNfYW5kX21pYycgfSwKLXsgb2lkID0+ICc0MzA1JywKLSAgZGVzY3Ig PT4gJ2ludGVybmFsIGNvbnZlcnNpb24gZnVuY3Rpb24gZm9yIE1VTEVfSU5URVJOQUwgdG8gSVNP LTg4NTktNScsCi0gIHByb25hbWUgPT4gJ21pY190b19pc28nLCBwcm9sYW5nID0+ICdjJywgcHJv cmV0dHlwZSA9PiAnaW50NCcsCi0gIHByb2FyZ3R5cGVzID0+ICdpbnQ0IGludDQgY3N0cmluZyBp bnRlcm5hbCBpbnQ0IGJvb2wnLCBwcm9zcmMgPT4gJ21pY190b19pc28nLAotICBwcm9iaW4gPT4g JyRsaWJkaXIvY3lyaWxsaWNfYW5kX21pYycgfSwKLXsgb2lkID0+ICc0MzA2JywKLSAgZGVzY3Ig PT4gJ2ludGVybmFsIGNvbnZlcnNpb24gZnVuY3Rpb24gZm9yIFdJTjEyNTEgdG8gTVVMRV9JTlRF Uk5BTCcsCi0gIHByb25hbWUgPT4gJ3dpbjEyNTFfdG9fbWljJywgcHJvbGFuZyA9PiAnYycsIHBy b3JldHR5cGUgPT4gJ2ludDQnLAotICBwcm9hcmd0eXBlcyA9PiAnaW50NCBpbnQ0IGNzdHJpbmcg aW50ZXJuYWwgaW50NCBib29sJywKLSAgcHJvc3JjID0+ICd3aW4xMjUxX3RvX21pYycsIHByb2Jp biA9PiAnJGxpYmRpci9jeXJpbGxpY19hbmRfbWljJyB9LAoteyBvaWQgPT4gJzQzMDcnLAotICBk ZXNjciA9PiAnaW50ZXJuYWwgY29udmVyc2lvbiBmdW5jdGlvbiBmb3IgTVVMRV9JTlRFUk5BTCB0 byBXSU4xMjUxJywKLSAgcHJvbmFtZSA9PiAnbWljX3RvX3dpbjEyNTEnLCBwcm9sYW5nID0+ICdj JywgcHJvcmV0dHlwZSA9PiAnaW50NCcsCi0gIHByb2FyZ3R5cGVzID0+ICdpbnQ0IGludDQgY3N0 cmluZyBpbnRlcm5hbCBpbnQ0IGJvb2wnLAotICBwcm9zcmMgPT4gJ21pY190b193aW4xMjUxJywg cHJvYmluID0+ICckbGliZGlyL2N5cmlsbGljX2FuZF9taWMnIH0sCi17IG9pZCA9PiAnNDMwOCcs Ci0gIGRlc2NyID0+ICdpbnRlcm5hbCBjb252ZXJzaW9uIGZ1bmN0aW9uIGZvciBXSU44NjYgdG8g TVVMRV9JTlRFUk5BTCcsCi0gIHByb25hbWUgPT4gJ3dpbjg2Nl90b19taWMnLCBwcm9sYW5nID0+ ICdjJywgcHJvcmV0dHlwZSA9PiAnaW50NCcsCi0gIHByb2FyZ3R5cGVzID0+ICdpbnQ0IGludDQg Y3N0cmluZyBpbnRlcm5hbCBpbnQ0IGJvb2wnLAotICBwcm9zcmMgPT4gJ3dpbjg2Nl90b19taWMn LCBwcm9iaW4gPT4gJyRsaWJkaXIvY3lyaWxsaWNfYW5kX21pYycgfSwKLXsgb2lkID0+ICc0MzA5 JywKLSAgZGVzY3IgPT4gJ2ludGVybmFsIGNvbnZlcnNpb24gZnVuY3Rpb24gZm9yIE1VTEVfSU5U RVJOQUwgdG8gV0lOODY2JywKLSAgcHJvbmFtZSA9PiAnbWljX3RvX3dpbjg2NicsIHByb2xhbmcg PT4gJ2MnLCBwcm9yZXR0eXBlID0+ICdpbnQ0JywKLSAgcHJvYXJndHlwZXMgPT4gJ2ludDQgaW50 NCBjc3RyaW5nIGludGVybmFsIGludDQgYm9vbCcsCi0gIHByb3NyYyA9PiAnbWljX3RvX3dpbjg2 NicsIHByb2JpbiA9PiAnJGxpYmRpci9jeXJpbGxpY19hbmRfbWljJyB9LAogeyBvaWQgPT4gJzQz MTAnLCBkZXNjciA9PiAnaW50ZXJuYWwgY29udmVyc2lvbiBmdW5jdGlvbiBmb3IgS09JOFIgdG8g V0lOMTI1MScsCiAgIHByb25hbWUgPT4gJ2tvaThyX3RvX3dpbjEyNTEnLCBwcm9sYW5nID0+ICdj JywgcHJvcmV0dHlwZSA9PiAnaW50NCcsCiAgIHByb2FyZ3R5cGVzID0+ICdpbnQ0IGludDQgY3N0 cmluZyBpbnRlcm5hbCBpbnQ0IGJvb2wnLAotICBwcm9zcmMgPT4gJ2tvaThyX3RvX3dpbjEyNTEn LCBwcm9iaW4gPT4gJyRsaWJkaXIvY3lyaWxsaWNfYW5kX21pYycgfSwKKyAgcHJvc3JjID0+ICdr b2k4cl90b193aW4xMjUxJywgcHJvYmluID0+ICckbGliZGlyL2N5cmlsbGljJyB9LAogeyBvaWQg PT4gJzQzMTEnLCBkZXNjciA9PiAnaW50ZXJuYWwgY29udmVyc2lvbiBmdW5jdGlvbiBmb3IgV0lO MTI1MSB0byBLT0k4UicsCiAgIHByb25hbWUgPT4gJ3dpbjEyNTFfdG9fa29pOHInLCBwcm9sYW5n ID0+ICdjJywgcHJvcmV0dHlwZSA9PiAnaW50NCcsCiAgIHByb2FyZ3R5cGVzID0+ICdpbnQ0IGlu dDQgY3N0cmluZyBpbnRlcm5hbCBpbnQ0IGJvb2wnLAotICBwcm9zcmMgPT4gJ3dpbjEyNTFfdG9f a29pOHInLCBwcm9iaW4gPT4gJyRsaWJkaXIvY3lyaWxsaWNfYW5kX21pYycgfSwKKyAgcHJvc3Jj ID0+ICd3aW4xMjUxX3RvX2tvaThyJywgcHJvYmluID0+ICckbGliZGlyL2N5cmlsbGljJyB9LAog eyBvaWQgPT4gJzQzMTInLCBkZXNjciA9PiAnaW50ZXJuYWwgY29udmVyc2lvbiBmdW5jdGlvbiBm b3IgS09JOFIgdG8gV0lOODY2JywKICAgcHJvbmFtZSA9PiAna29pOHJfdG9fd2luODY2JywgcHJv bGFuZyA9PiAnYycsIHByb3JldHR5cGUgPT4gJ2ludDQnLAogICBwcm9hcmd0eXBlcyA9PiAnaW50 NCBpbnQ0IGNzdHJpbmcgaW50ZXJuYWwgaW50NCBib29sJywKLSAgcHJvc3JjID0+ICdrb2k4cl90 b193aW44NjYnLCBwcm9iaW4gPT4gJyRsaWJkaXIvY3lyaWxsaWNfYW5kX21pYycgfSwKKyAgcHJv c3JjID0+ICdrb2k4cl90b193aW44NjYnLCBwcm9iaW4gPT4gJyRsaWJkaXIvY3lyaWxsaWMnIH0s CiB7IG9pZCA9PiAnNDMxMycsIGRlc2NyID0+ICdpbnRlcm5hbCBjb252ZXJzaW9uIGZ1bmN0aW9u IGZvciBXSU44NjYgdG8gS09JOFInLAogICBwcm9uYW1lID0+ICd3aW44NjZfdG9fa29pOHInLCBw cm9sYW5nID0+ICdjJywgcHJvcmV0dHlwZSA9PiAnaW50NCcsCiAgIHByb2FyZ3R5cGVzID0+ICdp bnQ0IGludDQgY3N0cmluZyBpbnRlcm5hbCBpbnQ0IGJvb2wnLAotICBwcm9zcmMgPT4gJ3dpbjg2 Nl90b19rb2k4cicsIHByb2JpbiA9PiAnJGxpYmRpci9jeXJpbGxpY19hbmRfbWljJyB9LAorICBw cm9zcmMgPT4gJ3dpbjg2Nl90b19rb2k4cicsIHByb2JpbiA9PiAnJGxpYmRpci9jeXJpbGxpYycg fSwKIHsgb2lkID0+ICc0MzE0JywKICAgZGVzY3IgPT4gJ2ludGVybmFsIGNvbnZlcnNpb24gZnVu Y3Rpb24gZm9yIFdJTjg2NiB0byBXSU4xMjUxJywKICAgcHJvbmFtZSA9PiAnd2luODY2X3RvX3dp bjEyNTEnLCBwcm9sYW5nID0+ICdjJywgcHJvcmV0dHlwZSA9PiAnaW50NCcsCiAgIHByb2FyZ3R5 cGVzID0+ICdpbnQ0IGludDQgY3N0cmluZyBpbnRlcm5hbCBpbnQ0IGJvb2wnLAotICBwcm9zcmMg PT4gJ3dpbjg2Nl90b193aW4xMjUxJywgcHJvYmluID0+ICckbGliZGlyL2N5cmlsbGljX2FuZF9t aWMnIH0sCisgIHByb3NyYyA9PiAnd2luODY2X3RvX3dpbjEyNTEnLCBwcm9iaW4gPT4gJyRsaWJk aXIvY3lyaWxsaWMnIH0sCiB7IG9pZCA9PiAnNDMxNScsCiAgIGRlc2NyID0+ICdpbnRlcm5hbCBj b252ZXJzaW9uIGZ1bmN0aW9uIGZvciBXSU4xMjUxIHRvIFdJTjg2NicsCiAgIHByb25hbWUgPT4g J3dpbjEyNTFfdG9fd2luODY2JywgcHJvbGFuZyA9PiAnYycsIHByb3JldHR5cGUgPT4gJ2ludDQn LAogICBwcm9hcmd0eXBlcyA9PiAnaW50NCBpbnQ0IGNzdHJpbmcgaW50ZXJuYWwgaW50NCBib29s JywKLSAgcHJvc3JjID0+ICd3aW4xMjUxX3RvX3dpbjg2NicsIHByb2JpbiA9PiAnJGxpYmRpci9j eXJpbGxpY19hbmRfbWljJyB9LAorICBwcm9zcmMgPT4gJ3dpbjEyNTFfdG9fd2luODY2JywgcHJv YmluID0+ICckbGliZGlyL2N5cmlsbGljJyB9LAogeyBvaWQgPT4gJzQzMTYnLAogICBkZXNjciA9 PiAnaW50ZXJuYWwgY29udmVyc2lvbiBmdW5jdGlvbiBmb3IgSVNPLTg4NTktNSB0byBLT0k4Uics CiAgIHByb25hbWUgPT4gJ2lzb190b19rb2k4cicsIHByb2xhbmcgPT4gJ2MnLCBwcm9yZXR0eXBl ID0+ICdpbnQ0JywKICAgcHJvYXJndHlwZXMgPT4gJ2ludDQgaW50NCBjc3RyaW5nIGludGVybmFs IGludDQgYm9vbCcsCi0gIHByb3NyYyA9PiAnaXNvX3RvX2tvaThyJywgcHJvYmluID0+ICckbGli ZGlyL2N5cmlsbGljX2FuZF9taWMnIH0sCisgIHByb3NyYyA9PiAnaXNvX3RvX2tvaThyJywgcHJv YmluID0+ICckbGliZGlyL2N5cmlsbGljJyB9LAogeyBvaWQgPT4gJzQzMTcnLAogICBkZXNjciA9 PiAnaW50ZXJuYWwgY29udmVyc2lvbiBmdW5jdGlvbiBmb3IgS09JOFIgdG8gSVNPLTg4NTktNScs CiAgIHByb25hbWUgPT4gJ2tvaThyX3RvX2lzbycsIHByb2xhbmcgPT4gJ2MnLCBwcm9yZXR0eXBl ID0+ICdpbnQ0JywKICAgcHJvYXJndHlwZXMgPT4gJ2ludDQgaW50NCBjc3RyaW5nIGludGVybmFs IGludDQgYm9vbCcsCi0gIHByb3NyYyA9PiAna29pOHJfdG9faXNvJywgcHJvYmluID0+ICckbGli ZGlyL2N5cmlsbGljX2FuZF9taWMnIH0sCisgIHByb3NyYyA9PiAna29pOHJfdG9faXNvJywgcHJv YmluID0+ICckbGliZGlyL2N5cmlsbGljJyB9LAogeyBvaWQgPT4gJzQzMTgnLAogICBkZXNjciA9 PiAnaW50ZXJuYWwgY29udmVyc2lvbiBmdW5jdGlvbiBmb3IgSVNPLTg4NTktNSB0byBXSU4xMjUx JywKICAgcHJvbmFtZSA9PiAnaXNvX3RvX3dpbjEyNTEnLCBwcm9sYW5nID0+ICdjJywgcHJvcmV0 dHlwZSA9PiAnaW50NCcsCiAgIHByb2FyZ3R5cGVzID0+ICdpbnQ0IGludDQgY3N0cmluZyBpbnRl cm5hbCBpbnQ0IGJvb2wnLAotICBwcm9zcmMgPT4gJ2lzb190b193aW4xMjUxJywgcHJvYmluID0+ ICckbGliZGlyL2N5cmlsbGljX2FuZF9taWMnIH0sCisgIHByb3NyYyA9PiAnaXNvX3RvX3dpbjEy NTEnLCBwcm9iaW4gPT4gJyRsaWJkaXIvY3lyaWxsaWMnIH0sCiB7IG9pZCA9PiAnNDMxOScsCiAg IGRlc2NyID0+ICdpbnRlcm5hbCBjb252ZXJzaW9uIGZ1bmN0aW9uIGZvciBXSU4xMjUxIHRvIElT Ty04ODU5LTUnLAogICBwcm9uYW1lID0+ICd3aW4xMjUxX3RvX2lzbycsIHByb2xhbmcgPT4gJ2Mn LCBwcm9yZXR0eXBlID0+ICdpbnQ0JywKICAgcHJvYXJndHlwZXMgPT4gJ2ludDQgaW50NCBjc3Ry aW5nIGludGVybmFsIGludDQgYm9vbCcsCi0gIHByb3NyYyA9PiAnd2luMTI1MV90b19pc28nLCBw cm9iaW4gPT4gJyRsaWJkaXIvY3lyaWxsaWNfYW5kX21pYycgfSwKKyAgcHJvc3JjID0+ICd3aW4x MjUxX3RvX2lzbycsIHByb2JpbiA9PiAnJGxpYmRpci9jeXJpbGxpYycgfSwKIHsgb2lkID0+ICc0 MzIwJywKICAgZGVzY3IgPT4gJ2ludGVybmFsIGNvbnZlcnNpb24gZnVuY3Rpb24gZm9yIElTTy04 ODU5LTUgdG8gV0lOODY2JywKICAgcHJvbmFtZSA9PiAnaXNvX3RvX3dpbjg2NicsIHByb2xhbmcg PT4gJ2MnLCBwcm9yZXR0eXBlID0+ICdpbnQ0JywKICAgcHJvYXJndHlwZXMgPT4gJ2ludDQgaW50 NCBjc3RyaW5nIGludGVybmFsIGludDQgYm9vbCcsCi0gIHByb3NyYyA9PiAnaXNvX3RvX3dpbjg2 NicsIHByb2JpbiA9PiAnJGxpYmRpci9jeXJpbGxpY19hbmRfbWljJyB9LAorICBwcm9zcmMgPT4g J2lzb190b193aW44NjYnLCBwcm9iaW4gPT4gJyRsaWJkaXIvY3lyaWxsaWMnIH0sCiB7IG9pZCA9 PiAnNDMyMScsCiAgIGRlc2NyID0+ICdpbnRlcm5hbCBjb252ZXJzaW9uIGZ1bmN0aW9uIGZvciBX SU44NjYgdG8gSVNPLTg4NTktNScsCiAgIHByb25hbWUgPT4gJ3dpbjg2Nl90b19pc28nLCBwcm9s YW5nID0+ICdjJywgcHJvcmV0dHlwZSA9PiAnaW50NCcsCiAgIHByb2FyZ3R5cGVzID0+ICdpbnQ0 IGludDQgY3N0cmluZyBpbnRlcm5hbCBpbnQ0IGJvb2wnLAotICBwcm9zcmMgPT4gJ3dpbjg2Nl90 b19pc28nLCBwcm9iaW4gPT4gJyRsaWJkaXIvY3lyaWxsaWNfYW5kX21pYycgfSwKLXsgb2lkID0+ ICc0MzIyJywKLSAgZGVzY3IgPT4gJ2ludGVybmFsIGNvbnZlcnNpb24gZnVuY3Rpb24gZm9yIEVV Q19DTiB0byBNVUxFX0lOVEVSTkFMJywKLSAgcHJvbmFtZSA9PiAnZXVjX2NuX3RvX21pYycsIHBy b2xhbmcgPT4gJ2MnLCBwcm9yZXR0eXBlID0+ICdpbnQ0JywKLSAgcHJvYXJndHlwZXMgPT4gJ2lu dDQgaW50NCBjc3RyaW5nIGludGVybmFsIGludDQgYm9vbCcsCi0gIHByb3NyYyA9PiAnZXVjX2Nu X3RvX21pYycsIHByb2JpbiA9PiAnJGxpYmRpci9ldWNfY25fYW5kX21pYycgfSwKLXsgb2lkID0+ ICc0MzIzJywKLSAgZGVzY3IgPT4gJ2ludGVybmFsIGNvbnZlcnNpb24gZnVuY3Rpb24gZm9yIE1V TEVfSU5URVJOQUwgdG8gRVVDX0NOJywKLSAgcHJvbmFtZSA9PiAnbWljX3RvX2V1Y19jbicsIHBy b2xhbmcgPT4gJ2MnLCBwcm9yZXR0eXBlID0+ICdpbnQ0JywKLSAgcHJvYXJndHlwZXMgPT4gJ2lu dDQgaW50NCBjc3RyaW5nIGludGVybmFsIGludDQgYm9vbCcsCi0gIHByb3NyYyA9PiAnbWljX3Rv X2V1Y19jbicsIHByb2JpbiA9PiAnJGxpYmRpci9ldWNfY25fYW5kX21pYycgfSwKKyAgcHJvc3Jj ID0+ICd3aW44NjZfdG9faXNvJywgcHJvYmluID0+ICckbGliZGlyL2N5cmlsbGljJyB9LAogeyBv aWQgPT4gJzQzMjQnLCBkZXNjciA9PiAnaW50ZXJuYWwgY29udmVyc2lvbiBmdW5jdGlvbiBmb3Ig RVVDX0pQIHRvIFNKSVMnLAogICBwcm9uYW1lID0+ICdldWNfanBfdG9fc2ppcycsIHByb2xhbmcg PT4gJ2MnLCBwcm9yZXR0eXBlID0+ICdpbnQ0JywKICAgcHJvYXJndHlwZXMgPT4gJ2ludDQgaW50 NCBjc3RyaW5nIGludGVybmFsIGludDQgYm9vbCcsCkBAIC0xMTk2NSwzNiArMTE5MTUsNiBAQAog ICBwcm9uYW1lID0+ICdzamlzX3RvX2V1Y19qcCcsIHByb2xhbmcgPT4gJ2MnLCBwcm9yZXR0eXBl ID0+ICdpbnQ0JywKICAgcHJvYXJndHlwZXMgPT4gJ2ludDQgaW50NCBjc3RyaW5nIGludGVybmFs IGludDQgYm9vbCcsCiAgIHByb3NyYyA9PiAnc2ppc190b19ldWNfanAnLCBwcm9iaW4gPT4gJyRs aWJkaXIvZXVjX2pwX2FuZF9zamlzJyB9LAoteyBvaWQgPT4gJzQzMjYnLAotICBkZXNjciA9PiAn aW50ZXJuYWwgY29udmVyc2lvbiBmdW5jdGlvbiBmb3IgRVVDX0pQIHRvIE1VTEVfSU5URVJOQUwn LAotICBwcm9uYW1lID0+ICdldWNfanBfdG9fbWljJywgcHJvbGFuZyA9PiAnYycsIHByb3JldHR5 cGUgPT4gJ2ludDQnLAotICBwcm9hcmd0eXBlcyA9PiAnaW50NCBpbnQ0IGNzdHJpbmcgaW50ZXJu YWwgaW50NCBib29sJywKLSAgcHJvc3JjID0+ICdldWNfanBfdG9fbWljJywgcHJvYmluID0+ICck bGliZGlyL2V1Y19qcF9hbmRfc2ppcycgfSwKLXsgb2lkID0+ICc0MzI3JywKLSAgZGVzY3IgPT4g J2ludGVybmFsIGNvbnZlcnNpb24gZnVuY3Rpb24gZm9yIFNKSVMgdG8gTVVMRV9JTlRFUk5BTCcs Ci0gIHByb25hbWUgPT4gJ3NqaXNfdG9fbWljJywgcHJvbGFuZyA9PiAnYycsIHByb3JldHR5cGUg PT4gJ2ludDQnLAotICBwcm9hcmd0eXBlcyA9PiAnaW50NCBpbnQ0IGNzdHJpbmcgaW50ZXJuYWwg aW50NCBib29sJywKLSAgcHJvc3JjID0+ICdzamlzX3RvX21pYycsIHByb2JpbiA9PiAnJGxpYmRp ci9ldWNfanBfYW5kX3NqaXMnIH0sCi17IG9pZCA9PiAnNDMyOCcsCi0gIGRlc2NyID0+ICdpbnRl cm5hbCBjb252ZXJzaW9uIGZ1bmN0aW9uIGZvciBNVUxFX0lOVEVSTkFMIHRvIEVVQ19KUCcsCi0g IHByb25hbWUgPT4gJ21pY190b19ldWNfanAnLCBwcm9sYW5nID0+ICdjJywgcHJvcmV0dHlwZSA9 PiAnaW50NCcsCi0gIHByb2FyZ3R5cGVzID0+ICdpbnQ0IGludDQgY3N0cmluZyBpbnRlcm5hbCBp bnQ0IGJvb2wnLAotICBwcm9zcmMgPT4gJ21pY190b19ldWNfanAnLCBwcm9iaW4gPT4gJyRsaWJk aXIvZXVjX2pwX2FuZF9zamlzJyB9LAoteyBvaWQgPT4gJzQzMjknLAotICBkZXNjciA9PiAnaW50 ZXJuYWwgY29udmVyc2lvbiBmdW5jdGlvbiBmb3IgTVVMRV9JTlRFUk5BTCB0byBTSklTJywKLSAg cHJvbmFtZSA9PiAnbWljX3RvX3NqaXMnLCBwcm9sYW5nID0+ICdjJywgcHJvcmV0dHlwZSA9PiAn aW50NCcsCi0gIHByb2FyZ3R5cGVzID0+ICdpbnQ0IGludDQgY3N0cmluZyBpbnRlcm5hbCBpbnQ0 IGJvb2wnLAotICBwcm9zcmMgPT4gJ21pY190b19zamlzJywgcHJvYmluID0+ICckbGliZGlyL2V1 Y19qcF9hbmRfc2ppcycgfSwKLXsgb2lkID0+ICc0MzMwJywKLSAgZGVzY3IgPT4gJ2ludGVybmFs IGNvbnZlcnNpb24gZnVuY3Rpb24gZm9yIEVVQ19LUiB0byBNVUxFX0lOVEVSTkFMJywKLSAgcHJv bmFtZSA9PiAnZXVjX2tyX3RvX21pYycsIHByb2xhbmcgPT4gJ2MnLCBwcm9yZXR0eXBlID0+ICdp bnQ0JywKLSAgcHJvYXJndHlwZXMgPT4gJ2ludDQgaW50NCBjc3RyaW5nIGludGVybmFsIGludDQg Ym9vbCcsCi0gIHByb3NyYyA9PiAnZXVjX2tyX3RvX21pYycsIHByb2JpbiA9PiAnJGxpYmRpci9l dWNfa3JfYW5kX21pYycgfSwKLXsgb2lkID0+ICc0MzMxJywKLSAgZGVzY3IgPT4gJ2ludGVybmFs IGNvbnZlcnNpb24gZnVuY3Rpb24gZm9yIE1VTEVfSU5URVJOQUwgdG8gRVVDX0tSJywKLSAgcHJv bmFtZSA9PiAnbWljX3RvX2V1Y19rcicsIHByb2xhbmcgPT4gJ2MnLCBwcm9yZXR0eXBlID0+ICdp bnQ0JywKLSAgcHJvYXJndHlwZXMgPT4gJ2ludDQgaW50NCBjc3RyaW5nIGludGVybmFsIGludDQg Ym9vbCcsCi0gIHByb3NyYyA9PiAnbWljX3RvX2V1Y19rcicsIHByb2JpbiA9PiAnJGxpYmRpci9l dWNfa3JfYW5kX21pYycgfSwKIHsgb2lkID0+ICc0MzMyJywgZGVzY3IgPT4gJ2ludGVybmFsIGNv bnZlcnNpb24gZnVuY3Rpb24gZm9yIEVVQ19UVyB0byBCSUc1JywKICAgcHJvbmFtZSA9PiAnZXVj X3R3X3RvX2JpZzUnLCBwcm9sYW5nID0+ICdjJywgcHJvcmV0dHlwZSA9PiAnaW50NCcsCiAgIHBy b2FyZ3R5cGVzID0+ICdpbnQ0IGludDQgY3N0cmluZyBpbnRlcm5hbCBpbnQ0IGJvb2wnLApAQCAt MTIwMDMsNDYgKzExOTIzLDYgQEAKICAgcHJvbmFtZSA9PiAnYmlnNV90b19ldWNfdHcnLCBwcm9s YW5nID0+ICdjJywgcHJvcmV0dHlwZSA9PiAnaW50NCcsCiAgIHByb2FyZ3R5cGVzID0+ICdpbnQ0 IGludDQgY3N0cmluZyBpbnRlcm5hbCBpbnQ0IGJvb2wnLAogICBwcm9zcmMgPT4gJ2JpZzVfdG9f ZXVjX3R3JywgcHJvYmluID0+ICckbGliZGlyL2V1Y190d19hbmRfYmlnNScgfSwKLXsgb2lkID0+ ICc0MzM0JywKLSAgZGVzY3IgPT4gJ2ludGVybmFsIGNvbnZlcnNpb24gZnVuY3Rpb24gZm9yIEVV Q19UVyB0byBNVUxFX0lOVEVSTkFMJywKLSAgcHJvbmFtZSA9PiAnZXVjX3R3X3RvX21pYycsIHBy b2xhbmcgPT4gJ2MnLCBwcm9yZXR0eXBlID0+ICdpbnQ0JywKLSAgcHJvYXJndHlwZXMgPT4gJ2lu dDQgaW50NCBjc3RyaW5nIGludGVybmFsIGludDQgYm9vbCcsCi0gIHByb3NyYyA9PiAnZXVjX3R3 X3RvX21pYycsIHByb2JpbiA9PiAnJGxpYmRpci9ldWNfdHdfYW5kX2JpZzUnIH0sCi17IG9pZCA9 PiAnNDMzNScsCi0gIGRlc2NyID0+ICdpbnRlcm5hbCBjb252ZXJzaW9uIGZ1bmN0aW9uIGZvciBC SUc1IHRvIE1VTEVfSU5URVJOQUwnLAotICBwcm9uYW1lID0+ICdiaWc1X3RvX21pYycsIHByb2xh bmcgPT4gJ2MnLCBwcm9yZXR0eXBlID0+ICdpbnQ0JywKLSAgcHJvYXJndHlwZXMgPT4gJ2ludDQg aW50NCBjc3RyaW5nIGludGVybmFsIGludDQgYm9vbCcsCi0gIHByb3NyYyA9PiAnYmlnNV90b19t aWMnLCBwcm9iaW4gPT4gJyRsaWJkaXIvZXVjX3R3X2FuZF9iaWc1JyB9LAoteyBvaWQgPT4gJzQz MzYnLAotICBkZXNjciA9PiAnaW50ZXJuYWwgY29udmVyc2lvbiBmdW5jdGlvbiBmb3IgTVVMRV9J TlRFUk5BTCB0byBFVUNfVFcnLAotICBwcm9uYW1lID0+ICdtaWNfdG9fZXVjX3R3JywgcHJvbGFu ZyA9PiAnYycsIHByb3JldHR5cGUgPT4gJ2ludDQnLAotICBwcm9hcmd0eXBlcyA9PiAnaW50NCBp bnQ0IGNzdHJpbmcgaW50ZXJuYWwgaW50NCBib29sJywKLSAgcHJvc3JjID0+ICdtaWNfdG9fZXVj X3R3JywgcHJvYmluID0+ICckbGliZGlyL2V1Y190d19hbmRfYmlnNScgfSwKLXsgb2lkID0+ICc0 MzM3JywKLSAgZGVzY3IgPT4gJ2ludGVybmFsIGNvbnZlcnNpb24gZnVuY3Rpb24gZm9yIE1VTEVf SU5URVJOQUwgdG8gQklHNScsCi0gIHByb25hbWUgPT4gJ21pY190b19iaWc1JywgcHJvbGFuZyA9 PiAnYycsIHByb3JldHR5cGUgPT4gJ2ludDQnLAotICBwcm9hcmd0eXBlcyA9PiAnaW50NCBpbnQ0 IGNzdHJpbmcgaW50ZXJuYWwgaW50NCBib29sJywKLSAgcHJvc3JjID0+ICdtaWNfdG9fYmlnNScs IHByb2JpbiA9PiAnJGxpYmRpci9ldWNfdHdfYW5kX2JpZzUnIH0sCi17IG9pZCA9PiAnNDMzOCcs Ci0gIGRlc2NyID0+ICdpbnRlcm5hbCBjb252ZXJzaW9uIGZ1bmN0aW9uIGZvciBMQVRJTjIgdG8g TVVMRV9JTlRFUk5BTCcsCi0gIHByb25hbWUgPT4gJ2xhdGluMl90b19taWMnLCBwcm9sYW5nID0+ ICdjJywgcHJvcmV0dHlwZSA9PiAnaW50NCcsCi0gIHByb2FyZ3R5cGVzID0+ICdpbnQ0IGludDQg Y3N0cmluZyBpbnRlcm5hbCBpbnQ0IGJvb2wnLAotICBwcm9zcmMgPT4gJ2xhdGluMl90b19taWMn LCBwcm9iaW4gPT4gJyRsaWJkaXIvbGF0aW4yX2FuZF93aW4xMjUwJyB9LAoteyBvaWQgPT4gJzQz MzknLAotICBkZXNjciA9PiAnaW50ZXJuYWwgY29udmVyc2lvbiBmdW5jdGlvbiBmb3IgTVVMRV9J TlRFUk5BTCB0byBMQVRJTjInLAotICBwcm9uYW1lID0+ICdtaWNfdG9fbGF0aW4yJywgcHJvbGFu ZyA9PiAnYycsIHByb3JldHR5cGUgPT4gJ2ludDQnLAotICBwcm9hcmd0eXBlcyA9PiAnaW50NCBp bnQ0IGNzdHJpbmcgaW50ZXJuYWwgaW50NCBib29sJywKLSAgcHJvc3JjID0+ICdtaWNfdG9fbGF0 aW4yJywgcHJvYmluID0+ICckbGliZGlyL2xhdGluMl9hbmRfd2luMTI1MCcgfSwKLXsgb2lkID0+ ICc0MzQwJywKLSAgZGVzY3IgPT4gJ2ludGVybmFsIGNvbnZlcnNpb24gZnVuY3Rpb24gZm9yIFdJ TjEyNTAgdG8gTVVMRV9JTlRFUk5BTCcsCi0gIHByb25hbWUgPT4gJ3dpbjEyNTBfdG9fbWljJywg cHJvbGFuZyA9PiAnYycsIHByb3JldHR5cGUgPT4gJ2ludDQnLAotICBwcm9hcmd0eXBlcyA9PiAn aW50NCBpbnQ0IGNzdHJpbmcgaW50ZXJuYWwgaW50NCBib29sJywKLSAgcHJvc3JjID0+ICd3aW4x MjUwX3RvX21pYycsIHByb2JpbiA9PiAnJGxpYmRpci9sYXRpbjJfYW5kX3dpbjEyNTAnIH0sCi17 IG9pZCA9PiAnNDM0MScsCi0gIGRlc2NyID0+ICdpbnRlcm5hbCBjb252ZXJzaW9uIGZ1bmN0aW9u IGZvciBNVUxFX0lOVEVSTkFMIHRvIFdJTjEyNTAnLAotICBwcm9uYW1lID0+ICdtaWNfdG9fd2lu MTI1MCcsIHByb2xhbmcgPT4gJ2MnLCBwcm9yZXR0eXBlID0+ICdpbnQ0JywKLSAgcHJvYXJndHlw ZXMgPT4gJ2ludDQgaW50NCBjc3RyaW5nIGludGVybmFsIGludDQgYm9vbCcsCi0gIHByb3NyYyA9 PiAnbWljX3RvX3dpbjEyNTAnLCBwcm9iaW4gPT4gJyRsaWJkaXIvbGF0aW4yX2FuZF93aW4xMjUw JyB9LAogeyBvaWQgPT4gJzQzNDInLAogICBkZXNjciA9PiAnaW50ZXJuYWwgY29udmVyc2lvbiBm dW5jdGlvbiBmb3IgTEFUSU4yIHRvIFdJTjEyNTAnLAogICBwcm9uYW1lID0+ICdsYXRpbjJfdG9f d2luMTI1MCcsIHByb2xhbmcgPT4gJ2MnLCBwcm9yZXR0eXBlID0+ICdpbnQ0JywKQEAgLTEyMDUz LDM2ICsxMTkzMyw2IEBACiAgIHByb25hbWUgPT4gJ3dpbjEyNTBfdG9fbGF0aW4yJywgcHJvbGFu ZyA9PiAnYycsIHByb3JldHR5cGUgPT4gJ2ludDQnLAogICBwcm9hcmd0eXBlcyA9PiAnaW50NCBp bnQ0IGNzdHJpbmcgaW50ZXJuYWwgaW50NCBib29sJywKICAgcHJvc3JjID0+ICd3aW4xMjUwX3Rv X2xhdGluMicsIHByb2JpbiA9PiAnJGxpYmRpci9sYXRpbjJfYW5kX3dpbjEyNTAnIH0sCi17IG9p ZCA9PiAnNDM0NCcsCi0gIGRlc2NyID0+ICdpbnRlcm5hbCBjb252ZXJzaW9uIGZ1bmN0aW9uIGZv ciBMQVRJTjEgdG8gTVVMRV9JTlRFUk5BTCcsCi0gIHByb25hbWUgPT4gJ2xhdGluMV90b19taWMn LCBwcm9sYW5nID0+ICdjJywgcHJvcmV0dHlwZSA9PiAnaW50NCcsCi0gIHByb2FyZ3R5cGVzID0+ ICdpbnQ0IGludDQgY3N0cmluZyBpbnRlcm5hbCBpbnQ0IGJvb2wnLAotICBwcm9zcmMgPT4gJ2xh dGluMV90b19taWMnLCBwcm9iaW4gPT4gJyRsaWJkaXIvbGF0aW5fYW5kX21pYycgfSwKLXsgb2lk ID0+ICc0MzQ1JywKLSAgZGVzY3IgPT4gJ2ludGVybmFsIGNvbnZlcnNpb24gZnVuY3Rpb24gZm9y IE1VTEVfSU5URVJOQUwgdG8gTEFUSU4xJywKLSAgcHJvbmFtZSA9PiAnbWljX3RvX2xhdGluMScs IHByb2xhbmcgPT4gJ2MnLCBwcm9yZXR0eXBlID0+ICdpbnQ0JywKLSAgcHJvYXJndHlwZXMgPT4g J2ludDQgaW50NCBjc3RyaW5nIGludGVybmFsIGludDQgYm9vbCcsCi0gIHByb3NyYyA9PiAnbWlj X3RvX2xhdGluMScsIHByb2JpbiA9PiAnJGxpYmRpci9sYXRpbl9hbmRfbWljJyB9LAoteyBvaWQg PT4gJzQzNDYnLAotICBkZXNjciA9PiAnaW50ZXJuYWwgY29udmVyc2lvbiBmdW5jdGlvbiBmb3Ig TEFUSU4zIHRvIE1VTEVfSU5URVJOQUwnLAotICBwcm9uYW1lID0+ICdsYXRpbjNfdG9fbWljJywg cHJvbGFuZyA9PiAnYycsIHByb3JldHR5cGUgPT4gJ2ludDQnLAotICBwcm9hcmd0eXBlcyA9PiAn aW50NCBpbnQ0IGNzdHJpbmcgaW50ZXJuYWwgaW50NCBib29sJywKLSAgcHJvc3JjID0+ICdsYXRp bjNfdG9fbWljJywgcHJvYmluID0+ICckbGliZGlyL2xhdGluX2FuZF9taWMnIH0sCi17IG9pZCA9 PiAnNDM0NycsCi0gIGRlc2NyID0+ICdpbnRlcm5hbCBjb252ZXJzaW9uIGZ1bmN0aW9uIGZvciBN VUxFX0lOVEVSTkFMIHRvIExBVElOMycsCi0gIHByb25hbWUgPT4gJ21pY190b19sYXRpbjMnLCBw cm9sYW5nID0+ICdjJywgcHJvcmV0dHlwZSA9PiAnaW50NCcsCi0gIHByb2FyZ3R5cGVzID0+ICdp bnQ0IGludDQgY3N0cmluZyBpbnRlcm5hbCBpbnQ0IGJvb2wnLAotICBwcm9zcmMgPT4gJ21pY190 b19sYXRpbjMnLCBwcm9iaW4gPT4gJyRsaWJkaXIvbGF0aW5fYW5kX21pYycgfSwKLXsgb2lkID0+ ICc0MzQ4JywKLSAgZGVzY3IgPT4gJ2ludGVybmFsIGNvbnZlcnNpb24gZnVuY3Rpb24gZm9yIExB VElONCB0byBNVUxFX0lOVEVSTkFMJywKLSAgcHJvbmFtZSA9PiAnbGF0aW40X3RvX21pYycsIHBy b2xhbmcgPT4gJ2MnLCBwcm9yZXR0eXBlID0+ICdpbnQ0JywKLSAgcHJvYXJndHlwZXMgPT4gJ2lu dDQgaW50NCBjc3RyaW5nIGludGVybmFsIGludDQgYm9vbCcsCi0gIHByb3NyYyA9PiAnbGF0aW40 X3RvX21pYycsIHByb2JpbiA9PiAnJGxpYmRpci9sYXRpbl9hbmRfbWljJyB9LAoteyBvaWQgPT4g JzQzNDknLAotICBkZXNjciA9PiAnaW50ZXJuYWwgY29udmVyc2lvbiBmdW5jdGlvbiBmb3IgTVVM RV9JTlRFUk5BTCB0byBMQVRJTjQnLAotICBwcm9uYW1lID0+ICdtaWNfdG9fbGF0aW40JywgcHJv bGFuZyA9PiAnYycsIHByb3JldHR5cGUgPT4gJ2ludDQnLAotICBwcm9hcmd0eXBlcyA9PiAnaW50 NCBpbnQ0IGNzdHJpbmcgaW50ZXJuYWwgaW50NCBib29sJywKLSAgcHJvc3JjID0+ICdtaWNfdG9f bGF0aW40JywgcHJvYmluID0+ICckbGliZGlyL2xhdGluX2FuZF9taWMnIH0sCiB7IG9pZCA9PiAn NDM1MicsIGRlc2NyID0+ICdpbnRlcm5hbCBjb252ZXJzaW9uIGZ1bmN0aW9uIGZvciBCSUc1IHRv IFVURjgnLAogICBwcm9uYW1lID0+ICdiaWc1X3RvX3V0ZjgnLCBwcm9sYW5nID0+ICdjJywgcHJv cmV0dHlwZSA9PiAnaW50NCcsCiAgIHByb2FyZ3R5cGVzID0+ICdpbnQ0IGludDQgY3N0cmluZyBp bnRlcm5hbCBpbnQ0IGJvb2wnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbWIvcGdfd2NoYXIu aCBiL3NyYy9pbmNsdWRlL21iL3BnX3djaGFyLmgKaW5kZXggZTE2NTVmZTYxZDYuLmRlZWUyYTgz MmMzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9tYi9wZ193Y2hhci5oCisrKyBiL3NyYy9pbmNs dWRlL21iL3BnX3djaGFyLmgKQEAgLTM5LDE4NyArMzksMjEgQEAgdHlwZWRlZiB1bnNpZ25lZCBp bnQgcGdfd2NoYXI7CiAjZGVmaW5lIFNTMyAweDhmCQkJCS8qIHNpbmdsZSBzaGlmdCAzIChKSVMw MjEyKSAqLwogCiAvKgotICogU0pJUyB2YWxpZGF0aW9uIG1hY3JvcworICogRVVDX1RXIHBsYW5l cwogICovCi0jZGVmaW5lIElTU0pJU0hFQUQoYykgKCgoYykgPj0gMHg4MSAmJiAoYykgPD0gMHg5 ZikgfHwgKChjKSA+PSAweGUwICYmIChjKSA8PSAweGZjKSkKLSNkZWZpbmUgSVNTSklTVEFJTChj KSAoKChjKSA+PSAweDQwICYmIChjKSA8PSAweDdlKSB8fCAoKGMpID49IDB4ODAgJiYgKGMpIDw9 IDB4ZmMpKQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSAqIE1VTEUgSW50ZXJuYWwgRW5jb2RpbmcgKE1JQykKLSAqCi0gKiBUaGlzIGVu Y29kaW5nIGZvbGxvd3MgdGhlIGRlc2lnbiB1c2VkIHdpdGhpbiBYRW1hY3M7IGl0IGlzIG1lYW50 IHRvCi0gKiBzdWJzdW1lIG1hbnkgZXh0ZXJuYWxseS1kZWZpbmVkIGNoYXJhY3RlciBzZXRzLiAg RWFjaCBjaGFyYWN0ZXIgaW5jbHVkZXMKLSAqIGlkZW50aWZpY2F0aW9uIG9mIHRoZSBjaGFyYWN0 ZXIgc2V0IGl0IGJlbG9uZ3MgdG8sIHNvIHRoZSBlbmNvZGluZyBpcwotICogZ2VuZXJhbCBidXQg c29tZXdoYXQgYnVsa3kuCi0gKgotICogQ3VycmVudGx5IFBvc3RncmVTUUwgc3VwcG9ydHMgNSB0 eXBlcyBvZiBNVUxFIGNoYXJhY3RlciBzZXRzOgotICoKLSAqIDEpIDEtYnl0ZSBBU0NJSSBjaGFy YWN0ZXJzLiAgRWFjaCBieXRlIGlzIGJlbG93IDB4ODAuCi0gKgotICogMikgIk9mZmljaWFsIiBz aW5nbGUgYnl0ZSBjaGFyc2V0cyBzdWNoIGFzIElTTy04ODU5LTEgKExhdGluMSkuCi0gKgkgIEVh Y2ggTVVMRSBjaGFyYWN0ZXIgY29uc2lzdHMgb2YgMiBieXRlczogTEMxICsgQzEsIHdoZXJlIExD MSBpcwotICoJICBhbiBpZGVudGlmaWVyIGZvciB0aGUgY2hhcnNldCAoaW4gdGhlIHJhbmdlIDB4 ODEgdG8gMHg4ZCkgYW5kIEMxCi0gKgkgIGlzIHRoZSBjaGFyYWN0ZXIgY29kZSAoaW4gdGhlIHJh bmdlIDB4YTAgdG8gMHhmZikuCi0gKgotICogMykgIlByaXZhdGUiIHNpbmdsZSBieXRlIGNoYXJz ZXRzIHN1Y2ggYXMgU0lTSEVORy4gIEVhY2ggTVVMRQotICoJICBjaGFyYWN0ZXIgY29uc2lzdHMg b2YgMyBieXRlczogTENQUlYxICsgTEMxMiArIEMxLCB3aGVyZSBMQ1BSVjEKLSAqCSAgaXMgYSBw cml2YXRlLWNoYXJzZXQgZmxhZywgTEMxMiBpcyBhbiBpZGVudGlmaWVyIGZvciB0aGUgY2hhcnNl dCwKLSAqCSAgYW5kIEMxIGlzIHRoZSBjaGFyYWN0ZXIgY29kZSAoaW4gdGhlIHJhbmdlIDB4YTAg dG8gMHhmZikuCi0gKgkgIExDUFJWMSBpcyBlaXRoZXIgMHg5YSAoaWYgTEMxMiBpcyBpbiB0aGUg cmFuZ2UgMHhhMCB0byAweGRmKQotICoJICBvciAweDliIChpZiBMQzEyIGlzIGluIHRoZSByYW5n ZSAweGUwIHRvIDB4ZWYpLgotICoKLSAqIDQpICJPZmZpY2lhbCIgbXVsdGlieXRlIGNoYXJzZXRz IHN1Y2ggYXMgSklTIFgwMjA4LiAgRWFjaCBNVUxFCi0gKgkgIGNoYXJhY3RlciBjb25zaXN0cyBv ZiAzIGJ5dGVzOiBMQzIgKyBDMSArIEMyLCB3aGVyZSBMQzIgaXMKLSAqCSAgYW4gaWRlbnRpZmll ciBmb3IgdGhlIGNoYXJzZXQgKGluIHRoZSByYW5nZSAweDkwIHRvIDB4OTkpIGFuZCBDMQotICoJ ICBhbmQgQzIgZm9ybSB0aGUgY2hhcmFjdGVyIGNvZGUgKGVhY2ggaW4gdGhlIHJhbmdlIDB4YTAg dG8gMHhmZikuCi0gKgotICogNSkgIlByaXZhdGUiIG11bHRpYnl0ZSBjaGFyc2V0cyBzdWNoIGFz IENOUyAxMTY0My0xOTkyIFBsYW5lIDMuCi0gKgkgIEVhY2ggTVVMRSBjaGFyYWN0ZXIgY29uc2lz dHMgb2YgNCBieXRlczogTENQUlYyICsgTEMyMiArIEMxICsgQzIsCi0gKgkgIHdoZXJlIExDUFJW MiBpcyBhIHByaXZhdGUtY2hhcnNldCBmbGFnLCBMQzIyIGlzIGFuIGlkZW50aWZpZXIgZm9yCi0g KgkgIHRoZSBjaGFyc2V0LCBhbmQgQzEgYW5kIEMyIGZvcm0gdGhlIGNoYXJhY3RlciBjb2RlIChl YWNoIGluIHRoZSByYW5nZQotICoJICAweGEwIHRvIDB4ZmYpLiAgTENQUlYyIGlzIGVpdGhlciAw eDljIChpZiBMQzIyIGlzIGluIHRoZSByYW5nZSAweGYwCi0gKgkgIHRvIDB4ZjQpIG9yIDB4OWQg KGlmIExDMjIgaXMgaW4gdGhlIHJhbmdlIDB4ZjUgdG8gMHhmZSkuCi0gKgotICogIk9mZmljaWFs IiBlbmNvZGluZ3MgYXJlIHRob3NlIHRoYXQgaGF2ZSBiZWVuIGFzc2lnbmVkIGNvZGUgbnVtYmVy cyBieQotICogdGhlIFhFbWFjcyBwcm9qZWN0OyAicHJpdmF0ZSIgZW5jb2RpbmdzIGhhdmUgUG9z dGdyZXMtc3BlY2lmaWMgY2hhcnNldAotICogaWRlbnRpZmllcnMuCi0gKgotICogU2VlIHRoZSAi WEVtYWNzIEludGVybmFscyBNYW51YWwiLCBhdmFpbGFibGUgYXQgaHR0cDovL3d3dy54ZW1hY3Mu b3JnLAotICogZm9yIG1vcmUgZGV0YWlscy4gIE5vdGUgdGhhdCBmb3IgaGlzdG9yaWNhbCByZWFz b25zLCBQb3N0Z3JlcycKLSAqIHByaXZhdGUtY2hhcnNldCBmbGFnIHZhbHVlcyBkbyBub3QgbWF0 Y2ggd2hhdCBYRW1hY3Mgc2F5cyB0aGV5IHNob3VsZCBiZSwKLSAqIHNvIHRoaXMgaXNuJ3QgcmVh bGx5IGV4YWN0bHkgTVVMRSAobm90IHRoYXQgcHJpdmF0ZSBjaGFyc2V0cyB3b3VsZCBiZQotICog aW50ZXJvcGVyYWJsZSBhbnl3YXkpLgotICoKLSAqIE5vdGUgdGhhdCBYRW1hY3MncyBpbXBsZW1l bnRhdGlvbiBpcyBkaWZmZXJlbnQgZnJvbSB3aGF0IGVtYWNzIGRvZXMuCi0gKiBXZSBmb2xsb3cg ZW1hY3MncyBpbXBsZW1lbnRhdGlvbiwgcmF0aGVyIHRoYW4gWEVtYWNzJ3MuCi0gKi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqLwotCi0vKgot ICogQ2hhcnNldCBpZGVudGlmaWVycyAoYWxzbyBjYWxsZWQgImxlYWRpbmcgYnl0ZXMiIGluIHRo ZSBNVUxFIGRvY3VtZW50YXRpb24pCi0gKi8KLQotLyoKLSAqIENoYXJzZXQgSURzIGZvciBvZmZp Y2lhbCBzaW5nbGUgYnl0ZSBlbmNvZGluZ3MgKDB4ODEtMHg4ZSkKLSAqLwotI2RlZmluZSBMQ19J U084ODU5XzEJCTB4ODEJLyogSVNPODg1OSBMYXRpbiAxICovCi0jZGVmaW5lIExDX0lTTzg4NTlf MgkJMHg4MgkvKiBJU084ODU5IExhdGluIDIgKi8KLSNkZWZpbmUgTENfSVNPODg1OV8zCQkweDgz CS8qIElTTzg4NTkgTGF0aW4gMyAqLwotI2RlZmluZSBMQ19JU084ODU5XzQJCTB4ODQJLyogSVNP ODg1OSBMYXRpbiA0ICovCi0jZGVmaW5lIExDX1RJUzYyMAkJCTB4ODUJLyogVGhhaSAobm90IHN1 cHBvcnRlZCB5ZXQpICovCi0jZGVmaW5lIExDX0lTTzg4NTlfNwkJMHg4NgkvKiBHcmVlayAobm90 IHN1cHBvcnRlZCB5ZXQpICovCi0jZGVmaW5lIExDX0lTTzg4NTlfNgkJMHg4NwkvKiBBcmFiaWMg KG5vdCBzdXBwb3J0ZWQgeWV0KSAqLwotI2RlZmluZSBMQ19JU084ODU5XzgJCTB4ODgJLyogSGVi cmV3IChub3Qgc3VwcG9ydGVkIHlldCkgKi8KLSNkZWZpbmUgTENfSklTWDAyMDFLCQkweDg5CS8q IEphcGFuZXNlIDEgYnl0ZSBrYW5hICovCi0jZGVmaW5lIExDX0pJU1gwMjAxUgkJMHg4YQkvKiBK YXBhbmVzZSAxIGJ5dGUgUm9tYW4gKi8KLS8qIE5vdGUgdGhhdCAweDhiIHNlZW1zIHRvIGJlIHVu dXNlZCBhcyBvZiBFbWFjcyAyMC43LgotICogSG93ZXZlciwgdGhlcmUgbWlnaHQgYmUgYSBjaGFu Y2UgdGhhdCAweDhiIGNvdWxkIGJlIHVzZWQKLSAqIGluIGxhdGVyIHZlcnNpb25zIG9mIEVtYWNz LgotICovCi0jZGVmaW5lIExDX0tPSThfUgkJCTB4OGIJLyogQ3lyaWxsaWMgS09JOC1SICovCi0j ZGVmaW5lIExDX0lTTzg4NTlfNQkJMHg4YwkvKiBJU084ODU5IEN5cmlsbGljICovCi0jZGVmaW5l IExDX0lTTzg4NTlfOQkJMHg4ZAkvKiBJU084ODU5IExhdGluIDUgKG5vdCBzdXBwb3J0ZWQgeWV0 KSAqLwotI2RlZmluZSBMQ19JU084ODU5XzE1CQkweDhlCS8qIElTTzg4NTkgTGF0aW4gMTUgKG5v dCBzdXBwb3J0ZWQgeWV0KSAqLwotLyogI2RlZmluZSBDT05UUk9MXzEJCTB4OGYJY29udHJvbCBj aGFyYWN0ZXJzICh1bnVzZWQpICovCi0KLS8qIElzIGEgbGVhZGluZyBieXRlIGZvciAib2ZmaWNp YWwiIHNpbmdsZSBieXRlIGVuY29kaW5ncz8gKi8KLSNkZWZpbmUgSVNfTEMxKGMpCSgodW5zaWdu ZWQgY2hhcikoYykgPj0gMHg4MSAmJiAodW5zaWduZWQgY2hhcikoYykgPD0gMHg4ZCkKLQotLyoK LSAqIENoYXJzZXQgSURzIGZvciBvZmZpY2lhbCBtdWx0aWJ5dGUgZW5jb2RpbmdzICgweDkwLTB4 OTkpCi0gKiAweDlhLTB4OWQgYXJlIGZyZWUuIDB4OWUgYW5kIDB4OWYgYXJlIHJlc2VydmVkLgot ICovCi0jZGVmaW5lIExDX0pJU1gwMjA4XzE5NzgJMHg5MAkvKiBKYXBhbmVzZSBLYW5qaSwgb2xk IEpJUyAobm90IHN1cHBvcnRlZCkgKi8KLSNkZWZpbmUgTENfR0IyMzEyXzgwCQkweDkxCS8qIENo aW5lc2UgKi8KLSNkZWZpbmUgTENfSklTWDAyMDgJCQkweDkyCS8qIEphcGFuZXNlIEthbmppIChK SVMgWCAwMjA4KSAqLwotI2RlZmluZSBMQ19LUzU2MDEJCQkweDkzCS8qIEtvcmVhbiAqLwotI2Rl ZmluZSBMQ19KSVNYMDIxMgkJCTB4OTQJLyogSmFwYW5lc2UgS2FuamkgKEpJUyBYIDAyMTIpICov CiAjZGVmaW5lIExDX0NOUzExNjQzXzEJCTB4OTUJLyogQ05TIDExNjQzLTE5OTIgUGxhbmUgMSAq LwogI2RlZmluZSBMQ19DTlMxMTY0M18yCQkweDk2CS8qIENOUyAxMTY0My0xOTkyIFBsYW5lIDIg Ki8KLSNkZWZpbmUgTENfSklTWDAyMTNfMQkJMHg5NwkvKiBKYXBhbmVzZSBLYW5qaSAoSklTIFgg MDIxMyBQbGFuZSAxKQotCQkJCQkJCQkJICogKG5vdCBzdXBwb3J0ZWQpICovCi0jZGVmaW5lIExD X0JJRzVfMQkJCTB4OTgJLyogUGxhbmUgMSBDaGluZXNlIHRyYWRpdGlvbmFsIChub3QKLQkJCQkJ CQkJCSAqIHN1cHBvcnRlZCkgKi8KLSNkZWZpbmUgTENfQklHNV8yCQkJMHg5OQkvKiBQbGFuZSAx IENoaW5lc2UgdHJhZGl0aW9uYWwgKG5vdAotCQkJCQkJCQkJICogc3VwcG9ydGVkKSAqLwotCi0v KiBJcyBhIGxlYWRpbmcgYnl0ZSBmb3IgIm9mZmljaWFsIiBtdWx0aWJ5dGUgZW5jb2RpbmdzPyAq LwotI2RlZmluZSBJU19MQzIoYykJKCh1bnNpZ25lZCBjaGFyKShjKSA+PSAweDkwICYmICh1bnNp Z25lZCBjaGFyKShjKSA8PSAweDk5KQotCi0vKgotICogUG9zdGdyZXMtc3BlY2lmaWMgcHJlZml4 IGJ5dGVzIGZvciAicHJpdmF0ZSIgc2luZ2xlIGJ5dGUgZW5jb2RpbmdzCi0gKiAoQWNjb3JkaW5n IHRvIHRoZSBNVUxFIGRvY3MsIHdlIHNob3VsZCBiZSB1c2luZyAweDllIGZvciB0aGlzKQotICov Ci0jZGVmaW5lIExDUFJWMV9BCQkweDlhCi0jZGVmaW5lIExDUFJWMV9CCQkweDliCi0jZGVmaW5l IElTX0xDUFJWMShjKQkoKHVuc2lnbmVkIGNoYXIpKGMpID09IExDUFJWMV9BIHx8ICh1bnNpZ25l ZCBjaGFyKShjKSA9PSBMQ1BSVjFfQikKLSNkZWZpbmUgSVNfTENQUlYxX0FfUkFOR0UoYykJXAot CSgodW5zaWduZWQgY2hhcikoYykgPj0gMHhhMCAmJiAodW5zaWduZWQgY2hhcikoYykgPD0gMHhk ZikKLSNkZWZpbmUgSVNfTENQUlYxX0JfUkFOR0UoYykJXAotCSgodW5zaWduZWQgY2hhcikoYykg Pj0gMHhlMCAmJiAodW5zaWduZWQgY2hhcikoYykgPD0gMHhlZikKLQotLyoKLSAqIFBvc3RncmVz LXNwZWNpZmljIHByZWZpeCBieXRlcyBmb3IgInByaXZhdGUiIG11bHRpYnl0ZSBlbmNvZGluZ3MK LSAqIChBY2NvcmRpbmcgdG8gdGhlIE1VTEUgZG9jcywgd2Ugc2hvdWxkIGJlIHVzaW5nIDB4OWYg Zm9yIHRoaXMpCi0gKi8KLSNkZWZpbmUgTENQUlYyX0EJCTB4OWMKLSNkZWZpbmUgTENQUlYyX0IJ CTB4OWQKLSNkZWZpbmUgSVNfTENQUlYyKGMpCSgodW5zaWduZWQgY2hhcikoYykgPT0gTENQUlYy X0EgfHwgKHVuc2lnbmVkIGNoYXIpKGMpID09IExDUFJWMl9CKQotI2RlZmluZSBJU19MQ1BSVjJf QV9SQU5HRShjKQlcCi0JKCh1bnNpZ25lZCBjaGFyKShjKSA+PSAweGYwICYmICh1bnNpZ25lZCBj aGFyKShjKSA8PSAweGY0KQotI2RlZmluZSBJU19MQ1BSVjJfQl9SQU5HRShjKQlcCi0JKCh1bnNp Z25lZCBjaGFyKShjKSA+PSAweGY1ICYmICh1bnNpZ25lZCBjaGFyKShjKSA8PSAweGZlKQotCi0v KgotICogQ2hhcnNldCBJRHMgZm9yIHByaXZhdGUgc2luZ2xlIGJ5dGUgZW5jb2RpbmdzICgweGEw LTB4ZWYpCi0gKi8KLSNkZWZpbmUgTENfU0lTSEVORwkJCTB4YTAJLyogQ2hpbmVzZSBTaVNoZW5n IGNoYXJhY3RlcnMgZm9yCi0JCQkJCQkJCQkgKiBQaW5ZaW4vWmh1WWluIChub3Qgc3VwcG9ydGVk KSAqLwotI2RlZmluZSBMQ19JUEEJCQkJMHhhMQkvKiBJUEEgKEludGVybmF0aW9uYWwgUGhvbmV0 aWMKLQkJCQkJCQkJCSAqIEFzc29jaWF0aW9uKSAobm90IHN1cHBvcnRlZCkgKi8KLSNkZWZpbmUg TENfVklTQ0lJX0xPV0VSCQkweGEyCS8qIFZpZXRuYW1lc2UgVklTQ0lJMS4xIGxvd2VyLWNhc2Ug KG5vdAotCQkJCQkJCQkJICogc3VwcG9ydGVkKSAqLwotI2RlZmluZSBMQ19WSVNDSUlfVVBQRVIJ CTB4YTMJLyogVmlldG5hbWVzZSBWSVNDSUkxLjEgdXBwZXItY2FzZSAobm90Ci0JCQkJCQkJCQkg KiBzdXBwb3J0ZWQpICovCi0jZGVmaW5lIExDX0FSQUJJQ19ESUdJVAkJMHhhNAkvKiBBcmFiaWMg ZGlnaXQgKG5vdCBzdXBwb3J0ZWQpICovCi0jZGVmaW5lIExDX0FSQUJJQ18xX0NPTFVNTgkweGE1 CS8qIEFyYWJpYyAxLWNvbHVtbiAobm90IHN1cHBvcnRlZCkgKi8KLSNkZWZpbmUgTENfQVNDSUlf UklHSFRfVE9fTEVGVAkweGE2CS8qIEFTQ0lJIChsZWZ0IGhhbGYgb2YgSVNPODg1OS0xKSB3aXRo Ci0JCQkJCQkJCQkJICogcmlnaHQtdG8tbGVmdCBkaXJlY3Rpb24gKG5vdAotCQkJCQkJCQkJCSAq IHN1cHBvcnRlZCkgKi8KLSNkZWZpbmUgTENfTEFPCQkJCTB4YTcJLyogTGFvIGNoYXJhY3RlcnMg KElTTzEwNjQ2IDBFODAuLjBFREYpCi0JCQkJCQkJCQkgKiAobm90IHN1cHBvcnRlZCkgKi8KLSNk ZWZpbmUgTENfQVJBQklDXzJfQ09MVU1OCTB4YTgJLyogQXJhYmljIDEtY29sdW1uIChub3Qgc3Vw cG9ydGVkKSAqLwotCi0vKgotICogQ2hhcnNldCBJRHMgZm9yIHByaXZhdGUgbXVsdGlieXRlIGVu Y29kaW5ncyAoMHhmMC0weGZmKQotICovCi0jZGVmaW5lIExDX0lORElBTl8xX0NPTFVNTgkweGYw CS8qIEluZGlhbiBjaGFyc2V0IGZvciAxLWNvbHVtbiB3aWR0aAotCQkJCQkJCQkJICogZ2x5cGhz IChub3Qgc3VwcG9ydGVkKSAqLwotI2RlZmluZSBMQ19USUJFVEFOXzFfQ09MVU1OIDB4ZjEJLyog VGliZXRhbiAxLWNvbHVtbiB3aWR0aCBnbHlwaHMgKG5vdAotCQkJCQkJCQkJICogc3VwcG9ydGVk KSAqLwotI2RlZmluZSBMQ19VTklDT0RFX1NVQlNFVF8yIDB4ZjIJLyogVW5pY29kZSBjaGFyYWN0 ZXJzIG9mIHRoZSByYW5nZQotCQkJCQkJCQkJICogVSsyNTAwLi5VKzMzRkYuIChub3Qgc3VwcG9y dGVkKSAqLwotI2RlZmluZSBMQ19VTklDT0RFX1NVQlNFVF8zIDB4ZjMJLyogVW5pY29kZSBjaGFy YWN0ZXJzIG9mIHRoZSByYW5nZQotCQkJCQkJCQkJICogVStFMDAwLi5VK0ZGRkYuIChub3Qgc3Vw cG9ydGVkKSAqLwotI2RlZmluZSBMQ19VTklDT0RFX1NVQlNFVAkweGY0CS8qIFVuaWNvZGUgY2hh cmFjdGVycyBvZiB0aGUgcmFuZ2UKLQkJCQkJCQkJCSAqIFUrMDEwMC4uVSsyNEZGLiAobm90IHN1 cHBvcnRlZCkgKi8KLSNkZWZpbmUgTENfRVRISU9QSUMJCQkweGY1CS8qIEV0aGlvcGljIGNoYXJh Y3RlcnMgKG5vdCBzdXBwb3J0ZWQpICovCiAjZGVmaW5lIExDX0NOUzExNjQzXzMJCTB4ZjYJLyog Q05TIDExNjQzLTE5OTIgUGxhbmUgMyAqLwogI2RlZmluZSBMQ19DTlMxMTY0M180CQkweGY3CS8q IENOUyAxMTY0My0xOTkyIFBsYW5lIDQgKi8KICNkZWZpbmUgTENfQ05TMTE2NDNfNQkJMHhmOAkv KiBDTlMgMTE2NDMtMTk5MiBQbGFuZSA1ICovCiAjZGVmaW5lIExDX0NOUzExNjQzXzYJCTB4ZjkJ LyogQ05TIDExNjQzLTE5OTIgUGxhbmUgNiAqLwogI2RlZmluZSBMQ19DTlMxMTY0M183CQkweGZh CS8qIENOUyAxMTY0My0xOTkyIFBsYW5lIDcgKi8KLSNkZWZpbmUgTENfSU5ESUFOXzJfQ09MVU1O CTB4ZmIJLyogSW5kaWFuIGNoYXJzZXQgZm9yIDItY29sdW1uIHdpZHRoCi0JCQkJCQkJCQkgKiBn bHlwaHMgKG5vdCBzdXBwb3J0ZWQpICovCi0jZGVmaW5lIExDX1RJQkVUQU4JCQkweGZjCS8qIFRp YmV0YW4gKG5vdCBzdXBwb3J0ZWQpICovCi0vKiAjZGVmaW5lIEZSRUUJCQkJMHhmZAlmcmVlICh1 bnVzZWQpICovCi0vKiAjZGVmaW5lIEZSRUUJCQkJMHhmZQlmcmVlICh1bnVzZWQpICovCi0vKiAj ZGVmaW5lIEZSRUUJCQkJMHhmZglmcmVlICh1bnVzZWQpICovCi0KLS8qLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogZW5kIG9mIE1VTEUgc3R1 ZmYKLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorCisvKgorICogU0pJUyB2YWxpZGF0aW9uIG1hY3JvcwogICovCisjZGVmaW5lIElTU0pJU0hF QUQoYykgKCgoYykgPj0gMHg4MSAmJiAoYykgPD0gMHg5ZikgfHwgKChjKSA+PSAweGUwICYmIChj KSA8PSAweGZjKSkKKyNkZWZpbmUgSVNTSklTVEFJTChjKSAoKChjKSA+PSAweDQwICYmIChjKSA8 PSAweDdlKSB8fCAoKGMpID49IDB4ODAgJiYgKGMpIDw9IDB4ZmMpKQogCiAvKgogICogUG9zdGdy ZVNRTCBlbmNvZGluZyBpZGVudGlmaWVycwpAQCAtMjQ2LDcgKzgwLDcgQEAgdHlwZWRlZiBlbnVt IHBnX2VuYwogCVBHX0VVQ19UVywJCQkJCS8qIEVVQyBmb3IgVGFpd2FuICovCiAJUEdfRVVDX0pJ U18yMDA0LAkJCS8qIEVVQy1KSVMtMjAwNCAqLwogCVBHX1VURjgsCQkJCQkvKiBVbmljb2RlIFVU RjggKi8KLQlQR19NVUxFX0lOVEVSTkFMLAkJCS8qIE11bGUgaW50ZXJuYWwgY29kZSAqLworCVBH X1VOVVNFRF8xLAkJCQkvKiAoV2FzIE11bGUgaW50ZXJuYWwgY29kZSkgKi8KIAlQR19MQVRJTjEs CQkJCQkvKiBJU08tODg1OS0xIExhdGluIDEgKi8KIAlQR19MQVRJTjIsCQkJCQkvKiBJU08tODg1 OS0yIExhdGluIDIgKi8KIAlQR19MQVRJTjMsCQkJCQkvKiBJU08tODg1OS0zIExhdGluIDMgKi8K QEAgLTI5MCwxOCArMTI0LDIxIEBAIHR5cGVkZWYgZW51bSBwZ19lbmMKIAogI2RlZmluZSBQR19F TkNPRElOR19CRV9MQVNUIFBHX0tPSThVCiAKKyNkZWZpbmUgUEdfVU5VU0VEX0VOQ09ESU5HKF9l bmMpIFwKKwkoKF9lbmMpID09IFBHX1VOVVNFRF8xKQorCiAvKgogICogUGxlYXNlIHVzZSB0aGVz ZSB0ZXN0cyBiZWZvcmUgYWNjZXNzIHRvIHBnX2VuYzJuYW1lX3RibFtdCiAgKiBvciB0byBvdGhl ciBwbGFjZXMuLi4KICAqLwogI2RlZmluZSBQR19WQUxJRF9CRV9FTkNPRElORyhfZW5jKSBcCi0J CSgoX2VuYykgPj0gMCAmJiAoX2VuYykgPD0gUEdfRU5DT0RJTkdfQkVfTEFTVCkKKwkJKChfZW5j KSA+PSAwICYmIChfZW5jKSA8PSBQR19FTkNPRElOR19CRV9MQVNUICYmICFQR19VTlVTRURfRU5D T0RJTkcoX2VuYykpCiAKICNkZWZpbmUgUEdfRU5DT0RJTkdfSVNfQ0xJRU5UX09OTFkoX2VuYykg XAogCQkoKF9lbmMpID4gUEdfRU5DT0RJTkdfQkVfTEFTVCAmJiAoX2VuYykgPCBfUEdfTEFTVF9F TkNPRElOR18pCiAKICNkZWZpbmUgUEdfVkFMSURfRU5DT0RJTkcoX2VuYykgXAotCQkoKF9lbmMp ID49IDAgJiYgKF9lbmMpIDwgX1BHX0xBU1RfRU5DT0RJTkdfKQorCQkoKF9lbmMpID49IDAgJiYg KF9lbmMpIDwgX1BHX0xBU1RfRU5DT0RJTkdfICYmICFQR19VTlVTRURfRU5DT0RJTkcoX2VuYykp CiAKIC8qIE9uIEZFIGFyZSBwb3NzaWJsZSBhbGwgZW5jb2RpbmdzICovCiAjZGVmaW5lIFBHX1ZB TElEX0ZFX0VOQ09ESU5HKF9lbmMpCVBHX1ZBTElEX0VOQ09ESU5HKF9lbmMpCkBAIC02NzgsNyAr NTE1LDYgQEAgZXh0ZXJuIGNvbnN0IGNoYXIgKmdldF9lbmNvZGluZ19uYW1lX2Zvcl9pY3UoaW50 IGVuY29kaW5nKTsKIAogZXh0ZXJuIGJvb2wgcGdfdXRmOF9pc2xlZ2FsKGNvbnN0IHVuc2lnbmVk IGNoYXIgKnNvdXJjZSwgaW50IGxlbmd0aCk7CiBleHRlcm4gaW50CXBnX3V0Zl9tYmxlbihjb25z dCB1bnNpZ25lZCBjaGFyICpzKTsKLWV4dGVybiBpbnQJcGdfbXVsZV9tYmxlbihjb25zdCB1bnNp Z25lZCBjaGFyICpzKTsKIAogLyoKICAqIFRoZSByZW1haW5pbmcgZnVuY3Rpb25zIGFyZSBiYWNr ZW5kLW9ubHkuCkBAIC03ODIsMTYgKzYxOCw2IEBAIHBnX25vcmV0dXJuIGV4dGVybiB2b2lkIHJl cG9ydF91bnRyYW5zbGF0YWJsZV9jaGFyKGludCBzcmNfZW5jb2RpbmcsIGludCBkZXN0X2VuCiBl eHRlcm4gaW50CWxvY2FsMmxvY2FsKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmwsIHVuc2lnbmVkIGNo YXIgKnAsIGludCBsZW4sCiAJCQkJCQlpbnQgc3JjX2VuY29kaW5nLCBpbnQgZGVzdF9lbmNvZGlu ZywKIAkJCQkJCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnRhYiwgYm9vbCBub0Vycm9yKTsKLWV4dGVy biBpbnQJbGF0aW4ybWljKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmwsIHVuc2lnbmVkIGNoYXIgKnAs IGludCBsZW4sCi0JCQkJCSAgaW50IGxjLCBpbnQgZW5jb2RpbmcsIGJvb2wgbm9FcnJvcik7Ci1l eHRlcm4gaW50CW1pYzJsYXRpbihjb25zdCB1bnNpZ25lZCBjaGFyICptaWMsIHVuc2lnbmVkIGNo YXIgKnAsIGludCBsZW4sCi0JCQkJCSAgaW50IGxjLCBpbnQgZW5jb2RpbmcsIGJvb2wgbm9FcnJv cik7Ci1leHRlcm4gaW50CWxhdGluMm1pY193aXRoX3RhYmxlKGNvbnN0IHVuc2lnbmVkIGNoYXIg KmwsIHVuc2lnbmVkIGNoYXIgKnAsCi0JCQkJCQkJCSBpbnQgbGVuLCBpbnQgbGMsIGludCBlbmNv ZGluZywKLQkJCQkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnRhYiwgYm9vbCBub0Vycm9yKTsK LWV4dGVybiBpbnQJbWljMmxhdGluX3dpdGhfdGFibGUoY29uc3QgdW5zaWduZWQgY2hhciAqbWlj LCB1bnNpZ25lZCBjaGFyICpwLAotCQkJCQkJCQkgaW50IGxlbiwgaW50IGxjLCBpbnQgZW5jb2Rp bmcsCi0JCQkJCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICp0YWIsIGJvb2wgbm9FcnJvcik7CiAK ICNpZmRlZiBXSU4zMgogZXh0ZXJuIFdDSEFSICpwZ3dpbjMyX21lc3NhZ2VfdG9fVVRGMTYoY29u c3QgY2hhciAqc3RyLCBpbnQgbGVuLCBpbnQgKnV0ZjE2bGVuKTsKZGlmZiAtLWdpdCBhL3NyYy9w bC9wbHB5dGhvbi9wbHB5X3V0aWwuYyBiL3NyYy9wbC9wbHB5dGhvbi9wbHB5X3V0aWwuYwppbmRl eCBlZjcxMGFhMzcxZS4uYzIzMzhkZWNiYTIgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHB5dGhvbi9w bHB5X3V0aWwuYworKysgYi9zcmMvcGwvcGxweXRob24vcGxweV91dGlsLmMKQEAgLTQwLDggKzQw LDggQEAgUEx5VW5pY29kZV9CeXRlcyhQeU9iamVjdCAqdW5pY29kZSkKIAkgKgogCSAqIFB5VW5p Y29kZV9Bc0VuY29kZWRTdHJpbmcgY291bGQgYmUgdXNlZCB0byBlbmNvZGUgdGhlIG9iamVjdCBk aXJlY3RseQogCSAqIGluIHRoZSBzZXJ2ZXIgZW5jb2RpbmcsIGJ1dCBQeXRob24gZG9lc24ndCBz dXBwb3J0IGFsbCB0aGUgZW5jb2RpbmdzCi0JICogdGhhdCBQb3N0Z3JlU1FMIGRvZXMgKEVVQ19U VyBhbmQgTVVMRV9JTlRFUk5BTCkuIFVURi04IGlzIHVzZWQgYXMgYW4KLQkgKiBpbnRlcm1lZGlh cnkgaW4gUEx5VW5pY29kZV9Gcm9tU3RyaW5nIGFzIHdlbGwuCisJICogdGhhdCBQb3N0Z3JlU1FM IGRvZXMgKEVVQ19UVykuIFVURi04IGlzIHVzZWQgYXMgYW4gaW50ZXJtZWRpYXJ5IGluCisJICog UEx5VW5pY29kZV9Gcm9tU3RyaW5nIGFzIHdlbGwuCiAJICovCiAJaWYgKEdldERhdGFiYXNlRW5j b2RpbmcoKSAhPSBQR19VVEY4KQogCXsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21iL2V4cGVjdGVk L211bGVfaW50ZXJuYWwub3V0IGIvc3JjL3Rlc3QvbWIvZXhwZWN0ZWQvbXVsZV9pbnRlcm5hbC5v dXQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjOGI1N2RjNDIxLi4wMDAwMDAwMDAw MAotLS0gYS9zcmMvdGVzdC9tYi9leHBlY3RlZC9tdWxlX2ludGVybmFsLm91dAorKysgL2Rldi9u dWxsCkBAIC0xLDMzMyArMCwwIEBACi1kcm9wIHRhYmxlIJK315K7u5K1oZLN0ZK47DsKLUVSUk9S OiAgdGFibGUgIpK315K7u5K1oZLN0ZK47CIgZG9lcyBub3QgZXhpc3QKLWNyZWF0ZSB0YWJsZSCS t9eSu7uStaGSzdGSuOwgKJLN0ZK47CB0ZXh0LCCSyqySzuCSpbOSobySpckgdmFyY2hhciwgksj3 krnNMUGSpMCSpOggY2hhcigxNikpOwotY3JlYXRlIGluZGV4IJK315K7u5K1oZLN0ZK47GluZGV4 MSBvbiCSt9eSu7uStaGSzdGSuOwgdXNpbmcgYnRyZWUgKJLN0ZK47Ck7Ci1jcmVhdGUgaW5kZXgg krfXkru7krWhks3RkrjsaW5kZXgyIG9uIJK315K7u5K1oZLN0ZK47CB1c2luZyBoYXNoICiSyqyS zuCSpbOSobySpckpOwotaW5zZXJ0IGludG8gkrfXkru7krWhks3RkrjsIHZhbHVlcygnkqWzkqXz kqXUkqXlkqG8kqW/kqXHkqWjkqW5kqXXkqXskqWkJywnkrWhQTAxkr7lJyk7Ci1pbnNlcnQgaW50 byCSt9eSu7uStaGSzdGSuOwgdmFsdWVzKCeSpbOSpfOSpdSSpeWSobySpb+SpbCSpemSpdWSpaOS pcOSpa+SpbknLCeSyqxCMTCSw+YnKTsKLWluc2VydCBpbnRvIJK315K7u5K1oZLN0ZK47CB2YWx1 ZXMoJ5Kls5Kl85Kl1JKl5ZKhvJKlv5Kl15Kl7ZKlsJKl6ZKl3pKhvCcsJ5K/zVowMZKyvCcpOwot dmFjdXVtIJK315K7u5K1oZLN0ZK47DsKLXNlbGVjdCAqIGZyb20gkrfXkru7krWhks3RkrjsOwot ICAgICAgICAgICAgks3RkrjsICAgICAgICAgICAgfCCSyqySzuCSpbOSobySpckgfCCSyPeSuc0x YZKkwJKk6CAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQotIJKls5Kl85Kl1JKl5ZKhvJKlv5Klx5Klo5KluZKl15Kl7JKlpCAgIHwgkrWhQTAx kr7lICAgIHwgCi0gkqWzkqXzkqXUkqXlkqG8kqW/kqWwkqXpkqXVkqWjkqXDkqWvkqW5IHwgksqs QjEwksPmICAgIHwgCi0gkqWzkqXzkqXUkqXlkqG8kqW/kqXXkqXtkqWwkqXpkqXekqG8ICAgfCCS v81aMDGSsrwgICAgfCAKLSgzIHJvd3MpCi0KLXNlbGVjdCAqIGZyb20gkrfXkru7krWhks3Rkrjs IHdoZXJlIJLKrJLO4JKls5KhvJKlySA9ICeSv81aMDGSsrwnOwotICAgICAgICAgICCSzdGSuOwg ICAgICAgICAgIHwgksqsks7gkqWzkqG8kqXJIHwgksj3krnNMWGSpMCSpOggCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gkqWzkqXzkqXUkqXl kqG8kqW/kqXXkqXtkqWwkqXpkqXekqG8IHwgkr/NWjAxkrK8ICAgIHwgCi0oMSByb3cpCi0KLXNl bGVjdCAqIGZyb20gkrfXkru7krWhks3RkrjsIHdoZXJlIJLKrJLO4JKls5KhvJKlySB+KiAnkr/N ejAxkrK8JzsKLSAgICAgICAgICAgks3RkrjsICAgICAgICAgICB8IJLKrJLO4JKls5KhvJKlySB8 IJLI95K5zTFhkqTAkqToIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQotIJKls5Kl85Kl1JKl5ZKhvJKlv5Kl15Kl7ZKlsJKl6ZKl3pKhvCB8IJK/ zVowMZKyvCAgICB8IAotKDEgcm93KQotCi1zZWxlY3QgKiBmcm9tIJK315K7u5K1oZLN0ZK47CB3 aGVyZSCSyqySzuCSpbOSobySpckgbGlrZSAnX1owMV8nOwotICAgICAgICAgICCSzdGSuOwgICAg ICAgICAgIHwgksqsks7gkqWzkqG8kqXJIHwgksj3krnNMWGSpMCSpOggCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gkqWzkqXzkqXUkqXlkqG8 kqW/kqXXkqXtkqWwkqXpkqXekqG8IHwgkr/NWjAxkrK8ICAgIHwgCi0oMSByb3cpCi0KLXNlbGVj dCAqIGZyb20gkrfXkru7krWhks3RkrjsIHdoZXJlIJLKrJLO4JKls5KhvJKlySBsaWtlICdfWiUn OwotICAgICAgICAgICCSzdGSuOwgICAgICAgICAgIHwgksqsks7gkqWzkqG8kqXJIHwgksj3krnN MWGSpMCSpOggCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCi0gkqWzkqXzkqXUkqXlkqG8kqW/kqXXkqXtkqWwkqXpkqXekqG8IHwgkr/NWjAxkrK8 ICAgIHwgCi0oMSByb3cpCi0KLXNlbGVjdCAqIGZyb20gkrfXkru7krWhks3RkrjsIHdoZXJlIJLN 0ZK47CB+ICeSpbOSpfOSpdSSpeWSobySpb9bkqXHkqWwXSc7Ci0gICAgICAgICAgICCSzdGSuOwg ICAgICAgICAgICB8IJLKrJLO4JKls5KhvJKlySB8IJLI95K5zTFhkqTAkqToIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gkqWzkqXzkqXU kqXlkqG8kqW/kqXHkqWjkqW5kqXXkqXskqWkICAgfCCStaFBMDGSvuUgICAgfCAKLSCSpbOSpfOS pdSSpeWSobySpb+SpbCSpemSpdWSpaOSpcOSpa+SpbkgfCCSyqxCMTCSw+YgICAgfCAKLSgyIHJv d3MpCi0KLXNlbGVjdCAqIGZyb20gkrfXkru7krWhks3RkrjsIHdoZXJlIJLN0ZK47CB+KiAnkqWz kqXzkqXUkqXlkqG8kqW/W5Klx5KlsF0nOwotICAgICAgICAgICAgks3RkrjsICAgICAgICAgICAg fCCSyqySzuCSpbOSobySpckgfCCSyPeSuc0xYZKkwJKk6CAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIJKls5Kl85Kl1JKl5ZKhvJKlv5Kl x5Klo5KluZKl15Kl7JKlpCAgIHwgkrWhQTAxkr7lICAgIHwgCi0gkqWzkqXzkqXUkqXlkqG8kqW/ kqWwkqXpkqXVkqWjkqXDkqWvkqW5IHwgksqsQjEwksPmICAgIHwgCi0oMiByb3dzKQotCi1zZWxl Y3QgKixjaGFyYWN0ZXJfbGVuZ3RoKJLN0ZK47CkgZnJvbSCSt9eSu7uStaGSzdGSuOw7Ci0gICAg ICAgICAgICCSzdGSuOwgICAgICAgICAgICB8IJLKrJLO4JKls5KhvJKlySB8IJLI95K5zTFhkqTA kqToIHwgY2hhcmFjdGVyX2xlbmd0aCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KLSCSpbOSpfOSpdSSpeWS obySpb+SpceSpaOSpbmSpdeSpeySpaQgICB8IJK1oUEwMZK+5SAgICB8ICAgICAgICAgICAgfCAg ICAgICAgICAgICAgIDEyCi0gkqWzkqXzkqXUkqXlkqG8kqW/kqWwkqXpkqXVkqWjkqXDkqWvkqW5 IHwgksqsQjEwksPmICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgMTMKLSCSpbOSpfOS pdSSpeWSobySpb+SpdeSpe2SpbCSpemSpd6SobwgICB8IJK/zVowMZKyvCAgICB8ICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIDEyCi0oMyByb3dzKQotCi1zZWxlY3QgKixvY3RldF9sZW5ndGgo ks3RkrjsKSBmcm9tIJK315K7u5K1oZLN0ZK47DsKLSAgICAgICAgICAgIJLN0ZK47CAgICAgICAg ICAgIHwgksqsks7gkqWzkqG8kqXJIHwgksj3krnNMWGSpMCSpOggfCBvY3RldF9sZW5ndGggCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0KLSCSpbOSpfOSpdSSpeWSobySpb+SpceSpaOSpbmSpdeSpeySpaQgICB8IJK1 oUEwMZK+5SAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgMzYKLSCSpbOSpfOSpdSSpeWSobyS pb+SpbCSpemSpdWSpaOSpcOSpa+SpbkgfCCSyqxCMTCSw+YgICAgfCAgICAgICAgICAgIHwgICAg ICAgICAgIDM5Ci0gkqWzkqXzkqXUkqXlkqG8kqW/kqXXkqXtkqWwkqXpkqXekqG8ICAgfCCSv81a MDGSsrwgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgIDM2Ci0oMyByb3dzKQotCi1zZWxlY3Qg Kixwb3NpdGlvbignkqXHJyBpbiCSzdGSuOwpIGZyb20gkrfXkru7krWhks3RkrjsOwotICAgICAg ICAgICAgks3RkrjsICAgICAgICAgICAgfCCSyqySzuCSpbOSobySpckgfCCSyPeSuc0xYZKkwJKk 6CB8IHBvc2l0aW9uIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSCSpbOSpfOSpdSSpeWSobySpb+SpceSpaOSpbmSpdeS peySpaQgICB8IJK1oUEwMZK+5SAgICB8ICAgICAgICAgICAgfCAgICAgICAgNwotIJKls5Kl85Kl 1JKl5ZKhvJKlv5KlsJKl6ZKl1ZKlo5Klw5Klr5KluSB8IJLKrEIxMJLD5iAgICB8ICAgICAgICAg ICAgfCAgICAgICAgMAotIJKls5Kl85Kl1JKl5ZKhvJKlv5Kl15Kl7ZKlsJKl6ZKl3pKhvCAgIHwg kr/NWjAxkrK8ICAgIHwgICAgICAgICAgICB8ICAgICAgICAwCi0oMyByb3dzKQotCi1zZWxlY3Qg KixzdWJzdHJpbmcoks3RkrjsIGZyb20gMTAgZm9yIDQpIGZyb20gkrfXkru7krWhks3RkrjsOwot ICAgICAgICAgICAgks3RkrjsICAgICAgICAgICAgfCCSyqySzuCSpbOSobySpckgfCCSyPeSuc0x YZKkwJKk6CB8IHN1YnN0cmluZyAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQotIJKls5Kl85Kl1JKl5ZKhvJKlv5Klx5Kl o5KluZKl15Kl7JKlpCAgIHwgkrWhQTAxkr7lICAgIHwgICAgICAgICAgICB8IJKl15Kl7JKlpAot IJKls5Kl85Kl1JKl5ZKhvJKlv5KlsJKl6ZKl1ZKlo5Klw5Klr5KluSB8IJLKrEIxMJLD5iAgICB8 ICAgICAgICAgICAgfCCSpaOSpcOSpa+SpbkKLSCSpbOSpfOSpdSSpeWSobySpb+SpdeSpe2SpbCS pemSpd6SobwgICB8IJK/zVowMZKyvCAgICB8ICAgICAgICAgICAgfCCSpemSpd6SobwKLSgzIHJv d3MpCi0KLWRyb3AgdGFibGUgkbzGkcvjkbv6kcr1kdPvOwotRVJST1I6ICB0YWJsZSAikbzGkcvj kbv6kcr1kdPvIiBkb2VzIG5vdCBleGlzdAotY3JlYXRlIHRhYmxlIJG8xpHL45G7+pHK9ZHT7yiR yvWR0+8gdGV4dCwgkbfWkcDgkbrFIHZhcmNoYXIsIJGxuJHXojFBIGNoYXIoMTYpKTsKLWNyZWF0 ZSBpbmRleCCRvMaRy+ORu/qRyvWR0+9pbmRleDEgb24gkbzGkcvjkbv6kcr1kdPvIHVzaW5nIGJ0 cmVlKJHK9ZHT7yk7Ci1jcmVhdGUgaW5kZXggkbzGkcvjkbv6kcr1kdPvaW5kZXgyIG9uIJG8xpHL 45G7+pHK9ZHT7yB1c2luZyBidHJlZSiRt9aRwOCRusUpOwotaW5zZXJ0IGludG8gkbzGkcvjkbv6 kcr1kdPvIHZhbHVlcygnkbXnkcTUkc/Ukcq+kcbBJywnkbv6QTAxkcnPJyk7Ci1pbnNlcnQgaW50 byCRvMaRy+ORu/qRyvWR0+8gdmFsdWVzKCeRteeRxNSRzbyR0M4nLCeRt9ZCMDGR1tAnKTsKLWlu c2VydCBpbnRvIJG8xpHL45G7+pHK9ZHT7yB2YWx1ZXMoJ5G155HE1JGzzJHQ8pHUsScsJ5HIy1ow MZHPwicpOwotdmFjdXVtIJG8xpHL45G7+pHK9ZHT7zsKLXNlbGVjdCAqIGZyb20gkbzGkcvjkbv6 kcr1kdPvOwotICAgIJHK9ZHT7yAgICB8IJG31pHA4JG6xSAgfCCRsbiR16IxYSAKLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0KLSCRteeRxNSRz9SRyr6RxsEgfCCRu/pBMDGRyc8gfCAK LSCRteeRxNSRzbyR0M4gICB8IJG31kIwMZHW0CB8IAotIJG155HE1JGzzJHQ8pHUsSB8IJHIy1ow MZHPwiB8IAotKDMgcm93cykKLQotc2VsZWN0ICogZnJvbSCRvMaRy+ORu/qRyvWR0+8gd2hlcmUg kbfWkcDgkbrFID0gJ5HIy1owMZHPwic7Ci0gICAgkcr1kdPvICAgIHwgkbfWkcDgkbrFICB8IJGx uJHXojFhIAotLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLQotIJG155HE1JGzzJHQ8pHU sSB8IJHIy1owMZHPwiB8IAotKDEgcm93KQotCi1zZWxlY3QgKiBmcm9tIJG8xpHL45G7+pHK9ZHT 7yB3aGVyZSCRt9aRwOCRusUgfiogJ5HIy3owMZHPwic7Ci0gICAgkcr1kdPvICAgIHwgkbfWkcDg kbrFICB8IJGxuJHXojFhIAotLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLQotIJG155HE 1JGzzJHQ8pHUsSB8IJHIy1owMZHPwiB8IAotKDEgcm93KQotCi1zZWxlY3QgKiBmcm9tIJG8xpHL 45G7+pHK9ZHT7yB3aGVyZSCRt9aRwOCRusUgbGlrZSAnX1owMV8nOwotICAgIJHK9ZHT7yAgICB8 IJG31pHA4JG6xSAgfCCRsbiR16IxYSAKLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0K LSCRteeRxNSRs8yR0PKR1LEgfCCRyMtaMDGRz8IgfCAKLSgxIHJvdykKLQotc2VsZWN0ICogZnJv bSCRvMaRy+ORu/qRyvWR0+8gd2hlcmUgkbfWkcDgkbrFIGxpa2UgJ19aJSc7Ci0gICAgkcr1kdPv ICAgIHwgkbfWkcDgkbrFICB8IJGxuJHXojFhIAotLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLQotIJG155HE1JGzzJHQ8pHUsSB8IJHIy1owMZHPwiB8IAotKDEgcm93KQotCi1zZWxlY3Qg KiBmcm9tIJG8xpHL45G7+pHK9ZHT7yB3aGVyZSCRyvWR0+8gfiAnkbXnkcTUW5HP1JHNvF0nOwot ICAgIJHK9ZHT7yAgICB8IJG31pHA4JG6xSAgfCCRsbiR16IxYSAKLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0KLSCRteeRxNSRz9SRyr6RxsEgfCCRu/pBMDGRyc8gfCAKLSCRteeRxNSR zbyR0M4gICB8IJG31kIwMZHW0CB8IAotKDIgcm93cykKLQotc2VsZWN0ICogZnJvbSCRvMaRy+OR u/qRyvWR0+8gd2hlcmUgkcr1kdPvIH4qICeRteeRxNRbkc/Ukc28XSc7Ci0gICAgkcr1kdPvICAg IHwgkbfWkcDgkbrFICB8IJGxuJHXojFhIAotLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LQotIJG155HE1JHP1JHKvpHGwSB8IJG7+kEwMZHJzyB8IAotIJG155HE1JHNvJHQziAgIHwgkbfW QjAxkdbQIHwgCi0oMiByb3dzKQotCi1zZWxlY3QgKixjaGFyYWN0ZXJfbGVuZ3RoKJHK9ZHT7ykg ZnJvbSCRvMaRy+ORu/qRyvWR0+87Ci0gICAgkcr1kdPvICAgIHwgkbfWkcDgkbrFICB8IJGxuJHX ojFhIHwgY2hhcmFjdGVyX2xlbmd0aCAKLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tCi0gkbXnkcTUkc/Ukcq+kcbBIHwgkbv6QTAxkcnPIHwgICAgICAg IHwgICAgICAgICAgICAgICAgNQotIJG155HE1JHNvJHQziAgIHwgkbfWQjAxkdbQIHwgICAgICAg IHwgICAgICAgICAgICAgICAgNAotIJG155HE1JGzzJHQ8pHUsSB8IJHIy1owMZHPwiB8ICAgICAg ICB8ICAgICAgICAgICAgICAgIDUKLSgzIHJvd3MpCi0KLXNlbGVjdCAqLG9jdGV0X2xlbmd0aCiR yvWR0+8pIGZyb20gkbzGkcvjkbv6kcr1kdPvOwotICAgIJHK9ZHT7yAgICB8IJG31pHA4JG6xSAg fCCRsbiR16IxYSB8IG9jdGV0X2xlbmd0aCAKLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0KLSCRteeRxNSRz9SRyr6RxsEgfCCRu/pBMDGRyc8gfCAgICAgICAg fCAgICAgICAgICAgMTUKLSCRteeRxNSRzbyR0M4gICB8IJG31kIwMZHW0CB8ICAgICAgICB8ICAg ICAgICAgICAxMgotIJG155HE1JGzzJHQ8pHUsSB8IJHIy1owMZHPwiB8ICAgICAgICB8ICAgICAg ICAgICAxNQotKDMgcm93cykKLQotc2VsZWN0ICoscG9zaXRpb24oJ5HP1CcgaW4gkcr1kdPvKSBm cm9tIJG8xpHL45G7+pHK9ZHT7zsKLSAgICCRyvWR0+8gICAgfCCRt9aRwOCRusUgIHwgkbG4kdei MWEgfCBwb3NpdGlvbiAKLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LQotIJG155HE1JHP1JHKvpHGwSB8IJG7+kEwMZHJzyB8ICAgICAgICB8ICAgICAgICAzCi0gkbXn kcTUkc28kdDOICAgfCCRt9ZCMDGR1tAgfCAgICAgICAgfCAgICAgICAgMAotIJG155HE1JGzzJHQ 8pHUsSB8IJHIy1owMZHPwiB8ICAgICAgICB8ICAgICAgICAwCi0oMyByb3dzKQotCi1zZWxlY3Qg KixzdWJzdHJpbmcokcr1kdPvIGZyb20gMyBmb3IgNCkgZnJvbSCRvMaRy+ORu/qRyvWR0+87Ci0g ICAgkcr1kdPvICAgIHwgkbfWkcDgkbrFICB8IJGxuJHXojFhIHwgc3Vic3RyaW5nIAotLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLQotIJG155HE1JHP1JHKvpHGwSB8 IJG7+kEwMZHJzyB8ICAgICAgICB8IJHP1JHKvpHGwQotIJG155HE1JHNvJHQziAgIHwgkbfWQjAx kdbQIHwgICAgICAgIHwgkc28kdDOCi0gkbXnkcTUkbPMkdDykdSxIHwgkcjLWjAxkc/CIHwgICAg ICAgIHwgkbPMkdDykdSxCi0oMyByb3dzKQotCi1kcm9wIHRhYmxlIJPNqpPfqZPRppO/65O+7jsK LUVSUk9SOiAgdGFibGUgIpPNqpPfqZPRppO/65O+7iIgZG9lcyBub3QgZXhpc3QKLWNyZWF0ZSB0 YWJsZSCTzaqT36mT0aaTv+uTvu4gKJO/65O+7iB0ZXh0LCCT3cKT176TxNqTteUgdmFyY2hhciwg k7rxk7DtMUGTtvOTsbggY2hhcigxNikpOwotY3JlYXRlIGluZGV4IJPNqpPfqZPRppO/65O+7mlu ZGV4MSBvbiCTzaqT36mT0aaTv+uTvu4gdXNpbmcgYnRyZWUgKJO/65O+7ik7Ci1jcmVhdGUgaW5k ZXggk82qk9+pk9Gmk7/rk77uaW5kZXgyIG9uIJPNqpPfqZPRppO/65O+7iB1c2luZyBoYXNoICiT 3cKT176TxNqTteUpOwotaW5zZXJ0IGludG8gk82qk9+pk9Gmk7/rk77uIHZhbHVlcygnk8TEk8e7 k8XNk7Xwk726k8fDk7e5k8DMJywgJ5PRpkEwMZPfvicpOwotaW5zZXJ0IGludG8gk82qk9+pk9Gm k7/rk77uIHZhbHVlcygnk8TEk8e7k8XNk7HXk7ehk8fIk726JywgJ5PdwkIxMJPx6ScpOwotaW5z ZXJ0IGludG8gk82qk9+pk9Gmk7/rk77uIHZhbHVlcygnk8TEk8e7k8XNk8fBk7fOk7HXk7ehk7jT JywgJ5Ps0VowMZP5uycpOwotdmFjdXVtIJPNqpPfqZPRppO/65O+7jsKLXNlbGVjdCAqIGZyb20g k82qk9+pk9Gmk7/rk77uOwotICAgICAgIJO/65O+7iAgICAgICB8IJPdwpPXvpPE2pO15SB8IJO6 8ZOw7TFhk7bzk7G4IAotLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ci0gk8TEk8e7k8XNk7Xwk726k8fDk7e5k8DMIHwgk9GmQTAxk9++ICB8IAotIJPExJPHu5PFzZOx 15O3oZPHyJO9uiAgIHwgk93CQjEwk/HpICB8IAotIJPExJPHu5PFzZPHwZO3zpOx15O3oZO40yB8 IJPs0VowMZP5uyAgfCAKLSgzIHJvd3MpCi0KLXNlbGVjdCAqIGZyb20gk82qk9+pk9Gmk7/rk77u IHdoZXJlIJPdwpPXvpPE2pO15SA9ICeT7NFaMDGT+bsnOwotICAgICAgIJO/65O+7iAgICAgICB8 IJPdwpPXvpPE2pO15SB8IJO68ZOw7TFhk7bzk7G4IAotLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tCi0gk8TEk8e7k8XNk8fBk7fOk7HXk7ehk7jTIHwgk+zRWjAxk/m7 ICB8IAotKDEgcm93KQotCi1zZWxlY3QgKiBmcm9tIJPNqpPfqZPRppO/65O+7iB3aGVyZSCT3cKT 176TxNqTteUgfiogJ5Ps0XowMZP5uyc7Ci0gICAgICAgk7/rk77uICAgICAgIHwgk93Ck9e+k8Ta k7XlIHwgk7rxk7DtMWGTtvOTsbggCi0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KLSCTxMSTx7uTxc2Tx8GTt86TsdeTt6GTuNMgfCCT7NFaMDGT+bsgIHwgCi0oMSBy b3cpCi0KLXNlbGVjdCAqIGZyb20gk82qk9+pk9Gmk7/rk77uIHdoZXJlIJPdwpPXvpPE2pO15SBs aWtlICdfWjAxXyc7Ci0gICAgICAgk7/rk77uICAgICAgIHwgk93Ck9e+k8Tak7XlIHwgk7rxk7Dt MWGTtvOTsbggCi0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSCT xMSTx7uTxc2Tx8GTt86TsdeTt6GTuNMgfCCT7NFaMDGT+bsgIHwgCi0oMSByb3cpCi0KLXNlbGVj dCAqIGZyb20gk82qk9+pk9Gmk7/rk77uIHdoZXJlIJPdwpPXvpPE2pO15SBsaWtlICdfWiUnOwot ICAgICAgIJO/65O+7iAgICAgICB8IJPdwpPXvpPE2pO15SB8IJO68ZOw7TFhk7bzk7G4IAotLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gk8TEk8e7k8XNk8fBk7fO k7HXk7ehk7jTIHwgk+zRWjAxk/m7ICB8IAotKDEgcm93KQotCi1zZWxlY3QgKiBmcm9tIJPNqpPf qZPRppO/65O+7iB3aGVyZSCTv+uTvu4gfiAnk8TEk8e7k8XNW5O18JOx110nOwotICAgICAgIJO/ 65O+7iAgICAgICB8IJPdwpPXvpPE2pO15SB8IJO68ZOw7TFhk7bzk7G4IAotLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gk8TEk8e7k8XNk7Xwk726k8fDk7e5k8DM IHwgk9GmQTAxk9++ICB8IAotIJPExJPHu5PFzZOx15O3oZPHyJO9uiAgIHwgk93CQjEwk/HpICB8 IAotKDIgcm93cykKLQotc2VsZWN0ICogZnJvbSCTzaqT36mT0aaTv+uTvu4gd2hlcmUgk7/rk77u IH4qICeTxMSTx7uTxc1bk7Xwk7HXXSc7Ci0gICAgICAgk7/rk77uICAgICAgIHwgk93Ck9e+k8Ta k7XlIHwgk7rxk7DtMWGTtvOTsbggCi0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KLSCTxMSTx7uTxc2TtfCTvbqTx8OTt7mTwMwgfCCT0aZBMDGT374gIHwgCi0gk8TE k8e7k8XNk7HXk7ehk8fIk726ICAgfCCT3cJCMTCT8ekgIHwgCi0oMiByb3dzKQotCi1zZWxlY3Qg KixjaGFyYWN0ZXJfbGVuZ3RoKJO/65O+7ikgZnJvbSCTzaqT36mT0aaTv+uTvu47Ci0gICAgICAg k7/rk77uICAgICAgIHwgk93Ck9e+k8Tak7XlIHwgk7rxk7DtMWGTtvOTsbggfCBjaGFyYWN0ZXJf bGVuZ3RoIAotLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLQotIJPExJPHu5PFzZO18JO9upPHw5O3uZPAzCB8IJPRpkEwMZPfviAgfCAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgOAotIJPExJPHu5PFzZOx15O3oZPHyJO9uiAgIHwg k93CQjEwk/HpICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICA3Ci0gk8TEk8e7k8XNk8fB k7fOk7HXk7ehk7jTIHwgk+zRWjAxk/m7ICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICA4 Ci0oMyByb3dzKQotCi1zZWxlY3QgKixvY3RldF9sZW5ndGgok7/rk77uKSBmcm9tIJPNqpPfqZPR ppO/65O+7jsKLSAgICAgICCTv+uTvu4gICAgICAgfCCT3cKT176TxNqTteUgfCCTuvGTsO0xYZO2 85OxuCB8IG9jdGV0X2xlbmd0aCAKLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLQotIJPExJPHu5PFzZO18JO9upPHw5O3uZPAzCB8IJPRpkEw MZPfviAgfCAgICAgICAgICAgIHwgICAgICAgICAgIDI0Ci0gk8TEk8e7k8XNk7HXk7ehk8fIk726 ICAgfCCT3cJCMTCT8ekgIHwgICAgICAgICAgICB8ICAgICAgICAgICAyMQotIJPExJPHu5PFzZPH wZO3zpOx15O3oZO40yB8IJPs0VowMZP5uyAgfCAgICAgICAgICAgIHwgICAgICAgICAgIDI0Ci0o MyByb3dzKQotCi1zZWxlY3QgKixwb3NpdGlvbignk7XwJyBpbiCTv+uTvu4pIGZyb20gk82qk9+p k9Gmk7/rk77uOwotICAgICAgIJO/65O+7iAgICAgICB8IJPdwpPXvpPE2pO15SB8IJO68ZOw7TFh k7bzk7G4IHwgcG9zaXRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLQotIJPExJPHu5PFzZO18JO9upPHw5O3uZPAzCB8IJPRpkEwMZPfviAg fCAgICAgICAgICAgIHwgICAgICAgIDQKLSCTxMSTx7uTxc2TsdeTt6GTx8iTvbogICB8IJPdwkIx MJPx6SAgfCAgICAgICAgICAgIHwgICAgICAgIDAKLSCTxMSTx7uTxc2Tx8GTt86TsdeTt6GTuNMg fCCT7NFaMDGT+bsgIHwgICAgICAgICAgICB8ICAgICAgICAwCi0oMyByb3dzKQotCi1zZWxlY3Qg KixzdWJzdHJpbmcok7/rk77uIGZyb20gMyBmb3IgNCkgZnJvbSCTzaqT36mT0aaTv+uTvu47Ci0g ICAgICAgk7/rk77uICAgICAgIHwgk93Ck9e+k8Tak7XlIHwgk7rxk7DtMWGTtvOTsbggfCBzdWJz dHJpbmcgCi0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KLSCTxMSTx7uTxc2TtfCTvbqTx8OTt7mTwMwgfCCT0aZBMDGT374gIHwgICAgICAgICAg ICB8IJPFzZO18JO9upPHwwotIJPExJPHu5PFzZOx15O3oZPHyJO9uiAgIHwgk93CQjEwk/HpICB8 ICAgICAgICAgICAgfCCTxc2TsdeTt6GTx8gKLSCTxMSTx7uTxc2Tx8GTt86TsdeTt6GTuNMgfCCT 7NFaMDGT+bsgIHwgICAgICAgICAgICB8IJPFzZPHwZO3zpOx1wotKDMgcm93cykKLQotZHJvcCB0 YWJsZSB0ZXN0OwotRVJST1I6ICB0YWJsZSAidGVzdCIgZG9lcyBub3QgZXhpc3QKLWNyZWF0ZSB0 YWJsZSB0ZXN0ICh0IHRleHQpOwotaW5zZXJ0IGludG8gdGVzdCB2YWx1ZXMoJ0VOR0xJU0gnKTsK LWluc2VydCBpbnRvIHRlc3QgdmFsdWVzKCdGUkFOgcdBSVMnKTsKLWluc2VydCBpbnRvIHRlc3Qg dmFsdWVzKCdFU1BBgdFPTCcpOwotaW5zZXJ0IGludG8gdGVzdCB2YWx1ZXMoJ4HNU0xFTlNLQScp OwotaW5zZXJ0IGludG8gdGVzdCB2YWx1ZXMoJ0VOR0xJU0ggRlJBToHHQUlTIEVTUEGB0U9MIIHN U0xFTlNLQScpOwotdmFjdXVtIHRlc3Q7Ci1zZWxlY3QgKiBmcm9tIHRlc3Q7Ci0gICAgICAgICAg ICAgICAgIHQgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSBFTkdMSVNICi0gRlJBToHHQUlTCi0gRVNQQYHRT0wKLSCBzVNMRU5TS0EKLSBFTkdM SVNIIEZSQU6Bx0FJUyBFU1BBgdFPTCCBzVNMRU5TS0EKLSg1IHJvd3MpCi0KLXNlbGVjdCAqIGZy b20gdGVzdCB3aGVyZSB0ID0gJ0VTUEGB0U9MJzsKLSAgICB0ICAgIAotLS0tLS0tLS0tCi0gRVNQ QYHRT0wKLSgxIHJvdykKLQotc2VsZWN0ICogZnJvbSB0ZXN0IHdoZXJlIHQgfiogJ2VzcGGB0W9s JzsKLSAgICAgICAgICAgICAgICAgdCAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotIEVTUEGB0U9MCi0gRU5HTElTSCBGUkFOgcdBSVMgRVNQQYHR T0wggc1TTEVOU0tBCi0oMiByb3dzKQotCi1zZWxlY3QgKixjaGFyYWN0ZXJfbGVuZ3RoKHQpIGZy b20gdGVzdDsKLSAgICAgICAgICAgICAgICAgdCAgICAgICAgICAgICAgICAgfCBjaGFyYWN0ZXJf bGVuZ3RoIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tCi0gRU5HTElTSCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgNwotIEZSQU6Bx0FJUyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICA4Ci0gRVNQQYHRT0wgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg IDcKLSCBzVNMRU5TS0EgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg OAotIEVOR0xJU0ggRlJBToHHQUlTIEVTUEGB0U9MIIHNU0xFTlNLQSB8ICAgICAgICAgICAgICAg MzMKLSg1IHJvd3MpCi0KLXNlbGVjdCAqLG9jdGV0X2xlbmd0aCh0KSBmcm9tIHRlc3Q7Ci0gICAg ICAgICAgICAgICAgIHQgICAgICAgICAgICAgICAgIHwgb2N0ZXRfbGVuZ3RoIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KLSBFTkdMSVNIICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIDcKLSBGUkFOgcdBSVMgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICA5Ci0gRVNQQYHRT0wgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgOAotIIHNU0xFTlNLQSAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgIDkKLSBFTkdMSVNIIEZSQU6Bx0FJUyBFU1BBgdFPTCCBzVNMRU5T S0EgfCAgICAgICAgICAgMzYKLSg1IHJvd3MpCi0KLXNlbGVjdCAqLHBvc2l0aW9uKCdMJyBpbiB0 KSBmcm9tIHRlc3Q7Ci0gICAgICAgICAgICAgICAgIHQgICAgICAgICAgICAgICAgIHwgcG9zaXRp b24gCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gRU5H TElTSCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgIDQKLSBGUkFOgcdBSVMgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgIDAKLSBFU1BBgdFPTCAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgIDcKLSCBzVNMRU5TS0EgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgIDMKLSBFTkdMSVNIIEZSQU6Bx0FJUyBFU1BBgdFPTCCBzVNMRU5TS0EgfCAg ICAgICAgNAotKDUgcm93cykKLQotc2VsZWN0ICosc3Vic3RyaW5nKHQgZnJvbSAzIGZvciA0KSBm cm9tIHRlc3Q7Ci0gICAgICAgICAgICAgICAgIHQgICAgICAgICAgICAgICAgIHwgc3Vic3RyaW5n IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KLSBFTkdM SVNIICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBHTElTCi0gRlJBToHHQUlTICAgICAgICAg ICAgICAgICAgICAgICAgICB8IEFOgcdBCi0gRVNQQYHRT0wgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IFBBgdFPCi0ggc1TTEVOU0tBICAgICAgICAgICAgICAgICAgICAgICAgICB8IExFTlMK LSBFTkdMSVNIIEZSQU6Bx0FJUyBFU1BBgdFPTCCBzVNMRU5TS0EgfCBHTElTCi0oNSByb3dzKQot CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tYi9tYnJlZ3Jlc3Muc2ggYi9zcmMvdGVzdC9tYi9tYnJl Z3Jlc3Muc2gKaW5kZXggYzMxMzU2NWZiNGIuLmI2NTBiMzEwNzRmIDEwMDc1NQotLS0gYS9zcmMv dGVzdC9tYi9tYnJlZ3Jlc3Muc2gKKysrIGIvc3JjL3Rlc3QvbWIvbWJyZWdyZXNzLnNoCkBAIC0y MSw3ICsyMSw3IEBAIFBTUUw9InBzcWwgLVggLW4gLWUgLXEiCiAKICMgaW4gdGhlIHRlc3QgbGlz dCwgY2xpZW50LW9ubHkgZW5jb2RpbmdzIG11c3QgZm9sbG93IHRoZSBzZXJ2ZXIgZW5jb2RpbmcK ICMgdGhleSdyZSB0byBiZSB0ZXN0ZWQgd2l0aDsgc2VlIGhhcmQtY29kZWQgY2FzZXMgYmVsb3cK LXRlc3RzPSJldWNfanAgc2ppcyBldWNfa3IgZXVjX2NuIGV1Y190dyBiaWc1IHV0ZjggZ2IxODAz MCBtdWxlX2ludGVybmFsIgordGVzdHM9ImV1Y19qcCBzamlzIGV1Y19rciBldWNfY24gZXVjX3R3 IGJpZzUgdXRmOCBnYjE4MDMwIgogCiBFWElUQ09ERT0wCiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L21iL3NxbC9tdWxlX2ludGVybmFsLnNxbCBiL3NyYy90ZXN0L21iL3NxbC9tdWxlX2ludGVybmFs LnNxbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmUzODFmMGY3ZWQuLjAwMDAwMDAw MDAwCi0tLSBhL3NyYy90ZXN0L21iL3NxbC9tdWxlX2ludGVybmFsLnNxbAorKysgL2Rldi9udWxs CkBAIC0xLDcyICswLDAgQEAKLWRyb3AgdGFibGUgkrfXkru7krWhks3RkrjsOwotY3JlYXRlIHRh YmxlIJK315K7u5K1oZLN0ZK47CAoks3RkrjsIHRleHQsIJLKrJLO4JKls5KhvJKlySB2YXJjaGFy LCCSyPeSuc0xQZKkwJKk6CBjaGFyKDE2KSk7Ci1jcmVhdGUgaW5kZXggkrfXkru7krWhks3Rkrjs aW5kZXgxIG9uIJK315K7u5K1oZLN0ZK47CB1c2luZyBidHJlZSAoks3RkrjsKTsKLWNyZWF0ZSBp bmRleCCSt9eSu7uStaGSzdGSuOxpbmRleDIgb24gkrfXkru7krWhks3RkrjsIHVzaW5nIGhhc2gg KJLKrJLO4JKls5KhvJKlySk7Ci1pbnNlcnQgaW50byCSt9eSu7uStaGSzdGSuOwgdmFsdWVzKCeS pbOSpfOSpdSSpeWSobySpb+SpceSpaOSpbmSpdeSpeySpaQnLCeStaFBMDGSvuUnKTsKLWluc2Vy dCBpbnRvIJK315K7u5K1oZLN0ZK47CB2YWx1ZXMoJ5Kls5Kl85Kl1JKl5ZKhvJKlv5KlsJKl6ZKl 1ZKlo5Klw5Klr5KluScsJ5LKrEIxMJLD5icpOwotaW5zZXJ0IGludG8gkrfXkru7krWhks3Rkrjs IHZhbHVlcygnkqWzkqXzkqXUkqXlkqG8kqW/kqXXkqXtkqWwkqXpkqXekqG8Jywnkr/NWjAxkrK8 Jyk7Ci12YWN1dW0gkrfXkru7krWhks3RkrjsOwotc2VsZWN0ICogZnJvbSCSt9eSu7uStaGSzdGS uOw7Ci1zZWxlY3QgKiBmcm9tIJK315K7u5K1oZLN0ZK47CB3aGVyZSCSyqySzuCSpbOSobySpckg PSAnkr/NWjAxkrK8JzsKLXNlbGVjdCAqIGZyb20gkrfXkru7krWhks3RkrjsIHdoZXJlIJLKrJLO 4JKls5KhvJKlySB+KiAnkr/NejAxkrK8JzsKLXNlbGVjdCAqIGZyb20gkrfXkru7krWhks3Rkrjs IHdoZXJlIJLKrJLO4JKls5KhvJKlySBsaWtlICdfWjAxXyc7Ci1zZWxlY3QgKiBmcm9tIJK315K7 u5K1oZLN0ZK47CB3aGVyZSCSyqySzuCSpbOSobySpckgbGlrZSAnX1olJzsKLXNlbGVjdCAqIGZy b20gkrfXkru7krWhks3RkrjsIHdoZXJlIJLN0ZK47CB+ICeSpbOSpfOSpdSSpeWSobySpb9bkqXH kqWwXSc7Ci1zZWxlY3QgKiBmcm9tIJK315K7u5K1oZLN0ZK47CB3aGVyZSCSzdGSuOwgfiogJ5Kl s5Kl85Kl1JKl5ZKhvJKlv1uSpceSpbBdJzsKLXNlbGVjdCAqLGNoYXJhY3Rlcl9sZW5ndGgoks3R krjsKSBmcm9tIJK315K7u5K1oZLN0ZK47DsKLXNlbGVjdCAqLG9jdGV0X2xlbmd0aCiSzdGSuOwp IGZyb20gkrfXkru7krWhks3RkrjsOwotc2VsZWN0ICoscG9zaXRpb24oJ5KlxycgaW4gks3Rkrjs KSBmcm9tIJK315K7u5K1oZLN0ZK47DsKLXNlbGVjdCAqLHN1YnN0cmluZyiSzdGSuOwgZnJvbSAx MCBmb3IgNCkgZnJvbSCSt9eSu7uStaGSzdGSuOw7Ci1kcm9wIHRhYmxlIJG8xpHL45G7+pHK9ZHT 7zsKLWNyZWF0ZSB0YWJsZSCRvMaRy+ORu/qRyvWR0+8okcr1kdPvIHRleHQsIJG31pHA4JG6xSB2 YXJjaGFyLCCRsbiR16IxQSBjaGFyKDE2KSk7Ci1jcmVhdGUgaW5kZXggkbzGkcvjkbv6kcr1kdPv aW5kZXgxIG9uIJG8xpHL45G7+pHK9ZHT7yB1c2luZyBidHJlZSiRyvWR0+8pOwotY3JlYXRlIGlu ZGV4IJG8xpHL45G7+pHK9ZHT72luZGV4MiBvbiCRvMaRy+ORu/qRyvWR0+8gdXNpbmcgYnRyZWUo kbfWkcDgkbrFKTsKLWluc2VydCBpbnRvIJG8xpHL45G7+pHK9ZHT7yB2YWx1ZXMoJ5G155HE1JHP 1JHKvpHGwScsJ5G7+kEwMZHJzycpOwotaW5zZXJ0IGludG8gkbzGkcvjkbv6kcr1kdPvIHZhbHVl cygnkbXnkcTUkc28kdDOJywnkbfWQjAxkdbQJyk7Ci1pbnNlcnQgaW50byCRvMaRy+ORu/qRyvWR 0+8gdmFsdWVzKCeRteeRxNSRs8yR0PKR1LEnLCeRyMtaMDGRz8InKTsKLXZhY3V1bSCRvMaRy+OR u/qRyvWR0+87Ci1zZWxlY3QgKiBmcm9tIJG8xpHL45G7+pHK9ZHT7zsKLXNlbGVjdCAqIGZyb20g kbzGkcvjkbv6kcr1kdPvIHdoZXJlIJG31pHA4JG6xSA9ICeRyMtaMDGRz8InOwotc2VsZWN0ICog ZnJvbSCRvMaRy+ORu/qRyvWR0+8gd2hlcmUgkbfWkcDgkbrFIH4qICeRyMt6MDGRz8InOwotc2Vs ZWN0ICogZnJvbSCRvMaRy+ORu/qRyvWR0+8gd2hlcmUgkbfWkcDgkbrFIGxpa2UgJ19aMDFfJzsK LXNlbGVjdCAqIGZyb20gkbzGkcvjkbv6kcr1kdPvIHdoZXJlIJG31pHA4JG6xSBsaWtlICdfWiUn Owotc2VsZWN0ICogZnJvbSCRvMaRy+ORu/qRyvWR0+8gd2hlcmUgkcr1kdPvIH4gJ5G155HE1FuR z9SRzbxdJzsKLXNlbGVjdCAqIGZyb20gkbzGkcvjkbv6kcr1kdPvIHdoZXJlIJHK9ZHT7yB+KiAn kbXnkcTUW5HP1JHNvF0nOwotc2VsZWN0ICosY2hhcmFjdGVyX2xlbmd0aCiRyvWR0+8pIGZyb20g kbzGkcvjkbv6kcr1kdPvOwotc2VsZWN0ICosb2N0ZXRfbGVuZ3RoKJHK9ZHT7ykgZnJvbSCRvMaR y+ORu/qRyvWR0+87Ci1zZWxlY3QgKixwb3NpdGlvbignkc/UJyBpbiCRyvWR0+8pIGZyb20gkbzG kcvjkbv6kcr1kdPvOwotc2VsZWN0ICosc3Vic3RyaW5nKJHK9ZHT7yBmcm9tIDMgZm9yIDQpIGZy b20gkbzGkcvjkbv6kcr1kdPvOwotZHJvcCB0YWJsZSCTzaqT36mT0aaTv+uTvu47Ci1jcmVhdGUg dGFibGUgk82qk9+pk9Gmk7/rk77uICiTv+uTvu4gdGV4dCwgk93Ck9e+k8Tak7XlIHZhcmNoYXIs IJO68ZOw7TFBk7bzk7G4IGNoYXIoMTYpKTsKLWNyZWF0ZSBpbmRleCCTzaqT36mT0aaTv+uTvu5p bmRleDEgb24gk82qk9+pk9Gmk7/rk77uIHVzaW5nIGJ0cmVlICiTv+uTvu4pOwotY3JlYXRlIGlu ZGV4IJPNqpPfqZPRppO/65O+7mluZGV4MiBvbiCTzaqT36mT0aaTv+uTvu4gdXNpbmcgaGFzaCAo k93Ck9e+k8Tak7XlKTsKLWluc2VydCBpbnRvIJPNqpPfqZPRppO/65O+7iB2YWx1ZXMoJ5PExJPH u5PFzZO18JO9upPHw5O3uZPAzCcsICeT0aZBMDGT374nKTsKLWluc2VydCBpbnRvIJPNqpPfqZPR ppO/65O+7iB2YWx1ZXMoJ5PExJPHu5PFzZOx15O3oZPHyJO9uicsICeT3cJCMTCT8eknKTsKLWlu c2VydCBpbnRvIJPNqpPfqZPRppO/65O+7iB2YWx1ZXMoJ5PExJPHu5PFzZPHwZO3zpOx15O3oZO4 0ycsICeT7NFaMDGT+bsnKTsKLXZhY3V1bSCTzaqT36mT0aaTv+uTvu47Ci1zZWxlY3QgKiBmcm9t IJPNqpPfqZPRppO/65O+7jsKLXNlbGVjdCAqIGZyb20gk82qk9+pk9Gmk7/rk77uIHdoZXJlIJPd wpPXvpPE2pO15SA9ICeT7NFaMDGT+bsnOwotc2VsZWN0ICogZnJvbSCTzaqT36mT0aaTv+uTvu4g d2hlcmUgk93Ck9e+k8Tak7XlIH4qICeT7NF6MDGT+bsnOwotc2VsZWN0ICogZnJvbSCTzaqT36mT 0aaTv+uTvu4gd2hlcmUgk93Ck9e+k8Tak7XlIGxpa2UgJ19aMDFfJzsKLXNlbGVjdCAqIGZyb20g k82qk9+pk9Gmk7/rk77uIHdoZXJlIJPdwpPXvpPE2pO15SBsaWtlICdfWiUnOwotc2VsZWN0ICog ZnJvbSCTzaqT36mT0aaTv+uTvu4gd2hlcmUgk7/rk77uIH4gJ5PExJPHu5PFzVuTtfCTsdddJzsK LXNlbGVjdCAqIGZyb20gk82qk9+pk9Gmk7/rk77uIHdoZXJlIJO/65O+7iB+KiAnk8TEk8e7k8XN W5O18JOx110nOwotc2VsZWN0ICosY2hhcmFjdGVyX2xlbmd0aCiTv+uTvu4pIGZyb20gk82qk9+p k9Gmk7/rk77uOwotc2VsZWN0ICosb2N0ZXRfbGVuZ3RoKJO/65O+7ikgZnJvbSCTzaqT36mT0aaT v+uTvu47Ci1zZWxlY3QgKixwb3NpdGlvbignk7XwJyBpbiCTv+uTvu4pIGZyb20gk82qk9+pk9Gm k7/rk77uOwotc2VsZWN0ICosc3Vic3RyaW5nKJO/65O+7iBmcm9tIDMgZm9yIDQpIGZyb20gk82q k9+pk9Gmk7/rk77uOwotZHJvcCB0YWJsZSB0ZXN0OwotY3JlYXRlIHRhYmxlIHRlc3QgKHQgdGV4 dCk7Ci1pbnNlcnQgaW50byB0ZXN0IHZhbHVlcygnRU5HTElTSCcpOwotaW5zZXJ0IGludG8gdGVz dCB2YWx1ZXMoJ0ZSQU6Bx0FJUycpOwotaW5zZXJ0IGludG8gdGVzdCB2YWx1ZXMoJ0VTUEGB0U9M Jyk7Ci1pbnNlcnQgaW50byB0ZXN0IHZhbHVlcygngc1TTEVOU0tBJyk7Ci1pbnNlcnQgaW50byB0 ZXN0IHZhbHVlcygnRU5HTElTSCBGUkFOgcdBSVMgRVNQQYHRT0wggc1TTEVOU0tBJyk7Ci12YWN1 dW0gdGVzdDsKLXNlbGVjdCAqIGZyb20gdGVzdDsKLXNlbGVjdCAqIGZyb20gdGVzdCB3aGVyZSB0 ID0gJ0VTUEGB0U9MJzsKLXNlbGVjdCAqIGZyb20gdGVzdCB3aGVyZSB0IH4qICdlc3BhgdFvbCc7 Ci1zZWxlY3QgKixjaGFyYWN0ZXJfbGVuZ3RoKHQpIGZyb20gdGVzdDsKLXNlbGVjdCAqLG9jdGV0 X2xlbmd0aCh0KSBmcm9tIHRlc3Q7Ci1zZWxlY3QgKixwb3NpdGlvbignTCcgaW4gdCkgZnJvbSB0 ZXN0Owotc2VsZWN0ICosc3Vic3RyaW5nKHQgZnJvbSAzIGZvciA0KSBmcm9tIHRlc3Q7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXNjYXBlL3Rlc3RfZXNjYXBlLmMgYi9zcmMv dGVzdC9tb2R1bGVzL3Rlc3RfZXNjYXBlL3Rlc3RfZXNjYXBlLmMKaW5kZXggMTYwNmI1YTQ2YjUu LjZkYWI0ZjJjZjViIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXNjYXBlL3Rl c3RfZXNjYXBlLmMKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2VzY2FwZS90ZXN0X2VzY2Fw ZS5jCkBAIC01MjYsOCArNTI2LDYgQEAgc3RhdGljIHBlX3Rlc3RfdmVjdG9yIHBlX3Rlc3RfdmVj dG9yc1tdID0KIAlUVigiZ2JrIiwgIlx4ODBcIiIpLAogCVRWKCJnYmsiLCAiXHg4MFxcIiksCiAK LQlUVigibXVsZV9pbnRlcm5hbCIsICJcXFx4OWMnO1wwOyIpLAotCiAJVFYoInNxbF9hc2NpaSIs ICIxXHhDMCciKSwKIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2NvbnZlcnNpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb252ZXJzaW9uLm91 dAppbmRleCA2ZjNlNDdmMjBhNC4uMDE0OTFhYzYzMzggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvY29udmVyc2lvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9jb252ZXJzaW9uLm91dApAQCAtNTg4LDE2ICs1ODgsNiBAQCBzZWxlY3QgZGVzY3JpcHRp b24sIGluYnl0ZXMsICh0ZXN0X2NvbnYoaW5ieXRlcywgJ2lzbzg4NTktNScsICdrb2k4cicpKS4q IGZyb20gaQogIGludmFsaWQsIE5VTCBieXRlIHwgXHhlNGRlZGUwMCB8IFx4YzZjZmNmIHwgXHgw MCAgICAgfCBpbnZhbGlkIGJ5dGUgc2VxdWVuY2UgZm9yIGVuY29kaW5nICJJU09fODg1OV81Ijog MHgwMAogKDUgcm93cykKIAotc2VsZWN0IGRlc2NyaXB0aW9uLCBpbmJ5dGVzLCAodGVzdF9jb252 KGluYnl0ZXMsICdpc284ODU5XzUnLCAnbXVsZV9pbnRlcm5hbCcpKS4qIGZyb20gaXNvODg1OV81 X2lucHV0czsKLSAgICBkZXNjcmlwdGlvbiAgICB8ICBpbmJ5dGVzICAgfCAgICAgcmVzdWx0ICAg ICB8IGVycm9yYXQgIHwgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgICAgICAgICAgICAg ICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotIHZhbGlkLCBwdXJlIEFTQ0lJIHwgXHg2NjZmNmYgICB8IFx4NjY2 ZjZmICAgICAgIHwgICAgICAgICAgfCAKLSB2YWxpZCAgICAgICAgICAgICB8IFx4ZTRkZWRlICAg fCBceDhiYzY4YmNmOGJjZiB8ICAgICAgICAgIHwgCi0gaW52YWxpZCwgTlVMIGJ5dGUgfCBceDAw ICAgICAgIHwgXHggICAgICAgICAgICAgfCBceDAwICAgICB8IGludmFsaWQgYnl0ZSBzZXF1ZW5j ZSBmb3IgZW5jb2RpbmcgIklTT184ODU5XzUiOiAweDAwCi0gaW52YWxpZCwgTlVMIGJ5dGUgfCBc eGU0MDBkZWRlIHwgXHg4YmM2ICAgICAgICAgfCBceDAwZGVkZSB8IGludmFsaWQgYnl0ZSBzZXF1 ZW5jZSBmb3IgZW5jb2RpbmcgIklTT184ODU5XzUiOiAweDAwCi0gaW52YWxpZCwgTlVMIGJ5dGUg fCBceGU0ZGVkZTAwIHwgXHg4YmM2OGJjZjhiY2YgfCBceDAwICAgICB8IGludmFsaWQgYnl0ZSBz ZXF1ZW5jZSBmb3IgZW5jb2RpbmcgIklTT184ODU5XzUiOiAweDAwCi0oNSByb3dzKQotCiAtLQog LS0gQmlnNQogLS0KQEAgLTYzMCwxMjAgKzYyMCwzIEBAIHNlbGVjdCBkZXNjcmlwdGlvbiwgaW5i eXRlcywgKHRlc3RfY29udihpbmJ5dGVzLCAnYmlnNScsICd1dGY4JykpLiogZnJvbSBiaWc1X2lu CiAgaW52YWxpZCwgTlVMIGJ5dGUgICAgICAgICAgICAgIHwgXHg2NjZmNmZiNjQ4MDAgfCBceDY2 NmY2ZmU4YjFhMSB8IFx4MDAgICAgIHwgaW52YWxpZCBieXRlIHNlcXVlbmNlIGZvciBlbmNvZGlu ZyAiQklHNSI6IDB4MDAKICg1IHJvd3MpCiAKLXNlbGVjdCBkZXNjcmlwdGlvbiwgaW5ieXRlcywg KHRlc3RfY29udihpbmJ5dGVzLCAnYmlnNScsICdtdWxlX2ludGVybmFsJykpLiogZnJvbSBiaWc1 X2lucHV0czsKLSAgICAgICAgICBkZXNjcmlwdGlvbiAgICAgICAgICAgfCAgICBpbmJ5dGVzICAg ICB8ICAgICByZXN1bHQgICAgIHwgZXJyb3JhdCAgfCAgICAgICAgICAgICAgICAgICAgICAgIGVy cm9yICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gdmFsaWQs IHB1cmUgQVNDSUkgICAgICAgICAgICAgIHwgXHg2NjZmNmYgICAgICAgfCBceDY2NmY2ZiAgICAg ICB8ICAgICAgICAgIHwgCi0gdmFsaWQgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXHg2NjZm NmZiNjQ4ICAgfCBceDY2NmY2Zjk1ZTJhZiB8ICAgICAgICAgIHwgCi0gdmFsaWQsIG5vIHRyYW5z bGF0aW9uIHRvIFVURi04IHwgXHg2NjZmNmZhMjdmICAgfCBceDY2NmY2Zjk1YTNjMSB8ICAgICAg ICAgIHwgCi0gaW52YWxpZCwgTlVMIGJ5dGUgICAgICAgICAgICAgIHwgXHg2NjZmNmZiNjAwNDgg fCBceDY2NmY2ZiAgICAgICB8IFx4YjYwMDQ4IHwgaW52YWxpZCBieXRlIHNlcXVlbmNlIGZvciBl bmNvZGluZyAiQklHNSI6IDB4YjYgMHgwMAotIGludmFsaWQsIE5VTCBieXRlICAgICAgICAgICAg ICB8IFx4NjY2ZjZmYjY0ODAwIHwgXHg2NjZmNmY5NWUyYWYgfCBceDAwICAgICB8IGludmFsaWQg Ynl0ZSBzZXF1ZW5jZSBmb3IgZW5jb2RpbmcgIkJJRzUiOiAweDAwCi0oNSByb3dzKQotCi0tLQot LS0gTVVMRV9JTlRFUk5BTAotLS0KLUNSRUFURSBUQUJMRSBtaWNfaW5wdXRzIChpbmJ5dGVzIGJ5 dGVhLCBkZXNjcmlwdGlvbiB0ZXh0KTsKLWluc2VydCBpbnRvIG1pY19pbnB1dHMgIHZhbHVlcwot ICAoJ1x4NjY2ZjZmJywJCSd2YWxpZCwgcHVyZSBBU0NJSScpLAotICAoJ1x4OGJjNjhiY2Y4YmNm JywJJ3ZhbGlkIChpbiBLT0k4UiknKSwKLSAgKCdceDhiYzY4YmNmOGInLAknaW52YWxpZCxpbmNv bXBsZXRlIGNoYXInKSwKLSAgKCdceDkyYmVkZCcsCQkndmFsaWQgKGluIFNISUZUX0pJUyknKSwK LSAgKCdceDkyYmUnLAkJJ2ludmFsaWQsIGluY29tcGxldGUgY2hhciknKSwKLSAgKCdceDY2NmY2 Zjk1YTNjMScsCSd2YWxpZCAoaW4gQmlnNSknKSwKLSAgKCdceDY2NmY2Zjk1YTMnLAknaW52YWxp ZCwgaW5jb21wbGV0ZSBjaGFyJyksCi0gICgnXHg5MjAwYmVkZCcsCSdpbnZhbGlkLCBOVUwgYnl0 ZScpLAotICAoJ1x4OTJiZWRkMDAnLAknaW52YWxpZCwgTlVMIGJ5dGUnKSwKLSAgKCdceDhiMDBj NjhiY2Y4YmNmJywJJ2ludmFsaWQsIE5VTCBieXRlJyk7Ci0tLSBUZXN0IE1VTEVfSU5URVJOQUwg dmVyaWZpY2F0aW9uCi1zZWxlY3QgZGVzY3JpcHRpb24sIGluYnl0ZXMsICh0ZXN0X2NvbnYoaW5i eXRlcywgJ211bGVfaW50ZXJuYWwnLCAnbXVsZV9pbnRlcm5hbCcpKS4qIGZyb20gbWljX2lucHV0 czsKLSAgICAgICAgZGVzY3JpcHRpb24gICAgICAgIHwgICAgIGluYnl0ZXMgICAgICB8ICAgICBy ZXN1bHQgICAgIHwgICAgIGVycm9yYXQgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSB2YWxpZCwgcHVyZSBBU0NJSSAgICAgICAgIHwgXHg2 NjZmNmYgICAgICAgICB8IFx4NjY2ZjZmICAgICAgIHwgICAgICAgICAgICAgICAgICB8IAotIHZh bGlkIChpbiBLT0k4UikgICAgICAgICAgfCBceDhiYzY4YmNmOGJjZiAgIHwgXHg4YmM2OGJjZjhi Y2YgfCAgICAgICAgICAgICAgICAgIHwgCi0gaW52YWxpZCxpbmNvbXBsZXRlIGNoYXIgICB8IFx4 OGJjNjhiY2Y4YiAgICAgfCBceDhiYzY4YmNmICAgICB8IFx4OGIgICAgICAgICAgICAgfCBpbnZh bGlkIGJ5dGUgc2VxdWVuY2UgZm9yIGVuY29kaW5nICJNVUxFX0lOVEVSTkFMIjogMHg4YgotIHZh bGlkIChpbiBTSElGVF9KSVMpICAgICAgfCBceDkyYmVkZCAgICAgICAgIHwgXHg5MmJlZGQgICAg ICAgfCAgICAgICAgICAgICAgICAgIHwgCi0gaW52YWxpZCwgaW5jb21wbGV0ZSBjaGFyKSB8IFx4 OTJiZSAgICAgICAgICAgfCBceCAgICAgICAgICAgICB8IFx4OTJiZSAgICAgICAgICAgfCBpbnZh bGlkIGJ5dGUgc2VxdWVuY2UgZm9yIGVuY29kaW5nICJNVUxFX0lOVEVSTkFMIjogMHg5MiAweGJl Ci0gdmFsaWQgKGluIEJpZzUpICAgICAgICAgICB8IFx4NjY2ZjZmOTVhM2MxICAgfCBceDY2NmY2 Zjk1YTNjMSB8ICAgICAgICAgICAgICAgICAgfCAKLSBpbnZhbGlkLCBpbmNvbXBsZXRlIGNoYXIg IHwgXHg2NjZmNmY5NWEzICAgICB8IFx4NjY2ZjZmICAgICAgIHwgXHg5NWEzICAgICAgICAgICB8 IGludmFsaWQgYnl0ZSBzZXF1ZW5jZSBmb3IgZW5jb2RpbmcgIk1VTEVfSU5URVJOQUwiOiAweDk1 IDB4YTMKLSBpbnZhbGlkLCBOVUwgYnl0ZSAgICAgICAgIHwgXHg5MjAwYmVkZCAgICAgICB8IFx4 ICAgICAgICAgICAgIHwgXHg5MjAwYmVkZCAgICAgICB8IGludmFsaWQgYnl0ZSBzZXF1ZW5jZSBm b3IgZW5jb2RpbmcgIk1VTEVfSU5URVJOQUwiOiAweDkyIDB4MDAgMHhiZQotIGludmFsaWQsIE5V TCBieXRlICAgICAgICAgfCBceDkyYmVkZDAwICAgICAgIHwgXHg5MmJlZGQgICAgICAgfCBceDAw ICAgICAgICAgICAgIHwgaW52YWxpZCBieXRlIHNlcXVlbmNlIGZvciBlbmNvZGluZyAiTVVMRV9J TlRFUk5BTCI6IDB4MDAKLSBpbnZhbGlkLCBOVUwgYnl0ZSAgICAgICAgIHwgXHg4YjAwYzY4YmNm OGJjZiB8IFx4ICAgICAgICAgICAgIHwgXHg4YjAwYzY4YmNmOGJjZiB8IGludmFsaWQgYnl0ZSBz ZXF1ZW5jZSBmb3IgZW5jb2RpbmcgIk1VTEVfSU5URVJOQUwiOiAweDhiIDB4MDAKLSgxMCByb3dz KQotCi0tLSBUZXN0IGNvbnZlcnNpb25zIGZyb20gTVVMRV9JTlRFUk5BTAotc2VsZWN0IGRlc2Ny aXB0aW9uLCBpbmJ5dGVzLCAodGVzdF9jb252KGluYnl0ZXMsICdtdWxlX2ludGVybmFsJywgJ2tv aThyJykpLiogZnJvbSBtaWNfaW5wdXRzOwotICAgICAgICBkZXNjcmlwdGlvbiAgICAgICAgfCAg ICAgaW5ieXRlcyAgICAgIHwgIHJlc3VsdCAgfCAgICAgZXJyb3JhdCAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0gdmFsaWQsIHB1cmUgQVNDSUkgICAgICAgICB8IFx4NjY2ZjZmICAgICAgICAgfCBc eDY2NmY2ZiB8ICAgICAgICAgICAgICAgICAgfCAKLSB2YWxpZCAoaW4gS09JOFIpICAgICAgICAg IHwgXHg4YmM2OGJjZjhiY2YgICB8IFx4YzZjZmNmIHwgICAgICAgICAgICAgICAgICB8IAotIGlu dmFsaWQsaW5jb21wbGV0ZSBjaGFyICAgfCBceDhiYzY4YmNmOGIgICAgIHwgXHhjNmNmICAgfCBc eDhiICAgICAgICAgICAgIHwgaW52YWxpZCBieXRlIHNlcXVlbmNlIGZvciBlbmNvZGluZyAiTVVM RV9JTlRFUk5BTCI6IDB4OGIKLSB2YWxpZCAoaW4gU0hJRlRfSklTKSAgICAgIHwgXHg5MmJlZGQg ICAgICAgICB8IFx4ICAgICAgIHwgXHg5MmJlZGQgICAgICAgICB8IGNoYXJhY3RlciB3aXRoIGJ5 dGUgc2VxdWVuY2UgMHg5MiAweGJlIDB4ZGQgaW4gZW5jb2RpbmcgIk1VTEVfSU5URVJOQUwiIGhh cyBubyBlcXVpdmFsZW50IGluIGVuY29kaW5nICJLT0k4UiIKLSBpbnZhbGlkLCBpbmNvbXBsZXRl IGNoYXIpIHwgXHg5MmJlICAgICAgICAgICB8IFx4ICAgICAgIHwgXHg5MmJlICAgICAgICAgICB8 IGludmFsaWQgYnl0ZSBzZXF1ZW5jZSBmb3IgZW5jb2RpbmcgIk1VTEVfSU5URVJOQUwiOiAweDky IDB4YmUKLSB2YWxpZCAoaW4gQmlnNSkgICAgICAgICAgIHwgXHg2NjZmNmY5NWEzYzEgICB8IFx4 NjY2ZjZmIHwgXHg5NWEzYzEgICAgICAgICB8IGNoYXJhY3RlciB3aXRoIGJ5dGUgc2VxdWVuY2Ug MHg5NSAweGEzIDB4YzEgaW4gZW5jb2RpbmcgIk1VTEVfSU5URVJOQUwiIGhhcyBubyBlcXVpdmFs ZW50IGluIGVuY29kaW5nICJLT0k4UiIKLSBpbnZhbGlkLCBpbmNvbXBsZXRlIGNoYXIgIHwgXHg2 NjZmNmY5NWEzICAgICB8IFx4NjY2ZjZmIHwgXHg5NWEzICAgICAgICAgICB8IGludmFsaWQgYnl0 ZSBzZXF1ZW5jZSBmb3IgZW5jb2RpbmcgIk1VTEVfSU5URVJOQUwiOiAweDk1IDB4YTMKLSBpbnZh bGlkLCBOVUwgYnl0ZSAgICAgICAgIHwgXHg5MjAwYmVkZCAgICAgICB8IFx4ICAgICAgIHwgXHg5 MjAwYmVkZCAgICAgICB8IGNoYXJhY3RlciB3aXRoIGJ5dGUgc2VxdWVuY2UgMHg5MiAweDAwIDB4 YmUgaW4gZW5jb2RpbmcgIk1VTEVfSU5URVJOQUwiIGhhcyBubyBlcXVpdmFsZW50IGluIGVuY29k aW5nICJLT0k4UiIKLSBpbnZhbGlkLCBOVUwgYnl0ZSAgICAgICAgIHwgXHg5MmJlZGQwMCAgICAg ICB8IFx4ICAgICAgIHwgXHg5MmJlZGQwMCAgICAgICB8IGNoYXJhY3RlciB3aXRoIGJ5dGUgc2Vx dWVuY2UgMHg5MiAweGJlIDB4ZGQgaW4gZW5jb2RpbmcgIk1VTEVfSU5URVJOQUwiIGhhcyBubyBl cXVpdmFsZW50IGluIGVuY29kaW5nICJLT0k4UiIKLSBpbnZhbGlkLCBOVUwgYnl0ZSAgICAgICAg IHwgXHg4YjAwYzY4YmNmOGJjZiB8IFx4ICAgICAgIHwgXHg4YjAwYzY4YmNmOGJjZiB8IGNoYXJh Y3RlciB3aXRoIGJ5dGUgc2VxdWVuY2UgMHg4YiAweDAwIGluIGVuY29kaW5nICJNVUxFX0lOVEVS TkFMIiBoYXMgbm8gZXF1aXZhbGVudCBpbiBlbmNvZGluZyAiS09JOFIiCi0oMTAgcm93cykKLQot c2VsZWN0IGRlc2NyaXB0aW9uLCBpbmJ5dGVzLCAodGVzdF9jb252KGluYnl0ZXMsICdtdWxlX2lu dGVybmFsJywgJ2lzbzg4NTktNScpKS4qIGZyb20gbWljX2lucHV0czsKLSAgICAgICAgZGVzY3Jp cHRpb24gICAgICAgIHwgICAgIGluYnl0ZXMgICAgICB8ICByZXN1bHQgIHwgICAgIGVycm9yYXQg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSB2YWxpZCwgcHVyZSBBU0NJSSAgICAg ICAgIHwgXHg2NjZmNmYgICAgICAgICB8IFx4NjY2ZjZmIHwgICAgICAgICAgICAgICAgICB8IAot IHZhbGlkIChpbiBLT0k4UikgICAgICAgICAgfCBceDhiYzY4YmNmOGJjZiAgIHwgXHhlNGRlZGUg fCAgICAgICAgICAgICAgICAgIHwgCi0gaW52YWxpZCxpbmNvbXBsZXRlIGNoYXIgICB8IFx4OGJj NjhiY2Y4YiAgICAgfCBceGU0ZGUgICB8IFx4OGIgICAgICAgICAgICAgfCBpbnZhbGlkIGJ5dGUg c2VxdWVuY2UgZm9yIGVuY29kaW5nICJNVUxFX0lOVEVSTkFMIjogMHg4YgotIHZhbGlkIChpbiBT SElGVF9KSVMpICAgICAgfCBceDkyYmVkZCAgICAgICAgIHwgXHggICAgICAgfCBceDkyYmVkZCAg ICAgICAgIHwgY2hhcmFjdGVyIHdpdGggYnl0ZSBzZXF1ZW5jZSAweDkyIDB4YmUgMHhkZCBpbiBl bmNvZGluZyAiTVVMRV9JTlRFUk5BTCIgaGFzIG5vIGVxdWl2YWxlbnQgaW4gZW5jb2RpbmcgIklT T184ODU5XzUiCi0gaW52YWxpZCwgaW5jb21wbGV0ZSBjaGFyKSB8IFx4OTJiZSAgICAgICAgICAg fCBceCAgICAgICB8IFx4OTJiZSAgICAgICAgICAgfCBpbnZhbGlkIGJ5dGUgc2VxdWVuY2UgZm9y IGVuY29kaW5nICJNVUxFX0lOVEVSTkFMIjogMHg5MiAweGJlCi0gdmFsaWQgKGluIEJpZzUpICAg ICAgICAgICB8IFx4NjY2ZjZmOTVhM2MxICAgfCBceDY2NmY2ZiB8IFx4OTVhM2MxICAgICAgICAg fCBjaGFyYWN0ZXIgd2l0aCBieXRlIHNlcXVlbmNlIDB4OTUgMHhhMyAweGMxIGluIGVuY29kaW5n ICJNVUxFX0lOVEVSTkFMIiBoYXMgbm8gZXF1aXZhbGVudCBpbiBlbmNvZGluZyAiSVNPXzg4NTlf NSIKLSBpbnZhbGlkLCBpbmNvbXBsZXRlIGNoYXIgIHwgXHg2NjZmNmY5NWEzICAgICB8IFx4NjY2 ZjZmIHwgXHg5NWEzICAgICAgICAgICB8IGludmFsaWQgYnl0ZSBzZXF1ZW5jZSBmb3IgZW5jb2Rp bmcgIk1VTEVfSU5URVJOQUwiOiAweDk1IDB4YTMKLSBpbnZhbGlkLCBOVUwgYnl0ZSAgICAgICAg IHwgXHg5MjAwYmVkZCAgICAgICB8IFx4ICAgICAgIHwgXHg5MjAwYmVkZCAgICAgICB8IGNoYXJh Y3RlciB3aXRoIGJ5dGUgc2VxdWVuY2UgMHg5MiAweDAwIDB4YmUgaW4gZW5jb2RpbmcgIk1VTEVf SU5URVJOQUwiIGhhcyBubyBlcXVpdmFsZW50IGluIGVuY29kaW5nICJJU09fODg1OV81IgotIGlu dmFsaWQsIE5VTCBieXRlICAgICAgICAgfCBceDkyYmVkZDAwICAgICAgIHwgXHggICAgICAgfCBc eDkyYmVkZDAwICAgICAgIHwgY2hhcmFjdGVyIHdpdGggYnl0ZSBzZXF1ZW5jZSAweDkyIDB4YmUg MHhkZCBpbiBlbmNvZGluZyAiTVVMRV9JTlRFUk5BTCIgaGFzIG5vIGVxdWl2YWxlbnQgaW4gZW5j b2RpbmcgIklTT184ODU5XzUiCi0gaW52YWxpZCwgTlVMIGJ5dGUgICAgICAgICB8IFx4OGIwMGM2 OGJjZjhiY2YgfCBceCAgICAgICB8IFx4OGIwMGM2OGJjZjhiY2YgfCBjaGFyYWN0ZXIgd2l0aCBi eXRlIHNlcXVlbmNlIDB4OGIgMHgwMCBpbiBlbmNvZGluZyAiTVVMRV9JTlRFUk5BTCIgaGFzIG5v IGVxdWl2YWxlbnQgaW4gZW5jb2RpbmcgIklTT184ODU5XzUiCi0oMTAgcm93cykKLQotc2VsZWN0 IGRlc2NyaXB0aW9uLCBpbmJ5dGVzLCAodGVzdF9jb252KGluYnl0ZXMsICdtdWxlX2ludGVybmFs JywgJ3NqaXMnKSkuKiBmcm9tIG1pY19pbnB1dHM7Ci0gICAgICAgIGRlc2NyaXB0aW9uICAgICAg ICB8ICAgICBpbmJ5dGVzICAgICAgfCAgcmVzdWx0ICB8ICAgICBlcnJvcmF0ICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0gdmFsaWQsIHB1cmUgQVNDSUkgICAgICAgICB8IFx4NjY2ZjZmICAgICAgICAg fCBceDY2NmY2ZiB8ICAgICAgICAgICAgICAgICAgfCAKLSB2YWxpZCAoaW4gS09JOFIpICAgICAg ICAgIHwgXHg4YmM2OGJjZjhiY2YgICB8IFx4ICAgICAgIHwgXHg4YmM2OGJjZjhiY2YgICB8IGNo YXJhY3RlciB3aXRoIGJ5dGUgc2VxdWVuY2UgMHg4YiAweGM2IGluIGVuY29kaW5nICJNVUxFX0lO VEVSTkFMIiBoYXMgbm8gZXF1aXZhbGVudCBpbiBlbmNvZGluZyAiU0pJUyIKLSBpbnZhbGlkLGlu Y29tcGxldGUgY2hhciAgIHwgXHg4YmM2OGJjZjhiICAgICB8IFx4ICAgICAgIHwgXHg4YmM2OGJj ZjhiICAgICB8IGNoYXJhY3RlciB3aXRoIGJ5dGUgc2VxdWVuY2UgMHg4YiAweGM2IGluIGVuY29k aW5nICJNVUxFX0lOVEVSTkFMIiBoYXMgbm8gZXF1aXZhbGVudCBpbiBlbmNvZGluZyAiU0pJUyIK LSB2YWxpZCAoaW4gU0hJRlRfSklTKSAgICAgIHwgXHg5MmJlZGQgICAgICAgICB8IFx4OGZkYiAg IHwgICAgICAgICAgICAgICAgICB8IAotIGludmFsaWQsIGluY29tcGxldGUgY2hhcikgfCBceDky YmUgICAgICAgICAgIHwgXHggICAgICAgfCBceDkyYmUgICAgICAgICAgIHwgaW52YWxpZCBieXRl IHNlcXVlbmNlIGZvciBlbmNvZGluZyAiTVVMRV9JTlRFUk5BTCI6IDB4OTIgMHhiZQotIHZhbGlk IChpbiBCaWc1KSAgICAgICAgICAgfCBceDY2NmY2Zjk1YTNjMSAgIHwgXHg2NjZmNmYgfCBceDk1 YTNjMSAgICAgICAgIHwgY2hhcmFjdGVyIHdpdGggYnl0ZSBzZXF1ZW5jZSAweDk1IDB4YTMgMHhj MSBpbiBlbmNvZGluZyAiTVVMRV9JTlRFUk5BTCIgaGFzIG5vIGVxdWl2YWxlbnQgaW4gZW5jb2Rp bmcgIlNKSVMiCi0gaW52YWxpZCwgaW5jb21wbGV0ZSBjaGFyICB8IFx4NjY2ZjZmOTVhMyAgICAg fCBceDY2NmY2ZiB8IFx4OTVhMyAgICAgICAgICAgfCBpbnZhbGlkIGJ5dGUgc2VxdWVuY2UgZm9y IGVuY29kaW5nICJNVUxFX0lOVEVSTkFMIjogMHg5NSAweGEzCi0gaW52YWxpZCwgTlVMIGJ5dGUg ICAgICAgICB8IFx4OTIwMGJlZGQgICAgICAgfCBceCAgICAgICB8IFx4OTIwMGJlZGQgICAgICAg fCBpbnZhbGlkIGJ5dGUgc2VxdWVuY2UgZm9yIGVuY29kaW5nICJNVUxFX0lOVEVSTkFMIjogMHg5 MiAweDAwIDB4YmUKLSBpbnZhbGlkLCBOVUwgYnl0ZSAgICAgICAgIHwgXHg5MmJlZGQwMCAgICAg ICB8IFx4OGZkYiAgIHwgXHgwMCAgICAgICAgICAgICB8IGludmFsaWQgYnl0ZSBzZXF1ZW5jZSBm b3IgZW5jb2RpbmcgIk1VTEVfSU5URVJOQUwiOiAweDAwCi0gaW52YWxpZCwgTlVMIGJ5dGUgICAg ICAgICB8IFx4OGIwMGM2OGJjZjhiY2YgfCBceCAgICAgICB8IFx4OGIwMGM2OGJjZjhiY2YgfCBp bnZhbGlkIGJ5dGUgc2VxdWVuY2UgZm9yIGVuY29kaW5nICJNVUxFX0lOVEVSTkFMIjogMHg4YiAw eDAwCi0oMTAgcm93cykKLQotc2VsZWN0IGRlc2NyaXB0aW9uLCBpbmJ5dGVzLCAodGVzdF9jb252 KGluYnl0ZXMsICdtdWxlX2ludGVybmFsJywgJ2JpZzUnKSkuKiBmcm9tIG1pY19pbnB1dHM7Ci0g ICAgICAgIGRlc2NyaXB0aW9uICAgICAgICB8ICAgICBpbmJ5dGVzICAgICAgfCAgICByZXN1bHQg ICAgfCAgICAgZXJyb3JhdCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSB2YWxpZCwgcHVyZSBB U0NJSSAgICAgICAgIHwgXHg2NjZmNmYgICAgICAgICB8IFx4NjY2ZjZmICAgICB8ICAgICAgICAg ICAgICAgICAgfCAKLSB2YWxpZCAoaW4gS09JOFIpICAgICAgICAgIHwgXHg4YmM2OGJjZjhiY2Yg ICB8IFx4ICAgICAgICAgICB8IFx4OGJjNjhiY2Y4YmNmICAgfCBjaGFyYWN0ZXIgd2l0aCBieXRl IHNlcXVlbmNlIDB4OGIgMHhjNiBpbiBlbmNvZGluZyAiTVVMRV9JTlRFUk5BTCIgaGFzIG5vIGVx dWl2YWxlbnQgaW4gZW5jb2RpbmcgIkJJRzUiCi0gaW52YWxpZCxpbmNvbXBsZXRlIGNoYXIgICB8 IFx4OGJjNjhiY2Y4YiAgICAgfCBceCAgICAgICAgICAgfCBceDhiYzY4YmNmOGIgICAgIHwgY2hh cmFjdGVyIHdpdGggYnl0ZSBzZXF1ZW5jZSAweDhiIDB4YzYgaW4gZW5jb2RpbmcgIk1VTEVfSU5U RVJOQUwiIGhhcyBubyBlcXVpdmFsZW50IGluIGVuY29kaW5nICJCSUc1IgotIHZhbGlkIChpbiBT SElGVF9KSVMpICAgICAgfCBceDkyYmVkZCAgICAgICAgIHwgXHggICAgICAgICAgIHwgXHg5MmJl ZGQgICAgICAgICB8IGNoYXJhY3RlciB3aXRoIGJ5dGUgc2VxdWVuY2UgMHg5MiAweGJlIDB4ZGQg aW4gZW5jb2RpbmcgIk1VTEVfSU5URVJOQUwiIGhhcyBubyBlcXVpdmFsZW50IGluIGVuY29kaW5n ICJCSUc1IgotIGludmFsaWQsIGluY29tcGxldGUgY2hhcikgfCBceDkyYmUgICAgICAgICAgIHwg XHggICAgICAgICAgIHwgXHg5MmJlICAgICAgICAgICB8IGludmFsaWQgYnl0ZSBzZXF1ZW5jZSBm b3IgZW5jb2RpbmcgIk1VTEVfSU5URVJOQUwiOiAweDkyIDB4YmUKLSB2YWxpZCAoaW4gQmlnNSkg ICAgICAgICAgIHwgXHg2NjZmNmY5NWEzYzEgICB8IFx4NjY2ZjZmYTJhMSB8ICAgICAgICAgICAg ICAgICAgfCAKLSBpbnZhbGlkLCBpbmNvbXBsZXRlIGNoYXIgIHwgXHg2NjZmNmY5NWEzICAgICB8 IFx4NjY2ZjZmICAgICB8IFx4OTVhMyAgICAgICAgICAgfCBpbnZhbGlkIGJ5dGUgc2VxdWVuY2Ug Zm9yIGVuY29kaW5nICJNVUxFX0lOVEVSTkFMIjogMHg5NSAweGEzCi0gaW52YWxpZCwgTlVMIGJ5 dGUgICAgICAgICB8IFx4OTIwMGJlZGQgICAgICAgfCBceCAgICAgICAgICAgfCBceDkyMDBiZWRk ICAgICAgIHwgaW52YWxpZCBieXRlIHNlcXVlbmNlIGZvciBlbmNvZGluZyAiTVVMRV9JTlRFUk5B TCI6IDB4OTIgMHgwMCAweGJlCi0gaW52YWxpZCwgTlVMIGJ5dGUgICAgICAgICB8IFx4OTJiZWRk MDAgICAgICAgfCBceCAgICAgICAgICAgfCBceDkyYmVkZDAwICAgICAgIHwgY2hhcmFjdGVyIHdp dGggYnl0ZSBzZXF1ZW5jZSAweDkyIDB4YmUgMHhkZCBpbiBlbmNvZGluZyAiTVVMRV9JTlRFUk5B TCIgaGFzIG5vIGVxdWl2YWxlbnQgaW4gZW5jb2RpbmcgIkJJRzUiCi0gaW52YWxpZCwgTlVMIGJ5 dGUgICAgICAgICB8IFx4OGIwMGM2OGJjZjhiY2YgfCBceCAgICAgICAgICAgfCBceDhiMDBjNjhi Y2Y4YmNmIHwgaW52YWxpZCBieXRlIHNlcXVlbmNlIGZvciBlbmNvZGluZyAiTVVMRV9JTlRFUk5B TCI6IDB4OGIgMHgwMAotKDEwIHJvd3MpCi0KLXNlbGVjdCBkZXNjcmlwdGlvbiwgaW5ieXRlcywg KHRlc3RfY29udihpbmJ5dGVzLCAnbXVsZV9pbnRlcm5hbCcsICdldWNfanAnKSkuKiBmcm9tIG1p Y19pbnB1dHM7Ci0gICAgICAgIGRlc2NyaXB0aW9uICAgICAgICB8ICAgICBpbmJ5dGVzICAgICAg fCAgcmVzdWx0ICB8ICAgICBlcnJvcmF0ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIHZhbGlk LCBwdXJlIEFTQ0lJICAgICAgICAgfCBceDY2NmY2ZiAgICAgICAgIHwgXHg2NjZmNmYgfCAgICAg ICAgICAgICAgICAgIHwgCi0gdmFsaWQgKGluIEtPSThSKSAgICAgICAgICB8IFx4OGJjNjhiY2Y4 YmNmICAgfCBceCAgICAgICB8IFx4OGJjNjhiY2Y4YmNmICAgfCBjaGFyYWN0ZXIgd2l0aCBieXRl IHNlcXVlbmNlIDB4OGIgMHhjNiBpbiBlbmNvZGluZyAiTVVMRV9JTlRFUk5BTCIgaGFzIG5vIGVx dWl2YWxlbnQgaW4gZW5jb2RpbmcgIkVVQ19KUCIKLSBpbnZhbGlkLGluY29tcGxldGUgY2hhciAg IHwgXHg4YmM2OGJjZjhiICAgICB8IFx4ICAgICAgIHwgXHg4YmM2OGJjZjhiICAgICB8IGNoYXJh Y3RlciB3aXRoIGJ5dGUgc2VxdWVuY2UgMHg4YiAweGM2IGluIGVuY29kaW5nICJNVUxFX0lOVEVS TkFMIiBoYXMgbm8gZXF1aXZhbGVudCBpbiBlbmNvZGluZyAiRVVDX0pQIgotIHZhbGlkIChpbiBT SElGVF9KSVMpICAgICAgfCBceDkyYmVkZCAgICAgICAgIHwgXHhiZWRkICAgfCAgICAgICAgICAg ICAgICAgIHwgCi0gaW52YWxpZCwgaW5jb21wbGV0ZSBjaGFyKSB8IFx4OTJiZSAgICAgICAgICAg fCBceCAgICAgICB8IFx4OTJiZSAgICAgICAgICAgfCBpbnZhbGlkIGJ5dGUgc2VxdWVuY2UgZm9y IGVuY29kaW5nICJNVUxFX0lOVEVSTkFMIjogMHg5MiAweGJlCi0gdmFsaWQgKGluIEJpZzUpICAg ICAgICAgICB8IFx4NjY2ZjZmOTVhM2MxICAgfCBceDY2NmY2ZiB8IFx4OTVhM2MxICAgICAgICAg fCBjaGFyYWN0ZXIgd2l0aCBieXRlIHNlcXVlbmNlIDB4OTUgMHhhMyAweGMxIGluIGVuY29kaW5n ICJNVUxFX0lOVEVSTkFMIiBoYXMgbm8gZXF1aXZhbGVudCBpbiBlbmNvZGluZyAiRVVDX0pQIgot IGludmFsaWQsIGluY29tcGxldGUgY2hhciAgfCBceDY2NmY2Zjk1YTMgICAgIHwgXHg2NjZmNmYg fCBceDk1YTMgICAgICAgICAgIHwgaW52YWxpZCBieXRlIHNlcXVlbmNlIGZvciBlbmNvZGluZyAi TVVMRV9JTlRFUk5BTCI6IDB4OTUgMHhhMwotIGludmFsaWQsIE5VTCBieXRlICAgICAgICAgfCBc eDkyMDBiZWRkICAgICAgIHwgXHggICAgICAgfCBceDkyMDBiZWRkICAgICAgIHwgaW52YWxpZCBi eXRlIHNlcXVlbmNlIGZvciBlbmNvZGluZyAiTVVMRV9JTlRFUk5BTCI6IDB4OTIgMHgwMCAweGJl Ci0gaW52YWxpZCwgTlVMIGJ5dGUgICAgICAgICB8IFx4OTJiZWRkMDAgICAgICAgfCBceGJlZGQg ICB8IFx4MDAgICAgICAgICAgICAgfCBpbnZhbGlkIGJ5dGUgc2VxdWVuY2UgZm9yIGVuY29kaW5n ICJNVUxFX0lOVEVSTkFMIjogMHgwMAotIGludmFsaWQsIE5VTCBieXRlICAgICAgICAgfCBceDhi MDBjNjhiY2Y4YmNmIHwgXHggICAgICAgfCBceDhiMDBjNjhiY2Y4YmNmIHwgaW52YWxpZCBieXRl IHNlcXVlbmNlIGZvciBlbmNvZGluZyAiTVVMRV9JTlRFUk5BTCI6IDB4OGIgMHgwMAotKDEwIHJv d3MpCi0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZW5jb2Rpbmcub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lbmNvZGluZy5vdXQKaW5kZXggZWExZjM4Y2Zm NDEuLjZhYzg5OWE4YzIzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Vu Y29kaW5nLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2VuY29kaW5nLm91dApA QCAtMzAyLDE2ICszMDIsNyBAQCBJTlNFUlQgSU5UTyBlbmNvZGluZ190ZXN0cyBWQUxVRVMKIAko J1VURjgnLCAgICc2IGJ5dGUsIHVuc3VwcG9ydGVkJywgJ1x4ZmQ4MjgzJyksCiAJKCdVVEY4Jywg ICAnNiBieXRlLCB1bnN1cHBvcnRlZCcsICdceGZkODI4Mzg0JyksCiAJKCdVVEY4JywgICAnNiBi eXRlLCB1bnN1cHBvcnRlZCcsICdceGZkODI4Mzg0ODUnKSwKLQkoJ1VURjgnLCAgICc2IGJ5dGUs IHVuc3VwcG9ydGVkJywgJ1x4ZmQ4MjgzODQ4NTg2JyksCi0JLS0gTVVMRV9JTlRFUk5BTAotCS0t IDIgODEuLjhkIExDMQotCS0tIDMgOTAuLjk5IExDMgotCSgnTVVMRV9JTlRFUk5BTCcsICdBU0NJ SScsICAgICAgICAgJ2EnKSwKLQkoJ01VTEVfSU5URVJOQUwnLCAnTEMxLCBzaG9ydCcsICAgICdc eDgxJyksCi0JKCdNVUxFX0lOVEVSTkFMJywgJ0xDMScsICAgICAgICAgICAnXHg4MTgyJyksCi0J KCdNVUxFX0lOVEVSTkFMJywgJ0xDMiwgc2hvcnQnLCAgICAnXHg5MCcpLAotCSgnTVVMRV9JTlRF Uk5BTCcsICdMQzIsIHNob3J0JywgICAgJ1x4OTA4MicpLAotCSgnTVVMRV9JTlRFUk5BTCcsICdM QzInLCAgICAgICAgICAgJ1x4OTA4MjgzJyk7CisJKCdVVEY4JywgICAnNiBieXRlLCB1bnN1cHBv cnRlZCcsICdceGZkODI4Mzg0ODU4NicpOwogU0VMRUNUIENPVU5UKHRlc3RfZW5jb2RpbmcoZW5j b2RpbmcsIGRlc2NyaXB0aW9uLCBpbnB1dCkpID4gMAogRlJPTSBlbmNvZGluZ190ZXN0czsKIE5P VElDRTogIExBVElOMSBBU0NJSTogICAgICAgICAgICAgICAgXHg2MSAtPiB7OTd9IC0+IFx4NjEg PSBPSwpAQCAtMzY0LDEyICszNTUsNiBAQCBOT1RJQ0U6ICBVVEY4IDYgYnl0ZSwgdW5zdXBwb3J0 ZWQ6ICAgIFx4ZmQ4MjgzIC0+IHsyNTMsMTMwLDEzMX0gLT4gXHhjM2JkYzI4MmMyOAogTk9USUNF OiAgVVRGOCA2IGJ5dGUsIHVuc3VwcG9ydGVkOiAgICBceGZkODI4Mzg0IC0+IHsyNTMsMTMwLDEz MSwxMzJ9IC0+IFx4YzNiZGMyODJjMjgzYzI4NCA9IGZhaWxlZAogTk9USUNFOiAgVVRGOCA2IGJ5 dGUsIHVuc3VwcG9ydGVkOiAgICBceGZkODI4Mzg0ODUgLT4gezI1MywxMzAsMTMxLDEzMiwxMzN9 IC0+IFx4YzNiZGMyODJjMjgzYzI4NGMyODUgPSBmYWlsZWQKIE5PVElDRTogIFVURjggNiBieXRl LCB1bnN1cHBvcnRlZDogICAgXHhmZDgyODM4NDg1ODYgLT4gezI1MywxMzAsMTMxLDEzMiwxMzMs MTM0fSAtPiBceGMzYmRjMjgyYzI4M2MyODRjMjg1YzI4NiA9IGZhaWxlZAotTk9USUNFOiAgTVVM RV9JTlRFUk5BTCBBU0NJSTogICAgICAgICBceDYxIC0+IHs5N30gLT4gXHg2MSA9IE9LCi1OT1RJ Q0U6ICBNVUxFX0lOVEVSTkFMIExDMSwgc2hvcnQ6ICAgIFx4ODEgLT4ge30gLT4gXHggPSB0cnVu Y2F0ZWQKLU5PVElDRTogIE1VTEVfSU5URVJOQUwgTEMxOiAgICAgICAgICAgXHg4MTgyIC0+IHs4 NDU0Mjc0fSAtPiBceDgxODIgPSBPSwotTk9USUNFOiAgTVVMRV9JTlRFUk5BTCBMQzIsIHNob3J0 OiAgICBceDkwIC0+IHt9IC0+IFx4ID0gdHJ1bmNhdGVkCi1OT1RJQ0U6ICBNVUxFX0lOVEVSTkFM IExDMiwgc2hvcnQ6ICAgIFx4OTA4MiAtPiB7fSAtPiBceCA9IHRydW5jYXRlZAotTk9USUNFOiAg TVVMRV9JTlRFUk5BTCBMQzI6ICAgICAgICAgICBceDkwODI4MyAtPiB7OTQ3MDU5NX0gLT4gXHg5 MDgyODMgPSBPSwogID9jb2x1bW4/IAogLS0tLS0tLS0tLQogIHQKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2JqZWN0X2FkZHJlc3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQKaW5kZXggYjAyNmQzOGRjZmIuLjhjNGYwZjU1 NzE0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRyZXNz Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRyZXNzLm91dApA QCAtNDExLDcgKzQxMSw3IEBAIFdJVEggb2JqZWN0cyAodHlwZSwgbmFtZSwgYXJncykgQVMgKFZB TFVFUwogICAgICgnY29sbGF0aW9uJywgJ3tkZWZhdWx0fScsICd7fScpLAogICAgICgndGFibGUg Y29uc3RyYWludCcsICd7YWRkcl9uc3AsIGdlbnRhYmxlLCBhX2Noa30nLCAne30nKSwKICAgICAo J2RvbWFpbiBjb25zdHJhaW50JywgJ3thZGRyX25zcC5nZW5kb21haW59JywgJ3tkb21jb25zdHJ9 JyksCi0gICAgKCdjb252ZXJzaW9uJywgJ3twZ19jYXRhbG9nLCBrb2k4X3JfdG9fbWljfScsICd7 fScpLAorICAgICgnY29udmVyc2lvbicsICd7cGdfY2F0YWxvZywga29pOF9yX3RvX3V0Zjh9Jywg J3t9JyksCiAgICAgKCdkZWZhdWx0IHZhbHVlJywgJ3thZGRyX25zcCwgZ2VudGFibGUsIGJ9Jywg J3t9JyksCiAgICAgKCdsYW5ndWFnZScsICd7cGxwZ3NxbH0nLCAne30nKSwKICAgICAtLSBsYXJn ZSBvYmplY3QKQEAgLTQ4NSw3ICs0ODUsNyBAQCBkZWZhdWx0IHZhbHVlfE5VTEx8TlVMTHxmb3Ig YWRkcl9uc3AuZ2VudGFibGUuYnx0CiBjYXN0fE5VTEx8TlVMTHwoYmlnaW50IEFTIGludGVnZXIp fHQKIHRhYmxlIGNvbnN0cmFpbnR8YWRkcl9uc3B8TlVMTHxhX2NoayBvbiBhZGRyX25zcC5nZW50 YWJsZXx0CiBkb21haW4gY29uc3RyYWludHxhZGRyX25zcHxOVUxMfGRvbWNvbnN0ciBvbiBhZGRy X25zcC5nZW5kb21haW58dAotY29udmVyc2lvbnxwZ19jYXRhbG9nfGtvaThfcl90b19taWN8cGdf Y2F0YWxvZy5rb2k4X3JfdG9fbWljfHQKK2NvbnZlcnNpb258cGdfY2F0YWxvZ3xrb2k4X3JfdG9f dXRmOHxwZ19jYXRhbG9nLmtvaThfcl90b191dGY4fHQKIGxhbmd1YWdlfE5VTEx8cGxwZ3NxbHxw bHBnc3FsfHQKIHNjaGVtYXxOVUxMfGFkZHJfbnNwfGFkZHJfbnNwfHQKIG9wZXJhdG9yIGNsYXNz fHBnX2NhdGFsb2d8aW50NF9vcHN8cGdfY2F0YWxvZy5pbnQ0X29wcyBVU0lORyBidHJlZXx0CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3htbC5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3htbC5vdXQKaW5kZXggMTAzYTIyYTNiMWQuLjQ0OTczM2Y4YWU5IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3htbC5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC94bWwub3V0CkBAIC05NzEsOSArOTcxLDcgQEAgQkVHSU4KICAg RU5EIElGOwogRVhDRVBUSU9OCiAgIC0tIGNoYXJhY3RlciB3aXRoIGJ5dGUgc2VxdWVuY2UgMHhj MiAweGIwIGluIGVuY29kaW5nICJVVEY4IiBoYXMgbm8gZXF1aXZhbGVudCBpbiBlbmNvZGluZyAi TEFUSU44IgotICBXSEVOIHVudHJhbnNsYXRhYmxlX2NoYXJhY3RlcgotICAtLSBkZWZhdWx0IGNv bnZlcnNpb24gZnVuY3Rpb24gZm9yIGVuY29kaW5nICJVVEY4IiB0byAiTVVMRV9JTlRFUk5BTCIg ZG9lcyBub3QgZXhpc3QKLSAgT1IgdW5kZWZpbmVkX2Z1bmN0aW9uCisgIFdIRU4gdW5kZWZpbmVk X2Z1bmN0aW9uCiAgIC0tIHVuc3VwcG9ydGVkIFhNTCBmZWF0dXJlCiAgIE9SIGZlYXR1cmVfbm90 X3N1cHBvcnRlZCBUSEVOCiAgICAgUkFJU0UgTE9HICdza2lwOiAlJywgU1FMRVJSTTsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQveG1sXzEub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC94bWxfMS5vdXQKaW5kZXggNzNjNDExMTE4YTMuLmE5NjJmY2UzNmI5IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3htbF8xLm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3htbF8xLm91dApAQCAtNzE0LDkgKzcxNCw3IEBAIEJFR0lO CiAgIEVORCBJRjsKIEVYQ0VQVElPTgogICAtLSBjaGFyYWN0ZXIgd2l0aCBieXRlIHNlcXVlbmNl IDB4YzIgMHhiMCBpbiBlbmNvZGluZyAiVVRGOCIgaGFzIG5vIGVxdWl2YWxlbnQgaW4gZW5jb2Rp bmcgIkxBVElOOCIKLSAgV0hFTiB1bnRyYW5zbGF0YWJsZV9jaGFyYWN0ZXIKLSAgLS0gZGVmYXVs dCBjb252ZXJzaW9uIGZ1bmN0aW9uIGZvciBlbmNvZGluZyAiVVRGOCIgdG8gIk1VTEVfSU5URVJO QUwiIGRvZXMgbm90IGV4aXN0Ci0gIE9SIHVuZGVmaW5lZF9mdW5jdGlvbgorICBXSEVOIHVuZGVm aW5lZF9mdW5jdGlvbgogICAtLSB1bnN1cHBvcnRlZCBYTUwgZmVhdHVyZQogICBPUiBmZWF0dXJl X25vdF9zdXBwb3J0ZWQgVEhFTgogICAgIFJBSVNFIExPRyAnc2tpcDogJScsIFNRTEVSUk07CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3htbF8yLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQveG1sXzIub3V0CmluZGV4IGE4NWQ5NTM1OGQ5Li5kN2M5MDcyNWNm YyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC94bWxfMi5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC94bWxfMi5vdXQKQEAgLTk1Nyw5ICs5NTcsNyBAQCBC RUdJTgogICBFTkQgSUY7CiBFWENFUFRJT04KICAgLS0gY2hhcmFjdGVyIHdpdGggYnl0ZSBzZXF1 ZW5jZSAweGMyIDB4YjAgaW4gZW5jb2RpbmcgIlVURjgiIGhhcyBubyBlcXVpdmFsZW50IGluIGVu Y29kaW5nICJMQVRJTjgiCi0gIFdIRU4gdW50cmFuc2xhdGFibGVfY2hhcmFjdGVyCi0gIC0tIGRl ZmF1bHQgY29udmVyc2lvbiBmdW5jdGlvbiBmb3IgZW5jb2RpbmcgIlVURjgiIHRvICJNVUxFX0lO VEVSTkFMIiBkb2VzIG5vdCBleGlzdAotICBPUiB1bmRlZmluZWRfZnVuY3Rpb24KKyAgV0hFTiB1 bmRlZmluZWRfZnVuY3Rpb24KICAgLS0gdW5zdXBwb3J0ZWQgWE1MIGZlYXR1cmUKICAgT1IgZmVh dHVyZV9ub3Rfc3VwcG9ydGVkIFRIRU4KICAgICBSQUlTRSBMT0cgJ3NraXA6ICUnLCBTUUxFUlJN OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9yZWdyZXNzLmMgYi9zcmMvdGVzdC9yZWdy ZXNzL3JlZ3Jlc3MuYwppbmRleCA5NmNmMzBhYzkyNS4uMDIzN2VlYWRmMTUgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvcmVncmVzcy5jCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcmVncmVz cy5jCkBAIC05NDksNiArOTQ5LDggQEAgdGVzdF9lbmNfc2V0dXAoUEdfRlVOQ1RJT05fQVJHUykK IAkJCQkJbWJsZW4sCiAJCQkJCXZhbGlkOwogCisJCWlmICghUEdfVkFMSURfRU5DT0RJTkcoaSkp CisJCQljb250aW51ZTsKIAkJaWYgKHBnX2VuY29kaW5nX21heF9sZW5ndGgoaSkgPT0gMSkKIAkJ CWNvbnRpbnVlOwogCQlwZ19lbmNvZGluZ19zZXRfaW52YWxpZChpLCBidWYpOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29udmVyc2lvbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9jb252ZXJzaW9uLnNxbAppbmRleCA4M2Q3MTA1YWMxZS4uYzlhNzZjYjAxNGYgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbnZlcnNpb24uc3FsCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2NvbnZlcnNpb24uc3FsCkBAIC0zMjksNyArMzI5LDYgQEAgc2VsZWN0IGRl c2NyaXB0aW9uLCBpbmJ5dGVzLCAodGVzdF9jb252KGluYnl0ZXMsICdpc284ODU5LTUnLCAnaXNv ODg1OS01JykpLiogZnIKIC0tIFRlc3QgY29udmVyc2lvbnMgZnJvbSBJU08tODg1OS01CiBzZWxl Y3QgZGVzY3JpcHRpb24sIGluYnl0ZXMsICh0ZXN0X2NvbnYoaW5ieXRlcywgJ2lzbzg4NTktNScs ICd1dGY4JykpLiogZnJvbSBpc284ODU5XzVfaW5wdXRzOwogc2VsZWN0IGRlc2NyaXB0aW9uLCBp bmJ5dGVzLCAodGVzdF9jb252KGluYnl0ZXMsICdpc284ODU5LTUnLCAna29pOHInKSkuKiBmcm9t IGlzbzg4NTlfNV9pbnB1dHM7Ci1zZWxlY3QgZGVzY3JpcHRpb24sIGluYnl0ZXMsICh0ZXN0X2Nv bnYoaW5ieXRlcywgJ2lzbzg4NTlfNScsICdtdWxlX2ludGVybmFsJykpLiogZnJvbSBpc284ODU5 XzVfaW5wdXRzOwogCiAtLQogLS0gQmlnNQpAQCAtMzQ2LDI5ICszNDUsMyBAQCBpbnNlcnQgaW50 byBiaWc1X2lucHV0cyAgdmFsdWVzCiBzZWxlY3QgZGVzY3JpcHRpb24sIGluYnl0ZXMsICh0ZXN0 X2NvbnYoaW5ieXRlcywgJ2JpZzUnLCAnYmlnNScpKS4qIGZyb20gYmlnNV9pbnB1dHM7CiAtLSBU ZXN0IGNvbnZlcnNpb25zIGZyb20gQmlnNQogc2VsZWN0IGRlc2NyaXB0aW9uLCBpbmJ5dGVzLCAo dGVzdF9jb252KGluYnl0ZXMsICdiaWc1JywgJ3V0ZjgnKSkuKiBmcm9tIGJpZzVfaW5wdXRzOwot c2VsZWN0IGRlc2NyaXB0aW9uLCBpbmJ5dGVzLCAodGVzdF9jb252KGluYnl0ZXMsICdiaWc1Jywg J211bGVfaW50ZXJuYWwnKSkuKiBmcm9tIGJpZzVfaW5wdXRzOwotCi0tLQotLS0gTVVMRV9JTlRF Uk5BTAotLS0KLUNSRUFURSBUQUJMRSBtaWNfaW5wdXRzIChpbmJ5dGVzIGJ5dGVhLCBkZXNjcmlw dGlvbiB0ZXh0KTsKLWluc2VydCBpbnRvIG1pY19pbnB1dHMgIHZhbHVlcwotICAoJ1x4NjY2ZjZm JywJCSd2YWxpZCwgcHVyZSBBU0NJSScpLAotICAoJ1x4OGJjNjhiY2Y4YmNmJywJJ3ZhbGlkIChp biBLT0k4UiknKSwKLSAgKCdceDhiYzY4YmNmOGInLAknaW52YWxpZCxpbmNvbXBsZXRlIGNoYXIn KSwKLSAgKCdceDkyYmVkZCcsCQkndmFsaWQgKGluIFNISUZUX0pJUyknKSwKLSAgKCdceDkyYmUn LAkJJ2ludmFsaWQsIGluY29tcGxldGUgY2hhciknKSwKLSAgKCdceDY2NmY2Zjk1YTNjMScsCSd2 YWxpZCAoaW4gQmlnNSknKSwKLSAgKCdceDY2NmY2Zjk1YTMnLAknaW52YWxpZCwgaW5jb21wbGV0 ZSBjaGFyJyksCi0gICgnXHg5MjAwYmVkZCcsCSdpbnZhbGlkLCBOVUwgYnl0ZScpLAotICAoJ1x4 OTJiZWRkMDAnLAknaW52YWxpZCwgTlVMIGJ5dGUnKSwKLSAgKCdceDhiMDBjNjhiY2Y4YmNmJywJ J2ludmFsaWQsIE5VTCBieXRlJyk7Ci0KLS0tIFRlc3QgTVVMRV9JTlRFUk5BTCB2ZXJpZmljYXRp b24KLXNlbGVjdCBkZXNjcmlwdGlvbiwgaW5ieXRlcywgKHRlc3RfY29udihpbmJ5dGVzLCAnbXVs ZV9pbnRlcm5hbCcsICdtdWxlX2ludGVybmFsJykpLiogZnJvbSBtaWNfaW5wdXRzOwotLS0gVGVz dCBjb252ZXJzaW9ucyBmcm9tIE1VTEVfSU5URVJOQUwKLXNlbGVjdCBkZXNjcmlwdGlvbiwgaW5i eXRlcywgKHRlc3RfY29udihpbmJ5dGVzLCAnbXVsZV9pbnRlcm5hbCcsICdrb2k4cicpKS4qIGZy b20gbWljX2lucHV0czsKLXNlbGVjdCBkZXNjcmlwdGlvbiwgaW5ieXRlcywgKHRlc3RfY29udihp bmJ5dGVzLCAnbXVsZV9pbnRlcm5hbCcsICdpc284ODU5LTUnKSkuKiBmcm9tIG1pY19pbnB1dHM7 Ci1zZWxlY3QgZGVzY3JpcHRpb24sIGluYnl0ZXMsICh0ZXN0X2NvbnYoaW5ieXRlcywgJ211bGVf aW50ZXJuYWwnLCAnc2ppcycpKS4qIGZyb20gbWljX2lucHV0czsKLXNlbGVjdCBkZXNjcmlwdGlv biwgaW5ieXRlcywgKHRlc3RfY29udihpbmJ5dGVzLCAnbXVsZV9pbnRlcm5hbCcsICdiaWc1Jykp LiogZnJvbSBtaWNfaW5wdXRzOwotc2VsZWN0IGRlc2NyaXB0aW9uLCBpbmJ5dGVzLCAodGVzdF9j b252KGluYnl0ZXMsICdtdWxlX2ludGVybmFsJywgJ2V1Y19qcCcpKS4qIGZyb20gbWljX2lucHV0 czsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2VuY29kaW5nLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2VuY29kaW5nLnNxbAppbmRleCBiOTU0M2MwY2IzMi4uNWUxZmNiNjdh NzEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2VuY29kaW5nLnNxbAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9lbmNvZGluZy5zcWwKQEAgLTE5OCwxNiArMTk4LDcgQEAgSU5T RVJUIElOVE8gZW5jb2RpbmdfdGVzdHMgVkFMVUVTCiAJKCdVVEY4JywgICAnNiBieXRlLCB1bnN1 cHBvcnRlZCcsICdceGZkODI4MycpLAogCSgnVVRGOCcsICAgJzYgYnl0ZSwgdW5zdXBwb3J0ZWQn LCAnXHhmZDgyODM4NCcpLAogCSgnVVRGOCcsICAgJzYgYnl0ZSwgdW5zdXBwb3J0ZWQnLCAnXHhm ZDgyODM4NDg1JyksCi0JKCdVVEY4JywgICAnNiBieXRlLCB1bnN1cHBvcnRlZCcsICdceGZkODI4 Mzg0ODU4NicpLAotCS0tIE1VTEVfSU5URVJOQUwKLQktLSAyIDgxLi44ZCBMQzEKLQktLSAzIDkw Li45OSBMQzIKLQkoJ01VTEVfSU5URVJOQUwnLCAnQVNDSUknLCAgICAgICAgICdhJyksCi0JKCdN VUxFX0lOVEVSTkFMJywgJ0xDMSwgc2hvcnQnLCAgICAnXHg4MScpLAotCSgnTVVMRV9JTlRFUk5B TCcsICdMQzEnLCAgICAgICAgICAgJ1x4ODE4MicpLAotCSgnTVVMRV9JTlRFUk5BTCcsICdMQzIs IHNob3J0JywgICAgJ1x4OTAnKSwKLQkoJ01VTEVfSU5URVJOQUwnLCAnTEMyLCBzaG9ydCcsICAg ICdceDkwODInKSwKLQkoJ01VTEVfSU5URVJOQUwnLCAnTEMyJywgICAgICAgICAgICdceDkwODI4 MycpOworCSgnVVRGOCcsICAgJzYgYnl0ZSwgdW5zdXBwb3J0ZWQnLCAnXHhmZDgyODM4NDg1ODYn KTsKIAogU0VMRUNUIENPVU5UKHRlc3RfZW5jb2RpbmcoZW5jb2RpbmcsIGRlc2NyaXB0aW9uLCBp bnB1dCkpID4gMAogRlJPTSBlbmNvZGluZ190ZXN0czsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL29iamVjdF9hZGRyZXNzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVj dF9hZGRyZXNzLnNxbAppbmRleCAxYTZjNjFmNDlkNS4uMjVkMjFjODMxNDUgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVjdF9hZGRyZXNzLnNxbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9vYmplY3RfYWRkcmVzcy5zcWwKQEAgLTE3Niw3ICsxNzYsNyBAQCBXSVRIIG9i amVjdHMgKHR5cGUsIG5hbWUsIGFyZ3MpIEFTIChWQUxVRVMKICAgICAoJ2NvbGxhdGlvbicsICd7 ZGVmYXVsdH0nLCAne30nKSwKICAgICAoJ3RhYmxlIGNvbnN0cmFpbnQnLCAne2FkZHJfbnNwLCBn ZW50YWJsZSwgYV9jaGt9JywgJ3t9JyksCiAgICAgKCdkb21haW4gY29uc3RyYWludCcsICd7YWRk cl9uc3AuZ2VuZG9tYWlufScsICd7ZG9tY29uc3RyfScpLAotICAgICgnY29udmVyc2lvbicsICd7 cGdfY2F0YWxvZywga29pOF9yX3RvX21pY30nLCAne30nKSwKKyAgICAoJ2NvbnZlcnNpb24nLCAn e3BnX2NhdGFsb2csIGtvaThfcl90b191dGY4fScsICd7fScpLAogICAgICgnZGVmYXVsdCB2YWx1 ZScsICd7YWRkcl9uc3AsIGdlbnRhYmxlLCBifScsICd7fScpLAogICAgICgnbGFuZ3VhZ2UnLCAn e3BscGdzcWx9JywgJ3t9JyksCiAgICAgLS0gbGFyZ2Ugb2JqZWN0CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC94bWwuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwveG1sLnNxbApp bmRleCAwZWE0ZjUwODgzNy4uYTc3MWE0NDFjMzYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3htbC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwveG1sLnNxbApAQCAtMjcy LDkgKzI3Miw3IEBAIEJFR0lOCiAgIEVORCBJRjsKIEVYQ0VQVElPTgogICAtLSBjaGFyYWN0ZXIg d2l0aCBieXRlIHNlcXVlbmNlIDB4YzIgMHhiMCBpbiBlbmNvZGluZyAiVVRGOCIgaGFzIG5vIGVx dWl2YWxlbnQgaW4gZW5jb2RpbmcgIkxBVElOOCIKLSAgV0hFTiB1bnRyYW5zbGF0YWJsZV9jaGFy YWN0ZXIKLSAgLS0gZGVmYXVsdCBjb252ZXJzaW9uIGZ1bmN0aW9uIGZvciBlbmNvZGluZyAiVVRG OCIgdG8gIk1VTEVfSU5URVJOQUwiIGRvZXMgbm90IGV4aXN0Ci0gIE9SIHVuZGVmaW5lZF9mdW5j dGlvbgorICBXSEVOIHVuZGVmaW5lZF9mdW5jdGlvbgogICAtLSB1bnN1cHBvcnRlZCBYTUwgZmVh dHVyZQogICBPUiBmZWF0dXJlX25vdF9zdXBwb3J0ZWQgVEhFTgogICAgIFJBSVNFIExPRyAnc2tp cDogJScsIFNRTEVSUk07Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --0000000000002b964c064a8ce376--