<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>205799</bug_id>
          
          <creation_ts>2008-01-14 14:25 0000</creation_ts>
          <short_desc>[Version bump] app-text/a2ps-4.14 available</short_desc>
          <delta_ts>2008-04-06 11:39:11 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Linux</product>
          <component>Ebuilds</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          <bug_file_loc>http://ftp.gnu.org/gnu/a2ps/</bug_file_loc>
          
          
          <priority>P2</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>gentoobugsie.20.dsurawicz@spamgourmet.com</reporter>
          <assigned_to>printing@gentoo.org</assigned_to>
          <cc>cjk@gentoo.org</cc>
    
    <cc>lkd-soekris@sky-haven.net</cc>

      

      
          <long_desc isprivate="0">
            <who>gentoobugsie.20.dsurawicz@spamgourmet.com</who>
            <bug_when>2008-01-14 14:25:22 0000</bug_when>
            <thetext>a2ps-4.14 is available since Dec 28, 2007. Maybe someone could create an ebuild. I would try but all the patching done in the 4.13c ebuild is something, I do not want to look into...

BR,
Dustin

Reproducible: Always</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lkd-soekris@sky-haven.net</who>
            <bug_when>2008-04-05 15:50:21 0000</bug_when>
            <thetext>4.13c-gcc34.patch
- applied by upstream

c-emacs.patch
- not applied

a2ps-4.13c-fixps.patch
- applied by upstream

a2ps-4.13c-fnmatch-replacement.patch
- not applied by upstream

a2ps-4.13c-psset.patch
- applied by upstream

a2ps-4.13c-stdarg.patch
- upstream altered the calling conventions, possibly not necessary

a2ps-4.13-fixcachecheck.patch
- makes changes to &quot;a2ps-4.13c-stdarg.patch&quot;; can&apos;t apply as-is

a2ps-4.13-manpage-chmod.patch
- not applied by upstream

a2ps-4.13-select-freebsd.patch
- applied by upstream

Summary:
a2ps-4.14 definitely won&apos;t need:
- 4.13c-gcc34.patch
- a2ps-4.13c-fixps.patch
- a2ps-4.13c-psset.patch
- a2ps-4.13-select-freebsd.patch
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lkd-soekris@sky-haven.net</who>
            <bug_when>2008-04-05 16:00:14 0000</bug_when>
            <thetext>a2ps-4.13c-locale-gentoo.diff
- not applied by upstream

a2ps-4.13-stdout.diff
- not applied by upstream
- Gentoo-provided functionality change that is worth applying here to avoid a behavior change regression

a2ps-4.13c-psmandup.diff
- applied by upstream
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lkd-soekris@sky-haven.net</who>
            <bug_when>2008-04-05 17:22:06 0000</bug_when>
            <thetext>USE=&apos;CJK&apos; a2ps-4.13c-ja_nls.patch.gz fails to apply cleanly mostly due to whitespace changes in the upstream files.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lkd-soekris@sky-haven.net</who>
            <bug_when>2008-04-05 18:25:43 0000</bug_when>
            <thetext>Preliminary ebuild and patch file</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lkd-soekris@sky-haven.net</who>
            <bug_when>2008-04-05 18:28:06 0000</bug_when>
            <thetext>Created an attachment (id=148766)
Initial ebuild port from app-text/a2ps-4.13c

ebuild file, adapted to function with 4.13c patches except for the ja_NLS patch</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lkd-soekris@sky-haven.net</who>
            <bug_when>2008-04-05 18:28:58 0000</bug_when>
            <thetext>Created an attachment (id=148768)
USE=&quot;CJK&quot; patch file

Depended on by a2ps-4.14.ebuild in this bug</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>genstef@gentoo.org</who>
            <bug_when>2008-04-06 11:39:11 0000</bug_when>
            <thetext>thank you very much! I committed this.</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>148766</attachid>
            <date>2008-04-05 18:28 0000</date>
            <desc>Initial ebuild port from app-text/a2ps-4.13c</desc>
            <filename>a2ps-4.14.ebuild</filename>
            <type>text/plain</type>
            <data encoding="base64">IyBDb3B5cmlnaHQgMTk5OS0yMDA4IEdlbnRvbyBGb3VuZGF0aW9uCiMgRGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MgojICRIZWFk
ZXI6IC91c3IvbG9jYWwvcG9ydGFnZS9hcHAtdGV4dC9hMnBzL1JDUy9hMnBzLTQuMTQuZWJ1aWxk
LHYgMS4yIDIwMDgvMDQvMDUgMTY6NDU6NDkgcm9vdCBFeHAgcm9vdCAkCgpXQU5UX0FVVE9DT05G
PSJsYXRlc3QiCldBTlRfQVVUT01BS0U9ImxhdGVzdCIKCmluaGVyaXQgZXV0aWxzIGF1dG90b29s
cyBlbGlzcC1jb21tb24KClM9JHtXT1JLRElSfS8ke1BOfS0ke1BWOjA6NH0KREVTQ1JJUFRJT049
IkFueSB0byBQb3N0U2NyaXB0IGZpbHRlciIKSE9NRVBBR0U9Imh0dHA6Ly93d3cuaW5mLmVuc3Qu
ZnIvfmRlbWFpbGxlL2EycHMvIgpTUkNfVVJJPSJtaXJyb3I6Ly9nZW50b28vJHtQfS50YXIuZ3oK
CWNqaz8gKCBtaXJyb3I6Ly9nZW50b28vJHtQfS1qYV9ubHMucGF0Y2ggKSIKCkxJQ0VOU0U9IkdQ
TC0yIgpTTE9UPSIwIgojS0VZV09SRFM9In5hbHBoYSB+YW1kNjQgfmFybSB+aHBwYSB+aWE2NCB+
bWlwcyB+cHBjIH5wcGM2NCB+czM5MCB+c2ggfnNwYXJjIH54ODYgfng4Ni1mYnNkIgpLRVlXT1JE
Uz0ifmFscGhhIGFtZDY0IH5hcm0gfmhwcGEgfmlhNjQgfm1pcHMgfnBwYyB+cHBjNjQgfnMzOTAg
fnNoIH5zcGFyYyB+eDg2IH54ODYtZmJzZCIKSVVTRT0iY2prIGVtYWNzIG5scyB0ZXRleCB2YW5p
bGxhIHVzZXJsYW5kX0JTRCB1c2VybGFuZF9HTlUiCgpERVBFTkQ9Ij49ZGV2LXV0aWwvZ3BlcmYt
Mi43LjIKCXx8ICggPj1kZXYtdXRpbC95YWNjLTEuOS4xIHN5cy1kZXZlbC9iaXNvbiApCgl2aXJ0
dWFsL2dob3N0c2NyaXB0Cgk+PWFwcC10ZXh0L3BzdXRpbHMtMS4xNwoJZW1hY3M/ICggdmlydHVh
bC9lbWFjcyApCgl0ZXRleD8gKCB2aXJ0dWFsL3RldGV4ICkKCW5scz8gKCBzeXMtZGV2ZWwvZ2V0
dGV4dCApIgpSREVQRU5EPSJ2aXJ0dWFsL2dob3N0c2NyaXB0Cgl1c2VybGFuZF9HTlU/ICggfHwg
KCA+PXN5cy1hcHBzL2NvcmV1dGlscy02LjEwLXIxIHN5cy1hcHBzL21rdGVtcCApICkKCXVzZXJs
YW5kX0JTRD8gKCBzeXMtZnJlZWJzZC9mcmVlYnNkLXViaW4gKQoJPj1hcHAtdGV4dC9wc3V0aWxz
LTEuMTcKCWVtYWNzPyAoIHZpcnR1YWwvZW1hY3MgKQoJdGV0ZXg/ICggdmlydHVhbC90ZXRleCAp
CglubHM/ICggdmlydHVhbC9saWJpbnRsICkiCgpTSVRFRklMRT01MCR7UE59LWdlbnRvby5lbAoK
c3JjX3VucGFjaygpIHsKCXVucGFjayAke1B9LnRhci5negoJY2QgIiR7U30iCgoJIyBhcHBsaWVk
IGJ5IHVwc3RyZWFtCgkjZXBhdGNoICIke0ZJTEVTRElSfS8ke1BOfS00LjEzLXNlbGVjdC1mcmVl
YnNkLnBhdGNoIgoJZXBhdGNoICIke0ZJTEVTRElSfS8ke1BOfS00LjEzYy1sb2NhbGUtZ2VudG9v
LmRpZmYiCgkjIHRoaXMgd2lsbCBicmVhawoJI2VwYXRjaCAiJHtGSUxFU0RJUn0vJHtQTn0tNC4x
M2Mtc3RkYXJnLnBhdGNoIgoJdXNlIHZhbmlsbGEgfHwgZXBhdGNoICIke0ZJTEVTRElSfS8ke1BO
fS00LjEzLXN0ZG91dC5kaWZmIgoJIyBhcHBsaWVkIGJ5IHVwc3RyZWFtCgkjZXBhdGNoICIke0ZJ
TEVTRElSfS8ke1BWfS1nY2MzNC5wYXRjaCIKCXVzZSBjamsgJiYgZXBhdGNoICIke0RJU1RESVJ9
LyR7UH0tamFfbmxzLnBhdGNoIgoKCSMgaW1wcm92ZSB0ZW1wZmlsZSBoYW5kbGluZwoJIyBhcHBs
aWVkIGJ5IHVwc3RyZWFtCgkjZXBhdGNoICIke0ZJTEVTRElSfS8ke1B9LWZpeHBzLnBhdGNoIgoJ
I2VwYXRjaCAiJHtGSUxFU0RJUn0vJHtQfS1wc21hbmR1cC5kaWZmIgoKCSMgZml4IGZubWF0Y2gg
cmVwbGFjZW1lbnQsIGJ1ZyAjMTM0NTQ2CgllcGF0Y2ggIiR7RklMRVNESVJ9LyR7UE59LTQuMTNj
LWZubWF0Y2gtcmVwbGFjZW1lbnQucGF0Y2giCgoJIyBmaXggc2FuZGJveCB2aW9sYXRpb24sIGJ1
ZyAjNzkwMTIKCXNlZCAtaSAtZSAnczokYWNyb3JlYWQgLWhlbHBhbGw6YWNyb3JlYWQ0IC1oZWxw
YWxsOicgY29uZmlndXJlIGNvbmZpZ3VyZS5pbgoKCSMgZml4IGVtYWNzIHByaW50aW5nLCBidWcg
IzExNDYyNwoJZXBhdGNoICIke0ZJTEVTRElSfS9hMnBzLTQuMTNjLWVtYWNzLnBhdGNoIgoKCSMg
Zml4IHBzc2V0IHdpdGggc2VkLTQuMSwgYnVnICMxMjY0MDMKCSMgYXBwbGllZCBieSB1cHN0cmVh
bQoJI2VwYXRjaCAiJHtGSUxFU0RJUn0vYTJwcy00LjEzYy1wc3NldC5wYXRjaCIKCgkjIGZpeCA+
PWF1dG9jb25mLTIuNjAsIGJ1ZyAxMzgxNjEKCSMgdGhpcyB3aWxsIGJyZWFrCgkjZXBhdGNoICIk
e0ZJTEVTRElSfS9hMnBzLTQuMTMtZml4Y2FjaGVjaGVjay5wYXRjaCIKCgkjIGZpeCBjaG1vZCBl
cnJvciwgIzE2NzY3MAoJZXBhdGNoICIke0ZJTEVTRElSfS9hMnBzLTQuMTMtbWFucGFnZS1jaG1v
ZC5wYXRjaCIKCglBVF9NNERJUj0ibTQiIGVhdXRvcmVjb25mIHx8IGRpZSAiZWF1dG9yZWNvbmYg
ZmFpbGVkIgp9CgpzcmNfY29tcGlsZSgpIHsKCWFkZHByZWRpY3QgL3Vzci8kKGdldF9saWJkaXIp
L21vemlsbGEtZmlyZWZveC9jb21wb25lbnRzL3hwdGkuZGF0CglhZGRwcmVkaWN0IC91c3IvJChn
ZXRfbGliZGlyKS9tb3ppbGxhLWZpcmVmb3gvY29tcG9uZW50cy94cHRpLmRhdC50bXAKCWFkZHBy
ZWRpY3QgL3Vzci8kKGdldF9saWJkaXIpL21vemlsbGEtZmlyZWZveC9jb21wb25lbnRzL2NvbXBy
ZWcuZGF0LnRtcAoKCWFkZHByZWRpY3QgL3Vzci8kKGdldF9saWJkaXIpL21vemlsbGEvY29tcG9u
ZW50cy94cHRpLmRhdAoJYWRkcHJlZGljdCAvdXNyLyQoZ2V0X2xpYmRpcikvbW96aWxsYS9jb21w
b25lbnRzL3hwdGkuZGF0LnRtcAoKCSNleHBvcnQgWUFDQz15YWNjCgllY29uZiAtLXN5c2NvbmZk
aXI9L2V0Yy9hMnBzIFwKCQktLWluY2x1ZGVkaXI9L3Vzci9pbmNsdWRlIFwKCQkkKHVzZXEgZW1h
Y3MgfHwgZWNobyBFTUFDUz1ubykgXAoJCSQodXNlX2VuYWJsZSBubHMpIHx8IGRpZSAiZWNvbmYg
ZmFpbGVkIgoKCWV4cG9ydCBMQU5HPUMKCgkjIHNvbWV0aW1lcyBlbWFrZSBkb2Vzbid0IHdvcmsK
CW1ha2UgfHwgZGllICJtYWtlIGZhaWxlZCIKfQoKc3JjX2luc3RhbGwoKSB7CgllaW5zdGFsbCBc
CgkJc3lzY29uZmRpcj0ke0R9L2V0Yy9hMnBzIFwKCQlpbmNsdWRlZGlyPSR7RH0vdXNyL2luY2x1
ZGUgXAoJCWxpc3BkaXI9IiR7RH0ke1NJVEVMSVNQfS8ke1BOfSIgXAoJCXx8IGRpZSAiZWluc3Rh
bGwgZmFpbGVkIgoKCWRvc2VkIC9ldGMvYTJwcy9hMnBzLmNmZwoKCSMgYnVnICMxMjIwMjYKCXNl
ZCAtaSAiczpeY291bnRkaWN0c3RhY2s6IFwwOiIgIiR7RH0iL3Vzci9iaW4vcHNzZXQgfHwgZGll
ICJzZWQgZmFpbGVkIgoKCWlmIHVzZSBlbWFjczsgdGhlbgoJCWVsaXNwLXNpdGUtZmlsZS1pbnN0
YWxsICIke0ZJTEVTRElSfS8ke1NJVEVGSUxFfSIgXAoJCQl8fCBkaWUgImVsaXNwLXNpdGUtZmls
ZS1pbnN0YWxsIGZhaWxlZCIKCWZpCgoJZG9kb2MgQU5OT1VOQ0UgQVVUSE9SUyBDaGFuZ2VMb2cg
RkFRIE5FV1MgUkVBRE1FKiBUSEFOS1MgVE9ETwp9Cgpwa2dfcG9zdGluc3QoKSB7Cgl1c2UgZW1h
Y3MgJiYgZWxpc3Atc2l0ZS1yZWdlbgp9Cgpwa2dfcG9zdHJtKCkgewoJdXNlIGVtYWNzICYmIGVs
aXNwLXNpdGUtcmVnZW4KfQo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148768</attachid>
            <date>2008-04-05 18:28 0000</date>
            <desc>USE=&quot;CJK&quot; patch file</desc>
            <filename>a2ps-4.14-ja_nls.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">ZGlmZiAtdXJOIGEycHMtNC4xMy5PUklHL01ha2VmaWxlLmFtIGEycHMtNC4xMy9NYWtlZmlsZS5h
bQotLS0gYTJwcy00LjEzLk9SSUcvTWFrZWZpbGUuYW0JMjAwMy0wOS0yNyAwNDo0MDozNi4wMDAw
MDAwMDAgKzA5MDAKKysrIGEycHMtNC4xMy9NYWtlZmlsZS5hbQkyMDAzLTA5LTI3IDA1OjQ2OjA0
LjAwMDAwMDAwMCArMDkwMApAQCAtMjAsNyArMjAsNyBAQAogCiAjIyBNYWtlIHN1cmUgdG8gZHJv
cCBkb2MgYXQgdGhlIGVuZDogaXQgY2F1c2VzIG1heSBwcm9ibGVtcywgc28KICMjIGxldCdzIGRv
IHRoZSBtYXhpbXVtIGJlZm9yZSBpdAotU1VCRElSUyA9IGF1eGRpciBtNCBldGMgcHMgb2dvbmtp
ZnkgXAorU1VCRElSUyA9IGF1eGRpciBtNCBldGMgcHMgb2dvbmtpZnkgbGliamNvZGUgXAogCWxp
YiBzcmMgcG8gdGVzdHMgc2hlZXRzIGVuY29kaW5nIGFmbSBmb250cyBwcGQgY29udHJpYiBkb2Mg
bWFuCiAKIEFDTE9DQUxfQU1GTEFHUyA9IC1JIG00CmRpZmYgLXVyTiBhMnBzLTQuMTMuT1JJRy9N
YWtlZmlsZS5pbiBhMnBzLTQuMTMvTWFrZWZpbGUuaW4KLS0tIGEycHMtNC4xMy5PUklHL01ha2Vm
aWxlLmluCTIwMDMtMDktMjcgMDU6MDc6MjAuMDAwMDAwMDAwICswOTAwCisrKyBhMnBzLTQuMTMv
TWFrZWZpbGUuaW4JMjAwMy0wOS0yNyAwNTo0NjozNS4wMDAwMDAwMDAgKzA5MDAKQEAgLTI3NSw3
ICsyNzUsNyBAQAogdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKIHRleCA9IEB0ZXhACiBB
VVRPTUFLRV9PUFRJT05TID0gY2hlY2stbmV3cyAxLjYuMyBkaXN0LWJ6aXAyIHJlYWRtZS1hbHBo
YQotU1VCRElSUyA9IGF1eGRpciBtNCBldGMgcHMgb2dvbmtpZnkgXAorU1VCRElSUyA9IGF1eGRp
ciBtNCBldGMgcHMgb2dvbmtpZnkgbGliamNvZGUgXAogCWxpYiBzcmMgcG8gdGVzdHMgc2hlZXRz
IGVuY29kaW5nIGFmbSBmb250cyBwcGQgY29udHJpYiBkb2MgbWFuCiAKIEFDTE9DQUxfQU1GTEFH
UyA9IC1JIG00CmRpZmYgLXVyTiBhMnBzLTQuMTMuT1JJRy9SRUFETUUuanAgYTJwcy00LjEzL1JF
QURNRS5qcAotLS0gYTJwcy00LjEzLk9SSUcvUkVBRE1FLmpwCTE5NzAtMDEtMDEgMDk6MDA6MDAu
MDAwMDAwMDAwICswOTAwCisrKyBhMnBzLTQuMTMvUkVBRE1FLmpwCTIwMDMtMDktMjcgMDU6NDU6
MDIuMDAwMDAwMDAwICswOTAwCkBAIC0wLDAgKzEsODkgQEAKK2EycHMgNC4xMqTHtMG7+qTysPW6
/qS5pOukv6ThpM6l0aXDpcEKKwkJCQm3xNjmwuez2MLns9ixoQorCQkJCbjFwO4gwtnHtyA8eWFz
dUBvbi5jcy5rZWlvLmFjLmpwPgorCitjb21wb3NpdGUgZm9udCCk8rvIpMOkxrTBu/qk8sm9vKik
uaTrpL+k4aTOpdGlw6XBpMekuaGjCitjb21wb3NpdGUgZm9udKTLpM+hosrSu7MgtarJ16S1pPMo
pM+kuKThpMbG/MvcuOxnaG9zdHNjcmlwdKTyuu7ArqS3pL8KK7/NKaTOZml4ZXVjZm9udCCk8qXZ
obyluaTLYTJwc83RpMvCv76vvOqk8qSkpOykxqSqpOqk3qS5oaOks6TspPLN+M3RpLkKK6TrpLOk
yKTHoaIypdClpKXIRVVDodxBU0NJSaTOyri7+s7zpM5Qb3N0c2NyaXB0pM6wt6SkpKyksKTDpMi0
ysOxpMukygorpOqk3qS5oaMKKworofxDb21wb3NpdGWl1aWppfOlyKTOwN/E6sr9y6Gky6TEpKSk
xgorusfE47jCpM7A38TqpM+l0aXDpcGky7TepN6k7KTGpKSk3qS5pM6kx6GipMik6qSipKikusLn
vubJ16TApMikz7vXpKSk3gorpLmho7Dssf6l4aXipLekxqSqpK2k3qS5oaMKKworZW5jb2Rpbmel
1aWhpaSl6ygkcHJlZml4L3NoYXJlL2EycHMvZW5jb2RpbmcvpM6yvKTOpdWloaWkpesppMukzwor
odhDb21wb3NpdGU6odmkqqTopNOhoqHYRGVmYXVsdENvbXBvc2l0ZTqh2aSsv7ekv6TLu9jE6qTH
pK2k3qS5oaOkv6TICiukqKTQoaKx0bjspdWlqaXzpciky8LQsf6kuaTrRVVDpail86Wzobylx6Wj
pfOlsKTOxvzL3LjspdWlqaXzpcik8r3xpKQKK6TGudSkraTepLmho6TepL+hoqSzpM663aGipdWl
qaXzpcjJ/aTIyL6z0aTItMG7+qTOyOak4rvYxOqkt6TKpK+kxqTPpMoKK6TqpN6ku6TzoaO86si0
pK2ky6TopMOkxqGitMG7+qTPuMfE6sn9pdWlqaXzpcikt6Sru9jE6qS3pMakz6SkpLGk3qS7pPOh
oworCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
IwkgICAgICAgICAgICAgICAgICDG/MvcuOyl1aWppfOlyCAgICAgICAgICCl1aWppfOyo8n9Cci+
s9GkyLTBu/qkzsjmCitEZWZhdWx0Q29tcG9zaXRlOiAgICAgICAgIFJ5dW1pbi1MaWdodC1FVUMt
SCAgICAgIDEgICAgICAgICAgICAgMS4xCQorIwkgICAgsdG47KXVpaml86XIICDG/MvcuOyl1aWp
pfOlyAkgIKXVpaml87Kjyf0JyL6z0aTItMG7+qTOyOYKK0NvbXBvc2l0ZTogIEhlbHZldGljYSAg
ICAgR290aGljQkJCLU1lZGl1bS1FVUMtSCAgMQkJMS4xCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCiuk3qS/oaKks6TspMCkyLzQws60wbv6pKyk
yqSvoaKktaTfpLekpKTOpMeholNsYW50Rm9udKTyu8ikpKGivNDCzqTOtMEKK7v6pdWlqaXzpcik
4rruwK6kx6StpN6kuaGjCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisjICAgICAgICAgICAgICAgv7e1rLzQws7G/MvcuOyl1aWppfOlyMy+CaW9
obylucb8y9y47KXVpaml86XICbe5pK3F2QorU2xhbnRGb250OglSeXVtaW4tTGlnaHQtRVVDLUgt
SXRhbGljCVJ5dW1pbi1MaWdodC1FVUMtSAkwLjIKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1NsYW50Rm9udKTHwLjArqS3pL+80MLOpdWlqaXz
pcikz0NvbXBvc2l0ZaXVpaml86XIKMLoMrD6v/QppMfN+M3RpMekrQorpN6kuaGjCisKK6H8pLOk
zqXRpcOlwaTOvty62aXHobylvworICChprvEx7CkyqSspOkypdClpKXIRVVDpbOhvKXJpPLBsMTz
pMikt6S/pbOhvKXHpaOl86WwpPKkt6TGpKSk3qS5oaMKKyAgICCkvaTOpL+k4aGipKKk3qTqtMG7
+rDKs7CkzrjAuOyk8rnNpKikxqSqpOqk3qS7pPOhxKGjCisgIKGmwdK49yC3r8+6u+GkzmxpYmpj
b2RlpPK7yKTDpMbG4sn0pMfG/s7PpdWloaWkpeukzrTBu/qlqKXzpbOhvKXHpaMKKyAgICCl86Ww
pPKkuaTZpMZFVUOky8rRtLmkt6TGvejN/aS5pOuk6KSmpMukt6TGpKSk3qS5oaOkv6TApLehoqWq
peqluAorICAgIKXKpeukzmxpYmpjb2RlpM+holNKSVOkqqTopNNFVUOkzsi9xOqkrLTFpKukw6S/
pM6kx8K/vq+lq6W5pb+l4KS3CisgICAgpMakqqTqpN6kuaGjCisgIKGmpN6kv6GidGV4pM5kZWxl
Z2F0ZShjb250cmliL3RleGkyZHZpNGEycHMpw+aholRlWKXJpemlpKXQpMukz3BUZVgKKyAgICCk
yLfopOGkpqTBpLekxqSkpN6kuaGjpLOk7KSspKSk5KTKpOmhos7jpKik0E5UVC1qVGVYpPK7yM3R
pLekv6SkvuwKKyAgICC556GitMS2rcrRv/RURViky6HYanRleKHZpPKhokxBVEVYpMukz6HYamxh
dGV4odmk8rvYxOqkt6TGpK+kwKS1pKShoworICChpmNvbXBvc2l0ZWZvbnSk8mEycHPN0aTLwr++
r6Wrpbmlv6XepaSluqS3pMakpKTepLmkrKGipdWlqaXzpcikzrniCisgICAgpLWkyqTJpM6+8Mrz
pPK0sMG0pMu4x8TqpMe36KThwsekwaS3pMakpKTrstW96qSspKKk6qTepLkoWFhYpMel4aXiCisg
ICAgpLekxqSkpN6kuSmho6S9pM6kv6ThpKKk3qTqsf7N0cCtpKzE46SkpMi716SkpN6kuaGjCisK
K6H8yL6z0aTywbSz0aTOMS8ypM7C56StpLWky6S3pL+kpAorpdGlw6XBpcel1aWppeulyKTHpM/B
tLPRyri7+qTIyL6z0cq4u/qkzsLnpK2ktaTOpdCl6aXzpbmkz6GiuKukv7S2pLikrAorKLjEv83F
qqTKpbul86W5pMcpsMLE6qS5pOuk6KSmpMulwaXlobyly6XzpbCkt6TGpKSk3qS5oaOk4qS3oaKl
xqWtpbmlyAorpMfJvaTyuu7ArqS3pMakpKTGoaKkvaTOpL+k4aGiyL6z0cq4u/qk8sG0s9GkzqTB
pOekpqTJyL7KrKTLpL2k7aSopL+kpAorpMikpKSmvuy556TOwtC96Mr9y6Gk8r3xpKSkxqSqpK2k
3qS5oaMKKworpaSl86W5pcihvKXruOWhoiRwcmVmaXgvc2hhcmUvYTJwcy9lbmNvZGluZy9ldWMt
anDD5qTLoaIKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KK0RlZmF1bHRDb21wb3NpdGU6ICAgICAgICAgUnl1bWluLUxpZ2h0LUVVQy1IICAgICAg
MS4wICAxLjEKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisKK6TIpKSkpqTOpKykoqTrpMi716SkpN6kuaGjuse45aTOodgxLjGh2aTyodgwLjgzNDKh
2aSipL+k6qTLytG5uaS3pMayvAorpLWkpKGjpc6hvKXepeu4x8Tqyri7+qTLtNikt6TGpM+ks6Ts
pMfLvqTfpM6367LMpKzGwKTppOyk66TIu9ekpKTepLmhoworCivCvqTOwsC7+qXVpaml86XIpMqk
yaTioaLO46SopNAKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK0NvbXBvc2l0ZTogQ291cmllci1Cb2xkICAgR290aGljQkJCLU1lZGl1bS1FVUMt
SCAgMS4wICAwLjgzNDIKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKK6TOpOikpqTLytG5uaS5pOyk0KSkpKSkyLvXpKSk3qS5oaOkyqSqoaJDb3Vy
aWVypKykxKSrpMqkpKXVpaml86XICisoSGVsdmV0aWNhxfkppM+k4qTIpOKkyKXXpe2l3aG8pbel
56XKpeul1aWppfOlyKTKpM6kx6GiuMfE6sn9pMukz6THpK0KK6TepLuk86GjCisKKworCiuh/LrG
x9vJ26TLpMSkpKTGCiukyqTzpMCkq6TzpMCkpKTDpMahoqSzpM6l0aXDpcGkz6GiCisKK8HSuPcg
t6/PuqS1pPOkzmxpYmpjb2RlICCh3CAgytK7syC1qsnXpLWk86TOZml4ZXVjZm9udCAKKworpPLB
yKTfueek76TGpMekraS/pOKkzqTHu+S8q7/IpM6ls6G8pcmkz7zCpM+k26TIpPOkyaSipOqk3qS7
pPOhxKGjCisKK7vkvKu/yKTOpbOhvKXJpM+6xsfbydWhv7L+wqSky7TYpLekxqTKpPOk6cCpuMKk
8sDfpLGk66TEpOKk6qTPpKKk6qTepLsKK6TzoaOkv6TApLehorvksMqzsKTOpbOhvKXJpM7K/aSs
wr+kpKS/pOGhorDssf6kvaTspMCksaTPuObOu761pKq06qSkw9cKK6S3pN6kuaGjCmRpZmYgLXVy
TiBhMnBzLTQuMTMuT1JJRy9jb25maWcuaC5pbiBhMnBzLTQuMTMvY29uZmlnLmguaW4KLS0tIGEy
cHMtNC4xMy5PUklHL2NvbmZpZy5oLmluCTIwMDMtMDktMjcgMDQ6NDU6MDQuMDAwMDAwMDAwICsw
OTAwCisrKyBhMnBzLTQuMTMvY29uZmlnLmguaW4JMjAwMy0wOS0yNyAwNTo0NzozNC4wMDAwMDAw
MDAgKzA5MDAKQEAgLTI0LDYgKzI0LDkgQEAKIC8qIERlZmluZSBpZiBUSU9DR1dJTlNaIHJlcXVp
cmVzIHN5cy9pb2N0bC5oICovCiAjdW5kZWYgR1dJTlNaX0lOX1NZU19JT0NUTAogCisvKiBEZWZp
bmUgaWYgeW91IHVzZSBsaWJqY29kZSBmb3IgamFwYW5lc2UgICovCisjdW5kZWYgVVNFX0xJQkpD
T0RFCisKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgYWxhcm0nIGZ1bmN0aW9uLiAq
LwogI3VuZGVmIEhBVkVfQUxBUk0KIApkaWZmIC11ck4gYTJwcy00LjEzLk9SSUcvY29uZmlndXJl
IGEycHMtNC4xMy9jb25maWd1cmUKLS0tIGEycHMtNC4xMy5PUklHL2NvbmZpZ3VyZQkyMDAzLTA5
LTI3IDA1OjA2OjU2LjAwMDAwMDAwMCArMDkwMAorKysgYTJwcy00LjEzL2NvbmZpZ3VyZQkyMDAz
LTA5LTI3IDA1OjUxOjM5LjAwMDAwMDAwMCArMDkwMApAQCAtMTU4Nyw3ICsxNTg3LDggQEAKICAg
LS13aXRoLW1lZGl1bT1tZWRpdW0gICAgc3BlY2lmeSB0aGUgZGVmYXVsdCBtZWRpdW0gKEE0LCBM
ZXR0ZXIsIExlZ2FsLCBldGMuKQogICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUE0
CiAgIC0td2l0aC1lbmNvZGluZz1lbmMgICAgIHNwZWNpZnkgdGhlIGRlZmF1bHQgZW5jb2Rpbmcg
KGFzY2lpLCBsYXRpbjEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGluMi4uLiBsYXRp
bjYsIGhwIGV0Yy4pIGRlZmF1bHQ9bGF0aW4xCisgICAgICAgICAgICAgICAgICAgICAgICAgIGxh
dGluMi4uLiBsYXRpbjYsIGV1Yy1qcCwgaHAgZXRjLikgZGVmYXVsdD1sYXRpbjEKKyAgLS1lbmFi
bGUtbGliamNvZGUJICBKYXBhbmVzZSBjb2RlIGF1dG8gY29udmVydCBsaWJyYXJ5IChkZWZhdWx0
OiB5ZXMpCiAKIFNvbWUgaW5mbHVlbnRpYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzOgogICBDQyAg
ICAgICAgICBDIGNvbXBpbGVyIGNvbW1hbmQKQEAgLTMwOTQzLDYgKzMwOTQ0LDQ2IEBACiBmaTsK
CiAKKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1saWJqY29kZSBvciAtLWRpc2FibGUtbGliamNv
ZGUgd2FzIGdpdmVuLgoraWYgdGVzdCAiJHtlbmFibGVfbGliamNvZGUrc2V0fSIgPSBzZXQ7IHRo
ZW4KKyAgZW5hYmxldmFsPSIkZW5hYmxlX2xpYmpjb2RlIgorICBDT01QSUxFX0xJQkpDT0RFPSRl
bmFibGV2YWwKK2Vsc2UKKyAgQ09NUElMRV9MSUJKQ09ERT15ZXMKK2ZpCisKK2lmIHRlc3QgIiRD
T01QSUxFX0xJQkpDT0RFIiA9ICJ5ZXMiOyB0aGVuCisJTElCSkNPREVMSUJTPVwkXCh0b3BfYnVp
bGRkaXJcKS9saWJqY29kZS9saWJqY29kZS5hCisJY2F0ID4+IGNvbmZkZWZzLmggPDxcRU9GCisj
ZGVmaW5lIFVTRV9MSUJKQ09ERSAxCitFT0YKKworCUVOQ09ESU5HPWV1Yy1qcAorZmkKKworCisK
KworIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWxpYmpjb2RlIG9yIC0tZGlzYWJsZS1saWJqY29k
ZSB3YXMgZ2l2ZW4uCitpZiB0ZXN0ICIke2VuYWJsZV9saWJqY29kZStzZXR9IiA9IHNldDsgdGhl
bgorICBlbmFibGV2YWw9IiRlbmFibGVfbGliamNvZGUiCisgIENPTVBJTEVfTElCSkNPREU9JGVu
YWJsZXZhbAorZWxzZQorICBDT01QSUxFX0xJQkpDT0RFPXllcworZmkKKworaWYgdGVzdCAiJENP
TVBJTEVfTElCSkNPREUiID0gInllcyI7IHRoZW4KKwlMSUJKQ09ERUxJQlM9XCRcKHRvcF9idWls
ZGRpclwpL2xpYmpjb2RlL2xpYmpjb2RlLmEKKwljYXQgPj4gY29uZmRlZnMuaCA8PFxFT0YKKyNk
ZWZpbmUgVVNFX0xJQkpDT0RFIDEKK0VPRgorCisJRU5DT0RJTkc9ZXVjLWpwCitmaQorCisKKwor
CiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgTmljZSBzcGVjaWFsIHByaW50ZXJzCiAjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMKQEAgLTMyOTI1LDcgKzMyOTY2LDcgQEAKICAgICAgICAgICBh
Y19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgY29udHJpYi9wc3NldCIKIAogCi1hY19j
b25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUgc3JjL01ha2VmaWxlIGRvYy9N
YWtlZmlsZSBtYW4vTWFrZWZpbGUgdGVzdHMvTWFrZWZpbGUgdGVzdHMvZGVmcyBsaWIvTWFrZWZp
bGUgYXV4ZGlyL01ha2VmaWxlIG00L01ha2VmaWxlIGV0Yy9NYWtlZmlsZSBldGMvYTJwc19jZmcg
ZXRjL2EycHMtc2l0ZS5jZmcgcG8vTWFrZWZpbGUuaW4gc2hlZXRzL01ha2VmaWxlIGVuY29kaW5n
L01ha2VmaWxlIHBzL01ha2VmaWxlIGFmbS9NYWtlZmlsZSBjb250cmliL01ha2VmaWxlIGNvbnRy
aWIvc2FtcGxlL01ha2VmaWxlIGNvbnRyaWIvZW1hY3MvTWFrZWZpbGUgZm9udHMvTWFrZWZpbGUg
cHBkL01ha2VmaWxlIgorYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1ha2VmaWxl
IHNyYy9NYWtlZmlsZSBkb2MvTWFrZWZpbGUgbWFuL01ha2VmaWxlIHRlc3RzL01ha2VmaWxlIHRl
c3RzL2RlZnMgbGliL01ha2VmaWxlIGxpYmpjb2RlL01ha2VmaWxlIGF1eGRpci9NYWtlZmlsZSBt
NC9NYWtlZmlsZSBldGMvTWFrZWZpbGUgZXRjL2EycHNfY2ZnIGV0Yy9hMnBzLXNpdGUuY2ZnIHBv
L01ha2VmaWxlLmluIHNoZWV0cy9NYWtlZmlsZSBlbmNvZGluZy9NYWtlZmlsZSBwcy9NYWtlZmls
ZSBhZm0vTWFrZWZpbGUgY29udHJpYi9NYWtlZmlsZSBjb250cmliL3NhbXBsZS9NYWtlZmlsZSBj
b250cmliL2VtYWNzL01ha2VmaWxlIGZvbnRzL01ha2VmaWxlIHBwZC9NYWtlZmlsZSIKIAogY2F0
ID5jb25mY2FjaGUgPDxcX0FDRU9GCiAjIFRoaXMgZmlsZSBpcyBhIHNoZWxsIHNjcmlwdCB0aGF0
IGNhY2hlcyB0aGUgcmVzdWx0cyBvZiBjb25maWd1cmUKQEAgLTMzNTQ2LDYgKzMzNTg3LDcgQEAK
ICAgICAidGVzdHMvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgdGVzdHMv
TWFrZWZpbGUiIDs7CiAgICAgInRlc3RzL2RlZnMiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklM
RVMgdGVzdHMvZGVmcyIgOzsKICAgICAibGliL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09O
RklHX0ZJTEVTIGxpYi9NYWtlZmlsZSIgOzsKKyAgICAibGliamNvZGUvTWFrZWZpbGUiKSBDT05G
SUdfRklMRVM9IiRDT05GSUdfRklMRVMgbGliamNvZGUvTWFrZWZpbGUiIDs7CiAgICAgImF1eGRp
ci9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBhdXhkaXIvTWFrZWZpbGUi
IDs7CiAgICAgIm00L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIG00L01h
a2VmaWxlIiA7OwogICAgICJldGMvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklM
RVMgZXRjL01ha2VmaWxlIiA7OwpAQCAtMzM4MDQsNiArMzM4NDYsOCBAQAogTFBSX1FVRVVFX09Q
VElPTiEkTFBSX1FVRVVFX09QVElPTiRhY19kZWxpbQogTUVESVVNISRNRURJVU0kYWNfZGVsaW0K
IEVOQ09ESU5HISRFTkNPRElORyRhY19kZWxpbQorQ09NUElMRV9MSUJKQ09ERSEkQ09NUElMRV9M
SUJKQ09ERSRhY19kZWxpbQorTElCSkNPREVMSUJTISRMSUJKQ09ERUxJQlMkYWNfZGVsaW0KIENP
TV9ndiEkQ09NX2d2JGFjX2RlbGltCiBndiEkZ3YkYWNfZGVsaW0KIENPTV9naG9zdHZpZXchJENP
TV9naG9zdHZpZXckYWNfZGVsaW0KZGlmZiAtdXJOIGEycHMtNC4xMy5PUklHL2NvbmZpZ3VyZS5p
biBhMnBzLTQuMTMvY29uZmlndXJlLmluCi0tLSBhMnBzLTQuMTMuT1JJRy9jb25maWd1cmUuaW4J
MjAwMy0wOS0yNyAwNDo0MDozNi4wMDAwMDAwMDAgKzA5MDAKKysrIGEycHMtNC4xMy9jb25maWd1
cmUuaW4JMjAwMy0wOS0yNyAwNjowOTozMS4wMDAwMDAwMDAgKzA5MDAKQEAgLTI3NCwxMSArMjc0
LDI3IEBACiAjCiBBQ19BUkdfV0lUSChlbmNvZGluZywKIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgt
ZW5jb2Rpbmc9ZW5jXSwKLSAgICAgICAgICAgICAgIFtzcGVjaWZ5IHRoZSBkZWZhdWx0IGVuY29k
aW5nIChhc2NpaSwgbGF0aW4xLCBsYXRpbjIuLi4gbGF0aW42LCBocCBldGMuKSBbZGVmYXVsdD1s
YXRpbjFdXSksCisgICAgICAgICAgICAgICBbc3BlY2lmeSB0aGUgZGVmYXVsdCBlbmNvZGluZyAo
YXNjaWksIGxhdGluMSwgbGF0aW4yLi4uIGxhdGluNiwgZXVjLWpwLCBocCBldGMuKSBbZGVmYXVs
dD1sYXRpbjFdXSksCiBFTkNPRElORz0kd2l0aF9lbmNvZGluZywKIEVOQ09ESU5HPWxhdGluMSkK
IEFDX1NVQlNUKEVOQ09ESU5HKQogCisjCisjIHVzZSBsaWJqY29kZQorIworQUNfQVJHX0VOQUJM
RShsaWJqY29kZSwKKwlbICAtLWVuYWJsZS1saWJqY29kZQkgIEphcGFuZXNlIGNvZGUgYXV0byBj
b252ZXJ0IGxpYnJhcnkgKGRlZmF1bHQ6IHllcyldLAorCQkJQ09NUElMRV9MSUJKQ09ERT0kZW5h
YmxldmFsLCBDT01QSUxFX0xJQkpDT0RFPXllcykKK2lmIHRlc3QgIiRDT01QSUxFX0xJQkpDT0RF
IiA9ICJ5ZXMiOyB0aGVuCisJTElCSkNPREVMSUJTPVwkXCh0b3BfYnVpbGRkaXJcKS9saWJqY29k
ZS9saWJqY29kZS5hCisJQUNfREVGSU5FKFVTRV9MSUJKQ09ERSwgMSwKKwkJICBbRGVmaW5lIGlm
IHlvdSB3YW50IHRvIHVzZSBsaWJqY29kZS5dKQorCUVOQ09ESU5HPWV1Yy1qcAorZmkKK0FDX1NV
QlNUKENPTVBJTEVfTElCSkNPREUpCitBQ19TVUJTVChMSUJKQ09ERUxJQlMpCisKKwogIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjCiAjIE5pY2Ugc3BlY2lhbCBwcmludGVycwogIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjCkBAIC0zODYsNiArNDAyLDcgQEAKICAgdGVzdHMvTWFrZWZpbGUgdGVzdHMv
ZGVmcwogICBsaWIvTWFrZWZpbGUKICAgYXV4ZGlyL01ha2VmaWxlCisgIGxpYmpjb2RlL01ha2Vm
aWxlCiAgIG00L01ha2VmaWxlCiAgIGV0Yy9NYWtlZmlsZSBldGMvYTJwc19jZmcgZXRjL2EycHMt
c2l0ZS5jZmcKICAgcG8vTWFrZWZpbGUuaW4KZGlmZiAtdXJOIGEycHMtNC4xMy5PUklHL2NvbnRy
aWIvdGV4aTJkdmk0YTJwcyBhMnBzLTQuMTMvY29udHJpYi90ZXhpMmR2aTRhMnBzCi0tLSBhMnBz
LTQuMTMuT1JJRy9jb250cmliL3RleGkyZHZpNGEycHMJMjAwMy0wOS0yNyAwNDo0MDozNy4wMDAw
MDAwMDAgKzA5MDAKKysrIGEycHMtNC4xMy9jb250cmliL3RleGkyZHZpNGEycHMJMjAwMy0wOS0y
NyAwNTo0NTowMi4wMDAwMDAwMDAgKzA5MDAKQEAgLTM3NCw3ICszNzQsNyBAQAogICAgICAgbWFr
ZWluZm89ICMgbm8gcG9pbnQgaW4gcnVubmluZyBtYWtlaW5mbyBvbiBsYXRleCBzb3VyY2UuCiAg
ICAgICB0ZXhpbmRleD0ke01BS0VJTkRFWDotbWFrZWluZGV4fQogICAgICAgaWYgdGVzdCAkb2Zv
cm1hdCA9IGR2aTsgdGhlbgotICAgICAgICB0ZXg9JHtMQVRFWDotbGF0ZXh9CisgICAgICAgIHRl
eD0ke0xBVEVYOi1wbGF0ZXh9CiAgICAgICBlbHNlCiAgICAgICAgIHRleD0ke1BERkxBVEVYOi1w
ZGZsYXRleH0KICAgICAgIGZpCkBAIC0zODUsNyArMzg1LDcgQEAKICAgICAgIGJpYnRleD0KICAg
ICAgIHRleGluZGV4PSR7VEVYSU5ERVg6LXRleGluZGV4fQogICAgICAgaWYgdGVzdCAkb2Zvcm1h
dCA9IGR2aTsgdGhlbgotICAgICAgICB0ZXg9JHtURVg6LXRleH0KKyAgICAgICAgdGV4PSR7VEVY
Oi1wdGV4fQogICAgICAgZWxzZQogICAgICAgICB0ZXg9JHtQREZURVg6LXBkZnRleH0KICAgICAg
IGZpCmRpZmYgLXVyTiBhMnBzLTQuMTMuT1JJRy9lbmNvZGluZy9NYWtlZmlsZS5hbSBhMnBzLTQu
MTMvZW5jb2RpbmcvTWFrZWZpbGUuYW0KLS0tIGEycHMtNC4xMy5PUklHL2VuY29kaW5nL01ha2Vm
aWxlLmFtCTIwMDMtMDktMjcgMDQ6NDA6MzcuMDAwMDAwMDAwICswOTAwCisrKyBhMnBzLTQuMTMv
ZW5jb2RpbmcvTWFrZWZpbGUuYW0JMjAwMy0wOS0yNyAwNTo0NTowMi4wMDAwMDAwMDAgKzA5MDAK
QEAgLTE2LDcgKzE2LDcgQEAKIG1pbm9yX2VuY29kaW5ncyA9IFwKIG1zLWNwMTI1MC5lZGYgaHAu
ZWRmIG1hYy5lZGYgaWJtLWNwNDM3LmVkZiBpYm0tY3A4NTAuZWRmIGlzbzIuZWRmCVwKIGlzbzMu
ZWRmIGlzbzQuZWRmIGlzbzUuZWRmIGlzbzcuZWRmIGlzbzkuZWRmIGlzbzEwLmVkZiBpc28xMy5l
ZGYJXAotaXNvMTUuZWRmIGtvaTguZWRmIG1zLWNwMTI1MS5lZGYKK2lzbzE1LmVkZiBrb2k4LmVk
ZiBtcy1jcDEyNTEuZWRmIGV1Yy1qcC5lZGYKIAogaWYgRVhURU5TSU9OUwogZW5jb2RpbmdzX0RB
VEEgPSBlbmNvZGluZy5tYXAgJChtYWpvcl9lbmNvZGluZ3MpICQobWlub3JfZW5jb2RpbmdzKQpk
aWZmIC11ck4gYTJwcy00LjEzLk9SSUcvZW5jb2RpbmcvTWFrZWZpbGUuaW4gYTJwcy00LjEzL2Vu
Y29kaW5nL01ha2VmaWxlLmluCi0tLSBhMnBzLTQuMTMuT1JJRy9lbmNvZGluZy9NYWtlZmlsZS5p
bgkyMDAzLTA5LTI3IDA1OjA3OjI4LjAwMDAwMDAwMCArMDkwMAorKysgYTJwcy00LjEzL2VuY29k
aW5nL01ha2VmaWxlLmluCTIwMDMtMDktMjcgMDU6NDU6MDIuMDAwMDAwMDAwICswOTAwCkBAIC0y
NzAsNyArMjcwLDcgQEAKIG1pbm9yX2VuY29kaW5ncyA9IFwKIG1zLWNwMTI1MC5lZGYgaHAuZWRm
IG1hYy5lZGYgaWJtLWNwNDM3LmVkZiBpYm0tY3A4NTAuZWRmIGlzbzIuZWRmCVwKIGlzbzMuZWRm
IGlzbzQuZWRmIGlzbzUuZWRmIGlzbzcuZWRmIGlzbzkuZWRmIGlzbzEwLmVkZiBpc28xMy5lZGYJ
XAotaXNvMTUuZWRmIGtvaTguZWRmIG1zLWNwMTI1MS5lZGYKK2lzbzE1LmVkZiBrb2k4LmVkZiBt
cy1jcDEyNTEuZWRmIGV1Yy1qcC5lZGYKIAogQEVYVEVOU0lPTlNfRkFMU0VAZW5jb2RpbmdzX0RB
VEEgPSBlbmNvZGluZy5tYXAgJChtYWpvcl9lbmNvZGluZ3MpCiBARVhURU5TSU9OU19UUlVFQGVu
Y29kaW5nc19EQVRBID0gZW5jb2RpbmcubWFwICQobWFqb3JfZW5jb2RpbmdzKSAkKG1pbm9yX2Vu
Y29kaW5ncykKZGlmZiAtdXJOIGEycHMtNC4xMy5PUklHL2VuY29kaW5nL2VuY29kaW5nLm1hcCBh
MnBzLTQuMTMvZW5jb2RpbmcvZW5jb2RpbmcubWFwCi0tLSBhMnBzLTQuMTMuT1JJRy9lbmNvZGlu
Zy9lbmNvZGluZy5tYXAJMjAwMi0wMy0wNSAwMzo0NjoyNC4wMDAwMDAwMDAgKzA5MDAKKysrIGEy
cHMtNC4xMy9lbmNvZGluZy9lbmNvZGluZy5tYXAJMjAwMy0wOS0yNyAwNTo0NTowMi4wMDAwMDAw
MDAgKzA5MDAKQEAgLTkzLDYgKzkzLDEyIEBACiBrb2k4CQkJa29pOAoga29pCQkJa29pOAogCitl
dWMtanAJCQlldWMtanAKK2V1Y2pwCQkJZXVjLWpwCitqYXBhbmVzZQkJZXVjLWpwCitqYQkJCWV1
Yy1qcAoranAJCQlldWMtanAKKwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIFNvbWUgYXJjaGl0ZWN0dXJl
cyBzcGVjaWZpYyBjaGFyIHNldHMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpkaWZmIC11ck4gYTJwcy00LjEz
Lk9SSUcvZW5jb2RpbmcvZXVjLWpwLmVkZiBhMnBzLTQuMTMvZW5jb2RpbmcvZXVjLWpwLmVkZgot
LS0gYTJwcy00LjEzLk9SSUcvZW5jb2RpbmcvZXVjLWpwLmVkZgkxOTcwLTAxLTAxIDA5OjAwOjAw
LjAwMDAwMDAwMCArMDkwMAorKysgYTJwcy00LjEzL2VuY29kaW5nL2V1Yy1qcC5lZGYJMjAwMy0w
OS0yNyAwNTo0NTowMi4wMDAwMDAwMDAgKzA5MDAKQEAgLTAsMCArMSwxMDkgQEAKKyMgRGVzY3Jp
cHRpb24gb2YgdGhlIEVVQy1KUCBlbmNvZGluZworIyBDb3B5cmlnaHQgKGMpIDE5ODgsIDg5LCA5
MCwgOTEsIDkyLCA5MyBNaWd1ZWwgU2FudGFuYQorIyBDb3B5cmlnaHQgKGMpIDE5OTUsIDk2LCA5
NywgOTggQWtpbSBEZW1haWxsZSwgTWlndWVsIFNhbnRhbmEKKyMKKworIworIyBUaGlzIGZpbGUg
aXMgcGFydCBvZiBhMnBzLgorIyAKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIg
b3B0aW9uKQorIyBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LiAgSWYgbm90LCB3cml0ZSB0bworIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCA1OSBU
ZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisjIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgor
IworCitOYW1lOiBFVUMtSlAKKworIyBUaGlzIHRleHQgaXMgcmVwcm9kdWNlZCBieSBhIGNvdXJ0
ZXN5IG9mIFJvbWFuIEN6eWJvcnJhCisjIGh0dHA6Ly9jenlib3JyYS5jb20vY2hhcnNldHMvaXNv
ODg1OS5odG1sCitEb2N1bWVudGF0aW9uCitUaGUgRVVDLUpQIGNoYXJhY3RlciBzZXQsIG9mdGVu
IHNpbXBseSByZWZlcnJlZCB0byBhcyBMYXRpbiAxLAorY292ZXJzIG1vc3QgV2VzdCBFdXJvcGVh
biBsYW5ndWFnZXMsIHN1Y2ggYXMgRnJlbmNoLCBTcGFuaXNoLCBDYXRhbGFuLAorQmFzcXVlLCBQ
b3J0dWd1ZXNlLCBJdGFsaWFuLCBBbGJhbmlhbiwgUmhhZXRvLVJvbWFuaWMsIER1dGNoLCBHZXJt
YW4sCitEYW5pc2gsIFN3ZWRpc2gsIE5vcndlZ2lhbiwgRmlubmlzaCwgRmFyb2VzZSwgSWNlbGFu
ZGljLCBJcmlzaCwKK1Njb3R0aXNoLCBhbmQgRW5nbGlzaCwgaW5jaWRlbnRhbGx5IGFsc28gQWZy
aWthYW5zIGFuZCBTd2FoaWxpLCB0aHVzCitpbiBlZmZlY3QgYWxzbyB0aGUgZW50aXJlIEFtZXJp
Y2FuIGNvbnRpbmVudCwgQXVzdHJhbGlhIGFuZCB0aGUKK3NvdXRoZXJuIHR3by10aGlyZHMgb2Yg
QWZyaWNhLiBUaGUgbGFjayBvZiB0aGUgbGlnYXR1cmVzIER1dGNoIElKLAorRnJlbmNoIE9FIGFu
ZCAsLEdlcm1hbmBgIHF1b3RhdGlvbiBtYXJrcyBpcyBjb25zaWRlcmVkIHRvbGVyYWJsZS4KKwor
VGhlIGxhY2sgb2YgdGhlIG5ldyBDPS1yZXNlbWJsaW5nIEV1cm8gY3VycmVuY3kgc3ltYm9sIFUr
MjBBQyBoYXMKK29wZW5lZCB0aGUgZGlzY3Vzc2lvbiBvZiBhIG5ldyBMYXRpbjAuCitFbmREb2N1
bWVudGF0aW9uCisKKyMgSWYgdGhlcmUgaXMgYW4gdW5rbm93biBmb250IHJlcXVlc3RlZCwgdXNl
IENvdXJpZXIKK0RlZmF1bHQ6IENvdXJpZXIKKworIyBBdXRvbWF0aWMgc3BlbGwgY2hlY2tpbmcg
OikKK1N1YnN0aXR1dGU6IAlUaW1lcwkJCVRpbWVzLVJvbWFuCitTdWJzdGl0dXRlOiAJSGVsdmV0
aWNhLUl0YWxpYwlIZWx2ZXRpY2EtT2JsaXF1ZQorU3Vic3RpdHV0ZTogCUhlbHZldGljYS1Cb2xk
SXRhbGljCUhlbHZldGljYS1Cb2xkT2JsaXF1ZQorCisKKyMgU2xhbnRGb250IGZvciBKYXBhbmVz
ZSBJdGFsaWMgS2FuamkgZm9udAorIwkJbmV3IGZvbnQJCQlzb3VyY2UgZm9udAkJdmFsdWUKK1Ns
YW50Rm9udDoJUnl1bWluLUxpZ2h0LUVVQy1ILUl0YWxpYwlSeXVtaW4tTGlnaHQtRVVDLUgJMC4y
CitTbGFudEZvbnQ6CUdvdGhpY0JCQi1NZWRpdW0tRVVDLUgtSXRhbGljCUdvdGhpY0JCQi1NZWRp
dW0tRVVDLUgJMC4yCisKKyMgQ29tcG9zZSBmb250IGZvciBqYXBhbmVzZSBFVUMgY29kZQorIwkJ
dGFyZ2V0IGZvbnQJCWFkZGl0aW9uYWwgZm9udAkJCXdpZHRoCXNpemUgcmF0ZQorRGVmYXVsdENv
bXBvc2l0ZToJCQlSeXVtaW4tTGlnaHQtRVVDLUgJCTEuMAkxLjEKKworIyAxOjIgZml4ZWQKKyNE
ZWZhdWx0Q29tcG9zaXRlOgkJCVJ5dW1pbi1MaWdodC1FVUMtSAkJMS4wCTAuODMzMworCisjIDE6
MSBmaXhlZAorI0RlZmF1bHRDb21wb3NpdGU6CQkJUnl1bWluLUxpZ2h0LUVVQy1ICQkxLjAJMS42
NjY2CisKK0NvbXBvc2l0ZToJSGVsdmV0aWNhCQlHb3RoaWNCQkItTWVkaXVtLUVVQy1ICQkxLjAJ
MS4xCitDb21wb3NpdGU6CUhlbHZldGljYS1PYmxpcXVlCUdvdGhpY0JCQi1NZWRpdW0tRVVDLUgt
SXRhbGljCTEuMCAJMS4xCitDb21wb3NpdGU6CUhlbHZldGljYS1Cb2xkCQlHb3RoaWNCQkItTWVk
aXVtLUVVQy1IICAJMS4wIAkxLjEKK0NvbXBvc2l0ZToJSGVsdmV0aWNhLUJvbGRPYmxpcXVlCUdv
dGhpY0JCQi1NZWRpdW0tRVVDLUgtSXRhbGljCTEuMAkxLjEKKworQ29tcG9zaXRlOglDb3VyaWVy
LU9ibGlxdWUJCVJ5dW1pbi1MaWdodC1FVUMtSC1JdGFsaWMJMS4wCTEuMQorQ29tcG9zaXRlOglD
b3VyaWVyLUJvbGQJCUdvdGhpY0JCQi1NZWRpdW0tRVVDLUgJCTEuMAkxLjEKK0NvbXBvc2l0ZToJ
Q291cmllci1Cb2xkT2JsaXF1ZQlHb3RoaWNCQkItTWVkaXVtLUVVQy1ILUl0YWxpYwkxLjAJMS4x
CitDb21wb3NpdGU6CVRpbWVzLUJvbGQJCUdvdGhpY0JCQi1NZWRpdW0tRVVDLUgJCTEuMAkxLjEK
KworVmVjdG9yOgorLm5vdGRlZiAubm90ZGVmIC5ub3RkZWYgLm5vdGRlZiAubm90ZGVmIC5ub3Rk
ZWYgLm5vdGRlZiAubm90ZGVmCisubm90ZGVmIC5ub3RkZWYgLm5vdGRlZiAubm90ZGVmIC5ub3Rk
ZWYgLm5vdGRlZiAubm90ZGVmIC5ub3RkZWYKKy5ub3RkZWYgLm5vdGRlZiAubm90ZGVmIC5ub3Rk
ZWYgLm5vdGRlZiAubm90ZGVmIC5ub3RkZWYgLm5vdGRlZgorLm5vdGRlZiAubm90ZGVmIC5ub3Rk
ZWYgLm5vdGRlZiAubm90ZGVmIC5ub3RkZWYgLm5vdGRlZiAubm90ZGVmCitzcGFjZSBleGNsYW0g
cXVvdGVkYmwgbnVtYmVyc2lnbiBkb2xsYXIgcGVyY2VudCBhbXBlcnNhbmQgcXVvdGVyaWdodAor
cGFyZW5sZWZ0IHBhcmVucmlnaHQgYXN0ZXJpc2sgcGx1cyBjb21tYSBtaW51cyBwZXJpb2Qgc2xh
c2gKK3plcm8gb25lIHR3byB0aHJlZSBmb3VyIGZpdmUgc2l4IHNldmVuCitlaWdodCBuaW5lIGNv
bG9uIHNlbWljb2xvbiBsZXNzIGVxdWFsIGdyZWF0ZXIgcXVlc3Rpb24KK2F0IEEgQiBDIEQgRSBG
IEcKK0ggSSBKIEsgTCBNIE4gTworUCBRIFIgUyBUIFUgViBXCitYIFkgWiBicmFja2V0bGVmdCBi
YWNrc2xhc2ggYnJhY2tldHJpZ2h0IGFzY2lpY2lyY3VtIHVuZGVyc2NvcmUKK3F1b3RlbGVmdCBh
IGIgYyBkIGUgZiBnCitoIGkgaiBrIGwgbSBuIG8KK3AgcSByIHMgdCB1IHYgdworeCB5IHogYnJh
Y2VsZWZ0IGJhciBicmFjZXJpZ2h0IGFzY2lpdGlsZGUgLm5vdGRlZgorLm5vdGRlZiAubm90ZGVm
IC5ub3RkZWYgLm5vdGRlZiAubm90ZGVmIC5ub3RkZWYgLm5vdGRlZiAubm90ZGVmCisubm90ZGVm
IC5ub3RkZWYgLm5vdGRlZiAubm90ZGVmIC5ub3RkZWYgLm5vdGRlZiAubm90ZGVmIC5ub3RkZWYK
Ky5ub3RkZWYgLm5vdGRlZiAubm90ZGVmIC5ub3RkZWYgLm5vdGRlZiAubm90ZGVmIC5ub3RkZWYg
Lm5vdGRlZgorLm5vdGRlZiAubm90ZGVmIC5ub3RkZWYgLm5vdGRlZiAubm90ZGVmIC5ub3RkZWYg
Lm5vdGRlZiAubm90ZGVmCitzcGFjZSBleGNsYW1kb3duIGNlbnQgc3RlcmxpbmcgY3VycmVuY3kg
eWVuIGJyb2tlbmJhciBzZWN0aW9uCitkaWVyZXNpcyBjb3B5cmlnaHQgb3JkZmVtaW5pbmUgZ3Vp
bGxlbW90bGVmdCBsb2dpY2Fsbm90IGh5cGhlbiByZWdpc3RlcmVkIG1hY3JvbgorZGVncmVlIHBs
dXNtaW51cyB0d29zdXBlcmlvciB0aHJlZXN1cGVyaW9yIGFjdXRlIG11IHBhcmFncmFwaCBidWxs
ZXQKK2NlZGlsbGEgb25lc3VwZXJpb3Igb3JkbWFzY3VsaW5lIGd1aWxsZW1vdHJpZ2h0IG9uZXF1
YXJ0ZXIgb25laGFsZiB0aHJlZXF1YXJ0ZXJzIHF1ZXN0aW9uZG93bgorQWdyYXZlIEFhY3V0ZSBB
Y2lyY3VtZmxleCBBdGlsZGUgQWRpZXJlc2lzIEFyaW5nIEFFIENjZWRpbGxhCitFZ3JhdmUgRWFj
dXRlIEVjaXJjdW1mbGV4IEVkaWVyZXNpcyBJZ3JhdmUgSWFjdXRlIEljaXJjdW1mbGV4IElkaWVy
ZXNpcworRXRoIE50aWxkZSBPZ3JhdmUgT2FjdXRlIE9jaXJjdW1mbGV4IE90aWxkZSBPZGllcmVz
aXMgbXVsdGlwbHkKK09zbGFzaCBVZ3JhdmUgVWFjdXRlIFVjaXJjdW1mbGV4IFVkaWVyZXNpcyBZ
YWN1dGUgVGhvcm4gZ2VybWFuZGJscworYWdyYXZlIGFhY3V0ZSBhY2lyY3VtZmxleCBhdGlsZGUg
YWRpZXJlc2lzIGFyaW5nIGFlIGNjZWRpbGxhCitlZ3JhdmUgZWFjdXRlIGVjaXJjdW1mbGV4IGVk
aWVyZXNpcyBpZ3JhdmUgaWFjdXRlIGljaXJjdW1mbGV4IGlkaWVyZXNpcworZXRoIG50aWxkZSBv
Z3JhdmUgb2FjdXRlIG9jaXJjdW1mbGV4IG90aWxkZSBvZGllcmVzaXMgZGl2aWRlCitvc2xhc2gg
dWdyYXZlIHVhY3V0ZSB1Y2lyY3VtZmxleCB1ZGllcmVzaXMgeWFjdXRlIHRob3JuIHlkaWVyZXNp
cwpkaWZmIC11ck4gYTJwcy00LjEzLk9SSUcvbGliL2VuY29kaW5nLmMgYTJwcy00LjEzL2xpYi9l
bmNvZGluZy5jCi0tLSBhMnBzLTQuMTMuT1JJRy9saWIvZW5jb2RpbmcuYwkyMDAzLTA5LTI3IDA0
OjQwOjM3LjAwMDAwMDAwMCArMDkwMAorKysgYTJwcy00LjEzL2xpYi9lbmNvZGluZy5jCTIwMDMt
MDktMjcgMDU6NDU6MDIuMDAwMDAwMDAwICswOTAwCkBAIC0zNyw2ICszNyw5IEBACiAjaW5jbHVk
ZSAiZG9jdW1lbnQuaCIKICNpbmNsdWRlICJxdW90ZWFyZy5oIgogI2luY2x1ZGUgInN0cnZlcnNj
bXAuaCIKKyNpZmRlZiBVU0VfTElCSkNPREUKK2ludCB1c2VfbGliamNvZGUgPSBmYWxzZTsKKyNl
bmRpZgogCiAvKiBTdWZmaXggb2YgdGhlIEVuY29kaW5nIERlc2NyaXB0aW9uIEZpbGVzICovCiAj
ZGVmaW5lIEVERl9TVUZGSVggIi5lZGYiCkBAIC0zODksMTUgKzM5MiwyNSBAQAogICogQXNzb2Np
YXRpb24gb2Ygc3VmZml4ZXMgcnVsZXMsIGFuZCBjb3JyZXNwb25kaW5nIHN0eWxlIHNoZWV0CiAg
KiAoVGhlIGhhc2hpbmcgaXMgdXBvbiBgYWxpYXMnKQogICovCitzdHJ1Y3Qgc2xhbnRmb250X2lu
Zm8geworICBjaGFyICogbmFtZTsKKyAgY2hhciAqIHNyYzsKKyAgZmxvYXQgcmFpdG87Cit9Owor
CiBzdHJ1Y3QgZW5jb2RpbmcgewogICBjaGFyICoga2V5OwkJCS8qIGUuZy4gbGF0aW4xCQkJKi8K
ICAgY2hhciAqIG5hbWU7CQkJLyogZS5nLiBJU08gTGF0aW4gMQkJKi8KKyAgaW50ICAgIGNvbXBv
c2l0ZV9mbGFnOwkJLyogZmxhZyBmb3IgY29tcG9zaXRlIGZvbnQJKi8KICAgdWNoYXIgKiBkb2N1
bWVudGF0aW9uOwkJLyogVXNlZnVsIHBpZWNlcyBvZiB0ZXh0CSovCiAKICAgY2hhciAqIGRlZmF1
bHRfZm9udDsJCS8qIFdoZW4gYSBmb250IGNhbid0IGJlIHVzZWQKIAkJCQkgICBkZWZpbmUgdGhl
IGZvbnQgdG8gdXNlCSovCiAgIHN0cnVjdCBwYWlyX2h0YWJsZSAqIHN1YnN0aXR1dGVzOwkvKiBl
LmcuIGluIGxhdGluMiwgZG9uJ3QgdXNlCiAJCQkJCSAqIENvdXJpZXIsIGJ1dCBDb3VyaWVyLU9n
b25raQkqLworICBzdHJ1Y3QgcGFpcl9odGFibGUgKiBjb21wb3NpdGU7CisKKyAgc3RydWN0IHNs
YW50Zm9udF9pbmZvICAgICBzbGFudGZvbnRbTkJfRkFDRVNdOwogCiAgIGNoYXIgKiB2ZWN0b3Jb
MjU2XTsJLyogRGVmaW5lIHRoZSBjaGFyIHNldAkJCSovCiAgIHN0cnVjdCBkYXJyYXkgKiBmb250
X25hbWVzX3VzZWQ7CkBAIC00MDcsNiArNDIwLDkgQEAKICAgc3RydWN0IGhhc2hfdGFibGVfcyAq
IGZvbnRzOwkvKiBDb250YWlucyBjZWxscyB0aGF0IGFyZQogCQkJCSAqIDEuIG5hbWUgb2YgZm9u
dCwgMi4gaW50IHd4WzI1Nl0gCSovCiAgIHVuc2lnbmVkIGludCAqIGZhY2VzX3d4W05CX0ZBQ0VT
XTsKKworICB1bnNpZ25lZCBpbnQgICBjb21wb3NpdGVfd3hbTkJfRkFDRVNdOyAgICAgLyogZml4
ZWQgbGVuZ3RoIGZvbnQgd2lkdGgqLworICBmbG9hdCAgICAgICAgICBjb21wb3NpdGVfcmFpdG9b
TkJfRkFDRVNdOyAgLyogc2l6ZSByYWl0byBvZiBhZGRpdG9uYWwgYW5kIG9yaW5hbCBmb250ICov
CiB9OwogCiAvKgpAQCAtNDIzLDkgKzQzOSwxMiBAQAogICByZXMtPm5hbWUgPSBOVUxMOwogICBy
ZXMtPmRlZmF1bHRfZm9udCA9IE5VTEw7CiAgIHJlcy0+ZG9jdW1lbnRhdGlvbiA9IE5VTEw7Cisg
IHJlcy0+Y29tcG9zaXRlX2ZsYWcgPSBmYWxzZTsKIAogICAvKiBWZWN0b3Igd2lsbCBiZSBzZXQg
Ynkgc2V0dXAgKi8KICAgcmVzLT5zdWJzdGl0dXRlcyA9IHBhaXJfdGFibGVfbmV3ICgpOworICBy
ZXMtPmNvbXBvc2l0ZSA9IHBhaXJfdGFibGVfbmV3ICgpOworICByZXMtPnNsYW50Zm9udFswXS5u
YW1lID0gTlVMTDsKICAgcmVzLT5mb250X25hbWVzX3VzZWQgPSBkYV9uZXcgKCJMaXN0IG9mIGZv
bnQgbmFtZXMiLCAxMCwKIAkJCQkgZGFfbGluZWFyLCAxMCwKIAkJCQkgKGRhX3ByaW50X2Z1bmNf
dCkgZGFfc3RyX3ByaW50LApAQCAtNDcxLDYgKzQ5MCwzNCBAQAogfQogCiAvKgorICogQWRkIGEg
Y29tcG9zaXRlIGZvbnQgaW4gdGhlIGN1cnJlbnQgZW5jb2RpbmcKKyAqLworc3RhdGljIHZvaWQK
K2VuY29kaW5nX2FkZF9jb21wb3NpdGVfZm9udCAoc3RydWN0IGVuY29kaW5nICogZW5jb2Rpbmcs
CisJCQkgICAgICBjb25zdCBjaGFyICogb3JpZywgY29uc3QgY2hhciAqIHN1YnMsCisJCQkgICAg
ICBpbnQgd3gsIGZsb2F0IHJhaXRvKQoreworICBlbmNvZGluZy0+Y29tcG9zaXRlX2ZsYWcgPSB0
cnVlOworICBwYWlyX2FkZDIgKGVuY29kaW5nLT5jb21wb3NpdGUsIG9yaWcsIHN1YnMsIHd4LCBy
YWl0byk7Cit9CisKKy8qCisgKiBBZGQgYSBjb21wb3NpdGUgZm9udCBpbiB0aGUgY3VycmVudCBl
bmNvZGluZworICovCitzdGF0aWMgdm9pZAorZW5jb2RpbmdfYWRkX3NsYW50X2ZvbnQgKHN0cnVj
dCBlbmNvZGluZyAqIGVuY29kaW5nLAorCQkJIGNvbnN0IGNoYXIgKiBuZXcsIGNvbnN0IGNoYXIg
KiBzcmMsCisJCQkgZmxvYXQgcmFpdG8pCit7CisgIHN0YXRpYyBudW0gPSAgMDsKKyAgZW5jb2Rp
bmctPnNsYW50Zm9udFtudW1dLm5hbWUgPSBzdHJkdXAobmV3KTsKKyAgZW5jb2RpbmctPnNsYW50
Zm9udFtudW1dLnNyYyAgPSBzdHJkdXAoc3JjKTsKKyAgZW5jb2RpbmctPnNsYW50Zm9udFtudW1d
LnJhaXRvID0gcmFpdG87CisgIGVuY29kaW5nLT5zbGFudGZvbnRbbnVtKzFdLm5hbWUgPSBOVUxM
OworICBudW0rKzsKK30KKworLyoKICAqIFdoZW4gRk9OVF9OQU1FIGlzIHVzZWQgd2l0aCBFTkNP
RElORywgcmV0dXJuIHRoZQogICogcmVhbCBmb250IG5hbWUgdG8gdXNlIChlLmcuLCBpbiBsYXRp
bjIsIENvdXJpZXItT2dvbmtpCiAgKiBzaG91bGQgYmUgcmV0dXJuZWQgd2hlbiBhc2tlZCBmb3Ig
Q291cmllcikuCkBAIC01MTQsNiArNTYxLDc3IEBACiAgICAgfQogCiAgIG1lc3NhZ2UgKG1zZ19l
bmMsCisJICAgKHN0ZGVyciwgIkluIGVuY29kaW5nICVzLCBjb21wb3NpdGUgZm9udCBmb3IgJXMg
aXMgcmVzb2x2ZWQgYXMgJXNcbiIsCisJICAgIGVuY29kaW5nLT5rZXksIGZvbnRfbmFtZSwgcmVz
KSk7CisgIHJldHVybiByZXM7Cit9CisKKy8qCisgKiBHZXQgY29tcG9zaXRlIGZvbnQgc2l6ZSBh
bmQgcmFpdG8KKyAqLworc3RhdGljIGludAorY29tcG9zaXRlX2ZvbnRfaW5mb19nZXRfd3goc3Ry
dWN0IGEycHNfam9iICogam9iLAorCQkJICAgc3RydWN0IGVuY29kaW5nICogZW5jb2RpbmcsCisJ
CQkgICBjb25zdCBjaGFyICogZm9udF9saXN0KQoreworICBpbnQgd3g9IC0xOworICBjaGFyICog
Zm9udF9saXN0X2NvcHk7CisgIGNoYXIgKiBmb250X25hbWU7CisgIGFzdHJjcHkgKGZvbnRfbGlz
dF9jb3B5LCBmb250X2xpc3QpOworICBmb250X25hbWUgPSBzdHJ0b2sgKGZvbnRfbGlzdF9jb3B5
LCAiLDw+OyIpOworCisgIHd4ID0gcGFpcl9nZXRfd3ggKGVuY29kaW5nLT5jb21wb3NpdGUsIGZv
bnRfbmFtZSk7CisgIGlmICh3eDwwKQorICAgICAgd3ggPSBwYWlyX2dldF93eCAoZW5jb2Rpbmct
PmNvbXBvc2l0ZSwgImRlZmF1bHRfY29tcG9zaXRlX18iKTsKKworICByZXR1cm4gd3g7Cit9CisK
K3N0YXRpYyBmbG9hdAorY29tcG9zaXRlX2ZvbnRfaW5mb19nZXRfcmFpdG8oc3RydWN0IGEycHNf
am9iICogam9iLAorCQkJICAgICAgc3RydWN0IGVuY29kaW5nICogZW5jb2RpbmcsCisJCQkgICAg
ICBjb25zdCBjaGFyICogZm9udF9saXN0KQoreworICBmbG9hdCByYWl0bz0gLTE7CisgIGNoYXIg
KiBmb250X2xpc3RfY29weTsKKyAgY2hhciAqIGZvbnRfbmFtZTsKKworICBhc3RyY3B5IChmb250
X2xpc3RfY29weSwgZm9udF9saXN0KTsKKyAgZm9udF9uYW1lID0gc3RydG9rIChmb250X2xpc3Rf
Y29weSwgIiw8PjsiKTsKKworICByYWl0byA9IHBhaXJfZ2V0X3JhaXRvIChlbmNvZGluZy0+Y29t
cG9zaXRlLCBmb250X25hbWUpOworICBpZiAocmFpdG88MCkKKyAgICAgIHJhaXRvID0gcGFpcl9n
ZXRfcmFpdG8gKGVuY29kaW5nLT5jb21wb3NpdGUsICJkZWZhdWx0X2NvbXBvc2l0ZV9fIik7Cisg
IHJldHVybiByYWl0bzsKK30KKworY29uc3QgY2hhciAqCitlbmNvZGluZ19yZXNvbHZlX2NvbXBv
c2l0ZV9mb250IChzdHJ1Y3QgYTJwc19qb2IgKiBqb2IsCisJCQkJICBzdHJ1Y3QgZW5jb2Rpbmcg
KiBlbmNvZGluZywKKwkJCQkgIGNvbnN0IGNoYXIgKiBmb250X2xpc3QpCit7CisgIGNvbnN0IGNo
YXIgKiByZXMgPSBOVUxMOworICBjaGFyICogZm9udF9saXN0X2NvcHk7CisgIGNoYXIgKiBmb250
X25hbWU7CisKKyAgYXN0cmNweSAoZm9udF9saXN0X2NvcHksIGZvbnRfbGlzdCk7CisgIGZvbnRf
bmFtZSA9IHN0cnRvayAoZm9udF9saXN0X2NvcHksICIsPD47Iik7CisKKyAgLyogRmluZCBpZiB0
aGVyZSBpcyBhIHN1YnN0aXR1dGUgZm9yIHRoYXQgZm9udCAqLworICByZXMgPSBwYWlyX2dldCAo
ZW5jb2RpbmctPmNvbXBvc2l0ZSwgZm9udF9uYW1lKTsKKworICAvKiBXZSd2ZSBmb3VuZCBub3Ro
aW5nIGludGVyZXN0aW5nLiAgTGFzdCBjaGFuY2UgaXMgdGhlIGRlZmF1bHQKKyAgICogZm9udCAq
LworICBpZiAoIXJlcykKKyAgICB7CisgICAgICByZXMgPSBwYWlyX2dldCAoZW5jb2RpbmctPmNv
bXBvc2l0ZSwgImRlZmF1bHRfY29tcG9zaXRlX18iKTsKKworICAgICAgaWYgKCFyZXMpCisJZXJy
b3IgKDEsIDAsICJDYW5ub3QgZmluZCBmb250ICVzLCBub3IgYW55IGNvbXBvc2l0ZSBmb250IiwK
KwkgICAgICAgZm9udF9uYW1lKTsKKyAgICB9CisgIAorICBtZXNzYWdlIChtc2dfZW5jLAogCSAg
IChzdGRlcnIsICJJbiBlbmNvZGluZyAlcywgZm9udCAlcyBpcyByZXNvbHZlZCBhcyAlc1xuIiwK
IAkgICAgZW5jb2RpbmctPmtleSwgZm9udF9uYW1lLCByZXMpKTsKICAgcmV0dXJuIHJlczsKQEAg
LTU4NSw2ICs3MDMsMTIgQEAKIAl7CiAJICB0b2tlbjIgPSBHRVRfVE9LRU4gKE5VTEwpOwogCSAg
Q0hFQ0tfVE9LRU4gKCk7CisjaWZkZWYgVVNFX0xJQkpDT0RFCisJICBpZiggc3RyY21wKHRva2Vu
MiwgIkVVQy1KUCIpPT0gMCkKKwkgICAgdXNlX2xpYmpjb2RlID0gdHJ1ZTsKKwkgIGVsc2UgCisJ
ICAgIHVzZV9saWJqY29kZSA9IGZhbHNlOworI2VuZGlmCiAJICBlbmNvZGluZy0+bmFtZSA9IHhz
dHJkdXAgKHRva2VuMik7CiAJfQogICAgICAgZWxzZSBpZiAoc3RyZXF1ICh0b2tlbiwgIkRlZmF1
bHQ6IikpCkBAIC02MzMsNiArNzU3LDY2IEBACiAJICBzdWJzID0gdG9rZW4yOwogCSAgZW5jb2Rp
bmdfYWRkX2ZvbnRfc3Vic3RpdHV0ZSAoZW5jb2RpbmcsIG9yaWcsIHN1YnMpOwogCX0KKyAgICAg
IGVsc2UgaWYgKHN0cmVxdSAodG9rZW4sICJEZWZhdWx0Q29tcG9zaXRlOiIpKQorCXsKKwkgIGNo
YXIgKiBvcmlnLCAqIHN1YnM7CisJICBpbnQgd3g7CisJICBmbG9hdCByYWl0bzsKKworCSAgdG9r
ZW4yID0gR0VUX1RPS0VOIChOVUxMKTsKKwkgIENIRUNLX1RPS0VOICgpOworCSAgc3VicyA9IHRv
a2VuMjsKKwkgIHRva2VuMiA9IEdFVF9UT0tFTiAoTlVMTCk7CisJICBDSEVDS19UT0tFTiAoKTsK
KwkgIHd4ID0gKGludClhdG9mKHRva2VuMikqMTAwMDsKKwkgIHRva2VuMiA9IEdFVF9UT0tFTiAo
TlVMTCk7CisJICBDSEVDS19UT0tFTiAoKTsKKwkgIHJhaXRvID0gYXRvZih0b2tlbjIpOworCSAg
ZW5jb2RpbmdfYWRkX2NvbXBvc2l0ZV9mb250KGVuY29kaW5nLCAiZGVmYXVsdF9jb21wb3NpdGVf
XyIsCisJCQkJICAgICAgc3Vicywgd3gsIHJhaXRvKTsKKwl9CisgICAgICBlbHNlIGlmIChzdHJl
cXUgKHRva2VuLCAiQ29tcG9zaXRlOiIpKQorCXsKKwkgIGNoYXIgKiBvcmlnLCAqIHN1YnM7CisJ
ICBpbnQgd3g7CisJICBmbG9hdCByYWl0bzsKKworCSAgdG9rZW4yID0gR0VUX1RPS0VOIChOVUxM
KTsKKwkgIENIRUNLX1RPS0VOICgpOworCSAgb3JpZyA9IHRva2VuMjsKKwkgIHRva2VuMiA9IEdF
VF9UT0tFTiAoTlVMTCk7CisJICBDSEVDS19UT0tFTiAoKTsKKwkgIHN1YnMgPSB0b2tlbjI7CisJ
ICB0b2tlbjIgPSBHRVRfVE9LRU4gKE5VTEwpOworCSAgQ0hFQ0tfVE9LRU4gKCk7CisJICB3eCA9
IChpbnQpYXRvZih0b2tlbjIpKjEwMDA7CisJICB0b2tlbjIgPSBHRVRfVE9LRU4gKE5VTEwpOwor
CSAgQ0hFQ0tfVE9LRU4gKCk7CisJICByYWl0byA9IGF0b2YodG9rZW4yKTsKKwkgIGVuY29kaW5n
X2FkZF9jb21wb3NpdGVfZm9udChlbmNvZGluZywgb3JpZywgc3Vicywgd3gsIHJhaXRvKTsKKwl9
CisgICAgICBlbHNlIGlmIChzdHJlcXUgKHRva2VuLCAiU2xhbnRGb250OiIpKQorCXsKKwkgIGNo
YXIgKiBuZXcsICogc3JjOworCSAgZmxvYXQgcmFpdG87CisJICB1bnNpZ25lZCBpbnQgbnVtOwor
CisJICB0b2tlbjIgPSBHRVRfVE9LRU4gKE5VTEwpOworCSAgQ0hFQ0tfVE9LRU4gKCk7CisJICBu
ZXcgPSB0b2tlbjI7CisJICB0b2tlbjIgPSBHRVRfVE9LRU4gKE5VTEwpOworCSAgQ0hFQ0tfVE9L
RU4gKCk7CisJICBzcmMgPSB0b2tlbjI7CisJICB0b2tlbjIgPSBHRVRfVE9LRU4gKE5VTEwpOwor
CSAgQ0hFQ0tfVE9LRU4gKCk7CisJICByYWl0byA9IGF0b2YodG9rZW4yKTsKKwkgIGZvciAobnVt
ID0gMCA7IGVuY29kaW5nLT5zbGFudGZvbnRbbnVtXS5uYW1lIDsgbnVtICsrICk7CisJICBpZiAo
bnVtID4gc2l6ZW9mIGVuY29kaW5nLT5zbGFudGZvbnQgLSAxKXsKKwkgICAgICBlcnJvcl9hdF9s
aW5lICgxLCAwLCBmbmFtZSwgZmlyc3RsaW5lLAorCQkJICAgXygidG9vIG1hbnkgc2xhbnQgZm9u
dDogYCVzJyIpLCBuZXcpOworCSAgfQorCSAgZW5jb2RpbmdfYWRkX3NsYW50X2ZvbnQoZW5jb2Rp
bmcsIG5ldywgc3JjLCByYWl0byk7CisJfQogICAgICAgZWxzZQogICAgICAgICBlcnJvcl9hdF9s
aW5lICgxLCAwLCBmbmFtZSwgZmlyc3RsaW5lLAogICAgICAgICAgICAgICAgICAgICAgICBfKCJp
bnZhbGlkIG9wdGlvbiBgJXMnIiksIHF1b3RlYXJnICh0b2tlbikpOwpAQCAtNzU0LDYgKzkzOCwx
NSBAQAogfQogCiAvKgorICogUmV0dXJuIHRoZSBmbGFnIG9mIGNvbXBvc2l0ZSBmbGFnCisgKi8K
K2ludAorZW5jb2RpbmdfZ2V0X2NvbXBvc2l0ZV9mbGFnIChzdHJ1Y3QgZW5jb2RpbmcgKiBlbmMp
Cit7CisgIHJldHVybiBlbmMtPmNvbXBvc2l0ZV9mbGFnOworfQorCisvKgogICogUHJlcGFyZSB0
aGUgZW52aXJvbm1lbnQgKGEgZGljdGlvbmFyeSkgZm9yIHRoZSBzdXBwb3J0CiAgKiBvZiBFTkNP
RElORywgZHVtcCBpdCBpbnRvIFNUUkVBTS4KICAqCkBAIC03NjYsOSArOTU5LDExIEBACiAJCSAg
ICAgc3RydWN0IGVuY29kaW5nICogZW5jb2RpbmcpCiB7CiAgIHNpemVfdCBpLCBuYjsKKyAgc2l6
ZV90IG5zOwogICBjb25zdCBjaGFyICogcmVhbF9mb250X25hbWU7CQkvKiBBZnRlciBzdWJzaXR1
dGlvbgkqLwogICBjaGFyICoqIGZvbnRfbmFtZXMgPSAoY2hhciAqKikgZW5jb2RpbmctPmZvbnRf
bmFtZXNfdXNlZC0+Y29udGVudDsKIAorCiAgIC8qIEhvdyBtYW55IGZvbnRzIGFyZSB0aGVyZT8g
Ki8KICAgZGFfcXNvcnQgKGVuY29kaW5nLT5mb250X25hbWVzX3VzZWQpOwogICBkYV91bmlxdWUg
KGVuY29kaW5nLT5mb250X25hbWVzX3VzZWQsIChkYV9tYXBfZnVuY190KSBmcmVlKTsKQEAgLTc4
NywxNSArOTgyLDQ2IEBACiAgICAqIGluIHRoZSBjdXJyZW50IEVOQ09ESU5HCSovCiAgIG5iID0g
ZW5jb2RpbmctPmZvbnRfbmFtZXNfdXNlZC0+bGVuOwogCisgIC8qIFRoZSBudW1iZXIgb2Ygc2xh
bnQgZm9udHMgKi8KKyAgZm9yIChpPSAwLCBucz0wIDsgZW5jb2RpbmctPnNsYW50Zm9udFtpXS5u
YW1lIDsgaSsrICkKKyAgICAgIG5zKys7CisKICAgLyogQ3JlYXRlIHRoZSBkaWN0aW9uYXJ5IGFu
ZCBmaWxsIGl0ICovCiAgIGZwcmludGYgKHN0cmVhbSwgIiUlIERpY3Rpb25hcnkgZm9yICVzIHN1
cHBvcnRcbiIsCiAJICBlbmNvZGluZy0+bmFtZSk7Ci0gIGZwcmludGYgKHN0cmVhbSwgIi8lc2Rp
Y3QgJWQgZGljdCBiZWdpblxuIiwgZW5jb2RpbmctPmtleSwgbmIpOworICBmcHJpbnRmIChzdHJl
YW0sICIvJXNkaWN0ICVkIGRpY3QgYmVnaW5cbiIsIGVuY29kaW5nLT5rZXksCisJICAgKGVuY29k
aW5nLT5jb21wb3NpdGVfZmxhZyA9PSB0cnVlKT8gbmIrbmIrbnM6bmIrbnMpOwogICBmb3IgKGkg
PSAwIDsgaSA8IG5iIDsgaSsrKQogICAgIGZwcmludGYgKHN0cmVhbSwgIiAgL2YlcyAlc0VuY29k
aW5nIC8lcyByZWVuY29kZV9mb250XG4iLAogCSAgICAgZm9udF9uYW1lcyBbaV0sCiAJICAgICBl
bmNvZGluZy0+bmFtZSwKIAkgICAgIGVuY29kaW5nX3Jlc29sdmVfZm9udF9zdWJzdGl0dXRlIChq
b2IsIGVuY29kaW5nLCBmb250X25hbWVzIFtpXSkpOworCisgIC8qIFNsYW50IGZvbnQgc2V0dGlu
ZyAqLworICBmb3IgKGkgPSAwIDsgZW5jb2RpbmctPnNsYW50Zm9udFtpXS5uYW1lIDsgaSsrICkK
KyAgICBmcHJpbnRmIChzdHJlYW0sICIgIC8lcyAvJXMgJWYgc2xhbnRmb250ICBkZWZpbmVmb250
IHBvcFxuIiwKKwkgICAgIGVuY29kaW5nLT5zbGFudGZvbnRbaV0ubmFtZSwKKwkgICAgIGVuY29k
aW5nLT5zbGFudGZvbnRbaV0uc3JjLAorCSAgICAgZW5jb2RpbmctPnNsYW50Zm9udFtpXS5yYWl0
byk7CisKKyAgLyoKKyAgICogQ29tcG9zaXRlIGZvbnQgc2V0dGluZy4KKyAgICogSWYga2Fuamkg
Zm9udCBzaXplIGlzIGxhcmdlciB0aGFuIGFscGhhYmV0IGNoYXJhY3RlciwgCisgICAqIHNldCBi
YXNlIGZvbnQgc2l6ZSB0byBrYW5qaSBjaGFyYWN0b3Igc2l6ZS4KKyAgICovCisgIGlmIChlbmNv
ZGluZy0+Y29tcG9zaXRlX2ZsYWcgPT0gdHJ1ZSkgeworICAgIGZvciAoaSA9IDAgOyBpIDwgbmIg
OyBpKyspCisgICAgICBmcHJpbnRmIChzdHJlYW0sICIgIC9mJXMgL2YlcyAvJXMgJWYgJWYgZmFs
c2UgIGNvbXBvc2l0ZWZvbnQgIgorCSAgICAgICAgICAgICAgICIlZiBzY2FsZWZvbnQgZGVmXG4i
LAorCSAgICAgICBmb250X25hbWVzIFtpXSwKKwkgICAgICAgZm9udF9uYW1lcyBbaV0sCisJICAg
ICAgIGVuY29kaW5nX3Jlc29sdmVfY29tcG9zaXRlX2ZvbnQgKGpvYiwgZW5jb2RpbmcsIGZvbnRf
bmFtZXMgW2ldKSwKKwkgICAgICAgZW5jb2RpbmctPmNvbXBvc2l0ZV9yYWl0b1tpXSwKKwkgICAg
ICAgKGVuY29kaW5nLT5jb21wb3NpdGVfcmFpdG9baV0gPiAxLjApPworCSAgICAgICAwOiAoMS1l
bmNvZGluZy0+Y29tcG9zaXRlX3JhaXRvW2ldKS8yLjAsCisJICAgICAgIChlbmNvZGluZy0+Y29t
cG9zaXRlX3JhaXRvW2ldID4gMS4wKT8KKwkgICAgICAgMS4wL2VuY29kaW5nLT5jb21wb3NpdGVf
cmFpdG9baV06IDEuMCApOworICB9CiAgIGZwdXRzICgiY3VycmVudGRpY3QgZW5kIGRlZlxuIiwg
c3RyZWFtKTsKIH0KIAwKQEAgLTkzOSw2ICsxMTY1LDIyIEBACiAJCQkJICAgdHJ1ZV9mb250X25h
bWUsCiAJCQkJICAgZW5jb2RpbmctPnZlY3RvciwKIAkJCQkgICBlbmNvZGluZy0+ZmFjZXNfd3gg
W2ZhY2VdKTsKKworICAgICAgaWYgKGVuY29kaW5nLT5jb21wb3NpdGVfZmxhZykKKwl7CisJICBl
bmNvZGluZy0+Y29tcG9zaXRlX3JhaXRvW2ldID0KKwkgICAgY29tcG9zaXRlX2ZvbnRfaW5mb19n
ZXRfcmFpdG8oam9iLCBlbmNvZGluZywgCisJCQkJCSAgam9iLT5mYWNlX2VvX2ZvbnQgW2ZhY2Vd
KTsKKworCSAgZW5jb2RpbmctPmNvbXBvc2l0ZV93eFtpXSA9CisJICAgIGNvbXBvc2l0ZV9mb250
X2luZm9fZ2V0X3d4KGpvYiwgZW5jb2RpbmcsIAorCQkJCSAgICAgICBqb2ItPmZhY2VfZW9fZm9u
dCBbZmFjZV0pOworCisJICAvKiBJZiBrYW5qaSBmb250IHNpemUgaXMgbGFyZ2VyIHRoYW4gYWxw
aGFiZXQgY2hhcmFjdGVyLCAKKwkgICAgIGZpdCBrYW5qaSBjaGFyYWN0b3Igc2l6ZSB0byBiYXNl
IGZvbnQgc2l6ZSAqLworCSAgaWYgKGVuY29kaW5nLT5jb21wb3NpdGVfcmFpdG9baV0gPCAxLjAp
CisJICAgICAgZW5jb2RpbmctPmNvbXBvc2l0ZV93eFtpXSAqPSBlbmNvZGluZy0+Y29tcG9zaXRl
X3JhaXRvW2ldOyAKKwl9CiAgICAgfQogfQogCkBAIC0xMDczLDYgKzEzMTUsMTMgQEAKICAgcmV0
dXJuIDA7CS8qIEZvciAtV2FsbCAqLwogfQogCit1bnNpZ25lZCBpbnQKK2NoYXJfY29tcG9zaXRl
X1dYIChhMnBzX2pvYiAqIGpvYiwgdWNoYXIgYykKK3sKKyAgcmV0dXJuIChqb2ItPmVuY29kaW5n
LT5jb21wb3NpdGVfd3hbam9iLT5zdGF0dXMtPmZhY2VdLworCSAgam9iLT5lbmNvZGluZy0+Y29t
cG9zaXRlX3JhaXRvW2pvYi0+c3RhdHVzLT5mYWNlXSk7Cit9CisKIC8qCiAgKglSZXR1cm5zIHRo
ZSBXWCBvZiBhIHN0cmluZyAoaW5jbHVkaW5nIE0tIGFuZCBeKQogICovCmRpZmYgLXVyTiBhMnBz
LTQuMTMuT1JJRy9saWIvZW5jb2RpbmcuaCBhMnBzLTQuMTMvbGliL2VuY29kaW5nLmgKLS0tIGEy
cHMtNC4xMy5PUklHL2xpYi9lbmNvZGluZy5oCTIwMDMtMDktMjcgMDQ6NDA6MzcuMDAwMDAwMDAw
ICswOTAwCisrKyBhMnBzLTQuMTMvbGliL2VuY29kaW5nLmgJMjAwMy0wOS0yNyAwNTo0NTowMi4w
MDAwMDAwMDAgKzA5MDAKQEAgLTQzLDYgKzQzLDcgQEAKICAqLwogdW5zaWduZWQgaW50IGNoYXJf
V1ggUEFSQU1TICgoc3RydWN0IGEycHNfam9iICogam9iLCB1Y2hhciBjKSk7CiB1bnNpZ25lZCBp
bnQgc3RyaW5nX1dYIFBBUkFNUyAoKHN0cnVjdCBhMnBzX2pvYiAqIGpvYiwgdWNoYXIgKiBzdHJp
bmcpKTsKK3Vuc2lnbmVkIGludCBjaGFyX2NvbXBvc2l0ZV9XWCBQQVJBTVMgKChzdHJ1Y3QgYTJw
c19qb2IgKiBqb2IsIHVjaGFyIGMpKTsKIAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpAQCAtNTYsNiAr
NTcsNyBAQAogCQkJCQlGSUxFICogc3RyZWFtKSk7CiBpbnQgZW5jb2RpbmdfY2hhcl9leGlzdHMg
UEFSQU1TICgoc3RydWN0IGVuY29kaW5nICogZW5jLAogCQkJCQllbnVtIGZhY2VfZSBmYWNlLCB1
Y2hhciBjKSk7CitpbnQgZW5jb2RpbmdfZ2V0X2NvbXBvc2l0ZV9mbGFnIChzdHJ1Y3QgZW5jb2Rp
bmcgKiBlbmMpOwogc3RydWN0IGVuY29kaW5nICoKIGdldF9lbmNvZGluZ19ieV9hbGlhcyBQQVJB
TVMgKChzdHJ1Y3QgYTJwc19qb2IgKiBqb2IsIAogCQkJICAgICAgIGNoYXIgKnN0cmluZykpOwpA
QCAtNzEsNiArNzMsMTIgQEAKIAkJIHN0cnVjdCBlbmNvZGluZyAqIGVuY29kaW5nLAogCQkgY29u
c3QgY2hhciAqIGZvbnRfbmFtZSkpOwogCisKK2NvbnN0IGNoYXIgKiBlbmNvZGluZ19yZXNvbHZl
X2NvbXBvc2l0ZV9mb250CisJUEFSQU1TICgoc3RydWN0IGEycHNfam9iICogam9iLAorCQkgc3Ry
dWN0IGVuY29kaW5nICogZW5jb2RpbmcsCisJCSBjb25zdCBjaGFyICogZm9udF9uYW1lKSk7CisK
IC8qCiAgKiBIYXZlIGEgc3RydWN0IGVuY29kaW5nIGRldGVybWluZSB0aGUgZmFjZXNfd3gKICAq
LwpkaWZmIC11ck4gYTJwcy00LjEzLk9SSUcvbGliL3BhaXJfaHQuYyBhMnBzLTQuMTMvbGliL3Bh
aXJfaHQuYwotLS0gYTJwcy00LjEzLk9SSUcvbGliL3BhaXJfaHQuYwkyMDAyLTAzLTA1IDAzOjQ2
OjI1LjAwMDAwMDAwMCArMDkwMAorKysgYTJwcy00LjEzL2xpYi9wYWlyX2h0LmMJMjAwMy0wOS0y
NyAwNTo0NTowMi4wMDAwMDAwMDAgKzA5MDAKQEAgLTQ5LDYgKzQ5LDggQEAKIHsKICAgY2hhciAq
IGtleTsKICAgY2hhciAqIHZhbHVlOworICBmbG9hdCAgcmFpdG87CisgIGludCAgICB3eDsKIH07
CiAKIC8qCkBAIC0xNjUsNiArMTY3LDM3IEBACiB9CiAKIC8qCisgKiAgQWRkIGEgcGFpciwgd2l0
aCB5b3VyIG93biBhbGxvY2F0aW9uIGZvciB0aGVtLgorICogSXQgS0VZIGlzIHlldCB1c2VkLCBv
dmVycmlkZSBpdHMgdmFsdWUgd2l0aCBWQUxVRQorICovCit2b2lkCitwYWlyX2FkZDIgKHN0cnVj
dCBoYXNoX3RhYmxlX3MgKiB0YWJsZSwKKwkgIGNvbnN0IGNoYXIgKiBrZXksIGNvbnN0IGNoYXIg
KiB2YWx1ZSwgaW50IHd4LCBmbG9hdCByYWl0bykKK3sKKyAgc3RydWN0IHBhaXIgKiBpdGVtLCB0
b2tlbjsKKyAgCisgIHRva2VuLmtleSA9IChjaGFyICopIGtleTsKKyAgaXRlbSA9IChzdHJ1Y3Qg
cGFpciAqKSBoYXNoX2ZpbmRfaXRlbSAodGFibGUsICZ0b2tlbik7CisKKyAgaWYgKGl0ZW0pIHsK
KyAgICBpZiAoaXRlbS0+dmFsdWUpCisgICAgICBmcmVlIChpdGVtLT52YWx1ZSk7CisgIH0gZWxz
ZSB7CisgICAgaXRlbSA9IFhNQUxMT0MgKHN0cnVjdCBwYWlyLCAxKTsKKyAgICBpdGVtLT5rZXkg
PSB4c3RyZHVwKGtleSk7CisgICAgaXRlbS0+d3ggICAgPSB3eDsKKyAgICBpdGVtLT5yYWl0byA9
IHJhaXRvOworICB9CisgIAorICBpZiAodmFsdWUpCisgICAgaXRlbS0+dmFsdWUgPSB4c3RyZHVw
ICh2YWx1ZSk7CisgIGVsc2UKKyAgICBpdGVtLT52YWx1ZSA9IE5VTEw7CisKKyAgaGFzaF9pbnNl
cnQgKHRhYmxlLCBpdGVtKTsKK30KKworLyoKICAqIFJlbW92ZSBhIHBhaXIgYW5kIGZyZWUgaXQu
CiAgKiBJdCBLRVkgaXMgeWV0IHVzZWQsIG92ZXJyaWRlIGl0cyB2YWx1ZSB3aXRoIFZBTFVFCiAg
Ki8KQEAgLTIwMSw2ICsyMzQsMzQgQEAKICAgICByZXR1cm4gTlVMTDsKIH0KIAoraW50CitwYWly
X2dldF93eCAoc3RydWN0IGhhc2hfdGFibGVfcyAqIHRhYmxlLCBjb25zdCBjaGFyICoga2V5KQor
eworICBzdHJ1Y3QgcGFpciAqIGl0ZW0sIHRva2VuOworICAKKyAgdG9rZW4ua2V5ID0gKGNoYXIg
Kikga2V5OworICBpdGVtID0gKHN0cnVjdCBwYWlyICopIGhhc2hfZmluZF9pdGVtICh0YWJsZSwg
JnRva2VuKTsKKworICBpZiAoaXRlbSkKKyAgICByZXR1cm4gaXRlbS0+d3g7CisgIGVsc2UKKyAg
ICByZXR1cm4gLTE7Cit9CisKK2Zsb2F0CitwYWlyX2dldF9yYWl0byAoc3RydWN0IGhhc2hfdGFi
bGVfcyAqIHRhYmxlLCBjb25zdCBjaGFyICoga2V5KQoreworICBzdHJ1Y3QgcGFpciAqIGl0ZW0s
IHRva2VuOworICAKKyAgdG9rZW4ua2V5ID0gKGNoYXIgKikga2V5OworICBpdGVtID0gKHN0cnVj
dCBwYWlyICopIGhhc2hfZmluZF9pdGVtICh0YWJsZSwgJnRva2VuKTsKKworICBpZiAoaXRlbSkK
KyAgICByZXR1cm4gaXRlbS0+cmFpdG87CisgIGVsc2UKKyAgICByZXR1cm4gLTE7Cit9CisKIC8q
CiAgKiBSZXR1cm4gdGhlIGNvbnRlbnQgb2YgdGhlIGhhc2ggdGFibGUsIG9yZGVyZWQKICAqLwpk
aWZmIC11ck4gYTJwcy00LjEzLk9SSUcvbGliL3BhaXJfaHQuaCBhMnBzLTQuMTMvbGliL3BhaXJf
aHQuaAotLS0gYTJwcy00LjEzLk9SSUcvbGliL3BhaXJfaHQuaAkyMDAyLTAzLTA1IDAzOjQ2OjI1
LjAwMDAwMDAwMCArMDkwMAorKysgYTJwcy00LjEzL2xpYi9wYWlyX2h0LmgJMjAwMy0wOS0yNyAw
NTo0NTowMi4wMDAwMDAwMDAgKzA5MDAKQEAgLTU2LDYgKzU2LDEwIEBACiB2b2lkIHBhaXJfYWRk
IFBBUkFNUyAoKHN0cnVjdCBwYWlyX2h0YWJsZSAqIHRhYmxlLCAKIAkJICAgICAgIGNvbnN0IGNo
YXIgKiBrZXksIGNvbnN0IGNoYXIgKiB2YWx1ZSkpOwogCit2b2lkIHBhaXJfYWRkMiBQQVJBTVMg
KChzdHJ1Y3QgcGFpcl9odGFibGUgKiB0YWJsZSwgCisJCSAgICAgICBjb25zdCBjaGFyICoga2V5
LCBjb25zdCBjaGFyICogdmFsdWUsCisJCQlpbnQgd3gsIGZsb2F0IHJhaXRvKSk7CisKIC8qCiAg
KiBUaGUga2V5IGFuZCB2YWx1ZSBvZiB0aGUgbWF0Y2hpbmcgaXRlbSAgd2lsbCBiZSBmcmVlJ2QK
ICAqIChObyBwcm9ibGVtIGlmIEtFWSBtYXRjaGVzIG5vdGhpbmcpCkBAIC02OCw2ICs3MiwxMCBA
QAogICovCiBjaGFyICogcGFpcl9nZXQgUEFSQU1TICgoc3RydWN0IHBhaXJfaHRhYmxlICogdGFi
bGUsCiAJCQkgY29uc3QgY2hhciAqIGtleSkpOworaW50ICAgIHBhaXJfZ2V0X3d4IFBBUkFNUyAo
KHN0cnVjdCBwYWlyX2h0YWJsZSAqIHRhYmxlLAorCQkJICAgIGNvbnN0IGNoYXIgKiBrZXkpKTsK
K2Zsb2F0ICBwYWlyX2dldF9yYWl0byBQQVJBTVMgKChzdHJ1Y3QgcGFpcl9odGFibGUgKiB0YWJs
ZSwKKwkJCSAgICAgICBjb25zdCBjaGFyICoga2V5KSk7CiAKIHZvaWQgcGFpcl90YWJsZV9saXN0
X3Nob3J0IFBBUkFNUyAoKHN0cnVjdCBwYWlyX2h0YWJsZSAqIHRhYmxlLAogCQkJCSAgICBGSUxF
ICogc3RyZWFtKSk7CmRpZmYgLXVyTiBhMnBzLTQuMTMuT1JJRy9saWIvcHNnZW4uYyBhMnBzLTQu
MTMvbGliL3BzZ2VuLmMKLS0tIGEycHMtNC4xMy5PUklHL2xpYi9wc2dlbi5jCTIwMDItMDMtMDUg
MDM6NDY6MjUuMDAwMDAwMDAwICswOTAwCisrKyBhMnBzLTQuMTMvbGliL3BzZ2VuLmMJMjAwMy0w
OS0yNyAwNTo0NTowMi4wMDAwMDAwMDAgKzA5MDAKQEAgLTg3NSw2ICs4NzUsNyBAQAogICBwcmlu
dDoKICAgZGVmYXVsdDoKICAgICB7CisgICAgICBzdGF0aWMgbWJfZmxhZz0gMDsKICAgICAgIHVj
aGFyIGJ1ZlsyNTZdOwogICAgICAgaW50IG5jaGFyczsKICAgICAgICpidWYgPSAnXDAnOwpAQCAt
ODg5LDYgKzg5MCwyOSBAQAogICAgIGpvYi0+c3RhdHVzLT5mYWNlX2RlY2xhcmVkID0gZmFsc2U7
CiAgIH0KIAorICBpZiAoYyA+IDEyNyAmJiBlbmNvZGluZ19nZXRfY29tcG9zaXRlX2ZsYWcgKGpv
Yi0+ZW5jb2RpbmcpICYmCisgICAgICBqb2ItPnN0YXR1cy0+ZmFjZSAhPSBTeW1ib2wpIHsKKyAg
ICBpZiAobWJfZmxhZykgeworICAgICAgICBuY2hhcnMgPSBwc19lc2NhcGVfY2hhciAoam9iLCBt
Yl9mbGFnLCBidWYpICsgCisJICAgICAgICAgcHNfZXNjYXBlX2NoYXIgKGpvYiwgYywgYnVmKTsK
Kwlqb2ItPnN0YXR1cy0+d3ggKz0gY2hhcl9jb21wb3NpdGVfV1goam9iLCBjKTsKKwlqb2ItPnN0
YXR1cy0+Y29sdW1uICs9IG5jaGFyczsKKwlpZiAobGluZV9mdWxsKSB7CisJICAgIGlmIChqb2It
PmZvbGRpbmcpIHsKKwkgICAgICAgIGZvbGRfbGluZSAoam9iLCBuZXdfZmFjZSk7CisJCWpvYi0+
c3RhdHVzLT5jb2x1bW4gPSBuY2hhcnMqMjsKKwkJam9iLT5zdGF0dXMtPnd4ID0gY2hhcl9jb21w
b3NpdGVfV1goam9iLCBjKTsKKwkgICAgfSBlbHNlIHsKKwkgICAgICBqb2ItPnN0YXR1cy0+aXNf
aW5fY3V0ID0gdHJ1ZTsKKwkgICAgICByZXR1cm47CisJICAgIH0KKwl9CisJbWJfZmxhZyA9IDA7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgbWJfZmxhZyA9IGM7CisJcmV0dXJuOworICAgIH0KKyAg
fSBlbHNlIHsKICAgICAgIG5jaGFycyA9IHBzX2VzY2FwZV9jaGFyIChqb2IsIGMsIGJ1Zik7CiAg
ICAgICBqb2ItPnN0YXR1cy0+d3ggKz0gY2hhcl9XWCAoam9iLCBjKTsKICAgICAgIGpvYi0+c3Rh
dHVzLT5jb2x1bW4gKz0gbmNoYXJzOwpAQCAtOTAyLDggKzkyNiw5IEBACiAJICByZXR1cm47CiAJ
fQogICAgICAgfQorICB9CiAgICAgICBvdXRwdXQgKGpkaXYsICIlcyIsIGJ1Zik7Ci0gICAgICBq
b2ItPnN0YXR1cy0+Y2hhcnMrKzsKKyAgICAgIGpvYi0+c3RhdHVzLT5jaGFycys9bmNoYXJzOwog
ICAgIH0KICAgICBicmVhazsKICAgfQpkaWZmIC11ck4gYTJwcy00LjEzLk9SSUcvbGliamNvZGUv
RG9jL3JmYzE0NjgudHh0IGEycHMtNC4xMy9saWJqY29kZS9Eb2MvcmZjMTQ2OC50eHQKLS0tIGEy
cHMtNC4xMy5PUklHL2xpYmpjb2RlL0RvYy9yZmMxNDY4LnR4dAkxOTcwLTAxLTAxIDA5OjAwOjAw
LjAwMDAwMDAwMCArMDkwMAorKysgYTJwcy00LjEzL2xpYmpjb2RlL0RvYy9yZmMxNDY4LnR4dAky
MDAzLTA5LTI3IDA1OjQ1OjAyLjAwMDAwMDAwMCArMDkwMApAQCAtMCwwICsxLDMzOSBAQAorCisK
KworCisKKworTmV0d29yayBXb3JraW5nIEdyb3VwICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEouIE11cmFpCitSZXF1ZXN0IGZvciBDb21tZW50czogMTQ2OCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBLZWlvIFVuaXZlcnNpdHkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTS4gQ3Jpc3Bp
bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFBhbmRhIFByb2dyYW1taW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBFLiB2YW4gZGVyIFBvZWwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEp1bmUgMTk5MworCisK
KyAgICAgICAgICAgSmFwYW5lc2UgQ2hhcmFjdGVyIEVuY29kaW5nIGZvciBJbnRlcm5ldCBNZXNz
YWdlcworCitTdGF0dXMgb2YgdGhpcyBNZW1vCisKKyAgIFRoaXMgbWVtbyBwcm92aWRlcyBpbmZv
cm1hdGlvbiBmb3IgdGhlIEludGVybmV0IGNvbW11bml0eS4gIEl0IGRvZXMKKyAgIG5vdCBzcGVj
aWZ5IGFuIEludGVybmV0IHN0YW5kYXJkLiAgRGlzdHJpYnV0aW9uIG9mIHRoaXMgbWVtbyBpcwor
ICAgdW5saW1pdGVkLgorCitJbnRyb2R1Y3Rpb24KKworICAgVGhpcyBkb2N1bWVudCBkZXNjcmli
ZXMgdGhlIGVuY29kaW5nIHVzZWQgaW4gZWxlY3Ryb25pYyBtYWlsIFtSRkM4MjJdCisgICBhbmQg
bmV0d29yayBuZXdzIFtSRkMxMDM2XSBtZXNzYWdlcyBpbiBzZXZlcmFsIEphcGFuZXNlIG5ldHdv
cmtzLiBJdAorICAgd2FzIGZpcnN0IHNwZWNpZmllZCBieSBhbmQgdXNlZCBpbiBKVU5FVCBbSlVO
RVRdLiBUaGUgZW5jb2RpbmcgaXMgbm93CisgICBhbHNvIHdpZGVseSB1c2VkIGluIEphcGFuZXNl
IElQIGNvbW11bml0aWVzLgorCisgICBUaGUgbmFtZSBnaXZlbiB0byB0aGlzIGVuY29kaW5nIGlz
ICJJU08tMjAyMi1KUCIsIHdoaWNoIGlzIGludGVuZGVkCisgICB0byBiZSB1c2VkIGluIHRoZSAi
Y2hhcnNldCIgcGFyYW1ldGVyIGZpZWxkIG9mIE1JTUUgaGVhZGVycyAoc2VlCisgICBbTUlNRTFd
IGFuZCBbTUlNRTJdKS4KKworRGVzY3JpcHRpb24KKworICAgVGhlIHRleHQgc3RhcnRzIGluIEFT
Q0lJIFtBU0NJSV0sIGFuZCBzd2l0Y2hlcyB0byBKYXBhbmVzZSBjaGFyYWN0ZXJzCisgICB0aHJv
dWdoIGFuIGVzY2FwZSBzZXF1ZW5jZS4gRm9yIGV4YW1wbGUsIHRoZSBlc2NhcGUgc2VxdWVuY2Ug
RVNDICQgQgorICAgKHRocmVlIGJ5dGVzLCBoZXhhZGVjaW1hbCB2YWx1ZXM6IDFCIDI0IDQyKSBp
bmRpY2F0ZXMgdGhhdCB0aGUgYnl0ZXMKKyAgIGZvbGxvd2luZyB0aGlzIGVzY2FwZSBzZXF1ZW5j
ZSBhcmUgSmFwYW5lc2UgY2hhcmFjdGVycywgd2hpY2ggYXJlCisgICBlbmNvZGVkIGluIHR3byBi
eXRlcyBlYWNoLiAgVG8gc3dpdGNoIGJhY2sgdG8gQVNDSUksIHRoZSBlc2NhcGUKKyAgIHNlcXVl
bmNlIEVTQyAoIEIgaXMgdXNlZC4KKworICAgVGhlIGZvbGxvd2luZyB0YWJsZSBnaXZlcyB0aGUg
ZXNjYXBlIHNlcXVlbmNlcyBhbmQgdGhlIGNoYXJhY3RlciBzZXRzCisgICB1c2VkIGluIElTTy0y
MDIyLUpQIG1lc3NhZ2VzLiBUaGUgSVNPUkVHIG51bWJlciBpcyB0aGUgcmVnaXN0cmF0aW9uCisg
ICBudW1iZXIgaW4gSVNPJ3MgcmVnaXN0cnkgW0lTT1JFR10uCisKKyAgICAgICBFc2MgU2VxICAg
IENoYXJhY3RlciBTZXQgICAgICAgICAgICAgICAgICBJU09SRUcKKworICAgICAgIEVTQyAoIEIg
ICAgQVNDSUkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYKKyAgICAgICBFU0MgKCBKICAg
IEpJUyBYIDAyMDEtMTk3NiAoIlJvbWFuIiBzZXQpICAgIDE0CisgICAgICAgRVNDICQgQCAgICBK
SVMgWCAwMjA4LTE5NzggICAgICAgICAgICAgICAgICA0MgorICAgICAgIEVTQyAkIEIgICAgSklT
IFggMDIwOC0xOTgzICAgICAgICAgICAgICAgICAgODcKKworICAgTm90ZSB0aGF0IEpJUyBYIDAy
MDggd2FzIGNhbGxlZCBKSVMgQyA2MjI2IHVudGlsIHRoZSBuYW1lIHdhcyBjaGFuZ2VkCisKKwor
CitNdXJhaSwgQ3Jpc3BpbiAmIHZhbiBkZXIgUG9lbCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW1BhZ2UgMV0KKwwKK1JGQyAxNDY4ICAgSmFwYW5lc2UgQ2hhcmFjdGVyIEVuY29k
aW5nIGZvciBJbnRlcm5ldCBNZXNzYWdlcyAgIEp1bmUgMTk5MworCisKKyAgIG9uIE1hcmNoIDFz
dCwgMTk4Ny4gTGlrZXdpc2UsIEpJUyBDIDYyMjAgd2FzIHJlbmFtZWQgSklTIFggMDIwMS4KKwor
ICAgVGhlICJSb21hbiIgY2hhcmFjdGVyIHNldCBvZiBKSVMgWCAwMjAxIFtKSVNYMDIwMV0gaXMg
aWRlbnRpY2FsIHRvCisgICBBU0NJSSBleGNlcHQgZm9yIGJhY2tzbGFzaCAoKSBhbmQgdGlsZGUg
KH4pLiBUaGUgYmFja3NsYXNoIGlzCisgICByZXBsYWNlZCBieSB0aGUgWWVuIHNpZ24sIGFuZCB0
aGUgdGlsZGUgaXMgcmVwbGFjZWQgYnkgb3ZlcmxpbmUuIFRoaXMKKyAgIHNldCBpcyBKYXBhbidz
IG5hdGlvbmFsIHZhcmlhbnQgb2YgSVNPIDY0NiBbSVNPNjQ2XS4KKworICAgVGhlIEpJUyBYIDAy
MDggW0pJU1gwMjA4XSBjaGFyYWN0ZXIgc2V0cyBjb25zaXN0IG9mIEthbmppLCBIaXJhZ2FuYSwK
KyAgIEthdGFrYW5hIGFuZCBzb21lIG90aGVyIHN5bWJvbHMgYW5kIGNoYXJhY3RlcnMuIEVhY2gg
Y2hhcmFjdGVyIHRha2VzCisgICB1cCB0d28gYnl0ZXMuCisKKyAgIEZvciBmdXJ0aGVyIGRldGFp
bHMgYWJvdXQgdGhlIEpJUyBKYXBhbmVzZSBuYXRpb25hbCBjaGFyYWN0ZXIgc2V0CisgICBzdGFu
ZGFyZHMsIHJlZmVyIHRvIFtKSVNYMDIwMV0gYW5kIFtKSVNYMDIwOF0uICBGb3IgZnVydGhlcgor
ICAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGVzY2FwZSBzZXF1ZW5jZXMsIHNlZSBbSVNPMjAyMl0g
YW5kIFtJU09SRUddLgorCisgICBJZiB0aGVyZSBhcmUgSklTIFggMDIwOCBjaGFyYWN0ZXJzIG9u
IGEgbGluZSwgdGhlcmUgbXVzdCBiZSBhIHN3aXRjaAorICAgdG8gQVNDSUkgb3IgdG8gdGhlICJS
b21hbiIgc2V0IG9mIEpJUyBYIDAyMDEgYmVmb3JlIHRoZSBlbmQgb2YgdGhlCisgICBsaW5lIChp
LmUuLCBiZWZvcmUgdGhlIENSTEYpLiBUaGlzIG1lYW5zIHRoYXQgdGhlIG5leHQgbGluZSBzdGFy
dHMgaW4KKyAgIHRoZSBjaGFyYWN0ZXIgc2V0IHRoYXQgd2FzIHN3aXRjaGVkIHRvIGJlZm9yZSB0
aGUgZW5kIG9mIHRoZSBwcmV2aW91cworICAgbGluZS4KKworICAgQWxzbywgdGhlIHRleHQgbXVz
dCBlbmQgaW4gQVNDSUkuCisKKyAgIE90aGVyIHJlc3RyaWN0aW9ucyBhcmUgZ2l2ZW4gaW4gdGhl
IEZvcm1hbCBTeW50YXggYmVsb3cuCisKK0Zvcm1hbCBTeW50YXgKKworICAgVGhlIG5vdGF0aW9u
YWwgY29udmVudGlvbnMgdXNlZCBoZXJlIGFyZSBpZGVudGljYWwgdG8gdGhvc2UgdXNlZCBpbgor
ICAgUkZDIDgyMiBbUkZDODIyXS4KKworICAgVGhlICogKGFzdGVyaXNrKSBjb252ZW50aW9uIGlz
IGFzIGZvbGxvd3M6CisKKyAgICAgICBsKm0gc29tZXRoaW5nCisKKyAgIG1lYW5pbmcgYXQgbGVh
c3QgbCBhbmQgYXQgbW9zdCBtIHNvbWV0aGluZ3MsIHdpdGggbCBhbmQgbSB0YWtpbmcKKyAgIGRl
ZmF1bHQgdmFsdWVzIG9mIDAgYW5kIGluZmluaXR5LCByZXNwZWN0aXZlbHkuCisKKworICAgbWVz
c2FnZSAgICAgICAgICAgICA9IGhlYWRlcnMgMSooIENSTEYgKnNpbmdsZS1ieXRlLWNoYXIgKnNl
Z21lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICBzaW5nbGUtYnl0ZS1zZXEgKnNpbmdsZS1i
eXRlLWNoYXIgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsg
c2VlIGFsc28gW01JTUUxXSAiYm9keS1wYXJ0IgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDsgbm90ZTogbXVzdCBlbmQgaW4gQVNDSUkKKworICAgaGVhZGVycyAg
ICAgICAgICAgICA9IDxzZWUgW1JGQzgyMl0gImZpZWxkcyIgYW5kIFtNSU1FMV0gImJvZHktcGFy
dCI+CisKKyAgIHNlZ21lbnQgICAgICAgICAgICAgPSBzaW5nbGUtYnl0ZS1zZWdtZW50IC8gZG91
YmxlLWJ5dGUtc2VnbWVudAorCisgICBzaW5nbGUtYnl0ZS1zZWdtZW50ID0gc2luZ2xlLWJ5dGUt
c2VxIDEqc2luZ2xlLWJ5dGUtY2hhcgorCisKKworTXVyYWksIENyaXNwaW4gJiB2YW4gZGVyIFBv
ZWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtQYWdlIDJdCisMCitSRkMgMTQ2
OCAgIEphcGFuZXNlIENoYXJhY3RlciBFbmNvZGluZyBmb3IgSW50ZXJuZXQgTWVzc2FnZXMgICBK
dW5lIDE5OTMKKworCisgICBkb3VibGUtYnl0ZS1zZWdtZW50ID0gZG91YmxlLWJ5dGUtc2VxIDEq
KCBvbmUtb2YtOTQgb25lLW9mLTk0ICkKKworICAgc2luZ2xlLWJ5dGUtc2VxICAgICA9IEVTQyAi
KCIgKCAiQiIgLyAiSiIgKQorCisgICBkb3VibGUtYnl0ZS1zZXEgICAgID0gRVNDICIkIiAoICJA
IiAvICJCIiApCisKKyAgIENSTEYgICAgICAgICAgICAgICAgPSBDUiBMRgorCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyAoIE9jdGFsLCBEZWNp
bWFsLikKKworICAgRVNDICAgICAgICAgICAgICAgICA9IDxJU08gMjAyMiBFU0MsIGVzY2FwZT4g
ICAgIDsgKCAgICAzMywgICAgICAyNy4pCisKKyAgIFNJICAgICAgICAgICAgICAgICAgPSA8SVNP
IDIwMjIgU0ksIHNoaWZ0LWluPiAgICA7ICggICAgMTcsICAgICAgMTUuKQorCisgICBTTyAgICAg
ICAgICAgICAgICAgID0gPElTTyAyMDIyIFNPLCBzaGlmdC1vdXQ+ICAgOyAoICAgIDE2LCAgICAg
IDE0LikKKworICAgQ1IgICAgICAgICAgICAgICAgICA9IDxBU0NJSSBDUiwgY2FycmlhZ2UgcmV0
dXJuPjsgKCAgICAxNSwgICAgICAxMy4pCisKKyAgIExGICAgICAgICAgICAgICAgICAgPSA8QVND
SUkgTEYsIGxpbmVmZWVkPiAgICAgICA7ICggICAgMTIsICAgICAgMTAuKQorCisgICBvbmUtb2Yt
OTQgICAgICAgICAgID0gPGFueSBvbmUgb2YgOTQgdmFsdWVzPiAgICAgOyAoNDEtMTc2LCAzMy4t
MTI2LikKKworICAgN0JJVCAgICAgICAgICAgICAgICA9IDxhbnkgNy1iaXQgdmFsdWU+ICAgICAg
ICAgIDsgKCAwLTE3NywgIDAuLTEyNy4pCisKKyAgIHNpbmdsZS1ieXRlLWNoYXIgICAgPSA8YW55
IDdCSVQsIGluY2x1ZGluZyBiYXJlIENSICYgYmFyZSBMRiwgYnV0IE5PVAorICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbmNsdWRpbmcgQ1JMRiwgYW5kIG5vdCBpbmNsdWRpbmcgRVNDLCBTSSwg
U08+CisKK01JTUUgQ29uc2lkZXJhdGlvbnMKKworICAgVGhlIG5hbWUgZ2l2ZW4gdG8gdGhlIEpV
TkVUIGNoYXJhY3RlciBlbmNvZGluZyBpcyAiSVNPLTIwMjItSlAiLiBUaGlzCisgICBuYW1lIGlz
IGludGVuZGVkIHRvIGJlIHVzZWQgaW4gTUlNRSBtZXNzYWdlcyBhcyBmb2xsb3dzOgorCisgICAg
ICAgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby0yMDIyLWpwCisKKyAgIFRo
ZSBJU08tMjAyMi1KUCBlbmNvZGluZyBpcyBhbHJlYWR5IGluIDctYml0IGZvcm0sIHNvIGl0IGlz
IG5vdAorICAgbmVjZXNzYXJ5IHRvIHVzZSBhIENvbnRlbnQtVHJhbnNmZXItRW5jb2RpbmcgaGVh
ZGVyLiBJdCBzaG91bGQgYmUKKyAgIG5vdGVkIHRoYXQgYXBwbHlpbmcgdGhlIEJhc2U2NCBvciBR
dW90ZWQtUHJpbnRhYmxlIGVuY29kaW5nIHdpbGwKKyAgIHJlbmRlciB0aGUgbWVzc2FnZSB1bnJl
YWRhYmxlIGluIGN1cnJlbnQgSlVORVQgc29mdHdhcmUuCisKKyAgIElTTy0yMDIyLUpQIG1heSBh
bHNvIGJlIHVzZWQgaW4gTUlNRSBQYXJ0IDIgaGVhZGVycy4gIFRoZSAiQiIKKyAgIGVuY29kaW5n
IHNob3VsZCBiZSB1c2VkIHdpdGggSVNPLTIwMjItSlAgdGV4dC4KKworQmFja2dyb3VuZCBJbmZv
cm1hdGlvbgorCisgICBUaGUgSlVORVQgZW5jb2Rpbmcgd2FzIGRlc2NyaWJlZCBpbiB0aGUgSlVO
RVQgVXNlcidzIEd1aWRlIFtKVU5FVF0KKyAgIChKVU5FVCBSaXlvdSBObyBUZWJpa2kgRGFpIElw
cGFuKS4KKworICAgVGhlIGVuY29kaW5nIGlzIGJhc2VkIG9uIHRoZSBwYXJ0aWN1bGFyIHVzYWdl
IG9mIElTTyAyMDIyIGFubm91bmNlZAorCisKKworTXVyYWksIENyaXNwaW4gJiB2YW4gZGVyIFBv
ZWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtQYWdlIDNdCisMCitSRkMgMTQ2
OCAgIEphcGFuZXNlIENoYXJhY3RlciBFbmNvZGluZyBmb3IgSW50ZXJuZXQgTWVzc2FnZXMgICBK
dW5lIDE5OTMKKworCisgICBieSA0LzEgKHNlZSBbSVNPMjAyMl0gZm9yIGRldGFpbHMpLiBIb3dl
dmVyLCB0aGUgZXNjYXBlIHNlcXVlbmNlCisgICBub3JtYWxseSB1c2VkIGZvciB0aGlzIGFubm91
bmNlbWVudCBpcyBub3QgaW5jbHVkZWQgaW4gSVNPLTIwMjItSlAKKyAgIG1lc3NhZ2VzLgorCisg
ICBUaGUgS2FuYSBzZXQgb2YgSklTIFggMDIwMSBpcyBub3QgdXNlZCBpbiBJU08tMjAyMi1KUCBt
ZXNzYWdlcy4KKworICAgSW4gdGhlIHBhc3QsIHNvbWUgc3lzdGVtcyBlcnJvbmVvdXNseSB1c2Vk
IHRoZSBlc2NhcGUgc2VxdWVuY2UgRVNDICgKKyAgIEggaW4gSlVORVQgbWVzc2FnZXMuIFRoaXMg
ZXNjYXBlIHNlcXVlbmNlIGlzIG9mZmljaWFsbHkgcmVnaXN0ZXJlZAorICAgZm9yIGEgU3dlZGlz
aCBjaGFyYWN0ZXIgc2V0IFtJU09SRUddLCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGluIElTTy0K
KyAgIDIwMjItSlAgbWVzc2FnZXMuCisKKyAgIFNvbWUgc3lzdGVtcyBkbyBub3QgZGlzdGluZ3Vp
c2ggYmV0d2VlbiBFU0MgKCBCIGFuZCBFU0MgKCBKIG9yCisgICBiZXR3ZWVuIEVTQyAkIEAgYW5k
IEVTQyAkIEIgZm9yIGRpc3BsYXkuIEhvd2V2ZXIsIHdoZW4gcmVsYXlpbmcgYQorICAgbWVzc2Fn
ZSB0byBhbm90aGVyIHN5c3RlbSwgdGhlIGVzY2FwZSBzZXF1ZW5jZXMgbXVzdCBub3QgYmUgYWx0
ZXJlZAorICAgaW4gYW55IHdheS4KKworICAgVGhlIGh1bWFuIHVzZXIgKG5vdCBpbXBsZW1lbnRv
cikgc2hvdWxkIHRyeSB0byBrZWVwIGxpbmVzIHdpdGhpbiA4MAorICAgZGlzcGxheSBjb2x1bW5z
LCBvciwgcHJlZmVyYWJseSwgd2l0aGluIDc1IChvciBzbykgY29sdW1ucywgdG8gYWxsb3cKKyAg
IGluc2VydGlvbiBvZiAiPiIgYXQgdGhlIGJlZ2lubmluZyBvZiBlYWNoIGxpbmUgaW4gZXhjZXJw
dHMuIEVhY2ggSklTCisgICBYIDAyMDggY2hhcmFjdGVyIHRha2VzIHVwIHR3byBjb2x1bW5zLCBh
bmQgdGhlIGVzY2FwZSBzZXF1ZW5jZXMgZG8KKyAgIG5vdCB0YWtlIHVwIGFueSBjb2x1bW5zLiBU
aGUgaW1wbGVtZW50b3IgaXMgcmVtaW5kZWQgdGhhdCBKSVMgWCAwMjA4CisgICBjaGFyYWN0ZXJz
IHRha2UgdXAgdHdvIGJ5dGVzIGFuZCBzaG91bGQgbm90IGJlIHNwbGl0IGluIHRoZSBtaWRkbGUg
dG8KKyAgIGJyZWFrIGxpbmVzIGZvciBkaXNwbGF5aW5nLCBldGMuCisKKyAgIFRoZSBKSVMgWCAw
MjA4IHN0YW5kYXJkIHdhcyByZXZpc2VkIGluIDE5OTAsIHRvIGFkZCB0d28gY2hhcmFjdGVycyBh
dAorICAgdGhlIGVuZCBvZiB0aGUgdGFibGUuIEFsdGhvdWdoIElTTyAyMDIyIHNwZWNpZmllcyBz
cGVjaWFsIGFkZGl0aW9uYWwKKyAgIGVzY2FwZSBzZXF1ZW5jZXMgdG8gaW5kaWNhdGUgdGhlIHVz
ZSBvZiByZXZpc2VkIGNoYXJhY3RlciBzZXRzLCBpdCBpcworICAgc3VnZ2VzdGVkIGhlcmUgbm90
IHRvIG1ha2UgdXNlIG9mIHRoaXMgc3BlY2lhbCBlc2NhcGUgc2VxdWVuY2UgaW4KKyAgIElTTy0y
MDIyLUpQIHRleHQsIGV2ZW4gaWYgdGhlIHR3byBjaGFyYWN0ZXJzIGFkZGVkIHRvIEpJUyBYIDAy
MDggaW4KKyAgIDE5OTAgYXJlIHVzZWQuCisKKyAgIEZvciBmdXJ0aGVyIGluZm9ybWF0aW9uIGFi
b3V0IEphcGFuZXNlIGNoYXJhY3RlciBlbmNvZGluZ3Mgc3VjaCBhcyBQQworICAgY29kZXMsIEZU
UCBsb2NhdGlvbnMgb2YgaW1wbGVtZW50YXRpb25zLCBldGMsIHNlZSAiRWxlY3Ryb25pYworICAg
SGFuZGxpbmcgb2YgSmFwYW5lc2UgVGV4dCIgW0pQTi5JTkZdLgorCitSZWZlcmVuY2VzCisKKyAg
IFtBU0NJSV0gQW1lcmljYW4gTmF0aW9uYWwgU3RhbmRhcmRzIEluc3RpdHV0ZSwgIkNvZGVkIGNo
YXJhY3RlciBzZXQKKyAgIC0tIDctYml0IEFtZXJpY2FuIG5hdGlvbmFsIHN0YW5kYXJkIGNvZGUg
Zm9yIGluZm9ybWF0aW9uCisgICBpbnRlcmNoYW5nZSIsIEFOU0kgWDMuNC0xOTg2LgorCisgICBb
SVNPNjQ2XSBJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IgU3RhbmRhcmRpemF0aW9uIChJ
U08pLAorICAgIkluZm9ybWF0aW9uIHRlY2hub2xvZ3kgLS0gSVNPIDctYml0IGNvZGVkIGNoYXJh
Y3RlciBzZXQgZm9yCisgICBpbmZvcm1hdGlvbiBpbnRlcmNoYW5nZSIsIEludGVybmF0aW9uYWwg
U3RhbmRhcmQsIFJlZi4gTm8uIElTTy9JRUMKKyAgIDY0NjoxOTkxLgorCisgICBbSVNPMjAyMl0g
SW50ZXJuYXRpb25hbCBPcmdhbml6YXRpb24gZm9yIFN0YW5kYXJkaXphdGlvbiAoSVNPKSwKKyAg
ICJJbmZvcm1hdGlvbiBwcm9jZXNzaW5nIC0tIElTTyA3LWJpdCBhbmQgOC1iaXQgY29kZWQgY2hh
cmFjdGVyIHNldHMKKworCisKK011cmFpLCBDcmlzcGluICYgdmFuIGRlciBQb2VsICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbUGFnZSA0XQorDAorUkZDIDE0NjggICBKYXBhbmVz
ZSBDaGFyYWN0ZXIgRW5jb2RpbmcgZm9yIEludGVybmV0IE1lc3NhZ2VzICAgSnVuZSAxOTkzCisK
KworICAgLS0gQ29kZSBleHRlbnNpb24gdGVjaG5pcXVlcyIsIEludGVybmF0aW9uYWwgU3RhbmRh
cmQsIFJlZi4gTm8uIElTTworICAgMjAyMi0xOTg2IChFKS4KKworICAgW0lTT1JFR10gSW50ZXJu
YXRpb25hbCBPcmdhbml6YXRpb24gZm9yIFN0YW5kYXJkaXphdGlvbiAoSVNPKSwKKyAgICJJbnRl
cm5hdGlvbmFsIFJlZ2lzdGVyIG9mIENvZGVkIENoYXJhY3RlciBTZXRzIFRvIEJlIFVzZWQgV2l0
aAorICAgRXNjYXBlIFNlcXVlbmNlcyIuCisKKyAgIFtKSVNYMDIwMV0gSmFwYW5lc2UgU3RhbmRh
cmRzIEFzc29jaWF0aW9uLCAiQ29kZSBmb3IgSW5mb3JtYXRpb24KKyAgIEludGVyY2hhbmdlIiwg
SklTIFggMDIwMS0xOTc2LgorCisgICBbSklTWDAyMDhdIEphcGFuZXNlIFN0YW5kYXJkcyBBc3Nv
Y2lhdGlvbiwgIkNvZGUgb2YgdGhlIEphcGFuZXNlCisgICBncmFwaGljIGNoYXJhY3RlciBzZXQg
Zm9yIGluZm9ybWF0aW9uIGludGVyY2hhbmdlIiwgSklTIFggMDIwOC0xOTc4LAorICAgLTE5ODMg
YW5kIC0xOTkwLgorCisgICBbSlBOLklORl0gS2VuIFIuIEx1bmRlIDxsdW5kZUBhZG9iZS5jb20+
LCAiRWxlY3Ryb25pYyBIYW5kbGluZyBvZgorICAgSmFwYW5lc2UgVGV4dCIsIE1hcmNoIDE5OTIs
CisgICBtc2kudW1uLmVkdSgxMjguMTAxLjI0LjEpOnB1Yi9sdW5kZS9qYXBhblsxMjNdLmluZgor
CisgICBbSlVORVRdIEpVTkVUIFJpeW91IE5vIFRlYmlraSBTYWt1c2VpIElpbiBLYWkgKEpVTkVU
IFVzZXIncyBHdWlkZQorICAgRHJhZnRpbmcgQ29tbWl0dGVlKSwgIkpVTkVUIFJpeW91IE5vIFRl
YmlraSAoRGFpIElwcGFuKSIgKCJKVU5FVAorICAgVXNlcidzIEd1aWRlIChGaXJzdCBFZGl0aW9u
KSIpLCBGZWJydWFyeSAxOTg4LgorCisgICBbTUlNRTFdIEJvcmVuc3RlaW4gTi4sIGFuZCBOLiBG
cmVlZCwgIk1JTUUgKE11bHRpcHVycG9zZQorICAgSW50ZXJuZXQgTWFpbCBFeHRlbnNpb25zKTog
TWVjaGFuaXNtcyBmb3IgU3BlY2lmeWluZyBhbmQKKyAgIERlc2NyaWJpbmcgdGhlIEZvcm1hdCBv
ZiBJbnRlcm5ldCBNZXNzYWdlIEJvZGllcyIsIFJGQyAxMzQxLAorICAgQmVsbGNvcmUsIElubm9z
b2Z0LCBKdW5lIDE5OTIuCisKKyAgIFtNSU1FMl0gTW9vcmUsIEsuLCAiUmVwcmVzZW50YXRpb24g
b2YgTm9uLUFTQ0lJIFRleHQgaW4gSW50ZXJuZXQKKyAgIE1lc3NhZ2UgSGVhZGVycyIsIFJGQyAx
MzQyLCBVbml2ZXJzaXR5IG9mIFRlbm5lc3NlZSwgSnVuZSAxOTkyLgorCisgICBbUkZDODIyXSBD
cm9ja2VyLCBELiwgIlN0YW5kYXJkIGZvciB0aGUgRm9ybWF0IG9mIEFSUEEgSW50ZXJuZXQKKyAg
IFRleHQgTWVzc2FnZXMiLCBTVEQgMTEsIFJGQyA4MjIsIFVERUwsIEF1Z3VzdCAxOTgyLgorCisg
ICBbUkZDMTAzNl0gSG9ydG9uIE0uLCBhbmQgUi4gQWRhbXMsICJTdGFuZGFyZCBmb3IgSW50ZXJj
aGFuZ2Ugb2YgVVNFTkVUCisgICBNZXNzYWdlcyIsIFJGQyAxMDM2LCBBVCZUIEJlbGwgTGFib3Jh
dG9yaWVzLCBDZW50ZXIgZm9yIFNlaXNtaWMKKyAgIFN0dWRpZXMsIERlY2VtYmVyIDE5ODcuCisK
K0Fja25vd2xlZGdlbWVudHMKKworICAgTWFueSBwZW9wbGUgYXNzaXN0ZWQgaW4gZHJhZnRpbmcg
dGhpcyBkb2N1bWVudC4gVGhlIGF1dGhvcnMgd2lzaCB0bworICAgdGhhbmsgaW4gcGFydGljdWxh
ciBBa2lyYSBLYXRvLCBNYXNhaGlybyBTZWtpZ3VjaGkgYW5kIEtlbidpY2hpCisgICBIYW5kYS4K
KworU2VjdXJpdHkgQ29uc2lkZXJhdGlvbnMKKworICAgU2VjdXJpdHkgaXNzdWVzIGFyZSBub3Qg
ZGlzY3Vzc2VkIGluIHRoaXMgbWVtby4KKworCisKKworCitNdXJhaSwgQ3Jpc3BpbiAmIHZhbiBk
ZXIgUG9lbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1BhZ2UgNV0KKwwKK1JG
QyAxNDY4ICAgSmFwYW5lc2UgQ2hhcmFjdGVyIEVuY29kaW5nIGZvciBJbnRlcm5ldCBNZXNzYWdl
cyAgIEp1bmUgMTk5MworCisKK0F1dGhvcnMnIEFkZHJlc3NlcworCisgICBKdW4gTXVyYWkKKyAg
IEtlaW8gVW5pdmVyc2l0eQorICAgNTMyMiBFbmRvLCBGdWppc2F3YQorICAgS2FuYWdhd2EgMjUy
IEphcGFuCisKKyAgIEZheDogKzgxIDQ2NiA0OSAxMTAxCisgICBFTWFpbDoganVuQHdpZGUuYWQu
anAKKworCisgICBNYXJrIENyaXNwaW4KKyAgIFBhbmRhIFByb2dyYW1taW5nCisgICA2MTU4IExh
cmlhdCBMb29wIE5FCisgICBCYWluYnJpZGdlIElzbGFuZCwgV0EgOTgxMTAtMjA5OAorICAgVVNB
CisKKyAgIFBob25lOiArMSAyMDYgODQyIDIzODUKKyAgIEVNYWlsOiBNUkNAUEFOREEuQ09NCisK
KworICAgRXJpayBNLiB2YW4gZGVyIFBvZWwKKyAgIEEtMTA1IFBhcmsgQXZlbnVlCisgICA0LTQt
MTAgT2h0YSwgS2lzYXJhenUKKyAgIENoaWJhIDI5MiBKYXBhbgorCisgICBQaG9uZTogKzgxIDQz
OCAyMiA1ODM2CisgICBGYXg6ICAgKzgxIDQzOCAyMiA1ODM3CisgICBFTWFpbDogZXJpa0Bwb2Vs
Lmp1aWNlLm9yLmpwCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisK
K011cmFpLCBDcmlzcGluICYgdmFuIGRlciBQb2VsICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbUGFnZSA2XQorDApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtdXJO
IGEycHMtNC4xMy5PUklHL2xpYmpjb2RlL0RvYy9yZmMxNTU0LnR4dCBhMnBzLTQuMTMvbGliamNv
ZGUvRG9jL3JmYzE1NTQudHh0Ci0tLSBhMnBzLTQuMTMuT1JJRy9saWJqY29kZS9Eb2MvcmZjMTU1
NC50eHQJMTk3MC0wMS0wMSAwOTowMDowMC4wMDAwMDAwMDAgKzA5MDAKKysrIGEycHMtNC4xMy9s
aWJqY29kZS9Eb2MvcmZjMTU1NC50eHQJMjAwMy0wOS0yNyAwNTo0NTowMi4wMDAwMDAwMDAgKzA5
MDAKQEAgLTAsMCArMSwzMzkgQEAKKworCisKKworCisKK05ldHdvcmsgV29ya2luZyBHcm91cCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTS4gT2h0YQorUmVxdWVz
dCBmb3IgQ29tbWVudHM6IDE1NTQgICAgICAgICAgICAgICAgIFRva3lvIEluc3RpdHV0ZSBvZiBU
ZWNobm9sb2d5CitDYXRlZ29yeTogSW5mb3JtYXRpb25hbCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSy4gSGFuZGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVUTAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNlbWJlciAx
OTkzCisKKworICAgICAgICAgIElTTy0yMDIyLUpQLTI6IE11bHRpbGluZ3VhbCBFeHRlbnNpb24g
b2YgSVNPLTIwMjItSlAKKworU3RhdHVzIG9mIHRoaXMgTWVtbworCisgICBUaGlzIG1lbW8gcHJv
dmlkZXMgaW5mb3JtYXRpb24gZm9yIHRoZSBJbnRlcm5ldCBjb21tdW5pdHkuICBUaGlzIG1lbW8K
KyAgIGRvZXMgbm90IHNwZWNpZnkgYW4gSW50ZXJuZXQgc3RhbmRhcmQgb2YgYW55IGtpbmQuICBE
aXN0cmlidXRpb24gb2YKKyAgIHRoaXMgbWVtbyBpcyB1bmxpbWl0ZWQuCisKK0ludHJvZHVjdGlv
bgorCisgICBUaGlzIG1lbW8gZGVzY3JpYmVzIGEgdGV4dCBlbmNvZGluZyBzY2hlbWU6ICJJU08t
MjAyMi1KUC0yIiwgd2hpY2ggaXMKKyAgIHVzZWQgZXhwZXJpbWVudGFsbHkgZm9yIGVsZWN0cm9u
aWMgbWFpbCBbUkZDODIyXSBhbmQgbmV0d29yayBuZXdzCisgICBbUkZDMTAzNl0gbWVzc2FnZXMg
aW4gc2V2ZXJhbCBKYXBhbmVzZSBuZXR3b3Jrcy4gIFRoZSBlbmNvZGluZyBpcyBhCisgICBtdWx0
aWxpbmd1YWwgZXh0ZW5zaW9uIG9mICJJU08tMjAyMi1KUCIsIHRoZSBleGlzdGluZyBlbmNvZGlu
ZyBmb3IKKyAgIEphcGFuZXNlIFsyMDIySlBdLiAgVGhlIGVuY29kaW5nIGlzIHN1cHBvcnRlZCBi
eSBhbiBFbWFjcyBiYXNlZAorICAgbXVsdGlsaW5ndWFsIHRleHQgZWRpdG9yOiBNVUxFIFtNVUxF
XS4KKworICAgVGhlIG5hbWUsICJJU08tMjAyMi1KUC0yIiwgaXMgaW50ZW5kZWQgdG8gYmUgdXNl
ZCBpbiB0aGUgImNoYXJzZXQiCisgICBwYXJhbWV0ZXIgZmllbGQgb2YgTUlNRSBoZWFkZXJzIChz
ZWUgW01JTUUxXSBhbmQgW01JTUUyXSkuCisKK0Rlc2NyaXB0aW9uCisKKyAgIFRoZSB0ZXh0IHdp
dGggIklTTy0yMDIyLUpQLTIiIHN0YXJ0cyBpbiBBU0NJSSBbQVNDSUldLCBhbmQgc3dpdGNoZXMK
KyAgIHRvIG90aGVyIGNoYXJhY3RlciBzZXRzIG9mIElTTyAyMDIyIFtJU08yMDIyXSB0aHJvdWdo
IGxpbWl0ZWQKKyAgIGNvbWJpbmF0aW9ucyBvZiBlc2NhcGUgc2VxdWVuY2VzLiAgQWxsIHRoZSBj
aGFyYWN0ZXJzIGFyZSBlbmNvZGVkCisgICB3aXRoIDcgYml0cyBvbmx5LgorCisgICBBdCB0aGUg
YmVnaW5uaW5nIG9mIHRleHQsIHRoZSBleGlzdGVuY2Ugb2YgYW4gYW5ub3VuY2VyIHNlcXVlbmNl
OgorICAgIkVTQyAyLzAgNC8xIEVTQyAyLzAgNC82IEVTQyAyLzAgNS8xMCIgaXMgKHRob3VnaCBv
bWl0dGVkKSBhc3N1bWVkLgorICAgVGh1cywgY2hhcmFjdGVycyBvZiA5NCBjaGFyYWN0ZXIgc2V0
cyBhcmUgZGVzaWduYXRlZCB0byBHMCBhbmQKKyAgIGludm9rZWQgYXMgR0wuICBDMSBjb250cm9s
IGNoYXJhY3RlcnMgYXJlIHJlcHJlc2VudGVkIHdpdGggNyBiaXRzLgorICAgQ2hhcmFjdGVycyBv
ZiA5NiBjaGFyYWN0ZXIgc2V0cyBhcmUgZGVzaWduYXRlZCB0byBHMiBhbmQgaW52b2tlZCB3aXRo
CisgICBTUzIgKHNpbmdsZSBzaGlmdCB0d28sICJFU0MgNC8xNCIgb3IgIkVTQyBOIikuCisKKyAg
IEZvciBleGFtcGxlLCB0aGUgZXNjYXBlIHNlcXVlbmNlICJFU0MgMi80IDIvOCA0LzMiIG9yICJF
U0MgJCAoIEMiCisgICBpbmRpY2F0ZXMgdGhhdCB0aGUgYnl0ZXMgZm9sbG93aW5nIHRoZSBlc2Nh
cGUgc2VxdWVuY2UgYXJlIEtvcmVhbiBLU0MKKyAgIGNoYXJhY3RlcnMsIHdoaWNoIGFyZSBlbmNv
ZGVkIGluIHR3byBieXRlcyBlYWNoLiAgVGhlIGVzY2FwZSBzZXF1ZW5jZQorICAgIkVTQyAyLzE0
IDQvMSIgb3IgIkVTQyAuIEEiIGluZGljYXRlcyB0aGF0IElTTyA4ODU5LTEgaXMgZGVzaWduYXRl
ZAorICAgdG8gRzIuIEFmdGVyIHRoZSBkZXNpZ25hdGlvbiwgdGhlIHNpbmdsZSBzaGlmdGVkIHNl
cXVlbmNlICJFU0MgNC8xNAorICAgNC8xIiBvciAiRVNDIE4gQSIgaXMgaW50ZXJwcmV0ZWQgdG8g
cmVwcmVzZW50IGEgY2hhcmFjdGVyICJBIHdpdGgKKyAgIGFjdXRlIi4KKworCisKK09odGEgJiBI
YW5kYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
UGFnZSAxXQorDAorUkZDIDE1NTQgICAgICAgICBNdWx0aWxpbmd1YWwgRXh0ZW5zaW9uIG9mIElT
Ty0yMDIyLUpQICAgICBEZWNlbWJlciAxOTkzCisKKworICAgVGhlIGZvbGxvd2luZyB0YWJsZSBn
aXZlcyB0aGUgZXNjYXBlIHNlcXVlbmNlcyBhbmQgdGhlIGNoYXJhY3RlciBzZXRzCisgICB1c2Vk
IGluICJJU08tMjAyMi1KUC0yIiBtZXNzYWdlcy4gVGhlIHJlZyMgaXMgdGhlIHJlZ2lzdHJhdGlv
biBudW1iZXIKKyAgIGluIElTTydzIHJlZ2lzdHJ5IFtJU09SRUddLgorCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA5NCBjaGFyYWN0ZXIgc2V0cworICAgICAgcmVnIyAgY2hhcmFjdGVy
IHNldCAgICAgIEVTQyBzZXF1ZW5jZSAgICAgICAgICAgICAgICBkZXNpZ25hdGVkIHRvCisgICAg
ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyAgICAgIDYgICAgIEFTQ0lJICAgICAgICAgICAgICBFU0MgMi84IDQvMiAg
ICAgIEVTQyAoIEIgICAgRzAKKyAgICAgIDQyICAgIEpJUyBYIDAyMDgtMTk3OCAgICBFU0MgMi80
IDQvMCAgICAgIEVTQyAkIEAgICAgRzAKKyAgICAgIDg3ICAgIEpJUyBYIDAyMDgtMTk4MyAgICBF
U0MgMi80IDQvMiAgICAgIEVTQyAkIEIgICAgRzAKKyAgICAgIDE0ICAgIEpJUyBYIDAyMDEtUm9t
YW4gICBFU0MgMi84IDQvMTAgICAgIEVTQyAoIEogICAgRzAKKyAgICAgIDU4ICAgIEdCMjMxMi0x
OTgwICAgICAgICBFU0MgMi80IDQvMSAgICAgIEVTQyAkIEEgICAgRzAKKyAgICAgIDE0OSAgIEtT
QzU2MDEtMTk4NyAgICAgICBFU0MgMi80IDIvOCA0LzMgIEVTQyAkICggQyAgRzAKKyAgICAgIDE1
OSAgIEpJUyBYIDAyMTItMTk5MCAgICBFU0MgMi80IDIvOCA0LzQgIEVTQyAkICggRCAgRzAKKwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTYgY2hhcmFjdGVyIHNldHMKKyAgICAgIHJl
ZyMgIGNoYXJhY3RlciBzZXQgICAgICBFU0Mgc2VxdWVuY2UgICAgICAgICAgICAgICAgZGVzaWdu
YXRlZCB0bworICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAxMDAgICBJU084ODU5LTEgICAgICAgICAg
RVNDIDIvMTQgNC8xICAgICBFU0MgLiBBICAgIEcyCisgICAgICAxMjYgICBJU084ODU5LTcoR3Jl
ZWspICAgRVNDIDIvMTQgNC82ICAgICBFU0MgLiBGICAgIEcyCisKKyAgIEZvciBmdXJ0aGVyIGlu
Zm9ybWF0aW9uIGFib3V0IHRoZSBjaGFyYWN0ZXIgc2V0cyBhbmQgdGhlIGVzY2FwZQorICAgc2Vx
dWVuY2VzLCBzZWUgW0lTTzIwMjJdIGFuZCBbSVNPUkVHXS4KKworICAgSWYgdGhlcmUgaXMgYW55
IEcwIGRlc2lnbmF0aW9uIGluIHRleHQsIHRoZXJlIG11c3QgYmUgYSBzd2l0Y2ggdG8KKyAgIEFT
Q0lJIG9yIHRvIEpJUyBYIDAyMDEtUm9tYW4gYmVmb3JlIGEgc3BhY2UgY2hhcmFjdGVyIChidXQg
bm90CisgICBuZWNlc3NhcmlseSBiZWZvcmUgIkVTQyA0LzE0IDIvMCIgb3IgIkVTQyBOICcgJyIp
IG9yIGNvbnRyb2wKKyAgIGNoYXJhY3RlcnMgc3VjaCBhcyB0YWIgb3IgQ1JMRi4gIFRoaXMgbWVh
bnMgdGhhdCB0aGUgbmV4dCBsaW5lIHN0YXJ0cworICAgaW4gdGhlIGNoYXJhY3RlciBzZXQgdGhh
dCB3YXMgc3dpdGNoZWQgdG8gYmVmb3JlIHRoZSBlbmQgb2YgdGhlCisgICBwcmV2aW91cyBsaW5l
LiAgVGhvdWdoIHRoZSBkZXNpZ25hdGlvbiB0byBKSVMgWCAwMjAxLVJvbWFuIGlzIGFsbG93ZWQK
KyAgIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHRvICJJU08tMjAyMi1KUCIsIGl0cyB1c2Ug
aXMgZGlzY291cmFnZWQuCisgICBBcHBsaWNhdGlvbnMgc3VjaCBhcyBwYWdlcnMgYW5kIGVkaXRv
cnMgd2hpY2ggcmFuZG9tbHkgc2VlayB3aXRoaW4gYQorICAgdGV4dCBmaWxlIGVuY29kZWQgd2l0
aCAiSVNPLTIwMjItSlAtMiIgbWF5IGFzc3VtZSB0aGF0IGFsbCB0aGUgbGluZXMKKyAgIGJlZ2lu
IHdpdGggQVNDSUksIG5vdCB3aXRoIEpJUyBYIDAyMDEtUm9tYW4uCisKKyAgIEF0IHRoZSBiZWdp
bm5pbmcgb2YgYSBsaW5lLCBpbmZvcm1hdGlvbiBvbiBHMiBkZXNpZ25hdGlvbiBvZiB0aGUKKyAg
IHByZXZpb3VzIGxpbmUgaXMgY2xlYXJlZC4gIE5ldyBkZXNpZ25hdGlvbiBtdXN0IGJlIGdpdmVu
IGJlZm9yZSBhCisgICBjaGFyYWN0ZXIgaW4gOTYgY2hhcmFjdGVyIHNldHMgaXMgdXNlZCBpbiB0
aGUgbGluZS4KKworICAgVGhlIHRleHQgbXVzdCBlbmQgaW4gQVNDSUkgZGVzaWduYXRlZCB0byBH
MC4KKworICAgQXMgdGhlICJJU08tMjAyMi1KUCIsIGFuZCB0aHVzLCAiSVNPLTIwMjItSlAtMiIs
IGlzIGRlc2lnbmVkIHRvCisgICByZXByZXNlbnQgRW5nbGlzaCBhbmQgbW9kZXJuIEphcGFuZXNl
LCBsZWZ0LXRvLXJpZ2h0IGRpcmVjdGlvbmFsaXR5CisgICBpcyBhc3N1bWVkIGlmIHRoZSB0ZXh0
IGlzIGRpc3BsYXllZCBob3Jpem9udGFsbHkuCisKKyAgIFVzZXJzIG9mICJJU08tMjAyMi1KUC0y
IiBtdXN0IGJlIGF3YXJlIHRoYXQgc29tZSBjb21tb24gdHJhbnNwb3J0CisgICBzdWNoIGFzIG9s
ZCBCbmV3cyBjYW4gbm90IHJlbGF5IGEgNy1iaXQgdmFsdWUgNy8xNSAoZGVjaW1hbCAxMjcpLAor
ICAgd2hpY2ggaXMgdXNlZCB0byBlbmNvZGUsIHNheSwgInkgd2l0aCBkaWFlcmVzaXMiIG9mIElT
TyA4ODU5LTEuCisKKworCitPaHRhICYgSGFuZGEgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW1BhZ2UgMl0KKwwKK1JGQyAxNTU0ICAgICAgICAgTXVs
dGlsaW5ndWFsIEV4dGVuc2lvbiBvZiBJU08tMjAyMi1KUCAgICAgRGVjZW1iZXIgMTk5MworCisK
KyAgIE90aGVyIHJlc3RyaWN0aW9ucyBhcmUgZ2l2ZW4gaW4gdGhlIEZvcm1hbCBTeW50YXggc2Vj
dGlvbiBiZWxvdy4KKworRm9ybWFsIFN5bnRheAorCisgICBUaGUgbm90YXRpb25hbCBjb252ZW50
aW9ucyB1c2VkIGhlcmUgYXJlIGlkZW50aWNhbCB0byB0aG9zZSB1c2VkIGluCisgICBTVEQgMTEs
IFJGQyA4MjIgW1JGQzgyMl0uCisKKyAgIFRoZSAqIChhc3RlcmlzaykgY29udmVudGlvbiBpcyBh
cyBmb2xsb3dzOgorCisgICAgICBsKm0gc29tZXRoaW5nCisKKyAgIG1lYW5pbmcgYXQgbGVhc3Qg
bCBhbmQgYXQgbW9zdCBtIHNvbWV0aGluZ3MsIHdpdGggbCBhbmQgbSB0YWtpbmcKKyAgIGRlZmF1
bHQgdmFsdWVzIG9mIDAgYW5kIGluZmluaXR5LCByZXNwZWN0aXZlbHkuCisKKyAgIG1lc3NhZ2Ug
ICAgICAgICAgICAgPSBoZWFkZXJzIDEqKENSTEYgdGV4dCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDsgc2VlIGFsc28gW01JTUUxXSAiYm9keS1wYXJ0IgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBub3RlOiBtdXN0IGVuZCBp
biBBU0NJSQorCisgICB0ZXh0ICAgICAgICAgICAgICAgID0gKihzaW5nbGUtYnl0ZS1jaGFyIC8K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGcyLWRlc2lnLXNlcSAvCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaW5nbGUtc2hpZnQtY2hhcikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgWypzZWdtZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldC1zZXEKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICooc2luZ2xlLWJ5dGUtY2hhciAvCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGcyLWRlc2lnLXNlcSAvCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpbmdsZS1zaGlmdC1jaGFyICkgXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOyBub3RlOiBnMi1kZXNpZy1zZXEgbXVzdAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVjZWRlIHNpbmdsZS1zaGlmdC1jaGFyCisKKyAg
IGhlYWRlcnMgICAgICAgICAgICAgPSA8c2VlIFtSRkM4MjJdICJmaWVsZHMiIGFuZCBbTUlNRTFd
ICJib2R5LXBhcnQiPgorCisgICBzZWdtZW50ICAgICAgICAgICAgID0gc2luZ2xlLWJ5dGUtc2Vn
bWVudCAvIGRvdWJsZS1ieXRlLXNlZ21lbnQKKworICAgc2luZ2xlLWJ5dGUtc2VnbWVudCA9IHNp
bmdsZS1ieXRlLXNlcQorICAgICAgICAgICAgICAgICAgICAgICAgICooc2luZ2xlLWJ5dGUtY2hh
ciAvCisgICAgICAgICAgICAgICAgICAgICAgICAgICBnMi1kZXNpZy1zZXEgLworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2luZ2xlLXNoaWZ0LWNoYXIgKQorCisgICBkb3VibGUtYnl0ZS1z
ZWdtZW50ID0gZG91YmxlLWJ5dGUtc2VxCisgICAgICAgICAgICAgICAgICAgICAgICAgKigob25l
LW9mLTk0IG9uZS1vZi05NCkgLworICAgICAgICAgICAgICAgICAgICAgICAgICAgZzItZGVzaWct
c2VxIC8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbmdsZS1zaGlmdC1jaGFyICkKKwor
ICAgcmVzZXQtc2VxICAgICAgICAgICA9IEVTQyAiKCIgKCAiQiIgLyAiSiIgKQorCisgICBzaW5n
bGUtYnl0ZS1zZXEgICAgID0gRVNDICIoIiAoICJCIiAvICJKIiApCisKKyAgIGRvdWJsZS1ieXRl
LXNlcSAgICAgPSAoRVNDICIkIiAoICJAIiAvICJBIiAvICJCIiApKSAvCisKKworCitPaHRhICYg
SGFuZGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W1BhZ2UgM10KKwwKK1JGQyAxNTU0ICAgICAgICAgTXVsdGlsaW5ndWFsIEV4dGVuc2lvbiBvZiBJ
U08tMjAyMi1KUCAgICAgRGVjZW1iZXIgMTk5MworCisKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAoRVNDICIkIiAiKCIgKCAiQyIgLyAiRCIgKSkKKworICAgZzItZGVzaWctc2VxICAgICAgICA9
IEVTQyAiLiIgKCAiQSIgLyAiRiIgKQorCisgICBzaW5nbGUtc2hpZnQtc2VxICAgID0gRVNDICJO
IgorCisgICBzaW5nbGUtc2hpZnQtY2hhciAgID0gc2luZ2xlLXNoaWZ0LXNlcSBvbmUtb2YtOTYK
KworICAgQ1JMRiAgICAgICAgICAgICAgICA9IENSIExGCisKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7ICggT2N0YWwsIERlY2ltYWwuKQorCisg
ICBFU0MgICAgICAgICAgICAgICAgID0gPElTTyAyMDIyIEVTQywgZXNjYXBlPiAgICAgOyAoICAg
IDMzLCAgICAgIDI3LikKKworICAgU0kgICAgICAgICAgICAgICAgICA9IDxJU08gMjAyMiBTSSwg
c2hpZnQtaW4+ICAgIDsgKCAgICAxNywgICAgICAxNS4pCisKKyAgIFNPICAgICAgICAgICAgICAg
ICAgPSA8SVNPIDIwMjIgU08sIHNoaWZ0LW91dD4gICA7ICggICAgMTYsICAgICAgMTQuKQorCisg
ICBDUiAgICAgICAgICAgICAgICAgID0gPEFTQ0lJIENSLCBjYXJyaWFnZSByZXR1cm4+OyAoICAg
IDE1LCAgICAgIDEzLikKKworICAgTEYgICAgICAgICAgICAgICAgICA9IDxBU0NJSSBMRiwgbGlu
ZWZlZWQ+ICAgICAgIDsgKCAgICAxMiwgICAgICAxMC4pCisKKyAgIG9uZS1vZi05NCAgICAgICAg
ICAgPSA8YW55IG9uZSBvZiA5NCB2YWx1ZXM+ICAgICA7ICg0MS0xNzYsIDMzLi0xMjYuKQorCisg
ICBvbmUtb2YtOTYgICAgICAgICAgID0gPGFueSBvbmUgb2YgOTYgdmFsdWVzPiAgICAgOyAoNDAt
MTc3LCAzMi4tMTI3LikKKworICAgN0JJVCAgICAgICAgICAgICAgICA9IDxhbnkgNy1iaXQgdmFs
dWU+ICAgICAgICAgIDsgKCAwLTE3NywgIDAuLTEyNy4pCisKKyAgIHNpbmdsZS1ieXRlLWNoYXIg
ICAgPSA8YW55IDdCSVQsIGluY2x1ZGluZyBiYXJlIENSICYgYmFyZSBMRiwgYnV0IE5PVAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRpbmcgQ1JMRiwgYW5kIG5vdCBpbmNsdWRpbmcg
RVNDLCBTSSwgU08+CisKK01JTUUgQ29uc2lkZXJhdGlvbnMKKworICAgVGhlIG5hbWUgZ2l2ZW4g
dG8gdGhlIGNoYXJhY3RlciBlbmNvZGluZyBpcyAiSVNPLTIwMjItSlAtMiIuIFRoaXMKKyAgIG5h
bWUgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBpbiBNSU1FIG1lc3NhZ2VzIGFzIGZvbGxvd3M6CisK
KyAgICAgIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tMjAyMi1qcC0yCisK
KyAgIFRoZSAiSVNPLTIwMjItSlAtMiIgZW5jb2RpbmcgaXMgYWxyZWFkeSBpbiA3LWJpdCBmb3Jt
LCBzbyBpdCBpcyBub3QKKyAgIG5lY2Vzc2FyeSB0byB1c2UgYSBDb250ZW50LVRyYW5zZmVyLUVu
Y29kaW5nIGhlYWRlci4gSXQgc2hvdWxkIGJlCisgICBub3RlZCB0aGF0IGFwcGx5aW5nIHRoZSBC
YXNlNjQgb3IgUXVvdGVkLVByaW50YWJsZSBlbmNvZGluZyB3aWxsCisgICByZW5kZXIgdGhlIG1l
c3NhZ2UgdW5yZWFkYWJsZSBpbiBub24tTUlNRS1jb21wbGlhbnQgc29mdHdhcmUuCisKKyAgICJJ
U08tMjAyMi1KUC0yIiBtYXkgYWxzbyBiZSB1c2VkIGluIE1JTUUgaGVhZGVycy4gIEJvdGggIkIi
IGFuZCAiUSIKKyAgIGVuY29kaW5nIGNvdWxkIGJlIHVzZWZ1bCB3aXRoICJJU08tMjAyMi1KUC0y
IiB0ZXh0LgorCisKKworCisKKworT2h0YSAmIEhhbmRhICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtQYWdlIDRdCisMCitSRkMgMTU1NCAgICAgICAg
IE11bHRpbGluZ3VhbCBFeHRlbnNpb24gb2YgSVNPLTIwMjItSlAgICAgIERlY2VtYmVyIDE5OTMK
KworCitSZWZlcmVuY2VzCisKKyAgIFtBU0NJSV0gQW1lcmljYW4gTmF0aW9uYWwgU3RhbmRhcmRz
IEluc3RpdHV0ZSwgIkNvZGVkIGNoYXJhY3RlciBzZXQKKyAgICAgICAgICAgLS0gNy1iaXQgQW1l
cmljYW4gbmF0aW9uYWwgc3RhbmRhcmQgY29kZSBmb3IgaW5mb3JtYXRpb24KKyAgICAgICAgICAg
aW50ZXJjaGFuZ2UiLCBBTlNJIFgzLjQtMTk4Ni4KKworCisgICBbSVNPMjAyMl0gSW50ZXJuYXRp
b25hbCBPcmdhbml6YXRpb24gZm9yIFN0YW5kYXJkaXphdGlvbiAoSVNPKSwKKyAgICAgICAgICAg
ICAiSW5mb3JtYXRpb24gcHJvY2Vzc2luZyAtLSBJU08gNy1iaXQgYW5kIDgtYml0IGNvZGVkCisg
ICAgICAgICAgICAgY2hhcmFjdGVyIHNldHMgLS0gQ29kZSBleHRlbnNpb24gdGVjaG5pcXVlcyIs
CisgICAgICAgICAgICAgSW50ZXJuYXRpb25hbCBTdGFuZGFyZCwgUmVmLiBOby4gSVNPIDIwMjIt
MTk4NiAoRSkuCisKKyAgIFtJU09SRUddIEludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBT
dGFuZGFyZGl6YXRpb24gKElTTyksCisgICAgICAgICAgICAiSW50ZXJuYXRpb25hbCBSZWdpc3Rl
ciBvZiBDb2RlZCBDaGFyYWN0ZXIgU2V0cyBUbyBCZSBVc2VkCisgICAgICAgICAgICBXaXRoIEVz
Y2FwZSBTZXF1ZW5jZXMiLgorCisgICBbTUlNRTFdIEJvcmVuc3RlaW4sIE4uLCBhbmQgTi4gRnJl
ZWQsICJNSU1FICAoTXVsdGlwdXJwb3NlIEludGVybmV0CisgICAgICAgICAgIE1haWwgRXh0ZW5z
aW9ucykgUGFydCBPbmU6IE1lY2hhbmlzbXMgZm9yIFNwZWNpZnlpbmcgYW5kCisgICAgICAgICAg
IERlc2NyaWJpbmcgdGhlIEZvcm1hdCBvZiBJbnRlcm5ldCBNZXNzYWdlIEJvZGllcyIsIFJGQyAx
NTIxLAorICAgICAgICAgICBTZXB0ZW1iZXIgMTk5My4KKworICAgW01JTUUyXSBNb29yZSwgSy4s
ICJNSU1FIChNdWx0aXB1cnBvc2UgSW50ZXJuZXQgTWFpbCBFeHRlbnNpb25zKSBQYXJ0CisgICAg
ICAgICAgIFR3bzogTWVzc2FnZSBIZWFkZXIgRXh0ZW5zaW9ucyBmb3IgTm9uLUFTQ0lJIFRleHQi
LCBSRkMgMTUyMiwKKyAgICAgICAgICAgU2VwdGVtYmVyIDE5OTMuCisKKyAgIFtSRkM4MjJdIENy
b2NrZXIsIEQuLCAiU3RhbmRhcmQgZm9yIHRoZSBGb3JtYXQgb2YgQVJQQSBJbnRlcm5ldCBUZXh0
CisgICAgICAgICAgICBNZXNzYWdlcyIsIFNURCAxMSwgUkZDIDE1MjIsIFVERUwsIEF1Z3VzdCAx
OTgyLgorCisgICBbUkZDMTAzNl0gSG9ydG9uIE0uLCBhbmQgUi4gQWRhbXMsICJTdGFuZGFyZCBm
b3IgSW50ZXJjaGFuZ2Ugb2YKKyAgICAgICAgICAgICBVU0VORVQgTWVzc2FnZXMiLCBSRkMgMTAz
NiwgQVQmVCBCZWxsIExhYm9yYXRvcmllcywgQ2VudGVyCisgICAgICAgICAgICAgZm9yIFNlaXNt
aWMgU3R1ZGllcywgRGVjZW1iZXIgMTk4Ny4KKworICAgWzIwMjJKUF0gTXVyYWksIEouLCBDcmlz
cGluLCBNLiwgYW5kIEUuIHZhbiBkZXIgUG9lbCwgIkphcGFuZXNlCisgICAgICAgICAgICBDaGFy
YWN0ZXIgRW5jb2RpbmcgZm9yIEludGVybmV0IE1lc3NhZ2VzIiwgUkZDIDE0NjgsIEp1bmUKKyAg
ICAgICAgICAgIDE5OTMuCisKKyAgIFtNVUxFXSBOaXNoaWtpbWksIE0uLCBIYW5kYSwgSy4sIGFu
ZCBTLiBUb211cmEsICJNdWxlOiBNVUx0aWxpbmd1YWwKKyAgICAgICAgICBFbmhhbmNlbWVudCB0
byBHTlUgRW1hY3MiLCBQcm9jLiBvZiBJTkVUJzkzLCBBdWd1c3QsIDE5OTMuCisKK0Fja25vd2xl
ZGdlbWVudHMKKworICAgVGhpcyBtZW1vIGlzIHRoZSByZXN1bHQgb2YgZGlzY3Vzc2lvbiBiZXR3
ZWVuIHZhcmlvdXMgcGVvcGxlIGluIGEKKyAgIG5ld3MgZ3JvdXA6IGZqLmthbmppIGFuZCBpcyBy
ZXZpZXdlZCBieSBhIG1haWxpbmcgbGlzdDoganAtbXNnCisgICBAaWlqLmFkLmpwLiAgVGhlIEF1
dGhvcnMgd2lzaCB0byB0aGFuayBpbiBwYXJ0aWN1bGFyIFByb2YuIEVpaWNoaQorICAgV2FkYSBm
b3IgaGlzIHN1Z2dlc3Rpb25zIGJhc2VkIG9uIHByb2ZvdW5kIGtub3dsZWRnZSBpbiBJU08gMjAy
MiBhbmQKKyAgIHJlbGF0ZWQgc3RhbmRhcmRzLgorCisKKworCisKK09odGEgJiBIYW5kYSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbUGFnZSA1XQor
DAorUkZDIDE1NTQgICAgICAgICBNdWx0aWxpbmd1YWwgRXh0ZW5zaW9uIG9mIElTTy0yMDIyLUpQ
ICAgICBEZWNlbWJlciAxOTkzCisKKworU2VjdXJpdHkgQ29uc2lkZXJhdGlvbnMKKworICAgU2Vj
dXJpdHkgaXNzdWVzIGFyZSBub3QgZGlzY3Vzc2VkIGluIHRoaXMgbWVtby4KKworQXV0aG9ycycg
QWRkcmVzc2VzCisKKyAgIE1hc2F0YWthIE9odGEKKyAgIFRva3lvIEluc3RpdHV0ZSBvZiBUZWNo
bm9sb2d5CisgICAyLTEyLTEsIE8tb2theWFtYSwgTWVndXJvLWt1LAorICAgVG9reW8gMTUyLCBK
QVBBTgorCisgICBQaG9uZTogKzgxLTMtNTQ5OS03MDg0CisgICBGYXg6ICs4MS0zLTM3MjktMTk0
MAorICAgRU1haWw6IG1vaHRhQGNjLnRpdGVjaC5hYy5qcAorCisKKyAgIEtlbidpY2hpIEhhbmRh
CisgICBFbGVjdHJvdGVjaG5pY2FsIExhYm9yYXRvcnkKKyAgIFVtZXpvbm8gMS0xLTQsIFRzdWt1
YmEsCisgICBJYmFyYWtpIDMwNSwgSkFQQU4KKworICAgUGhvbmU6ICs4MS0yOTgtNTgtNTkxNgor
ICAgRmF4OiArODEtMjk4LTU4LTU5MTgKKyAgIEVNYWlsOiBoYW5kYUBldGwuZ28uanAKKworCisK
KworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKK09odGEgJiBI
YW5kYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
UGFnZSA2XQorDApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtdXJOIGEycHMtNC4x
My5PUklHL2xpYmpjb2RlL01ha2VmaWxlLmluIGEycHMtNC4xMy9saWJqY29kZS9NYWtlZmlsZS5p
bgotLS0gYTJwcy00LjEzLk9SSUcvbGliamNvZGUvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwOTow
MDowMC4wMDAwMDAwMDAgKzA5MDAKKysrIGEycHMtNC4xMy9saWJqY29kZS9NYWtlZmlsZS5pbgky
MDAzLTA5LTI3IDA1OjQ1OjAyLjAwMDAwMDAwMCArMDkwMApAQCAtMCwwICsxLDEwMCBAQAorIyBN
YWtlZmlsZSBmb3IgZGlyZWN0b3J5IHdpdGggbGlicmFyeSBqY29kZQorIyBieSBLdXJhbWl0c3Ug
S2ltaW8KKworUEFDS0FHRSA9IEBQQUNLQUdFQAorVkVSU0lPTiA9IEBWRVJTSU9OQAorCitTSEVM
TCA9IC9iaW4vc2gKKworc3JjZGlyID0gQHNyY2RpckAKK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2Rp
ckAKK3RvcF9idWlsZGRpciA9IC4uCitWUEFUSCA9IEBzcmNkaXJACisKK3ByZWZpeCA9IEBwcmVm
aXhACitleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKK3RyYW5zZm9ybSA9IEBwcm9ncmFtX3Ry
YW5zZm9ybV9uYW1lQAorbGliZGlyID0gJChleGVjX3ByZWZpeCkvbGliCitpbmNsdWRlZGlyID0g
JChwcmVmaXgpL2luY2x1ZGUKK2RhdGFkaXIgPSAkKHByZWZpeCkvQERBVEFESVJOQU1FQAorc3Vi
ZGlyID0gbGliamNvZGUKKworSU5TVEFMTCA9IEBJTlNUQUxMQAorSU5TVEFMTF9EQVRBID0gQElO
U1RBTExfREFUQUAKK01LSU5TVEFMTERJUlMgPSBATUtJTlNUQUxMRElSU0AKKworQVIgPSBhcgor
Q0MgPSBAQ0NACitMSUJUT09MID0gQExJQlRPT0xACitSQU5MSUIgPSBAUkFOTElCQAorCitERUZT
ID0gLURMT0NBTEVESVI9XCIkKGxvY2FsZWRpcilcIiAtREdOVUxPQ0FMRURJUj1cIiQoZ251bG9j
YWxlZGlyKVwiIFwKKy1ETE9DQUxFX0FMSUFTX1BBVEg9XCIkKGFsaWFzcGF0aClcIiBAREVGU0AK
K0NQUEZMQUdTID0gQENQUEZMQUdTQAorQ0ZMQUdTID0gQENGTEFHU0AKK0xERkxBR1MgPSBATERG
TEFHU0AKKworQ09NUElMRSA9ICQoQ0MpIC1jICQoREVGUykgJChJTkNMVURFUykgJChDUFBGTEFH
UykgJChDRkxBR1MpICQoWENGTEFHUykKKworSEVBREVSUyA9ICQoQ09NSERSUykKK0NPTUhEUlMg
PSBqbGliLmgKK1NPVVJDRVMgPSAkKENPTVNSQ1MpCitDT01TUkNTID0gZGV0ZWN0LmMgbGliamNv
ZGUuYworT0JKRUNUUyA9IGRldGVjdC4kbG8gbGliamNvZGUuJGxvCitESVNURklMRVMuY29tbW9u
ID0gUkVBRE1FCitESVNURklMRVMubm9ybWFsID0gVkVSU0lPTgorCisuU1VGRklYRVM6CisuU1VG
RklYRVM6IC5jIC5vIC5sbworLmMubzoKKwkkKENPTVBJTEUpICQ8CisuYy5sbzoKKwkkKExJQlRP
T0wpIC0tbW9kZT1jb21waWxlICQoQ09NUElMRSkgJDwKKworSU5DTFVERVMgPSAtSS4gLUkkKHRv
cF9zcmNkaXIpLworCithbGw6IGFsbC1AQ09NUElMRV9MSUJKQ09ERUAKKworYWxsLXllczogbGli
amNvZGUuJGxhCithbGwtbm86CisKK2xpYmpjb2RlLmE6ICQoT0JKRUNUUykKKwlybSAtZiAkQAor
CSQoQVIpIGNydSAkQCAkKE9CSkVDVFMpCisJJChSQU5MSUIpICRACisKK2xpYmpjb2RlLmxhOiAk
KE9CSkVDVFMpCisJJChMSUJUT09MKSAtLW1vZGU9bGluayAkKENDKSAkKExERkxBR1MpIC1vICRA
ICQoT0JKRUNUUykgXAorCQkgICAtdmVyc2lvbi1pbmZvIDE6MCAtcnBhdGggJChsaWJkaXIpCisK
K2NoZWNrOiBhbGwKKworaW5zdGFsbDogaW5zdGFsbC1leGVjIGluc3RhbGwtZGF0YQoraW5zdGFs
bC1leGVjOiBhbGwKKworaW5zdGFsbC1kYXRhOiBhbGwKKworIyBEZWZpbmUgdGhpcyBhcyBlbXB0
eSB1bnRpbCBJIGZvdW5kIGEgdXNlZnVsIGFwcGxpY2F0aW9uLgoraW5zdGFsbGNoZWNrOgorCit1
bmluc3RhbGw6CisKK2luZm8gZHZpOgorCiskKE9CSkVDVFMpOiBqbGliY29uZmlnLmggamxpYi5o
CisKK21vc3RseWNsZWFuOgorCXJtIC1mICouYSAqLm8gKi5sbyBjb3JlIGNvcmUuKgorCitjbGVh
bjogbW9zdGx5Y2xlYW4KKworZGlzdGNsZWFuOiBjbGVhbgorCXJtIC1mIE1ha2VmaWxlIElEIFRB
R1MgcG8ybXNnLnNlZCBwbzJ0Ymwuc2VkCisKK21haW50YWluZXItY2xlYW46IGRpc3RjbGVhbgor
CUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZTsi
CisJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xz
IHRvIHJlYnVpbGQuIgorCitNYWtlZmlsZTogTWFrZWZpbGUuaW4gLi4vY29uZmlnLnN0YXR1cwor
CWNkIC4uIFwKKwkgICYmIENPTkZJR19GSUxFUz0kKHN1YmRpcikvJEAgQ09ORklHX0hFQURFUlM9
ICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cwpkaWZmIC11ck4gYTJwcy00LjEzLk9SSUcvbGliamNv
ZGUvUkVBRE1FIGEycHMtNC4xMy9saWJqY29kZS9SRUFETUUKLS0tIGEycHMtNC4xMy5PUklHL2xp
Ympjb2RlL1JFQURNRQkxOTcwLTAxLTAxIDA5OjAwOjAwLjAwMDAwMDAwMCArMDkwMAorKysgYTJw
cy00LjEzL2xpYmpjb2RlL1JFQURNRQkyMDAzLTA5LTI3IDA1OjQ1OjAyLjAwMDAwMDAwMCArMDkw
MApAQCAtMCwwICsxLDE1OCBAQAorbGliamNvZGUgpemlpKXWpeml6qXRpcOlsaG8pbgJMS4wMCDI
xy8gMTk5NgorCiuktMK4w86kzsTMpOqhosb8y9y47KTyyb2kuaS/pOGkzsq4u/qls6G8pcmkz6Gi
SklTKElTTy0yMDIyKaGiRVVDoaJTSklTICCkzgoro7O8787gpKyk6KSvu8ik76TspMakpKTepLmh
o6SzpOykz6GipdGlvaWzpfO01qTHU0pJU6TOyri+z6TypOSk6rzopOqkuaTru/4KK6TPoaKyv6TL
pOLM5MLqpM6kyqSkz8Okx6S3pL+ho6S3pKukt6GiV1dXIKTOpOikpqTKpaSl86W/obylzaXDpci7
/sLlpMukyqTrCiukyKGizc2huaTKyri7+qWzobylyaSsuq6636S3pMakt6TepKShosLnpK2kyrqu
zfCk8r63pK+367LMpMukyqTqpN6kuaGjCisKK6S9pPOkysPmpMfCv6SvpM6l16XtpbCl6aXeobyk
rMb8y9y47KWzobylyb3ozf2kzsjRu6iktaTO5quky7TZpOmkyqSvpMa60aTgCiuk6KSmpMuk3qTI
pOGkv6TOpKyhoqSzpM4gQ7jAuOzN0aTOIGxpYmpjb2RlIKXppaSl1qXppeqkx6S5oaMKKworLS0g
bGliamNvZGUgpdGlw6WxobyluKTOxsPEpyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworIDEuIKWkpfOlv6G8pc2lw6XIpMekzs34zdGk8sGwxPOkyKS3
pL/G/MvcuOyls6G8pcnK0bS5pemlpKXWpeml6gorIDIuIFNKSVMgyL6z0aWrpcqk8sG0s9Gky8rR
tLmyxMe9CisKKy0tIKXRpcOlsaG8pbikzsPmv8ggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKwkvCisJUkVBRE1FCQmks6TOpdWloaWk
pesKKwlNYWtlZmlsZQlVbml4IMjHIE1ha2VmaWxlCisJY29uZmlnLmgJwN/E6s3RICNpbmNsdWRl
IKXVpaGlpKXrCisJbGliamNvZGUuYwlKSVOholNKSVOhokVVQ6TOytG0uQorCWRldGVjdC5jCaWz
obylyci9xOrN0QorCXNhbXBsZS5jCbTKw7GkyqW1pfOl16Xrpdel7aWwpeml4AorCWpsaWIuaAkJ
pemlpKXWpeml6s3RICNpbmNsdWRlIKXVpaGlpKXrCisKKwlEb2MvCisJcmZjMTQ2OC50eHQJUkZD
MTQ2OAorCQkJIkphcGFuZXNlIENoYXJhY3RlciBFbmNvZGluZyBmb3IgSW50ZXJuZXQgTWVzc2Fn
ZXMuIgorCXJmYzE1NTQudHh0CVJGQzE1NTQJCisJCQkiSVNPLTIwMjItSlAtMjogTXVsdGlsaW5n
dWFsIEV4dGVuc2lvbiBvZiBJU08tMjAyMi1KUCIKKworLS0gzfjN0b7lpM7D7bDVIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
bGliamNvZGUgpM+horSwwbSky6XVpeqhvKTKpemlpKXWpeml6qTHpLmho6WkpfOlv6G8pc2lw6XI
pMukqqSxpOvG/MvcuOy0xLatCiukzrL+wbGk8rrHvarM3Mm4pMukt6TGpKqk6qTepLmho8b8y9y4
7KWzobylyaTOytG0uaTyudSkpKS/pKTK/aTKpOnDr6THpOKhogorvKvNs6TLsv7OyaS3pMahoryr
yqykzqXXpe2lsKXppeCky7nnpO+ku6TGwcik37n+pOCks6TIpKykx6StpN6kuaGjCisKK6S/pMCk
t6GizfjN0aTLpLmk677sueekz7yhpM6+8rfvpPK86aTDpMakr6TApLWkpKGjCisKKyAxLiBsaWJq
Y29kZSCk8s34zdGkt6S/pL+k4aTLx6Gyv6TKpOvCu7OypKzAuKS4pMak4rruvNSky6TPsOzA2qTO
wNXHpKTyCisgICAgvOik6qTepLuk86GjCisgMi4gufHOqcLns9ikzqWzpfOl1KXlobylv7vxuLuk
8rvIpMOkxqSkpOukzqTHoaLD+LruuKLJvbyooaIKKwkoQykgS3VyYW1pdHN1IEtpbWlvLCBUb2t5
byBVbml2LiAxOTk2LTk3CisgICAgpPLHsKTOpL+k4aTLu8Skt6TGpKqkpKTGpK+kwKS1pKShowor
Ciul6aWkpdal6aXqzfjN0cPmpMul0KWwpPLIr7irpLfEvqS1pOykv8r9oaKk6KTquPrOqKTOpOik
6qWipeultKXqpbql4KTyvMLB9QorpMqktaTDpL/K/aTPoaKkvaTspPK67rzUpMvB96TDpMbEuqSx
pOukyKGibGliamNvZGUgpMikt6TGpOKk6KTqv67N6sCtpM654qSkCiul6aWkpdal6aXqpNikyMCu
xLmkx6StpN6kuaGjpOik7aS3pK+kqrTqpKSkt6TepLmhoworCiuk3qS/oaJsaWJqY29kZaTywcik
37n+pPOkwKW9pdWlyKWmpailoqTOzL7BsKTitrWkqKTGpKSkv6TApLGk66TIoaK8wrrdpM68wgor
wfXO46TIpLekxqGivtKy8KS3pL+kpKTIu9ekpKTepLmhoworCistLSC7yKSkyv0gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCisxLiCk3qS6oaJtYWtlIKTLpOikw6TGoaJsaWJqY29kZS5hIKXppaSl1qXppeqk8rrupOqk
3qS5oaMKKyAgIGNvbmZpZy5oIKTyxL6kuaSzpMikx6Giwr++r7Whx72k8srRpKik66SzpMikrKTH
pK2k3qS5pKyhoqW9obyluaWzobylyQorICAgpPLGyaTzpMDK/aSsweGkpKTHpLek56SmoaMKKwor
Mi4gpbWl86XXpeul16XtpbCl6aXgIHNhbXBsZS5jIKTIIE1ha2VmaWxlIKTyuKuk66TIoaKks6TO
pemlpKXWpeml6qTypMmkzgorICAgpOikpqTLwcik37n+pOCkq7uyuc2ky6S3pMakr6TApLWkpKGj
CisKKy0tIMawuu6zzsentMS2rSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0FOU0kgQyCls6XzpdGlpKXppPK7yKTDpMakpKTs
pNChosnhxMyky6WzpfOl0aWkpeukx6StpOukz6S6pMekuaGjCisKKwlTb2xhcmlzIDIuNSAoU3Bh
cmMpIHdpdGggZ2NjIDIuNy4yCisJTGludXggMi4wIHdpdGggZ2NjIDIuNy4yCisKKy0tIKXppaSl
1qXppeqkzrDszfcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKK8nhxMyky7vIpKik66XppaSl1qXppeq02L/0pM+hompsaWIuaCCl2KXD
pcCl1aWhpaSl66TLvfGkq6TspMakpKTepLmho7rHvekKK6TLICNpbmNsdWRlICJqbGliLmgiIKTy
xMmyw6S3pN6kuaGjCisKKyNkZWZpbmUgpcelo6Xspa+lxqWjpdakzsbizcYKKworI2RlZmluZSBB
U0NJSQlBU0NJSSCls6G8pckKKyNkZWZpbmUgSklTCWlzby0yMDIyLWpwIKWzobylyQorI2RlZmlu
ZSBFVUMJeC1ldWMtanAgpbOhvKXJCisjZGVmaW5lIFNKSVMJeC1zamlzIKWzobylyQorCiu02L/0
OgorCitleHRlcm4gaW50IGRldGVjdEthbmppQ29kZShjaGFyICpzdHIpOworCisJyri7+s7zIHN0
ciCkzqWzobylyaTyyL3E6qS3pN6kuaGjCisJytak6sPNpM+hokFTQ0lJLCBKSVMsIEVVQywgU0pJ
UyCkzqTJpOykq6THpLmhoworCitleHRlcm4gY2hhciAqdG9TdHJpbmdKSVMoY2hhciAqc3RyKTsK
KworCcq4u/rO8yBzdHIgpPJKSVMgpbOhvKXJpMvK0bS5pLek3qS5oaMKKworZXh0ZXJuIGNoYXIg
KnRvU3RyaW5nRVVDKGNoYXIgKnN0cik7CisKKwnKuLv6zvMgc3RyIKTyRVVDIKWzobylyaTLytG0
uaS3pN6kuaGjCisKK2V4dGVybiBjaGFyICp0b1N0cmluZ1NKSVMoY2hhciAqc3RyKTsKKworCcq4
u/rO8yBzdHIgpPJTSklTIKWzobylyaTLytG0uaS3pN6kuaGjCisKKy0tIMPOpOmk7KTGpKSk68zk
wurFwCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisKK8i+s9FTSklTpKy03qTepOykv6XGpa2luaXIpPLB28TqpLekxqSkpOukzqTHoaJFVUMg
pMggU0pJUyCkzryrxrDIvcTqpKwKK6SrpMqk6rzlpKShoworCistLSC6o7jlpM7NvcTqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCiuzzrzCpMuk5KTtpKakyLvXpMOkxqSkpOuks6TIoaMKKwlKSVMgWCAwMjEyLTE5OTAgKMKv
vs4gyuS99bTBu/oppM7K0bS5pMvC0LH+CisJTUlNRSCl2KXDpcCkzqWopfOls6G8pckvpcels6G8
pckKKworpMekraS/pOmk5KTqpL+kpKSzpMgoQ0dJILj+pLGl6aWkpdal6aXqKQorCcG0s9EgLS0+
IMi+s9EgCisJCSjO4yCj5qPvo++h96Pto+Gj6aPsoaWj46Pvo+0gLS0+IGZvb0BtYWlsLmNvbSkK
KwnKv7K+zL4gPC0tPiClq6W/paulyiAKKwlST01BTiC7+iAtLT4gpKukygorCQkoS3VyYW1pdHN1
IC0tPiCkr6TppN+kxCkKKworxKnA76S3pL+kpKSzpMihoworCVNKSVMgpMggSVNPLTg4NTktMShs
YXRlbikgpM68q8awvLHKzAorCivGu7XBxaqky8e6pOCkyKSzpO0KKwlVbmljb2RlIKTYpM7C0LH+
CisKKworLS0gzvK7yyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworbGliamNvZGUgpPK67qTrxL7A3KTOpK2kw6Sr
pLGkyKTKpMOkv6TOpM+holRob211cyBCb3V0ZWxsIMP4pM4KKyJDR0kgUHJvZ3JhbW1pbmcgd2l0
aCBDIGFuZCBQZXJsIihBZGRpc29uLVdlc2xleSmky8nVwrCkuaTrpbWl86XXpetDR0ml16XtCiul
sKXppeCk8sb8y9y47KTOxv7Oz6TyvPWkscnVpLGk66TopKaky6S5pOukv6ThpMuhorTBu/qls6G8
pcnK0bS5pMu/qKTspOvJrAorzdfAraSspKKk6qTepLekv6GjpMiks6TtpKyholBlcmzN0aTLpM/N
paTspL+0wbv6ytG0uaTOpemlpKXWpeml6qSswri636S3pN4KK6S3pL+krKGiu8THsKTKpKyk6UPI
x6TLpM+hos2lpOykv6XppaSl1qXppeqkrLzqpMvG/qTspOuks6TIpKykx6StpN6ku6TzpMcKK6S3
pL+howorCiukvaSzpMehoktlbiBMdW5kZSDD+KTOodbG/MvcuOy+8MrzvejN/aHXKE8nUmVpbGx5
KaTyu7K5zaTLpemlpKXWpeml6rruwK6k8goru8+k4aTrpLOkyKTLpLek3qS3pL+howorCisxOTk2
LzEyLzEwCaXbobyl4KXaobyluL7lpMe4+LOrs6u7z6GjCisJCWh0dHA6Ly93d3cubGliLm0udS10
b2t5by5hYy5qcC9+a2lraS9saWJqY29kZS8KKworMTk5Ni8xMi8xOQkiQ0dJIFByb2dyYW1taW5n
IHdpdGggQyBhbmQgUGVybDUipM7G/MvcuOzIx8nVz79DRC1ST03J1c+/CisJCaTIpLekxqGibGli
amNvZGUtMS4wMCDH28nbs6u7zworCistLSC81bytIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCiu65MK8uKa15ry8
pM7A6MfapMekoqTrwO7IqCDCwLDsKGthd2FiYXRhQGlzLnMudS10b2t5by5hYy5qcCmktaTzpMuk
z6GixvzL3AoruOy96M39pMikpKSmtrmkpLTRxcCky6TIpOmk76TspLqhormtpK/Cv7nxuOy0xLat
pOS96M39pMukxKSkpMbNzaG5pMq99bjApOQKK6Wipcml0KWkpbmk8qS3pMbEuqStpN6kt6S/oaOk
3qS/oaLL3KXppaSl1qXppeq8wri9pM6kv6ThpM6l0KWwvOik6qTivOrFwaTDCiukxsS6pK2k3qS3
pL+howorCistLS0KK8vcpemlpKXWpeml6qTys+jN0aS3pMbCv6SvpM5DR0ml16XtpbCl6aXgpORX
aW5kb3dzL01hY2ludG9zaCDN0aTOpdWl6qG8paYKK6WopaKhoqTepL++ps3RpaKl16XqpbGhvKW3
peel86TOxvzL3LjsyMekrMC1pLekr7TBu/qls6G8pcmk8rC3pKik66TopKakyworpMqkw6TGxLqk
saTspOyk0KGiuaykpKTHpLmhoworCisJCQkJCSAJCSAgICAgIDE5OTbHryAxMrfuCisJCQkJCSAg
ICAgIMHSuPcgt6/PuiAvIEt1cmFtaXRzdSBLaW1pbworCQkJCQkJICBraWtpQGlzLnMudS10b2t5
by5hYy5qcApkaWZmIC11ck4gYTJwcy00LjEzLk9SSUcvbGliamNvZGUvZGV0ZWN0LmMgYTJwcy00
LjEzL2xpYmpjb2RlL2RldGVjdC5jCi0tLSBhMnBzLTQuMTMuT1JJRy9saWJqY29kZS9kZXRlY3Qu
YwkxOTcwLTAxLTAxIDA5OjAwOjAwLjAwMDAwMDAwMCArMDkwMAorKysgYTJwcy00LjEzL2xpYmpj
b2RlL2RldGVjdC5jCTIwMDMtMDktMjcgMDU6NDU6MDIuMDAwMDAwMDAwICswOTAwCkBAIC0wLDAg
KzEsMjA0IEBACisvKgorICogZGV0ZWN0LmMgLSBsaWJqY29kZSCls6G8pcm8q8awyL3E6qXrobyl
waXzCisgKiAgICAgICAgICAgICAgICAoQykgS3VyYW1pdHN1IEtpbWlvLCBUb2t5byBVbml2LiAx
OTk2LTk3IAorICoKKyAqIEtlbiBMdW5kZSDD+CCh1sb8y9y47L7wyvO96M39odcgpMggamNvbnYu
YyCk8ruyuc2ky7rupOogCisgKiCk3qS3pL+howorICogQ0dJIKXXpe2lsKXppeCkx6TOzfjN0aTy
uc2kqKTGoaKk0qTppKykyqGipKukv6SrpMqkzsrCpNMKKyAqIKTLpOik61NKSVMsIEVVQyCkzr/k
xOqloqXrpbSl6qW6peDF+aTyssOkqKTGpKKk6qTepLmhoworICoKKyAqILm5v7fN+s7yCisgKiAg
ICAgICAtIGpjb2RlLnBspM5TSklTL0VVQ8i9xOqky6WzobylyaTyzdGkpKS/CisgKiAgICAgICAg
ICAgICAgICBZYXN1eXVraSBGdXJ1a2F3YSAoeWFzdUBvbi5jcy5rZWlvLmFjLmpwKQorICovCisK
KyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImpsaWJj
b25maWcuaCIKKworc3RhdGljIGludCBfZGV0ZWN0KHVuc2lnbmVkIGNoYXIgKnN0ciwgaW50IGV4
cGVjdGVkKTsKK3N0YXRpYyBpbnQgX2RldGVjdF9ldWNfb3Jfc2ppcyh1bnNpZ25lZCBjaGFyICpz
dHIpOwordm9pZCBwcmludERldGVjdENvZGUoaW50IGRldGVjdGVkKTsKK2ludCBkZXRlY3RLYW5q
aUNvZGUoY2hhciAqc3RyKTsKKworCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gtMG7+qWzobylyaTOvLHKzCAtLSovCisKK3N0YXRpYyBp
bnQgX2RldGVjdCh1bnNpZ25lZCBjaGFyICpzdHIsIGludCBleHBlY3RlZCkKK3sKKyAgcmVnaXN0
ZXIgaW50IGM7CisKKyAgd2hpbGUoKGMgPSAoaW50KSpzdHIpIT0gJ1wwJykgeworCisgICAgLyog
SklTIKWzobylyaTOyL3E6iAqLworICAgIGlmKGMgPT0gRVNDKSB7CisgICAgICBpZigoYyA9IChp
bnQpKigrK3N0cikpID09ICdcMCcpIHJldHVybiBleHBlY3RlZDsgCisgICAgICBpZiAoYyA9PSAn
JCcpIHsKKwlpZigoYyA9IChpbnQpKigrK3N0cikpID09ICdcMCcpIHJldHVybiBleHBlY3RlZDsg
CisJLyogRVNDICQgQiAtLT4gv7dKSVMgCisJICAgRVNDICQgQCAtLT4gtexKSVMgKi8KKwlpZiAo
YyA9PSAnQicgfHwgYyA9PSAnQCcpIHJldHVybiBKSVM7CisgICAgICB9CisjaWZkZWYgTkVDS0FO
SkkKKyAgICAgIGlmIChjID09ICdLJykKKwlyZXR1cm4gTkVDOyAgICAvKiBFU0MgSyAtLT4gTkVD
IEpJUyAqLworI2VuZGlmCisgICAgICBzdHIrKzsKKyAgICAgIGNvbnRpbnVlOworICAgIH0KKyAg
ICAKKyAgICAvKiBTSklTIKTLsOyw1aTLt+jE6iAqLworICAgIGlmICgoYyA+PSAxMjkgJiYgYyA8
PSAxNDEpIHx8IChjID49IDE0MyAmJiBjIDw9IDE1OSkpCisgICAgICAgIHJldHVybiBTSklTOwor
ICAgIC8qIFNTMiAqLworICAgIGlmIChjID09IFNTMikgeworICAgICAgaWYoKGMgPSAoaW50KSoo
KytzdHIpKSA9PSAnXDAnKSByZXR1cm4gZXhwZWN0ZWQ7IAorICAgICAgaWYgKChjID49IDY0ICYm
IGMgPD0gMTI2KSB8fCAoYyA+PSAxMjggJiYgYyA8PSAxNjApIHx8IAorCSAgKGMgPj0gMjI0ICYm
IGMgPD0gMjUyKSkgcmV0dXJuIFNKSVM7CisgICAgICBpZiAoYyA+PSAxNjEgJiYgYyA8PSAyMjMp
IGV4cGVjdGVkID0gRVVDT1JTSklTOworICAgICAgc3RyKys7CisgICAgICBjb250aW51ZTsKKyAg
ICB9CisKKyAgICBpZiAoYyA+PSAxNjEgJiYgYyA8PSAyMjMpIHsKKyAgICAgIGlmKChjID0gKGlu
dCkqKCsrc3RyKSkgPT0gJ1wwJykgcmV0dXJuIGV4cGVjdGVkOyAKKyAgICAgIAorICAgICAgaWYg
KGMgPj0gMjQwICYmIGMgPD0gMjU0KQorCXJldHVybiBFVUM7CisgICAgICBpZiAoYyA+PSAxNjEg
JiYgYyA8PSAyMjMpIHsKKwlleHBlY3RlZCA9IEVVQ09SU0pJUzsKKwlzdHIrKzsKKwljb250aW51
ZTsKKyAgICAgIH0KKyAgICAgIGlmIChjIDw9IDE1OSkgcmV0dXJuIFNKSVM7CisgICAgICBpZiAo
YyA+PSAyNDAgJiYgYyA8PSAyNTQpIHJldHVybiBFVUM7CisgICAgIAorICAgICAgaWYgKGMgPj0g
MjI0ICYmIGMgPD0gMjM5KSB7CisJZXhwZWN0ZWQgPSBFVUNPUlNKSVM7CisJd2hpbGUgKGMgPj0g
NjQpIHsKKwkgIGlmIChjID49IDEyOSkgeworCSAgICBpZiAoYyA8PSAxNDEgfHwgKGMgPj0gMTQz
ICYmIGMgPD0gMTU5KSkKKwkgICAgICByZXR1cm4gU0pJUzsKKwkgICAgZWxzZSBpZiAoYyA+PSAy
NTMgJiYgYyA8PSAyNTQpIHsKKwkgICAgICByZXR1cm4gRVVDOworCSAgICB9CisJICB9CisJICBp
ZigoYyA9IChpbnQpKigrK3N0cikpID09ICdcMCcpIHJldHVybiBFVUNPUlNKSVM7IAorCX0KKwlz
dHIrKzsKKwljb250aW51ZTsKKyAgICAgIH0KKyAgICAgIAorICAgICAgaWYgKGMgPj0gMjI0ICYm
IGMgPD0gMjM5KSB7CisgICAgICAgIGlmKChjID0gKGludCkqKCsrc3RyKSkgPT0gJ1wwJykgcmV0
dXJuIGV4cGVjdGVkOyAKKyAgICAgICAgaWYgKChjID49IDY0ICYmIGMgPD0gMTI2KSB8fCAoYyA+
PSAxMjggJiYgYyA8PSAxNjApKQorICAgICAgICAgIHJldHVybiBTSklTOworICAgICAgICBpZiAo
YyA+PSAyNTMgJiYgYyA8PSAyNTQpIHJldHVybiBFVUM7CisgICAgICAgIGlmIChjID49IDE2MSAm
JiBjIDw9IDI1MikKKyAgICAgICAgICBleHBlY3RlZCA9IEVVQ09SU0pJUzsKKyAgICAgIH0KKyAg
ICB9CisgICAgc3RyKys7CisgIH0KKyAgcmV0dXJuIGV4cGVjdGVkOworfQorCisvKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1TSklTIKSrIEVVQyCk
zsi9xOogLS0gKi8KKy8qIMb8y9y47KTOxsPEpyik0qTppKykyqGipaulv6WrpcoppKuk6ci9xOqk
uaTrpL+k4aGiCisgICDIvcTqpd+luaSsyK/AuKS5pOu+7LnnpOKkoqTqpN6kuaGjICovCisKK3N0
YXRpYyBpbnQgX2RldGVjdF9ldWNfb3Jfc2ppcyh1bnNpZ25lZCBjaGFyICpzdHIpIHsKKyAgaW50
IGMxLCBjMjsKKyAgaW50IGV1Y19jID0gMCwgc2ppc19jID0gMDsKKyAgdW5zaWduZWQgY2hhciAq
cHRyOworICBzdGF0aWMgaW50IGV4cGVjdGVkID0gRVVDT1JTSklTOworCisjaWZkZWYgVVNFX0NB
Q0hFX0tBTkFfTkFSQUJJCisgIGlmIChleHBlY3RlZCAhPSBFVUNPUlNKSVMpCisgICAgICByZXR1
cm4gZXhwZWN0ZWQ7CisjZW5kaWYKKworICBwdHIgPSBzdHIsIGMyID0gMDsKKyAgd2hpbGUgKChj
MSA9IChpbnQpKnB0cisrKSAhPSAnXDAnKSB7CisgICAgICBpZiAoKGMyID4gIDB4ODAgJiYgYzIg
PCAweGEwKSAmJiAoYzIgPj0gMHhlMCAmJiBjMiA8IDB4ZmQpICYmCisJICAoYzEgPj0gMHg0MCAm
JiBjMSA8IDB4N2YpICYmIChjMSA+PSAweDgwICYmIGMxIDwgMHhmZCkpCisJICBzamlzX2MrKywg
YzEgPSAqcHRyKys7CisgICAgICBjMiA9IGMxOworICB9CisgIGlmIChzamlzX2MgPT0gMCkKKyAg
ICAgIGV4cGVjdGVkID0gRVVDOworICBlbHNlIHsKKyAgICAgIHB0ciA9IHN0ciwgYzIgPSAwOwor
ICAgICAgd2hpbGUgKChjMSA9IChpbnQpKnB0cisrKSAhPSAnXDAnKSB7CisJICBpZiAoKGMyID4g
MHhhMCAgJiYgYzIgPCAweGZmKSAmJgorCSAgICAgIChjMSA+IDB4YTAgICYmIGMxIDwgMHhmZikp
CisJICAgIGV1Y19jKyssIGMxID0gKnB0cisrOworCSAgYzIgPSBjMTsKKyAgICAgIH0KKyAgICAg
IGlmIChzamlzX2MgPiBldWNfYykKKwkgIGV4cGVjdGVkID0gU0pJUzsKKyAgICAgIGVsc2UKKwkg
IGV4cGVjdGVkID0gRVVDOworICB9CisgIHJldHVybiBleHBlY3RlZDsKK30KKworLyogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQdWJs
aWMgtNi/9CAtLSAqLworCisKKyNpZmRlZiBERUJVRwordm9pZCBwcmludERldGVjdENvZGUoaW50
IGRldGVjdGVkKSB7CisgIHN3aXRjaChkZXRlY3RlZCkgeworICBjYXNlIEFTQ0lJOgorICAgIGZw
cmludGYoc3RkZXJyLCAiQVNDSUkvSklTLVJvbWFuIGNoYXJhY3RlcnMoOTQgcHJpbnRhYmxlKVxu
Iik7CisgICAgYnJlYWs7CisgIGNhc2UgSklTOgorICAgIGZwcmludGYoc3RkZXJyLCAiSklTKGlz
by0yMDIyLWpwKVxuIik7CisgICAgYnJlYWs7CisgIGNhc2UgRVVDOgorICAgIGZwcmludGYoc3Rk
ZXJyLCAiRVVDKHgtZXVjLWpwKVxuIik7CisgICAgYnJlYWs7CisgIGNhc2UgU0pJUzoKKyAgICBm
cHJpbnRmKHN0ZGVyciwgIlNKSVMoeC1zamlzKVxuIik7CisgICAgYnJlYWs7CisgIGNhc2UgTkVX
OgorICAgIGZwcmludGYoc3RkZXJyLCAiSklTIFggMDIwOC0xOTkwXG4iKTsKKyAgICBicmVhazsK
KyAgY2FzZSBPTEQ6CisgICAgZnByaW50ZihzdGRlcnIsICJKSVMgWCAwMjA4LTE5NzhcbiIpOwor
ICAgIGJyZWFrOworICBjYXNlIEVVQ09SU0pJUzoKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkVVQyBv
ciBTSklTXG4iKTsKKyAgICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBwcmludGYoIkFub3RoZXIg
Q29kZXMhIVxuIik7CisgIH0KK30KKyNlbmRpZgorCitpbnQgZGV0ZWN0S2FuamlDb2RlKGNoYXIg
KnN0cikKK3sKKyAgc3RhdGljIGludCBkZXRlY3RlZCA9IEFTQ0lJOworCisgIGlmKCFzdHIpIHJl
dHVybiAoMCk7CisKKyAgLyogSklTLCBFVUMsIFNKSVMsIEVVQ09SU0pJUyCkzsi9xOogKi8KKyAg
ZGV0ZWN0ZWQgPSBfZGV0ZWN0KCh1bnNpZ25lZCBjaGFyICopc3RyLCBBU0NJSSk7CisKKyAgLyog
v7dKSVMsILXsSklTLCBORUMgSklTIKTOvuy556GiSklTIKTLytG5uaS5pOsgKi8KKyAgaWYoZGV0
ZWN0ZWQgPT0gTkVXIHx8IGRldGVjdGVkID09IE9MRCB8fCBkZXRlY3RlZCA9PSBORUMpCisgICAg
cmV0dXJuIEpJUzsKKworICAvKiBTSklTIKSrIEVVQyCkzrboysyk8qWrpcqkzsrCpNOkq6Tpv+TE
6qS5pOsgKi8KKyAgaWYoZGV0ZWN0ZWQgPT0gRVVDT1JTSklTKQorI2lmZGVmIEtBTkFfTkFSQUJJ
CisgICAgZGV0ZWN0ZWQgPSBfZGV0ZWN0X2V1Y19vcl9zamlzKCh1bnNpZ25lZCBjaGFyICopc3Ry
KTsKKyNlbHNlCisgICAgZGV0ZWN0ZWQgPSBFVUM7ICAvKiClx6XVpaml66XIIEVVQyAqLworI2Vu
ZGlmCisjaWZkZWYgREVCVUcKKyAgICBwcmludERldGVjdENvZGUoZGV0ZWN0ZWQpOworI2VuZGlm
CisKKyAgcmV0dXJuIGRldGVjdGVkOworfQpkaWZmIC11ck4gYTJwcy00LjEzLk9SSUcvbGliamNv
ZGUvamxpYi5oIGEycHMtNC4xMy9saWJqY29kZS9qbGliLmgKLS0tIGEycHMtNC4xMy5PUklHL2xp
Ympjb2RlL2psaWIuaAkxOTcwLTAxLTAxIDA5OjAwOjAwLjAwMDAwMDAwMCArMDkwMAorKysgYTJw
cy00LjEzL2xpYmpjb2RlL2psaWIuaAkyMDAzLTA5LTI3IDA1OjQ1OjAyLjAwMDAwMDAwMCArMDkw
MApAQCAtMCwwICsxLDE3IEBACisvKgorICogIGpsaWIuaCAtLSBqbGliLmMgzdGkzqXYpcOlwKXV
paGlpKXrICBieS4gwdK49yC3r8+6CisgKgorICogIGpsaWIuYyCk8s34zdGkuaTrvuy556TPoaJp
bmNsdWRlIKS3pMakr6TApLWkpKGjCisgKgorICovCisKKyNkZWZpbmUgQVNDSUkgICAgICAgICAw
CisjZGVmaW5lIEpJUyAgICAgICAgICAgMQorI2RlZmluZSBFVUMgICAgICAgICAgIDIKKyNkZWZp
bmUgU0pJUyAgICAgICAgICAzCisKK2V4dGVybiBpbnQgZGV0ZWN0S2FuamlDb2RlKGNoYXIgKnN0
cik7CitleHRlcm4gY2hhciAqdG9TdHJpbmdKSVMoY2hhciAqc3RyKTsKK2V4dGVybiBjaGFyICp0
b1N0cmluZ0VVQyhjaGFyICpzdHIpOworZXh0ZXJuIGNoYXIgKnRvU3RyaW5nU0pJUyhjaGFyICpz
dHIpOworZXh0ZXJuIGNoYXIgKnRvU3RyaW5nQXV0byhjaGFyICpzdHIpOwpkaWZmIC11ck4gYTJw
cy00LjEzLk9SSUcvbGliamNvZGUvamxpYmNvbmZpZy5oIGEycHMtNC4xMy9saWJqY29kZS9qbGli
Y29uZmlnLmgKLS0tIGEycHMtNC4xMy5PUklHL2xpYmpjb2RlL2psaWJjb25maWcuaAkxOTcwLTAx
LTAxIDA5OjAwOjAwLjAwMDAwMDAwMCArMDkwMAorKysgYTJwcy00LjEzL2xpYmpjb2RlL2psaWJj
b25maWcuaAkyMDAzLTA5LTI3IDA1OjQ1OjAyLjAwMDAwMDAwMCArMDkwMApAQCAtMCwwICsxLDQy
IEBACisvKgorICogY29uZmlnLmgKKyAqLworCisjZGVmaW5lIEFTQ0lJICAgICAgICAgMAorI2Rl
ZmluZSBKSVMgICAgICAgICAgIDEKKyNkZWZpbmUgRVVDICAgICAgICAgICAyCisjZGVmaW5lIFNK
SVMgICAgICAgICAgMworI2RlZmluZSBORVcgICAgICAgICAgIDQKKyNkZWZpbmUgT0xEICAgICAg
ICAgICA1CisjZGVmaW5lIE5FQyAgICAgICAgICAgNgorI2RlZmluZSBFVUNPUlNKSVMgICAgIDcK
KyNkZWZpbmUgTlVMICAgICAgICAgICAwCisjZGVmaW5lIExGICAgICAgICAgICAgMTAKKyNkZWZp
bmUgRkYgICAgICAgICAgICAxMgorI2RlZmluZSBDUiAgICAgICAgICAgIDEzCisjZGVmaW5lIEVT
QyAgICAgICAgICAgMjcKKyNkZWZpbmUgU1MyICAgICAgICAgICAxNDIKKyNkZWZpbmUgVFJVRSAg
ICAgICAgICAxCisjZGVmaW5lIEZBTFNFICAgICAgICAgMAorCisvKiDIvrPRpaulyihTSklTKSCk
8ravwKnFqqTLwbSz0aWrpcqky8rRubmkuaTrICovCisjdW5kZWYgTk9fSEFOS0FLVV9TSklTCisK
Ky8qIKTSpOmkrKTKoaKlq6W/paulyqTOysKk06SrpOkgRVVDICwgU0pJUyCk8r/kxOqkuaTrICov
CisjZGVmaW5lIEtBTkFfTkFSQUJJCisKKy8qIEVVQyAsIFNKSVMgpPK/5MTqpPK7z6ThpM6w7MXZ
pLekq7nUpMqk76TKpKQgKi8KKy8qICil1aWhpaSl66TysOykxKS3pKuk0qTppKukyqSkpMqk6c2t
uPqkx6SkpKQpICovCisjdW5kZWYgVVNFX0NBQ0hFX0tBTkFfTkFSQUJJCisKKy8qIHN0cmR1cLTY
v/SkrKW3pbmlxqXgpMukoqTspNBkZWZpbmUgKi8KKyNkZWZpbmUgSEFWRV9TVFJEVVAgICAgIDEK
KworLyogpcel0KXDpa/N0aTOtNi/9KTyza24+qTLpLmk6yAqLworI3VuZGVmIERFQlVHCisKKy8q
IKXtpbGhvKXrzL4owufKuLv6oaK+rsq4u/qkz7boysyktaTspMqkpCkgKi8KKyNkZWZpbmUgU0pJ
U19MT0NBTEVfTkFNRSAgImphX0pQLlNKSVMiLCAiamFfSlAuUENLIgorI2RlZmluZSBKSVNfTE9D
QUxFX05BTUUgICAiamFfSlAuSklTIiwgImphX0pQLmppczciCisjZGVmaW5lIEVVQ19MT0NBTEVf
TkFNRSAgICJqYV9KUC51amlzIiwgImphX0pQLkVVQyIsXAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAiamFfSlAuZXVjSlAiLCJqYXBhbmVzZSIsICJqYSIKZGlmZiAtdXJOIGEycHMtNC4xMy5P
UklHL2xpYmpjb2RlL2xpYmpjb2RlLmMgYTJwcy00LjEzL2xpYmpjb2RlL2xpYmpjb2RlLmMKLS0t
IGEycHMtNC4xMy5PUklHL2xpYmpjb2RlL2xpYmpjb2RlLmMJMTk3MC0wMS0wMSAwOTowMDowMC4w
MDAwMDAwMDAgKzA5MDAKKysrIGEycHMtNC4xMy9saWJqY29kZS9saWJqY29kZS5jCTIwMDMtMDkt
MjcgMDU6NDU6MDIuMDAwMDAwMDAwICswOTAwCkBAIC0wLDAgKzEsNTU0IEBACisvKiAKKyAqICBs
aWJqY29kZS5jIC0tILTBu/rK0bS5pemlpKXWpeml6iAgICAxLjAgyMcKKyAqICAgICAgICAgICAg
ICAgIChDKSBLdXJhbWl0c3UgS2ltaW8sIFRva3lvIFVuaXYuIDE5OTYtOTcKKyAqCisgKiAgpLOk
zqXppaSl1qXppeqkz6GiQ0dJIFByb2dyYW1taW5nIHdpdGggQyBhbmQgUGVybCCkzqS/pOGkywor
ICogIEtlbiBMdW5kZSDD+CCh1sb8y9y47L7wyvO96M39odcgKE8nbGxlcnkpIKTyu7K5zaTLpLek
xqGiCisgKiAgpbmlyKXqobyl4M3RpMCkw6S/amNvbnYuYyCk8qGipbmlyKXqpfOlsMLQsf6ky6S3
pMal6aWkpdal6aXqsr0KKyAqICCkt6TepLekv6GjIAorICogIKS/pMCkt6GiQ0dJIChJTlRFUk5F
VCmkx6TOzfjN0aTyuc2kqKTGoaLK0bm5pLekxqSipOqk3qS5oaMKKyAqLworIAorI2luY2x1ZGUg
PHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5j
bHVkZSA8bG9jYWxlLmg+CisjaW5jbHVkZSAiamxpYi5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgImpsaWJjb25maWcuaCIKKyAKK2V4dGVybiBpbnQgZGV0ZWN0S2FuamlDb2RlKGNo
YXIgKnN0cik7CitzdGF0aWMgdW5zaWduZWQgY2hhciAqX3RvX2ppcyh1bnNpZ25lZCBjaGFyICpz
dHIpOworc3RhdGljIHVuc2lnbmVkIGNoYXIgKl90b19hc2NpaSh1bnNpZ25lZCBjaGFyICpzdHIp
Oworc3RhdGljIHZvaWQgX2ppc19zaGlmdChpbnQgKnAxLCBpbnQgKnAyKTsKK3N0YXRpYyB2b2lk
IF9zamlzX3NoaWZ0KGludCAqcDEsIGludCAqcDIpOworc3RhdGljIHVuc2lnbmVkIGNoYXIgKl9z
amlzX2hhbjJ6ZW4odW5zaWduZWQgY2hhciAqc3RyLCBpbnQgKnAxLCBpbnQgKnAyKTsKK3N0YXRp
YyB2b2lkIF9zaGlmdDJzZXZlbih1bnNpZ25lZCBjaGFyICpzdHIsIHVuc2lnbmVkIGNoYXIgKnN0
cjIpOworc3RhdGljIHZvaWQgX3NoaWZ0MmV1Yyh1bnNpZ25lZCBjaGFyICpzdHIsIHVuc2lnbmVk
IGNoYXIgKnN0cjIpOworc3RhdGljIHZvaWQgX3NoaWZ0X3NlbGYodW5zaWduZWQgY2hhciAqc3Ry
LCB1bnNpZ25lZCBjaGFyICpzdHIyKTsKK3N0YXRpYyB2b2lkIF9ldWMyc2V2ZW4odW5zaWduZWQg
Y2hhciAqc3RyLCB1bnNpZ25lZCBjaGFyICpzdHIyKTsKK3N0YXRpYyB2b2lkIF9ldWMyc2hpZnQo
dW5zaWduZWQgY2hhciAqc3RyLCB1bnNpZ25lZCBjaGFyICpzdHIyKTsKK3N0YXRpYyB1bnNpZ25l
ZCBjaGFyICpfc2tpcF9lc2ModW5zaWduZWQgY2hhciAqc3RyLCBpbnQgKmVzY19pbik7CitzdGF0
aWMgdm9pZCBfc2V2ZW4yc2hpZnQodW5zaWduZWQgY2hhciAqc3RyLCB1bnNpZ25lZCBjaGFyICpz
dHIyKTsKK3N0YXRpYyB2b2lkIF9zZXZlbjJldWModW5zaWduZWQgY2hhciAqc3RyLCB1bnNpZ25l
ZCBjaGFyICpzdHIyKTsKKworCisKKyNkZWZpbmUgQ0hBUk9VVChjaCkgKnN0cjIgPSAodW5zaWdu
ZWQgY2hhcikoY2gpOyBzdHIyKys7CisKKyNpZm5kZWYgSEFWRV9TVFJEVVAKKyNkZWZpbmUgc3Ry
ZHVwKHN0cikgIF9zdHJkdXAoc3RyKQorc3RhdGljIGNoYXIgKl9zdHJfZHVwKHVuc2lnbmVkIGNo
YXIgKmJ1ZikgeworCisgIHVuc2lnbmVkIGNoYXIgKnAsICpzdHI7CisgIGlmKChzdHIgPSAoY2hh
ciAqKW1hbGxvYyhzdHJsZW4oYnVmKSArIDEpKSA9PSBOVUxMKSB7CisgICAgZnByaW50ZihzdGRl
cnIsICJDYW4ndCBtYWxsb2Mgc3RyaW5nIGJ1ZmZlclxuIik7CisgICAgZXhpdCgyKTsKKyAgfQor
CisgIHAgPSAodW5zaWduZWQgY2hhciAqKXN0cjsKKyAgIAorICB3aGlsZSgqYnVmKQorICAgICpw
KysgPSAqYnVmKys7CisKKyAgKnAgPSAnXDAnOworCisgIHJldHVybiBzdHI7Cit9CisjZW5kaWYK
KworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEpJUyhJU08tMjAy
MikgpbOhvKXJpNjA2qTqwtikqCAtLSAqLworCitzdGF0aWMgdW5zaWduZWQgY2hhciAqX3RvX2pp
cyh1bnNpZ25lZCBjaGFyICpzdHIpIHsKKyAgKnN0ciA9ICh1bnNpZ25lZCBjaGFyKUVTQzsgc3Ry
Kys7CisgICpzdHIgPSAodW5zaWduZWQgY2hhciknJCc7IHN0cisrOworICAqc3RyID0gKHVuc2ln
bmVkIGNoYXIpJ0InOyBzdHIrKzsKKyAgcmV0dXJuIHN0cjsKK30KKworLyogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQVNDSUkgpbOhvKXJpNjA2qTqwtik
qCAtLSAqLworCisvKiBFU0MgKCBCIKTIIEVTQyAoIEogpM6w46SkoaMKKyAgIMvczeikz6GiIEVT
QyAoIEogpKzAtaS3pKRKSVMtUm9tYW4gws63z6THpKKk66SsoaIKKyAgIKWkpfOlv6G8pc2lw6XI
pM6+5aTHpM+horHRv/S7+qTPQVNDSUkgpM7K/aSsvKvBs6SrpMi716TvpOyk66GjCisgICBcILWt
ueakyCB+ta255qSssOOkpqTApLGkx6SipOuhoyAqLworCitzdGF0aWMgdW5zaWduZWQgY2hhciAq
X3RvX2FzY2lpKHVuc2lnbmVkIGNoYXIgKnN0cikgeworICAqc3RyID0gKHVuc2lnbmVkIGNoYXIp
RVNDOyBzdHIrKzsKKyAgKnN0ciA9ICh1bnNpZ25lZCBjaGFyKScoJzsgc3RyKys7CisgICpzdHIg
PSAodW5zaWduZWQgY2hhciknQic7IHN0cisrOworICByZXR1cm4gc3RyOworfQorCisvKiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBKSVMgpbOhvKXJIKTyIFNKSVOkyKS3
pMalt6XVpcggLS0gKi8KKworc3RhdGljIHZvaWQgX2ppc19zaGlmdChpbnQgKnAxLCBpbnQgKnAy
KQoreworICB1bnNpZ25lZCBjaGFyIGMxID0gKnAxOworICB1bnNpZ25lZCBjaGFyIGMyID0gKnAy
OworICBpbnQgcm93T2Zmc2V0ID0gYzEgPCA5NSA/IDExMiA6IDE3NjsKKyAgaW50IGNlbGxPZmZz
ZXQgPSBjMSAlIDIgPyAoYzIgPiA5NSA/IDMyIDogMzEpIDogMTI2OworCisgICpwMSA9ICgoYzEg
KyAxKSA+PiAxKSArIHJvd09mZnNldDsKKyAgKnAyICs9IGNlbGxPZmZzZXQ7Cit9CisKKy8qIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTSklTIKWzobylyaTySklTIKWzobylyaTI
pLekxqW3pdWlyCAtLSAqLworCitzdGF0aWMgdm9pZCBfc2ppc19zaGlmdChpbnQgKnAxLCBpbnQg
KnAyKQoreworICB1bnNpZ25lZCBjaGFyIGMxID0gKnAxOworICB1bnNpZ25lZCBjaGFyIGMyID0g
KnAyOworICBpbnQgYWRqdXN0ID0gYzIgPCAxNTk7CisgIGludCByb3dPZmZzZXQgPSBjMSA8IDE2
MCA/IDExMiA6IDE3NjsKKyAgaW50IGNlbGxPZmZzZXQgPSBhZGp1c3QgPyAoYzIgPiAxMjcgPyAz
MiA6IDMxKSA6IDEyNjsKKworICAqcDEgPSAoKGMxIC0gcm93T2Zmc2V0KSA8PCAxKSAtIGFkanVz
dDsKKyAgKnAyIC09IGNlbGxPZmZzZXQ7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU0pJUyDIvrPRpPLBtLPRpMvK0bS5IC0tICovCisjZGVm
aW5lIEhBTktBVEEoYSkgIChhID49IDE2MSAmJiBhIDw9IDIyMykKKyNkZWZpbmUgSVNNQVJVKGEp
ICAgKGEgPj0gMjAyICYmIGEgPD0gMjA2KQorI2RlZmluZSBJU05JR09SSShhKSAoKGEgPj0gMTgy
ICYmIGEgPD0gMTk2KSB8fCAoYSA+PSAyMDIgJiYgYSA8PSAyMDYpIHx8IChhID09IDE3OSkpCisK
K3N0YXRpYyBpbnQgc3RhYmxlW11bMl0gPSB7CisgICAgezEyOSw2Nn0sezEyOSwxMTd9LHsxMjks
MTE4fSx7MTI5LDY1fSx7MTI5LDY5fSx7MTMxLDE0Nn0sezEzMSw2NH0sCisgICAgezEzMSw2Nn0s
ezEzMSw2OH0sezEzMSw3MH0sezEzMSw3Mn0sezEzMSwxMzF9LHsxMzEsMTMzfSx7MTMxLDEzNX0s
CisgICAgezEzMSw5OH0sezEyOSw5MX0sezEzMSw2NX0sezEzMSw2N30sezEzMSw2OX0sezEzMSw3
MX0sezEzMSw3M30sCisgICAgezEzMSw3NH0sezEzMSw3Nn0sezEzMSw3OH0sezEzMSw4MH0sezEz
MSw4Mn0sezEzMSw4NH0sezEzMSw4Nn0sCisgICAgezEzMSw4OH0sezEzMSw5MH0sezEzMSw5Mn0s
ezEzMSw5NH0sezEzMSw5Nn0sezEzMSw5OX0sezEzMSwxMDF9LAorICAgIHsxMzEsMTAzfSx7MTMx
LDEwNX0sezEzMSwxMDZ9LHsxMzEsMTA3fSx7MTMxLDEwOH0sezEzMSwxMDl9LAorICAgIHsxMzEs
MTEwfSx7MTMxLDExM30sezEzMSwxMTZ9LHsxMzEsMTE5fSx7MTMxLDEyMn0sezEzMSwxMjV9LAor
ICAgIHsxMzEsMTI2fSx7MTMxLDEyOH0sezEzMSwxMjl9LHsxMzEsMTMwfSx7MTMxLDEzMn0sezEz
MSwxMzR9LAorICAgIHsxMzEsMTM2fSx7MTMxLDEzN30sezEzMSwxMzh9LHsxMzEsMTM5fSx7MTMx
LDE0MH0sezEzMSwxNDF9LAorICAgIHsxMzEsMTQzfSx7MTMxLDE0N30sezEyOSw3NH0sezEyOSw3
NX19OworCitzdGF0aWMgdW5zaWduZWQgY2hhciAqX3NqaXNfaGFuMnplbih1bnNpZ25lZCBjaGFy
ICpzdHIsIGludCAqcDEsIGludCAqcDIpCit7CisgIHJlZ2lzdGVyIGludCBjMSwgYzI7CisKKyAg
YzEgPSAoaW50KSpzdHI7IHN0cisrOworICAqcDEgPSBzdGFibGVbYzEgLSAxNjFdWzBdOworICAq
cDIgPSBzdGFibGVbYzEgLSAxNjFdWzFdOworCisgIC8qIML5sruhosi+wvmyu6TOvejN/SAqLwor
ICBjMiA9IChpbnQpKnN0cjsKKyAgaWYgKGMyID09IDIyMiAmJiBJU05JR09SSShjMSkpIHsKKyAg
ICBpZiAoKCpwMiA+PSA3NCAmJiAqcDIgPD0gMTAzKSB8fCAoKnAyID49IDExMCAmJiAqcDIgPD0g
MTIyKSkKKyAgICAgICgqcDIpKys7CisgICAgZWxzZSBpZiAoKnAxID09IDEzMSAmJiAqcDIgPT0g
NjkpCisgICAgICAqcDIgPSAxNDg7CisgICAgc3RyKys7CisgIH0KKworICBpZiAoYzIgPT0gMjIz
ICYmIElTTUFSVShjMSkgJiYgKCpwMiA+PSAxMTAgJiYgKnAyIDw9IDEyMikgKSB7CisgICAgKnAy
ICs9IDI7CisgICAgc3RyKys7CisgIH0KKyAgcmV0dXJuIHN0cisrOworfQorCisvKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTSklTIKWzobylyaTy
ytG0uSAtLSAqLworCisjZGVmaW5lIFNKSVMxKEEpICAgICgoQSA+PSAxMjkgJiYgQSA8PSAxNTkp
IHx8IChBID49IDIyNCAmJiBBIDw9IDIzOSkpCisjZGVmaW5lIFNKSVMyKEEpICAgIChBID49IDY0
ICYmIEEgPD0gMjUyKQorCitzdGF0aWMgdm9pZCBfc2hpZnQyc2V2ZW4odW5zaWduZWQgY2hhciAq
c3RyLCB1bnNpZ25lZCBjaGFyICpzdHIyKQoreworICBpbnQgcDEscDIsZXNjX2luID0gRkFMU0U7
CisKKyAgd2hpbGUgKChwMSA9IChpbnQpKnN0cikgIT0gJ1wwJykgeworCisgICAgaWYgKFNKSVMx
KHAxKSkgeworICAgICAgaWYoKHAyID0gKGludCkqKCsrc3RyKSkgPT0gJ1wwJykgYnJlYWs7Cisg
ICAgICBpZiAoU0pJUzIocDIpKSB7CisgICAgICAgIF9zamlzX3NoaWZ0KCZwMSwmcDIpOworICAg
ICAgICBpZiAoIWVzY19pbikgeworICAgICAgICAgIGVzY19pbiA9IFRSVUU7CisgICAgICAgICAg
c3RyMiA9IF90b19qaXMoc3RyMik7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIENIQVJPVVQo
cDEpOworICAgICAgQ0hBUk9VVChwMik7CisgICAgICBzdHIrKzsKKyAgICAgIGNvbnRpbnVlOwor
ICAgIH0KKworI2lmZGVmIE5PX0hBTktBS1VfU0pJUworICAgIC8qIMi+s9EgU0pJUyCkz6Gitq/A
qcWqpMvBtLPRpMvK0aSopOsgKi8KKyAgICBpZiAoSEFOS0FUQShwMSkpIHsKKyAgICAgIHN0ciA9
IF9zamlzX2hhbjJ6ZW4oc3RyLCAmcDEsICZwMik7CisgICAgICBfc2ppc19zaGlmdCgmcDEsJnAy
KTsKKyAgICAgIGlmICghZXNjX2luKSB7CisgICAgICAgIGVzY19pbiA9IFRSVUU7CisgICAgICAg
IHN0cjIgPSBfdG9famlzKHN0cjIpOworICAgICAgfQorICAgICAgQ0hBUk9VVChwMSk7CisgICAg
ICBDSEFST1VUKHAyKTsKKyAgICAgIGNvbnRpbnVlOworICAgIH0KKyNlbmRpZgorCisgICAgaWYg
KGVzY19pbikgeworICAgICAgLyogTEYgLyBDUiCkzr7sueekz6GiwLW+76TLpailuaWxobyl16Wi
paalyKS1pOyk6yAqLworICAgICAgZXNjX2luID0gRkFMU0U7CisgICAgICBzdHIyID0gX3RvX2Fz
Y2lpKHN0cjIpOworICAgIH0KKyAgICBDSEFST1VUKHAxKTsKKyAgICBzdHIrKzsKKyAgfQorCisg
IGlmIChlc2NfaW4pCisgICAgc3RyMiA9IF90b19hc2NpaShzdHIyKTsKKyAgKnN0cjI9J1wwJzsK
K30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNK
SVMgpPIgRVVDIKTLytG0uaS5pOsgLS0gKi8KKworc3RhdGljIHZvaWQgX3NoaWZ0MmV1Yyh1bnNp
Z25lZCBjaGFyICpzdHIsIHVuc2lnbmVkIGNoYXIgKnN0cjIpCit7CisgIGludCBwMSxwMjsKKyAg
CisgIHdoaWxlICgocDEgPSAoaW50KSpzdHIpICE9ICdcMCcpIHsKKyAgICBpZiAoU0pJUzEocDEp
KSB7CisgICAgICBpZigocDIgPSAoaW50KSooKytzdHIpKSA9PSAnXDAnKSBicmVhazsKKyAgICAg
IGlmIChTSklTMihwMikpIHsKKyAgICAgICAgX3NqaXNfc2hpZnQoJnAxLCZwMik7CisgICAgICAg
IHAxICs9IDEyODsKKyAgICAgICAgcDIgKz0gMTI4OworICAgICAgfQorICAgICAgQ0hBUk9VVChw
MSk7CisgICAgICBDSEFST1VUKHAyKTsKKyAgICAgIHN0cisrOworICAgICAgY29udGludWU7Cisg
ICAgfQorCisjaWZkZWYgTk9fSEFOS0FLVV9TSklTCisgICAgLyogyL6z0SBTSklTIKTPoaK2r8Cp
xaqky8G0s9Gky8rRpKik6yAqLworICAgIGlmIChIQU5LQVRBKHAxKSkgeworICAgICAgc3RyID0g
X3NqaXNfaGFuMnplbihzdHIsJnAxLCZwMik7CisgICAgICBfc2ppc19zaGlmdCgmcDEsJnAyKTsK
KyAgICAgIHAxICs9IDEyODsKKyAgICAgIHAyICs9IDEyODsKKyAgICAgIENIQVJPVVQocDEpOwor
ICAgICAgQ0hBUk9VVChwMik7CisgICAgICBjb250aW51ZTsKKyAgICB9CisjZW5kaWYKKyAgICBD
SEFST1VUKHAxKTsKKyAgICBzdHIrKzsKKyAgfQorICAqc3RyMj0nXDAnOworfQorCisvKiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIMi+s9EgU0pJUyCk
8rzopOq9/KSvIC0tICovCisKK3N0YXRpYyB2b2lkIF9zaGlmdF9zZWxmKHVuc2lnbmVkIGNoYXIg
KnN0ciwgdW5zaWduZWQgY2hhciAqc3RyMikKK3sKKyAgaW50IHAxLHAyOworICAKKyAgd2hpbGUg
KChwMSA9IChpbnQpKnN0cikgIT0gJ1wwJykgeworI2lmZGVmIE5PX0hBTktBS1VfU0pJUworICAg
IC8qIMi+s9EgU0pJUyCkz6Gitq/AqcWqpMvBtLPRpMvK0aSopOsgKi8KKyAgICBpZiAoSEFOS0FU
QShwMSkpIHsKKyAgICAgIHN0ciA9IF9zamlzX2hhbjJ6ZW4oc3RyLCAmcDEsICZwMik7CisgICAg
ICBDSEFST1VUKHAxKTsKKyAgICAgIENIQVJPVVQocDIpOworICAgICAgY29udGludWU7CisgICAg
fQorI2VuZGlmCisgICAgQ0hBUk9VVChwMSk7CisgICAgc3RyKys7CisgIH0KKyAgKnN0cjI9J1ww
JzsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tRVVDIKSrpOkgSklTIKTYIC0tICovCisKKyNkZWZpbmUgSVNFVUMoQSkgICAgKEEg
Pj0gMTYxICYmIEEgPD0gMjU0KQorCitzdGF0aWMgdm9pZCBfZXVjMnNldmVuKHVuc2lnbmVkIGNo
YXIgKnN0ciwgdW5zaWduZWQgY2hhciAqc3RyMikKK3sKKyAgaW50IHAxLCBwMiwgZXNjX2luID0g
RkFMU0U7CisKKyAgd2hpbGUgKChwMSA9IChpbnQpKnN0cikgIT0gJ1wwJykgeworCisgICAgaWYg
KHAxID09IExGIHx8IHAxID09IENSKSB7CisgICAgICBpZiAoZXNjX2luKSB7CisgICAgICAgIGVz
Y19pbiA9IEZBTFNFOworICAgICAgICBzdHIyID0gX3RvX2FzY2lpKHN0cjIpOworICAgICAgfQor
ICAgICAgQ0hBUk9VVChwMSk7CisgICAgICBzdHIrKzsKKyAgICAgIGNvbnRpbnVlOworICAgIH0K
KworICAgIGlmIChJU0VVQyhwMSkpIHsKKyAgICAgIGlmKChwMiA9IChpbnQpKigrK3N0cikpID09
ICdcMCcpIGJyZWFrOworICAgICAgaWYgKElTRVVDKHAyKSkgeworCisJaWYgKCFlc2NfaW4pIHsK
KwkgIGVzY19pbiA9IFRSVUU7CisJICBzdHIyID1fdG9famlzKHN0cjIpOworCX0KKworCUNIQVJP
VVQocDEtMTI4KTsKKwlDSEFST1VUKHAyLTEyOCk7CisJc3RyKys7CisJY29udGludWU7CisgICAg
ICB9CisgICAgfQorCisgICAgaWYgKGVzY19pbikgeworICAgICAgZXNjX2luID0gRkFMU0U7Cisg
ICAgICBzdHIyID0gX3RvX2FzY2lpKHN0cjIpOworICAgIH0KKyAgICBDSEFST1VUKHAxKTsKKyAg
ICBzdHIrKzsKKyAgfQorICAqc3RyMj0nXDAnOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRVVDIKSrpOkgU0pJUyCky8rRtLkgLS0gKi8K
KyAKK3N0YXRpYyB2b2lkIF9ldWMyc2hpZnQodW5zaWduZWQgY2hhciAqc3RyLCB1bnNpZ25lZCBj
aGFyICpzdHIyKQoreworICBpbnQgcDEscDI7CisKKyAgd2hpbGUgKChwMSA9IChpbnQpKnN0cikg
IT0gJ1wwJykgeworICAgIGlmIChJU0VVQyhwMSkpIHsKKyAgICAgIGlmKChwMiA9IChpbnQpKigr
K3N0cikpID09ICdcMCcpIGJyZWFrOworICAgICAgaWYgKElTRVVDKHAyKSkgeworCXAxIC09IDEy
ODsKKyAgICAgICAgcDIgLT0gMTI4OworICAgICAgICBfamlzX3NoaWZ0KCZwMSwmcDIpOworICAg
ICAgfQorICAgICAgQ0hBUk9VVChwMSk7CisgICAgICBDSEFST1VUKHAyKTsKKyAgICAgIHN0cisr
OworICAgICAgY29udGludWU7CisgICAgfQorCisgICAgQ0hBUk9VVChwMSk7CisgICAgc3RyKys7
CisgIH0KKyAgKnN0cjI9J1wwJzsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gRVNDIKW3obylsaXzpbmk8qW5pa2lw6XXpLmk6yAtLS0tLSAqLworCitzdGF0
aWMgdW5zaWduZWQgY2hhciAqX3NraXBfZXNjKHVuc2lnbmVkIGNoYXIgKnN0ciwgaW50ICplc2Nf
aW4pIHsKKyAgaW50IGM7CisgIAorICBjID0gKGludCkqKCsrc3RyKTsKKyAgaWYgKChjID09ICck
JykgfHwgKGMgPT0gJygnKSkgc3RyKys7CisgIGlmICgoYyA9PSAnSycpIHx8IChjID09ICckJykp
ICplc2NfaW4gPSBUUlVFOworICBlbHNlICplc2NfaW4gPSBGQUxTRTsKKworICBpZigqc3RyICE9
ICdcMCcpIHN0cisrOworICByZXR1cm4gc3RyOworfQorCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEpJUyCk8iBTSklTIKTLytG0uaS5pOsgLS0g
Ki8KKworc3RhdGljIHZvaWQgX3NldmVuMnNoaWZ0KHVuc2lnbmVkIGNoYXIgKnN0ciwgdW5zaWdu
ZWQgY2hhciAqc3RyMikKK3sKKyAgaW50IHAxLCBwMiwgZXNjX2luID0gRkFMU0U7CisKKyAgd2hp
bGUgKChwMSA9IChpbnQpKnN0cikgIT0gJ1wwJykgeworCisgICAgLyogRVNDpbehvKWxpfOluaTy
pbmlraXDpdekuaTrICovCisgICAgaWYgKHAxID09IEVTQykgeworICAgICAgc3RyID0gX3NraXBf
ZXNjKHN0ciwgJmVzY19pbik7CisgICAgICBjb250aW51ZTsKKyAgICB9CisKKyAgICBpZiAocDEg
PT0gTEYgfHwgcDEgPT0gQ1IpIHsKKyAgICAgIGlmIChlc2NfaW4pIGVzY19pbiA9IEZBTFNFOwor
ICAgIH0KKworICAgIGlmKGVzY19pbikgeyAvKiBJU08tMjAyMi1KUCCls6G8pckgKi8KKyAgICAg
IGlmKChwMiA9IChpbnQpKigrK3N0cikpID09ICdcMCcpIGJyZWFrOworCisgICAgICBfamlzX3No
aWZ0KCZwMSwgJnAyKTsKKworICAgICAgQ0hBUk9VVChwMSk7CisgICAgICBDSEFST1VUKHAyKTsK
KyAgICB9ZWxzZXsgICAgICAgLyogQVNDSUkgpbOhvKXJICovCisgICAgICBDSEFST1VUKHAxKTsK
KyAgICB9CisgICAgc3RyKys7CisgIH0KKyAgKnN0cjIgPSAnXDAnOworfQorCisvKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gSklTIKTyIEVVQyCky8rR
tLmkuaTrIC0tICovCisKK3N0YXRpYyB2b2lkIF9zZXZlbjJldWModW5zaWduZWQgY2hhciAqc3Ry
LCB1bnNpZ25lZCBjaGFyICpzdHIyKQoreworICBpbnQgcDEsIGVzY19pbiA9IEZBTFNFOworCisg
IHdoaWxlICgocDEgPSAoaW50KSpzdHIpICE9ICdcMCcpIHsKKworICAgIC8qIEVTQ6W3obylsaXz
pbmk8qW5pa2lw6XXpLmk6yAqLworICAgIGlmIChwMSA9PSBFU0MpIHsKKyAgICAgIHN0ciA9IF9z
a2lwX2VzYyhzdHIsICZlc2NfaW4pOworICAgICAgY29udGludWU7CisgICAgfQorCisgICAgaWYg
KHAxID09IExGIHx8IHAxID09IENSKSB7CisgICAgICBpZiAoZXNjX2luKSBlc2NfaW4gPSBGQUxT
RTsKKyAgICB9CisKKyAgICBpZihlc2NfaW4pIHsgLyogSVNPLTIwMjItSlAgpbOhvKXJICovCisg
ICAgICBDSEFST1VUKHAxICsgMTI4KTsgCisgICAgICAKKyAgICAgIGlmKChwMSA9IChpbnQpKigr
K3N0cikpID09ICdcMCcpIGJyZWFrOworICAgICAgQ0hBUk9VVChwMSArIDEyOCk7CisgICAgfWVs
c2V7ICAgICAgIC8qIEFTQ0lJIKWzobylySAqLworICAgICAgQ0hBUk9VVChwMSk7CisgICAgfQor
ICAgIHN0cisrOworICB9CisgICpzdHIyID0gJ1wwJzsKK30KKworLyogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gUHVibGljILTYv/QgLS0gKi8KK2NoYXIgKnRvU3RyaW5nSklTKGNoYXIgKnN0cikg
eworICBpbnQgZGV0ZWN0ZWQ7CisgIHVuc2lnbmVkIGNoYXIgKmJ1ZiwgKnJldDsKKworICBpZigh
c3RyKSByZXR1cm4gKE5VTEwpOworICBkZXRlY3RlZCA9IGRldGVjdEthbmppQ29kZShzdHIpOwor
ICBpZihkZXRlY3RlZCA9PSBBU0NJSSB8fCBkZXRlY3RlZCA9PSBKSVMpCisgICAgcmV0dXJuIHN0
cmR1cChzdHIpOworCisgIGJ1ZiA9ICh1bnNpZ25lZCBjaGFyKiltYWxsb2Moc3RybGVuKHN0cikq
Mik7CisgIGlmICghYnVmKSByZXR1cm4gTlVMTDsKKworICBzd2l0Y2goZGV0ZWN0ZWQpIHsKKyAg
Y2FzZSBTSklTIDoKKyAgICBfc2hpZnQyc2V2ZW4oKHVuc2lnbmVkIGNoYXIgKilzdHIsIGJ1Zik7
CisgICAgYnJlYWs7CisgIGNhc2UgRVVDIDoKKyAgICBfZXVjMnNldmVuKCh1bnNpZ25lZCBjaGFy
ICopc3RyLCBidWYpOworICAgIGJyZWFrOworICBkZWZhdWx0OgorICAgIGZyZWUoYnVmKTsKKyAg
ICByZXR1cm4gc3RyZHVwKHN0cik7CisgICAgYnJlYWs7CisgIH0KKworICByZXQgPSBzdHJkdXAo
YnVmKTsKKyAgZnJlZShidWYpOworICByZXR1cm4gcmV0OworfQorCitjaGFyICp0b1N0cmluZ0VV
QyhjaGFyICpzdHIpIHsKKyAgaW50IGRldGVjdGVkOworICB1bnNpZ25lZCBjaGFyICpidWYsICpy
ZXQ7CisKKyAgaWYoIXN0cikgcmV0dXJuIChOVUxMKTsKKyAgZGV0ZWN0ZWQgPSBkZXRlY3RLYW5q
aUNvZGUoc3RyKTsKKyAgaWYoZGV0ZWN0ZWQgPT0gQVNDSUkgfHwgZGV0ZWN0ZWQgPT0gRVVDKSBy
ZXR1cm4gc3RyZHVwKHN0cik7CisKKyAgYnVmID0gKHVuc2lnbmVkIGNoYXIqKW1hbGxvYyhzdHJs
ZW4oc3RyKSoyKTsKKyAgaWYgKCFidWYpIHJldHVybiBOVUxMOworCisgIHN3aXRjaChkZXRlY3Rl
ZCkgeworICBjYXNlIFNKSVMgOgorICAgIF9zaGlmdDJldWMoKHVuc2lnbmVkIGNoYXIgKilzdHIs
IGJ1Zik7CisgICAgYnJlYWs7CisgIGNhc2UgSklTIDoKKyAgY2FzZSBORVcgOiBjYXNlIE9MRCA6
IGNhc2UgTkVDIDoKKyAgICAgX3NldmVuMmV1YygodW5zaWduZWQgY2hhciAqKXN0ciwgYnVmKTsK
KyAgICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBmcmVlKGJ1Zik7CisgICAgcmV0dXJuIHN0cmR1
cChzdHIpOworICAgIGJyZWFrOworICB9CisKKyAgcmV0ID0gc3RyZHVwKGJ1Zik7CisgIGZyZWUo
YnVmKTsKKyAgcmV0dXJuIHJldDsKK30KKworY2hhciAqdG9TdHJpbmdTSklTKGNoYXIgKnN0cikg
eworICBpbnQgZGV0ZWN0ZWQ7CisgIHVuc2lnbmVkIGNoYXIgKmJ1ZiwgKnJldDsKKworICBpZiAo
IXN0cikgcmV0dXJuIE5VTEw7CisgIGRldGVjdGVkID0gZGV0ZWN0S2FuamlDb2RlKHN0cik7Cisg
IGlmKGRldGVjdGVkID09IEFTQ0lJKSByZXR1cm4gc3RyZHVwKHN0cik7CisgIAorICBidWYgPSAo
dW5zaWduZWQgY2hhciopbWFsbG9jKHN0cmxlbihzdHIpKjIpOworICBpZiAoIWJ1ZikgcmV0dXJu
IE5VTEw7CisKKyAgc3dpdGNoKGRldGVjdGVkKSB7CisgIGNhc2UgTkVXIDogY2FzZSBPTEQgOiBj
YXNlIE5FQyA6CisgIGNhc2UgSklTIDoKKyAgICBfc2V2ZW4yc2hpZnQoKHVuc2lnbmVkIGNoYXIg
KilzdHIsIGJ1Zik7CisgICAgYnJlYWs7CisgIGNhc2UgRVVDIDoKKyAgICBfZXVjMnNoaWZ0KCh1
bnNpZ25lZCBjaGFyICopc3RyLCBidWYpOworICAgIGJyZWFrOworICBjYXNlIFNKSVMgOiAgCisg
IGRlZmF1bHQ6CisgICAgX3NoaWZ0X3NlbGYoKHVuc2lnbmVkIGNoYXIgKilzdHIsIGJ1Zik7Cisg
IH0KKworICByZXQgPSBzdHJkdXAoYnVmKTsKKyAgZnJlZShidWYpOworICByZXR1cm4gcmV0Owor
fQorCitjaGFyICp0b1N0cmluZ0F1dG8oY2hhciAqc3RyKSB7CisgIHN0YXRpYyBpbnQgIGpwY29k
ZSA9IC0xOworICBzdGF0aWMgY2hhciAqc2ppc19sb2NhbGVfbmFtZVtdID0ge1NKSVNfTE9DQUxF
X05BTUUsIE5VTEx9OworICBzdGF0aWMgY2hhciAqamlzX2xvY2FsZV9uYW1lW10gID0ge0pJU19M
T0NBTEVfTkFNRSwgTlVMTH07CisgIHN0YXRpYyBjaGFyICpldWNfbG9jYWxlX25hbWVbXSAgPSB7
RVVDX0xPQ0FMRV9OQU1FLCBOVUxMfTsKKyAgc3RhdGljIHN0cnVjdCBMT0NBTEVUQUJMRSB7Cisg
ICAgaW50IGNvZGU7CisgICAgY2hhciAqKm5hbWVfbGlzdDsKKyAgfSBsb2NhbGVfdGFibGVbXSA9
IHsge1NKSVMsIHNqaXNfbG9jYWxlX25hbWV9LAorCQkgICAgIHtFVUMsIGV1Y19sb2NhbGVfbmFt
ZX0sCisJCSAgICAge0pJUywgamlzX2xvY2FsZV9uYW1lfX07CisKKyAgaWYoIXN0cikgcmV0dXJu
IChOVUxMKTsKKworICBpZiAoanBjb2RlID09IC0xKSB7CisgICAgY2hhciAqY3R5cGUgPSBzZXRs
b2NhbGUoTENfQ1RZUEUsICIiKTsKKyAgICBpbnQgaSwgajsKKyAgICBmb3IoIGo9MDsganBjb2Rl
ID09IC0xICYmIAorCSAgICAgIGogPCBzaXplb2YobG9jYWxlX3RhYmxlKS9zaXplb2Yoc3RydWN0
IExPQ0FMRVRBQkxFKTsgaisrICkgeworICAgICAgY2hhciAqKm5hbWUgPSBsb2NhbGVfdGFibGVb
al0ubmFtZV9saXN0OworICAgICAgZm9yKCBpPTA7IG5hbWVbaV07IGkrKyApCisJaWYgKHN0cmNh
c2VjbXAoY3R5cGUsIG5hbWVbaV0pID09IDApIHsKKwkgIGpwY29kZSA9IGxvY2FsZV90YWJsZVtq
XS5jb2RlOworCSAgYnJlYWs7CisJfQorICAgIH0KKyAgICBpZihqcGNvZGUgPT0gLTEpCisgICAg
ICAgIGpwY29kZSA9IEFTQ0lJOworICB9CisKKyAgc3dpdGNoIChqcGNvZGUpIHsKKyAgICBjYXNl
IFNKSVM6CisgICAgICByZXR1cm4gKHRvU3RyaW5nU0pJUyhzdHIpKTsKKyAgICBicmVhazsKKyAg
ICBjYXNlIEpJUzoKKyAgICBjYXNlIE5FVyA6IGNhc2UgT0xEIDogY2FzZSBORUMgOgorICAgICAg
cmV0dXJuICh0b1N0cmluZ0pJUyhzdHIpKTsKKyAgICBicmVhazsKKyAgICBjYXNlIEVVQzoKKyAg
ICAgIHJldHVybiAodG9TdHJpbmdFVUMoc3RyKSk7CisgICAgYnJlYWs7CisgICAgZGVmYXVsdDoK
KyAgICAgIHJldHVybiAoc3RyZHVwKHN0cikpOworICAgIGJyZWFrOworICB9Cit9CmRpZmYgLXVy
TiBhMnBzLTQuMTMuT1JJRy9saWJqY29kZS9zYW1wbGUuYyBhMnBzLTQuMTMvbGliamNvZGUvc2Ft
cGxlLmMKLS0tIGEycHMtNC4xMy5PUklHL2xpYmpjb2RlL3NhbXBsZS5jCTE5NzAtMDEtMDEgMDk6
MDA6MDAuMDAwMDAwMDAwICswOTAwCisrKyBhMnBzLTQuMTMvbGliamNvZGUvc2FtcGxlLmMJMjAw
My0wOS0yNyAwNTo0NTowMi4wMDAwMDAwMDAgKzA5MDAKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAg
c2FtcGxlLmMgLS0gpbWl86XXpeul16XtpbCl6aXgICAgYnkuIMHSuPcgt6/PuiwgMTk5NgorCisg
IKSzpM6l16XtpbCl6aXgpM+hoqW1pfOl16Xrpdel7aWwpeml4KTHpLmhoworICDJuL3gxv7Oz6Sr
pOnGyaTfuf6k86TApcalraW5pcik8qWqpdelt6XnpfOky6SipO+ku6TGoaIKKyAgpbOhvKXJytG0
uaS3pN6kuaGjCisqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4K
KyNpbmNsdWRlICJqbGliLmgiCisKK2V4dGVybiB2b2lkIHByaW50RGV0ZWN0Q29kZShpbnQgY29k
ZSk7CisKK3ZvaWQgbWFpbihpbnQgYWMsIGNoYXIgKmF2W10pIHsKKyAgY2hhciBidWZmZXJbQlVG
U0laXTsKKyAgaW50IG1vZGU9SklTOworCisgIGlmKGFjID09IDIpIHsKKyAgICBpZighc3RyY21w
KGF2WzFdLCAiLWUiKSkgbW9kZSA9IEVVQzsKKyAgICBpZighc3RyY21wKGF2WzFdLCAiLXMiKSkg
bW9kZSA9U0pJUzsKKyAgfQorCisgIHdoaWxlKGZnZXRzKGJ1ZmZlcixCVUZTSVosc3RkaW4pICE9
IE5VTEwpIHsKKyAgICBzd2l0Y2gobW9kZSkgeworICAgIGNhc2UgRVVDOgorICAgICAgcHJpbnRm
KCIlcyIsIHRvU3RyaW5nRVVDKGJ1ZmZlcikpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBTSklT
OgorICAgICAgcHJpbnRmKCIlcyIsIHRvU3RyaW5nU0pJUyhidWZmZXIpKTsKKyAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICBwcmludGYoIiVzIiwgdG9TdHJpbmdKSVMoYnVmZmVyKSk7
CisgICAgICBicmVhazsKKyAgICB9CisgIH0KKyAgZXhpdCgwKTsKK30KKworCisKZGlmZiAtdXJO
IGEycHMtNC4xMy5PUklHL3BzL2Jhc2UucHMgYTJwcy00LjEzL3BzL2Jhc2UucHMKLS0tIGEycHMt
NC4xMy5PUklHL3BzL2Jhc2UucHMJMjAwMy0wOS0yNyAwNDo0MDo0MS4wMDAwMDAwMDAgKzA5MDAK
KysrIGEycHMtNC4xMy9wcy9iYXNlLnBzCTIwMDMtMDktMjcgMDU6NDU6MDIuMDAwMDAwMDAwICsw
OTAwCkBAIC0xNTMsNyArMTUzLDExIEBACiAlIFJldHVybiB0aGUgeSBzaXplIG9mIHRoZSBjdXJy
ZW50IGZvbnQKICUgLSA9PiBmb250c2l6ZQogL2N1cnJlbnRmb250c2l6ZSB7Ci0gIGN1cnJlbnRm
b250IC9Gb250TWF0cml4IGdldCAzIGdldCAxMDAwIG11bAorICBjdXJyZW50Zm9udCAvRm9udFR5
cGUgZ2V0IDAgZXEgeworICAgIGN1cnJlbnRmb250IC9Gb250TWF0cml4IGdldCAzIGdldAorICB9
eworICAgIGN1cnJlbnRmb250IC9Gb250TWF0cml4IGdldCAzIGdldCAxMDAwIG11bAorICB9IGlm
ZWxzZQogfSBiaW5kIGRlZgogCiAlIHJlZW5jb2RlIHRoZSBmb250CkBAIC0yMDAsNiArMjA0LDE0
NCBAQAogICBlbmQgCiB9IGJpbmQgZGVmCiAKKyUgY29tcG9zaXRlIGZvbnRzIGZvciBBU0NJSS1F
VUMgbWl4ZWQgc3RyaW5nCislIFZlcnNpb24gMS4yIDEvMzEvMTk5MAorJSBPcmlnbmFsIEtlbidp
Y2hpIEhBTkRBIChoYW5kYUBldGwuZ28uanApCislIE1vZGlmaWVkIE5vcmlvIEthdGF5YW1hIChr
YXRheWFtYUByZC5uYWNzaXMuYWMuanApLDE5OTgKKyUgRXh0ZW5kICYgRml4IEtvamkgTmFrYW1h
cnUgKG1hcnVAb24uY3Mua2Vpby5hYy5qcCksIDE5OTkKKyUgQW55b25lIGNhbiBmcmVlbHkgY29w
eSwgbW9kaWZ5LCBkaXN0cmlidXRlIHRoaXMgcHJvZ3JhbS4KKworL2NvcHlmb250IHsJJSBmb250
LWRpYyBleHRyYS1lbnRyeS1jb3VudCAgY29weWZvbnQgIGZvbnQtZGljCisJMSBpbmRleCBtYXhs
ZW5ndGggYWRkIGRpY3QgYmVnaW4KKwl7CTEgaW5kZXggL0ZJRCBuZSAyIGluZGV4IC9VbmlxdWVJ
RCBuZSBhbmQKKwkJe2RlZn0ge3BvcCBwb3B9IGlmZWxzZQorCX0gZm9yYWxsCisJY3VycmVudGRp
Y3QKKwllbmQKK30gYmluZCBkZWYKKworL2NvbXBvc2l0ZWZvbnQgeyAlIEFTQ0lJRm9udE5hbWUg
RVVDRm9udE5hbWUgUm9tYW5TY2FsZSBSb21hbk9mZnNldCBSb3QoVC9GKSBjb21wb3NpdGVmb250
IGZvbnQKKyAgICAvUm9tYW5Sb3RhdGlvbiBleGNoIGRlZgorICAgIC9Sb21hbk9mZnNldCBleGNo
IGRlZgorICAgIC9Sb21hblNjYWxlIGV4Y2ggZGVmCisgICAgdXNlcmRpY3QgL2ZpeGV1Y2ZvbnRf
ZGljdCBrbm93biBub3QgeworCXVzZXJkaWN0IGJlZ2luCisJICAgIC9maXhldWNmb250X2RpY3Qg
MiBkaWN0IGJlZ2luCisJCS9VcHBlckJ5dGVFbmNvZGluZyBbCisJCSAgICAxNiMwMCAxIDE2IzIw
IHsgcG9wIDAgfSBmb3IKKwkJICAgIDE2IzIxIDEgMTYjMjggeyAxNiMyMCBzdWIgfSBmb3IKKwkJ
ICAgIDE2IzI5IDEgMTYjMkYgeyBwb3AgMCB9IGZvcgorCQkgICAgMTYjMzAgMSAxNiM3NCB7IDE2
IzI3IHN1YiB9IGZvcgorCQkgICAgMTYjNzUgMSAxNiNGRiB7IHBvcCAwIH0gZm9yCisJCV0gZGVm
CisJICAgICAgICAvTG93ZXJCeXRlRW5jb2RpbmcgWworCQkgICAgMTYjMDAgMSAxNiNBMCB7IHBv
cCAvLm5vdGRlZiB9IGZvcgorCQkgICAgMTYjQTEgMSAxNiNGRSB7IDE2IzgwIHN1YiAxNiAyIHN0
cmluZyBjdnJzCisJCQkJICAgIChjWFgpIGR1cCAxIDQgLTEgcm9sbAorCQkJCSAgICBwdXRpbnRl
cnZhbCBjdm4gfSBmb3IKKwkJICAgIC8ubm90ZGVmCisJCV0gZGVmCisJCWN1cnJlbnRkaWN0CisJ
ICAgIGVuZCBkZWYKKwllbmQKKyAgICB9IGlmCisgICAgZmluZGZvbnQgZHVwIC9Gb250VHlwZSBn
ZXQgMCBlcSB7CisJMTQgZGljdCBiZWdpbgorCSAgICAlCisJICAgICUgNys4IGJpdCBFVUMgZm9u
dAorCSAgICAlCisJICAgIDEyIGRpY3QgYmVnaW4KKwkJL0VVQ0ZvbnQgZXhjaCBkZWYKKwkJL0Zv
bnRJbmZvICg3KzggYml0IEVVQyBmb250KSByZWFkb25seSBkZWYKKwkJL1BhaW50VHlwZSAwIGRl
ZgorCQkvRm9udFR5cGUgMCBkZWYKKwkJL0ZvbnRNYXRyaXggbWF0cml4IGRlZgorCQklIC9Gb250
TmFtZQorCQkvRW5jb2RpbmcgZml4ZXVjZm9udF9kaWN0IC9VcHBlckJ5dGVFbmNvZGluZyBnZXQg
ZGVmCisJCS9GTWFwVHlwZSAyIGRlZgorCQlFVUNGb250IC9XTW9kZSBrbm93bgorCQl7IEVVQ0Zv
bnQgL1dNb2RlIGdldCAvV01vZGUgZXhjaCBkZWYgfQorCQl7IC9XTW9kZSAwIGRlZiB9IGlmZWxz
ZQorCQkvRkRlcFZlY3RvciBbCisJCSAgICBFVUNGb250IC9GRGVwVmVjdG9yIGdldCAwIGdldAor
CQkgICAgWyAxNiMyMSAxIDE2IzI4IHt9IGZvciAxNiMzMCAxIDE2Izc0IHt9IGZvciBdCisJCSAg
ICB7CisJCQkxMyBkaWN0IGJlZ2luCisJCQkgICAgL0VVQ0ZvbnQgRVVDRm9udCBkZWYKKwkJCSAg
ICAvVXBwZXJCeXRlIGV4Y2ggMTYjODAgYWRkIGRlZgkKKwkJCSAgICAlIC9Gb250TmFtZQorCQkJ
ICAgIC9Gb250SW5mbyAoRVVDIGxvd2VyIGJ5dGUgZm9udCkgcmVhZG9ubHkgZGVmCisJCQkgICAg
L1BhaW50VHlwZSAwIGRlZgorCQkJICAgIC9Gb250VHlwZSAzIGRlZgorCQkJICAgIC9Gb250TWF0
cml4IG1hdHJpeCBkZWYKKwkJCSAgICAvRm9udEJCb3ggezAgMCAwIDB9IGRlZgorCQkJICAgIC9F
bmNvZGluZworCQkJCWZpeGV1Y2ZvbnRfZGljdCAvTG93ZXJCeXRlRW5jb2RpbmcgZ2V0IGRlZgor
CQkJICAgICUgL1VuaXF1ZUlECisJCQkgICAgJSAvV01vZGUKKwkJCSAgICAvQnVpbGRDaGFyIHsK
KwkJCQlnc2F2ZQorCQkJCWV4Y2ggZHVwIC9FVUNGb250IGdldCBzZXRmb250CisJCQkJL1VwcGVy
Qnl0ZSBnZXQKKwkJCQkyIHN0cmluZworCQkJCWR1cCAwIDQgLTEgcm9sbCBwdXQKKwkJCQlkdXAg
MSA0IC0xIHJvbGwgcHV0CisJCQkJZHVwIHN0cmluZ3dpZHRoIHNldGNoYXJ3aWR0aAorCQkJCTAg
MCBtb3ZldG8gc2hvdworCQkJCWdyZXN0b3JlCisJCQkgICAgfSBiaW5kIGRlZgorCQkJICAgIGN1
cnJlbnRkaWN0CisJCQllbmQKKwkJCS9sb3dlcmJ5dGVmb250IGV4Y2ggZGVmaW5lZm9udAorCQkg
ICAgfSBmb3JhbGwKKwkJXSBkZWYKKwkJY3VycmVudGRpY3QKKwkgICAgZW5kCisJICAgIC9ldWNm
b250IGV4Y2ggZGVmaW5lZm9udAorCSAgICBleGNoCisJICAgIGZpbmRmb250IDEgY29weWZvbnQg
ZHVwIGJlZ2luCisJCVJvbWFuUm90YXRpb24geworCQkJL0ZvbnRNYXRyaXggRm9udE1hdHJpeAor
CQkJWyAwIFJvbWFuU2NhbGUgbmVnIFJvbWFuU2NhbGUgMCBSb21hbk9mZnNldCBuZWcgMCBdCisJ
CQltYXRyaXggY29uY2F0bWF0cml4IGRlZgorCQl9eworCQkJL0ZvbnRNYXRyaXggRm9udE1hdHJp
eAorCQkJWyBSb21hblNjYWxlIDAgMCBSb21hblNjYWxlIDAgUm9tYW5PZmZzZXQgXSBtYXRyaXgg
Y29uY2F0bWF0cml4CisJCQlkZWYKKwkJCS9DRGV2UHJvYworCQkJICAgIHtwb3AgcG9wIHBvcCBw
b3AgMCBleGNoIC0xMDAwIGV4Y2ggMiBkaXYgODgwfSBkZWYKKwkJfSBpZmVsc2UKKwkgICAgZW5k
CisJICAgIC9hc2NpaWZvbnQgZXhjaCBkZWZpbmVmb250CisJICAgIGV4Y2gKKwkgICAgL0ZEZXBW
ZWN0b3IgWyA0IDIgcm9sbCBdIGRlZgorCSAgICAvRm9udFR5cGUgMCBkZWYKKwkgICAgL1dNb2Rl
IDAgZGVmCisJICAgIC9GTWFwVHlwZSA0IGRlZgorCSAgICAvRm9udE1hdHJpeCBtYXRyaXggZGVm
CisJICAgIC9FbmNvZGluZyBbMCAxXSBkZWYKKwkgICAgL0ZvbnRCQm94IHswIDAgMCAwfSBkZWYK
KyUJICAgIC9Gb250SGVpZ2h0IDEuMCBkZWYgJSBYWFhYCisJICAgIC9Gb250SGVpZ2h0IFJvbWFu
U2NhbGUgMS4wIGdlIHsgUm9tYW5TY2FsZSB9eyAxLjAgfSBpZmVsc2UgZGVmCisJICAgIC9EZXNj
ZW50IC0wLjMgZGVmICAgJSBYWFhYCisJICAgIGN1cnJlbnRkaWN0CisJZW5kCisJL3RtcGZvbnQg
ZXhjaCBkZWZpbmVmb250CisJcG9wCisJL3RtcGZvbnQgZmluZGZvbnQKKyAgICB9eworCXBvcCBm
aW5kZm9udCAwIGNvcHlmb250CisgICAgfSBpZmVsc2UKK30gZGVmCQorCisvc2xhbnRmb250IHsJ
JSBGb250TmFtZSBzbGFudC1kZWdyZWUgIHNsYW50Zm9udCAgZm9udCcKKyAgICBleGNoIGZpbmRm
b250IDEgY29weWZvbnQgYmVnaW4KKyAgICBbIDEgMCA0IC0xIHJvbGwgMSAwIDAgXSBGb250TWF0
cml4IGV4Y2ggbWF0cml4IGNvbmNhdG1hdHJpeAorICAgIC9Gb250TWF0cml4IGV4Y2ggZGVmCisg
ICAgY3VycmVudGRpY3QKKyAgICBlbmQKK30gZGVmCisKICUgRnVuY3Rpb24gcHJpbnQgbGluZSBu
dW1iZXIgKDxzdHJpbmc+ICMgLSkKIC8jIHsKICAgZ3NhdmUKZGlmZiAtdXJOIGEycHMtNC4xMy5P
UklHL3NyYy9NYWtlZmlsZS5hbSBhMnBzLTQuMTMvc3JjL01ha2VmaWxlLmFtCi0tLSBhMnBzLTQu
MTMuT1JJRy9zcmMvTWFrZWZpbGUuYW0JMjAwMy0wOS0yNyAwNDo0MDo0Mi4wMDAwMDAwMDAgKzA5
MDAKKysrIGEycHMtNC4xMy9zcmMvTWFrZWZpbGUuYW0JMjAwMy0wOS0yNyAwNTo1MzoyMy4wMDAw
MDAwMDAgKzA5MDAKQEAgLTQ5LDggKzQ5LDggQEAKICMgSSBkb24ndCByZWFsbHkgdW5kZXJzdGFu
ZCB3aHkgSSBoYXZlIHRvIHB1dCBzcmNkaXIgaGVyZSwgYnV0CiAjIGl0IGlzIG5lZWRlZCBmb3Ig
eWFjYyBhbmQgbGV4IGZpbGVzIChzZWVtcyByZWxhdGVkIHRvICNsaW5lLCBidXQKICMgSSByZWFs
bHkgZG9uJ3QgdW5kZXJzdGFuZCB3aHkpLi4uCi1JTkNMVURFUyA9IC1JLi4gLUkkKHNyY2Rpcikg
LUkkKHRvcF9zcmNkaXIpL2xpYiAtSSQodG9wX2J1aWxkZGlyKS9pbnRsCitJTkNMVURFUyA9IC1J
Li4gLUkkKHNyY2RpcikgLUkkKHRvcF9zcmNkaXIpL2xpYiAtSSQodG9wX2J1aWxkZGlyKS9pbnRs
IC1JJCh0b3BfYnVpbGRkaXIpL2xpYmpjb2RlCiAKLWEycHNfTERBREQgPSAkKHRvcF9idWlsZGRp
cikvbGliL2xpYmEycHMubGEgQExJQklOVExAIC1sbQorYTJwc19MREFERCA9ICQodG9wX2J1aWxk
ZGlyKS9saWIvbGliYTJwcy5sYSBATElCSU5UTEAgQExFWExJQkAgQExJQkpDT0RFTElCU0AgLWxt
CiAKIEVYVFJBX0RJU1QgPSAkKEJVSUxUX1NPVVJDRVMpCmRpZmYgLXVyTiBhMnBzLTQuMTMuT1JJ
Ry9zcmMvTWFrZWZpbGUuaW4gYTJwcy00LjEzL3NyYy9NYWtlZmlsZS5pbgotLS0gYTJwcy00LjEz
Lk9SSUcvc3JjL01ha2VmaWxlLmluCTIwMDMtMDktMjcgMDU6MDc6MzcuMDAwMDAwMDAwICswOTAw
CisrKyBhMnBzLTQuMTMvc3JjL01ha2VmaWxlLmluCTIwMDMtMDktMjcgMDU6NTQ6MTguMDAwMDAw
MDAwICswOTAwCkBAIC0zMDQsOCArMzA0LDggQEAKICMgSSBkb24ndCByZWFsbHkgdW5kZXJzdGFu
ZCB3aHkgSSBoYXZlIHRvIHB1dCBzcmNkaXIgaGVyZSwgYnV0CiAjIGl0IGlzIG5lZWRlZCBmb3Ig
eWFjYyBhbmQgbGV4IGZpbGVzIChzZWVtcyByZWxhdGVkIHRvICNsaW5lLCBidXQKICMgSSByZWFs
bHkgZG9uJ3QgdW5kZXJzdGFuZCB3aHkpLi4uCi1JTkNMVURFUyA9IC1JLi4gLUkkKHNyY2Rpcikg
LUkkKHRvcF9zcmNkaXIpL2xpYiAtSSQodG9wX2J1aWxkZGlyKS9pbnRsCitJTkNMVURFUyA9IC1J
Li4gLUkkKHNyY2RpcikgLUkkKHRvcF9zcmNkaXIpL2xpYiAtSSQodG9wX2J1aWxkZGlyKS9pbnRs
IC1JJCh0b3BfYnVpbGRkaXIpL2xpYmpjb2RlCi1hMnBzX0xEQUREID0gJCh0b3BfYnVpbGRkaXIp
L2xpYi9saWJhMnBzLmxhIEBMSUJJTlRMQCAtbG0KK2EycHNfTERBREQgPSAkKHRvcF9idWlsZGRp
cikvbGliL2xpYmEycHMubGEgQExJQklOVExAIEBMRVhMSUJAIEBMSUJKQ09ERUxJQlNAIC1sbQog
RVhUUkFfRElTVCA9ICQoQlVJTFRfU09VUkNFUykKIGFsbDogJChCVUlMVF9TT1VSQ0VTKQogCSQo
TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFsbC1hbQpkaWZmIC11ck4gYTJwcy00LjEzLk9SSUcvc3Jj
L2J1ZmZlci5jIGEycHMtNC4xMy9zcmMvYnVmZmVyLmMKLS0tIGEycHMtNC4xMy5PUklHL3NyYy9i
dWZmZXIuYwkyMDAzLTA5LTI3IDA0OjQwOjQyLjAwMDAwMDAwMCArMDkwMAorKysgYTJwcy00LjEz
L3NyYy9idWZmZXIuYwkyMDAzLTA5LTI3IDA1OjQ1OjAyLjAwMDAwMDAwMCArMDkwMApAQCAtNDEs
NiArNDEsMTAgQEAKICNpbmNsdWRlICJhcmdtYXRjaC5oIgogI2luY2x1ZGUgImJ1ZmZlci5oIgog
I2luY2x1ZGUgPGFzc2VydC5oPgorI2lmZGVmIFVTRV9MSUJKQ09ERQorI2luY2x1ZGUgImpsaWIu
aCIKK2V4dGVybiB1c2VfbGliamNvZGU7CisjZW5kaWYKIAwKIC8qKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyoJCSAJSGFu
ZGxpbmcgb2YgdGhlIHZhcmlvdXMgZW9sIHN0eWxlcwkqLwpAQCAtNDE4LDkgKzQyMiwyMSBAQAog
ICAgICBtYXRjaF9rZXl3b3JkLCB3aGljaCBsb29rcyBvbmUgY2hhciBhZnRlciB0aGUgY3VycmVu
dCBjaGFyLiAgV2l0aAogICAgICB0aGlzIHNlbnRpbmVsLCB3aGljaCBpcyBwcm9iYWJseSBub3Qg
aW4gdGhlIGFscGhhYmV0LCB3ZSBzYXZlIGEKICAgICAgdGVzdCBvbiB0aGUgbGVuZ3RoIG9mIHRo
ZSBidWZmZXIuICovCisjaWZkZWYgVVNFX0xJQkpDT0RFCisgIG9ic3RhY2tfMWdyb3cgKCZidWZm
ZXItPm9ic3RhY2ssICdcMCcpOworICBpZiAodXNlX2xpYmpjb2RlID09IHRydWUpCisgICAgewor
ICAgICAgaWYoYnVmZmVyLT5jb250ZW50KSBmcmVlKGJ1ZmZlci0+Y29udGVudCk7CisgICAgICBi
dWZmZXItPmNvbnRlbnQgPSB0b1N0cmluZ0VVQyhvYnN0YWNrX2ZpbmlzaCAoJmJ1ZmZlci0+b2Jz
dGFjaykpOworICAgIH0KKyAgZWxzZQorICAgICAgYnVmZmVyLT5jb250ZW50ID0gKHVjaGFyICop
IG9ic3RhY2tfZmluaXNoICgmYnVmZmVyLT5vYnN0YWNrKTsKKyAgYnVmZmVyLT5sZW4gPSBzdHJs
ZW4oYnVmZmVyLT5jb250ZW50KTsKKyNlbHNlCiAgIGJ1ZmZlci0+bGVuID0gb2JzdGFja19vYmpl
Y3Rfc2l6ZSAoJmJ1ZmZlci0+b2JzdGFjayk7CiAgIG9ic3RhY2tfMWdyb3cgKCZidWZmZXItPm9i
c3RhY2ssICdcMCcpOwogICBidWZmZXItPmNvbnRlbnQgPSAodWNoYXIgKikgb2JzdGFja19maW5p
c2ggKCZidWZmZXItPm9ic3RhY2spOworI2VuZGlmCiAKICAgLyogT25lIG1vcmUgbGluZSByZWFk
ICovCiAgIGJ1ZmZlci0+bGluZSsrOwo=
</data>        

          </attachment>
    </bug>

</bugzilla>