<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>171677</bug_id>
          
          <creation_ts>2017-05-04 11:01:41 -0700</creation_ts>
          <short_desc>[GTK][WPE] Bump GStreamer version to 1.12 in jhbuild</short_desc>
          <delta_ts>2017-12-12 06:58:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>Other</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Carlos Alberto Lopez Perez">clopez</assigned_to>
          <cc>alex</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>cturner</cc>
    
    <cc>eocanha</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1304703</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-05-04 11:01:41 -0700</bug_when>
    <thetext>Bump GStreamer version to 1.12 in jhbuild: https://gstreamer.freedesktop.org/releases/1.12/

We had some pretty bad timing on the 1.10.4 upgrade. ;) It&apos;s very important to test with the latest version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304714</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-05-04 11:30:17 -0700</bug_when>
    <thetext>When doing this, most likely the patch gst-plugins-good-0001-rtpbin-pipeline-gets-an-EOS-when-any-rtpsources-byes.patch has to be recovered back. Check: 

https://bugs.webkit.org/show_bug.cgi?id=171595#c13</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305023</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-05-04 23:06:31 -0700</bug_when>
    <thetext>I don&apos;t think the idea of the new policy is to always use the latest stable version as soon as it&apos;s released. The idea of the policy is to try to test with versions as close as possible to what most of the users will end up using. That&apos;s why I proposed to bump versions at the beginning of the cycle to the current stable version, that hopefully would be .1 at the time. In bug #170500 I proposed versions bumps checking also what distros ship. So, I would wait a bit before using gst 1.12 that was released yesterday. We all know that the actual stable version is not usually .0 but .1 or even .2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305042</commentid>
    <comment_count>3</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-05-05 01:08:04 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #2)
&gt; I don&apos;t think the idea of the new policy is to always use the latest stable
&gt; version as soon as it&apos;s released. The idea of the policy is to try to test
&gt; with versions as close as possible to what most of the users will end up
&gt; using. That&apos;s why I proposed to bump versions at the beginning of the cycle
&gt; to the current stable version, that hopefully would be .1 at the time. In
&gt; bug #170500 I proposed versions bumps checking also what distros ship. So, I
&gt; would wait a bit before using gst 1.12 that was released yesterday. We all
&gt; know that the actual stable version is not usually .0 but .1 or even .2.

Exactly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305087</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-05-05 05:47:40 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #2)
&gt; I don&apos;t think the idea of the new policy is to always use the latest stable
&gt; version as soon as it&apos;s released. The idea of the policy is to try to test
&gt; with versions as close as possible to what most of the users will end up
&gt; using. That&apos;s why I proposed to bump versions at the beginning of the cycle
&gt; to the current stable version, that hopefully would be .1 at the time. In
&gt; bug #170500 I proposed versions bumps checking also what distros ship. So, I
&gt; would wait a bit before using gst 1.12 that was released yesterday. We all
&gt; know that the actual stable version is not usually .0 but .1 or even .2.

I think that usually works, but this time around GStreamer and GNOME release cycles seem to no longer be in sync. We are definitely going to be shipping GStreamer 1.12 to Fedora users next month.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305091</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-05-05 06:01:04 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #4)
&gt; (In reply to Carlos Garcia Campos from comment #2)
&gt; &gt; I don&apos;t think the idea of the new policy is to always use the latest stable
&gt; &gt; version as soon as it&apos;s released. The idea of the policy is to try to test
&gt; &gt; with versions as close as possible to what most of the users will end up
&gt; &gt; using. That&apos;s why I proposed to bump versions at the beginning of the cycle
&gt; &gt; to the current stable version, that hopefully would be .1 at the time. In
&gt; &gt; bug #170500 I proposed versions bumps checking also what distros ship. So, I
&gt; &gt; would wait a bit before using gst 1.12 that was released yesterday. We all
&gt; &gt; know that the actual stable version is not usually .0 but .1 or even .2.
&gt; 
&gt; I think that usually works, but this time around GStreamer and GNOME release
&gt; cycles seem to no longer be in sync. We are definitely going to be shipping
&gt; GStreamer 1.12 to Fedora users next month.

Are you going to deal with test failures and bugs in WebKit and/or GST?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305101</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-05-05 07:39:29 -0700</bug_when>
    <thetext>I can certainly update expectations and file WebKit bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305119</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-05-05 08:36:52 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #6)
&gt; I can certainly update expectations and file WebKit bugs.

No, I don&apos;t want tests skipped forever, but bugs fixed instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305151</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-05-05 09:33:12 -0700</bug_when>
    <thetext>Well if you prefer not knowing about bugs affecting our users at all, then sure, let&apos;s stick with 1.10.4 for a while....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345220</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-09-04 09:17:26 -0700</bug_when>
    <thetext>Is now a good time to bump gstreamer modules to 1.12? Debian testing is now shipping 1.12</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345350</commentid>
    <comment_count>10</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-09-04 23:54:04 -0700</bug_when>
    <thetext>I don&apos;t object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345353</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-09-05 00:00:51 -0700</bug_when>
    <thetext>Yes, perfect timing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380630</commentid>
    <comment_count>12</comment_count>
      <attachid>329105</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-12-12 04:34:30 -0800</bug_when>
    <thetext>Created attachment 329105
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380635</commentid>
    <comment_count>13</comment_count>
      <attachid>329107</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-12-12 04:43:36 -0800</bug_when>
    <thetext>Created attachment 329107
Patch

Minor cosmetic fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380646</commentid>
    <comment_count>14</comment_count>
      <attachid>329107</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-12-12 06:58:13 -0800</bug_when>
    <thetext>Comment on attachment 329107
Patch

Clearing flags on attachment: 329107

Committed r225780: &lt;https://trac.webkit.org/changeset/225780&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380647</commentid>
    <comment_count>15</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-12-12 06:58:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329105</attachid>
            <date>2017-12-12 04:34:30 -0800</date>
            <delta_ts>2017-12-12 04:43:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171677-20171212133428.patch</filename>
            <type>text/plain</type>
            <size>55043</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NzY3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjFiMzVlNTE0OTkyZjc0YWRlNjk2YTdiMWU4NzA5MjBj
MzYwYzIxMy4uNWFlM2RjMGI5ZGQzODJiODkzOTc1NmQ5NDQ5Mzc2M2I5NzkyNjFkZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDE3LTEyLTEyICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0gQnVtcCBHU3RyZWFtZXIgdmVyc2lvbiB0byAx
LjEyIGluIGpoYnVpbGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3MTY3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEJ1bXAgZ3N0cmVhbWVyIHJlbGF0ZWQgbW9kdWxlcyBhbmQgcmViYXNlIHBhdGNoZXMg
c3RpbGwgbmVlZGVkIGFuZCBub3QgbWVyZ2VkCisKKyAgICAgICAgKiBnc3RyZWFtZXIvamhidWls
ZC5tb2R1bGVzOgorICAgICAgICAqIGdzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2Qt
MDAwMy1ydHBiaW4tcmVjZWl2ZS1idW5kbGUtc3VwcG9ydC5wYXRjaDogUmVtb3ZlZC4gVGhpcyB3
YXMgbmVlZGVkIGZvciBPcGVuV2ViUlRDLiBOb3QgbG9uZ2VyIHN1cHBvcnRlZC4KKyAgICAgICAg
KiBnc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDUtc291cGh0dHBzcmMtY29v
a2llLWphci1hbmQtY29udGV4dC1xdWVyeS1zdXBwb3J0LnBhdGNoOiBSZWJhc2VkLgorICAgICAg
ICAqIGdzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNi1xdGRlbXV4LWFkZC1j
b250ZXh0LWZvci1hLXByZWZlcnJlZC1wcm90ZWN0aW9uLnBhdGNoOiBSZWJhc2VkLgorICAgICAg
ICAqIGdzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwOC1xdGRlbXV4LWFsc28t
cHVzaC1idWZmZXJzLXdpdGhvdXQtZW5jcnlwdGlvbi1pbmZvLWluLnBhdGNoOiBSZWJhc2VkLgor
ICAgICAgICAqIGdzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwOS1xdGRlbXV4
LWZpeC1hc3NlcnQtd2hlbi1tb29mLWNvbnRhaW5zLW9uZS1zYW1wbGUucGF0Y2g6IEFkZGVkIGEg
bm90ZSBhYm91dCBtZXJnZSBjb21taXQgbm90IHN0aWxsIGluIDEuMTIuNC4KKwogMjAxNy0xMi0x
MSAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBb
V2luQ2Fpcm9dIERMTExhdW5jaGVyTWFpbiBzaG91bGQgdXNlIFNldERsbERpcmVjdG9yeQpkaWZm
IC0tZ2l0IGEvVG9vbHMvZ3N0cmVhbWVyL2poYnVpbGQubW9kdWxlcyBiL1Rvb2xzL2dzdHJlYW1l
ci9qaGJ1aWxkLm1vZHVsZXMKaW5kZXggZWE2OTgxNTQzODVkOWZmMDk0ZTdmMjlhMzk2OTIzMzU0
Y2VkNzE2OS4uZjk2MjY1YWZhMmE0ODRkMzhhYThlYjdmODI2ODdmNTdhYmQzYWVhOCAxMDA2NDQK
LS0tIGEvVG9vbHMvZ3N0cmVhbWVyL2poYnVpbGQubW9kdWxlcworKysgYi9Ub29scy9nc3RyZWFt
ZXIvamhidWlsZC5tb2R1bGVzCkBAIC0yMiwxMCArMjIsOSBAQAogICAgICAgaHJlZj0iaHR0cDov
L2Rvd25sb2Fkcy53ZWJtcHJvamVjdC5vcmcvcmVsZWFzZXMvd2VibS8iLz4KIAogICA8YXV0b3Rv
b2xzIGlkPSJvcmMiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZ3RrLWRvYyIgYXV0b2dlbi1zaD0i
Y29uZmlndXJlIj4KLSAgICA8YnJhbmNoIG1vZHVsZT0ib3JjL29yYy0wLjQuMTcudGFyLmd6IiB2
ZXJzaW9uPSIwLjQuMTciCisgICAgPGJyYW5jaCBtb2R1bGU9Im9yYy9vcmMtJHt2ZXJzaW9ufS50
YXIueHoiIHZlcnNpb249IjAuNC4yOCIKICAgICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKLSAg
ICAgICAgICAgIGhhc2g9InNoYTI1Njo0ZmM3Y2NhNDhjNTlmZmYyM2FmZWU3OGZiNjQyY2RiZGUw
MDFmNTY0MDFjOGY0N2I5NWExNjU3OGQxZDVkN2U4IgotICAgICAgICAgICAgbWQ1c3VtPSJhZjFi
ZjNkYWI5ZTY5ZjNjMzZmMzg5Mjg1ZTJhMTJhMSIvPgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2
OmJmY2Q3YzY1NjNiMDU2NzIzODZjNGVlZGZjNGMwZDRhMGExMmI0YjQ3NzViNzRlYzZkZWI4OGZj
MmJjZDgzY2UiLz4KICAgPC9hdXRvdG9vbHM+CiAKICAgPGF1dG90b29scyBpZD0ib3BlbmgyNjQi
IHN1cHBvcnRzLW5vbi1zcmNkaXItYnVpbGRzPSJubyIgYXV0b2dlbi1zaD0icHNldWRvLWNvbmZp
Z3VyZSI+CkBAIC00Nyw5ICs0Niw5IEBACiAgICAgPGRlcGVuZGVuY2llcz4KICAgICAgIDxkZXAg
cGFja2FnZT0ib3JjIi8+CiAgICAgPC9kZXBlbmRlbmNpZXM+Ci0gICAgPGJyYW5jaCBtb2R1bGU9
ImdzdHJlYW1lci9nc3RyZWFtZXItJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuMTAuNSIK
KyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0cmVhbWVyL2dzdHJlYW1lci0ke3ZlcnNpb259LnRhci54
eiIgdmVyc2lvbj0iMS4xMi40IgogICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgotICAgICAg
ICAgICAgaGFzaD0ic2hhMjU2OmJjMDYyNDM2MDA4MTdmNjM3MDI5ZGEyOWQwODlkNTkwOGQxZDI2
NjU0MmY2OGJmNjYyNmExMGM1ZjA1ZjFmMWQiPgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjVh
ODcwNGFhNGMyZWViMDRkYTE5MmM0YTk5NDJmOTRmODYwYWMxYTU4NWRlOTBkOWY5MTRiYWMyNmE5
NzA2NzQiPgogICAgICAgPHBhdGNoIGZpbGU9ImdzdHJlYW1lci0wMDAxLXByb3RlY3Rpb24tYWRk
ZWQtZnVuY3Rpb24tdG8tZmlsdGVyLXN5c3RlbS1pZHMucGF0Y2giIHN0cmlwPSIxIi8+CiAgICAg
PC9icmFuY2g+CiAgIDwvYXV0b3Rvb2xzPgpAQCAtNjMsOSArNjIsOSBAQAogICAgIDxkZXBlbmRl
bmNpZXM+CiAgICAgICA8ZGVwIHBhY2thZ2U9ImdzdHJlYW1lciIvPgogICAgIDwvZGVwZW5kZW5j
aWVzPgotICAgIDxicmFuY2ggbW9kdWxlPSJnc3QtcGx1Z2lucy1iYXNlL2dzdC1wbHVnaW5zLWJh
c2UtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuMTAuNSIKKyAgICA8YnJhbmNoIG1vZHVs
ZT0iZ3N0LXBsdWdpbnMtYmFzZS9nc3QtcGx1Z2lucy1iYXNlLSR7dmVyc2lvbn0udGFyLnh6IiB2
ZXJzaW9uPSIxLjEyLjQiCiAgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCi0gICAgICAgICAg
ICBoYXNoPSJzaGEyNTY6MWM0MDFhNzliZDFlNDUyMWM2ZWYxYjY2NTc5YmRkZWRkOTEzNmUxNjRl
NTQ3OTJhYWI0YmZjZjM0ODViZjlhNyIvPgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjRjMzA2
YjAzZGYwMjEyZjFiODkwMzc4NGUyOWJiMzQ5MzMxOWJhMTllYmViZjEzYjBjNTZhMTc4NzAyOTIy
ODIiLz4KICAgPC9hdXRvdG9vbHM+CiAKICAgPGF1dG90b29scyBpZD0iZ3N0LXBsdWdpbnMtZ29v
ZCIgYXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWV4YW1wbGVz
IC0tZGlzYWJsZS1ndGstZG9jIC0tZGlzYWJsZS1pbnRyb3NwZWN0aW9uIj4KQEAgLTc0LDEwICs3
Myw5IEBACiAgICAgICA8ZGVwIHBhY2thZ2U9ImxpYnZweCIvPgogICAgIDwvZGVwZW5kZW5jaWVz
PgogCi0gICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1wbHVnaW5zLWdvb2QvZ3N0LXBsdWdpbnMtZ29v
ZC0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS4xMC41IgorICAgIDxicmFuY2ggbW9kdWxl
PSJnc3QtcGx1Z2lucy1nb29kL2dzdC1wbHVnaW5zLWdvb2QtJHt2ZXJzaW9ufS50YXIueHoiIHZl
cnNpb249IjEuMTIuNCIKICAgICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKLSAgICAgICAgICAg
IGhhc2g9InNoYTI1NjpiZTA1M2Y2ZWQ3MTZlZWI1MTdjZWMxNDhjZWM2MzdjZGNlNTcxYzZlMDRk
NWMyMTQwOWUyODc2ZmI3NmM3NjM5Ij4KLSAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1n
b29kLTAwMDMtcnRwYmluLXJlY2VpdmUtYnVuZGxlLXN1cHBvcnQucGF0Y2giIHN0cmlwPSIxIi8+
CisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6NjQ5ZjQ5YmVjNjA4OTJkNDdlZTY3MzFiOTIyNjY5
NzRjNzIzNTU0ZGExYzY2NDlmMjEyOTYwOTc3MTVlYjk1NyI+CiAgICAgICA8cGF0Y2ggZmlsZT0i
Z3N0LXBsdWdpbnMtZ29vZC0wMDA1LXNvdXBodHRwc3JjLWNvb2tpZS1qYXItYW5kLWNvbnRleHQt
cXVlcnktc3VwcG9ydC5wYXRjaCIgc3RyaXA9IjEiLz4KICAgICAgIDxwYXRjaCBmaWxlPSJnc3Qt
cGx1Z2lucy1nb29kLTAwMDYtcXRkZW11eC1hZGQtY29udGV4dC1mb3ItYS1wcmVmZXJyZWQtcHJv
dGVjdGlvbi5wYXRjaCIgc3RyaXA9IjEiLz4KICAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lu
cy1nb29kLTAwMDgtcXRkZW11eC1hbHNvLXB1c2gtYnVmZmVycy13aXRob3V0LWVuY3J5cHRpb24t
aW5mby1pbi5wYXRjaCIgc3RyaXA9IjEiLz4KQEAgLTkxLDE4ICs4OSwxOSBAQAogICAgICAgPGRl
cCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1iYXNlIi8+CiAgICAgICA8ZGVwIHBhY2thZ2U9Im9wZW5o
MjY0Ii8+CiAgICAgPC9kZXBlbmRlbmNpZXM+Ci0gICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1wbHVn
aW5zLWJhZC9nc3QtcGx1Z2lucy1iYWQtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuMTAu
NSIKKyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LXBsdWdpbnMtYmFkL2dzdC1wbHVnaW5zLWJhZC0k
e3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS4xMi40IgogICAgICAgICAgICAgcmVwbz0iZ3N0
cmVhbWVyIgotICAgICAgICAgICAgaGFzaD0ic2hhMjU2OmM1ODA2MDQwYmI4M2I0M2JlODZjZTU5
MmU2YTE5YzVkODNkNzc3NmY3ZDlmNDM0ZWI0YjkxMWM0ZWZmZjM1NzMiLz4KKyAgICAgICAgICAg
IGhhc2g9InNoYTI1NjowYzc4NTdiZTE2Njg2ZDVjMWJhNmUzNGJkMzM4NjY0ZDNkNDU5OWQzMjcx
NGE4ZWNhNWM4YTQxYTEwMWUyZDA4Ij4KKyAgICA8L2JyYW5jaD4KICAgPC9hdXRvdG9vbHM+CiAK
ICAgPGF1dG90b29scyBpZD0iZ3N0LWxpYmF2IiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiIGF1dG9n
ZW5hcmdzPSItLXdpdGgtbGliYXYtZXh0cmEtY29uZmlndXJlPSctLWRpc2FibGUteWFzbScgLS1k
aXNhYmxlLWd0ay1kb2MiPgogICAgIDxkZXBlbmRlbmNpZXM+CiAgICAgICA8ZGVwIHBhY2thZ2U9
ImdzdC1wbHVnaW5zLWJhc2UiLz4KICAgICA8L2RlcGVuZGVuY2llcz4KLSAgICA8YnJhbmNoIG1v
ZHVsZT0iZ3N0LWxpYmF2L2dzdC1saWJhdi0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS4x
MC41IgorICAgIDxicmFuY2ggbW9kdWxlPSJnc3QtbGliYXYvZ3N0LWxpYmF2LSR7dmVyc2lvbn0u
dGFyLnh6IiB2ZXJzaW9uPSIxLjEyLjQiCiAgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCi0g
ICAgICAgICAgICBoYXNoPSJzaGEyNTY6ZTRkMmYzMTVmNDc4ZDQ3MjgxZmJmZGZiZDU5MGE2M2Qy
MzcwNGNhMzc5MTFkNzE0MmQ1OTkyNjE2ZjRiMjhkMyIvPgorICAgICAgICAgICAgaGFzaD0ic2hh
MjU2OjJhNTZhYTVkMmQ4Y2Q5MTJmMmJjZTE3ZjE3NDcxM2QyYzQxN2NhMjk4ZjFmOWMyOGVlNjZk
NGFhMWUxZDllNjIiLz4KICAgPC9hdXRvdG9vbHM+CiAKIDwvbW9kdWxlc2V0PgpkaWZmIC0tZ2l0
IGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAzLXJ0cGJpbi1y
ZWNlaXZlLWJ1bmRsZS1zdXBwb3J0LnBhdGNoIGIvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0
LXBsdWdpbnMtZ29vZC0wMDAzLXJ0cGJpbi1yZWNlaXZlLWJ1bmRsZS1zdXBwb3J0LnBhdGNoCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZjg5YzgxOTk4YmRjYTVkZTg0ODIzNWYxMDMx
MWZhNzM5Yzk3YmE3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwMy1ydHBiaW4t
cmVjZWl2ZS1idW5kbGUtc3VwcG9ydC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMTggKzAs
MCBAQAotRnJvbSBkY2QzY2U5NzUxY2RlZjBiNWFiMWZhMTE4MzU1ZjkyYmRmZTgyY2IzIE1vbiBT
ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlh
LmNvbT4KLURhdGU6IFdlZCwgMTYgTm92IDIwMTYgMDg6NTY6MzQgKzAxMDAKLVN1YmplY3Q6IFtQ
QVRDSF0gcnRwYmluOiByZWNlaXZlIGJ1bmRsZSBzdXBwb3J0Ci0KLUEgbmV3IHNpZ25hbCBuYW1l
ZCBvbi1idW5kbGVkLXNzcmMgaXMgcHJvdmlkZWQgYW5kIGNhbiBiZQotdXNlZCBieSB0aGUgYXBw
bGljYXRpb24gdG8gcmVkaXJlY3QgYSBzdHJlYW0gdG8gYSBkaWZmZXJlbnQKLUdzdFJ0cFNlc3Np
b24gb3IgdG8ga2VlcCB0aGUgUlRYIHN0cmVhbSBncm91cGVkIHdpdGhpbiB0aGUKLUdzdFJ0cFNl
c3Npb24gb2YgdGhlIHNhbWUgbWVkaWEgdHlwZS4KLQotaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5v
cmcvc2hvd19idWcuY2dpP2lkPTc3Mjc0MAotLS0tCi0gZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5z
LWdvb2QtcGx1Z2lucy5zaWduYWxzIHwgICA4ICsKLSBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4u
YyAgICAgICAgICAgICAgICAgICAgfCA1NjIgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KLSBn
c3QvcnRwbWFuYWdlci9nc3RydHBiaW4uaCAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwotIHRl
c3RzL2NoZWNrL01ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArCi0gdGVz
dHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZSAgICAgICAgICAgICAgIHwgICAxICsKLSB0ZXN0
cy9jaGVjay9lbGVtZW50cy9ydHBidW5kbGUuYyAgICAgICAgICAgICAgfCAzOTAgKysrKysrKysr
KysrKysrKysrCi0gdGVzdHMvY2hlY2svbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAg
IHwgICAxICsKLSB0ZXN0cy9leGFtcGxlcy9ydHAvLmdpdGlnbm9yZSAgICAgICAgICAgICAgICAg
fCAgIDIgKwotIHRlc3RzL2V4YW1wbGVzL3J0cC9NYWtlZmlsZS5hbSAgICAgICAgICAgICAgICB8
ICAxMCArLQotIHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtcnRwYnVuZGxlLmMgICAgICAgICB8
IDI2NiArKysrKysrKysrKysKLSB0ZXN0cy9leGFtcGxlcy9ydHAvc2VydmVyLXJ0cGJ1bmRsZS5j
ICAgICAgICAgfCAxNzkgKysrKysrKysKLSAxMSBmaWxlcyBjaGFuZ2VkLCAxMjY1IGluc2VydGlv
bnMoKyksIDE2MCBkZWxldGlvbnMoLSkKLSBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvY2hlY2sv
ZWxlbWVudHMvcnRwYnVuZGxlLmMKLSBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvZXhhbXBsZXMv
cnRwL2NsaWVudC1ydHBidW5kbGUuYwotIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9leGFtcGxl
cy9ydHAvc2VydmVyLXJ0cGJ1bmRsZS5jCi0KLWRpZmYgLS1naXQgYS9kb2NzL3BsdWdpbnMvZ3N0
LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnNpZ25hbHMgYi9kb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMt
Z29vZC1wbHVnaW5zLnNpZ25hbHMKLWluZGV4IDNkYjE3ZTkuLjQ0YmJkZGEgMTAwNjQ0Ci0tLS0g
YS9kb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnNpZ25hbHMKLSsrKyBiL2Rv
Y3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuc2lnbmFscwotQEAgLTM3NSw2ICsz
NzUsMTQgQEAgZ3VpbnQgIGFyZzEKLSA8L1NJR05BTD4KLSAKLSA8U0lHTkFMPgotKzxOQU1FPkdz
dFJ0cEJpbjo6b24tYnVuZGxlZC1zc3JjPC9OQU1FPgotKzxSRVRVUk5TPmd1aW50PC9SRVRVUk5T
PgotKzxGTEFHUz5sPC9GTEFHUz4KLStHc3RSdHBCaW4gKmdzdHJ0cGJpbgotK2d1aW50ICBhcmcx
Ci0rPC9TSUdOQUw+Ci0rCi0rPFNJR05BTD4KLSA8TkFNRT5Hc3RSdHBKaXR0ZXJCdWZmZXI6OmNs
ZWFyLXB0LW1hcDwvTkFNRT4KLSA8UkVUVVJOUz52b2lkPC9SRVRVUk5TPgotIDxGTEFHUz5sYTwv
RkxBR1M+Ci1kaWZmIC0tZ2l0IGEvZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmMgYi9nc3QvcnRw
bWFuYWdlci9nc3RydHBiaW4uYwotaW5kZXggNjQ4YWRiOS4uZjU4ZGUwMSAxMDA2NDQKLS0tLSBh
L2dzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jCi0rKysgYi9nc3QvcnRwbWFuYWdlci9nc3RydHBi
aW4uYwotQEAgLTUzLDYgKzUzLDEzIEBACi0gICogU1NSQyBpbiB0aGUgUlRQIHBhY2tldHMgdG8g
aXRzIG93biBTU1JDIGFuZCB3aWwgZm9yd2FyZCB0aGUgcGFja2V0cyBvbiB0aGUKLSAgKiBzZW5k
X3J0cF9zcmNfXCV1IHBhZCBhZnRlciB1cGRhdGluZyBpdHMgaW50ZXJuYWwgc3RhdGUuCi0gICoK
LSsgKiAjR3N0UnRwQmluIGNhbiBhbHNvIGRlbXVsdGlwbGV4IGluY29taW5nIGJ1bmRsZWQgc3Ry
ZWFtcy4gVGhlIGZpcnN0Ci0rICogI0dzdFJ0cFNlc3Npb24gd2lsbCBoYXZlIGEgI0dzdFJ0cFNz
cmNEZW11eCBlbGVtZW50IHNwbGl0dGluZyB0aGUgc3RyZWFtcwotKyAqIGJhc2VkIG9uIHRoZWly
IFNTUkMgYW5kIHBvdGVudGlhbGx5IGRpc3BhdGNoZWQgdG8gYSBkaWZmZXJlbnQgI0dzdFJ0cFNl
c3Npb24uCi0rICogQmVjYXVzZSByZXRyYW5zbWlzc2lvbiBTU1JDcyBuZWVkIHRvIGJlIG1lcmdl
ZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIG1lZGlhCi0rICogc3RyZWFtIHRoZSAjR3N0UnRwQmlu
Ojpvbi1idW5kbGVkLXNzcmMgc2lnbmFsIGlzIGVtaXR0ZWQgc28gdGhhdCB0aGUKLSsgKiBhcHBs
aWNhdGlvbiBjYW4gZmluZCBvdXQgdG8gd2hpY2ggc2Vzc2lvbiB0aGUgU1NSQyBiZWxvbmdzLgot
KyAqCi0gICogVGhlIHNlc3Npb24gbWFuYWdlciBuZWVkcyB0aGUgY2xvY2stcmF0ZSBvZiB0aGUg
cGF5bG9hZCB0eXBlcyBpdCBpcyBoYW5kbGluZwotICAqIGFuZCB3aWxsIHNpZ25hbCB0aGUgI0dz
dFJ0cFNlc3Npb246OnJlcXVlc3QtcHQtbWFwIHNpZ25hbCB3aGVuIGl0IG5lZWRzIHN1Y2ggYQot
ICAqIG1hcHBpbmcuIE9uZSBjYW4gY2xlYXIgdGhlIGNhY2hlZCB2YWx1ZXMgd2l0aCB0aGUgI0dz
dFJ0cFNlc3Npb246OmNsZWFyLXB0LW1hcAotQEAgLTI3Niw2ICsyODMsOCBAQCBlbnVtCi0gICBT
SUdOQUxfT05fTkVXX1NFTkRFUl9TU1JDLAotICAgU0lHTkFMX09OX1NFTkRFUl9TU1JDX0FDVElW
RSwKLSAKLSsgIFNJR05BTF9PTl9CVU5ETEVEX1NTUkMsCi0rCi0gICBMQVNUX1NJR05BTAotIH07
Ci0gCi1AQCAtMzYyLDYgKzM3MSwxNCBAQCBzdGF0aWMgdm9pZCByZW1vdmVfc2VuZF9ydHAgKEdz
dFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Npb24pOwotIHN0YXRpYyB2
b2lkIHJlbW92ZV9ydGNwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFJ0cEJpblNlc3Npb24gKiBz
ZXNzaW9uKTsKLSBzdGF0aWMgdm9pZCBmcmVlX2NsaWVudCAoR3N0UnRwQmluQ2xpZW50ICogY2xp
ZW50LCBHc3RSdHBCaW4gKiBiaW4pOwotIHN0YXRpYyB2b2lkIGZyZWVfc3RyZWFtIChHc3RSdHBC
aW5TdHJlYW0gKiBzdHJlYW0sIEdzdFJ0cEJpbiAqIGJpbik7Ci0rc3RhdGljIEdzdFJ0cEJpblNl
c3Npb24gKmNyZWF0ZV9zZXNzaW9uIChHc3RSdHBCaW4gKiBydHBiaW4sIGdpbnQgaWQpOwotK3N0
YXRpYyBHc3RQYWQgKmNvbXBsZXRlX3Nlc3Npb25fc2luayAoR3N0UnRwQmluICogcnRwYmluLAot
KyAgICBHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbiwgZ2Jvb2xlYW4gYnVuZGxlX2RlbXV4ZXJf
bmVlZGVkKTsKLStzdGF0aWMgdm9pZAotK2NvbXBsZXRlX3Nlc3Npb25fcmVjZWl2ZXIgKEdzdFJ0
cEJpbiAqIHJ0cGJpbiwgR3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Npb24sCi0rICAgIGd1aW50IHNl
c3NpZCk7Ci0rc3RhdGljIEdzdFBhZCAqY29tcGxldGVfc2Vzc2lvbl9ydGNwIChHc3RSdHBCaW4g
KiBydHBiaW4sCi0rICAgIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uLCBndWludCBzZXNzaWQs
IGdib29sZWFuIGJ1bmRsZV9kZW11eGVyX25lZWRlZCk7Ci0gCi0gLyogTWFuYWdlcyB0aGUgUlRQ
IHN0cmVhbSBmb3Igb25lIFNTUkMuCi0gICoKLUBAIC00MjgsNiArNDQ1LDEyIEBAIHN0cnVjdCBf
R3N0UnRwQmluU2Vzc2lvbgotICAgZ3Vsb25nIGRlbXV4X25ld3BhZF9zaWc7Ci0gICBndWxvbmcg
ZGVtdXhfcGFkcmVtb3ZlZF9zaWc7Ci0gCi0rICAvKiBCdW5kbGluZyBzdXBwb3J0ICovCi0rICBH
c3RFbGVtZW50ICpydHBfZnVubmVsOwotKyAgR3N0RWxlbWVudCAqcnRjcF9mdW5uZWw7Ci0rICBH
c3RFbGVtZW50ICpidW5kbGVfZGVtdXg7Ci0rICBndWxvbmcgYnVuZGxlX2RlbXV4X25ld3BhZF9z
aWc7Ci0rCi0gICBHTXV0ZXggbG9jazsKLSAKLSAgIC8qIGxpc3Qgb2YgR3N0UnRwQmluU3RyZWFt
ICovCi1AQCAtNjI5LDYgKzY1Miw5NiBAQCBzc3JjX2RlbXV4X3BhZF9yZW1vdmVkIChHc3RFbGVt
ZW50ICogZWxlbWVudCwgZ3VpbnQgc3NyYywgR3N0UGFkICogcGFkLAotICAgR1NUX1JUUF9CSU5f
VU5MT0NLIChydHBiaW4pOwotIH0KLSAKLStzdGF0aWMgdm9pZAotK25ld19idW5kbGVkX3NzcmNf
cGFkX2ZvdW5kIChHc3RFbGVtZW50ICogZWxlbWVudCwgZ3VpbnQgc3NyYywgR3N0UGFkICogcGFk
LAotKyAgICBHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbikKLSt7Ci0rICBHVmFsdWUgcmVzdWx0
ID0gR19WQUxVRV9JTklUOwotKyAgR1ZhbHVlIHBhcmFtc1syXSA9IHsgR19WQUxVRV9JTklULCBH
X1ZBTFVFX0lOSVQgfTsKLSsgIGd1aW50IHNlc3Npb25faWQgPSAwOwotKyAgR3N0UnRwQmluU2Vz
c2lvbiAqdGFyZ2V0X3Nlc3Npb24gPSBOVUxMOwotKyAgR3N0UnRwQmluICpydHBiaW4gPSBzZXNz
aW9uLT5iaW47Ci0rICBnY2hhciAqbmFtZTsKLSsgIEdzdFBhZCAqc3JjX3BhZDsKLSsgIEdzdFBh
ZCAqcmVjdl9ydHBfc2luayA9IE5VTEw7Ci0rICBHc3RQYWQgKnJlY3ZfcnRjcF9zaW5rID0gTlVM
TDsKLSsgIEdzdFBhZExpbmtSZXR1cm4gcmV0OwotKwotKyAgR1NUX1JUUF9CSU5fRFlOX0xPQ0sg
KHJ0cGJpbik7Ci0rICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJuZXcgYnVuZGxlZCBTU1JD
IHBhZCAlMDh4LCAlczolcyIsIHNzcmMsCi0rICAgICAgR1NUX0RFQlVHX1BBRF9OQU1FIChwYWQp
KTsKLSsKLSsgIGdfdmFsdWVfaW5pdCAoJnJlc3VsdCwgR19UWVBFX1VJTlQpOwotKyAgZ192YWx1
ZV9pbml0ICgmcGFyYW1zWzBdLCBHU1RfVFlQRV9FTEVNRU5UKTsKLSsgIGdfdmFsdWVfc2V0X29i
amVjdCAoJnBhcmFtc1swXSwgcnRwYmluKTsKLSsgIGdfdmFsdWVfaW5pdCAoJnBhcmFtc1sxXSwg
R19UWVBFX1VJTlQpOwotKyAgZ192YWx1ZV9zZXRfdWludCAoJnBhcmFtc1sxXSwgc3NyYyk7Ci0r
Ci0rICBnX3NpZ25hbF9lbWl0diAocGFyYW1zLAotKyAgICAgIGdzdF9ydHBfYmluX3NpZ25hbHNb
U0lHTkFMX09OX0JVTkRMRURfU1NSQ10sIDAsICZyZXN1bHQpOwotKyAgZ192YWx1ZV91bnNldCAo
JnBhcmFtc1swXSk7Ci0rCi0rICBzZXNzaW9uX2lkID0gZ192YWx1ZV9nZXRfdWludCAoJnJlc3Vs
dCk7Ci0rICBpZiAoc2Vzc2lvbl9pZCA9PSAwKSB7Ci0rICAgIHRhcmdldF9zZXNzaW9uID0gc2Vz
c2lvbjsKLSsgIH0gZWxzZSB7Ci0rICAgIHRhcmdldF9zZXNzaW9uID0gZmluZF9zZXNzaW9uX2J5
X2lkIChydHBiaW4sIChnaW50KSBzZXNzaW9uX2lkKTsKLSsgICAgaWYgKCF0YXJnZXRfc2Vzc2lv
bikgewotKyAgICAgIHRhcmdldF9zZXNzaW9uID0gY3JlYXRlX3Nlc3Npb24gKHJ0cGJpbiwgc2Vz
c2lvbl9pZCk7Ci0rICAgIH0KLSsgICAgaWYgKCF0YXJnZXRfc2Vzc2lvbi0+cmVjdl9ydHBfc2lu
aykgewotKyAgICAgIHJlY3ZfcnRwX3NpbmsgPSBjb21wbGV0ZV9zZXNzaW9uX3NpbmsgKHJ0cGJp
biwgdGFyZ2V0X3Nlc3Npb24sIEZBTFNFKTsKLSsgICAgfQotKwotKyAgICBpZiAoIXRhcmdldF9z
ZXNzaW9uLT5yZWN2X3J0cF9zcmMpCi0rICAgICAgY29tcGxldGVfc2Vzc2lvbl9yZWNlaXZlciAo
cnRwYmluLCB0YXJnZXRfc2Vzc2lvbiwgc2Vzc2lvbl9pZCk7Ci0rCi0rICAgIGlmICghdGFyZ2V0
X3Nlc3Npb24tPnJlY3ZfcnRjcF9zaW5rKSB7Ci0rICAgICAgcmVjdl9ydGNwX3NpbmsgPQotKyAg
ICAgICAgICBjb21wbGV0ZV9zZXNzaW9uX3J0Y3AgKHJ0cGJpbiwgdGFyZ2V0X3Nlc3Npb24sIHNl
c3Npb25faWQsIEZBTFNFKTsKLSsgICAgfQotKyAgfQotKwotKyAgR1NUX0RFQlVHX09CSkVDVCAo
cnRwYmluLCAiQXNzaWduaW5nIGJ1bmRsZWQgc3NyYyAldSB0byBzZXNzaW9uICV1Iiwgc3NyYywK
LSsgICAgICBzZXNzaW9uX2lkKTsKLSsKLSsgIGlmICghcmVjdl9ydHBfc2luaykgewotKyAgICBy
ZWN2X3J0cF9zaW5rID0KLSsgICAgICAgIGdzdF9lbGVtZW50X2dldF9yZXF1ZXN0X3BhZCAodGFy
Z2V0X3Nlc3Npb24tPnJ0cF9mdW5uZWwsICJzaW5rXyV1Iik7Ci0rICB9Ci0rCi0rICBpZiAoIXJl
Y3ZfcnRjcF9zaW5rKSB7Ci0rICAgIHJlY3ZfcnRjcF9zaW5rID0KLSsgICAgICAgIGdzdF9lbGVt
ZW50X2dldF9yZXF1ZXN0X3BhZCAodGFyZ2V0X3Nlc3Npb24tPnJ0Y3BfZnVubmVsLCAic2lua18l
dSIpOwotKyAgfQotKwotKyAgbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoInNyY18ldSIsIHNzcmMp
OwotKyAgc3JjX3BhZCA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkIChlbGVtZW50LCBuYW1l
KTsKLSsgIHJldCA9IGdzdF9wYWRfbGluayAoc3JjX3BhZCwgcmVjdl9ydHBfc2luayk7Ci0rICBn
X2ZyZWUgKG5hbWUpOwotKyAgZ3N0X29iamVjdF91bnJlZiAoc3JjX3BhZCk7Ci0rICBnc3Rfb2Jq
ZWN0X3VucmVmIChyZWN2X3J0cF9zaW5rKTsKLSsgIGlmIChyZXQgIT0gR1NUX1BBRF9MSU5LX09L
KSB7Ci0rICAgIGdfd2FybmluZwotKyAgICAgICAgKCJydHBiaW46IGZhaWxlZCB0byBsaW5rIGJ1
bmRsZSBkZW11eGVyIHRvIHJlY2VpdmUgcnRwIGZ1bm5lbCBmb3Igc2Vzc2lvbiAldSIsCi0rICAg
ICAgICBzZXNzaW9uX2lkKTsKLSsgIH0KLSsKLSsgIG5hbWUgPSBnX3N0cmR1cF9wcmludGYgKCJy
dGNwX3NyY18ldSIsIHNzcmMpOwotKyAgc3JjX3BhZCA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNf
cGFkIChlbGVtZW50LCBuYW1lKTsKLSsgIGdzdF9wYWRfbGluayAoc3JjX3BhZCwgcmVjdl9ydGNw
X3NpbmspOwotKyAgZ19mcmVlIChuYW1lKTsKLSsgIGdzdF9vYmplY3RfdW5yZWYgKHNyY19wYWQp
OwotKyAgZ3N0X29iamVjdF91bnJlZiAocmVjdl9ydGNwX3NpbmspOwotKyAgaWYgKHJldCAhPSBH
U1RfUEFEX0xJTktfT0spIHsKLSsgICAgZ193YXJuaW5nCi0rICAgICAgICAoInJ0cGJpbjogZmFp
bGVkIHRvIGxpbmsgYnVuZGxlIGRlbXV4ZXIgdG8gcmVjZWl2ZSBydGNwIHNpbmsgcGFkIGZvciBz
ZXNzaW9uICV1IiwKLSsgICAgICAgIHNlc3Npb25faWQpOwotKyAgfQotKwotKyAgR1NUX1JUUF9C
SU5fRFlOX1VOTE9DSyAocnRwYmluKTsKLSt9Ci0rCi0gLyogY3JlYXRlIGEgc2Vzc2lvbiB3aXRo
IHRoZSBnaXZlbiBpZC4gIE11c3QgYmUgY2FsbGVkIHdpdGggUlRQX0JJTl9MT0NLICovCi0gc3Rh
dGljIEdzdFJ0cEJpblNlc3Npb24gKgotIGNyZWF0ZV9zZXNzaW9uIChHc3RSdHBCaW4gKiBydHBi
aW4sIGdpbnQgaWQpCi1AQCAtNjQ5LDYgKzc2MiwxMCBAQCBjcmVhdGVfc2Vzc2lvbiAoR3N0UnRw
QmluICogcnRwYmluLCBnaW50IGlkKQotICAgc2Vzcy0+YmluID0gcnRwYmluOwotICAgc2Vzcy0+
c2Vzc2lvbiA9IHNlc3Npb247Ci0gICBzZXNzLT5kZW11eCA9IGRlbXV4OwotKwotKyAgc2Vzcy0+
cnRwX2Z1bm5lbCA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSAoImZ1bm5lbCIsIE5VTEwpOwot
KyAgc2Vzcy0+cnRjcF9mdW5uZWwgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UgKCJmdW5uZWwi
LCBOVUxMKTsKLSsKLSAgIHNlc3MtPnB0bWFwID0gZ19oYXNoX3RhYmxlX25ld19mdWxsIChOVUxM
LCBOVUxMLCBOVUxMLAotICAgICAgIChHRGVzdHJveU5vdGlmeSkgZ3N0X2NhcHNfdW5yZWYpOwot
ICAgcnRwYmluLT5zZXNzaW9ucyA9IGdfc2xpc3RfcHJlcGVuZCAocnRwYmluLT5zZXNzaW9ucywg
c2Vzcyk7Ci1AQCAtNjk2LDYgKzgxMyw4IEBAIGNyZWF0ZV9zZXNzaW9uIChHc3RSdHBCaW4gKiBy
dHBiaW4sIGdpbnQgaWQpCi0gCi0gICBnc3RfYmluX2FkZCAoR1NUX0JJTl9DQVNUIChydHBiaW4p
LCBzZXNzaW9uKTsKLSAgIGdzdF9iaW5fYWRkIChHU1RfQklOX0NBU1QgKHJ0cGJpbiksIGRlbXV4
KTsKLSsgIGdzdF9iaW5fYWRkIChHU1RfQklOX0NBU1QgKHJ0cGJpbiksIHNlc3MtPnJ0cF9mdW5u
ZWwpOwotKyAgZ3N0X2Jpbl9hZGQgKEdTVF9CSU5fQ0FTVCAocnRwYmluKSwgc2Vzcy0+cnRjcF9m
dW5uZWwpOwotIAotICAgR1NUX09CSkVDVF9MT0NLIChydHBiaW4pOwotICAgdGFyZ2V0ID0gR1NU
X1NUQVRFX1RBUkdFVCAocnRwYmluKTsKLUBAIC03MDQsNiArODIzLDggQEAgY3JlYXRlX3Nlc3Np
b24gKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgZ2ludCBpZCkKLSAgIC8qIGNoYW5nZSBzdGF0ZSBvbmx5
IHRvIHdoYXQncyBuZWVkZWQgKi8KLSAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZSAoZGVtdXgsIHRh
cmdldCk7Ci0gICBnc3RfZWxlbWVudF9zZXRfc3RhdGUgKHNlc3Npb24sIHRhcmdldCk7Ci0rICBn
c3RfZWxlbWVudF9zZXRfc3RhdGUgKHNlc3MtPnJ0cF9mdW5uZWwsIHRhcmdldCk7Ci0rICBnc3Rf
ZWxlbWVudF9zZXRfc3RhdGUgKHNlc3MtPnJ0Y3BfZnVubmVsLCB0YXJnZXQpOwotIAotICAgcmV0
dXJuIHNlc3M7Ci0gCi1AQCAtODA3LDcgKzkyOCw3IEBAIGdldF9wdF9tYXAgKEdzdFJ0cEJpblNl
c3Npb24gKiBzZXNzaW9uLCBndWludCBwdCkKLSAgIEdWYWx1ZSByZXQgPSB7IDAgfTsKLSAgIEdW
YWx1ZSBhcmdzWzNdID0geyB7MH0sIHswfSwgezB9IH07Ci0gCi0tICBHU1RfREVCVUcgKCJzZWFy
Y2hpbmcgcHQgJWQgaW4gY2FjaGUiLCBwdCk7Ci0rICBHU1RfREVCVUcgKCJzZWFyY2hpbmcgcHQg
JXUgaW4gY2FjaGUiLCBwdCk7Ci0gCi0gICBHU1RfUlRQX1NFU1NJT05fTE9DSyAoc2Vzc2lvbik7
Ci0gCi1AQCAtODIwLDcgKzk0MSw3IEBAIGdldF9wdF9tYXAgKEdzdFJ0cEJpblNlc3Npb24gKiBz
ZXNzaW9uLCBndWludCBwdCkKLSAKLSAgIGJpbiA9IHNlc3Npb24tPmJpbjsKLSAKLS0gIEdTVF9E
RUJVRyAoImVtaXRpbmcgc2lnbmFsIGZvciBwdCAlZCBpbiBzZXNzaW9uICVkIiwgcHQsIHNlc3Np
b24tPmlkKTsKLSsgIEdTVF9ERUJVRyAoImVtaXRpbmcgc2lnbmFsIGZvciBwdCAldSBpbiBzZXNz
aW9uICV1IiwgcHQsIHNlc3Npb24tPmlkKTsKLSAKLSAgIC8qIG5vdCBpbiBjYWNoZSwgc2VuZCBz
aWduYWwgdG8gcmVxdWVzdCBjYXBzICovCi0gICBnX3ZhbHVlX2luaXQgKCZhcmdzWzBdLCBHU1Rf
VFlQRV9FTEVNRU5UKTsKLUBAIC04NTYsNyArOTc3LDcgQEAgZ2V0X3B0X21hcCAoR3N0UnRwQmlu
U2Vzc2lvbiAqIHNlc3Npb24sIGd1aW50IHB0KQotICAgaWYgKCFjYXBzKQotICAgICBnb3RvIG5v
X2NhcHM7Ci0gCi0tICBHU1RfREVCVUcgKCJjYWNoaW5nIHB0ICVkIGFzICUiIEdTVF9QVFJfRk9S
TUFULCBwdCwgY2Fwcyk7Ci0rICBHU1RfREVCVUcgKCJjYWNoaW5nIHB0ICV1IGFzICUiIEdTVF9Q
VFJfRk9STUFULCBwdCwgY2Fwcyk7Ci0gCi0gICAvKiBzdG9yZSBpbiBjYWNoZSwgdGFrZSBhZGRp
dGlvbmFsIHJlZiAqLwotICAgZ19oYXNoX3RhYmxlX2luc2VydCAoc2Vzc2lvbi0+cHRtYXAsIEdJ
TlRfVE9fUE9JTlRFUiAocHQpLAotQEAgLTk0Nyw3ICsxMDY4LDcgQEAgZ3N0X3J0cF9iaW5fZ2V0
X3Nlc3Npb24gKEdzdFJ0cEJpbiAqIGJpbiwgZ3VpbnQgc2Vzc2lvbl9pZCkKLSAgIEdzdEVsZW1l
bnQgKnJldCA9IE5VTEw7Ci0gCi0gICBHU1RfUlRQX0JJTl9MT0NLIChiaW4pOwotLSAgR1NUX0RF
QlVHX09CSkVDVCAoYmluLCAicmV0cmlldmluZyBHc3RSdHBTZXNzaW9uLCBpbmRleDogJWQiLCBz
ZXNzaW9uX2lkKTsKLSsgIEdTVF9ERUJVR19PQkpFQ1QgKGJpbiwgInJldHJpZXZpbmcgR3N0UnRw
U2Vzc2lvbiwgaW5kZXg6ICV1Iiwgc2Vzc2lvbl9pZCk7Ci0gICBzZXNzaW9uID0gZmluZF9zZXNz
aW9uX2J5X2lkIChiaW4sIChnaW50KSBzZXNzaW9uX2lkKTsKLSAgIGlmIChzZXNzaW9uKSB7Ci0g
ICAgIHJldCA9IGdzdF9vYmplY3RfcmVmIChzZXNzaW9uLT5zZXNzaW9uKTsKLUBAIC05NjQsNyAr
MTA4NSw3IEBAIGdzdF9ydHBfYmluX2dldF9pbnRlcm5hbF9zZXNzaW9uIChHc3RSdHBCaW4gKiBi
aW4sIGd1aW50IHNlc3Npb25faWQpCi0gICBHc3RSdHBCaW5TZXNzaW9uICpzZXNzaW9uOwotIAot
ICAgR1NUX1JUUF9CSU5fTE9DSyAoYmluKTsKLS0gIEdTVF9ERUJVR19PQkpFQ1QgKGJpbiwgInJl
dHJpZXZpbmcgaW50ZXJuYWwgUlRQU2Vzc2lvbiBvYmplY3QsIGluZGV4OiAlZCIsCi0rICBHU1Rf
REVCVUdfT0JKRUNUIChiaW4sICJyZXRyaWV2aW5nIGludGVybmFsIFJUUFNlc3Npb24gb2JqZWN0
LCBpbmRleDogJXUiLAotICAgICAgIHNlc3Npb25faWQpOwotICAgc2Vzc2lvbiA9IGZpbmRfc2Vz
c2lvbl9ieV9pZCAoYmluLCAoZ2ludCkgc2Vzc2lvbl9pZCk7Ci0gICBpZiAoc2Vzc2lvbikgewot
QEAgLTIxOTQsNiArMjMxNSwyOSBAQCBnc3RfcnRwX2Jpbl9jbGFzc19pbml0IChHc3RSdHBCaW5D
bGFzcyAqIGtsYXNzKQotICAgICAgICAgICBvbl9zZW5kZXJfc3NyY19hY3RpdmUpLCBOVUxMLCBO
VUxMLCBnX2NjbG9zdXJlX21hcnNoYWxfZ2VuZXJpYywKLSAgICAgICBHX1RZUEVfTk9ORSwgMiwg
R19UWVBFX1VJTlQsIEdfVFlQRV9VSU5UKTsKLSAKLSsKLSsgIC8qKgotKyAgICogR3N0UnRwQmlu
Ojpvbi1idW5kbGVkLXNzcmM6Ci0rICAgKiBAcnRwYmluOiB0aGUgb2JqZWN0IHdoaWNoIHJlY2Vp
dmVkIHRoZSBzaWduYWwKLSsgICAqIEBzc3JjOiB0aGUgYnVuZGxlZCBTU1JDCi0rICAgKgotKyAg
ICogTm90aWZ5IG9mIGEgbmV3IGluY29taW5nIGJ1bmRsZWQgU1NSQy4gSWYgbm8gaGFuZGxlciBp
cyBjb25uZWN0ZWQgdG8gdGhlCi0rICAgKiBzaWduYWwgdGhlbiB0aGUgI0dzdFJ0cFNlc3Npb24g
Y3JlYXRlZCBmb3IgdGhlIHJlY3ZfcnRwX3NpbmtfXCV1Ci0rICAgKiByZXF1ZXN0IHBhZCB3aWxs
IGJlIG1hbmFnaW5nIHRoaXMgbmV3IFNTUkMuIEhvd2V2ZXIgaWYgdGhlcmUgaXMgYSBoYW5kbGVy
Ci0rICAgKiBjb25uZWN0ZWQgdGhlbiB0aGUgYXBwbGljYXRpb24gY2FuIGRlY2lkZWQgdG8gZGlz
cGF0Y2ggdGhpcyBuZXcgc3RyZWFtIHRvCi0rICAgKiBhbm90aGVyIHNlc3Npb24gYnkgcHJvdmlk
aW5nIGl0cyBJRCBhcyByZXR1cm4gdmFsdWUgb2YgdGhlIGhhbmRsZXIuIFRoaXMKLSsgICAqIGNh
biBiZSBwYXJ0aWN1bGFybHkgdXNlZnVsIHRvIGtlZXAgcmV0cmFuc21pc3Npb24gU1NSQ3MgZ3Jv
dXBlZCB3aXRoIHRoZQotKyAgICogc2Vzc2lvbiBmb3Igd2hpY2ggdGhleSBoYW5kbGUgcmV0cmFu
c21pc3Npb24uCi0rICAgKgotKyAgICogU2luY2U6IDEuMTIKLSsgICAqLwotKyAgZ3N0X3J0cF9i
aW5fc2lnbmFsc1tTSUdOQUxfT05fQlVORExFRF9TU1JDXSA9Ci0rICAgICAgZ19zaWduYWxfbmV3
ICgib24tYnVuZGxlZC1zc3JjIiwgR19UWVBFX0ZST01fQ0xBU1MgKGtsYXNzKSwKLSsgICAgICBH
X1NJR05BTF9SVU5fTEFTVCwgR19TVFJVQ1RfT0ZGU0VUIChHc3RSdHBCaW5DbGFzcywKLSsgICAg
ICAgICAgb25fYnVuZGxlZF9zc3JjKSwgTlVMTCwgTlVMTCwKLSsgICAgICBnX2NjbG9zdXJlX21h
cnNoYWxfZ2VuZXJpYywgR19UWVBFX1VJTlQsIDEsIEdfVFlQRV9VSU5UKTsKLSsKLSsKLSAgIGdf
b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKGdvYmplY3RfY2xhc3MsIFBST1BfU0RFUywK
LSAgICAgICBnX3BhcmFtX3NwZWNfYm94ZWQgKCJzZGVzIiwgIlNERVMiLAotICAgICAgICAgICAi
VGhlIFNERVMgaXRlbXMgb2YgdGhpcyBzZXNzaW9uIiwKLUBAIC0zMDIxLDcgKzMxNjUsNyBAQCBu
ZXdfcGF5bG9hZF9mb3VuZCAoR3N0RWxlbWVudCAqIGVsZW1lbnQsIGd1aW50IHB0LCBHc3RQYWQg
KiBwYWQsCi0gCi0gICBydHBiaW4gPSBzdHJlYW0tPmJpbjsKLSAKLS0gIEdTVF9ERUJVRyAoIm5l
dyBwYXlsb2FkIHBhZCAlZCIsIHB0KTsKLSsgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgIm5l
dyBwYXlsb2FkIHBhZCAldSIsIHB0KTsKLSAKLSAgIEdTVF9SVFBfQklOX1NIVVRET1dOX0xPQ0sg
KHJ0cGJpbiwgc2h1dGRvd24pOwotIAotQEAgLTMwNzgsNyArMzIyMiw3IEBAIHB0X21hcF9yZXF1
ZXN0ZWQgKEdzdEVsZW1lbnQgKiBlbGVtZW50LCBndWludCBwdCwgR3N0UnRwQmluU2Vzc2lvbiAq
IHNlc3Npb24pCi0gCi0gICBydHBiaW4gPSBzZXNzaW9uLT5iaW47Ci0gCi0tICBHU1RfREVCVUdf
T0JKRUNUIChydHBiaW4sICJwYXlsb2FkIG1hcCByZXF1ZXN0ZWQgZm9yIHB0ICVkIGluIHNlc3Np
b24gJWQiLCBwdCwKLSsgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgInBheWxvYWQgbWFwIHJl
cXVlc3RlZCBmb3IgcHQgJXUgaW4gc2Vzc2lvbiAldSIsIHB0LAotICAgICAgIHNlc3Npb24tPmlk
KTsKLSAKLSAgIGNhcHMgPSBnZXRfcHRfbWFwIChzZXNzaW9uLCBwdCk7Ci1AQCAtMzA5OSw3ICsz
MjQzLDcgQEAgc3RhdGljIHZvaWQKLSBwYXlsb2FkX3R5cGVfY2hhbmdlIChHc3RFbGVtZW50ICog
ZWxlbWVudCwgZ3VpbnQgcHQsIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uKQotIHsKLSAgIEdT
VF9ERUJVR19PQkpFQ1QgKHNlc3Npb24tPmJpbiwKLS0gICAgICAiZW1pdGluZyBzaWduYWwgZm9y
IHB0IHR5cGUgY2hhbmdlZCB0byAlZCBpbiBzZXNzaW9uICVkIiwgcHQsCi0rICAgICAgImVtaXRp
bmcgc2lnbmFsIGZvciBwdCB0eXBlIGNoYW5nZWQgdG8gJXUgaW4gc2Vzc2lvbiAldSIsIHB0LAot
ICAgICAgIHNlc3Npb24tPmlkKTsKLSAKLSAgIGdfc2lnbmFsX2VtaXQgKHNlc3Npb24tPmJpbiwg
Z3N0X3J0cF9iaW5fc2lnbmFsc1tTSUdOQUxfUEFZTE9BRF9UWVBFX0NIQU5HRV0sCi1AQCAtMzI0
NiwxNSArMzM5MCw0MiBAQCBub19zdHJlYW06Ci0gICB9Ci0gfQotIAotLXN0YXRpYyBnYm9vbGVh
bgotLWNvbXBsZXRlX3Nlc3Npb25fc2luayAoR3N0UnRwQmluICogcnRwYmluLCBHc3RSdHBCaW5T
ZXNzaW9uICogc2Vzc2lvbikKLStzdGF0aWMgdm9pZAotK3Nlc3Npb25fbWF5YmVfY3JlYXRlX2J1
bmRsZV9kZW11eGVyIChHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbikKLSt7Ci0rICBHc3RSdHBC
aW4gKnJ0cGJpbjsKLSsKLSsgIGlmIChzZXNzaW9uLT5idW5kbGVfZGVtdXgpCi0rICAgIHJldHVy
bjsKLSsKLSsgIHJ0cGJpbiA9IHNlc3Npb24tPmJpbjsKLSsgIGlmIChnX3NpZ25hbF9oYXNfaGFu
ZGxlcl9wZW5kaW5nIChydHBiaW4sCi0rICAgICAgICAgIGdzdF9ydHBfYmluX3NpZ25hbHNbU0lH
TkFMX09OX0JVTkRMRURfU1NSQ10sIDAsIFRSVUUpKSB7Ci0rICAgIEdTVF9ERUJVR19PQkpFQ1Qg
KHJ0cGJpbiwgIkFkZGluZyBhIGJ1bmRsZSBTU1JDIGRlbXV4ZXIgdG8gc2Vzc2lvbiAldSIsCi0r
ICAgICAgICBzZXNzaW9uLT5pZCk7Ci0rICAgIHNlc3Npb24tPmJ1bmRsZV9kZW11eCA9IGdzdF9l
bGVtZW50X2ZhY3RvcnlfbWFrZSAoInJ0cHNzcmNkZW11eCIsIE5VTEwpOwotKyAgICBzZXNzaW9u
LT5idW5kbGVfZGVtdXhfbmV3cGFkX3NpZyA9IGdfc2lnbmFsX2Nvbm5lY3QgKHNlc3Npb24tPmJ1
bmRsZV9kZW11eCwKLSsgICAgICAgICJuZXctc3NyYy1wYWQiLCAoR0NhbGxiYWNrKSBuZXdfYnVu
ZGxlZF9zc3JjX3BhZF9mb3VuZCwgc2Vzc2lvbik7Ci0rCi0rICAgIGdzdF9iaW5fYWRkIChHU1Rf
QklOX0NBU1QgKHJ0cGJpbiksIHNlc3Npb24tPmJ1bmRsZV9kZW11eCk7Ci0rICAgIGdzdF9lbGVt
ZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQgKHNlc3Npb24tPmJ1bmRsZV9kZW11eCk7Ci0rICB9
IGVsc2UgewotKyAgICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sCi0rICAgICAgICAiTm8gaGFu
ZGxlciBmb3IgdGhlIG9uLWJ1bmRsZWQtc3NyYyBzaWduYWwgc28gbm8gbmVlZCBmb3IgYSBidW5k
bGUgU1NSQyBkZW11eGVyIGluIHNlc3Npb24gJXUiLAotKyAgICAgICAgc2Vzc2lvbi0+aWQpOwot
KyAgfQotK30KLSsKLStzdGF0aWMgR3N0UGFkICoKLStjb21wbGV0ZV9zZXNzaW9uX3NpbmsgKEdz
dFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Npb24sCi0rICAgIGdib29s
ZWFuIGJ1bmRsZV9kZW11eGVyX25lZWRlZCkKLSB7Ci0tICBnY2hhciAqZ25hbWU7Ci0gICBndWlu
dCBzZXNzaWQgPSBzZXNzaW9uLT5pZDsKLSAgIEdzdFBhZCAqcmVjdl9ydHBfc2luazsKLSsgIEdz
dFBhZCAqZnVubmVsX3NyYzsKLSAgIEdzdEVsZW1lbnQgKmRlY29kZXI7Ci0tICBHc3RFbGVtZW50
Q2xhc3MgKmtsYXNzOwotLSAgR3N0UGFkVGVtcGxhdGUgKnRlbXBsOwotKwotKyAgZ19hc3NlcnQg
KCFzZXNzaW9uLT5yZWN2X3J0cF9zaW5rKTsKLSAKLSAgIC8qIGdldCByZWN2X3J0cCBwYWQgYW5k
IHN0b3JlICovCi0gICBzZXNzaW9uLT5yZWN2X3J0cF9zaW5rID0KLUBAIC0zMjY1LDYgKzM0MzYs
OSBAQCBjb21wbGV0ZV9zZXNzaW9uX3NpbmsgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UnRwQmlu
U2Vzc2lvbiAqIHNlc3Npb24pCi0gICBnX3NpZ25hbF9jb25uZWN0IChzZXNzaW9uLT5yZWN2X3J0
cF9zaW5rLCAibm90aWZ5OjpjYXBzIiwKLSAgICAgICAoR0NhbGxiYWNrKSBjYXBzX2NoYW5nZWQs
IHNlc3Npb24pOwotIAotKyAgaWYgKGJ1bmRsZV9kZW11eGVyX25lZWRlZCkKLSsgICAgc2Vzc2lv
bl9tYXliZV9jcmVhdGVfYnVuZGxlX2RlbXV4ZXIgKHNlc3Npb24pOwotKwotICAgR1NUX0RFQlVH
X09CSkVDVCAocnRwYmluLCAicmVxdWVzdGluZyBSVFAgZGVjb2RlciIpOwotICAgZGVjb2RlciA9
IHNlc3Npb25fcmVxdWVzdF9lbGVtZW50IChzZXNzaW9uLCBTSUdOQUxfUkVRVUVTVF9SVFBfREVD
T0RFUik7Ci0gICBpZiAoZGVjb2RlcikgewotQEAgLTMyODIsNyArMzQ1NiwxNCBAQCBjb21wbGV0
ZV9zZXNzaW9uX3NpbmsgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UnRwQmluU2Vzc2lvbiAqIHNl
c3Npb24pCi0gICAgIGlmIChkZWNzcmMgPT0gTlVMTCkKLSAgICAgICBnb3RvIGRlY19zcmNfZmFp
bGVkOwotIAotLSAgICByZXQgPSBnc3RfcGFkX2xpbmsgKGRlY3NyYywgc2Vzc2lvbi0+cmVjdl9y
dHBfc2luayk7Ci0rICAgIGlmIChzZXNzaW9uLT5idW5kbGVfZGVtdXgpIHsKLSsgICAgICBHc3RQ
YWQgKmRlbXV4X3Npbms7Ci0rICAgICAgZGVtdXhfc2luayA9IGdzdF9lbGVtZW50X2dldF9zdGF0
aWNfcGFkIChzZXNzaW9uLT5idW5kbGVfZGVtdXgsICJzaW5rIik7Ci0rICAgICAgcmV0ID0gZ3N0
X3BhZF9saW5rIChkZWNzcmMsIGRlbXV4X3NpbmspOwotKyAgICAgIGdzdF9vYmplY3RfdW5yZWYg
KGRlbXV4X3NpbmspOwotKyAgICB9IGVsc2UgewotKyAgICAgIHJldCA9IGdzdF9wYWRfbGluayAo
ZGVjc3JjLCBzZXNzaW9uLT5yZWN2X3J0cF9zaW5rKTsKLSsgICAgfQotICAgICBnc3Rfb2JqZWN0
X3VucmVmIChkZWNzcmMpOwotIAotICAgICBpZiAocmV0ICE9IEdTVF9QQURfTElOS19PSykKLUBA
IC0zMjkwLDgxICszNDcxLDU0IEBAIGNvbXBsZXRlX3Nlc3Npb25fc2luayAoR3N0UnRwQmluICog
cnRwYmluLCBHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbikKLSAKLSAgIH0gZWxzZSB7Ci0gICAg
IEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgIm5vIFJUUCBkZWNvZGVyIGdpdmVuIik7Ci0tICAg
IHJlY3ZfcnRwX3NpbmsgPSBnc3Rfb2JqZWN0X3JlZiAoc2Vzc2lvbi0+cmVjdl9ydHBfc2luayk7
Ci0rICAgIGlmIChzZXNzaW9uLT5idW5kbGVfZGVtdXgpIHsKLSsgICAgICByZWN2X3J0cF9zaW5r
ID0KLSsgICAgICAgICAgZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQgKHNlc3Npb24tPmJ1bmRs
ZV9kZW11eCwgInNpbmsiKTsKLSsgICAgfSBlbHNlIHsKLSsgICAgICByZWN2X3J0cF9zaW5rID0K
LSsgICAgICAgICAgZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFkIChzZXNzaW9uLT5ydHBfZnVu
bmVsLCAic2lua18ldSIpOwotKyAgICB9Ci0gICB9Ci0gCi0tICBHU1RfREVCVUdfT0JKRUNUIChy
dHBiaW4sICJnaG9zdGluZyBzZXNzaW9uIHNpbmsgcGFkIik7Ci0tICBrbGFzcyA9IEdTVF9FTEVN
RU5UX0dFVF9DTEFTUyAocnRwYmluKTsKLS0gIGduYW1lID0gZ19zdHJkdXBfcHJpbnRmICgicmVj
dl9ydHBfc2lua18ldSIsIHNlc3NpZCk7Ci0tICB0ZW1wbCA9IGdzdF9lbGVtZW50X2NsYXNzX2dl
dF9wYWRfdGVtcGxhdGUgKGtsYXNzLCAicmVjdl9ydHBfc2lua18ldSIpOwotLSAgc2Vzc2lvbi0+
cmVjdl9ydHBfc2lua19naG9zdCA9Ci0tICAgICAgZ3N0X2dob3N0X3BhZF9uZXdfZnJvbV90ZW1w
bGF0ZSAoZ25hbWUsIHJlY3ZfcnRwX3NpbmssIHRlbXBsKTsKLS0gIGdzdF9vYmplY3RfdW5yZWYg
KHJlY3ZfcnRwX3NpbmspOwotLSAgZ3N0X3BhZF9zZXRfYWN0aXZlIChzZXNzaW9uLT5yZWN2X3J0
cF9zaW5rX2dob3N0LCBUUlVFKTsKLS0gIGdzdF9lbGVtZW50X2FkZF9wYWQgKEdTVF9FTEVNRU5U
X0NBU1QgKHJ0cGJpbiksIHNlc3Npb24tPnJlY3ZfcnRwX3NpbmtfZ2hvc3QpOwotLSAgZ19mcmVl
IChnbmFtZSk7Ci0rICBmdW5uZWxfc3JjID0gZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQgKHNl
c3Npb24tPnJ0cF9mdW5uZWwsICJzcmMiKTsKLSsgIGdzdF9wYWRfbGluayAoZnVubmVsX3NyYywg
c2Vzc2lvbi0+cmVjdl9ydHBfc2luayk7Ci0rICBnc3Rfb2JqZWN0X3VucmVmIChmdW5uZWxfc3Jj
KTsKLSAKLS0gIHJldHVybiBUUlVFOwotKyAgcmV0dXJuIHJlY3ZfcnRwX3Npbms7Ci0gCi0gICAv
KiBFUlJPUlMgKi8KLSBwYWRfZmFpbGVkOgotICAgewotICAgICBnX3dhcm5pbmcgKCJydHBiaW46
IGZhaWxlZCB0byBnZXQgc2Vzc2lvbiByZWN2X3J0cF9zaW5rIHBhZCIpOwotLSAgICByZXR1cm4g
RkFMU0U7Ci0rICAgIHJldHVybiBOVUxMOwotICAgfQotIGRlY19zaW5rX2ZhaWxlZDoKLSAgIHsK
LS0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IGRlY29kZXIgc2luayBwYWQg
Zm9yIHNlc3Npb24gJWQiLCBzZXNzaWQpOwotLSAgICByZXR1cm4gRkFMU0U7Ci0rICAgIGdfd2Fy
bmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBkZWNvZGVyIHNpbmsgcGFkIGZvciBzZXNzaW9u
ICV1Iiwgc2Vzc2lkKTsKLSsgICAgcmV0dXJuIE5VTEw7Ci0gICB9Ci0gZGVjX3NyY19mYWlsZWQ6
Ci0gICB7Ci0tICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBkZWNvZGVyIHNy
YyBwYWQgZm9yIHNlc3Npb24gJWQiLCBzZXNzaWQpOwotKyAgICBnX3dhcm5pbmcgKCJydHBiaW46
IGZhaWxlZCB0byBnZXQgZGVjb2RlciBzcmMgcGFkIGZvciBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsK
LSAgICAgZ3N0X29iamVjdF91bnJlZiAocmVjdl9ydHBfc2luayk7Ci0tICAgIHJldHVybiBGQUxT
RTsKLSsgICAgcmV0dXJuIE5VTEw7Ci0gICB9Ci0gZGVjX2xpbmtfZmFpbGVkOgotICAgewotLSAg
ICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBsaW5rIHJ0cCBkZWNvZGVyIGZvciBzZXNz
aW9uICVkIiwgc2Vzc2lkKTsKLSsgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gbGlu
ayBydHAgZGVjb2RlciBmb3Igc2Vzc2lvbiAldSIsIHNlc3NpZCk7Ci0gICAgIGdzdF9vYmplY3Rf
dW5yZWYgKHJlY3ZfcnRwX3NpbmspOwotLSAgICByZXR1cm4gRkFMU0U7Ci0rICAgIHJldHVybiBO
VUxMOwotICAgfQotIH0KLSAKLS0vKiBDcmVhdGUgYSBwYWQgZm9yIHJlY2VpdmluZyBSVFAgZm9y
IHRoZSBzZXNzaW9uIGluIEBuYW1lLiBNdXN0IGJlIGNhbGxlZCB3aXRoCi0tICogUlRQX0JJTl9M
T0NLLgotLSAqLwotLXN0YXRpYyBHc3RQYWQgKgotLWNyZWF0ZV9yZWN2X3J0cCAoR3N0UnRwQmlu
ICogcnRwYmluLCBHc3RQYWRUZW1wbGF0ZSAqIHRlbXBsLCBjb25zdCBnY2hhciAqIG5hbWUpCi0r
c3RhdGljIHZvaWQKLStjb21wbGV0ZV9zZXNzaW9uX3JlY2VpdmVyIChHc3RSdHBCaW4gKiBydHBi
aW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uLAotKyAgICBndWludCBzZXNzaWQpCi0gewot
LSAgZ3VpbnQgc2Vzc2lkOwotICAgR3N0RWxlbWVudCAqYXV4OwotICAgR3N0UGFkICpyZWN2X3J0
cF9zcmM7Ci0tICBHc3RSdHBCaW5TZXNzaW9uICpzZXNzaW9uOwotLQotLSAgLyogZmlyc3QgZ2V0
IHRoZSBzZXNzaW9uIG51bWJlciAqLwotLSAgaWYgKG5hbWUgPT0gTlVMTCB8fCBzc2NhbmYgKG5h
bWUsICJyZWN2X3J0cF9zaW5rXyV1IiwgJnNlc3NpZCkgIT0gMSkKLS0gICAgZ290byBub19uYW1l
OwotLQotLSAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAiZmluZGluZyBzZXNzaW9uICVkIiwg
c2Vzc2lkKTsKLSAKLS0gIC8qIGdldCBvciBjcmVhdGUgc2Vzc2lvbiAqLwotLSAgc2Vzc2lvbiA9
IGZpbmRfc2Vzc2lvbl9ieV9pZCAocnRwYmluLCBzZXNzaWQpOwotLSAgaWYgKCFzZXNzaW9uKSB7
Ci0tICAgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgImNyZWF0aW5nIHNlc3Npb24gJWQiLCBz
ZXNzaWQpOwotLSAgICAvKiBjcmVhdGUgc2Vzc2lvbiBub3cgKi8KLS0gICAgc2Vzc2lvbiA9IGNy
ZWF0ZV9zZXNzaW9uIChydHBiaW4sIHNlc3NpZCk7Ci0tICAgIGlmIChzZXNzaW9uID09IE5VTEwp
Ci0tICAgICAgZ290byBjcmVhdGVfZXJyb3I7Ci0tICB9Ci0tCi0tICAvKiBjaGVjayBpZiBwYWQg
d2FzIHJlcXVlc3RlZCAqLwotLSAgaWYgKHNlc3Npb24tPnJlY3ZfcnRwX3NpbmtfZ2hvc3QgIT0g
TlVMTCkKLS0gICAgcmV0dXJuIHNlc3Npb24tPnJlY3ZfcnRwX3NpbmtfZ2hvc3Q7Ci0tCi0tICAv
KiBzZXR1cCB0aGUgc2Vzc2lvbiBzaW5rIHBhZCAqLwotLSAgaWYgKCFjb21wbGV0ZV9zZXNzaW9u
X3NpbmsgKHJ0cGJpbiwgc2Vzc2lvbikpCi0tICAgIGdvdG8gc2Vzc2lvbl9zaW5rX2ZhaWxlZDsK
LSsgIGdfYXNzZXJ0ICghc2Vzc2lvbi0+cmVjdl9ydHBfc3JjKTsKLSAKLSAgIHNlc3Npb24tPnJl
Y3ZfcnRwX3NyYyA9Ci0gICAgICAgZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQgKHNlc3Npb24t
PnNlc3Npb24sICJyZWN2X3J0cF9zcmMiKTsKLUBAIC0zMzgxLDcgKzM1MzUsNyBAQCBjcmVhdGVf
cmVjdl9ydHAgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UGFkVGVtcGxhdGUgKiB0ZW1wbCwgY29u
c3QgZ2NoYXIgKiBuYW1lKQotIAotICAgICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJsaW5r
aW5nIEFVWCByZWNlaXZlciIpOwotIAotLSAgICBwbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoInNp
bmtfJWQiLCBzZXNzaWQpOwotKyAgICBwbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoInNpbmtfJXUi
LCBzZXNzaWQpOwotICAgICBhdXhzaW5rID0gZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQgKGF1
eCwgcG5hbWUpOwotICAgICBnX2ZyZWUgKHBuYW1lKTsKLSAgICAgaWYgKGF1eHNpbmsgPT0gTlVM
TCkKLUBAIC0zMzk0LDcgKzM1NDgsNyBAQCBjcmVhdGVfcmVjdl9ydHAgKEdzdFJ0cEJpbiAqIHJ0
cGJpbiwgR3N0UGFkVGVtcGxhdGUgKiB0ZW1wbCwgY29uc3QgZ2NoYXIgKiBuYW1lKQotIAotICAg
ICAvKiB0aGlzIGNhbiBiZSBOVUxMIHdoZW4gdGhpcyBBVVggZWxlbWVudCBpcyBub3QgdG8gYmUg
bGlua2VkIHRvCi0gICAgICAqIGFuIFNTUkMgZGVtdXhlciAqLwotLSAgICBwbmFtZSA9IGdfc3Ry
ZHVwX3ByaW50ZiAoInNyY18lZCIsIHNlc3NpZCk7Ci0rICAgIHBuYW1lID0gZ19zdHJkdXBfcHJp
bnRmICgic3JjXyV1Iiwgc2Vzc2lkKTsKLSAgICAgcmVjdl9ydHBfc3JjID0gZ3N0X2VsZW1lbnRf
Z2V0X3N0YXRpY19wYWQgKGF1eCwgcG5hbWUpOwotICAgICBnX2ZyZWUgKHBuYW1lKTsKLSAgIH0g
ZWxzZSB7Ci1AQCAtMzQwOCw4ICszNTYyLDggQEAgY3JlYXRlX3JlY3ZfcnRwIChHc3RSdHBCaW4g
KiBydHBiaW4sIEdzdFBhZFRlbXBsYXRlICogdGVtcGwsIGNvbnN0IGdjaGFyICogbmFtZSkKLSAg
ICAgc2lua2RwYWQgPSBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZCAoc2Vzc2lvbi0+ZGVtdXgs
ICJzaW5rIik7Ci0gICAgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgImxpbmtpbmcgZGVtdXhl
ciBSVFAgc2luayBwYWQiKTsKLSAgICAgZ3N0X3BhZF9saW5rX2Z1bGwgKHJlY3ZfcnRwX3NyYywg
c2lua2RwYWQsIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKLS0gICAgZ3N0X29iamVjdF91
bnJlZiAocmVjdl9ydHBfc3JjKTsKLSAgICAgZ3N0X29iamVjdF91bnJlZiAoc2lua2RwYWQpOwot
KyAgICBnc3Rfb2JqZWN0X3VucmVmIChyZWN2X3J0cF9zcmMpOwotIAotICAgICAvKiBjb25uZWN0
IHRvIHRoZSBuZXctc3NyYy1wYWQgc2lnbmFsIG9mIHRoZSBTU1JDIGRlbXV4ZXIgKi8KLSAgICAg
c2Vzc2lvbi0+ZGVtdXhfbmV3cGFkX3NpZyA9IGdfc2lnbmFsX2Nvbm5lY3QgKHNlc3Npb24tPmRl
bXV4LAotQEAgLTM0MTcsNiArMzU3MSw3MSBAQCBjcmVhdGVfcmVjdl9ydHAgKEdzdFJ0cEJpbiAq
IHJ0cGJpbiwgR3N0UGFkVGVtcGxhdGUgKiB0ZW1wbCwgY29uc3QgZ2NoYXIgKiBuYW1lKQotICAg
ICBzZXNzaW9uLT5kZW11eF9wYWRyZW1vdmVkX3NpZyA9IGdfc2lnbmFsX2Nvbm5lY3QgKHNlc3Np
b24tPmRlbXV4LAotICAgICAgICAgInJlbW92ZWQtc3NyYy1wYWQiLCAoR0NhbGxiYWNrKSBzc3Jj
X2RlbXV4X3BhZF9yZW1vdmVkLCBzZXNzaW9uKTsKLSAgIH0KLSsKLSsgIHJldHVybjsKLSsKLStw
YWRfZmFpbGVkOgotKyAgewotKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQg
c2Vzc2lvbiByZWN2X3J0cF9zcmMgcGFkIik7Ci0rICAgIHJldHVybjsKLSsgIH0KLSthdXhfc2lu
a19mYWlsZWQ6Ci0rICB7Ci0rICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBB
VVggc2luayBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOwotKyAgICByZXR1cm47Ci0rICB9
Ci0rYXV4X2xpbmtfZmFpbGVkOgotKyAgewotKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxl
ZCB0byBsaW5rIEFVWCBwYWQgdG8gc2Vzc2lvbiAldSIsIHNlc3NpZCk7Ci0rICAgIHJldHVybjsK
LSsgIH0KLSt9Ci0rCi0rLyogQ3JlYXRlIGEgcGFkIGZvciByZWNlaXZpbmcgUlRQIGZvciB0aGUg
c2Vzc2lvbiBpbiBAbmFtZS4gTXVzdCBiZSBjYWxsZWQgd2l0aAotKyAqIFJUUF9CSU5fTE9DSy4K
LSsgKi8KLStzdGF0aWMgR3N0UGFkICoKLStjcmVhdGVfcmVjdl9ydHAgKEdzdFJ0cEJpbiAqIHJ0
cGJpbiwgR3N0UGFkVGVtcGxhdGUgKiB0ZW1wbCwgY29uc3QgZ2NoYXIgKiBuYW1lKQotK3sKLSsg
IGd1aW50IHNlc3NpZDsKLSsgIEdzdFJ0cEJpblNlc3Npb24gKnNlc3Npb247Ci0rICBHc3RQYWQg
KnJlY3ZfcnRwX3Npbms7Ci0rCi0rICAvKiBmaXJzdCBnZXQgdGhlIHNlc3Npb24gbnVtYmVyICov
Ci0rICBpZiAobmFtZSA9PSBOVUxMIHx8IHNzY2FuZiAobmFtZSwgInJlY3ZfcnRwX3NpbmtfJXUi
LCAmc2Vzc2lkKSAhPSAxKQotKyAgICBnb3RvIG5vX25hbWU7Ci0rCi0rICBHU1RfREVCVUdfT0JK
RUNUIChydHBiaW4sICJmaW5kaW5nIHNlc3Npb24gJXUiLCBzZXNzaWQpOwotKwotKyAgLyogZ2V0
IG9yIGNyZWF0ZSBzZXNzaW9uICovCi0rICBzZXNzaW9uID0gZmluZF9zZXNzaW9uX2J5X2lkIChy
dHBiaW4sIHNlc3NpZCk7Ci0rICBpZiAoIXNlc3Npb24pIHsKLSsgICAgR1NUX0RFQlVHX09CSkVD
VCAocnRwYmluLCAiY3JlYXRpbmcgc2Vzc2lvbiAldSIsIHNlc3NpZCk7Ci0rICAgIC8qIGNyZWF0
ZSBzZXNzaW9uIG5vdyAqLwotKyAgICBzZXNzaW9uID0gY3JlYXRlX3Nlc3Npb24gKHJ0cGJpbiwg
c2Vzc2lkKTsKLSsgICAgaWYgKHNlc3Npb24gPT0gTlVMTCkKLSsgICAgICBnb3RvIGNyZWF0ZV9l
cnJvcjsKLSsgIH0KLSsKLSsgIC8qIGNoZWNrIGlmIHBhZCB3YXMgcmVxdWVzdGVkICovCi0rICBp
ZiAoc2Vzc2lvbi0+cmVjdl9ydHBfc2lua19naG9zdCAhPSBOVUxMKQotKyAgICByZXR1cm4gc2Vz
c2lvbi0+cmVjdl9ydHBfc2lua19naG9zdDsKLSsKLSsgIC8qIHNldHVwIHRoZSBzZXNzaW9uIHNp
bmsgcGFkICovCi0rICByZWN2X3J0cF9zaW5rID0gY29tcGxldGVfc2Vzc2lvbl9zaW5rIChydHBi
aW4sIHNlc3Npb24sIFRSVUUpOwotKyAgaWYgKCFyZWN2X3J0cF9zaW5rKQotKyAgICBnb3RvIHNl
c3Npb25fc2lua19mYWlsZWQ7Ci0rCi0rCi0rICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJn
aG9zdGluZyBzZXNzaW9uIHNpbmsgcGFkIik7Ci0rICBzZXNzaW9uLT5yZWN2X3J0cF9zaW5rX2do
b3N0ID0KLSsgICAgICBnc3RfZ2hvc3RfcGFkX25ld19mcm9tX3RlbXBsYXRlIChuYW1lLCByZWN2
X3J0cF9zaW5rLCB0ZW1wbCk7Ci0rICBnc3Rfb2JqZWN0X3VucmVmIChyZWN2X3J0cF9zaW5rKTsK
LSsgIGdzdF9wYWRfc2V0X2FjdGl2ZSAoc2Vzc2lvbi0+cmVjdl9ydHBfc2lua19naG9zdCwgVFJV
RSk7Ci0rICBnc3RfZWxlbWVudF9hZGRfcGFkIChHU1RfRUxFTUVOVF9DQVNUIChydHBiaW4pLCBz
ZXNzaW9uLT5yZWN2X3J0cF9zaW5rX2dob3N0KTsKLSsKLSsgIGNvbXBsZXRlX3Nlc3Npb25fcmVj
ZWl2ZXIgKHJ0cGJpbiwgc2Vzc2lvbiwgc2Vzc2lkKTsKLSsKLSAgIHJldHVybiBzZXNzaW9uLT5y
ZWN2X3J0cF9zaW5rX2dob3N0OwotIAotICAgLyogRVJST1JTICovCi1AQCAtMzQzNSwyMSArMzY1
NCw2IEBAIHNlc3Npb25fc2lua19mYWlsZWQ6Ci0gICAgIC8qIHdhcm5pbmcgYWxyZWFkeSBkb25l
ICovCi0gICAgIHJldHVybiBOVUxMOwotICAgfQotLXBhZF9mYWlsZWQ6Ci0tICB7Ci0tICAgIGdf
d2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBzZXNzaW9uIHJlY3ZfcnRwX3NyYyBwYWQi
KTsKLS0gICAgcmV0dXJuIE5VTEw7Ci0tICB9Ci0tYXV4X3NpbmtfZmFpbGVkOgotLSAgewotLSAg
ICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgQVVYIHNpbmsgcGFkIGZvciBzZXNz
aW9uICVkIiwgc2Vzc2lkKTsKLS0gICAgcmV0dXJuIE5VTEw7Ci0tICB9Ci0tYXV4X2xpbmtfZmFp
bGVkOgotLSAgewotLSAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBsaW5rIEFVWCBw
YWQgdG8gc2Vzc2lvbiAlZCIsIHNlc3NpZCk7Ci0tICAgIHJldHVybiBOVUxMOwotLSAgfQotIH0K
LSAKLSBzdGF0aWMgdm9pZAotQEAgLTM0NjMsNiArMzY2NywxMSBAQCByZW1vdmVfcmVjdl9ydHAg
KEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Npb24pCi0gICAgIGdf
c2lnbmFsX2hhbmRsZXJfZGlzY29ubmVjdCAoc2Vzc2lvbi0+ZGVtdXgsIHNlc3Npb24tPmRlbXV4
X3BhZHJlbW92ZWRfc2lnKTsKLSAgICAgc2Vzc2lvbi0+ZGVtdXhfcGFkcmVtb3ZlZF9zaWcgPSAw
OwotICAgfQotKyAgaWYgKHNlc3Npb24tPmJ1bmRsZV9kZW11eF9uZXdwYWRfc2lnKSB7Ci0rICAg
IGdfc2lnbmFsX2hhbmRsZXJfZGlzY29ubmVjdCAoc2Vzc2lvbi0+YnVuZGxlX2RlbXV4LAotKyAg
ICAgICAgc2Vzc2lvbi0+YnVuZGxlX2RlbXV4X25ld3BhZF9zaWcpOwotKyAgICBzZXNzaW9uLT5i
dW5kbGVfZGVtdXhfbmV3cGFkX3NpZyA9IDA7Ci0rICB9Ci0gICBpZiAoc2Vzc2lvbi0+cmVjdl9y
dHBfc3JjKSB7Ci0gICAgIGdzdF9vYmplY3RfdW5yZWYgKHNlc3Npb24tPnJlY3ZfcnRwX3NyYyk7
Ci0gICAgIHNlc3Npb24tPnJlY3ZfcnRwX3NyYyA9IE5VTEw7Ci1AQCAtMzQ4MCwzNyArMzY4OSwx
NCBAQCByZW1vdmVfcmVjdl9ydHAgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UnRwQmluU2Vzc2lv
biAqIHNlc3Npb24pCi0gICB9Ci0gfQotIAotLS8qIENyZWF0ZSBhIHBhZCBmb3IgcmVjZWl2aW5n
IFJUQ1AgZm9yIHRoZSBzZXNzaW9uIGluIEBuYW1lLiBNdXN0IGJlIGNhbGxlZCB3aXRoCi0tICog
UlRQX0JJTl9MT0NLLgotLSAqLwotIHN0YXRpYyBHc3RQYWQgKgotLWNyZWF0ZV9yZWN2X3J0Y3Ag
KEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UGFkVGVtcGxhdGUgKiB0ZW1wbCwKLS0gICAgY29uc3Qg
Z2NoYXIgKiBuYW1lKQotK2NvbXBsZXRlX3Nlc3Npb25fcnRjcCAoR3N0UnRwQmluICogcnRwYmlu
LCBHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbiwKLSsgICAgZ3VpbnQgc2Vzc2lkLCBnYm9vbGVh
biBidW5kbGVfZGVtdXhlcl9uZWVkZWQpCi0gewotLSAgZ3VpbnQgc2Vzc2lkOwotICAgR3N0RWxl
bWVudCAqZGVjb2RlcjsKLS0gIEdzdFJ0cEJpblNlc3Npb24gKnNlc3Npb247Ci0tICBHc3RQYWQg
KnNpbmtkcGFkLCAqZGVjc2luazsKLS0KLS0gIC8qIGZpcnN0IGdldCB0aGUgc2Vzc2lvbiBudW1i
ZXIgKi8KLS0gIGlmIChuYW1lID09IE5VTEwgfHwgc3NjYW5mIChuYW1lLCAicmVjdl9ydGNwX3Np
bmtfJXUiLCAmc2Vzc2lkKSAhPSAxKQotLSAgICBnb3RvIG5vX25hbWU7Ci0tCi0tICBHU1RfREVC
VUdfT0JKRUNUIChydHBiaW4sICJmaW5kaW5nIHNlc3Npb24gJWQiLCBzZXNzaWQpOwotLQotLSAg
LyogZ2V0IG9yIGNyZWF0ZSB0aGUgc2Vzc2lvbiAqLwotLSAgc2Vzc2lvbiA9IGZpbmRfc2Vzc2lv
bl9ieV9pZCAocnRwYmluLCBzZXNzaWQpOwotLSAgaWYgKCFzZXNzaW9uKSB7Ci0tICAgIEdTVF9E
RUJVR19PQkpFQ1QgKHJ0cGJpbiwgImNyZWF0aW5nIHNlc3Npb24gJWQiLCBzZXNzaWQpOwotLSAg
ICAvKiBjcmVhdGUgc2Vzc2lvbiBub3cgKi8KLS0gICAgc2Vzc2lvbiA9IGNyZWF0ZV9zZXNzaW9u
IChydHBiaW4sIHNlc3NpZCk7Ci0tICAgIGlmIChzZXNzaW9uID09IE5VTEwpCi0tICAgICAgZ290
byBjcmVhdGVfZXJyb3I7Ci0tICB9Ci0tCi0tICAvKiBjaGVjayBpZiBwYWQgd2FzIHJlcXVlc3Rl
ZCAqLwotLSAgaWYgKHNlc3Npb24tPnJlY3ZfcnRjcF9zaW5rX2dob3N0ICE9IE5VTEwpCi0tICAg
IHJldHVybiBzZXNzaW9uLT5yZWN2X3J0Y3Bfc2lua19naG9zdDsKLSsgIEdzdFBhZCAqc2lua2Rw
YWQ7Ci0rICBHc3RQYWQgKmRlY3NpbmsgPSBOVUxMOwotKyAgR3N0UGFkICpmdW5uZWxfc3JjOwot
IAotICAgLyogZ2V0IHJlY3ZfcnRwIHBhZCBhbmQgc3RvcmUgKi8KLSAgIEdTVF9ERUJVR19PQkpF
Q1QgKHJ0cGJpbiwgImdldHRpbmcgUlRDUCBzaW5rIHBhZCIpOwotQEAgLTM1MTksNiArMzcwNSw5
IEBAIGNyZWF0ZV9yZWN2X3J0Y3AgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UGFkVGVtcGxhdGUg
KiB0ZW1wbCwKLSAgIGlmIChzZXNzaW9uLT5yZWN2X3J0Y3Bfc2luayA9PSBOVUxMKQotICAgICBn
b3RvIHBhZF9mYWlsZWQ7Ci0gCi0rICBpZiAoYnVuZGxlX2RlbXV4ZXJfbmVlZGVkKQotKyAgICBz
ZXNzaW9uX21heWJlX2NyZWF0ZV9idW5kbGVfZGVtdXhlciAoc2Vzc2lvbik7Ci0rCi0gICBHU1Rf
REVCVUdfT0JKRUNUIChydHBiaW4sICJnZXR0aW5nIFJUQ1AgZGVjb2RlciIpOwotICAgZGVjb2Rl
ciA9IHNlc3Npb25fcmVxdWVzdF9lbGVtZW50IChzZXNzaW9uLCBTSUdOQUxfUkVRVUVTVF9SVENQ
X0RFQ09ERVIpOwotICAgaWYgKGRlY29kZXIpIHsKLUBAIC0zNTM1LDE0ICszNzI0LDI2IEBAIGNy
ZWF0ZV9yZWN2X3J0Y3AgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UGFkVGVtcGxhdGUgKiB0ZW1w
bCwKLSAgICAgaWYgKGRlY3NyYyA9PSBOVUxMKQotICAgICAgIGdvdG8gZGVjX3NyY19mYWlsZWQ7
Ci0gCi0tICAgIHJldCA9IGdzdF9wYWRfbGluayAoZGVjc3JjLCBzZXNzaW9uLT5yZWN2X3J0Y3Bf
c2luayk7Ci0rICAgIGlmIChzZXNzaW9uLT5idW5kbGVfZGVtdXgpIHsKLSsgICAgICBHc3RQYWQg
KmRlbXV4X3Npbms7Ci0rICAgICAgZGVtdXhfc2luayA9Ci0rICAgICAgICAgIGdzdF9lbGVtZW50
X2dldF9zdGF0aWNfcGFkIChzZXNzaW9uLT5idW5kbGVfZGVtdXgsICJydGNwX3NpbmsiKTsKLSsg
ICAgICByZXQgPSBnc3RfcGFkX2xpbmsgKGRlY3NyYywgZGVtdXhfc2luayk7Ci0rICAgICAgZ3N0
X29iamVjdF91bnJlZiAoZGVtdXhfc2luayk7Ci0rICAgIH0gZWxzZSB7Ci0rICAgICAgcmV0ID0g
Z3N0X3BhZF9saW5rIChkZWNzcmMsIHNlc3Npb24tPnJlY3ZfcnRjcF9zaW5rKTsKLSsgICAgfQot
ICAgICBnc3Rfb2JqZWN0X3VucmVmIChkZWNzcmMpOwotIAotICAgICBpZiAocmV0ICE9IEdTVF9Q
QURfTElOS19PSykKLSAgICAgICBnb3RvIGRlY19saW5rX2ZhaWxlZDsKLSAgIH0gZWxzZSB7Ci0g
ICAgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgIm5vIFJUQ1AgZGVjb2RlciBnaXZlbiIpOwot
LSAgICBkZWNzaW5rID0gZ3N0X29iamVjdF9yZWYgKHNlc3Npb24tPnJlY3ZfcnRjcF9zaW5rKTsK
LSsgICAgaWYgKHNlc3Npb24tPmJ1bmRsZV9kZW11eCkgewotKyAgICAgIGRlY3NpbmsgPSBnc3Rf
ZWxlbWVudF9nZXRfc3RhdGljX3BhZCAoc2Vzc2lvbi0+YnVuZGxlX2RlbXV4LCAicnRjcF9zaW5r
Iik7Ci0rICAgIH0gZWxzZSB7Ci0rICAgICAgZGVjc2luayA9IGdzdF9lbGVtZW50X2dldF9yZXF1
ZXN0X3BhZCAoc2Vzc2lvbi0+cnRjcF9mdW5uZWwsICJzaW5rXyV1Iik7Ci0rICAgIH0KLSAgIH0K
LSAKLSAgIC8qIGdldCBzcmNwYWQsIGxpbmsgdG8gU1NSQ0RlbXV4ICovCi1AQCAtMzU1NiwyNiAr
Mzc1NywxMiBAQCBjcmVhdGVfcmVjdl9ydGNwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBhZFRl
bXBsYXRlICogdGVtcGwsCi0gICBnc3RfcGFkX2xpbmtfZnVsbCAoc2Vzc2lvbi0+c3luY19zcmMs
IHNpbmtkcGFkLCBHU1RfUEFEX0xJTktfQ0hFQ0tfTk9USElORyk7Ci0gICBnc3Rfb2JqZWN0X3Vu
cmVmIChzaW5rZHBhZCk7Ci0gCi0tICBzZXNzaW9uLT5yZWN2X3J0Y3Bfc2lua19naG9zdCA9Ci0t
ICAgICAgZ3N0X2dob3N0X3BhZF9uZXdfZnJvbV90ZW1wbGF0ZSAobmFtZSwgZGVjc2luaywgdGVt
cGwpOwotLSAgZ3N0X29iamVjdF91bnJlZiAoZGVjc2luayk7Ci0tICBnc3RfcGFkX3NldF9hY3Rp
dmUgKHNlc3Npb24tPnJlY3ZfcnRjcF9zaW5rX2dob3N0LCBUUlVFKTsKLS0gIGdzdF9lbGVtZW50
X2FkZF9wYWQgKEdTVF9FTEVNRU5UX0NBU1QgKHJ0cGJpbiksCi0tICAgICAgc2Vzc2lvbi0+cmVj
dl9ydGNwX3NpbmtfZ2hvc3QpOwotKyAgZnVubmVsX3NyYyA9IGdzdF9lbGVtZW50X2dldF9zdGF0
aWNfcGFkIChzZXNzaW9uLT5ydGNwX2Z1bm5lbCwgInNyYyIpOwotKyAgZ3N0X3BhZF9saW5rIChm
dW5uZWxfc3JjLCBzZXNzaW9uLT5yZWN2X3J0Y3Bfc2luayk7Ci0rICBnc3Rfb2JqZWN0X3VucmVm
IChmdW5uZWxfc3JjKTsKLSAKLS0gIHJldHVybiBzZXNzaW9uLT5yZWN2X3J0Y3Bfc2lua19naG9z
dDsKLSsgIHJldHVybiBkZWNzaW5rOwotIAotLSAgLyogRVJST1JTICovCi0tbm9fbmFtZToKLS0g
IHsKLS0gICAgZ193YXJuaW5nICgicnRwYmluOiBpbnZhbGlkIG5hbWUgZ2l2ZW4iKTsKLS0gICAg
cmV0dXJuIE5VTEw7Ci0tICB9Ci0tY3JlYXRlX2Vycm9yOgotLSAgewotLSAgICAvKiBjcmVhdGVf
c2Vzc2lvbiBhbHJlYWR5IHdhcm5lZCAqLwotLSAgICByZXR1cm4gTlVMTDsKLS0gIH0KLSBwYWRf
ZmFpbGVkOgotICAgewotICAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgc2Vz
c2lvbiBydGNwX3NpbmsgcGFkIik7Ci1AQCAtMzU4MywyNSArMzc3MCw4MiBAQCBwYWRfZmFpbGVk
OgotICAgfQotIGRlY19zaW5rX2ZhaWxlZDoKLSAgIHsKLS0gICAgZ193YXJuaW5nICgicnRwYmlu
OiBmYWlsZWQgdG8gZ2V0IGRlY29kZXIgc2luayBwYWQgZm9yIHNlc3Npb24gJWQiLCBzZXNzaWQp
OwotKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgZGVjb2RlciBzaW5rIHBh
ZCBmb3Igc2Vzc2lvbiAldSIsIHNlc3NpZCk7Ci0gICAgIHJldHVybiBOVUxMOwotICAgfQotIGRl
Y19zcmNfZmFpbGVkOgotICAgewotLSAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBn
ZXQgZGVjb2RlciBzcmMgcGFkIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLS0gICAgZ3N0X29i
amVjdF91bnJlZiAoZGVjc2luayk7Ci0tICAgIHJldHVybiBOVUxMOwotKyAgICBnX3dhcm5pbmcg
KCJydHBiaW46IGZhaWxlZCB0byBnZXQgZGVjb2RlciBzcmMgcGFkIGZvciBzZXNzaW9uICV1Iiwg
c2Vzc2lkKTsKLSsgICAgZ290byBjbGVhbnVwOwotICAgfQotIGRlY19saW5rX2ZhaWxlZDoKLSAg
IHsKLS0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gbGluayBydGNwIGRlY29kZXIg
Zm9yIHNlc3Npb24gJWQiLCBzZXNzaWQpOwotLSAgICBnc3Rfb2JqZWN0X3VucmVmIChkZWNzaW5r
KTsKLS0gICAgcmV0dXJuIE5VTEw7Ci0rICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRv
IGxpbmsgcnRjcCBkZWNvZGVyIGZvciBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKLSsgICAgZ290byBj
bGVhbnVwOwotICAgfQotIHNyY19wYWRfZmFpbGVkOgotICAgewotICAgICBnX3dhcm5pbmcgKCJy
dHBiaW46IGZhaWxlZCB0byBnZXQgc2Vzc2lvbiBzeW5jX3NyYyBwYWQiKTsKLS0gICAgZ3N0X29i
amVjdF91bnJlZiAoZGVjc2luayk7Ci0rICB9Ci0rCi0rY2xlYW51cDoKLSsgIGdzdF9vYmplY3Rf
dW5yZWYgKGRlY3NpbmspOwotKyAgcmV0dXJuIE5VTEw7Ci0rfQotKwotKy8qIENyZWF0ZSBhIHBh
ZCBmb3IgcmVjZWl2aW5nIFJUQ1AgZm9yIHRoZSBzZXNzaW9uIGluIEBuYW1lLiBNdXN0IGJlIGNh
bGxlZCB3aXRoCi0rICogUlRQX0JJTl9MT0NLLgotKyAqLwotK3N0YXRpYyBHc3RQYWQgKgotK2Ny
ZWF0ZV9yZWN2X3J0Y3AgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UGFkVGVtcGxhdGUgKiB0ZW1w
bCwKLSsgICAgY29uc3QgZ2NoYXIgKiBuYW1lKQotK3sKLSsgIGd1aW50IHNlc3NpZDsKLSsgIEdz
dFJ0cEJpblNlc3Npb24gKnNlc3Npb247Ci0rICBHc3RQYWQgKmRlY3NpbmsgPSBOVUxMOwotKwot
KyAgLyogZmlyc3QgZ2V0IHRoZSBzZXNzaW9uIG51bWJlciAqLwotKyAgaWYgKG5hbWUgPT0gTlVM
TCB8fCBzc2NhbmYgKG5hbWUsICJyZWN2X3J0Y3Bfc2lua18ldSIsICZzZXNzaWQpICE9IDEpCi0r
ICAgIGdvdG8gbm9fbmFtZTsKLSsKLSsgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgImZpbmRp
bmcgc2Vzc2lvbiAldSIsIHNlc3NpZCk7Ci0rCi0rICAvKiBnZXQgb3IgY3JlYXRlIHRoZSBzZXNz
aW9uICovCi0rICBzZXNzaW9uID0gZmluZF9zZXNzaW9uX2J5X2lkIChydHBiaW4sIHNlc3NpZCk7
Ci0rICBpZiAoIXNlc3Npb24pIHsKLSsgICAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAiY3Jl
YXRpbmcgc2Vzc2lvbiAldSIsIHNlc3NpZCk7Ci0rICAgIC8qIGNyZWF0ZSBzZXNzaW9uIG5vdyAq
LwotKyAgICBzZXNzaW9uID0gY3JlYXRlX3Nlc3Npb24gKHJ0cGJpbiwgc2Vzc2lkKTsKLSsgICAg
aWYgKHNlc3Npb24gPT0gTlVMTCkKLSsgICAgICBnb3RvIGNyZWF0ZV9lcnJvcjsKLSsgIH0KLSsK
LSsgIC8qIGNoZWNrIGlmIHBhZCB3YXMgcmVxdWVzdGVkICovCi0rICBpZiAoc2Vzc2lvbi0+cmVj
dl9ydGNwX3NpbmtfZ2hvc3QgIT0gTlVMTCkKLSsgICAgcmV0dXJuIHNlc3Npb24tPnJlY3ZfcnRj
cF9zaW5rX2dob3N0OwotKwotKyAgZGVjc2luayA9IGNvbXBsZXRlX3Nlc3Npb25fcnRjcCAocnRw
YmluLCBzZXNzaW9uLCBzZXNzaWQsIFRSVUUpOwotKyAgaWYgKCFkZWNzaW5rKQotKyAgICBnb3Rv
IGNyZWF0ZV9lcnJvcjsKLSsKLSsgIHNlc3Npb24tPnJlY3ZfcnRjcF9zaW5rX2dob3N0ID0KLSsg
ICAgICBnc3RfZ2hvc3RfcGFkX25ld19mcm9tX3RlbXBsYXRlIChuYW1lLCBkZWNzaW5rLCB0ZW1w
bCk7Ci0rICBnc3Rfb2JqZWN0X3VucmVmIChkZWNzaW5rKTsKLSsgIGdzdF9wYWRfc2V0X2FjdGl2
ZSAoc2Vzc2lvbi0+cmVjdl9ydGNwX3NpbmtfZ2hvc3QsIFRSVUUpOwotKyAgZ3N0X2VsZW1lbnRf
YWRkX3BhZCAoR1NUX0VMRU1FTlRfQ0FTVCAocnRwYmluKSwKLSsgICAgICBzZXNzaW9uLT5yZWN2
X3J0Y3Bfc2lua19naG9zdCk7Ci0rCi0rICByZXR1cm4gc2Vzc2lvbi0+cmVjdl9ydGNwX3Npbmtf
Z2hvc3Q7Ci0rCi0rICAvKiBFUlJPUlMgKi8KLStub19uYW1lOgotKyAgewotKyAgICBnX3dhcm5p
bmcgKCJydHBiaW46IGludmFsaWQgbmFtZSBnaXZlbiIpOwotKyAgICByZXR1cm4gTlVMTDsKLSsg
IH0KLStjcmVhdGVfZXJyb3I6Ci0rICB7Ci0rICAgIC8qIGNyZWF0ZV9zZXNzaW9uIGFscmVhZHkg
d2FybmVkICovCi0gICAgIHJldHVybiBOVUxMOwotICAgfQotIH0KLUBAIC0zNjUxLDcgKzM4OTUs
NyBAQCBjb21wbGV0ZV9zZXNzaW9uX3NyYyAoR3N0UnRwQmluICogcnRwYmluLCBHc3RSdHBCaW5T
ZXNzaW9uICogc2Vzc2lvbikKLSAgICAgR3N0UGFkTGlua1JldHVybiByZXQ7Ci0gCi0gICAgIEdT
VF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgImxpbmtpbmcgUlRQIGVuY29kZXIiKTsKLS0gICAgZW5h
bWUgPSBnX3N0cmR1cF9wcmludGYgKCJydHBfc3JjXyVkIiwgc2Vzc2lkKTsKLSsgICAgZW5hbWUg
PSBnX3N0cmR1cF9wcmludGYgKCJydHBfc3JjXyV1Iiwgc2Vzc2lkKTsKLSAgICAgZW5jc3JjID0g
Z3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQgKGVuY29kZXIsIGVuYW1lKTsKLSAgICAgZ19mcmVl
IChlbmFtZSk7Ci0gCi1AQCAtMzY2MCw3ICszOTA0LDcgQEAgY29tcGxldGVfc2Vzc2lvbl9zcmMg
KEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Npb24pCi0gCi0gICAg
IHNlbmRfcnRwX3NyYyA9IGVuY3NyYzsKLSAKLS0gICAgZW5hbWUgPSBnX3N0cmR1cF9wcmludGYg
KCJydHBfc2lua18lZCIsIHNlc3NpZCk7Ci0rICAgIGVuYW1lID0gZ19zdHJkdXBfcHJpbnRmICgi
cnRwX3NpbmtfJXUiLCBzZXNzaWQpOwotICAgICBlbmNzaW5rID0gZ3N0X2VsZW1lbnRfZ2V0X3N0
YXRpY19wYWQgKGVuY29kZXIsIGVuYW1lKTsKLSAgICAgZ19mcmVlIChlbmFtZSk7Ci0gICAgIGlm
IChlbmNzaW5rID09IE5VTEwpCi1AQCAtMzY5NCwyMyArMzkzOCwyMyBAQCBjb21wbGV0ZV9zZXNz
aW9uX3NyYyAoR3N0UnRwQmluICogcnRwYmluLCBHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbikK
LSAgIC8qIEVSUk9SUyAqLwotIG5vX3NyY3BhZDoKLSAgIHsKLS0gICAgZ193YXJuaW5nICgicnRw
YmluOiBmYWlsZWQgdG8gZ2V0IHJ0cCBzb3VyY2UgcGFkIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lk
KTsKLSsgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IHJ0cCBzb3VyY2UgcGFk
IGZvciBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKLSAgICAgcmV0dXJuIEZBTFNFOwotICAgfQotIGVu
Y19zcmNfZmFpbGVkOgotICAgewotLSAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBn
ZXQgZW5jb2RlciBzcmMgcGFkIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLSsgICAgZ193YXJu
aW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IGVuY29kZXIgc3JjIHBhZCBmb3Igc2Vzc2lvbiAl
dSIsIHNlc3NpZCk7Ci0gICAgIHJldHVybiBGQUxTRTsKLSAgIH0KLSBlbmNfc2lua19mYWlsZWQ6
Ci0gICB7Ci0tICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBlbmNvZGVyIHNp
bmsgcGFkIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLSsgICAgZ193YXJuaW5nICgicnRwYmlu
OiBmYWlsZWQgdG8gZ2V0IGVuY29kZXIgc2luayBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQp
OwotICAgICBnc3Rfb2JqZWN0X3VucmVmIChzZW5kX3J0cF9zcmMpOwotICAgICByZXR1cm4gRkFM
U0U7Ci0gICB9Ci0gZW5jX2xpbmtfZmFpbGVkOgotICAgewotLSAgICBnX3dhcm5pbmcgKCJydHBi
aW46IGZhaWxlZCB0byBsaW5rIHJ0cCBlbmNvZGVyIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsK
LSsgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gbGluayBydHAgZW5jb2RlciBmb3Ig
c2Vzc2lvbiAldSIsIHNlc3NpZCk7Ci0gICAgIGdzdF9vYmplY3RfdW5yZWYgKHNlbmRfcnRwX3Ny
Yyk7Ci0gICAgIHJldHVybiBGQUxTRTsKLSAgIH0KLUBAIC0zNzcyLDIyICs0MDE2LDIyIEBAIGNy
ZWF0ZV9lcnJvcjoKLSAgIH0KLSBleGlzdGluZ19zZXNzaW9uOgotICAgewotLSAgICBnX3dhcm5p
bmcgKCJydHBiaW46IHNlc3Npb24gJWQgaXMgYWxyZWFkeSBhIHNlbmRlciIsIHNlc3NpZCk7Ci0r
ICAgIGdfd2FybmluZyAoInJ0cGJpbjogc2Vzc2lvbiAldSBpcyBhbHJlYWR5IGEgc2VuZGVyIiwg
c2Vzc2lkKTsKLSAgICAgcmV0dXJuIEZBTFNFOwotICAgfQotIHBhZF9mYWlsZWQ6Ci0gICB7Ci0t
ICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBzZXNzaW9uIHBhZCBmb3Igc2Vz
c2lvbiAlZCIsIHNlc3NpZCk7Ci0rICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdl
dCBzZXNzaW9uIHBhZCBmb3Igc2Vzc2lvbiAldSIsIHNlc3NpZCk7Ci0gICAgIHJldHVybiBGQUxT
RTsKLSAgIH0KLSBhdXhfbGlua19mYWlsZWQ6Ci0gICB7Ci0tICAgIGdfd2FybmluZyAoInJ0cGJp
bjogZmFpbGVkIHRvIGxpbmsgQVVYIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLSsgICAgZ193
YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gbGluayBBVVggZm9yIHNlc3Npb24gJXUiLCBzZXNz
aWQpOwotICAgICByZXR1cm4gRkFMU0U7Ci0gICB9Ci0gc2Vzc2lvbl9zcmNfZmFpbGVkOgotICAg
ewotLSAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBjb21wbGV0ZSBBVVggZm9yIHNl
c3Npb24gJWQiLCBzZXNzaWQpOwotKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBj
b21wbGV0ZSBBVVggZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOwotICAgICByZXR1cm4gRkFMU0U7
Ci0gICB9Ci0gfQotQEAgLTM4NDcsNyArNDA5MSw3IEBAIGNyZWF0ZV9zZW5kX3J0cCAoR3N0UnRw
QmluICogcnRwYmluLCBHc3RQYWRUZW1wbGF0ZSAqIHRlbXBsLCBjb25zdCBnY2hhciAqIG5hbWUp
Ci0gICAgIGlmICghc2V0dXBfYXV4X3NlbmRlciAocnRwYmluLCBzZXNzaW9uLCBhdXgpKQotICAg
ICAgIGdvdG8gYXV4X3Nlc3Npb25fZmFpbGVkOwotIAotLSAgICBwbmFtZSA9IGdfc3RyZHVwX3By
aW50ZiAoInNpbmtfJWQiLCBzZXNzaWQpOwotKyAgICBwbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAo
InNpbmtfJXUiLCBzZXNzaWQpOwotICAgICBzZW5kX3J0cF9zaW5rID0gZ3N0X2VsZW1lbnRfZ2V0
X3N0YXRpY19wYWQgKGF1eCwgcG5hbWUpOwotICAgICBnX2ZyZWUgKHBuYW1lKTsKLSAKLUBAIC0z
ODg3LDI3ICs0MTMxLDI3IEBAIGNyZWF0ZV9lcnJvcjoKLSAgIH0KLSBleGlzdGluZ19zZXNzaW9u
OgotICAgewotLSAgICBnX3dhcm5pbmcgKCJydHBiaW46IHNlc3Npb24gJWQgaXMgYWxyZWFkeSBp
biB1c2UiLCBzZXNzaWQpOwotKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IHNlc3Npb24gJXUgaXMg
YWxyZWFkeSBpbiB1c2UiLCBzZXNzaWQpOwotICAgICByZXR1cm4gTlVMTDsKLSAgIH0KLSBhdXhf
c2Vzc2lvbl9mYWlsZWQ6Ci0gICB7Ci0tICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRv
IGdldCBBVVggc2luayBwYWQgZm9yIHNlc3Npb24gJWQiLCBzZXNzaWQpOwotKyAgICBnX3dhcm5p
bmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgQVVYIHNpbmsgcGFkIGZvciBzZXNzaW9uICV1Iiwg
c2Vzc2lkKTsKLSAgICAgcmV0dXJuIE5VTEw7Ci0gICB9Ci0gYXV4X3NpbmtfZmFpbGVkOgotICAg
ewotLSAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgQVVYIHNpbmsgcGFkIGZv
ciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLSsgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQg
dG8gZ2V0IEFVWCBzaW5rIHBhZCBmb3Igc2Vzc2lvbiAldSIsIHNlc3NpZCk7Ci0gICAgIHJldHVy
biBOVUxMOwotICAgfQotIHBhZF9mYWlsZWQ6Ci0gICB7Ci0tICAgIGdfd2FybmluZyAoInJ0cGJp
bjogZmFpbGVkIHRvIGdldCBzZXNzaW9uIHBhZCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7Ci0r
ICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBzZXNzaW9uIHBhZCBmb3Igc2Vz
c2lvbiAldSIsIHNlc3NpZCk7Ci0gICAgIHJldHVybiBOVUxMOwotICAgfQotIHNlc3Npb25fc3Jj
X2ZhaWxlZDoKLSAgIHsKLS0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gc2V0dXAg
c291cmNlIHBhZHMgZm9yIHNlc3Npb24gJWQiLCBzZXNzaWQpOwotKyAgICBnX3dhcm5pbmcgKCJy
dHBiaW46IGZhaWxlZCB0byBzZXR1cCBzb3VyY2UgcGFkcyBmb3Igc2Vzc2lvbiAldSIsIHNlc3Np
ZCk7Ci0gICAgIHJldHVybiBOVUxMOwotICAgfQotIH0KLUBAIC0zOTc4LDEzICs0MjIyLDEzIEBA
IGNyZWF0ZV9ydGNwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBhZFRlbXBsYXRlICogdGVtcGws
IGNvbnN0IGdjaGFyICogbmFtZSkKLSAKLSAgICAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAi
bGlua2luZyBSVENQIGVuY29kZXIiKTsKLSAKLS0gICAgZW5hbWUgPSBnX3N0cmR1cF9wcmludGYg
KCJydGNwX3NyY18lZCIsIHNlc3NpZCk7Ci0rICAgIGVuYW1lID0gZ19zdHJkdXBfcHJpbnRmICgi
cnRjcF9zcmNfJXUiLCBzZXNzaWQpOwotICAgICBlbmNzcmMgPSBnc3RfZWxlbWVudF9nZXRfc3Rh
dGljX3BhZCAoZW5jb2RlciwgZW5hbWUpOwotICAgICBnX2ZyZWUgKGVuYW1lKTsKLSAgICAgaWYg
KGVuY3NyYyA9PSBOVUxMKQotICAgICAgIGdvdG8gZW5jX3NyY19mYWlsZWQ7Ci0gCi0tICAgIGVu
YW1lID0gZ19zdHJkdXBfcHJpbnRmICgicnRjcF9zaW5rXyVkIiwgc2Vzc2lkKTsKLSsgICAgZW5h
bWUgPSBnX3N0cmR1cF9wcmludGYgKCJydGNwX3NpbmtfJXUiLCBzZXNzaWQpOwotICAgICBlbmNz
aW5rID0gZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQgKGVuY29kZXIsIGVuYW1lKTsKLSAgICAg
Z19mcmVlIChlbmFtZSk7Ci0gICAgIGlmIChlbmNzaW5rID09IE5VTEwpCi1AQCAtNDAyMSwyMyAr
NDI2NSwyMyBAQCBub19zZXNzaW9uOgotICAgfQotIHBhZF9mYWlsZWQ6Ci0gICB7Ci0tICAgIGdf
d2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBydGNwIHBhZCBmb3Igc2Vzc2lvbiAlZCIs
IHNlc3NpZCk7Ci0rICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBydGNwIHBh
ZCBmb3Igc2Vzc2lvbiAldSIsIHNlc3NpZCk7Ci0gICAgIHJldHVybiBOVUxMOwotICAgfQotIGVu
Y19zcmNfZmFpbGVkOgotICAgewotLSAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBn
ZXQgZW5jb2RlciBzcmMgcGFkIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLSsgICAgZ193YXJu
aW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IGVuY29kZXIgc3JjIHBhZCBmb3Igc2Vzc2lvbiAl
dSIsIHNlc3NpZCk7Ci0gICAgIHJldHVybiBOVUxMOwotICAgfQotIGVuY19zaW5rX2ZhaWxlZDoK
LSAgIHsKLS0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IGVuY29kZXIgc2lu
ayBwYWQgZm9yIHNlc3Npb24gJWQiLCBzZXNzaWQpOwotKyAgICBnX3dhcm5pbmcgKCJydHBiaW46
IGZhaWxlZCB0byBnZXQgZW5jb2RlciBzaW5rIHBhZCBmb3Igc2Vzc2lvbiAldSIsIHNlc3NpZCk7
Ci0gICAgIGdzdF9vYmplY3RfdW5yZWYgKGVuY3NyYyk7Ci0gICAgIHJldHVybiBOVUxMOwotICAg
fQotIGVuY19saW5rX2ZhaWxlZDoKLSAgIHsKLS0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWls
ZWQgdG8gbGluayBydGNwIGVuY29kZXIgZm9yIHNlc3Npb24gJWQiLCBzZXNzaWQpOwotKyAgICBn
X3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBsaW5rIHJ0Y3AgZW5jb2RlciBmb3Igc2Vzc2lv
biAldSIsIHNlc3NpZCk7Ci0gICAgIGdzdF9vYmplY3RfdW5yZWYgKGVuY3NyYyk7Ci0gICAgIHJl
dHVybiBOVUxMOwotICAgfQotZGlmZiAtLWdpdCBhL2dzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5o
IGIvZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmgKLWluZGV4IGZiMTNhNDcuLjM4NGI3NmQgMTAw
NjQ0Ci0tLS0gYS9nc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uaAotKysrIGIvZ3N0L3J0cG1hbmFn
ZXIvZ3N0cnRwYmluLmgKLUBAIC0xMjcsNiArMTI3LDggQEAgc3RydWN0IF9Hc3RSdHBCaW5DbGFz
cyB7Ci0gCi0gICB2b2lkICAgICAoKm9uX25ld19zZW5kZXJfc3NyYykgICAgICAoR3N0UnRwQmlu
ICpydHBiaW4sIGd1aW50IHNlc3Npb24sIGd1aW50MzIgc3NyYyk7Ci0gICB2b2lkICAgICAoKm9u
X3NlbmRlcl9zc3JjX2FjdGl2ZSkgICAoR3N0UnRwQmluICpydHBiaW4sIGd1aW50IHNlc3Npb24s
IGd1aW50MzIgc3NyYyk7Ci0rCi0rICBndWludCAgICAoKm9uX2J1bmRsZWRfc3NyYykgICAgICAg
ICAoR3N0UnRwQmluICpydHBiaW4sIGd1aW50IHNzcmMpOwotIH07Ci0gCi0gR1R5cGUgZ3N0X3J0
cF9iaW5fZ2V0X3R5cGUgKHZvaWQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNo
ZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA1LXNvdXBodHRwc3JjLWNvb2tpZS1qYXItYW5kLWNvbnRl
eHQtcXVlcnktc3VwcG9ydC5wYXRjaCBiL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVn
aW5zLWdvb2QtMDAwNS1zb3VwaHR0cHNyYy1jb29raWUtamFyLWFuZC1jb250ZXh0LXF1ZXJ5LXN1
cHBvcnQucGF0Y2gKaW5kZXggODRlZGJkNmY4M2VmZWI2NDdjN2QyYmIzZmJhZjVhOTVkY2M3ZTBl
YS4uOGEzYzA2MmFiM2ZkOTE0YWY3ZjEwZWIyNGIwMjk0MWI4Y2E0NmVmYyAxMDA2NDQKLS0tIGEv
VG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA1LXNvdXBodHRwc3Jj
LWNvb2tpZS1qYXItYW5kLWNvbnRleHQtcXVlcnktc3VwcG9ydC5wYXRjaAorKysgYi9Ub29scy9n
c3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDUtc291cGh0dHBzcmMtY29va2ll
LWphci1hbmQtY29udGV4dC1xdWVyeS1zdXBwb3J0LnBhdGNoCkBAIC0xLDcgKzEsNyBAQAotRnJv
bSA4ZTAzYTYzZmQ1NWY1YWU0NDc5OTQ1Nzk4OTBlODYzMGIyN2Y0YTFiIE1vbiBTZXAgMTcgMDA6
MDA6MDAgMjAwMQorRnJvbSA1NDk1ZTE1NGM1YmEwNWM3ZTI1NDg2NWUyZmY2ZDEwNjhmMmRjNmNh
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5A
aWdhbGlhLmNvbT4KIERhdGU6IFdlZCwgMjggT2N0IDIwMTUgMTI6MDA6MDkgKzAxMDAKLVN1Ympl
Y3Q6IFtQQVRDSCAyLzNdIHNvdXBodHRwc3JjOiBjb29raWUgamFyIGFuZCBjb250ZXh0IHF1ZXJ5
IHN1cHBvcnQKK1N1YmplY3Q6IFtQQVRDSF0gc291cGh0dHBzcmM6IGNvb2tpZSBqYXIgYW5kIGNv
bnRleHQgcXVlcnkgc3VwcG9ydAogCiBVc2UgYSB2b2xhdGlsZSBDb29raWUgamFyIHRvIHN0b3Jl
IGNvb2tpZXMgYW5kIGhhbmRsZSB0aGUgY29udGV4dAogcXVlcnkgc28gdGhhdCBzZXNzaW9uIGRh
dGEgY2FuIGJlIHNoYXJlZCB3aXRoIG90aGVyIGVsZW1lbnRzIChsaWtlCkBAIC0xNCwxMCArMTQs
MTAgQEAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNjMxNAog
IDIgZmlsZXMgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIAogZGlm
ZiAtLWdpdCBhL2V4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmMgYi9leHQvc291cC9nc3Rzb3VwaHR0
cHNyYy5jCi1pbmRleCBmYzdjYmE3Li4wZDNlODg2IDEwMDY0NAoraW5kZXggNTJjMWI4MTgyLi5h
YzQxNjkyYTUgMTAwNjQ0CiAtLS0gYS9leHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jCiArKysgYi9l
eHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jCi1AQCAtNDgyLDYgKzQ4Miw3IEBAIGdzdF9zb3VwX2h0
dHBfc3JjX2luaXQgKEdzdFNvdXBIVFRQU3JjICogc3JjKQorQEAgLTQ4MSw2ICs0ODEsNyBAQCBn
c3Rfc291cF9odHRwX3NyY19pbml0IChHc3RTb3VwSFRUUFNyYyAqIHNyYykKICAgIHNyYy0+Y29v
a2llcyA9IE5VTEw7CiAgICBzcmMtPmlyYWRpb19tb2RlID0gREVGQVVMVF9JUkFESU9fTU9ERTsK
ICAgIHNyYy0+c2Vzc2lvbiA9IE5VTEw7CkBAIC0yNSw3ICsyNSw3IEBAIGluZGV4IGZjN2NiYTcu
LjBkM2U4ODYgMTAwNjQ0CiAgICBzcmMtPm1zZyA9IE5VTEw7CiAgICBzcmMtPnRpbWVvdXQgPSBE
RUZBVUxUX1RJTUVPVVQ7CiAgICBzcmMtPmxvZ19sZXZlbCA9IERFRkFVTFRfU09VUF9MT0dfTEVW
RUw7Ci1AQCAtOTQzLDYgKzk0NCw5IEBAIGdzdF9zb3VwX2h0dHBfc3JjX3Nlc3Npb25fb3BlbiAo
R3N0U291cEhUVFBTcmMgKiBzcmMpCitAQCAtOTQyLDYgKzk0Myw5IEBAIGdzdF9zb3VwX2h0dHBf
c3JjX3Nlc3Npb25fb3BlbiAoR3N0U291cEhUVFBTcmMgKiBzcmMpCiAgICAgIHNvdXBfc2Vzc2lv
bl9yZW1vdmVfZmVhdHVyZV9ieV90eXBlIChzcmMtPnNlc3Npb24sCiAgICAgICAgICBTT1VQX1RZ
UEVfQ09OVEVOVF9ERUNPREVSKTsKICAKQEAgLTM1LDcgKzM1LDcgQEAgaW5kZXggZmM3Y2JhNy4u
MGQzZTg4NiAxMDA2NDQKICAgIHJldHVybiBUUlVFOwogIH0KICAKLUBAIC05NTgsNiArOTYyLDEx
IEBAIGdzdF9zb3VwX2h0dHBfc3JjX3Nlc3Npb25fY2xvc2UgKEdzdFNvdXBIVFRQU3JjICogc3Jj
KQorQEAgLTk1Nyw2ICs5NjEsMTEgQEAgZ3N0X3NvdXBfaHR0cF9zcmNfc2Vzc2lvbl9jbG9zZSAo
R3N0U291cEhUVFBTcmMgKiBzcmMpCiAgICAgIHNyYy0+bXNnID0gTlVMTDsKICAgIH0KICAKQEAg
LTQ3LDcgKzQ3LDcgQEAgaW5kZXggZmM3Y2JhNy4uMGQzZTg4NiAxMDA2NDQKICAgIGlmIChzcmMt
PnNlc3Npb24pIHsKICAgICAgc291cF9zZXNzaW9uX2Fib3J0IChzcmMtPnNlc3Npb24pOwogICAg
ICBnX29iamVjdF91bnJlZiAoc3JjLT5zZXNzaW9uKTsKLUBAIC0xNDI2LDExICsxNDM1LDEyIEBA
IGdzdF9zb3VwX2h0dHBfc3JjX2J1aWxkX21lc3NhZ2UgKEdzdFNvdXBIVFRQU3JjICogc3JjLCBj
b25zdCBnY2hhciAqIG1ldGhvZCkKK0BAIC0xMzcyLDExICsxMzgxLDEyIEBAIGdzdF9zb3VwX2h0
dHBfc3JjX2J1aWxkX21lc3NhZ2UgKEdzdFNvdXBIVFRQU3JjICogc3JjLCBjb25zdCBnY2hhciAq
IG1ldGhvZCkKICAgIH0KICAgIGlmIChzcmMtPmNvb2tpZXMpIHsKICAgICAgZ2NoYXIgKipjb29r
aWU7CkBAIC02Miw3ICs2Miw3IEBAIGluZGV4IGZjN2NiYTcuLjBkM2U4ODYgMTAwNjQ0CiAgICB9
CiAgCiAgICBzb3VwX21lc3NhZ2Vfc2V0X2ZsYWdzIChzcmMtPm1zZywgU09VUF9NRVNTQUdFX09W
RVJXUklURV9DSFVOS1MgfAotQEAgLTE5MTAsNiArMTkyMCwxMiBAQCBnc3Rfc291cF9odHRwX3Ny
Y19xdWVyeSAoR3N0QmFzZVNyYyAqIGJzcmMsIEdzdFF1ZXJ5ICogcXVlcnkpCitAQCAtMTg4OCw2
ICsxODk4LDEyIEBAIGdzdF9zb3VwX2h0dHBfc3JjX3F1ZXJ5IChHc3RCYXNlU3JjICogYnNyYywg
R3N0UXVlcnkgKiBxdWVyeSkKICAgIGdib29sZWFuIHJldDsKICAgIEdzdFNjaGVkdWxpbmdGbGFn
cyBmbGFnczsKICAgIGdpbnQgbWluc2l6ZSwgbWF4c2l6ZSwgYWxpZ247CkBAIC03NSw3ICs3NSw3
IEBAIGluZGV4IGZjN2NiYTcuLjBkM2U4ODYgMTAwNjQ0CiAgCiAgICBzd2l0Y2ggKEdTVF9RVUVS
WV9UWVBFIChxdWVyeSkpIHsKICAgICAgY2FzZSBHU1RfUVVFUllfVVJJOgotQEAgLTE5MjEsNiAr
MTkzNywyNyBAQCBnc3Rfc291cF9odHRwX3NyY19xdWVyeSAoR3N0QmFzZVNyYyAqIGJzcmMsIEdz
dFF1ZXJ5ICogcXVlcnkpCitAQCAtMTg5OSw2ICsxOTE1LDI3IEBAIGdzdF9zb3VwX2h0dHBfc3Jj
X3F1ZXJ5IChHc3RCYXNlU3JjICogYnNyYywgR3N0UXVlcnkgKiBxdWVyeSkKICAgICAgICB9CiAg
ICAgICAgcmV0ID0gVFJVRTsKICAgICAgICBicmVhazsKQEAgLTEwNCw3ICsxMDQsNyBAQCBpbmRl
eCBmYzdjYmE3Li4wZDNlODg2IDEwMDY0NAogICAgICAgIHJldCA9IEZBTFNFOwogICAgICAgIGJy
ZWFrOwogZGlmZiAtLWdpdCBhL2V4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmggYi9leHQvc291cC9n
c3Rzb3VwaHR0cHNyYy5oCi1pbmRleCBkZDAxNjU2Li45YzZiYjVjIDEwMDY0NAoraW5kZXggZjE0
MGY4MGM1Li41MmIzMmM3NjggMTAwNjQ0CiAtLS0gYS9leHQvc291cC9nc3Rzb3VwaHR0cHNyYy5o
CiArKysgYi9leHQvc291cC9nc3Rzb3VwaHR0cHNyYy5oCiBAQCAtNjAsNiArNjAsNyBAQCBzdHJ1
Y3QgX0dzdFNvdXBIVFRQU3JjIHsKQEAgLTExMyw4ICsxMTMsOCBAQCBpbmRleCBkZDAxNjU2Li45
YzZiYjVjIDEwMDY0NAogICAgU291cFNlc3Npb24gKnNlc3Npb247ICAgICAgICAvKiBBc3luYyBj
b250ZXh0LiAqLwogKyAgU291cENvb2tpZUphciAqY29va2llX2phcjsgICAvKiBWb2xhdGlsZSBI
VFRQIGNvb2tpZSBzdG9yYWdlICovCiAgICBTb3VwTWVzc2FnZSAqbXNnOyAgICAgICAgICAgIC8q
IFJlcXVlc3QgbWVzc2FnZS4gKi8KLSAgIEdzdEZsb3dSZXR1cm4gcmV0OyAgICAgICAgICAgLyog
UmV0dXJuIGNvZGUgZnJvbSBjYWxsYmFjay4gKi8KICAgIGdpbnQgcmV0cnlfY291bnQ7ICAgICAg
ICAgICAgLyogTnVtYmVyIG9mIHJldHJpZXMgc2luY2Ugd2UgcmVjZWl2ZWQgZGF0YSAqLworICAg
Z2ludCBtYXhfcmV0cmllczsgICAgICAgICAgICAvKiBNYXhpbXVtIG51bWJlciBvZiByZXRyaWVz
ICovCiAtLSAKLTEuOC4zLjIKKzIuMTEuMAogCmRpZmYgLS1naXQgYS9Ub29scy9nc3RyZWFtZXIv
cGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDYtcXRkZW11eC1hZGQtY29udGV4dC1mb3ItYS1w
cmVmZXJyZWQtcHJvdGVjdGlvbi5wYXRjaCBiL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1w
bHVnaW5zLWdvb2QtMDAwNi1xdGRlbXV4LWFkZC1jb250ZXh0LWZvci1hLXByZWZlcnJlZC1wcm90
ZWN0aW9uLnBhdGNoCmluZGV4IDBkZGZlY2U0MmYwN2Y1YWUwZmUyZDVlN2QyZGJmOTgyYzdmYTUz
OTkuLjY3ZTg0MDY0NTZmMzJiNTgzODI2Y2ExZWUwNjUxZWRmNDA1ODUyYzEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNi1xdGRlbXV4LWFk
ZC1jb250ZXh0LWZvci1hLXByZWZlcnJlZC1wcm90ZWN0aW9uLnBhdGNoCisrKyBiL1Rvb2xzL2dz
dHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNi1xdGRlbXV4LWFkZC1jb250ZXh0
LWZvci1hLXByZWZlcnJlZC1wcm90ZWN0aW9uLnBhdGNoCkBAIC0xLDcgKzEsNyBAQAotRnJvbSA5
ZDcyMDFjYTc2ZTc4NzVjZGRkMTA2ZGYwNmI0ZDc2MzdjMDI1NDY1IE1vbiBTZXAgMTcgMDA6MDA6
MDAgMjAwMQorRnJvbSBlMDlhYjk1YWQzOTI2NDc4M2JmMGU1N2RmYjg5MTY1YWQ5YjgzODAyIE1v
biBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgPGNh
bHZhcmlzQGlnYWxpYS5jb20+CiBEYXRlOiBXZWQsIDIxIEp1biAyMDE3IDE3OjU5OjIxICswMjAw
Ci1TdWJqZWN0OiBbUEFUQ0ggMi8zXSBxdGRlbXV4OiBhZGQgY29udGV4dCBmb3IgYSBwcmVmZXJy
ZWQgcHJvdGVjdGlvbgorU3ViamVjdDogW1BBVENIXSBxdGRlbXV4OiBhZGQgY29udGV4dCBmb3Ig
YSBwcmVmZXJyZWQgcHJvdGVjdGlvbgogCiBxdGRlbXV4IHNlbGVjdGVkIHRoZSBmaXJzdCBzeXN0
ZW0gY29ycmVzcG9uZGluZyB0byBhIHdvcmtpbmcgR1N0cmVhbWVyCiBkZWNyeXB0b3IuIFdpdGgg
dGhpcyBjaGFuZ2UsIGJlZm9yZSBzZWxlY3RpbmcgdGhhdCBkZWNyeXB0b3IsIHF0ZGVtdXgKQEAg
LTM2LDcgKzM2LDcgQEAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lk
PTc3MDEwNwogIDIgZmlsZXMgY2hhbmdlZCwgMTk1IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25z
KC0pCiAKIGRpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVtdXguYyBiL2dzdC9pc29tcDQvcXRk
ZW11eC5jCi1pbmRleCAwYTQxYjI2ZjIuLmFlNTdiZGY5YiAxMDA2NDQKK2luZGV4IGYwZjgzMjBl
Mi4uZjcxMGQyNjg1IDEwMDY0NAogLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMKICsrKyBiL2dz
dC9pc29tcDQvcXRkZW11eC5jCiBAQCAtNTEzLDYgKzUxMyw4IEBAIHN0YXRpYyBHc3RJbmRleCAq
Z3N0X3F0ZGVtdXhfZ2V0X2luZGV4IChHc3RFbGVtZW50ICogZWxlbWVudCk7CkBAIC02NCw3ICs2
NCw3IEBAIGluZGV4IDBhNDFiMjZmMi4uYWU1N2JkZjliIDEwMDY0NAogICAgZ19xdWV1ZV9pbml0
ICgmcXRkZW11eC0+cHJvdGVjdGlvbl9ldmVudF9xdWV1ZSk7CiAgICBnc3Rfc2VnbWVudF9pbml0
ICgmcXRkZW11eC0+c2VnbWVudCwgR1NUX0ZPUk1BVF9USU1FKTsKICAgIHF0ZGVtdXgtPnRhZ19s
aXN0ID0gZ3N0X3RhZ19saXN0X25ld19lbXB0eSAoKTsKLUBAIC0yMTEzLDYgKzIxMTcsMTAgQEAg
Z3N0X3F0ZGVtdXhfcmVzZXQgKEdzdFFURGVtdXggKiBxdGRlbXV4LCBnYm9vbGVhbiBoYXJkKQor
QEAgLTIxMTQsNiArMjExOCwxMCBAQCBnc3RfcXRkZW11eF9yZXNldCAoR3N0UVREZW11eCAqIHF0
ZGVtdXgsIGdib29sZWFuIGhhcmQpCiAgICAgICAgZ19wdHJfYXJyYXlfZnJlZSAocXRkZW11eC0+
cHJvdGVjdGlvbl9zeXN0ZW1faWRzLCBUUlVFKTsKICAgICAgICBxdGRlbXV4LT5wcm90ZWN0aW9u
X3N5c3RlbV9pZHMgPSBOVUxMOwogICAgICB9CkBAIC03NSw3ICs3NSw3IEBAIGluZGV4IDBhNDFi
MjZmMi4uYWU1N2JkZjliIDEwMDY0NAogICAgfSBlbHNlIGlmIChxdGRlbXV4LT5tc3NfbW9kZSkg
ewogICAgICBnc3RfZmxvd19jb21iaW5lcl9yZXNldCAocXRkZW11eC0+Zmxvd2NvbWJpbmVyKTsK
ICAgICAgZm9yIChuID0gMDsgbiA8IHF0ZGVtdXgtPm5fc3RyZWFtczsgbisrKQotQEAgLTI1OTAs
NiArMjU5OCwyOCBAQCBnc3RfcXRkZW11eF9jaGFuZ2Vfc3RhdGUgKEdzdEVsZW1lbnQgKiBlbGVt
ZW50LCBHc3RTdGF0ZUNoYW5nZSB0cmFuc2l0aW9uKQorQEAgLTI2MDAsNiArMjYwOCwyOCBAQCBn
c3RfcXRkZW11eF9jaGFuZ2Vfc3RhdGUgKEdzdEVsZW1lbnQgKiBlbGVtZW50LCBHc3RTdGF0ZUNo
YW5nZSB0cmFuc2l0aW9uKQogIH0KICAKICBzdGF0aWMgdm9pZApAQCAtMTA0LDcgKzEwNCw3IEBA
IGluZGV4IDBhNDFiMjZmMi4uYWU1N2JkZjliIDEwMDY0NAogIHF0ZGVtdXhfcGFyc2VfZnR5cCAo
R3N0UVREZW11eCAqIHF0ZGVtdXgsIGNvbnN0IGd1aW50OCAqIGJ1ZmZlciwgZ2ludCBsZW5ndGgp
CiAgewogICAgLyogY291bnRzIGFzIGhlYWRlciBkYXRhICovCi1AQCAtMzgxOSw2ICszODQ5LDgg
QEAgcXRkZW11eF9wYXJzZV9wc3NoIChHc3RRVERlbXV4ICogcXRkZW11eCwgR05vZGUgKiBub2Rl
KQorQEAgLTM4MjksNiArMzg1OSw4IEBAIHF0ZGVtdXhfcGFyc2VfcHNzaCAoR3N0UVREZW11eCAq
IHF0ZGVtdXgsIEdOb2RlICogbm9kZSkKICAgIGV2ZW50ID0gZ3N0X2V2ZW50X25ld19wcm90ZWN0
aW9uIChzeXNpZF9zdHJpbmcsIHBzc2gsCiAgICAgICAgKHBhcmVudF9ib3hfdHlwZSA9PSBGT1VS
Q0NfbW9vdikgPyAiaXNvYm1mZi9tb292IiA6ICJpc29ibWZmL21vb2YiKTsKICAgIGZvciAoaSA9
IDA7IGkgPCBxdGRlbXV4LT5uX3N0cmVhbXM7ICsraSkgewpAQCAtMTEzLDcgKzExMyw3IEBAIGlu
ZGV4IDBhNDFiMjZmMi4uYWU1N2JkZjliIDEwMDY0NAogICAgICBnX3F1ZXVlX3B1c2hfdGFpbCAo
JnF0ZGVtdXgtPnN0cmVhbXNbaV0tPnByb3RlY3Rpb25fc2NoZW1lX2V2ZW50X3F1ZXVlLAogICAg
ICAgICAgZ3N0X2V2ZW50X3JlZiAoZXZlbnQpKTsKICAgIH0KLUBAIC01NTI5LDYgKzU1NjEsOCBA
QCBnc3RfcXRkZW11eF9kZWNvcmF0ZV9hbmRfcHVzaF9idWZmZXIgKEdzdFFURGVtdXggKiBxdGRl
bXV4LAorQEAgLTU1MzgsNiArNTU3MCw4IEBAIGdzdF9xdGRlbXV4X2RlY29yYXRlX2FuZF9wdXNo
X2J1ZmZlciAoR3N0UVREZW11eCAqIHF0ZGVtdXgsCiAgICAgIEdzdEV2ZW50ICpldmVudDsKICAK
ICAgICAgd2hpbGUgKChldmVudCA9IGdfcXVldWVfcG9wX2hlYWQgKCZzdHJlYW0tPnByb3RlY3Rp
b25fc2NoZW1lX2V2ZW50X3F1ZXVlKSkpIHsKQEAgLTEyMiw3ICsxMjIsNyBAQCBpbmRleCAwYTQx
YjI2ZjIuLmFlNTdiZGY5YiAxMDA2NDQKICAgICAgICBnc3RfcGFkX3B1c2hfZXZlbnQgKHN0cmVh
bS0+cGFkLCBldmVudCk7CiAgICAgIH0KICAKLUBAIC03Njg4LDExICs3NzIyLDE0MSBAQCBxdGRl
bXV4X2RvX2FsbG9jYXRpb24gKEdzdFFURGVtdXggKiBxdGRlbXV4LCBRdERlbXV4U3RyZWFtICog
c3RyZWFtKQorQEAgLTc2OTYsMTEgKzc3MzAsMTQxIEBAIHF0ZGVtdXhfZG9fYWxsb2NhdGlvbiAo
R3N0UVREZW11eCAqIHF0ZGVtdXgsIFF0RGVtdXhTdHJlYW0gKiBzdHJlYW0pCiAgfQogIAogIHN0
YXRpYyBnYm9vbGVhbgpAQCAtMjY1LDcgKzI2NSw3IEBAIGluZGV4IDBhNDFiMjZmMi4uYWU1N2Jk
ZjliIDEwMDY0NAogIAogICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHF0ZGVtdXggIT0gTlVMTCwg
RkFMU0UpOwogICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHN0cmVhbSAhPSBOVUxMLCBGQUxTRSk7
Ci1AQCAtNzcwOCwxNyArNzg3Miw0MSBAQCBnc3RfcXRkZW11eF9jb25maWd1cmVfcHJvdGVjdGVk
X2NhcHMgKEdzdFFURGVtdXggKiBxdGRlbXV4LAorQEAgLTc3MTYsMTcgKzc4ODAsNDEgQEAgZ3N0
X3F0ZGVtdXhfY29uZmlndXJlX3Byb3RlY3RlZF9jYXBzIChHc3RRVERlbXV4ICogcXRkZW11eCwK
ICAgICAgICAgICJjZW5jIHByb3RlY3Rpb24gc3lzdGVtIGluZm9ybWF0aW9uIGhhcyBiZWVuIGZv
dW5kIik7CiAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KQEAgLTMwOSw3ICszMDksNyBAQCBpbmRl
eCAwYTQxYjI2ZjIuLmFlNTdiZGY5YiAxMDA2NDQKICsgIEdTVF9ERUJVR19PQkpFQ1QgKHF0ZGVt
dXgsICJzZWxlY3RlZCBwcm90ZWN0aW9uIHN5c3RlbSBpcyAlcyIsCiArICAgICAgc2VsZWN0ZWRf
c3lzdGVtKTsKICsKLSAgIHMgPSBnc3RfY2Fwc19nZXRfc3RydWN0dXJlIChzdHJlYW0tPmNhcHMs
IDApOworICAgcyA9IGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUgKENVUl9TVFJFQU0gKHN0cmVhbSkt
PmNhcHMsIDApOwogICAgaWYgKCFnc3Rfc3RydWN0dXJlX2hhc19uYW1lIChzLCAiYXBwbGljYXRp
b24veC1jZW5jIikpIHsKICAgICAgZ3N0X3N0cnVjdHVyZV9zZXQgKHMsCiBkaWZmIC0tZ2l0IGEv
Z3N0L2lzb21wNC9xdGRlbXV4LmggYi9nc3QvaXNvbXA0L3F0ZGVtdXguaApkaWZmIC0tZ2l0IGEv
VG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA4LXF0ZGVtdXgtYWxz
by1wdXNoLWJ1ZmZlcnMtd2l0aG91dC1lbmNyeXB0aW9uLWluZm8taW4ucGF0Y2ggYi9Ub29scy9n
c3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDgtcXRkZW11eC1hbHNvLXB1c2gt
YnVmZmVycy13aXRob3V0LWVuY3J5cHRpb24taW5mby1pbi5wYXRjaAppbmRleCA5NTAyMWNjYmMw
NGUxMGM2NGViMWU0YWI5NjY5M2JiZjA4ODgwOTZkLi4zZmMxZmNlNGNjZWU1ZmQ4YjU2YTJkMDJi
ZTk0YTZkZWIzMTdmYjM0IDEwMDY0NAotLS0gYS9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3Qt
cGx1Z2lucy1nb29kLTAwMDgtcXRkZW11eC1hbHNvLXB1c2gtYnVmZmVycy13aXRob3V0LWVuY3J5
cHRpb24taW5mby1pbi5wYXRjaAorKysgYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1
Z2lucy1nb29kLTAwMDgtcXRkZW11eC1hbHNvLXB1c2gtYnVmZmVycy13aXRob3V0LWVuY3J5cHRp
b24taW5mby1pbi5wYXRjaApAQCAtOSwxMSArOSwxMSBAQCBTdWJqZWN0OiBbUEFUQ0hdIHF0ZGVt
dXg6IGFsc28gcHVzaCBidWZmZXJzIHdpdGhvdXQgZW5jcnlwdGlvbiBpbmZvIGluc3RlYWQgb2YK
ICAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCiAKIGRp
ZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVtdXguYyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCi1p
bmRleCA2YjBjODIwLi43YjcxMjM3IDEwMDY0NAoraW5kZXggZjBmODMyMC4uM2YyYzAxNiAxMDA2
NDQKIC0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5jCiArKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXgu
YwotQEAgLTU0MjEsMjAgKzU0MjEsMTggQEAgZ3N0X3F0ZGVtdXhfZGVjb3JhdGVfYW5kX3B1c2hf
YnVmZmVyIChHc3RRVERlbXV4ICogcXRkZW11eCwKLSAgICAgICAgIGdzdF9wYWRfcHVzaF9ldmVu
dCAoc3RyZWFtLT5wYWQsIGV2ZW50KTsKK0BAIC01NTQxLDI2ICs1NTQxLDI1IEBAIGdzdF9xdGRl
bXV4X2RlY29yYXRlX2FuZF9wdXNoX2J1ZmZlciAoR3N0UVREZW11eCAqIHF0ZGVtdXgsCisgICAg
ICAgZ3N0X3BhZF9wdXNoX2V2ZW50IChzdHJlYW0tPnBhZCwgZXZlbnQpOwogICAgICB9CiAgCiAt
ICAgIGlmIChpbmZvLT5jcnlwdG9faW5mbyA9PSBOVUxMKSB7CkBAIC0yMiwyOSArMjIsNDIgQEAg
aW5kZXggNmIwYzgyMC4uN2I3MTIzNyAxMDA2NDQKIC0gICAgICBnb3RvIGV4aXQ7CiAtICAgIH0K
IC0KLS0gICAgaW5kZXggPSBzdHJlYW0tPnNhbXBsZV9pbmRleCAtIChzdHJlYW0tPm5fc2FtcGxl
cyAtIGluZm8tPmNyeXB0b19pbmZvLT5sZW4pOworLSAgICAvKiBUaGUgZW5kIG9mIHRoZSBjcnlw
dG9faW5mbyBhcnJheSBtYXRjaGVzIG91ciBuX3NhbXBsZXMgcG9zaXRpb24sCistICAgICAqIHNv
IGNvdW50IGJhY2t3YXJkIGZyb20gdGhlcmUgKi8KKy0gICAgaW5kZXggPSBzdHJlYW0tPnNhbXBs
ZV9pbmRleCAtIHN0cmVhbS0+bl9zYW1wbGVzICsgaW5mby0+Y3J5cHRvX2luZm8tPmxlbjsKIC0g
ICAgaWYgKEdfTElLRUxZIChpbmRleCA+PSAwICYmIGluZGV4IDwgaW5mby0+Y3J5cHRvX2luZm8t
PmxlbikpIHsKIC0gICAgICAvKiBzdGVhbCBzdHJ1Y3R1cmUgZnJvbSBhcnJheSAqLwogLSAgICAg
IGNyeXB0b19pbmZvID0gZ19wdHJfYXJyYXlfaW5kZXggKGluZm8tPmNyeXB0b19pbmZvLCBpbmRl
eCk7CiAtICAgICAgZ19wdHJfYXJyYXlfaW5kZXggKGluZm8tPmNyeXB0b19pbmZvLCBpbmRleCkg
PSBOVUxMOwotLSAgICAgIEdTVF9MT0dfT0JKRUNUIChxdGRlbXV4LCAiYXR0YWNoaW5nIGNlbmMg
bWV0YWRhdGEgWyV1XSIsIGluZGV4KTsKKy0gICAgICBHU1RfTE9HX09CSkVDVCAocXRkZW11eCwg
ImF0dGFjaGluZyBjZW5jIG1ldGFkYXRhIFsldS8ldV0iLCBpbmRleCwKKy0gICAgICAgICAgaW5m
by0+Y3J5cHRvX2luZm8tPmxlbik7CiAtICAgICAgaWYgKCFjcnlwdG9faW5mbyB8fCAhZ3N0X2J1
ZmZlcl9hZGRfcHJvdGVjdGlvbl9tZXRhIChidWYsIGNyeXB0b19pbmZvKSkKIC0gICAgICAgIEdT
VF9FUlJPUl9PQkpFQ1QgKHF0ZGVtdXgsICJmYWlsZWQgdG8gYXR0YWNoIGNlbmMgbWV0YWRhdGEg
dG8gYnVmZmVyIik7CistICAgIH0gZWxzZSB7CistICAgICAgR1NUX0lORk9fT0JKRUNUIChxdGRl
bXV4LCAiTm8gY3J5cHRvIGluZm8gd2l0aCBpbmRleCAlZCBhbmQgc2FtcGxlICVkIiwKKy0gICAg
ICAgICAgaW5kZXgsIHN0cmVhbS0+c2FtcGxlX2luZGV4KTsKKysKICsgICAgaWYgKGluZm8tPmNy
eXB0b19pbmZvID09IE5VTEwpCiArICAgICAgR1NUX0RFQlVHX09CSkVDVCAocXRkZW11eCwgImNl
bmMgbWV0YWRhdGEgaGFzbid0IGJlZW4gcGFyc2VkIHlldCwgcHVzaGluZyBidWZmZXIgYXMgaWYg
aXQgd2Fzbid0IGVuY3J5cHRlZCIpOwogKyAgICBlbHNlIHsKLSsgICAgICBpbmRleCA9IHN0cmVh
bS0+c2FtcGxlX2luZGV4IC0gKHN0cmVhbS0+bl9zYW1wbGVzIC0gaW5mby0+Y3J5cHRvX2luZm8t
Pmxlbik7CisrICAgICAgLyogVGhlIGVuZCBvZiB0aGUgY3J5cHRvX2luZm8gYXJyYXkgbWF0Y2hl
cyBvdXIgbl9zYW1wbGVzIHBvc2l0aW9uLAorKyAgICAgICAqIHNvIGNvdW50IGJhY2t3YXJkIGZy
b20gdGhlcmUgKi8KKysgICAgICBpbmRleCA9IHN0cmVhbS0+c2FtcGxlX2luZGV4IC0gc3RyZWFt
LT5uX3NhbXBsZXMgKyBpbmZvLT5jcnlwdG9faW5mby0+bGVuOwogKyAgICAgIGlmIChHX0xJS0VM
WSAoaW5kZXggPj0gMCAmJiBpbmRleCA8IGluZm8tPmNyeXB0b19pbmZvLT5sZW4pKSB7CiArICAg
ICAgICAvKiBzdGVhbCBzdHJ1Y3R1cmUgZnJvbSBhcnJheSAqLwogKyAgICAgICAgY3J5cHRvX2lu
Zm8gPSBnX3B0cl9hcnJheV9pbmRleCAoaW5mby0+Y3J5cHRvX2luZm8sIGluZGV4KTsKICsgICAg
ICAgIGdfcHRyX2FycmF5X2luZGV4IChpbmZvLT5jcnlwdG9faW5mbywgaW5kZXgpID0gTlVMTDsK
LSsgICAgICAgIEdTVF9MT0dfT0JKRUNUIChxdGRlbXV4LCAiYXR0YWNoaW5nIGNlbmMgbWV0YWRh
dGEgWyV1XSIsIGluZGV4KTsKKysgICAgICAgIEdTVF9MT0dfT0JKRUNUIChxdGRlbXV4LCAiYXR0
YWNoaW5nIGNlbmMgbWV0YWRhdGEgWyV1LyV1XSIsIGluZGV4LAorKyAgICAgICAgICAgIGluZm8t
PmNyeXB0b19pbmZvLT5sZW4pOwogKyAgICAgICAgaWYgKCFjcnlwdG9faW5mbyB8fCAhZ3N0X2J1
ZmZlcl9hZGRfcHJvdGVjdGlvbl9tZXRhIChidWYsIGNyeXB0b19pbmZvKSkKICsgICAgICAgICAg
R1NUX0VSUk9SX09CSkVDVCAocXRkZW11eCwgImZhaWxlZCB0byBhdHRhY2ggY2VuYyBtZXRhZGF0
YSB0byBidWZmZXIiKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgR1NUX0lORk9fT0JKRUNU
IChxdGRlbXV4LCAiTm8gY3J5cHRvIGluZm8gd2l0aCBpbmRleCAlZCBhbmQgc2FtcGxlICVkIiwK
KysgICAgICAgICAgICBpbmRleCwgc3RyZWFtLT5zYW1wbGVfaW5kZXgpOwogKyAgICAgIH0KICAg
ICAgfQogICAgfQogIAogLS0gCi0xLjguMy4yCisyLjExLjAKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
Z3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA5LXF0ZGVtdXgtZml4LWFzc2Vy
dC13aGVuLW1vb2YtY29udGFpbnMtb25lLXNhbXBsZS5wYXRjaCBiL1Rvb2xzL2dzdHJlYW1lci9w
YXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwOS1xdGRlbXV4LWZpeC1hc3NlcnQtd2hlbi1tb29m
LWNvbnRhaW5zLW9uZS1zYW1wbGUucGF0Y2gKaW5kZXggNjYxNzk4ZjExOTVlZDFmYWQ5ZWJkMjE2
MjVkZDgzNDBmMjNjNzdhZC4uMDY0MzI2OTQ5NTA0YzU5ZDRiMjZmZTdjOTdkYjc2NTVhZGQxNzQx
OCAxMDA2NDQKLS0tIGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0w
MDA5LXF0ZGVtdXgtZml4LWFzc2VydC13aGVuLW1vb2YtY29udGFpbnMtb25lLXNhbXBsZS5wYXRj
aAorKysgYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDktcXRk
ZW11eC1maXgtYXNzZXJ0LXdoZW4tbW9vZi1jb250YWlucy1vbmUtc2FtcGxlLnBhdGNoCkBAIC01
LDYgKzUsOSBAQCBTdWJqZWN0OiBbUEFUQ0hdIHF0ZGVtdXg6IGZpeCBhc3NlcnQgd2hlbiBtb29m
IGNvbnRhaW5zIG9uZSBzYW1wbGUKIAogQXZvaWQgY29tcHV0aW5nIGZyYW1lIHJhdGUgd2hlbiBh
IHN0cmVhbSBjb250YWluIG1vb2Ygd2l0aCBvbmx5IG9uZQogc2FtcGxlLCB0byBhdm9pZCBhbiBh
c3NlcnQuIFRoZSBtb29mIGlzIGNvbnNpZGVyZWQgYXMgc3RpbGwgcGljdHVyZS4KKworWyBNZXJn
ZWQgaW4gdXBzdHJlYW0gY29tbWl0IDcyOGExNjI5Y2Y5ZmQ3ZjRhNzI4NDc3YmRhMWQxM2ExZWNj
MjE5YmIgXQorCiAtLS0KICBnc3QvaXNvbXA0L3F0ZGVtdXguYyB8IDMgKystCiAgMSBmaWxlIGNo
YW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329107</attachid>
            <date>2017-12-12 04:43:36 -0800</date>
            <delta_ts>2017-12-12 06:58:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171677-20171212134334.patch</filename>
            <type>text/plain</type>
            <size>55029</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NzY3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjFiMzVlNTE0OTkyZjc0YWRlNjk2YTdiMWU4NzA5MjBj
MzYwYzIxMy4uNWFlM2RjMGI5ZGQzODJiODkzOTc1NmQ5NDQ5Mzc2M2I5NzkyNjFkZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDE3LTEyLTEyICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0gQnVtcCBHU3RyZWFtZXIgdmVyc2lvbiB0byAx
LjEyIGluIGpoYnVpbGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3MTY3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEJ1bXAgZ3N0cmVhbWVyIHJlbGF0ZWQgbW9kdWxlcyBhbmQgcmViYXNlIHBhdGNoZXMg
c3RpbGwgbmVlZGVkIGFuZCBub3QgbWVyZ2VkCisKKyAgICAgICAgKiBnc3RyZWFtZXIvamhidWls
ZC5tb2R1bGVzOgorICAgICAgICAqIGdzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2Qt
MDAwMy1ydHBiaW4tcmVjZWl2ZS1idW5kbGUtc3VwcG9ydC5wYXRjaDogUmVtb3ZlZC4gVGhpcyB3
YXMgbmVlZGVkIGZvciBPcGVuV2ViUlRDLiBOb3QgbG9uZ2VyIHN1cHBvcnRlZC4KKyAgICAgICAg
KiBnc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDUtc291cGh0dHBzcmMtY29v
a2llLWphci1hbmQtY29udGV4dC1xdWVyeS1zdXBwb3J0LnBhdGNoOiBSZWJhc2VkLgorICAgICAg
ICAqIGdzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNi1xdGRlbXV4LWFkZC1j
b250ZXh0LWZvci1hLXByZWZlcnJlZC1wcm90ZWN0aW9uLnBhdGNoOiBSZWJhc2VkLgorICAgICAg
ICAqIGdzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwOC1xdGRlbXV4LWFsc28t
cHVzaC1idWZmZXJzLXdpdGhvdXQtZW5jcnlwdGlvbi1pbmZvLWluLnBhdGNoOiBSZWJhc2VkLgor
ICAgICAgICAqIGdzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwOS1xdGRlbXV4
LWZpeC1hc3NlcnQtd2hlbi1tb29mLWNvbnRhaW5zLW9uZS1zYW1wbGUucGF0Y2g6IEFkZGVkIGEg
bm90ZSBhYm91dCBtZXJnZSBjb21taXQgbm90IHN0aWxsIGluIDEuMTIuNC4KKwogMjAxNy0xMi0x
MSAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBb
V2luQ2Fpcm9dIERMTExhdW5jaGVyTWFpbiBzaG91bGQgdXNlIFNldERsbERpcmVjdG9yeQpkaWZm
IC0tZ2l0IGEvVG9vbHMvZ3N0cmVhbWVyL2poYnVpbGQubW9kdWxlcyBiL1Rvb2xzL2dzdHJlYW1l
ci9qaGJ1aWxkLm1vZHVsZXMKaW5kZXggZWE2OTgxNTQzODVkOWZmMDk0ZTdmMjlhMzk2OTIzMzU0
Y2VkNzE2OS4uYTE0ZGFkYTYzMzY0NzFhZTI5YmY4M2U3NTgyMTFlNTc2ZDRmNmFhMCAxMDA2NDQK
LS0tIGEvVG9vbHMvZ3N0cmVhbWVyL2poYnVpbGQubW9kdWxlcworKysgYi9Ub29scy9nc3RyZWFt
ZXIvamhidWlsZC5tb2R1bGVzCkBAIC0yMiwxMCArMjIsOSBAQAogICAgICAgaHJlZj0iaHR0cDov
L2Rvd25sb2Fkcy53ZWJtcHJvamVjdC5vcmcvcmVsZWFzZXMvd2VibS8iLz4KIAogICA8YXV0b3Rv
b2xzIGlkPSJvcmMiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZ3RrLWRvYyIgYXV0b2dlbi1zaD0i
Y29uZmlndXJlIj4KLSAgICA8YnJhbmNoIG1vZHVsZT0ib3JjL29yYy0wLjQuMTcudGFyLmd6IiB2
ZXJzaW9uPSIwLjQuMTciCisgICAgPGJyYW5jaCBtb2R1bGU9Im9yYy9vcmMtJHt2ZXJzaW9ufS50
YXIueHoiIHZlcnNpb249IjAuNC4yOCIKICAgICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKLSAg
ICAgICAgICAgIGhhc2g9InNoYTI1Njo0ZmM3Y2NhNDhjNTlmZmYyM2FmZWU3OGZiNjQyY2RiZGUw
MDFmNTY0MDFjOGY0N2I5NWExNjU3OGQxZDVkN2U4IgotICAgICAgICAgICAgbWQ1c3VtPSJhZjFi
ZjNkYWI5ZTY5ZjNjMzZmMzg5Mjg1ZTJhMTJhMSIvPgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2
OmJmY2Q3YzY1NjNiMDU2NzIzODZjNGVlZGZjNGMwZDRhMGExMmI0YjQ3NzViNzRlYzZkZWI4OGZj
MmJjZDgzY2UiLz4KICAgPC9hdXRvdG9vbHM+CiAKICAgPGF1dG90b29scyBpZD0ib3BlbmgyNjQi
IHN1cHBvcnRzLW5vbi1zcmNkaXItYnVpbGRzPSJubyIgYXV0b2dlbi1zaD0icHNldWRvLWNvbmZp
Z3VyZSI+CkBAIC00Nyw5ICs0Niw5IEBACiAgICAgPGRlcGVuZGVuY2llcz4KICAgICAgIDxkZXAg
cGFja2FnZT0ib3JjIi8+CiAgICAgPC9kZXBlbmRlbmNpZXM+Ci0gICAgPGJyYW5jaCBtb2R1bGU9
ImdzdHJlYW1lci9nc3RyZWFtZXItJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuMTAuNSIK
KyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0cmVhbWVyL2dzdHJlYW1lci0ke3ZlcnNpb259LnRhci54
eiIgdmVyc2lvbj0iMS4xMi40IgogICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgotICAgICAg
ICAgICAgaGFzaD0ic2hhMjU2OmJjMDYyNDM2MDA4MTdmNjM3MDI5ZGEyOWQwODlkNTkwOGQxZDI2
NjU0MmY2OGJmNjYyNmExMGM1ZjA1ZjFmMWQiPgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjVh
ODcwNGFhNGMyZWViMDRkYTE5MmM0YTk5NDJmOTRmODYwYWMxYTU4NWRlOTBkOWY5MTRiYWMyNmE5
NzA2NzQiPgogICAgICAgPHBhdGNoIGZpbGU9ImdzdHJlYW1lci0wMDAxLXByb3RlY3Rpb24tYWRk
ZWQtZnVuY3Rpb24tdG8tZmlsdGVyLXN5c3RlbS1pZHMucGF0Y2giIHN0cmlwPSIxIi8+CiAgICAg
PC9icmFuY2g+CiAgIDwvYXV0b3Rvb2xzPgpAQCAtNjMsOSArNjIsOSBAQAogICAgIDxkZXBlbmRl
bmNpZXM+CiAgICAgICA8ZGVwIHBhY2thZ2U9ImdzdHJlYW1lciIvPgogICAgIDwvZGVwZW5kZW5j
aWVzPgotICAgIDxicmFuY2ggbW9kdWxlPSJnc3QtcGx1Z2lucy1iYXNlL2dzdC1wbHVnaW5zLWJh
c2UtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuMTAuNSIKKyAgICA8YnJhbmNoIG1vZHVs
ZT0iZ3N0LXBsdWdpbnMtYmFzZS9nc3QtcGx1Z2lucy1iYXNlLSR7dmVyc2lvbn0udGFyLnh6IiB2
ZXJzaW9uPSIxLjEyLjQiCiAgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCi0gICAgICAgICAg
ICBoYXNoPSJzaGEyNTY6MWM0MDFhNzliZDFlNDUyMWM2ZWYxYjY2NTc5YmRkZWRkOTEzNmUxNjRl
NTQ3OTJhYWI0YmZjZjM0ODViZjlhNyIvPgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjRjMzA2
YjAzZGYwMjEyZjFiODkwMzc4NGUyOWJiMzQ5MzMxOWJhMTllYmViZjEzYjBjNTZhMTc4NzAyOTIy
ODIiLz4KICAgPC9hdXRvdG9vbHM+CiAKICAgPGF1dG90b29scyBpZD0iZ3N0LXBsdWdpbnMtZ29v
ZCIgYXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWV4YW1wbGVz
IC0tZGlzYWJsZS1ndGstZG9jIC0tZGlzYWJsZS1pbnRyb3NwZWN0aW9uIj4KQEAgLTc0LDEwICs3
Myw5IEBACiAgICAgICA8ZGVwIHBhY2thZ2U9ImxpYnZweCIvPgogICAgIDwvZGVwZW5kZW5jaWVz
PgogCi0gICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1wbHVnaW5zLWdvb2QvZ3N0LXBsdWdpbnMtZ29v
ZC0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS4xMC41IgorICAgIDxicmFuY2ggbW9kdWxl
PSJnc3QtcGx1Z2lucy1nb29kL2dzdC1wbHVnaW5zLWdvb2QtJHt2ZXJzaW9ufS50YXIueHoiIHZl
cnNpb249IjEuMTIuNCIKICAgICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKLSAgICAgICAgICAg
IGhhc2g9InNoYTI1NjpiZTA1M2Y2ZWQ3MTZlZWI1MTdjZWMxNDhjZWM2MzdjZGNlNTcxYzZlMDRk
NWMyMTQwOWUyODc2ZmI3NmM3NjM5Ij4KLSAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1n
b29kLTAwMDMtcnRwYmluLXJlY2VpdmUtYnVuZGxlLXN1cHBvcnQucGF0Y2giIHN0cmlwPSIxIi8+
CisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6NjQ5ZjQ5YmVjNjA4OTJkNDdlZTY3MzFiOTIyNjY5
NzRjNzIzNTU0ZGExYzY2NDlmMjEyOTYwOTc3MTVlYjk1NyI+CiAgICAgICA8cGF0Y2ggZmlsZT0i
Z3N0LXBsdWdpbnMtZ29vZC0wMDA1LXNvdXBodHRwc3JjLWNvb2tpZS1qYXItYW5kLWNvbnRleHQt
cXVlcnktc3VwcG9ydC5wYXRjaCIgc3RyaXA9IjEiLz4KICAgICAgIDxwYXRjaCBmaWxlPSJnc3Qt
cGx1Z2lucy1nb29kLTAwMDYtcXRkZW11eC1hZGQtY29udGV4dC1mb3ItYS1wcmVmZXJyZWQtcHJv
dGVjdGlvbi5wYXRjaCIgc3RyaXA9IjEiLz4KICAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lu
cy1nb29kLTAwMDgtcXRkZW11eC1hbHNvLXB1c2gtYnVmZmVycy13aXRob3V0LWVuY3J5cHRpb24t
aW5mby1pbi5wYXRjaCIgc3RyaXA9IjEiLz4KQEAgLTkxLDE4ICs4OSwxOCBAQAogICAgICAgPGRl
cCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1iYXNlIi8+CiAgICAgICA8ZGVwIHBhY2thZ2U9Im9wZW5o
MjY0Ii8+CiAgICAgPC9kZXBlbmRlbmNpZXM+Ci0gICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1wbHVn
aW5zLWJhZC9nc3QtcGx1Z2lucy1iYWQtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuMTAu
NSIKKyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LXBsdWdpbnMtYmFkL2dzdC1wbHVnaW5zLWJhZC0k
e3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS4xMi40IgogICAgICAgICAgICAgcmVwbz0iZ3N0
cmVhbWVyIgotICAgICAgICAgICAgaGFzaD0ic2hhMjU2OmM1ODA2MDQwYmI4M2I0M2JlODZjZTU5
MmU2YTE5YzVkODNkNzc3NmY3ZDlmNDM0ZWI0YjkxMWM0ZWZmZjM1NzMiLz4KKyAgICAgICAgICAg
IGhhc2g9InNoYTI1NjowYzc4NTdiZTE2Njg2ZDVjMWJhNmUzNGJkMzM4NjY0ZDNkNDU5OWQzMjcx
NGE4ZWNhNWM4YTQxYTEwMWUyZDA4Ii8+CiAgIDwvYXV0b3Rvb2xzPgogCiAgIDxhdXRvdG9vbHMg
aWQ9ImdzdC1saWJhdiIgYXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS13aXRo
LWxpYmF2LWV4dHJhLWNvbmZpZ3VyZT0nLS1kaXNhYmxlLXlhc20nIC0tZGlzYWJsZS1ndGstZG9j
Ij4KICAgICA8ZGVwZW5kZW5jaWVzPgogICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1i
YXNlIi8+CiAgICAgPC9kZXBlbmRlbmNpZXM+Ci0gICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1saWJh
di9nc3QtbGliYXYtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuMTAuNSIKKyAgICA8YnJh
bmNoIG1vZHVsZT0iZ3N0LWxpYmF2L2dzdC1saWJhdi0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lv
bj0iMS4xMi40IgogICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgotICAgICAgICAgICAgaGFz
aD0ic2hhMjU2OmU0ZDJmMzE1ZjQ3OGQ0NzI4MWZiZmRmYmQ1OTBhNjNkMjM3MDRjYTM3OTExZDcx
NDJkNTk5MjYxNmY0YjI4ZDMiLz4KKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjoyYTU2YWE1ZDJk
OGNkOTEyZjJiY2UxN2YxNzQ3MTNkMmM0MTdjYTI5OGYxZjljMjhlZTY2ZDRhYTFlMWQ5ZTYyIi8+
CiAgIDwvYXV0b3Rvb2xzPgogCiA8L21vZHVsZXNldD4KZGlmZiAtLWdpdCBhL1Rvb2xzL2dzdHJl
YW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwMy1ydHBiaW4tcmVjZWl2ZS1idW5kbGUt
c3VwcG9ydC5wYXRjaCBiL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2Qt
MDAwMy1ydHBiaW4tcmVjZWl2ZS1idW5kbGUtc3VwcG9ydC5wYXRjaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZmY4OWM4MTk5OGJkY2E1ZGU4NDgyMzVmMTAzMTFmYTczOWM5N2JhNy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9nc3Ry
ZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDMtcnRwYmluLXJlY2VpdmUtYnVuZGxl
LXN1cHBvcnQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMDE4ICswLDAgQEAKLUZyb20gZGNk
M2NlOTc1MWNkZWYwYjVhYjFmYTExODM1NWY5MmJkZmU4MmNiMyBNb24gU2VwIDE3IDAwOjAwOjAw
IDIwMDEKLUZyb206IFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+Ci1EYXRlOiBX
ZWQsIDE2IE5vdiAyMDE2IDA4OjU2OjM0ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIHJ0cGJpbjog
cmVjZWl2ZSBidW5kbGUgc3VwcG9ydAotCi1BIG5ldyBzaWduYWwgbmFtZWQgb24tYnVuZGxlZC1z
c3JjIGlzIHByb3ZpZGVkIGFuZCBjYW4gYmUKLXVzZWQgYnkgdGhlIGFwcGxpY2F0aW9uIHRvIHJl
ZGlyZWN0IGEgc3RyZWFtIHRvIGEgZGlmZmVyZW50Ci1Hc3RSdHBTZXNzaW9uIG9yIHRvIGtlZXAg
dGhlIFJUWCBzdHJlYW0gZ3JvdXBlZCB3aXRoaW4gdGhlCi1Hc3RSdHBTZXNzaW9uIG9mIHRoZSBz
YW1lIG1lZGlhIHR5cGUuCi0KLWh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNn
aT9pZD03NzI3NDAKLS0tLQotIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMu
c2lnbmFscyB8ICAgOCArCi0gZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmMgICAgICAgICAgICAg
ICAgICAgIHwgNTYyICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tCi0gZ3N0L3J0cG1hbmFnZXIv
Z3N0cnRwYmluLmggICAgICAgICAgICAgICAgICAgIHwgICAyICsKLSB0ZXN0cy9jaGVjay9NYWtl
ZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKwotIHRlc3RzL2NoZWNrL2VsZW1l
bnRzLy5naXRpZ25vcmUgICAgICAgICAgICAgICB8ICAgMSArCi0gdGVzdHMvY2hlY2svZWxlbWVu
dHMvcnRwYnVuZGxlLmMgICAgICAgICAgICAgIHwgMzkwICsrKysrKysrKysrKysrKysrKwotIHRl
c3RzL2NoZWNrL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCi0gdGVz
dHMvZXhhbXBsZXMvcnRwLy5naXRpZ25vcmUgICAgICAgICAgICAgICAgIHwgICAyICsKLSB0ZXN0
cy9leGFtcGxlcy9ydHAvTWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgfCAgMTAgKy0KLSB0ZXN0
cy9leGFtcGxlcy9ydHAvY2xpZW50LXJ0cGJ1bmRsZS5jICAgICAgICAgfCAyNjYgKysrKysrKysr
KysrCi0gdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci1ydHBidW5kbGUuYyAgICAgICAgIHwgMTc5
ICsrKysrKysrCi0gMTEgZmlsZXMgY2hhbmdlZCwgMTI2NSBpbnNlcnRpb25zKCspLCAxNjAgZGVs
ZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cGJ1
bmRsZS5jCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtcnRw
YnVuZGxlLmMKLSBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci1y
dHBidW5kbGUuYwotCi1kaWZmIC0tZ2l0IGEvZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2Qt
cGx1Z2lucy5zaWduYWxzIGIvZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5z
aWduYWxzCi1pbmRleCAzZGIxN2U5Li40NGJiZGRhIDEwMDY0NAotLS0tIGEvZG9jcy9wbHVnaW5z
L2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5zaWduYWxzCi0rKysgYi9kb2NzL3BsdWdpbnMvZ3N0
LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnNpZ25hbHMKLUBAIC0zNzUsNiArMzc1LDE0IEBAIGd1aW50
ICBhcmcxCi0gPC9TSUdOQUw+Ci0gCi0gPFNJR05BTD4KLSs8TkFNRT5Hc3RSdHBCaW46Om9uLWJ1
bmRsZWQtc3NyYzwvTkFNRT4KLSs8UkVUVVJOUz5ndWludDwvUkVUVVJOUz4KLSs8RkxBR1M+bDwv
RkxBR1M+Ci0rR3N0UnRwQmluICpnc3RydHBiaW4KLStndWludCAgYXJnMQotKzwvU0lHTkFMPgot
KwotKzxTSUdOQUw+Ci0gPE5BTUU+R3N0UnRwSml0dGVyQnVmZmVyOjpjbGVhci1wdC1tYXA8L05B
TUU+Ci0gPFJFVFVSTlM+dm9pZDwvUkVUVVJOUz4KLSA8RkxBR1M+bGE8L0ZMQUdTPgotZGlmZiAt
LWdpdCBhL2dzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jIGIvZ3N0L3J0cG1hbmFnZXIvZ3N0cnRw
YmluLmMKLWluZGV4IDY0OGFkYjkuLmY1OGRlMDEgMTAwNjQ0Ci0tLS0gYS9nc3QvcnRwbWFuYWdl
ci9nc3RydHBiaW4uYwotKysrIGIvZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmMKLUBAIC01Myw2
ICs1MywxMyBAQAotICAqIFNTUkMgaW4gdGhlIFJUUCBwYWNrZXRzIHRvIGl0cyBvd24gU1NSQyBh
bmQgd2lsIGZvcndhcmQgdGhlIHBhY2tldHMgb24gdGhlCi0gICogc2VuZF9ydHBfc3JjX1wldSBw
YWQgYWZ0ZXIgdXBkYXRpbmcgaXRzIGludGVybmFsIHN0YXRlLgotICAqCi0rICogI0dzdFJ0cEJp
biBjYW4gYWxzbyBkZW11bHRpcGxleCBpbmNvbWluZyBidW5kbGVkIHN0cmVhbXMuIFRoZSBmaXJz
dAotKyAqICNHc3RSdHBTZXNzaW9uIHdpbGwgaGF2ZSBhICNHc3RSdHBTc3JjRGVtdXggZWxlbWVu
dCBzcGxpdHRpbmcgdGhlIHN0cmVhbXMKLSsgKiBiYXNlZCBvbiB0aGVpciBTU1JDIGFuZCBwb3Rl
bnRpYWxseSBkaXNwYXRjaGVkIHRvIGEgZGlmZmVyZW50ICNHc3RSdHBTZXNzaW9uLgotKyAqIEJl
Y2F1c2UgcmV0cmFuc21pc3Npb24gU1NSQ3MgbmVlZCB0byBiZSBtZXJnZWQgd2l0aCB0aGUgY29y
cmVzcG9uZGluZyBtZWRpYQotKyAqIHN0cmVhbSB0aGUgI0dzdFJ0cEJpbjo6b24tYnVuZGxlZC1z
c3JjIHNpZ25hbCBpcyBlbWl0dGVkIHNvIHRoYXQgdGhlCi0rICogYXBwbGljYXRpb24gY2FuIGZp
bmQgb3V0IHRvIHdoaWNoIHNlc3Npb24gdGhlIFNTUkMgYmVsb25ncy4KLSsgKgotICAqIFRoZSBz
ZXNzaW9uIG1hbmFnZXIgbmVlZHMgdGhlIGNsb2NrLXJhdGUgb2YgdGhlIHBheWxvYWQgdHlwZXMg
aXQgaXMgaGFuZGxpbmcKLSAgKiBhbmQgd2lsbCBzaWduYWwgdGhlICNHc3RSdHBTZXNzaW9uOjpy
ZXF1ZXN0LXB0LW1hcCBzaWduYWwgd2hlbiBpdCBuZWVkcyBzdWNoIGEKLSAgKiBtYXBwaW5nLiBP
bmUgY2FuIGNsZWFyIHRoZSBjYWNoZWQgdmFsdWVzIHdpdGggdGhlICNHc3RSdHBTZXNzaW9uOjpj
bGVhci1wdC1tYXAKLUBAIC0yNzYsNiArMjgzLDggQEAgZW51bQotICAgU0lHTkFMX09OX05FV19T
RU5ERVJfU1NSQywKLSAgIFNJR05BTF9PTl9TRU5ERVJfU1NSQ19BQ1RJVkUsCi0gCi0rICBTSUdO
QUxfT05fQlVORExFRF9TU1JDLAotKwotICAgTEFTVF9TSUdOQUwKLSB9OwotIAotQEAgLTM2Miw2
ICszNzEsMTQgQEAgc3RhdGljIHZvaWQgcmVtb3ZlX3NlbmRfcnRwIChHc3RSdHBCaW4gKiBydHBi
aW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uKTsKLSBzdGF0aWMgdm9pZCByZW1vdmVfcnRj
cCAoR3N0UnRwQmluICogcnRwYmluLCBHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbik7Ci0gc3Rh
dGljIHZvaWQgZnJlZV9jbGllbnQgKEdzdFJ0cEJpbkNsaWVudCAqIGNsaWVudCwgR3N0UnRwQmlu
ICogYmluKTsKLSBzdGF0aWMgdm9pZCBmcmVlX3N0cmVhbSAoR3N0UnRwQmluU3RyZWFtICogc3Ry
ZWFtLCBHc3RSdHBCaW4gKiBiaW4pOwotK3N0YXRpYyBHc3RSdHBCaW5TZXNzaW9uICpjcmVhdGVf
c2Vzc2lvbiAoR3N0UnRwQmluICogcnRwYmluLCBnaW50IGlkKTsKLStzdGF0aWMgR3N0UGFkICpj
b21wbGV0ZV9zZXNzaW9uX3NpbmsgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwKLSsgICAgR3N0UnRwQmlu
U2Vzc2lvbiAqIHNlc3Npb24sIGdib29sZWFuIGJ1bmRsZV9kZW11eGVyX25lZWRlZCk7Ci0rc3Rh
dGljIHZvaWQKLStjb21wbGV0ZV9zZXNzaW9uX3JlY2VpdmVyIChHc3RSdHBCaW4gKiBydHBiaW4s
IEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uLAotKyAgICBndWludCBzZXNzaWQpOwotK3N0YXRp
YyBHc3RQYWQgKmNvbXBsZXRlX3Nlc3Npb25fcnRjcCAoR3N0UnRwQmluICogcnRwYmluLAotKyAg
ICBHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbiwgZ3VpbnQgc2Vzc2lkLCBnYm9vbGVhbiBidW5k
bGVfZGVtdXhlcl9uZWVkZWQpOwotIAotIC8qIE1hbmFnZXMgdGhlIFJUUCBzdHJlYW0gZm9yIG9u
ZSBTU1JDLgotICAqCi1AQCAtNDI4LDYgKzQ0NSwxMiBAQCBzdHJ1Y3QgX0dzdFJ0cEJpblNlc3Np
b24KLSAgIGd1bG9uZyBkZW11eF9uZXdwYWRfc2lnOwotICAgZ3Vsb25nIGRlbXV4X3BhZHJlbW92
ZWRfc2lnOwotIAotKyAgLyogQnVuZGxpbmcgc3VwcG9ydCAqLwotKyAgR3N0RWxlbWVudCAqcnRw
X2Z1bm5lbDsKLSsgIEdzdEVsZW1lbnQgKnJ0Y3BfZnVubmVsOwotKyAgR3N0RWxlbWVudCAqYnVu
ZGxlX2RlbXV4OwotKyAgZ3Vsb25nIGJ1bmRsZV9kZW11eF9uZXdwYWRfc2lnOwotKwotICAgR011
dGV4IGxvY2s7Ci0gCi0gICAvKiBsaXN0IG9mIEdzdFJ0cEJpblN0cmVhbSAqLwotQEAgLTYyOSw2
ICs2NTIsOTYgQEAgc3NyY19kZW11eF9wYWRfcmVtb3ZlZCAoR3N0RWxlbWVudCAqIGVsZW1lbnQs
IGd1aW50IHNzcmMsIEdzdFBhZCAqIHBhZCwKLSAgIEdTVF9SVFBfQklOX1VOTE9DSyAocnRwYmlu
KTsKLSB9Ci0gCi0rc3RhdGljIHZvaWQKLStuZXdfYnVuZGxlZF9zc3JjX3BhZF9mb3VuZCAoR3N0
RWxlbWVudCAqIGVsZW1lbnQsIGd1aW50IHNzcmMsIEdzdFBhZCAqIHBhZCwKLSsgICAgR3N0UnRw
QmluU2Vzc2lvbiAqIHNlc3Npb24pCi0rewotKyAgR1ZhbHVlIHJlc3VsdCA9IEdfVkFMVUVfSU5J
VDsKLSsgIEdWYWx1ZSBwYXJhbXNbMl0gPSB7IEdfVkFMVUVfSU5JVCwgR19WQUxVRV9JTklUIH07
Ci0rICBndWludCBzZXNzaW9uX2lkID0gMDsKLSsgIEdzdFJ0cEJpblNlc3Npb24gKnRhcmdldF9z
ZXNzaW9uID0gTlVMTDsKLSsgIEdzdFJ0cEJpbiAqcnRwYmluID0gc2Vzc2lvbi0+YmluOwotKyAg
Z2NoYXIgKm5hbWU7Ci0rICBHc3RQYWQgKnNyY19wYWQ7Ci0rICBHc3RQYWQgKnJlY3ZfcnRwX3Np
bmsgPSBOVUxMOwotKyAgR3N0UGFkICpyZWN2X3J0Y3Bfc2luayA9IE5VTEw7Ci0rICBHc3RQYWRM
aW5rUmV0dXJuIHJldDsKLSsKLSsgIEdTVF9SVFBfQklOX0RZTl9MT0NLIChydHBiaW4pOwotKyAg
R1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAibmV3IGJ1bmRsZWQgU1NSQyBwYWQgJTA4eCwgJXM6
JXMiLCBzc3JjLAotKyAgICAgIEdTVF9ERUJVR19QQURfTkFNRSAocGFkKSk7Ci0rCi0rICBnX3Zh
bHVlX2luaXQgKCZyZXN1bHQsIEdfVFlQRV9VSU5UKTsKLSsgIGdfdmFsdWVfaW5pdCAoJnBhcmFt
c1swXSwgR1NUX1RZUEVfRUxFTUVOVCk7Ci0rICBnX3ZhbHVlX3NldF9vYmplY3QgKCZwYXJhbXNb
MF0sIHJ0cGJpbik7Ci0rICBnX3ZhbHVlX2luaXQgKCZwYXJhbXNbMV0sIEdfVFlQRV9VSU5UKTsK
LSsgIGdfdmFsdWVfc2V0X3VpbnQgKCZwYXJhbXNbMV0sIHNzcmMpOwotKwotKyAgZ19zaWduYWxf
ZW1pdHYgKHBhcmFtcywKLSsgICAgICBnc3RfcnRwX2Jpbl9zaWduYWxzW1NJR05BTF9PTl9CVU5E
TEVEX1NTUkNdLCAwLCAmcmVzdWx0KTsKLSsgIGdfdmFsdWVfdW5zZXQgKCZwYXJhbXNbMF0pOwot
KwotKyAgc2Vzc2lvbl9pZCA9IGdfdmFsdWVfZ2V0X3VpbnQgKCZyZXN1bHQpOwotKyAgaWYgKHNl
c3Npb25faWQgPT0gMCkgewotKyAgICB0YXJnZXRfc2Vzc2lvbiA9IHNlc3Npb247Ci0rICB9IGVs
c2UgewotKyAgICB0YXJnZXRfc2Vzc2lvbiA9IGZpbmRfc2Vzc2lvbl9ieV9pZCAocnRwYmluLCAo
Z2ludCkgc2Vzc2lvbl9pZCk7Ci0rICAgIGlmICghdGFyZ2V0X3Nlc3Npb24pIHsKLSsgICAgICB0
YXJnZXRfc2Vzc2lvbiA9IGNyZWF0ZV9zZXNzaW9uIChydHBiaW4sIHNlc3Npb25faWQpOwotKyAg
ICB9Ci0rICAgIGlmICghdGFyZ2V0X3Nlc3Npb24tPnJlY3ZfcnRwX3NpbmspIHsKLSsgICAgICBy
ZWN2X3J0cF9zaW5rID0gY29tcGxldGVfc2Vzc2lvbl9zaW5rIChydHBiaW4sIHRhcmdldF9zZXNz
aW9uLCBGQUxTRSk7Ci0rICAgIH0KLSsKLSsgICAgaWYgKCF0YXJnZXRfc2Vzc2lvbi0+cmVjdl9y
dHBfc3JjKQotKyAgICAgIGNvbXBsZXRlX3Nlc3Npb25fcmVjZWl2ZXIgKHJ0cGJpbiwgdGFyZ2V0
X3Nlc3Npb24sIHNlc3Npb25faWQpOwotKwotKyAgICBpZiAoIXRhcmdldF9zZXNzaW9uLT5yZWN2
X3J0Y3Bfc2luaykgewotKyAgICAgIHJlY3ZfcnRjcF9zaW5rID0KLSsgICAgICAgICAgY29tcGxl
dGVfc2Vzc2lvbl9ydGNwIChydHBiaW4sIHRhcmdldF9zZXNzaW9uLCBzZXNzaW9uX2lkLCBGQUxT
RSk7Ci0rICAgIH0KLSsgIH0KLSsKLSsgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgIkFzc2ln
bmluZyBidW5kbGVkIHNzcmMgJXUgdG8gc2Vzc2lvbiAldSIsIHNzcmMsCi0rICAgICAgc2Vzc2lv
bl9pZCk7Ci0rCi0rICBpZiAoIXJlY3ZfcnRwX3NpbmspIHsKLSsgICAgcmVjdl9ydHBfc2luayA9
Ci0rICAgICAgICBnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQgKHRhcmdldF9zZXNzaW9uLT5y
dHBfZnVubmVsLCAic2lua18ldSIpOwotKyAgfQotKwotKyAgaWYgKCFyZWN2X3J0Y3Bfc2luaykg
ewotKyAgICByZWN2X3J0Y3Bfc2luayA9Ci0rICAgICAgICBnc3RfZWxlbWVudF9nZXRfcmVxdWVz
dF9wYWQgKHRhcmdldF9zZXNzaW9uLT5ydGNwX2Z1bm5lbCwgInNpbmtfJXUiKTsKLSsgIH0KLSsK
LSsgIG5hbWUgPSBnX3N0cmR1cF9wcmludGYgKCJzcmNfJXUiLCBzc3JjKTsKLSsgIHNyY19wYWQg
PSBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZCAoZWxlbWVudCwgbmFtZSk7Ci0rICByZXQgPSBn
c3RfcGFkX2xpbmsgKHNyY19wYWQsIHJlY3ZfcnRwX3NpbmspOwotKyAgZ19mcmVlIChuYW1lKTsK
LSsgIGdzdF9vYmplY3RfdW5yZWYgKHNyY19wYWQpOwotKyAgZ3N0X29iamVjdF91bnJlZiAocmVj
dl9ydHBfc2luayk7Ci0rICBpZiAocmV0ICE9IEdTVF9QQURfTElOS19PSykgewotKyAgICBnX3dh
cm5pbmcKLSsgICAgICAgICgicnRwYmluOiBmYWlsZWQgdG8gbGluayBidW5kbGUgZGVtdXhlciB0
byByZWNlaXZlIHJ0cCBmdW5uZWwgZm9yIHNlc3Npb24gJXUiLAotKyAgICAgICAgc2Vzc2lvbl9p
ZCk7Ci0rICB9Ci0rCi0rICBuYW1lID0gZ19zdHJkdXBfcHJpbnRmICgicnRjcF9zcmNfJXUiLCBz
c3JjKTsKLSsgIHNyY19wYWQgPSBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZCAoZWxlbWVudCwg
bmFtZSk7Ci0rICBnc3RfcGFkX2xpbmsgKHNyY19wYWQsIHJlY3ZfcnRjcF9zaW5rKTsKLSsgIGdf
ZnJlZSAobmFtZSk7Ci0rICBnc3Rfb2JqZWN0X3VucmVmIChzcmNfcGFkKTsKLSsgIGdzdF9vYmpl
Y3RfdW5yZWYgKHJlY3ZfcnRjcF9zaW5rKTsKLSsgIGlmIChyZXQgIT0gR1NUX1BBRF9MSU5LX09L
KSB7Ci0rICAgIGdfd2FybmluZwotKyAgICAgICAgKCJydHBiaW46IGZhaWxlZCB0byBsaW5rIGJ1
bmRsZSBkZW11eGVyIHRvIHJlY2VpdmUgcnRjcCBzaW5rIHBhZCBmb3Igc2Vzc2lvbiAldSIsCi0r
ICAgICAgICBzZXNzaW9uX2lkKTsKLSsgIH0KLSsKLSsgIEdTVF9SVFBfQklOX0RZTl9VTkxPQ0sg
KHJ0cGJpbik7Ci0rfQotKwotIC8qIGNyZWF0ZSBhIHNlc3Npb24gd2l0aCB0aGUgZ2l2ZW4gaWQu
ICBNdXN0IGJlIGNhbGxlZCB3aXRoIFJUUF9CSU5fTE9DSyAqLwotIHN0YXRpYyBHc3RSdHBCaW5T
ZXNzaW9uICoKLSBjcmVhdGVfc2Vzc2lvbiAoR3N0UnRwQmluICogcnRwYmluLCBnaW50IGlkKQot
QEAgLTY0OSw2ICs3NjIsMTAgQEAgY3JlYXRlX3Nlc3Npb24gKEdzdFJ0cEJpbiAqIHJ0cGJpbiwg
Z2ludCBpZCkKLSAgIHNlc3MtPmJpbiA9IHJ0cGJpbjsKLSAgIHNlc3MtPnNlc3Npb24gPSBzZXNz
aW9uOwotICAgc2Vzcy0+ZGVtdXggPSBkZW11eDsKLSsKLSsgIHNlc3MtPnJ0cF9mdW5uZWwgPSBn
c3RfZWxlbWVudF9mYWN0b3J5X21ha2UgKCJmdW5uZWwiLCBOVUxMKTsKLSsgIHNlc3MtPnJ0Y3Bf
ZnVubmVsID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlICgiZnVubmVsIiwgTlVMTCk7Ci0rCi0g
ICBzZXNzLT5wdG1hcCA9IGdfaGFzaF90YWJsZV9uZXdfZnVsbCAoTlVMTCwgTlVMTCwgTlVMTCwK
LSAgICAgICAoR0Rlc3Ryb3lOb3RpZnkpIGdzdF9jYXBzX3VucmVmKTsKLSAgIHJ0cGJpbi0+c2Vz
c2lvbnMgPSBnX3NsaXN0X3ByZXBlbmQgKHJ0cGJpbi0+c2Vzc2lvbnMsIHNlc3MpOwotQEAgLTY5
Niw2ICs4MTMsOCBAQCBjcmVhdGVfc2Vzc2lvbiAoR3N0UnRwQmluICogcnRwYmluLCBnaW50IGlk
KQotIAotICAgZ3N0X2Jpbl9hZGQgKEdTVF9CSU5fQ0FTVCAocnRwYmluKSwgc2Vzc2lvbik7Ci0g
ICBnc3RfYmluX2FkZCAoR1NUX0JJTl9DQVNUIChydHBiaW4pLCBkZW11eCk7Ci0rICBnc3RfYmlu
X2FkZCAoR1NUX0JJTl9DQVNUIChydHBiaW4pLCBzZXNzLT5ydHBfZnVubmVsKTsKLSsgIGdzdF9i
aW5fYWRkIChHU1RfQklOX0NBU1QgKHJ0cGJpbiksIHNlc3MtPnJ0Y3BfZnVubmVsKTsKLSAKLSAg
IEdTVF9PQkpFQ1RfTE9DSyAocnRwYmluKTsKLSAgIHRhcmdldCA9IEdTVF9TVEFURV9UQVJHRVQg
KHJ0cGJpbik7Ci1AQCAtNzA0LDYgKzgyMyw4IEBAIGNyZWF0ZV9zZXNzaW9uIChHc3RSdHBCaW4g
KiBydHBiaW4sIGdpbnQgaWQpCi0gICAvKiBjaGFuZ2Ugc3RhdGUgb25seSB0byB3aGF0J3MgbmVl
ZGVkICovCi0gICBnc3RfZWxlbWVudF9zZXRfc3RhdGUgKGRlbXV4LCB0YXJnZXQpOwotICAgZ3N0
X2VsZW1lbnRfc2V0X3N0YXRlIChzZXNzaW9uLCB0YXJnZXQpOwotKyAgZ3N0X2VsZW1lbnRfc2V0
X3N0YXRlIChzZXNzLT5ydHBfZnVubmVsLCB0YXJnZXQpOwotKyAgZ3N0X2VsZW1lbnRfc2V0X3N0
YXRlIChzZXNzLT5ydGNwX2Z1bm5lbCwgdGFyZ2V0KTsKLSAKLSAgIHJldHVybiBzZXNzOwotIAot
QEAgLTgwNyw3ICs5MjgsNyBAQCBnZXRfcHRfbWFwIChHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lv
biwgZ3VpbnQgcHQpCi0gICBHVmFsdWUgcmV0ID0geyAwIH07Ci0gICBHVmFsdWUgYXJnc1szXSA9
IHsgezB9LCB7MH0sIHswfSB9OwotIAotLSAgR1NUX0RFQlVHICgic2VhcmNoaW5nIHB0ICVkIGlu
IGNhY2hlIiwgcHQpOwotKyAgR1NUX0RFQlVHICgic2VhcmNoaW5nIHB0ICV1IGluIGNhY2hlIiwg
cHQpOwotIAotICAgR1NUX1JUUF9TRVNTSU9OX0xPQ0sgKHNlc3Npb24pOwotIAotQEAgLTgyMCw3
ICs5NDEsNyBAQCBnZXRfcHRfbWFwIChHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbiwgZ3VpbnQg
cHQpCi0gCi0gICBiaW4gPSBzZXNzaW9uLT5iaW47Ci0gCi0tICBHU1RfREVCVUcgKCJlbWl0aW5n
IHNpZ25hbCBmb3IgcHQgJWQgaW4gc2Vzc2lvbiAlZCIsIHB0LCBzZXNzaW9uLT5pZCk7Ci0rICBH
U1RfREVCVUcgKCJlbWl0aW5nIHNpZ25hbCBmb3IgcHQgJXUgaW4gc2Vzc2lvbiAldSIsIHB0LCBz
ZXNzaW9uLT5pZCk7Ci0gCi0gICAvKiBub3QgaW4gY2FjaGUsIHNlbmQgc2lnbmFsIHRvIHJlcXVl
c3QgY2FwcyAqLwotICAgZ192YWx1ZV9pbml0ICgmYXJnc1swXSwgR1NUX1RZUEVfRUxFTUVOVCk7
Ci1AQCAtODU2LDcgKzk3Nyw3IEBAIGdldF9wdF9tYXAgKEdzdFJ0cEJpblNlc3Npb24gKiBzZXNz
aW9uLCBndWludCBwdCkKLSAgIGlmICghY2FwcykKLSAgICAgZ290byBub19jYXBzOwotIAotLSAg
R1NUX0RFQlVHICgiY2FjaGluZyBwdCAlZCBhcyAlIiBHU1RfUFRSX0ZPUk1BVCwgcHQsIGNhcHMp
OwotKyAgR1NUX0RFQlVHICgiY2FjaGluZyBwdCAldSBhcyAlIiBHU1RfUFRSX0ZPUk1BVCwgcHQs
IGNhcHMpOwotIAotICAgLyogc3RvcmUgaW4gY2FjaGUsIHRha2UgYWRkaXRpb25hbCByZWYgKi8K
LSAgIGdfaGFzaF90YWJsZV9pbnNlcnQgKHNlc3Npb24tPnB0bWFwLCBHSU5UX1RPX1BPSU5URVIg
KHB0KSwKLUBAIC05NDcsNyArMTA2OCw3IEBAIGdzdF9ydHBfYmluX2dldF9zZXNzaW9uIChHc3RS
dHBCaW4gKiBiaW4sIGd1aW50IHNlc3Npb25faWQpCi0gICBHc3RFbGVtZW50ICpyZXQgPSBOVUxM
OwotIAotICAgR1NUX1JUUF9CSU5fTE9DSyAoYmluKTsKLS0gIEdTVF9ERUJVR19PQkpFQ1QgKGJp
biwgInJldHJpZXZpbmcgR3N0UnRwU2Vzc2lvbiwgaW5kZXg6ICVkIiwgc2Vzc2lvbl9pZCk7Ci0r
ICBHU1RfREVCVUdfT0JKRUNUIChiaW4sICJyZXRyaWV2aW5nIEdzdFJ0cFNlc3Npb24sIGluZGV4
OiAldSIsIHNlc3Npb25faWQpOwotICAgc2Vzc2lvbiA9IGZpbmRfc2Vzc2lvbl9ieV9pZCAoYmlu
LCAoZ2ludCkgc2Vzc2lvbl9pZCk7Ci0gICBpZiAoc2Vzc2lvbikgewotICAgICByZXQgPSBnc3Rf
b2JqZWN0X3JlZiAoc2Vzc2lvbi0+c2Vzc2lvbik7Ci1AQCAtOTY0LDcgKzEwODUsNyBAQCBnc3Rf
cnRwX2Jpbl9nZXRfaW50ZXJuYWxfc2Vzc2lvbiAoR3N0UnRwQmluICogYmluLCBndWludCBzZXNz
aW9uX2lkKQotICAgR3N0UnRwQmluU2Vzc2lvbiAqc2Vzc2lvbjsKLSAKLSAgIEdTVF9SVFBfQklO
X0xPQ0sgKGJpbik7Ci0tICBHU1RfREVCVUdfT0JKRUNUIChiaW4sICJyZXRyaWV2aW5nIGludGVy
bmFsIFJUUFNlc3Npb24gb2JqZWN0LCBpbmRleDogJWQiLAotKyAgR1NUX0RFQlVHX09CSkVDVCAo
YmluLCAicmV0cmlldmluZyBpbnRlcm5hbCBSVFBTZXNzaW9uIG9iamVjdCwgaW5kZXg6ICV1IiwK
LSAgICAgICBzZXNzaW9uX2lkKTsKLSAgIHNlc3Npb24gPSBmaW5kX3Nlc3Npb25fYnlfaWQgKGJp
biwgKGdpbnQpIHNlc3Npb25faWQpOwotICAgaWYgKHNlc3Npb24pIHsKLUBAIC0yMTk0LDYgKzIz
MTUsMjkgQEAgZ3N0X3J0cF9iaW5fY2xhc3NfaW5pdCAoR3N0UnRwQmluQ2xhc3MgKiBrbGFzcykK
LSAgICAgICAgICAgb25fc2VuZGVyX3NzcmNfYWN0aXZlKSwgTlVMTCwgTlVMTCwgZ19jY2xvc3Vy
ZV9tYXJzaGFsX2dlbmVyaWMsCi0gICAgICAgR19UWVBFX05PTkUsIDIsIEdfVFlQRV9VSU5ULCBH
X1RZUEVfVUlOVCk7Ci0gCi0rCi0rICAvKioKLSsgICAqIEdzdFJ0cEJpbjo6b24tYnVuZGxlZC1z
c3JjOgotKyAgICogQHJ0cGJpbjogdGhlIG9iamVjdCB3aGljaCByZWNlaXZlZCB0aGUgc2lnbmFs
Ci0rICAgKiBAc3NyYzogdGhlIGJ1bmRsZWQgU1NSQwotKyAgICoKLSsgICAqIE5vdGlmeSBvZiBh
IG5ldyBpbmNvbWluZyBidW5kbGVkIFNTUkMuIElmIG5vIGhhbmRsZXIgaXMgY29ubmVjdGVkIHRv
IHRoZQotKyAgICogc2lnbmFsIHRoZW4gdGhlICNHc3RSdHBTZXNzaW9uIGNyZWF0ZWQgZm9yIHRo
ZSByZWN2X3J0cF9zaW5rX1wldQotKyAgICogcmVxdWVzdCBwYWQgd2lsbCBiZSBtYW5hZ2luZyB0
aGlzIG5ldyBTU1JDLiBIb3dldmVyIGlmIHRoZXJlIGlzIGEgaGFuZGxlcgotKyAgICogY29ubmVj
dGVkIHRoZW4gdGhlIGFwcGxpY2F0aW9uIGNhbiBkZWNpZGVkIHRvIGRpc3BhdGNoIHRoaXMgbmV3
IHN0cmVhbSB0bwotKyAgICogYW5vdGhlciBzZXNzaW9uIGJ5IHByb3ZpZGluZyBpdHMgSUQgYXMg
cmV0dXJuIHZhbHVlIG9mIHRoZSBoYW5kbGVyLiBUaGlzCi0rICAgKiBjYW4gYmUgcGFydGljdWxh
cmx5IHVzZWZ1bCB0byBrZWVwIHJldHJhbnNtaXNzaW9uIFNTUkNzIGdyb3VwZWQgd2l0aCB0aGUK
LSsgICAqIHNlc3Npb24gZm9yIHdoaWNoIHRoZXkgaGFuZGxlIHJldHJhbnNtaXNzaW9uLgotKyAg
ICoKLSsgICAqIFNpbmNlOiAxLjEyCi0rICAgKi8KLSsgIGdzdF9ydHBfYmluX3NpZ25hbHNbU0lH
TkFMX09OX0JVTkRMRURfU1NSQ10gPQotKyAgICAgIGdfc2lnbmFsX25ldyAoIm9uLWJ1bmRsZWQt
c3NyYyIsIEdfVFlQRV9GUk9NX0NMQVNTIChrbGFzcyksCi0rICAgICAgR19TSUdOQUxfUlVOX0xB
U1QsIEdfU1RSVUNUX09GRlNFVCAoR3N0UnRwQmluQ2xhc3MsCi0rICAgICAgICAgIG9uX2J1bmRs
ZWRfc3NyYyksIE5VTEwsIE5VTEwsCi0rICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX2dlbmVyaWMs
IEdfVFlQRV9VSU5ULCAxLCBHX1RZUEVfVUlOVCk7Ci0rCi0rCi0gICBnX29iamVjdF9jbGFzc19p
bnN0YWxsX3Byb3BlcnR5IChnb2JqZWN0X2NsYXNzLCBQUk9QX1NERVMsCi0gICAgICAgZ19wYXJh
bV9zcGVjX2JveGVkICgic2RlcyIsICJTREVTIiwKLSAgICAgICAgICAgIlRoZSBTREVTIGl0ZW1z
IG9mIHRoaXMgc2Vzc2lvbiIsCi1AQCAtMzAyMSw3ICszMTY1LDcgQEAgbmV3X3BheWxvYWRfZm91
bmQgKEdzdEVsZW1lbnQgKiBlbGVtZW50LCBndWludCBwdCwgR3N0UGFkICogcGFkLAotIAotICAg
cnRwYmluID0gc3RyZWFtLT5iaW47Ci0gCi0tICBHU1RfREVCVUcgKCJuZXcgcGF5bG9hZCBwYWQg
JWQiLCBwdCk7Ci0rICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJuZXcgcGF5bG9hZCBwYWQg
JXUiLCBwdCk7Ci0gCi0gICBHU1RfUlRQX0JJTl9TSFVURE9XTl9MT0NLIChydHBiaW4sIHNodXRk
b3duKTsKLSAKLUBAIC0zMDc4LDcgKzMyMjIsNyBAQCBwdF9tYXBfcmVxdWVzdGVkIChHc3RFbGVt
ZW50ICogZWxlbWVudCwgZ3VpbnQgcHQsIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uKQotIAot
ICAgcnRwYmluID0gc2Vzc2lvbi0+YmluOwotIAotLSAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmlu
LCAicGF5bG9hZCBtYXAgcmVxdWVzdGVkIGZvciBwdCAlZCBpbiBzZXNzaW9uICVkIiwgcHQsCi0r
ICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJwYXlsb2FkIG1hcCByZXF1ZXN0ZWQgZm9yIHB0
ICV1IGluIHNlc3Npb24gJXUiLCBwdCwKLSAgICAgICBzZXNzaW9uLT5pZCk7Ci0gCi0gICBjYXBz
ID0gZ2V0X3B0X21hcCAoc2Vzc2lvbiwgcHQpOwotQEAgLTMwOTksNyArMzI0Myw3IEBAIHN0YXRp
YyB2b2lkCi0gcGF5bG9hZF90eXBlX2NoYW5nZSAoR3N0RWxlbWVudCAqIGVsZW1lbnQsIGd1aW50
IHB0LCBHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbikKLSB7Ci0gICBHU1RfREVCVUdfT0JKRUNU
IChzZXNzaW9uLT5iaW4sCi0tICAgICAgImVtaXRpbmcgc2lnbmFsIGZvciBwdCB0eXBlIGNoYW5n
ZWQgdG8gJWQgaW4gc2Vzc2lvbiAlZCIsIHB0LAotKyAgICAgICJlbWl0aW5nIHNpZ25hbCBmb3Ig
cHQgdHlwZSBjaGFuZ2VkIHRvICV1IGluIHNlc3Npb24gJXUiLCBwdCwKLSAgICAgICBzZXNzaW9u
LT5pZCk7Ci0gCi0gICBnX3NpZ25hbF9lbWl0IChzZXNzaW9uLT5iaW4sIGdzdF9ydHBfYmluX3Np
Z25hbHNbU0lHTkFMX1BBWUxPQURfVFlQRV9DSEFOR0VdLAotQEAgLTMyNDYsMTUgKzMzOTAsNDIg
QEAgbm9fc3RyZWFtOgotICAgfQotIH0KLSAKLS1zdGF0aWMgZ2Jvb2xlYW4KLS1jb21wbGV0ZV9z
ZXNzaW9uX3NpbmsgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Np
b24pCi0rc3RhdGljIHZvaWQKLStzZXNzaW9uX21heWJlX2NyZWF0ZV9idW5kbGVfZGVtdXhlciAo
R3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Npb24pCi0rewotKyAgR3N0UnRwQmluICpydHBiaW47Ci0r
Ci0rICBpZiAoc2Vzc2lvbi0+YnVuZGxlX2RlbXV4KQotKyAgICByZXR1cm47Ci0rCi0rICBydHBi
aW4gPSBzZXNzaW9uLT5iaW47Ci0rICBpZiAoZ19zaWduYWxfaGFzX2hhbmRsZXJfcGVuZGluZyAo
cnRwYmluLAotKyAgICAgICAgICBnc3RfcnRwX2Jpbl9zaWduYWxzW1NJR05BTF9PTl9CVU5ETEVE
X1NTUkNdLCAwLCBUUlVFKSkgewotKyAgICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJBZGRp
bmcgYSBidW5kbGUgU1NSQyBkZW11eGVyIHRvIHNlc3Npb24gJXUiLAotKyAgICAgICAgc2Vzc2lv
bi0+aWQpOwotKyAgICBzZXNzaW9uLT5idW5kbGVfZGVtdXggPSBnc3RfZWxlbWVudF9mYWN0b3J5
X21ha2UgKCJydHBzc3JjZGVtdXgiLCBOVUxMKTsKLSsgICAgc2Vzc2lvbi0+YnVuZGxlX2RlbXV4
X25ld3BhZF9zaWcgPSBnX3NpZ25hbF9jb25uZWN0IChzZXNzaW9uLT5idW5kbGVfZGVtdXgsCi0r
ICAgICAgICAibmV3LXNzcmMtcGFkIiwgKEdDYWxsYmFjaykgbmV3X2J1bmRsZWRfc3NyY19wYWRf
Zm91bmQsIHNlc3Npb24pOwotKwotKyAgICBnc3RfYmluX2FkZCAoR1NUX0JJTl9DQVNUIChydHBi
aW4pLCBzZXNzaW9uLT5idW5kbGVfZGVtdXgpOwotKyAgICBnc3RfZWxlbWVudF9zeW5jX3N0YXRl
X3dpdGhfcGFyZW50IChzZXNzaW9uLT5idW5kbGVfZGVtdXgpOwotKyAgfSBlbHNlIHsKLSsgICAg
R1NUX0RFQlVHX09CSkVDVCAocnRwYmluLAotKyAgICAgICAgIk5vIGhhbmRsZXIgZm9yIHRoZSBv
bi1idW5kbGVkLXNzcmMgc2lnbmFsIHNvIG5vIG5lZWQgZm9yIGEgYnVuZGxlIFNTUkMgZGVtdXhl
ciBpbiBzZXNzaW9uICV1IiwKLSsgICAgICAgIHNlc3Npb24tPmlkKTsKLSsgIH0KLSt9Ci0rCi0r
c3RhdGljIEdzdFBhZCAqCi0rY29tcGxldGVfc2Vzc2lvbl9zaW5rIChHc3RSdHBCaW4gKiBydHBi
aW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uLAotKyAgICBnYm9vbGVhbiBidW5kbGVfZGVt
dXhlcl9uZWVkZWQpCi0gewotLSAgZ2NoYXIgKmduYW1lOwotICAgZ3VpbnQgc2Vzc2lkID0gc2Vz
c2lvbi0+aWQ7Ci0gICBHc3RQYWQgKnJlY3ZfcnRwX3Npbms7Ci0rICBHc3RQYWQgKmZ1bm5lbF9z
cmM7Ci0gICBHc3RFbGVtZW50ICpkZWNvZGVyOwotLSAgR3N0RWxlbWVudENsYXNzICprbGFzczsK
LS0gIEdzdFBhZFRlbXBsYXRlICp0ZW1wbDsKLSsKLSsgIGdfYXNzZXJ0ICghc2Vzc2lvbi0+cmVj
dl9ydHBfc2luayk7Ci0gCi0gICAvKiBnZXQgcmVjdl9ydHAgcGFkIGFuZCBzdG9yZSAqLwotICAg
c2Vzc2lvbi0+cmVjdl9ydHBfc2luayA9Ci1AQCAtMzI2NSw2ICszNDM2LDkgQEAgY29tcGxldGVf
c2Vzc2lvbl9zaW5rIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNz
aW9uKQotICAgZ19zaWduYWxfY29ubmVjdCAoc2Vzc2lvbi0+cmVjdl9ydHBfc2luaywgIm5vdGlm
eTo6Y2FwcyIsCi0gICAgICAgKEdDYWxsYmFjaykgY2Fwc19jaGFuZ2VkLCBzZXNzaW9uKTsKLSAK
LSsgIGlmIChidW5kbGVfZGVtdXhlcl9uZWVkZWQpCi0rICAgIHNlc3Npb25fbWF5YmVfY3JlYXRl
X2J1bmRsZV9kZW11eGVyIChzZXNzaW9uKTsKLSsKLSAgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJp
biwgInJlcXVlc3RpbmcgUlRQIGRlY29kZXIiKTsKLSAgIGRlY29kZXIgPSBzZXNzaW9uX3JlcXVl
c3RfZWxlbWVudCAoc2Vzc2lvbiwgU0lHTkFMX1JFUVVFU1RfUlRQX0RFQ09ERVIpOwotICAgaWYg
KGRlY29kZXIpIHsKLUBAIC0zMjgyLDcgKzM0NTYsMTQgQEAgY29tcGxldGVfc2Vzc2lvbl9zaW5r
IChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uKQotICAgICBp
ZiAoZGVjc3JjID09IE5VTEwpCi0gICAgICAgZ290byBkZWNfc3JjX2ZhaWxlZDsKLSAKLS0gICAg
cmV0ID0gZ3N0X3BhZF9saW5rIChkZWNzcmMsIHNlc3Npb24tPnJlY3ZfcnRwX3NpbmspOwotKyAg
ICBpZiAoc2Vzc2lvbi0+YnVuZGxlX2RlbXV4KSB7Ci0rICAgICAgR3N0UGFkICpkZW11eF9zaW5r
OwotKyAgICAgIGRlbXV4X3NpbmsgPSBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZCAoc2Vzc2lv
bi0+YnVuZGxlX2RlbXV4LCAic2luayIpOwotKyAgICAgIHJldCA9IGdzdF9wYWRfbGluayAoZGVj
c3JjLCBkZW11eF9zaW5rKTsKLSsgICAgICBnc3Rfb2JqZWN0X3VucmVmIChkZW11eF9zaW5rKTsK
LSsgICAgfSBlbHNlIHsKLSsgICAgICByZXQgPSBnc3RfcGFkX2xpbmsgKGRlY3NyYywgc2Vzc2lv
bi0+cmVjdl9ydHBfc2luayk7Ci0rICAgIH0KLSAgICAgZ3N0X29iamVjdF91bnJlZiAoZGVjc3Jj
KTsKLSAKLSAgICAgaWYgKHJldCAhPSBHU1RfUEFEX0xJTktfT0spCi1AQCAtMzI5MCw4MSArMzQ3
MSw1NCBAQCBjb21wbGV0ZV9zZXNzaW9uX3NpbmsgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UnRw
QmluU2Vzc2lvbiAqIHNlc3Npb24pCi0gCi0gICB9IGVsc2UgewotICAgICBHU1RfREVCVUdfT0JK
RUNUIChydHBiaW4sICJubyBSVFAgZGVjb2RlciBnaXZlbiIpOwotLSAgICByZWN2X3J0cF9zaW5r
ID0gZ3N0X29iamVjdF9yZWYgKHNlc3Npb24tPnJlY3ZfcnRwX3NpbmspOwotKyAgICBpZiAoc2Vz
c2lvbi0+YnVuZGxlX2RlbXV4KSB7Ci0rICAgICAgcmVjdl9ydHBfc2luayA9Ci0rICAgICAgICAg
IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkIChzZXNzaW9uLT5idW5kbGVfZGVtdXgsICJzaW5r
Iik7Ci0rICAgIH0gZWxzZSB7Ci0rICAgICAgcmVjdl9ydHBfc2luayA9Ci0rICAgICAgICAgIGdz
dF9lbGVtZW50X2dldF9yZXF1ZXN0X3BhZCAoc2Vzc2lvbi0+cnRwX2Z1bm5lbCwgInNpbmtfJXUi
KTsKLSsgICAgfQotICAgfQotIAotLSAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAiZ2hvc3Rp
bmcgc2Vzc2lvbiBzaW5rIHBhZCIpOwotLSAga2xhc3MgPSBHU1RfRUxFTUVOVF9HRVRfQ0xBU1Mg
KHJ0cGJpbik7Ci0tICBnbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoInJlY3ZfcnRwX3NpbmtfJXUi
LCBzZXNzaWQpOwotLSAgdGVtcGwgPSBnc3RfZWxlbWVudF9jbGFzc19nZXRfcGFkX3RlbXBsYXRl
IChrbGFzcywgInJlY3ZfcnRwX3NpbmtfJXUiKTsKLS0gIHNlc3Npb24tPnJlY3ZfcnRwX3Npbmtf
Z2hvc3QgPQotLSAgICAgIGdzdF9naG9zdF9wYWRfbmV3X2Zyb21fdGVtcGxhdGUgKGduYW1lLCBy
ZWN2X3J0cF9zaW5rLCB0ZW1wbCk7Ci0tICBnc3Rfb2JqZWN0X3VucmVmIChyZWN2X3J0cF9zaW5r
KTsKLS0gIGdzdF9wYWRfc2V0X2FjdGl2ZSAoc2Vzc2lvbi0+cmVjdl9ydHBfc2lua19naG9zdCwg
VFJVRSk7Ci0tICBnc3RfZWxlbWVudF9hZGRfcGFkIChHU1RfRUxFTUVOVF9DQVNUIChydHBiaW4p
LCBzZXNzaW9uLT5yZWN2X3J0cF9zaW5rX2dob3N0KTsKLS0gIGdfZnJlZSAoZ25hbWUpOwotKyAg
ZnVubmVsX3NyYyA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkIChzZXNzaW9uLT5ydHBfZnVu
bmVsLCAic3JjIik7Ci0rICBnc3RfcGFkX2xpbmsgKGZ1bm5lbF9zcmMsIHNlc3Npb24tPnJlY3Zf
cnRwX3NpbmspOwotKyAgZ3N0X29iamVjdF91bnJlZiAoZnVubmVsX3NyYyk7Ci0gCi0tICByZXR1
cm4gVFJVRTsKLSsgIHJldHVybiByZWN2X3J0cF9zaW5rOwotIAotICAgLyogRVJST1JTICovCi0g
cGFkX2ZhaWxlZDoKLSAgIHsKLSAgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0
IHNlc3Npb24gcmVjdl9ydHBfc2luayBwYWQiKTsKLS0gICAgcmV0dXJuIEZBTFNFOwotKyAgICBy
ZXR1cm4gTlVMTDsKLSAgIH0KLSBkZWNfc2lua19mYWlsZWQ6Ci0gICB7Ci0tICAgIGdfd2Fybmlu
ZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBkZWNvZGVyIHNpbmsgcGFkIGZvciBzZXNzaW9uICVk
Iiwgc2Vzc2lkKTsKLS0gICAgcmV0dXJuIEZBTFNFOwotKyAgICBnX3dhcm5pbmcgKCJydHBiaW46
IGZhaWxlZCB0byBnZXQgZGVjb2RlciBzaW5rIHBhZCBmb3Igc2Vzc2lvbiAldSIsIHNlc3NpZCk7
Ci0rICAgIHJldHVybiBOVUxMOwotICAgfQotIGRlY19zcmNfZmFpbGVkOgotICAgewotLSAgICBn
X3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgZGVjb2RlciBzcmMgcGFkIGZvciBzZXNz
aW9uICVkIiwgc2Vzc2lkKTsKLSsgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0
IGRlY29kZXIgc3JjIHBhZCBmb3Igc2Vzc2lvbiAldSIsIHNlc3NpZCk7Ci0gICAgIGdzdF9vYmpl
Y3RfdW5yZWYgKHJlY3ZfcnRwX3NpbmspOwotLSAgICByZXR1cm4gRkFMU0U7Ci0rICAgIHJldHVy
biBOVUxMOwotICAgfQotIGRlY19saW5rX2ZhaWxlZDoKLSAgIHsKLS0gICAgZ193YXJuaW5nICgi
cnRwYmluOiBmYWlsZWQgdG8gbGluayBydHAgZGVjb2RlciBmb3Igc2Vzc2lvbiAlZCIsIHNlc3Np
ZCk7Ci0rICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGxpbmsgcnRwIGRlY29kZXIg
Zm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOwotICAgICBnc3Rfb2JqZWN0X3VucmVmIChyZWN2X3J0
cF9zaW5rKTsKLS0gICAgcmV0dXJuIEZBTFNFOwotKyAgICByZXR1cm4gTlVMTDsKLSAgIH0KLSB9
Ci0gCi0tLyogQ3JlYXRlIGEgcGFkIGZvciByZWNlaXZpbmcgUlRQIGZvciB0aGUgc2Vzc2lvbiBp
biBAbmFtZS4gTXVzdCBiZSBjYWxsZWQgd2l0aAotLSAqIFJUUF9CSU5fTE9DSy4KLS0gKi8KLS1z
dGF0aWMgR3N0UGFkICoKLS1jcmVhdGVfcmVjdl9ydHAgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0
UGFkVGVtcGxhdGUgKiB0ZW1wbCwgY29uc3QgZ2NoYXIgKiBuYW1lKQotK3N0YXRpYyB2b2lkCi0r
Y29tcGxldGVfc2Vzc2lvbl9yZWNlaXZlciAoR3N0UnRwQmluICogcnRwYmluLCBHc3RSdHBCaW5T
ZXNzaW9uICogc2Vzc2lvbiwKLSsgICAgZ3VpbnQgc2Vzc2lkKQotIHsKLS0gIGd1aW50IHNlc3Np
ZDsKLSAgIEdzdEVsZW1lbnQgKmF1eDsKLSAgIEdzdFBhZCAqcmVjdl9ydHBfc3JjOwotLSAgR3N0
UnRwQmluU2Vzc2lvbiAqc2Vzc2lvbjsKLS0KLS0gIC8qIGZpcnN0IGdldCB0aGUgc2Vzc2lvbiBu
dW1iZXIgKi8KLS0gIGlmIChuYW1lID09IE5VTEwgfHwgc3NjYW5mIChuYW1lLCAicmVjdl9ydHBf
c2lua18ldSIsICZzZXNzaWQpICE9IDEpCi0tICAgIGdvdG8gbm9fbmFtZTsKLS0KLS0gIEdTVF9E
RUJVR19PQkpFQ1QgKHJ0cGJpbiwgImZpbmRpbmcgc2Vzc2lvbiAlZCIsIHNlc3NpZCk7Ci0gCi0t
ICAvKiBnZXQgb3IgY3JlYXRlIHNlc3Npb24gKi8KLS0gIHNlc3Npb24gPSBmaW5kX3Nlc3Npb25f
YnlfaWQgKHJ0cGJpbiwgc2Vzc2lkKTsKLS0gIGlmICghc2Vzc2lvbikgewotLSAgICBHU1RfREVC
VUdfT0JKRUNUIChydHBiaW4sICJjcmVhdGluZyBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLS0gICAg
LyogY3JlYXRlIHNlc3Npb24gbm93ICovCi0tICAgIHNlc3Npb24gPSBjcmVhdGVfc2Vzc2lvbiAo
cnRwYmluLCBzZXNzaWQpOwotLSAgICBpZiAoc2Vzc2lvbiA9PSBOVUxMKQotLSAgICAgIGdvdG8g
Y3JlYXRlX2Vycm9yOwotLSAgfQotLQotLSAgLyogY2hlY2sgaWYgcGFkIHdhcyByZXF1ZXN0ZWQg
Ki8KLS0gIGlmIChzZXNzaW9uLT5yZWN2X3J0cF9zaW5rX2dob3N0ICE9IE5VTEwpCi0tICAgIHJl
dHVybiBzZXNzaW9uLT5yZWN2X3J0cF9zaW5rX2dob3N0OwotLQotLSAgLyogc2V0dXAgdGhlIHNl
c3Npb24gc2luayBwYWQgKi8KLS0gIGlmICghY29tcGxldGVfc2Vzc2lvbl9zaW5rIChydHBiaW4s
IHNlc3Npb24pKQotLSAgICBnb3RvIHNlc3Npb25fc2lua19mYWlsZWQ7Ci0rICBnX2Fzc2VydCAo
IXNlc3Npb24tPnJlY3ZfcnRwX3NyYyk7Ci0gCi0gICBzZXNzaW9uLT5yZWN2X3J0cF9zcmMgPQot
ICAgICAgIGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkIChzZXNzaW9uLT5zZXNzaW9uLCAicmVj
dl9ydHBfc3JjIik7Ci1AQCAtMzM4MSw3ICszNTM1LDcgQEAgY3JlYXRlX3JlY3ZfcnRwIChHc3RS
dHBCaW4gKiBydHBiaW4sIEdzdFBhZFRlbXBsYXRlICogdGVtcGwsIGNvbnN0IGdjaGFyICogbmFt
ZSkKLSAKLSAgICAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAibGlua2luZyBBVVggcmVjZWl2
ZXIiKTsKLSAKLS0gICAgcG5hbWUgPSBnX3N0cmR1cF9wcmludGYgKCJzaW5rXyVkIiwgc2Vzc2lk
KTsKLSsgICAgcG5hbWUgPSBnX3N0cmR1cF9wcmludGYgKCJzaW5rXyV1Iiwgc2Vzc2lkKTsKLSAg
ICAgYXV4c2luayA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkIChhdXgsIHBuYW1lKTsKLSAg
ICAgZ19mcmVlIChwbmFtZSk7Ci0gICAgIGlmIChhdXhzaW5rID09IE5VTEwpCi1AQCAtMzM5NCw3
ICszNTQ4LDcgQEAgY3JlYXRlX3JlY3ZfcnRwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBhZFRl
bXBsYXRlICogdGVtcGwsIGNvbnN0IGdjaGFyICogbmFtZSkKLSAKLSAgICAgLyogdGhpcyBjYW4g
YmUgTlVMTCB3aGVuIHRoaXMgQVVYIGVsZW1lbnQgaXMgbm90IHRvIGJlIGxpbmtlZCB0bwotICAg
ICAgKiBhbiBTU1JDIGRlbXV4ZXIgKi8KLS0gICAgcG5hbWUgPSBnX3N0cmR1cF9wcmludGYgKCJz
cmNfJWQiLCBzZXNzaWQpOwotKyAgICBwbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoInNyY18ldSIs
IHNlc3NpZCk7Ci0gICAgIHJlY3ZfcnRwX3NyYyA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFk
IChhdXgsIHBuYW1lKTsKLSAgICAgZ19mcmVlIChwbmFtZSk7Ci0gICB9IGVsc2UgewotQEAgLTM0
MDgsOCArMzU2Miw4IEBAIGNyZWF0ZV9yZWN2X3J0cCAoR3N0UnRwQmluICogcnRwYmluLCBHc3RQ
YWRUZW1wbGF0ZSAqIHRlbXBsLCBjb25zdCBnY2hhciAqIG5hbWUpCi0gICAgIHNpbmtkcGFkID0g
Z3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQgKHNlc3Npb24tPmRlbXV4LCAic2luayIpOwotICAg
ICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJsaW5raW5nIGRlbXV4ZXIgUlRQIHNpbmsgcGFk
Iik7Ci0gICAgIGdzdF9wYWRfbGlua19mdWxsIChyZWN2X3J0cF9zcmMsIHNpbmtkcGFkLCBHU1Rf
UEFEX0xJTktfQ0hFQ0tfTk9USElORyk7Ci0tICAgIGdzdF9vYmplY3RfdW5yZWYgKHJlY3ZfcnRw
X3NyYyk7Ci0gICAgIGdzdF9vYmplY3RfdW5yZWYgKHNpbmtkcGFkKTsKLSsgICAgZ3N0X29iamVj
dF91bnJlZiAocmVjdl9ydHBfc3JjKTsKLSAKLSAgICAgLyogY29ubmVjdCB0byB0aGUgbmV3LXNz
cmMtcGFkIHNpZ25hbCBvZiB0aGUgU1NSQyBkZW11eGVyICovCi0gICAgIHNlc3Npb24tPmRlbXV4
X25ld3BhZF9zaWcgPSBnX3NpZ25hbF9jb25uZWN0IChzZXNzaW9uLT5kZW11eCwKLUBAIC0zNDE3
LDYgKzM1NzEsNzEgQEAgY3JlYXRlX3JlY3ZfcnRwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBh
ZFRlbXBsYXRlICogdGVtcGwsIGNvbnN0IGdjaGFyICogbmFtZSkKLSAgICAgc2Vzc2lvbi0+ZGVt
dXhfcGFkcmVtb3ZlZF9zaWcgPSBnX3NpZ25hbF9jb25uZWN0IChzZXNzaW9uLT5kZW11eCwKLSAg
ICAgICAgICJyZW1vdmVkLXNzcmMtcGFkIiwgKEdDYWxsYmFjaykgc3NyY19kZW11eF9wYWRfcmVt
b3ZlZCwgc2Vzc2lvbik7Ci0gICB9Ci0rCi0rICByZXR1cm47Ci0rCi0rcGFkX2ZhaWxlZDoKLSsg
IHsKLSsgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IHNlc3Npb24gcmVjdl9y
dHBfc3JjIHBhZCIpOwotKyAgICByZXR1cm47Ci0rICB9Ci0rYXV4X3NpbmtfZmFpbGVkOgotKyAg
ewotKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgQVVYIHNpbmsgcGFkIGZv
ciBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKLSsgICAgcmV0dXJuOwotKyAgfQotK2F1eF9saW5rX2Zh
aWxlZDoKLSsgIHsKLSsgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gbGluayBBVVgg
cGFkIHRvIHNlc3Npb24gJXUiLCBzZXNzaWQpOwotKyAgICByZXR1cm47Ci0rICB9Ci0rfQotKwot
Ky8qIENyZWF0ZSBhIHBhZCBmb3IgcmVjZWl2aW5nIFJUUCBmb3IgdGhlIHNlc3Npb24gaW4gQG5h
bWUuIE11c3QgYmUgY2FsbGVkIHdpdGgKLSsgKiBSVFBfQklOX0xPQ0suCi0rICovCi0rc3RhdGlj
IEdzdFBhZCAqCi0rY3JlYXRlX3JlY3ZfcnRwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBhZFRl
bXBsYXRlICogdGVtcGwsIGNvbnN0IGdjaGFyICogbmFtZSkKLSt7Ci0rICBndWludCBzZXNzaWQ7
Ci0rICBHc3RSdHBCaW5TZXNzaW9uICpzZXNzaW9uOwotKyAgR3N0UGFkICpyZWN2X3J0cF9zaW5r
OwotKwotKyAgLyogZmlyc3QgZ2V0IHRoZSBzZXNzaW9uIG51bWJlciAqLwotKyAgaWYgKG5hbWUg
PT0gTlVMTCB8fCBzc2NhbmYgKG5hbWUsICJyZWN2X3J0cF9zaW5rXyV1IiwgJnNlc3NpZCkgIT0g
MSkKLSsgICAgZ290byBub19uYW1lOwotKwotKyAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAi
ZmluZGluZyBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKLSsKLSsgIC8qIGdldCBvciBjcmVhdGUgc2Vz
c2lvbiAqLwotKyAgc2Vzc2lvbiA9IGZpbmRfc2Vzc2lvbl9ieV9pZCAocnRwYmluLCBzZXNzaWQp
OwotKyAgaWYgKCFzZXNzaW9uKSB7Ci0rICAgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgImNy
ZWF0aW5nIHNlc3Npb24gJXUiLCBzZXNzaWQpOwotKyAgICAvKiBjcmVhdGUgc2Vzc2lvbiBub3cg
Ki8KLSsgICAgc2Vzc2lvbiA9IGNyZWF0ZV9zZXNzaW9uIChydHBiaW4sIHNlc3NpZCk7Ci0rICAg
IGlmIChzZXNzaW9uID09IE5VTEwpCi0rICAgICAgZ290byBjcmVhdGVfZXJyb3I7Ci0rICB9Ci0r
Ci0rICAvKiBjaGVjayBpZiBwYWQgd2FzIHJlcXVlc3RlZCAqLwotKyAgaWYgKHNlc3Npb24tPnJl
Y3ZfcnRwX3NpbmtfZ2hvc3QgIT0gTlVMTCkKLSsgICAgcmV0dXJuIHNlc3Npb24tPnJlY3ZfcnRw
X3NpbmtfZ2hvc3Q7Ci0rCi0rICAvKiBzZXR1cCB0aGUgc2Vzc2lvbiBzaW5rIHBhZCAqLwotKyAg
cmVjdl9ydHBfc2luayA9IGNvbXBsZXRlX3Nlc3Npb25fc2luayAocnRwYmluLCBzZXNzaW9uLCBU
UlVFKTsKLSsgIGlmICghcmVjdl9ydHBfc2luaykKLSsgICAgZ290byBzZXNzaW9uX3NpbmtfZmFp
bGVkOwotKwotKwotKyAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAiZ2hvc3Rpbmcgc2Vzc2lv
biBzaW5rIHBhZCIpOwotKyAgc2Vzc2lvbi0+cmVjdl9ydHBfc2lua19naG9zdCA9Ci0rICAgICAg
Z3N0X2dob3N0X3BhZF9uZXdfZnJvbV90ZW1wbGF0ZSAobmFtZSwgcmVjdl9ydHBfc2luaywgdGVt
cGwpOwotKyAgZ3N0X29iamVjdF91bnJlZiAocmVjdl9ydHBfc2luayk7Ci0rICBnc3RfcGFkX3Nl
dF9hY3RpdmUgKHNlc3Npb24tPnJlY3ZfcnRwX3NpbmtfZ2hvc3QsIFRSVUUpOwotKyAgZ3N0X2Vs
ZW1lbnRfYWRkX3BhZCAoR1NUX0VMRU1FTlRfQ0FTVCAocnRwYmluKSwgc2Vzc2lvbi0+cmVjdl9y
dHBfc2lua19naG9zdCk7Ci0rCi0rICBjb21wbGV0ZV9zZXNzaW9uX3JlY2VpdmVyIChydHBiaW4s
IHNlc3Npb24sIHNlc3NpZCk7Ci0rCi0gICByZXR1cm4gc2Vzc2lvbi0+cmVjdl9ydHBfc2lua19n
aG9zdDsKLSAKLSAgIC8qIEVSUk9SUyAqLwotQEAgLTM0MzUsMjEgKzM2NTQsNiBAQCBzZXNzaW9u
X3NpbmtfZmFpbGVkOgotICAgICAvKiB3YXJuaW5nIGFscmVhZHkgZG9uZSAqLwotICAgICByZXR1
cm4gTlVMTDsKLSAgIH0KLS1wYWRfZmFpbGVkOgotLSAgewotLSAgICBnX3dhcm5pbmcgKCJydHBi
aW46IGZhaWxlZCB0byBnZXQgc2Vzc2lvbiByZWN2X3J0cF9zcmMgcGFkIik7Ci0tICAgIHJldHVy
biBOVUxMOwotLSAgfQotLWF1eF9zaW5rX2ZhaWxlZDoKLS0gIHsKLS0gICAgZ193YXJuaW5nICgi
cnRwYmluOiBmYWlsZWQgdG8gZ2V0IEFVWCBzaW5rIHBhZCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3Np
ZCk7Ci0tICAgIHJldHVybiBOVUxMOwotLSAgfQotLWF1eF9saW5rX2ZhaWxlZDoKLS0gIHsKLS0g
ICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gbGluayBBVVggcGFkIHRvIHNlc3Npb24g
JWQiLCBzZXNzaWQpOwotLSAgICByZXR1cm4gTlVMTDsKLS0gIH0KLSB9Ci0gCi0gc3RhdGljIHZv
aWQKLUBAIC0zNDYzLDYgKzM2NjcsMTEgQEAgcmVtb3ZlX3JlY3ZfcnRwIChHc3RSdHBCaW4gKiBy
dHBiaW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uKQotICAgICBnX3NpZ25hbF9oYW5kbGVy
X2Rpc2Nvbm5lY3QgKHNlc3Npb24tPmRlbXV4LCBzZXNzaW9uLT5kZW11eF9wYWRyZW1vdmVkX3Np
Zyk7Ci0gICAgIHNlc3Npb24tPmRlbXV4X3BhZHJlbW92ZWRfc2lnID0gMDsKLSAgIH0KLSsgIGlm
IChzZXNzaW9uLT5idW5kbGVfZGVtdXhfbmV3cGFkX3NpZykgewotKyAgICBnX3NpZ25hbF9oYW5k
bGVyX2Rpc2Nvbm5lY3QgKHNlc3Npb24tPmJ1bmRsZV9kZW11eCwKLSsgICAgICAgIHNlc3Npb24t
PmJ1bmRsZV9kZW11eF9uZXdwYWRfc2lnKTsKLSsgICAgc2Vzc2lvbi0+YnVuZGxlX2RlbXV4X25l
d3BhZF9zaWcgPSAwOwotKyAgfQotICAgaWYgKHNlc3Npb24tPnJlY3ZfcnRwX3NyYykgewotICAg
ICBnc3Rfb2JqZWN0X3VucmVmIChzZXNzaW9uLT5yZWN2X3J0cF9zcmMpOwotICAgICBzZXNzaW9u
LT5yZWN2X3J0cF9zcmMgPSBOVUxMOwotQEAgLTM0ODAsMzcgKzM2ODksMTQgQEAgcmVtb3ZlX3Jl
Y3ZfcnRwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uKQot
ICAgfQotIH0KLSAKLS0vKiBDcmVhdGUgYSBwYWQgZm9yIHJlY2VpdmluZyBSVENQIGZvciB0aGUg
c2Vzc2lvbiBpbiBAbmFtZS4gTXVzdCBiZSBjYWxsZWQgd2l0aAotLSAqIFJUUF9CSU5fTE9DSy4K
LS0gKi8KLSBzdGF0aWMgR3N0UGFkICoKLS1jcmVhdGVfcmVjdl9ydGNwIChHc3RSdHBCaW4gKiBy
dHBiaW4sIEdzdFBhZFRlbXBsYXRlICogdGVtcGwsCi0tICAgIGNvbnN0IGdjaGFyICogbmFtZSkK
LStjb21wbGV0ZV9zZXNzaW9uX3J0Y3AgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UnRwQmluU2Vz
c2lvbiAqIHNlc3Npb24sCi0rICAgIGd1aW50IHNlc3NpZCwgZ2Jvb2xlYW4gYnVuZGxlX2RlbXV4
ZXJfbmVlZGVkKQotIHsKLS0gIGd1aW50IHNlc3NpZDsKLSAgIEdzdEVsZW1lbnQgKmRlY29kZXI7
Ci0tICBHc3RSdHBCaW5TZXNzaW9uICpzZXNzaW9uOwotLSAgR3N0UGFkICpzaW5rZHBhZCwgKmRl
Y3Npbms7Ci0tCi0tICAvKiBmaXJzdCBnZXQgdGhlIHNlc3Npb24gbnVtYmVyICovCi0tICBpZiAo
bmFtZSA9PSBOVUxMIHx8IHNzY2FuZiAobmFtZSwgInJlY3ZfcnRjcF9zaW5rXyV1IiwgJnNlc3Np
ZCkgIT0gMSkKLS0gICAgZ290byBub19uYW1lOwotLQotLSAgR1NUX0RFQlVHX09CSkVDVCAocnRw
YmluLCAiZmluZGluZyBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLS0KLS0gIC8qIGdldCBvciBjcmVh
dGUgdGhlIHNlc3Npb24gKi8KLS0gIHNlc3Npb24gPSBmaW5kX3Nlc3Npb25fYnlfaWQgKHJ0cGJp
biwgc2Vzc2lkKTsKLS0gIGlmICghc2Vzc2lvbikgewotLSAgICBHU1RfREVCVUdfT0JKRUNUIChy
dHBiaW4sICJjcmVhdGluZyBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLS0gICAgLyogY3JlYXRlIHNl
c3Npb24gbm93ICovCi0tICAgIHNlc3Npb24gPSBjcmVhdGVfc2Vzc2lvbiAocnRwYmluLCBzZXNz
aWQpOwotLSAgICBpZiAoc2Vzc2lvbiA9PSBOVUxMKQotLSAgICAgIGdvdG8gY3JlYXRlX2Vycm9y
OwotLSAgfQotLQotLSAgLyogY2hlY2sgaWYgcGFkIHdhcyByZXF1ZXN0ZWQgKi8KLS0gIGlmIChz
ZXNzaW9uLT5yZWN2X3J0Y3Bfc2lua19naG9zdCAhPSBOVUxMKQotLSAgICByZXR1cm4gc2Vzc2lv
bi0+cmVjdl9ydGNwX3NpbmtfZ2hvc3Q7Ci0rICBHc3RQYWQgKnNpbmtkcGFkOwotKyAgR3N0UGFk
ICpkZWNzaW5rID0gTlVMTDsKLSsgIEdzdFBhZCAqZnVubmVsX3NyYzsKLSAKLSAgIC8qIGdldCBy
ZWN2X3J0cCBwYWQgYW5kIHN0b3JlICovCi0gICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJn
ZXR0aW5nIFJUQ1Agc2luayBwYWQiKTsKLUBAIC0zNTE5LDYgKzM3MDUsOSBAQCBjcmVhdGVfcmVj
dl9ydGNwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBhZFRlbXBsYXRlICogdGVtcGwsCi0gICBp
ZiAoc2Vzc2lvbi0+cmVjdl9ydGNwX3NpbmsgPT0gTlVMTCkKLSAgICAgZ290byBwYWRfZmFpbGVk
OwotIAotKyAgaWYgKGJ1bmRsZV9kZW11eGVyX25lZWRlZCkKLSsgICAgc2Vzc2lvbl9tYXliZV9j
cmVhdGVfYnVuZGxlX2RlbXV4ZXIgKHNlc3Npb24pOwotKwotICAgR1NUX0RFQlVHX09CSkVDVCAo
cnRwYmluLCAiZ2V0dGluZyBSVENQIGRlY29kZXIiKTsKLSAgIGRlY29kZXIgPSBzZXNzaW9uX3Jl
cXVlc3RfZWxlbWVudCAoc2Vzc2lvbiwgU0lHTkFMX1JFUVVFU1RfUlRDUF9ERUNPREVSKTsKLSAg
IGlmIChkZWNvZGVyKSB7Ci1AQCAtMzUzNSwxNCArMzcyNCwyNiBAQCBjcmVhdGVfcmVjdl9ydGNw
IChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBhZFRlbXBsYXRlICogdGVtcGwsCi0gICAgIGlmIChk
ZWNzcmMgPT0gTlVMTCkKLSAgICAgICBnb3RvIGRlY19zcmNfZmFpbGVkOwotIAotLSAgICByZXQg
PSBnc3RfcGFkX2xpbmsgKGRlY3NyYywgc2Vzc2lvbi0+cmVjdl9ydGNwX3NpbmspOwotKyAgICBp
ZiAoc2Vzc2lvbi0+YnVuZGxlX2RlbXV4KSB7Ci0rICAgICAgR3N0UGFkICpkZW11eF9zaW5rOwot
KyAgICAgIGRlbXV4X3NpbmsgPQotKyAgICAgICAgICBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3Bh
ZCAoc2Vzc2lvbi0+YnVuZGxlX2RlbXV4LCAicnRjcF9zaW5rIik7Ci0rICAgICAgcmV0ID0gZ3N0
X3BhZF9saW5rIChkZWNzcmMsIGRlbXV4X3NpbmspOwotKyAgICAgIGdzdF9vYmplY3RfdW5yZWYg
KGRlbXV4X3NpbmspOwotKyAgICB9IGVsc2UgewotKyAgICAgIHJldCA9IGdzdF9wYWRfbGluayAo
ZGVjc3JjLCBzZXNzaW9uLT5yZWN2X3J0Y3Bfc2luayk7Ci0rICAgIH0KLSAgICAgZ3N0X29iamVj
dF91bnJlZiAoZGVjc3JjKTsKLSAKLSAgICAgaWYgKHJldCAhPSBHU1RfUEFEX0xJTktfT0spCi0g
ICAgICAgZ290byBkZWNfbGlua19mYWlsZWQ7Ci0gICB9IGVsc2UgewotICAgICBHU1RfREVCVUdf
T0JKRUNUIChydHBiaW4sICJubyBSVENQIGRlY29kZXIgZ2l2ZW4iKTsKLS0gICAgZGVjc2luayA9
IGdzdF9vYmplY3RfcmVmIChzZXNzaW9uLT5yZWN2X3J0Y3Bfc2luayk7Ci0rICAgIGlmIChzZXNz
aW9uLT5idW5kbGVfZGVtdXgpIHsKLSsgICAgICBkZWNzaW5rID0gZ3N0X2VsZW1lbnRfZ2V0X3N0
YXRpY19wYWQgKHNlc3Npb24tPmJ1bmRsZV9kZW11eCwgInJ0Y3Bfc2luayIpOwotKyAgICB9IGVs
c2UgewotKyAgICAgIGRlY3NpbmsgPSBnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQgKHNlc3Np
b24tPnJ0Y3BfZnVubmVsLCAic2lua18ldSIpOwotKyAgICB9Ci0gICB9Ci0gCi0gICAvKiBnZXQg
c3JjcGFkLCBsaW5rIHRvIFNTUkNEZW11eCAqLwotQEAgLTM1NTYsMjYgKzM3NTcsMTIgQEAgY3Jl
YXRlX3JlY3ZfcnRjcCAoR3N0UnRwQmluICogcnRwYmluLCBHc3RQYWRUZW1wbGF0ZSAqIHRlbXBs
LAotICAgZ3N0X3BhZF9saW5rX2Z1bGwgKHNlc3Npb24tPnN5bmNfc3JjLCBzaW5rZHBhZCwgR1NU
X1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOwotICAgZ3N0X29iamVjdF91bnJlZiAoc2lua2RwYWQp
OwotIAotLSAgc2Vzc2lvbi0+cmVjdl9ydGNwX3NpbmtfZ2hvc3QgPQotLSAgICAgIGdzdF9naG9z
dF9wYWRfbmV3X2Zyb21fdGVtcGxhdGUgKG5hbWUsIGRlY3NpbmssIHRlbXBsKTsKLS0gIGdzdF9v
YmplY3RfdW5yZWYgKGRlY3NpbmspOwotLSAgZ3N0X3BhZF9zZXRfYWN0aXZlIChzZXNzaW9uLT5y
ZWN2X3J0Y3Bfc2lua19naG9zdCwgVFJVRSk7Ci0tICBnc3RfZWxlbWVudF9hZGRfcGFkIChHU1Rf
RUxFTUVOVF9DQVNUIChydHBiaW4pLAotLSAgICAgIHNlc3Npb24tPnJlY3ZfcnRjcF9zaW5rX2do
b3N0KTsKLSsgIGZ1bm5lbF9zcmMgPSBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZCAoc2Vzc2lv
bi0+cnRjcF9mdW5uZWwsICJzcmMiKTsKLSsgIGdzdF9wYWRfbGluayAoZnVubmVsX3NyYywgc2Vz
c2lvbi0+cmVjdl9ydGNwX3NpbmspOwotKyAgZ3N0X29iamVjdF91bnJlZiAoZnVubmVsX3NyYyk7
Ci0gCi0tICByZXR1cm4gc2Vzc2lvbi0+cmVjdl9ydGNwX3NpbmtfZ2hvc3Q7Ci0rICByZXR1cm4g
ZGVjc2luazsKLSAKLS0gIC8qIEVSUk9SUyAqLwotLW5vX25hbWU6Ci0tICB7Ci0tICAgIGdfd2Fy
bmluZyAoInJ0cGJpbjogaW52YWxpZCBuYW1lIGdpdmVuIik7Ci0tICAgIHJldHVybiBOVUxMOwot
LSAgfQotLWNyZWF0ZV9lcnJvcjoKLS0gIHsKLS0gICAgLyogY3JlYXRlX3Nlc3Npb24gYWxyZWFk
eSB3YXJuZWQgKi8KLS0gICAgcmV0dXJuIE5VTEw7Ci0tICB9Ci0gcGFkX2ZhaWxlZDoKLSAgIHsK
LSAgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IHNlc3Npb24gcnRjcF9zaW5r
IHBhZCIpOwotQEAgLTM1ODMsMjUgKzM3NzAsODIgQEAgcGFkX2ZhaWxlZDoKLSAgIH0KLSBkZWNf
c2lua19mYWlsZWQ6Ci0gICB7Ci0tICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdl
dCBkZWNvZGVyIHNpbmsgcGFkIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLSsgICAgZ193YXJu
aW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IGRlY29kZXIgc2luayBwYWQgZm9yIHNlc3Npb24g
JXUiLCBzZXNzaWQpOwotICAgICByZXR1cm4gTlVMTDsKLSAgIH0KLSBkZWNfc3JjX2ZhaWxlZDoK
LSAgIHsKLS0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IGRlY29kZXIgc3Jj
IHBhZCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7Ci0tICAgIGdzdF9vYmplY3RfdW5yZWYgKGRl
Y3NpbmspOwotLSAgICByZXR1cm4gTlVMTDsKLSsgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWls
ZWQgdG8gZ2V0IGRlY29kZXIgc3JjIHBhZCBmb3Igc2Vzc2lvbiAldSIsIHNlc3NpZCk7Ci0rICAg
IGdvdG8gY2xlYW51cDsKLSAgIH0KLSBkZWNfbGlua19mYWlsZWQ6Ci0gICB7Ci0tICAgIGdfd2Fy
bmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGxpbmsgcnRjcCBkZWNvZGVyIGZvciBzZXNzaW9uICVk
Iiwgc2Vzc2lkKTsKLS0gICAgZ3N0X29iamVjdF91bnJlZiAoZGVjc2luayk7Ci0tICAgIHJldHVy
biBOVUxMOwotKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBsaW5rIHJ0Y3AgZGVj
b2RlciBmb3Igc2Vzc2lvbiAldSIsIHNlc3NpZCk7Ci0rICAgIGdvdG8gY2xlYW51cDsKLSAgIH0K
LSBzcmNfcGFkX2ZhaWxlZDoKLSAgIHsKLSAgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQg
dG8gZ2V0IHNlc3Npb24gc3luY19zcmMgcGFkIik7Ci0tICAgIGdzdF9vYmplY3RfdW5yZWYgKGRl
Y3NpbmspOwotKyAgfQotKwotK2NsZWFudXA6Ci0rICBnc3Rfb2JqZWN0X3VucmVmIChkZWNzaW5r
KTsKLSsgIHJldHVybiBOVUxMOwotK30KLSsKLSsvKiBDcmVhdGUgYSBwYWQgZm9yIHJlY2Vpdmlu
ZyBSVENQIGZvciB0aGUgc2Vzc2lvbiBpbiBAbmFtZS4gTXVzdCBiZSBjYWxsZWQgd2l0aAotKyAq
IFJUUF9CSU5fTE9DSy4KLSsgKi8KLStzdGF0aWMgR3N0UGFkICoKLStjcmVhdGVfcmVjdl9ydGNw
IChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBhZFRlbXBsYXRlICogdGVtcGwsCi0rICAgIGNvbnN0
IGdjaGFyICogbmFtZSkKLSt7Ci0rICBndWludCBzZXNzaWQ7Ci0rICBHc3RSdHBCaW5TZXNzaW9u
ICpzZXNzaW9uOwotKyAgR3N0UGFkICpkZWNzaW5rID0gTlVMTDsKLSsKLSsgIC8qIGZpcnN0IGdl
dCB0aGUgc2Vzc2lvbiBudW1iZXIgKi8KLSsgIGlmIChuYW1lID09IE5VTEwgfHwgc3NjYW5mIChu
YW1lLCAicmVjdl9ydGNwX3NpbmtfJXUiLCAmc2Vzc2lkKSAhPSAxKQotKyAgICBnb3RvIG5vX25h
bWU7Ci0rCi0rICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJmaW5kaW5nIHNlc3Npb24gJXUi
LCBzZXNzaWQpOwotKwotKyAgLyogZ2V0IG9yIGNyZWF0ZSB0aGUgc2Vzc2lvbiAqLwotKyAgc2Vz
c2lvbiA9IGZpbmRfc2Vzc2lvbl9ieV9pZCAocnRwYmluLCBzZXNzaWQpOwotKyAgaWYgKCFzZXNz
aW9uKSB7Ci0rICAgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgImNyZWF0aW5nIHNlc3Npb24g
JXUiLCBzZXNzaWQpOwotKyAgICAvKiBjcmVhdGUgc2Vzc2lvbiBub3cgKi8KLSsgICAgc2Vzc2lv
biA9IGNyZWF0ZV9zZXNzaW9uIChydHBiaW4sIHNlc3NpZCk7Ci0rICAgIGlmIChzZXNzaW9uID09
IE5VTEwpCi0rICAgICAgZ290byBjcmVhdGVfZXJyb3I7Ci0rICB9Ci0rCi0rICAvKiBjaGVjayBp
ZiBwYWQgd2FzIHJlcXVlc3RlZCAqLwotKyAgaWYgKHNlc3Npb24tPnJlY3ZfcnRjcF9zaW5rX2do
b3N0ICE9IE5VTEwpCi0rICAgIHJldHVybiBzZXNzaW9uLT5yZWN2X3J0Y3Bfc2lua19naG9zdDsK
LSsKLSsgIGRlY3NpbmsgPSBjb21wbGV0ZV9zZXNzaW9uX3J0Y3AgKHJ0cGJpbiwgc2Vzc2lvbiwg
c2Vzc2lkLCBUUlVFKTsKLSsgIGlmICghZGVjc2luaykKLSsgICAgZ290byBjcmVhdGVfZXJyb3I7
Ci0rCi0rICBzZXNzaW9uLT5yZWN2X3J0Y3Bfc2lua19naG9zdCA9Ci0rICAgICAgZ3N0X2dob3N0
X3BhZF9uZXdfZnJvbV90ZW1wbGF0ZSAobmFtZSwgZGVjc2luaywgdGVtcGwpOwotKyAgZ3N0X29i
amVjdF91bnJlZiAoZGVjc2luayk7Ci0rICBnc3RfcGFkX3NldF9hY3RpdmUgKHNlc3Npb24tPnJl
Y3ZfcnRjcF9zaW5rX2dob3N0LCBUUlVFKTsKLSsgIGdzdF9lbGVtZW50X2FkZF9wYWQgKEdTVF9F
TEVNRU5UX0NBU1QgKHJ0cGJpbiksCi0rICAgICAgc2Vzc2lvbi0+cmVjdl9ydGNwX3NpbmtfZ2hv
c3QpOwotKwotKyAgcmV0dXJuIHNlc3Npb24tPnJlY3ZfcnRjcF9zaW5rX2dob3N0OwotKwotKyAg
LyogRVJST1JTICovCi0rbm9fbmFtZToKLSsgIHsKLSsgICAgZ193YXJuaW5nICgicnRwYmluOiBp
bnZhbGlkIG5hbWUgZ2l2ZW4iKTsKLSsgICAgcmV0dXJuIE5VTEw7Ci0rICB9Ci0rY3JlYXRlX2Vy
cm9yOgotKyAgewotKyAgICAvKiBjcmVhdGVfc2Vzc2lvbiBhbHJlYWR5IHdhcm5lZCAqLwotICAg
ICByZXR1cm4gTlVMTDsKLSAgIH0KLSB9Ci1AQCAtMzY1MSw3ICszODk1LDcgQEAgY29tcGxldGVf
c2Vzc2lvbl9zcmMgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Np
b24pCi0gICAgIEdzdFBhZExpbmtSZXR1cm4gcmV0OwotIAotICAgICBHU1RfREVCVUdfT0JKRUNU
IChydHBiaW4sICJsaW5raW5nIFJUUCBlbmNvZGVyIik7Ci0tICAgIGVuYW1lID0gZ19zdHJkdXBf
cHJpbnRmICgicnRwX3NyY18lZCIsIHNlc3NpZCk7Ci0rICAgIGVuYW1lID0gZ19zdHJkdXBfcHJp
bnRmICgicnRwX3NyY18ldSIsIHNlc3NpZCk7Ci0gICAgIGVuY3NyYyA9IGdzdF9lbGVtZW50X2dl
dF9zdGF0aWNfcGFkIChlbmNvZGVyLCBlbmFtZSk7Ci0gICAgIGdfZnJlZSAoZW5hbWUpOwotIAot
QEAgLTM2NjAsNyArMzkwNCw3IEBAIGNvbXBsZXRlX3Nlc3Npb25fc3JjIChHc3RSdHBCaW4gKiBy
dHBiaW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uKQotIAotICAgICBzZW5kX3J0cF9zcmMg
PSBlbmNzcmM7Ci0gCi0tICAgIGVuYW1lID0gZ19zdHJkdXBfcHJpbnRmICgicnRwX3NpbmtfJWQi
LCBzZXNzaWQpOwotKyAgICBlbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoInJ0cF9zaW5rXyV1Iiwg
c2Vzc2lkKTsKLSAgICAgZW5jc2luayA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkIChlbmNv
ZGVyLCBlbmFtZSk7Ci0gICAgIGdfZnJlZSAoZW5hbWUpOwotICAgICBpZiAoZW5jc2luayA9PSBO
VUxMKQotQEAgLTM2OTQsMjMgKzM5MzgsMjMgQEAgY29tcGxldGVfc2Vzc2lvbl9zcmMgKEdzdFJ0
cEJpbiAqIHJ0cGJpbiwgR3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Npb24pCi0gICAvKiBFUlJPUlMg
Ki8KLSBub19zcmNwYWQ6Ci0gICB7Ci0tICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRv
IGdldCBydHAgc291cmNlIHBhZCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7Ci0rICAgIGdfd2Fy
bmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBydHAgc291cmNlIHBhZCBmb3Igc2Vzc2lvbiAl
dSIsIHNlc3NpZCk7Ci0gICAgIHJldHVybiBGQUxTRTsKLSAgIH0KLSBlbmNfc3JjX2ZhaWxlZDoK
LSAgIHsKLS0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IGVuY29kZXIgc3Jj
IHBhZCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7Ci0rICAgIGdfd2FybmluZyAoInJ0cGJpbjog
ZmFpbGVkIHRvIGdldCBlbmNvZGVyIHNyYyBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOwot
ICAgICByZXR1cm4gRkFMU0U7Ci0gICB9Ci0gZW5jX3NpbmtfZmFpbGVkOgotICAgewotLSAgICBn
X3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgZW5jb2RlciBzaW5rIHBhZCBmb3Igc2Vz
c2lvbiAlZCIsIHNlc3NpZCk7Ci0rICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdl
dCBlbmNvZGVyIHNpbmsgcGFkIGZvciBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKLSAgICAgZ3N0X29i
amVjdF91bnJlZiAoc2VuZF9ydHBfc3JjKTsKLSAgICAgcmV0dXJuIEZBTFNFOwotICAgfQotIGVu
Y19saW5rX2ZhaWxlZDoKLSAgIHsKLS0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8g
bGluayBydHAgZW5jb2RlciBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7Ci0rICAgIGdfd2Fybmlu
ZyAoInJ0cGJpbjogZmFpbGVkIHRvIGxpbmsgcnRwIGVuY29kZXIgZm9yIHNlc3Npb24gJXUiLCBz
ZXNzaWQpOwotICAgICBnc3Rfb2JqZWN0X3VucmVmIChzZW5kX3J0cF9zcmMpOwotICAgICByZXR1
cm4gRkFMU0U7Ci0gICB9Ci1AQCAtMzc3MiwyMiArNDAxNiwyMiBAQCBjcmVhdGVfZXJyb3I6Ci0g
ICB9Ci0gZXhpc3Rpbmdfc2Vzc2lvbjoKLSAgIHsKLS0gICAgZ193YXJuaW5nICgicnRwYmluOiBz
ZXNzaW9uICVkIGlzIGFscmVhZHkgYSBzZW5kZXIiLCBzZXNzaWQpOwotKyAgICBnX3dhcm5pbmcg
KCJydHBiaW46IHNlc3Npb24gJXUgaXMgYWxyZWFkeSBhIHNlbmRlciIsIHNlc3NpZCk7Ci0gICAg
IHJldHVybiBGQUxTRTsKLSAgIH0KLSBwYWRfZmFpbGVkOgotICAgewotLSAgICBnX3dhcm5pbmcg
KCJydHBiaW46IGZhaWxlZCB0byBnZXQgc2Vzc2lvbiBwYWQgZm9yIHNlc3Npb24gJWQiLCBzZXNz
aWQpOwotKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgc2Vzc2lvbiBwYWQg
Zm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOwotICAgICByZXR1cm4gRkFMU0U7Ci0gICB9Ci0gYXV4
X2xpbmtfZmFpbGVkOgotICAgewotLSAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBs
aW5rIEFVWCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7Ci0rICAgIGdfd2FybmluZyAoInJ0cGJp
bjogZmFpbGVkIHRvIGxpbmsgQVVYIGZvciBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKLSAgICAgcmV0
dXJuIEZBTFNFOwotICAgfQotIHNlc3Npb25fc3JjX2ZhaWxlZDoKLSAgIHsKLS0gICAgZ193YXJu
aW5nICgicnRwYmluOiBmYWlsZWQgdG8gY29tcGxldGUgQVVYIGZvciBzZXNzaW9uICVkIiwgc2Vz
c2lkKTsKLSsgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gY29tcGxldGUgQVVYIGZv
ciBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKLSAgICAgcmV0dXJuIEZBTFNFOwotICAgfQotIH0KLUBA
IC0zODQ3LDcgKzQwOTEsNyBAQCBjcmVhdGVfc2VuZF9ydHAgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwg
R3N0UGFkVGVtcGxhdGUgKiB0ZW1wbCwgY29uc3QgZ2NoYXIgKiBuYW1lKQotICAgICBpZiAoIXNl
dHVwX2F1eF9zZW5kZXIgKHJ0cGJpbiwgc2Vzc2lvbiwgYXV4KSkKLSAgICAgICBnb3RvIGF1eF9z
ZXNzaW9uX2ZhaWxlZDsKLSAKLS0gICAgcG5hbWUgPSBnX3N0cmR1cF9wcmludGYgKCJzaW5rXyVk
Iiwgc2Vzc2lkKTsKLSsgICAgcG5hbWUgPSBnX3N0cmR1cF9wcmludGYgKCJzaW5rXyV1Iiwgc2Vz
c2lkKTsKLSAgICAgc2VuZF9ydHBfc2luayA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkIChh
dXgsIHBuYW1lKTsKLSAgICAgZ19mcmVlIChwbmFtZSk7Ci0gCi1AQCAtMzg4NywyNyArNDEzMSwy
NyBAQCBjcmVhdGVfZXJyb3I6Ci0gICB9Ci0gZXhpc3Rpbmdfc2Vzc2lvbjoKLSAgIHsKLS0gICAg
Z193YXJuaW5nICgicnRwYmluOiBzZXNzaW9uICVkIGlzIGFscmVhZHkgaW4gdXNlIiwgc2Vzc2lk
KTsKLSsgICAgZ193YXJuaW5nICgicnRwYmluOiBzZXNzaW9uICV1IGlzIGFscmVhZHkgaW4gdXNl
Iiwgc2Vzc2lkKTsKLSAgICAgcmV0dXJuIE5VTEw7Ci0gICB9Ci0gYXV4X3Nlc3Npb25fZmFpbGVk
OgotICAgewotLSAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgQVVYIHNpbmsg
cGFkIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLSsgICAgZ193YXJuaW5nICgicnRwYmluOiBm
YWlsZWQgdG8gZ2V0IEFVWCBzaW5rIHBhZCBmb3Igc2Vzc2lvbiAldSIsIHNlc3NpZCk7Ci0gICAg
IHJldHVybiBOVUxMOwotICAgfQotIGF1eF9zaW5rX2ZhaWxlZDoKLSAgIHsKLS0gICAgZ193YXJu
aW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IEFVWCBzaW5rIHBhZCBmb3Igc2Vzc2lvbiAlZCIs
IHNlc3NpZCk7Ci0rICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBBVVggc2lu
ayBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOwotICAgICByZXR1cm4gTlVMTDsKLSAgIH0K
LSBwYWRfZmFpbGVkOgotICAgewotLSAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBn
ZXQgc2Vzc2lvbiBwYWQgZm9yIHNlc3Npb24gJWQiLCBzZXNzaWQpOwotKyAgICBnX3dhcm5pbmcg
KCJydHBiaW46IGZhaWxlZCB0byBnZXQgc2Vzc2lvbiBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNz
aWQpOwotICAgICByZXR1cm4gTlVMTDsKLSAgIH0KLSBzZXNzaW9uX3NyY19mYWlsZWQ6Ci0gICB7
Ci0tICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIHNldHVwIHNvdXJjZSBwYWRzIGZv
ciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLSsgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQg
dG8gc2V0dXAgc291cmNlIHBhZHMgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOwotICAgICByZXR1
cm4gTlVMTDsKLSAgIH0KLSB9Ci1AQCAtMzk3OCwxMyArNDIyMiwxMyBAQCBjcmVhdGVfcnRjcCAo
R3N0UnRwQmluICogcnRwYmluLCBHc3RQYWRUZW1wbGF0ZSAqIHRlbXBsLCBjb25zdCBnY2hhciAq
IG5hbWUpCi0gCi0gICAgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgImxpbmtpbmcgUlRDUCBl
bmNvZGVyIik7Ci0gCi0tICAgIGVuYW1lID0gZ19zdHJkdXBfcHJpbnRmICgicnRjcF9zcmNfJWQi
LCBzZXNzaWQpOwotKyAgICBlbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoInJ0Y3Bfc3JjXyV1Iiwg
c2Vzc2lkKTsKLSAgICAgZW5jc3JjID0gZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQgKGVuY29k
ZXIsIGVuYW1lKTsKLSAgICAgZ19mcmVlIChlbmFtZSk7Ci0gICAgIGlmIChlbmNzcmMgPT0gTlVM
TCkKLSAgICAgICBnb3RvIGVuY19zcmNfZmFpbGVkOwotIAotLSAgICBlbmFtZSA9IGdfc3RyZHVw
X3ByaW50ZiAoInJ0Y3Bfc2lua18lZCIsIHNlc3NpZCk7Ci0rICAgIGVuYW1lID0gZ19zdHJkdXBf
cHJpbnRmICgicnRjcF9zaW5rXyV1Iiwgc2Vzc2lkKTsKLSAgICAgZW5jc2luayA9IGdzdF9lbGVt
ZW50X2dldF9zdGF0aWNfcGFkIChlbmNvZGVyLCBlbmFtZSk7Ci0gICAgIGdfZnJlZSAoZW5hbWUp
OwotICAgICBpZiAoZW5jc2luayA9PSBOVUxMKQotQEAgLTQwMjEsMjMgKzQyNjUsMjMgQEAgbm9f
c2Vzc2lvbjoKLSAgIH0KLSBwYWRfZmFpbGVkOgotICAgewotLSAgICBnX3dhcm5pbmcgKCJydHBi
aW46IGZhaWxlZCB0byBnZXQgcnRjcCBwYWQgZm9yIHNlc3Npb24gJWQiLCBzZXNzaWQpOwotKyAg
ICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgcnRjcCBwYWQgZm9yIHNlc3Npb24g
JXUiLCBzZXNzaWQpOwotICAgICByZXR1cm4gTlVMTDsKLSAgIH0KLSBlbmNfc3JjX2ZhaWxlZDoK
LSAgIHsKLS0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IGVuY29kZXIgc3Jj
IHBhZCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7Ci0rICAgIGdfd2FybmluZyAoInJ0cGJpbjog
ZmFpbGVkIHRvIGdldCBlbmNvZGVyIHNyYyBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOwot
ICAgICByZXR1cm4gTlVMTDsKLSAgIH0KLSBlbmNfc2lua19mYWlsZWQ6Ci0gICB7Ci0tICAgIGdf
d2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBlbmNvZGVyIHNpbmsgcGFkIGZvciBzZXNz
aW9uICVkIiwgc2Vzc2lkKTsKLSsgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0
IGVuY29kZXIgc2luayBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOwotICAgICBnc3Rfb2Jq
ZWN0X3VucmVmIChlbmNzcmMpOwotICAgICByZXR1cm4gTlVMTDsKLSAgIH0KLSBlbmNfbGlua19m
YWlsZWQ6Ci0gICB7Ci0tICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGxpbmsgcnRj
cCBlbmNvZGVyIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKLSsgICAgZ193YXJuaW5nICgicnRw
YmluOiBmYWlsZWQgdG8gbGluayBydGNwIGVuY29kZXIgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQp
OwotICAgICBnc3Rfb2JqZWN0X3VucmVmIChlbmNzcmMpOwotICAgICByZXR1cm4gTlVMTDsKLSAg
IH0KLWRpZmYgLS1naXQgYS9nc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uaCBiL2dzdC9ydHBtYW5h
Z2VyL2dzdHJ0cGJpbi5oCi1pbmRleCBmYjEzYTQ3Li4zODRiNzZkIDEwMDY0NAotLS0tIGEvZ3N0
L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmgKLSsrKyBiL2dzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5o
Ci1AQCAtMTI3LDYgKzEyNyw4IEBAIHN0cnVjdCBfR3N0UnRwQmluQ2xhc3MgewotIAotICAgdm9p
ZCAgICAgKCpvbl9uZXdfc2VuZGVyX3NzcmMpICAgICAgKEdzdFJ0cEJpbiAqcnRwYmluLCBndWlu
dCBzZXNzaW9uLCBndWludDMyIHNzcmMpOwotICAgdm9pZCAgICAgKCpvbl9zZW5kZXJfc3NyY19h
Y3RpdmUpICAgKEdzdFJ0cEJpbiAqcnRwYmluLCBndWludCBzZXNzaW9uLCBndWludDMyIHNzcmMp
OwotKwotKyAgZ3VpbnQgICAgKCpvbl9idW5kbGVkX3NzcmMpICAgICAgICAgKEdzdFJ0cEJpbiAq
cnRwYmluLCBndWludCBzc3JjKTsKLSB9OwotIAotIEdUeXBlIGdzdF9ydHBfYmluX2dldF90eXBl
ICh2b2lkKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5z
LWdvb2QtMDAwNS1zb3VwaHR0cHNyYy1jb29raWUtamFyLWFuZC1jb250ZXh0LXF1ZXJ5LXN1cHBv
cnQucGF0Y2ggYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDUt
c291cGh0dHBzcmMtY29va2llLWphci1hbmQtY29udGV4dC1xdWVyeS1zdXBwb3J0LnBhdGNoCmlu
ZGV4IDg0ZWRiZDZmODNlZmViNjQ3YzdkMmJiM2ZiYWY1YTk1ZGNjN2UwZWEuLjhhM2MwNjJhYjNm
ZDkxNGFmN2YxMGViMjRiMDI5NDFiOGNhNDZlZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2dzdHJlYW1l
ci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNS1zb3VwaHR0cHNyYy1jb29raWUtamFyLWFu
ZC1jb250ZXh0LXF1ZXJ5LXN1cHBvcnQucGF0Y2gKKysrIGIvVG9vbHMvZ3N0cmVhbWVyL3BhdGNo
ZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA1LXNvdXBodHRwc3JjLWNvb2tpZS1qYXItYW5kLWNvbnRl
eHQtcXVlcnktc3VwcG9ydC5wYXRjaApAQCAtMSw3ICsxLDcgQEAKLUZyb20gOGUwM2E2M2ZkNTVm
NWFlNDQ3OTk0NTc5ODkwZTg2MzBiMjdmNGExYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy
b20gNTQ5NWUxNTRjNWJhMDVjN2UyNTQ4NjVlMmZmNmQxMDY4ZjJkYzZjYSBNb24gU2VwIDE3IDAw
OjAwOjAwIDIwMDEKIEZyb206IFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CiBE
YXRlOiBXZWQsIDI4IE9jdCAyMDE1IDEyOjAwOjA5ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMi8z
XSBzb3VwaHR0cHNyYzogY29va2llIGphciBhbmQgY29udGV4dCBxdWVyeSBzdXBwb3J0CitTdWJq
ZWN0OiBbUEFUQ0hdIHNvdXBodHRwc3JjOiBjb29raWUgamFyIGFuZCBjb250ZXh0IHF1ZXJ5IHN1
cHBvcnQKIAogVXNlIGEgdm9sYXRpbGUgQ29va2llIGphciB0byBzdG9yZSBjb29raWVzIGFuZCBo
YW5kbGUgdGhlIGNvbnRleHQKIHF1ZXJ5IHNvIHRoYXQgc2Vzc2lvbiBkYXRhIGNhbiBiZSBzaGFy
ZWQgd2l0aCBvdGhlciBlbGVtZW50cyAobGlrZQpAQCAtMTQsMTAgKzE0LDEwIEBAIGh0dHBzOi8v
YnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjYzMTQKICAyIGZpbGVzIGNoYW5n
ZWQsIDQwIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9leHQv
c291cC9nc3Rzb3VwaHR0cHNyYy5jIGIvZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYwotaW5kZXgg
ZmM3Y2JhNy4uMGQzZTg4NiAxMDA2NDQKK2luZGV4IDUyYzFiODE4Mi4uYWM0MTY5MmE1IDEwMDY0
NAogLS0tIGEvZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYwogKysrIGIvZXh0L3NvdXAvZ3N0c291
cGh0dHBzcmMuYwotQEAgLTQ4Miw2ICs0ODIsNyBAQCBnc3Rfc291cF9odHRwX3NyY19pbml0IChH
c3RTb3VwSFRUUFNyYyAqIHNyYykKK0BAIC00ODEsNiArNDgxLDcgQEAgZ3N0X3NvdXBfaHR0cF9z
cmNfaW5pdCAoR3N0U291cEhUVFBTcmMgKiBzcmMpCiAgICBzcmMtPmNvb2tpZXMgPSBOVUxMOwog
ICAgc3JjLT5pcmFkaW9fbW9kZSA9IERFRkFVTFRfSVJBRElPX01PREU7CiAgICBzcmMtPnNlc3Np
b24gPSBOVUxMOwpAQCAtMjUsNyArMjUsNyBAQCBpbmRleCBmYzdjYmE3Li4wZDNlODg2IDEwMDY0
NAogICAgc3JjLT5tc2cgPSBOVUxMOwogICAgc3JjLT50aW1lb3V0ID0gREVGQVVMVF9USU1FT1VU
OwogICAgc3JjLT5sb2dfbGV2ZWwgPSBERUZBVUxUX1NPVVBfTE9HX0xFVkVMOwotQEAgLTk0Myw2
ICs5NDQsOSBAQCBnc3Rfc291cF9odHRwX3NyY19zZXNzaW9uX29wZW4gKEdzdFNvdXBIVFRQU3Jj
ICogc3JjKQorQEAgLTk0Miw2ICs5NDMsOSBAQCBnc3Rfc291cF9odHRwX3NyY19zZXNzaW9uX29w
ZW4gKEdzdFNvdXBIVFRQU3JjICogc3JjKQogICAgICBzb3VwX3Nlc3Npb25fcmVtb3ZlX2ZlYXR1
cmVfYnlfdHlwZSAoc3JjLT5zZXNzaW9uLAogICAgICAgICAgU09VUF9UWVBFX0NPTlRFTlRfREVD
T0RFUik7CiAgCkBAIC0zNSw3ICszNSw3IEBAIGluZGV4IGZjN2NiYTcuLjBkM2U4ODYgMTAwNjQ0
CiAgICByZXR1cm4gVFJVRTsKICB9CiAgCi1AQCAtOTU4LDYgKzk2MiwxMSBAQCBnc3Rfc291cF9o
dHRwX3NyY19zZXNzaW9uX2Nsb3NlIChHc3RTb3VwSFRUUFNyYyAqIHNyYykKK0BAIC05NTcsNiAr
OTYxLDExIEBAIGdzdF9zb3VwX2h0dHBfc3JjX3Nlc3Npb25fY2xvc2UgKEdzdFNvdXBIVFRQU3Jj
ICogc3JjKQogICAgICBzcmMtPm1zZyA9IE5VTEw7CiAgICB9CiAgCkBAIC00Nyw3ICs0Nyw3IEBA
IGluZGV4IGZjN2NiYTcuLjBkM2U4ODYgMTAwNjQ0CiAgICBpZiAoc3JjLT5zZXNzaW9uKSB7CiAg
ICAgIHNvdXBfc2Vzc2lvbl9hYm9ydCAoc3JjLT5zZXNzaW9uKTsKICAgICAgZ19vYmplY3RfdW5y
ZWYgKHNyYy0+c2Vzc2lvbik7Ci1AQCAtMTQyNiwxMSArMTQzNSwxMiBAQCBnc3Rfc291cF9odHRw
X3NyY19idWlsZF9tZXNzYWdlIChHc3RTb3VwSFRUUFNyYyAqIHNyYywgY29uc3QgZ2NoYXIgKiBt
ZXRob2QpCitAQCAtMTM3MiwxMSArMTM4MSwxMiBAQCBnc3Rfc291cF9odHRwX3NyY19idWlsZF9t
ZXNzYWdlIChHc3RTb3VwSFRUUFNyYyAqIHNyYywgY29uc3QgZ2NoYXIgKiBtZXRob2QpCiAgICB9
CiAgICBpZiAoc3JjLT5jb29raWVzKSB7CiAgICAgIGdjaGFyICoqY29va2llOwpAQCAtNjIsNyAr
NjIsNyBAQCBpbmRleCBmYzdjYmE3Li4wZDNlODg2IDEwMDY0NAogICAgfQogIAogICAgc291cF9t
ZXNzYWdlX3NldF9mbGFncyAoc3JjLT5tc2csIFNPVVBfTUVTU0FHRV9PVkVSV1JJVEVfQ0hVTktT
IHwKLUBAIC0xOTEwLDYgKzE5MjAsMTIgQEAgZ3N0X3NvdXBfaHR0cF9zcmNfcXVlcnkgKEdzdEJh
c2VTcmMgKiBic3JjLCBHc3RRdWVyeSAqIHF1ZXJ5KQorQEAgLTE4ODgsNiArMTg5OCwxMiBAQCBn
c3Rfc291cF9odHRwX3NyY19xdWVyeSAoR3N0QmFzZVNyYyAqIGJzcmMsIEdzdFF1ZXJ5ICogcXVl
cnkpCiAgICBnYm9vbGVhbiByZXQ7CiAgICBHc3RTY2hlZHVsaW5nRmxhZ3MgZmxhZ3M7CiAgICBn
aW50IG1pbnNpemUsIG1heHNpemUsIGFsaWduOwpAQCAtNzUsNyArNzUsNyBAQCBpbmRleCBmYzdj
YmE3Li4wZDNlODg2IDEwMDY0NAogIAogICAgc3dpdGNoIChHU1RfUVVFUllfVFlQRSAocXVlcnkp
KSB7CiAgICAgIGNhc2UgR1NUX1FVRVJZX1VSSToKLUBAIC0xOTIxLDYgKzE5MzcsMjcgQEAgZ3N0
X3NvdXBfaHR0cF9zcmNfcXVlcnkgKEdzdEJhc2VTcmMgKiBic3JjLCBHc3RRdWVyeSAqIHF1ZXJ5
KQorQEAgLTE4OTksNiArMTkxNSwyNyBAQCBnc3Rfc291cF9odHRwX3NyY19xdWVyeSAoR3N0QmFz
ZVNyYyAqIGJzcmMsIEdzdFF1ZXJ5ICogcXVlcnkpCiAgICAgICAgfQogICAgICAgIHJldCA9IFRS
VUU7CiAgICAgICAgYnJlYWs7CkBAIC0xMDQsNyArMTA0LDcgQEAgaW5kZXggZmM3Y2JhNy4uMGQz
ZTg4NiAxMDA2NDQKICAgICAgICByZXQgPSBGQUxTRTsKICAgICAgICBicmVhazsKIGRpZmYgLS1n
aXQgYS9leHQvc291cC9nc3Rzb3VwaHR0cHNyYy5oIGIvZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMu
aAotaW5kZXggZGQwMTY1Ni4uOWM2YmI1YyAxMDA2NDQKK2luZGV4IGYxNDBmODBjNS4uNTJiMzJj
NzY4IDEwMDY0NAogLS0tIGEvZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuaAogKysrIGIvZXh0L3Nv
dXAvZ3N0c291cGh0dHBzcmMuaAogQEAgLTYwLDYgKzYwLDcgQEAgc3RydWN0IF9Hc3RTb3VwSFRU
UFNyYyB7CkBAIC0xMTMsOCArMTEzLDggQEAgaW5kZXggZGQwMTY1Ni4uOWM2YmI1YyAxMDA2NDQK
ICAgIFNvdXBTZXNzaW9uICpzZXNzaW9uOyAgICAgICAgLyogQXN5bmMgY29udGV4dC4gKi8KICsg
IFNvdXBDb29raWVKYXIgKmNvb2tpZV9qYXI7ICAgLyogVm9sYXRpbGUgSFRUUCBjb29raWUgc3Rv
cmFnZSAqLwogICAgU291cE1lc3NhZ2UgKm1zZzsgICAgICAgICAgICAvKiBSZXF1ZXN0IG1lc3Nh
Z2UuICovCi0gICBHc3RGbG93UmV0dXJuIHJldDsgICAgICAgICAgIC8qIFJldHVybiBjb2RlIGZy
b20gY2FsbGJhY2suICovCiAgICBnaW50IHJldHJ5X2NvdW50OyAgICAgICAgICAgIC8qIE51bWJl
ciBvZiByZXRyaWVzIHNpbmNlIHdlIHJlY2VpdmVkIGRhdGEgKi8KKyAgIGdpbnQgbWF4X3JldHJp
ZXM7ICAgICAgICAgICAgLyogTWF4aW11bSBudW1iZXIgb2YgcmV0cmllcyAqLwogLS0gCi0xLjgu
My4yCisyLjExLjAKIApkaWZmIC0tZ2l0IGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBs
dWdpbnMtZ29vZC0wMDA2LXF0ZGVtdXgtYWRkLWNvbnRleHQtZm9yLWEtcHJlZmVycmVkLXByb3Rl
Y3Rpb24ucGF0Y2ggYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAw
MDYtcXRkZW11eC1hZGQtY29udGV4dC1mb3ItYS1wcmVmZXJyZWQtcHJvdGVjdGlvbi5wYXRjaApp
bmRleCAwZGRmZWNlNDJmMDdmNWFlMGZlMmQ1ZTdkMmRiZjk4MmM3ZmE1Mzk5Li42N2U4NDA2NDU2
ZjMyYjU4MzgyNmNhMWVlMDY1MWVkZjQwNTg1MmMxIDEwMDY0NAotLS0gYS9Ub29scy9nc3RyZWFt
ZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDYtcXRkZW11eC1hZGQtY29udGV4dC1mb3It
YS1wcmVmZXJyZWQtcHJvdGVjdGlvbi5wYXRjaAorKysgYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hl
cy9nc3QtcGx1Z2lucy1nb29kLTAwMDYtcXRkZW11eC1hZGQtY29udGV4dC1mb3ItYS1wcmVmZXJy
ZWQtcHJvdGVjdGlvbi5wYXRjaApAQCAtMSw3ICsxLDcgQEAKLUZyb20gOWQ3MjAxY2E3NmU3ODc1
Y2RkZDEwNmRmMDZiNGQ3NjM3YzAyNTQ2NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20g
ZTA5YWI5NWFkMzkyNjQ3ODNiZjBlNTdkZmI4OTE2NWFkOWI4MzgwMiBNb24gU2VwIDE3IDAwOjAw
OjAwIDIwMDEKIEZyb206IFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyIDxjYWx2YXJpc0BpZ2FsaWEu
Y29tPgogRGF0ZTogV2VkLCAyMSBKdW4gMjAxNyAxNzo1OToyMSArMDIwMAotU3ViamVjdDogW1BB
VENIIDIvM10gcXRkZW11eDogYWRkIGNvbnRleHQgZm9yIGEgcHJlZmVycmVkIHByb3RlY3Rpb24K
K1N1YmplY3Q6IFtQQVRDSF0gcXRkZW11eDogYWRkIGNvbnRleHQgZm9yIGEgcHJlZmVycmVkIHBy
b3RlY3Rpb24KIAogcXRkZW11eCBzZWxlY3RlZCB0aGUgZmlyc3Qgc3lzdGVtIGNvcnJlc3BvbmRp
bmcgdG8gYSB3b3JraW5nIEdTdHJlYW1lcgogZGVjcnlwdG9yLiBXaXRoIHRoaXMgY2hhbmdlLCBi
ZWZvcmUgc2VsZWN0aW5nIHRoYXQgZGVjcnlwdG9yLCBxdGRlbXV4CkBAIC0zNiw3ICszNiw3IEBA
IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxMDcKICAyIGZp
bGVzIGNoYW5nZWQsIDE5NSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQogCiBkaWZmIC0t
Z2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYwotaW5kZXgg
MGE0MWIyNmYyLi5hZTU3YmRmOWIgMTAwNjQ0CitpbmRleCBmMGY4MzIwZTIuLmY3MTBkMjY4NSAx
MDA2NDQKIC0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5jCiArKysgYi9nc3QvaXNvbXA0L3F0ZGVt
dXguYwogQEAgLTUxMyw2ICs1MTMsOCBAQCBzdGF0aWMgR3N0SW5kZXggKmdzdF9xdGRlbXV4X2dl
dF9pbmRleCAoR3N0RWxlbWVudCAqIGVsZW1lbnQpOwpAQCAtNjQsNyArNjQsNyBAQCBpbmRleCAw
YTQxYjI2ZjIuLmFlNTdiZGY5YiAxMDA2NDQKICAgIGdfcXVldWVfaW5pdCAoJnF0ZGVtdXgtPnBy
b3RlY3Rpb25fZXZlbnRfcXVldWUpOwogICAgZ3N0X3NlZ21lbnRfaW5pdCAoJnF0ZGVtdXgtPnNl
Z21lbnQsIEdTVF9GT1JNQVRfVElNRSk7CiAgICBxdGRlbXV4LT50YWdfbGlzdCA9IGdzdF90YWdf
bGlzdF9uZXdfZW1wdHkgKCk7Ci1AQCAtMjExMyw2ICsyMTE3LDEwIEBAIGdzdF9xdGRlbXV4X3Jl
c2V0IChHc3RRVERlbXV4ICogcXRkZW11eCwgZ2Jvb2xlYW4gaGFyZCkKK0BAIC0yMTE0LDYgKzIx
MTgsMTAgQEAgZ3N0X3F0ZGVtdXhfcmVzZXQgKEdzdFFURGVtdXggKiBxdGRlbXV4LCBnYm9vbGVh
biBoYXJkKQogICAgICAgIGdfcHRyX2FycmF5X2ZyZWUgKHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lz
dGVtX2lkcywgVFJVRSk7CiAgICAgICAgcXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzID0g
TlVMTDsKICAgICAgfQpAQCAtNzUsNyArNzUsNyBAQCBpbmRleCAwYTQxYjI2ZjIuLmFlNTdiZGY5
YiAxMDA2NDQKICAgIH0gZWxzZSBpZiAocXRkZW11eC0+bXNzX21vZGUpIHsKICAgICAgZ3N0X2Zs
b3dfY29tYmluZXJfcmVzZXQgKHF0ZGVtdXgtPmZsb3djb21iaW5lcik7CiAgICAgIGZvciAobiA9
IDA7IG4gPCBxdGRlbXV4LT5uX3N0cmVhbXM7IG4rKykKLUBAIC0yNTkwLDYgKzI1OTgsMjggQEAg
Z3N0X3F0ZGVtdXhfY2hhbmdlX3N0YXRlIChHc3RFbGVtZW50ICogZWxlbWVudCwgR3N0U3RhdGVD
aGFuZ2UgdHJhbnNpdGlvbikKK0BAIC0yNjAwLDYgKzI2MDgsMjggQEAgZ3N0X3F0ZGVtdXhfY2hh
bmdlX3N0YXRlIChHc3RFbGVtZW50ICogZWxlbWVudCwgR3N0U3RhdGVDaGFuZ2UgdHJhbnNpdGlv
bikKICB9CiAgCiAgc3RhdGljIHZvaWQKQEAgLTEwNCw3ICsxMDQsNyBAQCBpbmRleCAwYTQxYjI2
ZjIuLmFlNTdiZGY5YiAxMDA2NDQKICBxdGRlbXV4X3BhcnNlX2Z0eXAgKEdzdFFURGVtdXggKiBx
dGRlbXV4LCBjb25zdCBndWludDggKiBidWZmZXIsIGdpbnQgbGVuZ3RoKQogIHsKICAgIC8qIGNv
dW50cyBhcyBoZWFkZXIgZGF0YSAqLwotQEAgLTM4MTksNiArMzg0OSw4IEBAIHF0ZGVtdXhfcGFy
c2VfcHNzaCAoR3N0UVREZW11eCAqIHF0ZGVtdXgsIEdOb2RlICogbm9kZSkKK0BAIC0zODI5LDYg
KzM4NTksOCBAQCBxdGRlbXV4X3BhcnNlX3Bzc2ggKEdzdFFURGVtdXggKiBxdGRlbXV4LCBHTm9k
ZSAqIG5vZGUpCiAgICBldmVudCA9IGdzdF9ldmVudF9uZXdfcHJvdGVjdGlvbiAoc3lzaWRfc3Ry
aW5nLCBwc3NoLAogICAgICAgIChwYXJlbnRfYm94X3R5cGUgPT0gRk9VUkNDX21vb3YpID8gImlz
b2JtZmYvbW9vdiIgOiAiaXNvYm1mZi9tb29mIik7CiAgICBmb3IgKGkgPSAwOyBpIDwgcXRkZW11
eC0+bl9zdHJlYW1zOyArK2kpIHsKQEAgLTExMyw3ICsxMTMsNyBAQCBpbmRleCAwYTQxYjI2ZjIu
LmFlNTdiZGY5YiAxMDA2NDQKICAgICAgZ19xdWV1ZV9wdXNoX3RhaWwgKCZxdGRlbXV4LT5zdHJl
YW1zW2ldLT5wcm90ZWN0aW9uX3NjaGVtZV9ldmVudF9xdWV1ZSwKICAgICAgICAgIGdzdF9ldmVu
dF9yZWYgKGV2ZW50KSk7CiAgICB9Ci1AQCAtNTUyOSw2ICs1NTYxLDggQEAgZ3N0X3F0ZGVtdXhf
ZGVjb3JhdGVfYW5kX3B1c2hfYnVmZmVyIChHc3RRVERlbXV4ICogcXRkZW11eCwKK0BAIC01NTM4
LDYgKzU1NzAsOCBAQCBnc3RfcXRkZW11eF9kZWNvcmF0ZV9hbmRfcHVzaF9idWZmZXIgKEdzdFFU
RGVtdXggKiBxdGRlbXV4LAogICAgICBHc3RFdmVudCAqZXZlbnQ7CiAgCiAgICAgIHdoaWxlICgo
ZXZlbnQgPSBnX3F1ZXVlX3BvcF9oZWFkICgmc3RyZWFtLT5wcm90ZWN0aW9uX3NjaGVtZV9ldmVu
dF9xdWV1ZSkpKSB7CkBAIC0xMjIsNyArMTIyLDcgQEAgaW5kZXggMGE0MWIyNmYyLi5hZTU3YmRm
OWIgMTAwNjQ0CiAgICAgICAgZ3N0X3BhZF9wdXNoX2V2ZW50IChzdHJlYW0tPnBhZCwgZXZlbnQp
OwogICAgICB9CiAgCi1AQCAtNzY4OCwxMSArNzcyMiwxNDEgQEAgcXRkZW11eF9kb19hbGxvY2F0
aW9uIChHc3RRVERlbXV4ICogcXRkZW11eCwgUXREZW11eFN0cmVhbSAqIHN0cmVhbSkKK0BAIC03
Njk2LDExICs3NzMwLDE0MSBAQCBxdGRlbXV4X2RvX2FsbG9jYXRpb24gKEdzdFFURGVtdXggKiBx
dGRlbXV4LCBRdERlbXV4U3RyZWFtICogc3RyZWFtKQogIH0KICAKICBzdGF0aWMgZ2Jvb2xlYW4K
QEAgLTI2NSw3ICsyNjUsNyBAQCBpbmRleCAwYTQxYjI2ZjIuLmFlNTdiZGY5YiAxMDA2NDQKICAK
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChxdGRlbXV4ICE9IE5VTEwsIEZBTFNFKTsKICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsIChzdHJlYW0gIT0gTlVMTCwgRkFMU0UpOwotQEAgLTc3MDgsMTcg
Kzc4NzIsNDEgQEAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3Byb3RlY3RlZF9jYXBzIChHc3RRVERl
bXV4ICogcXRkZW11eCwKK0BAIC03NzE2LDE3ICs3ODgwLDQxIEBAIGdzdF9xdGRlbXV4X2NvbmZp
Z3VyZV9wcm90ZWN0ZWRfY2FwcyAoR3N0UVREZW11eCAqIHF0ZGVtdXgsCiAgICAgICAgICAiY2Vu
YyBwcm90ZWN0aW9uIHN5c3RlbSBpbmZvcm1hdGlvbiBoYXMgYmVlbiBmb3VuZCIpOwogICAgICBy
ZXR1cm4gRkFMU0U7CiAgICB9CkBAIC0zMDksNyArMzA5LDcgQEAgaW5kZXggMGE0MWIyNmYyLi5h
ZTU3YmRmOWIgMTAwNjQ0CiArICBHU1RfREVCVUdfT0JKRUNUIChxdGRlbXV4LCAic2VsZWN0ZWQg
cHJvdGVjdGlvbiBzeXN0ZW0gaXMgJXMiLAogKyAgICAgIHNlbGVjdGVkX3N5c3RlbSk7CiArCi0g
ICBzID0gZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZSAoc3RyZWFtLT5jYXBzLCAwKTsKKyAgIHMgPSBn
c3RfY2Fwc19nZXRfc3RydWN0dXJlIChDVVJfU1RSRUFNIChzdHJlYW0pLT5jYXBzLCAwKTsKICAg
IGlmICghZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZSAocywgImFwcGxpY2F0aW9uL3gtY2VuYyIpKSB7
CiAgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChzLAogZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRk
ZW11eC5oIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKZGlmZiAtLWdpdCBhL1Rvb2xzL2dzdHJlYW1l
ci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwOC1xdGRlbXV4LWFsc28tcHVzaC1idWZmZXJz
LXdpdGhvdXQtZW5jcnlwdGlvbi1pbmZvLWluLnBhdGNoIGIvVG9vbHMvZ3N0cmVhbWVyL3BhdGNo
ZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA4LXF0ZGVtdXgtYWxzby1wdXNoLWJ1ZmZlcnMtd2l0aG91
dC1lbmNyeXB0aW9uLWluZm8taW4ucGF0Y2gKaW5kZXggOTUwMjFjY2JjMDRlMTBjNjRlYjFlNGFi
OTY2OTNiYmYwODg4MDk2ZC4uM2ZjMWZjZTRjY2VlNWZkOGI1NmEyZDAyYmU5NGE2ZGViMzE3ZmIz
NCAxMDA2NDQKLS0tIGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0w
MDA4LXF0ZGVtdXgtYWxzby1wdXNoLWJ1ZmZlcnMtd2l0aG91dC1lbmNyeXB0aW9uLWluZm8taW4u
cGF0Y2gKKysrIGIvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA4
LXF0ZGVtdXgtYWxzby1wdXNoLWJ1ZmZlcnMtd2l0aG91dC1lbmNyeXB0aW9uLWluZm8taW4ucGF0
Y2gKQEAgLTksMTEgKzksMTEgQEAgU3ViamVjdDogW1BBVENIXSBxdGRlbXV4OiBhbHNvIHB1c2gg
YnVmZmVycyB3aXRob3V0IGVuY3J5cHRpb24gaW5mbyBpbnN0ZWFkIG9mCiAgMSBmaWxlIGNoYW5n
ZWQsIDEyIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvZ3N0
L2lzb21wNC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYwotaW5kZXggNmIwYzgyMC4u
N2I3MTIzNyAxMDA2NDQKK2luZGV4IGYwZjgzMjAuLjNmMmMwMTYgMTAwNjQ0CiAtLS0gYS9nc3Qv
aXNvbXA0L3F0ZGVtdXguYwogKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKLUBAIC01NDIxLDIw
ICs1NDIxLDE4IEBAIGdzdF9xdGRlbXV4X2RlY29yYXRlX2FuZF9wdXNoX2J1ZmZlciAoR3N0UVRE
ZW11eCAqIHF0ZGVtdXgsCi0gICAgICAgICBnc3RfcGFkX3B1c2hfZXZlbnQgKHN0cmVhbS0+cGFk
LCBldmVudCk7CitAQCAtNTU0MSwyNiArNTU0MSwyNSBAQCBnc3RfcXRkZW11eF9kZWNvcmF0ZV9h
bmRfcHVzaF9idWZmZXIgKEdzdFFURGVtdXggKiBxdGRlbXV4LAorICAgICAgIGdzdF9wYWRfcHVz
aF9ldmVudCAoc3RyZWFtLT5wYWQsIGV2ZW50KTsKICAgICAgfQogIAogLSAgICBpZiAoaW5mby0+
Y3J5cHRvX2luZm8gPT0gTlVMTCkgewpAQCAtMjIsMjkgKzIyLDQyIEBAIGluZGV4IDZiMGM4MjAu
LjdiNzEyMzcgMTAwNjQ0CiAtICAgICAgZ290byBleGl0OwogLSAgICB9CiAtCi0tICAgIGluZGV4
ID0gc3RyZWFtLT5zYW1wbGVfaW5kZXggLSAoc3RyZWFtLT5uX3NhbXBsZXMgLSBpbmZvLT5jcnlw
dG9faW5mby0+bGVuKTsKKy0gICAgLyogVGhlIGVuZCBvZiB0aGUgY3J5cHRvX2luZm8gYXJyYXkg
bWF0Y2hlcyBvdXIgbl9zYW1wbGVzIHBvc2l0aW9uLAorLSAgICAgKiBzbyBjb3VudCBiYWNrd2Fy
ZCBmcm9tIHRoZXJlICovCistICAgIGluZGV4ID0gc3RyZWFtLT5zYW1wbGVfaW5kZXggLSBzdHJl
YW0tPm5fc2FtcGxlcyArIGluZm8tPmNyeXB0b19pbmZvLT5sZW47CiAtICAgIGlmIChHX0xJS0VM
WSAoaW5kZXggPj0gMCAmJiBpbmRleCA8IGluZm8tPmNyeXB0b19pbmZvLT5sZW4pKSB7CiAtICAg
ICAgLyogc3RlYWwgc3RydWN0dXJlIGZyb20gYXJyYXkgKi8KIC0gICAgICBjcnlwdG9faW5mbyA9
IGdfcHRyX2FycmF5X2luZGV4IChpbmZvLT5jcnlwdG9faW5mbywgaW5kZXgpOwogLSAgICAgIGdf
cHRyX2FycmF5X2luZGV4IChpbmZvLT5jcnlwdG9faW5mbywgaW5kZXgpID0gTlVMTDsKLS0gICAg
ICBHU1RfTE9HX09CSkVDVCAocXRkZW11eCwgImF0dGFjaGluZyBjZW5jIG1ldGFkYXRhIFsldV0i
LCBpbmRleCk7CistICAgICAgR1NUX0xPR19PQkpFQ1QgKHF0ZGVtdXgsICJhdHRhY2hpbmcgY2Vu
YyBtZXRhZGF0YSBbJXUvJXVdIiwgaW5kZXgsCistICAgICAgICAgIGluZm8tPmNyeXB0b19pbmZv
LT5sZW4pOwogLSAgICAgIGlmICghY3J5cHRvX2luZm8gfHwgIWdzdF9idWZmZXJfYWRkX3Byb3Rl
Y3Rpb25fbWV0YSAoYnVmLCBjcnlwdG9faW5mbykpCiAtICAgICAgICBHU1RfRVJST1JfT0JKRUNU
IChxdGRlbXV4LCAiZmFpbGVkIHRvIGF0dGFjaCBjZW5jIG1ldGFkYXRhIHRvIGJ1ZmZlciIpOwor
LSAgICB9IGVsc2UgeworLSAgICAgIEdTVF9JTkZPX09CSkVDVCAocXRkZW11eCwgIk5vIGNyeXB0
byBpbmZvIHdpdGggaW5kZXggJWQgYW5kIHNhbXBsZSAlZCIsCistICAgICAgICAgIGluZGV4LCBz
dHJlYW0tPnNhbXBsZV9pbmRleCk7CisrCiArICAgIGlmIChpbmZvLT5jcnlwdG9faW5mbyA9PSBO
VUxMKQogKyAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKHF0ZGVtdXgsICJjZW5jIG1ldGFkYXRhIGhh
c24ndCBiZWVuIHBhcnNlZCB5ZXQsIHB1c2hpbmcgYnVmZmVyIGFzIGlmIGl0IHdhc24ndCBlbmNy
eXB0ZWQiKTsKICsgICAgZWxzZSB7Ci0rICAgICAgaW5kZXggPSBzdHJlYW0tPnNhbXBsZV9pbmRl
eCAtIChzdHJlYW0tPm5fc2FtcGxlcyAtIGluZm8tPmNyeXB0b19pbmZvLT5sZW4pOworKyAgICAg
IC8qIFRoZSBlbmQgb2YgdGhlIGNyeXB0b19pbmZvIGFycmF5IG1hdGNoZXMgb3VyIG5fc2FtcGxl
cyBwb3NpdGlvbiwKKysgICAgICAgKiBzbyBjb3VudCBiYWNrd2FyZCBmcm9tIHRoZXJlICovCisr
ICAgICAgaW5kZXggPSBzdHJlYW0tPnNhbXBsZV9pbmRleCAtIHN0cmVhbS0+bl9zYW1wbGVzICsg
aW5mby0+Y3J5cHRvX2luZm8tPmxlbjsKICsgICAgICBpZiAoR19MSUtFTFkgKGluZGV4ID49IDAg
JiYgaW5kZXggPCBpbmZvLT5jcnlwdG9faW5mby0+bGVuKSkgewogKyAgICAgICAgLyogc3RlYWwg
c3RydWN0dXJlIGZyb20gYXJyYXkgKi8KICsgICAgICAgIGNyeXB0b19pbmZvID0gZ19wdHJfYXJy
YXlfaW5kZXggKGluZm8tPmNyeXB0b19pbmZvLCBpbmRleCk7CiArICAgICAgICBnX3B0cl9hcnJh
eV9pbmRleCAoaW5mby0+Y3J5cHRvX2luZm8sIGluZGV4KSA9IE5VTEw7Ci0rICAgICAgICBHU1Rf
TE9HX09CSkVDVCAocXRkZW11eCwgImF0dGFjaGluZyBjZW5jIG1ldGFkYXRhIFsldV0iLCBpbmRl
eCk7CisrICAgICAgICBHU1RfTE9HX09CSkVDVCAocXRkZW11eCwgImF0dGFjaGluZyBjZW5jIG1l
dGFkYXRhIFsldS8ldV0iLCBpbmRleCwKKysgICAgICAgICAgICBpbmZvLT5jcnlwdG9faW5mby0+
bGVuKTsKICsgICAgICAgIGlmICghY3J5cHRvX2luZm8gfHwgIWdzdF9idWZmZXJfYWRkX3Byb3Rl
Y3Rpb25fbWV0YSAoYnVmLCBjcnlwdG9faW5mbykpCiArICAgICAgICAgIEdTVF9FUlJPUl9PQkpF
Q1QgKHF0ZGVtdXgsICJmYWlsZWQgdG8gYXR0YWNoIGNlbmMgbWV0YWRhdGEgdG8gYnVmZmVyIik7
CisrICAgICAgfSBlbHNlIHsKKysgICAgICAgIEdTVF9JTkZPX09CSkVDVCAocXRkZW11eCwgIk5v
IGNyeXB0byBpbmZvIHdpdGggaW5kZXggJWQgYW5kIHNhbXBsZSAlZCIsCisrICAgICAgICAgICAg
aW5kZXgsIHN0cmVhbS0+c2FtcGxlX2luZGV4KTsKICsgICAgICB9CiAgICAgIH0KICAgIH0KICAK
IC0tIAotMS44LjMuMgorMi4xMS4wCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL2dzdHJlYW1lci9wYXRj
aGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwOS1xdGRlbXV4LWZpeC1hc3NlcnQtd2hlbi1tb29mLWNv
bnRhaW5zLW9uZS1zYW1wbGUucGF0Y2ggYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1
Z2lucy1nb29kLTAwMDktcXRkZW11eC1maXgtYXNzZXJ0LXdoZW4tbW9vZi1jb250YWlucy1vbmUt
c2FtcGxlLnBhdGNoCmluZGV4IDY2MTc5OGYxMTk1ZWQxZmFkOWViZDIxNjI1ZGQ4MzQwZjIzYzc3
YWQuLjA2NDMyNjk0OTUwNGM1OWQ0YjI2ZmU3Yzk3ZGI3NjU1YWRkMTc0MTggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwOS1xdGRlbXV4LWZp
eC1hc3NlcnQtd2hlbi1tb29mLWNvbnRhaW5zLW9uZS1zYW1wbGUucGF0Y2gKKysrIGIvVG9vbHMv
Z3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA5LXF0ZGVtdXgtZml4LWFzc2Vy
dC13aGVuLW1vb2YtY29udGFpbnMtb25lLXNhbXBsZS5wYXRjaApAQCAtNSw2ICs1LDkgQEAgU3Vi
amVjdDogW1BBVENIXSBxdGRlbXV4OiBmaXggYXNzZXJ0IHdoZW4gbW9vZiBjb250YWlucyBvbmUg
c2FtcGxlCiAKIEF2b2lkIGNvbXB1dGluZyBmcmFtZSByYXRlIHdoZW4gYSBzdHJlYW0gY29udGFp
biBtb29mIHdpdGggb25seSBvbmUKIHNhbXBsZSwgdG8gYXZvaWQgYW4gYXNzZXJ0LiBUaGUgbW9v
ZiBpcyBjb25zaWRlcmVkIGFzIHN0aWxsIHBpY3R1cmUuCisKK1sgTWVyZ2VkIGluIHVwc3RyZWFt
IGNvbW1pdCA3MjhhMTYyOWNmOWZkN2Y0YTcyODQ3N2JkYTFkMTNhMWVjYzIxOWJiIF0KKwogLS0t
CiAgZ3N0L2lzb21wNC9xdGRlbXV4LmMgfCAzICsrLQogIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2Vy
dGlvbnMoKyksIDEgZGVsZXRpb24oLSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>