<?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>56714</bug_id>
          
          <creation_ts>2011-03-19 13:18:22 -0700</creation_ts>
          <short_desc>Rename ThreadSafeShared to ThreadSafeRefCounted</short_desc>
          <delta_ts>2011-03-20 16:32:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>0</everconfirmed>
          <reporter name="Bill Budge">bbudge</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>370161</commentid>
    <comment_count>0</comment_count>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-03-19 13:18:22 -0700</bug_when>
    <thetext>Rename to make it clear that it&apos;s a ref counted object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370185</commentid>
    <comment_count>1</comment_count>
      <attachid>86275</attachid>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-03-19 17:47:42 -0700</bug_when>
    <thetext>Created attachment 86275
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370186</commentid>
    <comment_count>2</comment_count>
      <attachid>86276</attachid>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-03-19 17:57:15 -0700</bug_when>
    <thetext>Created attachment 86276
Proposed Patch

Removed some stray pasted text in header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370189</commentid>
    <comment_count>3</comment_count>
      <attachid>86276</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-19 18:02:51 -0700</bug_when>
    <thetext>Comment on attachment 86276
Proposed Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=86276&amp;action=review

Sounds like a good idea to me.  I see that it&apos;s on our list of renames we&apos;d like to do in the future.  Thanks!

&gt; Source/JavaScriptCore/wtf/CrossThreadRefCounted.h:41
&gt;      // Used to allowing sharing data across classes and threads (like ThreadedSafeShared).

Missed this one?

&gt; Source/JavaScriptGlue/gyp/JavaScriptGlue.gypi:1
&gt; -{
&gt; +ThreadSafeRefCounted{

Typo?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370190</commentid>
    <comment_count>4</comment_count>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-03-19 18:13:58 -0700</bug_when>
    <thetext>Hi Adam, let me fix that (tomorrow though). I want to double-check the chrome side to make sure nothing breaks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370211</commentid>
    <comment_count>5</comment_count>
      <attachid>86282</attachid>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-03-20 08:14:51 -0700</bug_when>
    <thetext>Created attachment 86282
Proposed Patch

Fixed 2 errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370218</commentid>
    <comment_count>6</comment_count>
      <attachid>86282</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-20 11:00:34 -0700</bug_when>
    <thetext>Comment on attachment 86282
Proposed Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370219</commentid>
    <comment_count>7</comment_count>
      <attachid>86282</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-20 11:03:15 -0700</bug_when>
    <thetext>Comment on attachment 86282
Proposed Patch

Rejecting attachment 86282 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=eseidel-cq-sf&apos;, &apos;ap...&quot; exit_code: 2

Last 500 characters of output:
ium/src/WorkerFileWriterCallbacksBridge.h
patching file Tools/ChangeLog
Hunk #1 succeeded at 1 with fuzz 1.
patching file Tools/DumpRenderTree/ForwardingHeaders/wtf/ThreadSafeRefCounted.h
patching file Tools/DumpRenderTree/ForwardingHeaders/wtf/ThreadSafeShared.h
rm &apos;Tools/DumpRenderTree/ForwardingHeaders/wtf/ThreadSafeShared.h&apos;
patching file Tools/Scripts/do-webcore-rename

Failed to run &quot;[u&apos;/Projects/CommitQueue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Adam Barth&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/8211380</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370220</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-20 11:20:18 -0700</bug_when>
    <thetext>The commit-queue hasn&apos;t been very good at renames recently.  We think it might be a recent regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370225</commentid>
    <comment_count>9</comment_count>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-03-20 12:44:27 -0700</bug_when>
    <thetext>Is this a problem with the patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370230</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-20 13:18:00 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Is this a problem with the patch?

Most likely not.  It&apos;s a problem with the tools.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370231</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-20 13:25:38 -0700</bug_when>
    <thetext>I would land this for you, but all my working copies have patches in the at the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370235</commentid>
    <comment_count>12</comment_count>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-03-20 13:40:50 -0700</bug_when>
    <thetext>No rush, but I&apos;m curious - do patches become stale over time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370236</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-20 13:46:21 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; No rush, but I&apos;m curious - do patches become stale over time?

They do, but hopefully we&apos;ll get this landed for you before that happens.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370240</commentid>
    <comment_count>14</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-03-20 15:07:14 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; No rush, but I&apos;m curious - do patches become stale over time?
&gt; 
&gt; They do, but hopefully we&apos;ll get this landed for you before that happens.

I&apos;ll try to land it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370246</commentid>
    <comment_count>15</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-03-20 16:32:12 -0700</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/81567</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86275</attachid>
            <date>2011-03-19 17:47:42 -0700</date>
            <delta_ts>2011-03-19 17:57:15 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>refcounted.txt</filename>
            <type>text/plain</type>
            <size>74729</size>
            <attacher name="Bill Budge">bbudge</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODE1NjIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAK
KzIwMTEtMDMtMTkgIEJpbGwgQnVkZ2UgIDxiYnVkZ2VAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBUaHJlYWRTYWZl
U2hhcmVkIHRvIFRocmVhZFNhZmVSZWZDb3VudGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjcxNAorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gRXhw
b3NlcyBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIEFQSS9KU0NsYXNzUmVmLmg6
CisgICAgICAgICogQVBJL09wYXF1ZUpTU3RyaW5nLmg6CisgICAgICAgICogR05VbWFrZWZpbGUu
YW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZ3lwaToKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvQXRvbWljcy5oOgorICAgICAg
ICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvQ3Jvc3NUaHJlYWRSZWZDb3Vu
dGVkLmg6CisgICAgICAgIChXVEY6OkNyb3NzVGhyZWFkUmVmQ291bnRlZDo6Q3Jvc3NUaHJlYWRS
ZWZDb3VudGVkKToKKyAgICAgICAgKFdURjo6Ojpjcm9zc1RocmVhZENvcHkpOgorICAgICAgICAq
IHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oOiBDb3BpZWQgZnJvbSB3dGYvVGhyZWFkU2FmZVNo
YXJlZC5oLgorICAgICAgICAoV1RGOjpUaHJlYWRTYWZlUmVmQ291bnRlZEJhc2U6OlRocmVhZFNh
ZmVSZWZDb3VudGVkQmFzZSk6CisgICAgICAgIChXVEY6OlRocmVhZFNhZmVSZWZDb3VudGVkQmFz
ZTo6cmVmKToKKyAgICAgICAgKFdURjo6VGhyZWFkU2FmZVJlZkNvdW50ZWRCYXNlOjpyZWZDb3Vu
dCk6CisgICAgICAgIChXVEY6OlRocmVhZFNhZmVSZWZDb3VudGVkQmFzZTo6ZGVyZWZCYXNlKToK
KyAgICAgICAgKFdURjo6VGhyZWFkU2FmZVJlZkNvdW50ZWQ6OlRocmVhZFNhZmVSZWZDb3VudGVk
KToKKyAgICAgICAgKiB3dGYvVGhyZWFkU2FmZVNoYXJlZC5oOiBSZW1vdmVkLgorICAgICAgICAq
IHd0Zi9UaHJlYWRpbmcuaDoKKwogMjAxMS0wMy0xOSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJv
Z2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDgxNTUzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC01NTEs
NyArNTUxLDcgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9UaHJlYWRpbmcuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJl
YWRpbmdQcmltaXRpdmVzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkaW5n
UHRocmVhZHMuY3BwIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFNhZmVTaGFy
ZWQuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFNwZWNpZmljLmggXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvVHlwZVRyYWl0cy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvVHlwZVRyYWl0cy5oIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5neXBpCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0xOTksNyArMTk5LDcgQEAK
ICAgICAgICAgICAgICd3dGYvU3RkTGliRXh0cmFzLmgnLAogICAgICAgICAgICAgJ3d0Zi9TdHJp
bmdFeHRyYXMuaCcsCiAgICAgICAgICAgICAnd3RmL1N0cmluZ0hhc2hlci5oJywKLSAgICAgICAg
ICAgICd3dGYvVGhyZWFkU2FmZVNoYXJlZC5oJywKKyAgICAgICAgICAgICd3dGYvVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQuaCcsCiAgICAgICAgICAgICAnd3RmL1RocmVhZFNwZWNpZmljLmgnLAogICAg
ICAgICAgICAgJ3d0Zi9UaHJlYWRpbmcuaCcsCiAgICAgICAgICAgICAnd3RmL1RocmVhZGluZ1By
aW1pdGl2ZXMuaCcsCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuaAko
cmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYu
aAkod29ya2luZyBjb3B5KQpAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgSlNDOjpXZWFr
R0NQdHI8SlNDOjpKU09iamVjdD4gY2FjaGVkUHJvdG90eXBlOwogfTsKIAotc3RydWN0IE9wYXF1
ZUpTQ2xhc3MgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxPcGFxdWVKU0NsYXNzPiB7CitzdHJ1
Y3QgT3BhcXVlSlNDbGFzcyA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxPcGFxdWVKU0Ns
YXNzPiB7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNDbGFzcz4gY3JlYXRlKGNvbnN0
IEpTQ2xhc3NEZWZpbml0aW9uKik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNDbGFz
cz4gY3JlYXRlTm9BdXRvbWF0aWNQcm90b3R5cGUoY29uc3QgSlNDbGFzc0RlZmluaXRpb24qKTsK
ICAgICB+T3BhcXVlSlNDbGFzcygpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9P
cGFxdWVKU1N0cmluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
T3BhcXVlSlNTdHJpbmcuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL09wYXF1ZUpTU3RyaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgSlNHbG9iYWxEYXRhOwogfQogCi1zdHJ1Y3QgT3Bh
cXVlSlNTdHJpbmcgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxPcGFxdWVKU1N0cmluZz4gewor
c3RydWN0IE9wYXF1ZUpTU3RyaW5nIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE9wYXF1
ZUpTU3RyaW5nPiB7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxPcGFxdWVKU1N0cmluZz4gY3Jl
YXRlKCkgLy8gbnVsbAogICAgIHsKQEAgLTU0LDcgKzU0LDcgQEAgc3RydWN0IE9wYXF1ZUpTU3Ry
aW5nIDogcHVibGljIFRocmVhZFNhZgogICAgIEpTQzo6SWRlbnRpZmllciBpZGVudGlmaWVyKEpT
Qzo6SlNHbG9iYWxEYXRhKikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIFdU
Rjo6VGhyZWFkU2FmZVNoYXJlZDxPcGFxdWVKU1N0cmluZz47CisgICAgZnJpZW5kIGNsYXNzIFdU
Rjo6VGhyZWFkU2FmZVJlZkNvdW50ZWQ8T3BhcXVlSlNTdHJpbmc+OwogCiAgICAgT3BhcXVlSlNT
dHJpbmcoKQogICAgICAgICA6IG1fY2hhcmFjdGVycygwKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNw
cm9qCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTk2NSw3ICs5NjUs
NyBAQAogCQkJPgogCQk8L0ZpbGU+CiAJCTxGaWxlCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0
ZlxUaHJlYWRTYWZlU2hhcmVkLmgiCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0ZlxUaHJlYWRT
YWZlUmVmQ291bnRlZC5oIgogCQkJPgogCQk8L0ZpbGU+CiAJCTxGaWxlCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtNTU1LDcgKzU1NSw3IEBACiAJCUJDMzEzNTY1MEYzMDJGQTMwMDNERkQzQSAvKiBE
ZWJ1Z2dlckFjdGl2YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMzMTM1NjMwRjMwMkZBMzAwM0RGRDNBIC8qIERlYnVnZ2VyQWN0aXZhdGlv
bi5jcHAgKi87IH07CiAJCUJDNUY3QkJFMTE4MjNCNTkwMDUyQzAyQyAvKiBBdG9taWNzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzVGN0JCQjExODIz
QjU5MDA1MkMwMkMgLyogQXRvbWljcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUJDNUY3QkJGMTE4MjNCNTkwMDUyQzAyQyAvKiBUaHJlYWRpbmdQ
cmltaXRpdmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzVGN0JCQzExODIzQjU5MDA1MkMwMkMgLyogVGhyZWFkaW5nUHJpbWl0aXZlcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUJDNUY3QkMwMTE4
MjNCNTkwMDUyQzAyQyAvKiBUaHJlYWRTYWZlU2hhcmVkLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzVGN0JCRDExODIzQjU5MDA1MkMwMkMgLyogVGhy
ZWFkU2FmZVNoYXJlZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUJDNUY3QkMwMTE4MjNCNTkwMDUyQzAyQyAvKiBUaHJlYWRTYWZlUmVmQ291bnRl
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1RjdC
QkQxMTgyM0I1OTAwNTJDMDJDIC8qIFRocmVhZFNhZmVSZWZDb3VudGVkLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM2QUFBRTUwRTFGNDI2NTAw
QUQ4N0Q4IC8qIENsYXNzSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM2QUFBRTQwRTFGNDI2NTAwQUQ4N0Q4IC8qIENsYXNzSW5mby5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNzU2RkM5MEUy
MDMxQjIwMERFN0QxMiAvKiBKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NTZGQzcwRTIwMzFCMjAwREU3RDEy
IC8qIEpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmggKi87IH07CiAJCUJDN0Y4RkI5MEUxOUQxQzMw
MDg2MzJDMCAvKiBKU051bWJlckNlbGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDN0Y4RkI4MEUxOUQxQzMwMDg2MzJDMCAvKiBKU051bWJlckNlbGwu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE3
Miw3ICsxMTcyLDcgQEAKIAkJQkMzMzdCRUEwRTFCMDBDQjAwNzY5MThBIC8qIEVycm9yLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVycm9yLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1RjdCQkIxMTgyM0I1OTAwNTJDMDJDIC8qIEF0b21pY3Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXRvbWljcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzVGN0JCQzExODIzQjU5MDA1MkMwMkMgLyogVGhyZWFkaW5n
UHJpbWl0aXZlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaHJlYWRpbmdQ
cmltaXRpdmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDNUY3QkJEMTE4MjNC
NTkwMDUyQzAyQyAvKiBUaHJlYWRTYWZlU2hhcmVkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFRocmVhZFNhZmVTaGFyZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQkM1RjdCQkQxMTgyM0I1OTAwNTJDMDJDIC8qIFRocmVhZFNhZmVSZWZDb3VudGVkLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRocmVhZFNhZmVSZWZDb3VudGVkLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNkFBQUU0MEUxRjQyNjUwMEFEODdEOCAvKiBD
bGFzc0luZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xhc3NJbmZvLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzU2RkM2MEUyMDMxQjIwMERFN0QxMiAv
KiBKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDNzU2RkM3MEUyMDMxQjIwMERFN0QxMiAvKiBKU0dsb2JhbE9iamVjdEZ1
bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0dsb2JhbE9iamVj
dEZ1bmN0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY4Miw3ICsxNjgy
LDcgQEAKIAkJCQlFMUVFNzkyMjBENkM5NUNEMDBGRUEzQkEgLyogVGhyZWFkaW5nLmggKi8sCiAJ
CQkJQkM1RjdCQkMxMTgyM0I1OTAwNTJDMDJDIC8qIFRocmVhZGluZ1ByaW1pdGl2ZXMuaCAqLywK
IAkJCQlFMUVFNzkzQzBENkM5QjkyMDBGRUEzQkEgLyogVGhyZWFkaW5nUHRocmVhZHMuY3BwICov
LAotCQkJCUJDNUY3QkJEMTE4MjNCNTkwMDUyQzAyQyAvKiBUaHJlYWRTYWZlU2hhcmVkLmggKi8s
CisJCQkJQkM1RjdCQkQxMTgyM0I1OTAwNTJDMDJDIC8qIFRocmVhZFNhZmVSZWZDb3VudGVkLmgg
Ki8sCiAJCQkJRTFCN0M4QkQwREEzQTMzNjAwNzRCMERDIC8qIFRocmVhZFNwZWNpZmljLmggKi8s
CiAJCQkJMEIzMzBDMjYwRjM4QzYyMzAwNjkyREUzIC8qIFR5cGVUcmFpdHMuY3BwICovLAogCQkJ
CTBCNEQ3RTYyMEYzMTlBQzgwMEFEN0U1OCAvKiBUeXBlVHJhaXRzLmggKi8sCkBAIC0yNDgwLDcg
KzI0ODAsNyBAQAogCQkJCTE4QkFCNTU0MTBEQUUwNjYwMDBEOTQ1QiAvKiBUaHJlYWRJZGVudGlm
aWVyRGF0YVB0aHJlYWRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ3MDBFMTZGNUNEMDBC
MzQ0NjAgLyogVGhyZWFkaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVGN0JCRjExODIzQjU5
MDA1MkMwMkMgLyogVGhyZWFkaW5nUHJpbWl0aXZlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkM1
RjdCQzAxMTgyM0I1OTAwNTJDMDJDIC8qIFRocmVhZFNhZmVTaGFyZWQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUJDNUY3QkMwMTE4MjNCNTkwMDUyQzAyQyAvKiBUaHJlYWRTYWZlUmVmQ291bnRlZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NzEwRTE2RjVDRDAwQjM0NDYwIC8qIFRocmVhZFNw
ZWNpZmljLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzM4NjU1NjExODY5N0I0MDA1NDAyNzkgLyog
VGh1bmtHZW5lcmF0b3JzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEE0MkU0MDBGNEY2MEVFMDA1
OTkwOTkgLyogVGltZW91dENoZWNrZXIuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9BdG9taWNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9BdG9taWNzLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9BdG9taWNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4LDcgQEAKIG5h
bWVzcGFjZSBXVEYgewogCiAjaWYgT1MoV0lORE9XUykKLSNkZWZpbmUgV1RGX1VTRV9MT0NLRlJF
RV9USFJFQURTQUZFU0hBUkVEIDEKKyNkZWZpbmUgV1RGX1VTRV9MT0NLRlJFRV9USFJFQURTQUZF
UkVGQ09VTlRFRCAxCiAKICNpZiBDT01QSUxFUihNSU5HVykgfHwgQ09NUElMRVIoTVNWQzdfT1Jf
TE9XRVIpIHx8IE9TKFdJTkNFKQogaW5saW5lIGludCBhdG9taWNJbmNyZW1lbnQoaW50KiBhZGRl
bmQpIHsgcmV0dXJuIEludGVybG9ja2VkSW5jcmVtZW50KHJlaW50ZXJwcmV0X2Nhc3Q8bG9uZyo+
KGFkZGVuZCkpOyB9CkBAIC04OSw3ICs4OSw3IEBAIGlubGluZSBpbnQgYXRvbWljRGVjcmVtZW50
KGludCB2b2xhdGlsZSoKICNlbmRpZgogCiAjZWxpZiBPUyhEQVJXSU4pCi0jZGVmaW5lIFdURl9V
U0VfTE9DS0ZSRUVfVEhSRUFEU0FGRVNIQVJFRCAxCisjZGVmaW5lIFdURl9VU0VfTE9DS0ZSRUVf
VEhSRUFEU0FGRVJFRkNPVU5URUQgMQogCiBpbmxpbmUgaW50IGF0b21pY0luY3JlbWVudChpbnQg
dm9sYXRpbGUqIGFkZGVuZCkgeyByZXR1cm4gT1NBdG9taWNJbmNyZW1lbnQzMkJhcnJpZXIoY29u
c3RfY2FzdDxpbnQqPihhZGRlbmQpKTsgfQogaW5saW5lIGludCBhdG9taWNEZWNyZW1lbnQoaW50
IHZvbGF0aWxlKiBhZGRlbmQpIHsgcmV0dXJuIE9TQXRvbWljRGVjcmVtZW50MzJCYXJyaWVyKGNv
bnN0X2Nhc3Q8aW50Kj4oYWRkZW5kKSk7IH0KQEAgLTEwMCw3ICsxMDAsNyBAQCBpbmxpbmUgaW50
IGF0b21pY0luY3JlbWVudChpbnQgdm9sYXRpbGUqCiBpbmxpbmUgaW50IGF0b21pY0RlY3JlbWVu
dChpbnQgdm9sYXRpbGUqIGFkZGVuZCkgeyByZXR1cm4gYW5kcm9pZF9hdG9taWNfZGVjKGFkZGVu
ZCk7IH0KIAogI2VsaWYgQ09NUElMRVIoR0NDKSAmJiAhQ1BVKFNQQVJDNjQpICYmICFPUyhTWU1C
SUFOKSAvLyBzaXplb2YoX0F0b21pY193b3JkKSAhPSBzaXplb2YoaW50KSBvbiBzcGFyYzY0IGdj
YwotI2RlZmluZSBXVEZfVVNFX0xPQ0tGUkVFX1RIUkVBRFNBRkVTSEFSRUQgMQorI2RlZmluZSBX
VEZfVVNFX0xPQ0tGUkVFX1RIUkVBRFNBRkVSRUZDT1VOVEVEIDEKIAogaW5saW5lIGludCBhdG9t
aWNJbmNyZW1lbnQoaW50IHZvbGF0aWxlKiBhZGRlbmQpIHsgcmV0dXJuIF9fZ251X2N4eDo6X19l
eGNoYW5nZV9hbmRfYWRkKGFkZGVuZCwgMSkgKyAxOyB9CiBpbmxpbmUgaW50IGF0b21pY0RlY3Jl
bWVudChpbnQgdm9sYXRpbGUqIGFkZGVuZCkgeyByZXR1cm4gX19nbnVfY3h4OjpfX2V4Y2hhbmdl
X2FuZF9hZGQoYWRkZW5kLCAtMSkgLSAxOyB9CkBAIC0xMDksNyArMTA5LDcgQEAgaW5saW5lIGlu
dCBhdG9taWNEZWNyZW1lbnQoaW50IHZvbGF0aWxlKgogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAot
I2lmIFVTRShMT0NLRlJFRV9USFJFQURTQUZFU0hBUkVEKQorI2lmIFVTRShMT0NLRlJFRV9USFJF
QURTQUZFUkVGQ09VTlRFRCkKIHVzaW5nIFdURjo6YXRvbWljRGVjcmVtZW50OwogdXNpbmcgV1RG
OjphdG9taWNJbmNyZW1lbnQ7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw3IEBAIFNF
VChXVEZfSEVBREVSUwogICAgIFRDU3BpbkxvY2suaAogICAgIFRDU3lzdGVtQWxsb2MuaAogICAg
IFRocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuaAotICAgIFRocmVhZFNhZmVTaGFyZWQuaAor
ICAgIFRocmVhZFNhZmVSZWZDb3VudGVkLmgKICAgICBUaHJlYWRTcGVjaWZpYy5oCiAgICAgVGhy
ZWFkaW5nLmgKICAgICBUaHJlYWRpbmdQcmltaXRpdmVzLmgKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvQ3Jvc3NUaHJlYWRSZWZDb3VudGVkLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9Dcm9zc1RocmVhZFJlZkNvdW50ZWQuaAkocmV2aXNpb24gODE1
NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0Nyb3NzVGhyZWFkUmVmQ291bnRlZC5o
CSh3b3JraW5nIGNvcHkpCkBAIC00MCw4ICs0MCw4IEBAIG5hbWVzcGFjZSBXVEYgewogCiAgICAg
Ly8gVXNlZCB0byBhbGxvd2luZyBzaGFyaW5nIGRhdGEgYWNyb3NzIGNsYXNzZXMgYW5kIHRocmVh
ZHMgKGxpa2UgVGhyZWFkZWRTYWZlU2hhcmVkKS4KICAgICAvLwotICAgIC8vIFdoeSBub3QganVz
dCB1c2UgVGhyZWFkU2FmZVNoYXJlZD8KLSAgICAvLyBUaHJlYWRTYWZlU2hhcmVkIGNhbiBoYXZl
IGEgc2lnbmlmaWNhbnQgcGVyZiBpbXBhY3Qgd2hlbiB1c2VkIGluIGxvdyBsZXZlbCBjbGFzc2Vz
CisgICAgLy8gV2h5IG5vdCBqdXN0IHVzZSBUaHJlYWRTYWZlUmVmQ291bnRlZD8KKyAgICAvLyBU
aHJlYWRTYWZlUmVmQ291bnRlZCBjYW4gaGF2ZSBhIHNpZ25pZmljYW50IHBlcmYgaW1wYWN0IHdo
ZW4gdXNlZCBpbiBsb3cgbGV2ZWwgY2xhc3NlcwogICAgIC8vIChsaWtlIFVTdHJpbmcpIHRoYXQg
Z2V0IHJlZi9kZXJlZidlZCBhIGxvdC4gVGhpcyBjbGFzcyBoYXMgdGhlIGJlbmVmaXQgb2YgZG9p
bmcgZmFzdCByZWYKICAgICAvLyBjb3VudHMgbGlrZSBSZWZQdHIgd2hlbmV2ZXIgcG9zc2libGUs
IGJ1dCBpdCBoYXMgdGhlIGRvd25zaWRlIHRoYXQgeW91IG5lZWQgdG8gY29weSBpdAogICAgIC8v
IHRvIHVzZSBpdCBvbiBhbm90aGVyIHRocmVhZC4KQEAgLTcyLDcgKzcyLDcgQEAgbmFtZXNwYWNl
IFdURiB7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIENyb3NzVGhyZWFkUmVm
Q291bnRlZChUKiBkYXRhLCBUaHJlYWRTYWZlU2hhcmVkQmFzZSogdGhyZWFkZWRDb3VudGVyKQor
ICAgICAgICBDcm9zc1RocmVhZFJlZkNvdW50ZWQoVCogZGF0YSwgVGhyZWFkU2FmZVJlZkNvdW50
ZWRCYXNlKiB0aHJlYWRlZENvdW50ZXIpCiAgICAgICAgICAgICA6IG1fdGhyZWFkU2FmZVJlZkNv
dW50ZXIodGhyZWFkZWRDb3VudGVyKQogICAgICAgICAgICAgLCBtX2RhdGEoZGF0YSkKICNpZm5k
ZWYgTkRFQlVHCkBAIC05Nyw3ICs5Nyw3IEBAIG5hbWVzcGFjZSBXVEYgewogI2VuZGlmCiAKICAg
ICAgICAgUmVmQ291bnRlZEJhc2UgbV9yZWZDb3VudGVyOwotICAgICAgICBUaHJlYWRTYWZlU2hh
cmVkQmFzZSogbV90aHJlYWRTYWZlUmVmQ291bnRlcjsKKyAgICAgICAgVGhyZWFkU2FmZVJlZkNv
dW50ZWRCYXNlKiBtX3RocmVhZFNhZmVSZWZDb3VudGVyOwogICAgICAgICBUKiBtX2RhdGE7CiAj
aWZuZGVmIE5ERUJVRwogICAgICAgICBUaHJlYWRJZGVudGlmaWVyIG1fdGhyZWFkSWQ7CkBAIC0x
NTQsNyArMTU0LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIGlmIChtX3RocmVhZFNhZmVS
ZWZDb3VudGVyKQogICAgICAgICAgICAgbV90aHJlYWRTYWZlUmVmQ291bnRlci0+cmVmKCk7CiAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fdGhyZWFkU2FmZVJlZkNvdW50ZXIgPSBuZXcgVGhy
ZWFkU2FmZVNoYXJlZEJhc2UoMik7CisgICAgICAgICAgICBtX3RocmVhZFNhZmVSZWZDb3VudGVy
ID0gbmV3IFRocmVhZFNhZmVSZWZDb3VudGVkQmFzZSgyKTsKIAogICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IENyb3NzVGhyZWFkUmVmQ291bnRlZDxUPihtX2RhdGEsIG1fdGhyZWFkU2FmZVJl
ZkNvdW50ZXIpKTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVh
ZFNhZmVSZWZDb3VudGVkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oCShyZXZpc2lvbiA4MTU1MykJKGZyb20gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRTYWZlU2hhcmVkLmg6ODE1NTMpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3IEp1c3Rp
biBIYXlnb29kIChqaGF5Z29vZEByZWFrdGl4LmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorICog
My4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5v
ciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKgorICogTm90ZTogVGhlIGltcGxlbWVu
dGF0aW9ucyBvZiBJbnRlcmxvY2tlZEluY3JlbWVudCBhbmQgSW50ZXJsb2NrZWREZWNyZW1lbnQg
YXJlIGJhc2VkCisgKiBvbiBhdG9taWNfaW5jcmVtZW50IGFuZCBhdG9taWNfZXhjaGFuZ2VfYW5k
X2FkZCBmcm9tIHRoZSBCb29zdCBDKysgTGlicmFyeS4gVGhlIGxpY2Vuc2UKKyAqIGlzIHZpcnR1
YWxseSBpZGVudGljYWwgdG8gdGhlIEFwcGxlIGxpY2Vuc2UgYWJvdmUgYnV0IGlzIGluY2x1ZGVk
IGhlcmUgZm9yIGNvbXBsZXRlbmVzcy4KKyAqCisgKiBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlIC0g
VmVyc2lvbiAxLjAgLSBBdWd1c3QgMTd0aCwgMjAwMworICogCisgKiBQZXJtaXNzaW9uIGlzIGhl
cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvciBvcmdhbml6YXRp
b24KKyAqIG9idGFpbmluZyBhIGNvcHkgb2YgdGhlIHNvZnR3YXJlIGFuZCBhY2NvbXBhbnlpbmcg
ZG9jdW1lbnRhdGlvbiBjb3ZlcmVkIGJ5CisgKiB0aGlzIGxpY2Vuc2UgKHRoZSAiU29mdHdhcmUi
KSB0byB1c2UsIHJlcHJvZHVjZSwgZGlzcGxheSwgZGlzdHJpYnV0ZSwKKyAqIGV4ZWN1dGUsIGFu
ZCB0cmFuc21pdCB0aGUgU29mdHdhcmUsIGFuZCB0byBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3Mg
b2YgdGhlCisgKiBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCB0aGlyZC1wYXJ0aWVzIHRvIHdob20g
dGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0bworICogZG8gc28sIGFsbCBzdWJqZWN0IHRvIHRo
ZSBmb2xsb3dpbmc6CisgKiAKKyAqIFRoZSBjb3B5cmlnaHQgbm90aWNlcyBpbiB0aGUgU29mdHdh
cmUgYW5kIHRoaXMgZW50aXJlIHN0YXRlbWVudCwgaW5jbHVkaW5nCisgKiB0aGUgYWJvdmUgbGlj
ZW5zZSBncmFudCwgdGhpcyByZXN0cmljdGlvbiBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LAorICogbXVzdCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgaW4g
d2hvbGUgb3IgaW4gcGFydCwgYW5kCisgKiBhbGwgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU29m
dHdhcmUsIHVubGVzcyBzdWNoIGNvcGllcyBvciBkZXJpdmF0aXZlCisgKiB3b3JrcyBhcmUgc29s
ZWx5IGluIHRoZSBmb3JtIG9mIG1hY2hpbmUtZXhlY3V0YWJsZSBvYmplY3QgY29kZSBnZW5lcmF0
ZWQgYnkKKyAqIGEgc291cmNlIGxhbmd1YWdlIHByb2Nlc3Nvci4KKyAqIAorICogVEhFIFNPRlRX
QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVY
UFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UsIFRJVExFIEFORCBOT04tSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVAorICogU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SIEFOWU9ORSBESVNUUklCVVRJTkcgVEhFIFNPRlRX
QVJFIEJFIExJQUJMRQorICogRk9SIEFOWSBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9V
VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI
RVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworCisjaWZuZGVmIFRocmVhZFNh
ZmVTaGFyZWRfaAorI2RlZmluZSBUaHJlYWRTYWZlU2hhcmVkX2gKKworI2luY2x1ZGUgIlBsYXRm
b3JtLmgiCisKKyNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRp
bmdQcmltaXRpdmVzLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBUaHJlYWRTYWZlU2hh
cmVkQmFzZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGhyZWFkU2FmZVNoYXJlZEJhc2Up
OyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBUaHJlYWRTYWZlU2hhcmVk
QmFzZShpbnQgaW5pdGlhbFJlZkNvdW50ID0gMSkKKyAgICAgICAgOiBtX3JlZkNvdW50KGluaXRp
YWxSZWZDb3VudCkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCByZWYoKQorICAgIHsKKyNpZiBV
U0UoTE9DS0ZSRUVfVEhSRUFEU0FGRVNIQVJFRCkKKyAgICAgICAgYXRvbWljSW5jcmVtZW50KCZt
X3JlZkNvdW50KTsKKyNlbHNlCisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsK
KyAgICAgICAgKyttX3JlZkNvdW50OworI2VuZGlmCisgICAgfQorCisgICAgYm9vbCBoYXNPbmVS
ZWYoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJlZkNvdW50KCkgPT0gMTsKKyAgICB9CisKKyAg
ICBpbnQgcmVmQ291bnQoKSBjb25zdAorICAgIHsKKyNpZiAhVVNFKExPQ0tGUkVFX1RIUkVBRFNB
RkVTSEFSRUQpCisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyNlbmRpZgor
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50IGNvbnN0IHZvbGF0aWxlICY+KG1fcmVmQ291
bnQpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIC8vIFJldHVybnMgd2hldGhlciB0aGUgcG9p
bnRlciBzaG91bGQgYmUgZnJlZWQgb3Igbm90LgorICAgIGJvb2wgZGVyZWZCYXNlKCkKKyAgICB7
CisjaWYgVVNFKExPQ0tGUkVFX1RIUkVBRFNBRkVTSEFSRUQpCisgICAgICAgIGlmIChhdG9taWNE
ZWNyZW1lbnQoJm1fcmVmQ291bnQpIDw9IDApCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyNl
bHNlCisgICAgICAgIGludCByZWZDb3VudDsKKyAgICAgICAgeworICAgICAgICAgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgICAgICAgICAgLS1tX3JlZkNvdW50OworICAgICAg
ICAgICAgcmVmQ291bnQgPSBtX3JlZkNvdW50OworICAgICAgICB9CisgICAgICAgIGlmIChyZWZD
b3VudCA8PSAwKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKworcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPgorICAg
IGZyaWVuZCBjbGFzcyBDcm9zc1RocmVhZFJlZkNvdW50ZWQ7CisKKyAgICBpbnQgbV9yZWZDb3Vu
dDsKKyNpZiAhVVNFKExPQ0tGUkVFX1RIUkVBRFNBRkVTSEFSRUQpCisgICAgbXV0YWJsZSBNdXRl
eCBtX211dGV4OworI2VuZGlmCit9OworCit0ZW1wbGF0ZTxjbGFzcyBUPiBjbGFzcyBUaHJlYWRT
YWZlU2hhcmVkIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWRCYXNlIHsKK3B1YmxpYzoKKyAgICB2
b2lkIGRlcmVmKCkKKyAgICB7CisgICAgICAgIGlmIChkZXJlZkJhc2UoKSkKKyAgICAgICAgICAg
IGRlbGV0ZSBzdGF0aWNfY2FzdDxUKj4odGhpcyk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAg
VGhyZWFkU2FmZVNoYXJlZCgpCisgICAgeworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdU
RgorCit1c2luZyBXVEY6OlRocmVhZFNhZmVTaGFyZWQ7CisKKyNlbmRpZiAvLyBUaHJlYWRTYWZl
U2hhcmVkX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkU2FmZVJlZkNv
dW50ZWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFNh
ZmVSZWZDb3VudGVkLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBA
QAogICogYXJlIG1ldDoKICAqCiAgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4gVGhyZWFkU2FmZVJlZkNvdW50ZWQKICAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAogICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKICAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKQEAgLTU2LDggKzU2LDggQEAKICAqIERFQUxJTkdTIElO
IFRIRSBTT0ZUV0FSRS4KICAqLwogCi0jaWZuZGVmIFRocmVhZFNhZmVTaGFyZWRfaAotI2RlZmlu
ZSBUaHJlYWRTYWZlU2hhcmVkX2gKKyNpZm5kZWYgVGhyZWFkU2FmZVJlZkNvdW50ZWRfaAorI2Rl
ZmluZSBUaHJlYWRTYWZlUmVmQ291bnRlZF9oCiAKICNpbmNsdWRlICJQbGF0Zm9ybS5oIgogCkBA
IC02NiwxNyArNjYsMTggQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLWNsYXNzIFRocmVhZFNhZmVT
aGFyZWRCYXNlIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShUaHJlYWRTYWZlU2hhcmVkQmFz
ZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworY2xhc3MgVGhyZWFkU2FmZVJlZkNvdW50ZWRC
YXNlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShUaHJlYWRTYWZlUmVmQ291bnRlZEJhc2Up
OworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFRocmVhZFNhZmVT
aGFyZWRCYXNlKGludCBpbml0aWFsUmVmQ291bnQgPSAxKQorICAgIFRocmVhZFNhZmVSZWZDb3Vu
dGVkQmFzZShpbnQgaW5pdGlhbFJlZkNvdW50ID0gMSkKICAgICAgICAgOiBtX3JlZkNvdW50KGlu
aXRpYWxSZWZDb3VudCkKICAgICB7CiAgICAgfQogCiAgICAgdm9pZCByZWYoKQogICAgIHsKLSNp
ZiBVU0UoTE9DS0ZSRUVfVEhSRUFEU0FGRVNIQVJFRCkKKyNpZiBVU0UoTE9DS0ZSRUVfVEhSRUFE
U0FGRVJFRkNPVU5URUQpCiAgICAgICAgIGF0b21pY0luY3JlbWVudCgmbV9yZWZDb3VudCk7CiAj
ZWxzZQogICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CkBAIC05MSw3ICs5Miw3
IEBAIHB1YmxpYzoKIAogICAgIGludCByZWZDb3VudCgpIGNvbnN0CiAgICAgewotI2lmICFVU0Uo
TE9DS0ZSRUVfVEhSRUFEU0FGRVNIQVJFRCkKKyNpZiAhVVNFKExPQ0tGUkVFX1RIUkVBRFNBRkVS
RUZDT1VOVEVEKQogICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CiAjZW5kaWYK
ICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludCBjb25zdCB2b2xhdGlsZSAmPihtX3JlZkNv
dW50KTsKQEAgLTEwMSw3ICsxMDIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gUmV0dXJucyB3aGV0
aGVyIHRoZSBwb2ludGVyIHNob3VsZCBiZSBmcmVlZCBvciBub3QuCiAgICAgYm9vbCBkZXJlZkJh
c2UoKQogICAgIHsKLSNpZiBVU0UoTE9DS0ZSRUVfVEhSRUFEU0FGRVNIQVJFRCkKKyNpZiBVU0Uo
TE9DS0ZSRUVfVEhSRUFEU0FGRVJFRkNPVU5URUQpCiAgICAgICAgIGlmIChhdG9taWNEZWNyZW1l
bnQoJm1fcmVmQ291bnQpIDw9IDApCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCkBA
IC0xMjIsMTIgKzEyMywxMiBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBDcm9zc1RocmVh
ZFJlZkNvdW50ZWQ7CiAKICAgICBpbnQgbV9yZWZDb3VudDsKLSNpZiAhVVNFKExPQ0tGUkVFX1RI
UkVBRFNBRkVTSEFSRUQpCisjaWYgIVVTRShMT0NLRlJFRV9USFJFQURTQUZFUkVGQ09VTlRFRCkK
ICAgICBtdXRhYmxlIE11dGV4IG1fbXV0ZXg7CiAjZW5kaWYKIH07CiAKLXRlbXBsYXRlPGNsYXNz
IFQ+IGNsYXNzIFRocmVhZFNhZmVTaGFyZWQgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZEJhc2Ug
ewordGVtcGxhdGU8Y2xhc3MgVD4gY2xhc3MgVGhyZWFkU2FmZVJlZkNvdW50ZWQgOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWRCYXNlIHsKIHB1YmxpYzoKICAgICB2b2lkIGRlcmVmKCkKICAg
ICB7CkBAIC0xMzYsMTMgKzEzNywxMyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0g
ICAgVGhyZWFkU2FmZVNoYXJlZCgpCisgICAgVGhyZWFkU2FmZVJlZkNvdW50ZWQoKQogICAgIHsK
ICAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAotdXNpbmcgV1RGOjpUaHJlYWRTYWZl
U2hhcmVkOwordXNpbmcgV1RGOjpUaHJlYWRTYWZlUmVmQ291bnRlZDsKIAotI2VuZGlmIC8vIFRo
cmVhZFNhZmVTaGFyZWRfaAorI2VuZGlmIC8vIFRocmVhZFNhZmVSZWZDb3VudGVkX2gKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkU2FmZVNoYXJlZC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkU2FmZVNoYXJlZC5oCShyZXZpc2lv
biA4MTU1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkU2FmZVNoYXJlZC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDE0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA3LCAyMDA4LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHly
aWdodCAoQykgMjAwNyBKdXN0aW4gSGF5Z29vZCAoamhheWdvb2RAcmVha3RpeC5jb20pCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLiAKLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLiAKLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVy
LCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4gCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
Ci0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICoKLSAq
IE5vdGU6IFRoZSBpbXBsZW1lbnRhdGlvbnMgb2YgSW50ZXJsb2NrZWRJbmNyZW1lbnQgYW5kIElu
dGVybG9ja2VkRGVjcmVtZW50IGFyZSBiYXNlZAotICogb24gYXRvbWljX2luY3JlbWVudCBhbmQg
YXRvbWljX2V4Y2hhbmdlX2FuZF9hZGQgZnJvbSB0aGUgQm9vc3QgQysrIExpYnJhcnkuIFRoZSBs
aWNlbnNlCi0gKiBpcyB2aXJ0dWFsbHkgaWRlbnRpY2FsIHRvIHRoZSBBcHBsZSBsaWNlbnNlIGFi
b3ZlIGJ1dCBpcyBpbmNsdWRlZCBoZXJlIGZvciBjb21wbGV0ZW5lc3MuCi0gKgotICogQm9vc3Qg
U29mdHdhcmUgTGljZW5zZSAtIFZlcnNpb24gMS4wIC0gQXVndXN0IDE3dGgsIDIwMDMKLSAqIAot
ICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw
ZXJzb24gb3Igb3JnYW5pemF0aW9uCi0gKiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoZSBzb2Z0d2Fy
ZSBhbmQgYWNjb21wYW55aW5nIGRvY3VtZW50YXRpb24gY292ZXJlZCBieQotICogdGhpcyBsaWNl
bnNlICh0aGUgIlNvZnR3YXJlIikgdG8gdXNlLCByZXByb2R1Y2UsIGRpc3BsYXksIGRpc3RyaWJ1
dGUsCi0gKiBleGVjdXRlLCBhbmQgdHJhbnNtaXQgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcHJlcGFy
ZSBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZQotICogU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgdGhp
cmQtcGFydGllcyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8KLSAqIGRvIHNv
LCBhbGwgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nOgotICogCi0gKiBUaGUgY29weXJpZ2h0IG5v
dGljZXMgaW4gdGhlIFNvZnR3YXJlIGFuZCB0aGlzIGVudGlyZSBzdGF0ZW1lbnQsIGluY2x1ZGlu
ZwotICogdGhlIGFib3ZlIGxpY2Vuc2UgZ3JhbnQsIHRoaXMgcmVzdHJpY3Rpb24gYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciwKLSAqIG11c3QgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBv
ZiB0aGUgU29mdHdhcmUsIGluIHdob2xlIG9yIGluIHBhcnQsIGFuZAotICogYWxsIGRlcml2YXRp
dmUgd29ya3Mgb2YgdGhlIFNvZnR3YXJlLCB1bmxlc3Mgc3VjaCBjb3BpZXMgb3IgZGVyaXZhdGl2
ZQotICogd29ya3MgYXJlIHNvbGVseSBpbiB0aGUgZm9ybSBvZiBtYWNoaW5lLWV4ZWN1dGFibGUg
b2JqZWN0IGNvZGUgZ2VuZXJhdGVkIGJ5Ci0gKiBhIHNvdXJjZSBsYW5ndWFnZSBwcm9jZXNzb3Iu
Ci0gKiAKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB
TlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P
VCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLCBUSVRMRSBBTkQgTk9OLUlORlJJTkdFTUVOVC4g
SU4gTk8gRVZFTlQKLSAqIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUiBBTllPTkUgRElT
VFJJQlVUSU5HIFRIRSBTT0ZUV0FSRSBCRSBMSUFCTEUKLSAqIEZPUiBBTlkgREFNQUdFUyBPUiBP
VEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAot
ICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FS
RSBPUiBUSEUgVVNFIE9SIE9USEVSCi0gKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0gKi8K
LQotI2lmbmRlZiBUaHJlYWRTYWZlU2hhcmVkX2gKLSNkZWZpbmUgVGhyZWFkU2FmZVNoYXJlZF9o
Ci0KLSNpbmNsdWRlICJQbGF0Zm9ybS5oIgotCi0jaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KLSNp
bmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQot
Y2xhc3MgVGhyZWFkU2FmZVNoYXJlZEJhc2UgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRo
cmVhZFNhZmVTaGFyZWRCYXNlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0g
ICAgVGhyZWFkU2FmZVNoYXJlZEJhc2UoaW50IGluaXRpYWxSZWZDb3VudCA9IDEpCi0gICAgICAg
IDogbV9yZWZDb3VudChpbml0aWFsUmVmQ291bnQpCi0gICAgewotICAgIH0KLQotICAgIHZvaWQg
cmVmKCkKLSAgICB7Ci0jaWYgVVNFKExPQ0tGUkVFX1RIUkVBRFNBRkVTSEFSRUQpCi0gICAgICAg
IGF0b21pY0luY3JlbWVudCgmbV9yZWZDb3VudCk7Ci0jZWxzZQotICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9tdXRleCk7Ci0gICAgICAgICsrbV9yZWZDb3VudDsKLSNlbmRpZgotICAgIH0K
LQotICAgIGJvb2wgaGFzT25lUmVmKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiByZWZDb3VudCgp
ID09IDE7Ci0gICAgfQotCi0gICAgaW50IHJlZkNvdW50KCkgY29uc3QKLSAgICB7Ci0jaWYgIVVT
RShMT0NLRlJFRV9USFJFQURTQUZFU0hBUkVEKQotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9tdXRleCk7Ci0jZW5kaWYKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludCBjb25zdCB2
b2xhdGlsZSAmPihtX3JlZkNvdW50KTsKLSAgICB9Ci0KLXByb3RlY3RlZDoKLSAgICAvLyBSZXR1
cm5zIHdoZXRoZXIgdGhlIHBvaW50ZXIgc2hvdWxkIGJlIGZyZWVkIG9yIG5vdC4KLSAgICBib29s
IGRlcmVmQmFzZSgpCi0gICAgewotI2lmIFVTRShMT0NLRlJFRV9USFJFQURTQUZFU0hBUkVEKQot
ICAgICAgICBpZiAoYXRvbWljRGVjcmVtZW50KCZtX3JlZkNvdW50KSA8PSAwKQotICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0jZWxzZQotICAgICAgICBpbnQgcmVmQ291bnQ7Ci0gICAgICAgIHsK
LSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKLSAgICAgICAgICAgIC0t
bV9yZWZDb3VudDsKLSAgICAgICAgICAgIHJlZkNvdW50ID0gbV9yZWZDb3VudDsKLSAgICAgICAg
fQotICAgICAgICBpZiAocmVmQ291bnQgPD0gMCkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
I2VuZGlmCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgdGVt
cGxhdGU8Y2xhc3MgVD4KLSAgICBmcmllbmQgY2xhc3MgQ3Jvc3NUaHJlYWRSZWZDb3VudGVkOwot
Ci0gICAgaW50IG1fcmVmQ291bnQ7Ci0jaWYgIVVTRShMT0NLRlJFRV9USFJFQURTQUZFU0hBUkVE
KQotICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsKLSNlbmRpZgotfTsKLQotdGVtcGxhdGU8Y2xh
c3MgVD4gY2xhc3MgVGhyZWFkU2FmZVNoYXJlZCA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkQmFz
ZSB7Ci1wdWJsaWM6Ci0gICAgdm9pZCBkZXJlZigpCi0gICAgewotICAgICAgICBpZiAoZGVyZWZC
YXNlKCkpCi0gICAgICAgICAgICBkZWxldGUgc3RhdGljX2Nhc3Q8VCo+KHRoaXMpOwotICAgIH0K
LQotcHJvdGVjdGVkOgotICAgIFRocmVhZFNhZmVTaGFyZWQoKQotICAgIHsKLSAgICB9Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXVEYKLQotdXNpbmcgV1RGOjpUaHJlYWRTYWZlU2hhcmVkOwotCi0j
ZW5kaWYgLy8gVGhyZWFkU2FmZVNoYXJlZF9oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL1RocmVhZGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
VGhyZWFkaW5nLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9UaHJlYWRpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNjcsNyArNjcsNyBAQAogI2luY2x1ZGUg
PHd0Zi9Mb2NrZXIuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlU2hhcmVkLmg+CisjaW5j
bHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGlu
Z1ByaW1pdGl2ZXMuaD4KIAogLy8gRm9yIHBvcnRhYmlsaXR5LCB3ZSBkbyBub3QgdXNlIHRocmVh
ZC1zYWZlIHN0YXRpY3MgbmF0aXZlbHkgc3VwcG9ydGVkIGJ5IHNvbWUgY29tcGlsZXJzIChlLmcu
IGdjYykuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxNTYyKQorKysg
U291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE2IEBACisyMDExLTAzLTE5ICBCaWxsIEJ1ZGdlICA8YmJ1ZGdlQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgVGhy
ZWFkU2FmZVNoYXJlZCB0byBUaHJlYWRTYWZlUmVmQ291bnRlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY3MTQKKworICAgICAgICBObyBuZXcgdGVz
dHMuIEV4cG9zZXMgbm8gbmV3IGZ1bmN0aW9uYWxpdHkupworCisgICAgICAgICogRm9yd2FyZGlu
Z0hlYWRlcnMvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg6IENvcGllZCBmcm9tIEZvcndhcmRp
bmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlU2hhcmVkLmguCisgICAgICAgICogRm9yd2FyZGluZ0hl
YWRlcnMvd3RmL1RocmVhZFNhZmVTaGFyZWQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBneXAvSmF2
YVNjcmlwdEdsdWUuZ3lwaToKKwogMjAxMS0wMy0xNyAgSmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXNlIGEgY29uc2lzdGVudCBzZXQgb2YgZmlsZSBwYXR0ZXJucyBp
biB0aGUgc3ZuOmlnbm9yZSBwcm9wZXJ0eSBmb3IgYWxsIC54Y29kZXByb2ogZGlyZWN0b3JpZXMs
IHNwZWNpZmljYWxseToKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Gb3J3YXJkaW5nSGVh
ZGVycy93dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdEdsdWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmgJ
KHJldmlzaW9uIDgxNTUzKQkoZnJvbSBTb3VyY2UvSmF2YVNjcmlwdEdsdWUvRm9yd2FyZGluZ0hl
YWRlcnMvd3RmL1RocmVhZFNhZmVTaGFyZWQuaDo4MTU1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
R2x1ZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxIEBACisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVGhyZWFkU2Fm
ZVNoYXJlZC5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRHbHVlL0ZvcndhcmRpbmdIZWFkZXJz
L3d0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0R2x1ZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaAkocmV2
aXNpb24gODE1NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdEdsdWUvRm9yd2FyZGluZ0hlYWRlcnMv
d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmgJKHdvcmtpbmcgY29weSkKQEAgLTEgKzEgQEAKLSNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UaHJlYWRTYWZlU2hhcmVkLmg+CisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0R2x1ZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVNoYXJlZC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFk
U2FmZVNoYXJlZC5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0R2x1ZS9G
b3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVNoYXJlZC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xICswLDAgQEAKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UaHJlYWRTYWZlU2hhcmVkLmg+
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdEdsdWUvZ3lwL0phdmFTY3JpcHRHbHVlLmd5cGkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRHbHVlL2d5cC9KYXZhU2NyaXB0R2x1ZS5neXBp
CShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0R2x1ZS9neXAvSmF2YVNjcmlw
dEdsdWUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLXsKK1RocmVhZFNhZmVS
ZWZDb3VudGVkewogICAgICd2YXJpYWJsZXMnOiB7CiAgICAgICAgICdqYXZhc2NyaXB0Z2x1ZV9m
aWxlcyc6IFsKICAgICAgICAgICAgICcuLi9KYXZhU2NyaXB0R2x1ZS5jcHAnLApAQCAtNjcsNyAr
NjcsNyBAQAogICAgICAgICAgICAgJy4uL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi90ZXh0L1dURlN0
cmluZy5oJywKICAgICAgICAgICAgICcuLi9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkaW5n
LmgnLAogICAgICAgICAgICAgJy4uL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRpbmdQcmlt
aXRpdmVzLmgnLAotICAgICAgICAgICAgJy4uL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRT
YWZlU2hhcmVkLmgnLAorICAgICAgICAgICAgJy4uL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJl
YWRTYWZlUmVmQ291bnRlZC5oJywKICAgICAgICAgICAgICcuLi9Gb3J3YXJkaW5nSGVhZGVycy93
dGYvVGhyZWFkU3BlY2lmaWMuaCcsCiAgICAgICAgICAgICAnLi4vRm9yd2FyZGluZ0hlYWRlcnMv
d3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaCcsCiAgICAgICAgICAgICAnLi4vRm9yd2FyZGlu
Z0hlYWRlcnMvd3RmL3VuaWNvZGUvVW5pY29kZS5oJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9u
IDgxNTYyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsNjAgQEAKKzIwMTEtMDMtMTkgIEJpbGwgQnVkZ2UgIDxiYnVkZ2VAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFt
ZSBUaHJlYWRTYWZlU2hhcmVkIHRvIFRocmVhZFNhZmVSZWZDb3VudGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjcxNAorCisgICAgICAgIE5vIG5l
dyB0ZXN0cy4gRXhwb3NlcyBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIEZvcndh
cmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oOiBDb3BpZWQgZnJvbSBGb3J3
YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVNoYXJlZC5oLgorICAgICAgICAqIEZvcndhcmRp
bmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlU2hhcmVkLmg6IFJlbW92ZWQuCisgICAgICAgICogYmlu
ZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6CisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKiBkb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5o
OgorICAgICAgICAqIGZpbGVhcGkvRmlsZVRocmVhZC5oOgorICAgICAgICAqIGxvYWRlci9UaHJl
YWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlci5oOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJs
ZUxvYWRlckNsaWVudFdyYXBwZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRh
YmxlTG9hZGVyQ2xpZW50V3JhcHBlcjo6Y2xlYXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
VGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXI6OmRvbmUpOgorICAgICAgICAoV2ViQ29yZTo6
VGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXI6OmRpZFNlbmREYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyOjpkaWRSZWNlaXZlUmVzcG9uc2Up
OgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXI6OmRpZFJl
Y2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFw
cGVyOjpkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFk
YWJsZUxvYWRlckNsaWVudFdyYXBwZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6VGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXI6OmRpZEZhaWwpOgorICAgICAgICAo
V2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXI6OmRpZEZhaWxSZWRpcmVjdENo
ZWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyOjpk
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DYW5jZWxsYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
VGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXI6OlRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFw
cGVyKToKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmg6CisgICAgICAgICogcGxhdGZv
cm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JE
YXRhLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGUu
aDoKKyAgICAgICAgKiBzdG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuaDoKKyAgICAgICAgKiBzdG9y
YWdlL0RhdGFiYXNlQXV0aG9yaXplci5oOgorICAgICAgICAqIHN0b3JhZ2UvRGF0YWJhc2VDYWxs
YmFjay5oOgorICAgICAgICAqIHN0b3JhZ2UvRGF0YWJhc2VUaHJlYWQuaDoKKyAgICAgICAgKiBz
dG9yYWdlL0lEQkNhbGxiYWNrcy5oOgorICAgICAgICAqIHN0b3JhZ2UvSURCQ3Vyc29yQmFja2Vu
ZEludGVyZmFjZS5oOgorICAgICAgICAqIHN0b3JhZ2UvSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJm
YWNlLmg6CisgICAgICAgICogc3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oOgor
ICAgICAgICAqIHN0b3JhZ2UvSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmg6CisgICAgICAgICog
c3RvcmFnZS9JREJLZXkuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQktleVJhbmdlLmg6CisgICAg
ICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAg
KiBzdG9yYWdlL0lEQlJlcXVlc3QuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZS5oOgorICAgICAgICAqIHN0b3JhZ2UvU1FMRXJyb3IuaDoKKyAgICAg
ICAgKiBzdG9yYWdlL1NRTFJlc3VsdFNldC5oOgorICAgICAgICAqIHN0b3JhZ2UvU1FMU3RhdGVt
ZW50Lmg6CisgICAgICAgICogc3RvcmFnZS9TUUxTdGF0ZW1lbnRDYWxsYmFjay5oOgorICAgICAg
ICAqIHN0b3JhZ2UvU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oOgorICAgICAgICAqIHN0b3Jh
Z2UvU1FMVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKiBzdG9yYWdlL1NRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2suaDoKKyAgICAgICAgKiBzdG9yYWdlL1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5o
OgorICAgICAgICAqIHdlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRX
cmFwcGVyLmg6CisgICAgICAgICogd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9y
eS5jcHA6CisKIDIwMTEtMDMtMTkgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEJlbmphbWluIFBvdWxhaW4uCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVJl
ZkNvdW50ZWQuaAkocmV2aXNpb24gODE1NTMpCShmcm9tIFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlU2hhcmVkLmg6ODE1NTMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfVGhyZWFkU2FmZVNoYXJl
ZF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX1RocmVhZFNhZmVTaGFyZWRfaAorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL1RocmVhZFNhZmVTaGFyZWQuaD4KKyNlbmRpZgpJbmRleDogU291cmNlL1dl
YkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVS
ZWZDb3VudGVkLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUvRm9yd2FyZGlu
Z0hlYWRlcnMvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NCArMSw0IEBACi0jaWZuZGVmIFdlYkNvcmVfRldEX1RocmVhZFNhZmVTaGFyZWRfaAotI2RlZmlu
ZSBXZWJDb3JlX0ZXRF9UaHJlYWRTYWZlU2hhcmVkX2gKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9UaHJlYWRTYWZlU2hhcmVkLmg+CisjaWZuZGVmIFdlYkNvcmVfRldEX1RocmVhZFNhZmVSZWZD
b3VudGVkX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfVGhyZWFkU2FmZVJlZkNvdW50ZWRfaAorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlU2hhcmVk
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1Ro
cmVhZFNhZmVTaGFyZWQuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9Gb3J3
YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVNoYXJlZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDQgKzAsMCBAQAotI2lmbmRlZiBXZWJDb3JlX0ZXRF9UaHJlYWRTYWZlU2hhcmVkX2gKLSNkZWZp
bmUgV2ViQ29yZV9GV0RfVGhyZWFkU2FmZVNoYXJlZF9oCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvVGhyZWFkU2FmZVNoYXJlZC5oPgotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAkocmV2aXNpb24gODE1NTMp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAko
d29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4geworY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gewogcHVibGlj
OgogICAgIHN0YXRpYyB2b2lkIGRlc2VyaWFsaXplQW5kU2V0UHJvcGVydHkodjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiwgY29uc3QgY2hhciogcHJvcGVydHlOYW1lLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdjg6OlByb3BlcnR5QXR0cmlidXRlLCBTZXJpYWxpemVk
U2NyaXB0VmFsdWUqKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gODE1
NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNDQsNyArMzQ0LDcgQEAgc3RhdGljIGJvb2wgZGlzYWJsZVJhbmdlTXV0YXRpb24oUGFnZSog
cAogCiBzdGF0aWMgSGFzaFNldDxEb2N1bWVudCo+KiBkb2N1bWVudHNUaGF0TmVlZFN0eWxlUmVj
YWxjID0gMDsKIAotY2xhc3MgRG9jdW1lbnRXZWFrUmVmZXJlbmNlIDogcHVibGljIFRocmVhZFNh
ZmVTaGFyZWQ8RG9jdW1lbnRXZWFrUmVmZXJlbmNlPiB7CitjbGFzcyBEb2N1bWVudFdlYWtSZWZl
cmVuY2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RG9jdW1lbnRXZWFrUmVmZXJlbmNl
PiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRXZWFrUmVmZXJlbmNl
PiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaAko
cmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1l
c3NhZ2VQb3J0Q2hhbm5lbC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAvLyBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbCBpcyBhIHBs
YXRmb3JtLWRlcGVuZGVudCBpbnRlcmZhY2UgdG8gdGhlIHJlbW90ZSBzaWRlIG9mIGEgbWVzc2Fn
ZSBjaGFubmVsLgogICAgIC8vIFRoaXMgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBt
dWx0aXBsZSB0aHJlYWRzIHJ1bm5pbmcgd2l0aGluIGEgc2luZ2xlIHByb2Nlc3MuIEltcGxlbWVu
dGF0aW9ucyBmb3IgbXVsdGktcHJvY2VzcyBwbGF0Zm9ybXMgc2hvdWxkIGRlZmluZSB0aGVzZSBw
dWJsaWMgQVBJcyBpbiB0aGVpciBvd24gcGxhdGZvcm0tc3BlY2lmaWMgUGxhdGZvcm1NZXNzYWdl
UG9ydENoYW5uZWwgZmlsZS4KICAgICAvLyBUaGUgZ29hbCBvZiB0aGlzIGltcGxlbWVudGF0aW9u
IGlzIHRvIGVsaW1pbmF0ZSBjb250ZW50aW9uIGV4Y2VwdCB3aGVuIGNsb25pbmcgb3IgY2xvc2lu
ZyB0aGUgcG9ydCwgc28gZWFjaCBzaWRlIG9mIHRoZSBjaGFubmVsIGhhcyBpdHMgb3duIHNlcGFy
YXRlIG11dGV4LgotICAgIGNsYXNzIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsIDogcHVibGlj
IFRocmVhZFNhZmVTaGFyZWQ8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw+IHsKKyAgICBjbGFz
cyBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4gewogICAgIHB1YmxpYzoKICAgICAgICAgc3Rh
dGljIHZvaWQgY3JlYXRlQ2hhbm5lbChQYXNzUmVmUHRyPE1lc3NhZ2VQb3J0PiwgUGFzc1JlZlB0
cjxNZXNzYWdlUG9ydD4pOwogCkBAIC01OSw3ICs1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgTWVzc2FnZVBvcnQqIGxvY2FsbHlFbnRhbmdsZWRQb3J0KGNvbnN0IFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqKTsKIAogICAgICAgICAvLyBXcmFwcGVyIGZvciBNZXNzYWdlUXVldWUg
dGhhdCBhbGxvd3MgdXMgdG8gZG8gdGhyZWFkIHNhZmUgc2hhcmluZyBieSB0d28gcHJveGllcy4K
LSAgICAgICAgY2xhc3MgTWVzc2FnZVBvcnRRdWV1ZSA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVk
PE1lc3NhZ2VQb3J0UXVldWU+IHsKKyAgICAgICAgY2xhc3MgTWVzc2FnZVBvcnRRdWV1ZSA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxNZXNzYWdlUG9ydFF1ZXVlPiB7CiAgICAgICAgIHB1
YmxpYzoKICAgICAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lc3NhZ2VQb3J0UXVldWU+IGNy
ZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZXNzYWdlUG9ydFF1ZXVlKCkpOyB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVRocmVhZC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVRocmVhZC5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVRocmVhZC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3
ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRmlsZVN0cmVhbTsKIAotY2xh
c3MgRmlsZVRocmVhZCA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPEZpbGVUaHJlYWQ+IHsKK2Ns
YXNzIEZpbGVUaHJlYWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RmlsZVRocmVhZD4g
ewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZpbGVUaHJlYWQ+IGNyZWF0ZSgpCiAg
ICAgewpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXJDbGllbnRX
cmFwcGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVM
b2FkZXJDbGllbnRXcmFwcGVyLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUv
bG9hZGVyL1RocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM4LDg1ICszOCw4NSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBUaHJl
YWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlciA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFRocmVh
ZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyPiB7Ci0gICAgcHVibGljOgotICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlcj4gY3JlYXRlKFRocmVhZGFi
bGVMb2FkZXJDbGllbnQqIGNsaWVudCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlcihjbGllbnQpKTsKLSAgICAg
ICAgfQotCi0gICAgICAgIHZvaWQgY2xlYXJDbGllbnQoKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBtX2RvbmUgPSB0cnVlOwotICAgICAgICAgICAgbV9jbGllbnQgPSAwOwotICAgICAgICB9Ci0K
LSAgICAgICAgYm9vbCBkb25lKCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IG1fZG9uZTsKLSAgICAgICAgfQotCi0gICAgICAgIHZvaWQgZGlkU2VuZERhdGEodW5zaWduZWQg
bG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2Vu
dCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICAgICAgICAg
IG1fY2xpZW50LT5kaWRTZW5kRGF0YShieXRlc1NlbnQsIHRvdGFsQnl0ZXNUb0JlU2VudCk7Ci0g
ICAgICAgIH0KLQotICAgICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKG1fY2xpZW50
KQotICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2Up
OwotICAgICAgICB9Ci0KLSAgICAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBk
YXRhLCBpbnQgZGF0YUxlbmd0aCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKG1fY2xpZW50
KQotICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlRGF0YShkYXRhLCBkYXRhTGVu
Z3RoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZvaWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRh
KGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVDYWNo
ZWRNZXRhZGF0YShkYXRhLCBkYXRhTGVuZ3RoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZvaWQg
ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hU
aW1lKQotICAgICAgICB7Ci0gICAgICAgICAgICBtX2RvbmUgPSB0cnVlOwotICAgICAgICAgICAg
aWYgKG1fY2xpZW50KQotICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5n
KGlkZW50aWZpZXIsIGZpbmlzaFRpbWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgdm9pZCBkaWRG
YWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQotICAgICAgICB7Ci0gICAgICAgICAgICBt
X2RvbmUgPSB0cnVlOwotICAgICAgICAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICAgICAgICAg
IG1fY2xpZW50LT5kaWRGYWlsKGVycm9yKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZvaWQgZGlk
RmFpbFJlZGlyZWN0Q2hlY2soKQotICAgICAgICB7Ci0gICAgICAgICAgICBtX2RvbmUgPSB0cnVl
OwotICAgICAgICAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICAgICAgICAgIG1fY2xpZW50LT5k
aWRGYWlsUmVkaXJlY3RDaGVjaygpOwotICAgICAgICB9Ci0KLSAgICAgICAgdm9pZCBkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DYW5jZWxsYXRpb24oY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgICAg
ICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKLSAgICAgICAgfQot
Ci0gICAgcHJvdGVjdGVkOgotICAgICAgICBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlcihU
aHJlYWRhYmxlTG9hZGVyQ2xpZW50KiBjbGllbnQpCi0gICAgICAgICAgICA6IG1fY2xpZW50KGNs
aWVudCkKLSAgICAgICAgICAgICwgbV9kb25lKGZhbHNlKQotICAgICAgICB7Ci0gICAgICAgIH0K
LQotICAgICAgICBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KiBtX2NsaWVudDsKLSAgICAgICAgYm9v
bCBtX2RvbmU7Ci0gICAgfTsKK2NsYXNzIFRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyIDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVy
PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VGhyZWFkYWJsZUxvYWRlckNsaWVu
dFdyYXBwZXI+IGNyZWF0ZShUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KiBjbGllbnQpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVy
KGNsaWVudCkpOworICAgIH0KKworICAgIHZvaWQgY2xlYXJDbGllbnQoKQorICAgIHsKKyAgICAg
ICAgbV9kb25lID0gdHJ1ZTsKKyAgICAgICAgbV9jbGllbnQgPSAwOworICAgIH0KKworICAgIGJv
b2wgZG9uZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9kb25lOworICAgIH0KKwor
ICAgIHZvaWQgZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWdu
ZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkKKyAgICB7CisgICAgICAgIGlmIChtX2Ns
aWVudCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5kaWRTZW5kRGF0YShieXRlc1NlbnQsIHRvdGFs
Qnl0ZXNUb0JlU2VudCk7CisgICAgfQorCisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCisgICAgeworICAgICAgICBpZiAobV9jbGll
bnQpCisgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsK
KyAgICB9CisKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBk
YXRhTGVuZ3RoKQorICAgIHsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAgbV9j
bGllbnQtPmRpZFJlY2VpdmVEYXRhKGRhdGEsIGRhdGFMZW5ndGgpOworICAgIH0KKworICAgIHZv
aWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVu
Z3RoKQorICAgIHsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAgbV9jbGllbnQt
PmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShkYXRhLCBkYXRhTGVuZ3RoKTsKKyAgICB9CisKKyAg
ICB2b2lkIGRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBkb3VibGUg
ZmluaXNoVGltZSkKKyAgICB7CisgICAgICAgIG1fZG9uZSA9IHRydWU7CisgICAgICAgIGlmICht
X2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGlkZW50aWZp
ZXIsIGZpbmlzaFRpbWUpOworICAgIH0KKworICAgIHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJj
ZUVycm9yJiBlcnJvcikKKyAgICB7CisgICAgICAgIG1fZG9uZSA9IHRydWU7CisgICAgICAgIGlm
IChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5kaWRGYWlsKGVycm9yKTsKKyAgICB9
CisKKyAgICB2b2lkIGRpZEZhaWxSZWRpcmVjdENoZWNrKCkKKyAgICB7CisgICAgICAgIG1fZG9u
ZSA9IHRydWU7CisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5k
aWRGYWlsUmVkaXJlY3RDaGVjaygpOworICAgIH0KKworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2FuY2VsbGF0aW9uKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQor
ICAgIHsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJl
Y2VpdmVSZXNwb25zZShyZXNwb25zZSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgVGhyZWFk
YWJsZUxvYWRlckNsaWVudFdyYXBwZXIoVGhyZWFkYWJsZUxvYWRlckNsaWVudCogY2xpZW50KQor
ICAgICAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAgICAgLCBtX2RvbmUoZmFsc2UpCisgICAg
eworICAgIH0KKworICAgIFRocmVhZGFibGVMb2FkZXJDbGllbnQqIG1fY2xpZW50OworICAgIGJv
b2wgbV9kb25lOworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTQgKzMxLDE0
IEBACiAKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1T
dHJpbmcuaCIKLSNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVNoYXJlZC5oPgorI2luY2x1ZGUgPHd0
Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IERvY3VtZW50OwogY2xhc3MgS1VSTDsKIAotY2xhc3MgU2VjdXJpdHlPcmlnaW4gOiBwdWJsaWMg
VGhyZWFkU2FmZVNoYXJlZDxTZWN1cml0eU9yaWdpbj4geworY2xhc3MgU2VjdXJpdHlPcmlnaW4g
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U2VjdXJpdHlPcmlnaW4+IHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlRnJvbURhdGFiYXNl
SWRlbnRpZmllcihjb25zdCBTdHJpbmcmKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZWN1cml0
eU9yaWdpbj4gY3JlYXRlRnJvbVN0cmluZyhjb25zdCBTdHJpbmcmKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaAkocmV2aXNpb24gODE1NTMpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oCSh3b3JraW5nIGNv
cHkpCkBAIC01Niw3ICs1Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfQogICAg
IH07CiAKLSAgICB0ZW1wbGF0ZTxib29sIGlzQ29udmVydGlibGVUb0ludGVnZXIsIGJvb2wgaXNU
aHJlYWRzYWZlU2hhcmVkLCB0eXBlbmFtZSBUPiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNl
OworICAgIHRlbXBsYXRlPGJvb2wgaXNDb252ZXJ0aWJsZVRvSW50ZWdlciwgYm9vbCBpc1RocmVh
ZFNhZmVSZWZDb3VudGVkLCB0eXBlbmFtZSBUPiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNl
OwogCiAgICAgLy8gSW50ZWdlcnMgZ2V0IHBhc3NlZCB0aHJvdWdoIHdpdGhvdXQgYW55IGNoYW5n
ZXMuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFz
ZTx0cnVlLCBmYWxzZSwgVD4gOiBwdWJsaWMgQ3Jvc3NUaHJlYWRDb3BpZXJQYXNzVGhyb3VnaDxU
PiB7CkBAIC0xMTQsOCArMTE0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIH07CiAKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXIgOiBwdWJsaWMg
Q3Jvc3NUaHJlYWRDb3BpZXJCYXNlPFdURjo6SXNDb252ZXJ0aWJsZVRvSW50ZWdlcjxUPjo6dmFs
dWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXVEY6OklzU3ViY2xhc3NPZlRlbXBsYXRlPHR5
cGVuYW1lIFdURjo6UmVtb3ZlVGVtcGxhdGU8VCwgUmVmUHRyPjo6VHlwZSwgVGhyZWFkU2FmZVNo
YXJlZD46OnZhbHVlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgV1RGOjpJc1N1YmNs
YXNzT2ZUZW1wbGF0ZTx0eXBlbmFtZSBXVEY6OlJlbW92ZVRlbXBsYXRlPFQsIFBhc3NSZWZQdHI+
OjpUeXBlLCBUaHJlYWRTYWZlU2hhcmVkPjo6dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXVEY6OklzU3ViY2xhc3NPZlRlbXBsYXRlPHR5cGVuYW1lIFdURjo6UmVtb3ZlVGVtcGxhdGU8
VCwgUmVmUHRyPjo6VHlwZSwgVGhyZWFkU2FmZVJlZkNvdW50ZWQ+Ojp2YWx1ZQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHx8IFdURjo6SXNTdWJjbGFzc09mVGVtcGxhdGU8dHlwZW5hbWUg
V1RGOjpSZW1vdmVUZW1wbGF0ZTxULCBQYXNzUmVmUHRyPjo6VHlwZSwgVGhyZWFkU2FmZVJlZkNv
dW50ZWQ+Ojp2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFQ+IHsKICAgICB9OwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YS5oCShyZXZpc2lv
biA4MTU1MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGEuaAko
d29ya2luZyBjb3B5KQpAQCAtMzQsMTEgKzM0LDExIEBACiAjaW5jbHVkZSAiS1VSTC5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNs
dWRlIDx3dGYvVGhyZWFkU2FmZVNoYXJlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVm
Q291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFJhd0RhdGEgOiBwdWJs
aWMgVGhyZWFkU2FmZVNoYXJlZDxSYXdEYXRhPiB7CitjbGFzcyBSYXdEYXRhIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPFJhd0RhdGE+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxSYXdEYXRhPiBjcmVhdGUoKQogICAgIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGUuaAkocmV2aXNp
b24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0
cmVhbUhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCwxNCArNDQsMTQgQEAgY2xhc3MgQXV0
aGVudGljYXRpb25DaGFsbGVuZ2U7CiBjbGFzcyBDcmVkZW50aWFsOwogY2xhc3MgU29ja2V0U3Ry
ZWFtSGFuZGxlQ2xpZW50OwogCi1jbGFzcyBTb2NrZXRTdHJlYW1IYW5kbGUgOiBwdWJsaWMgVGhy
ZWFkU2FmZVNoYXJlZDxTb2NrZXRTdHJlYW1IYW5kbGU+LCBwdWJsaWMgU29ja2V0U3RyZWFtSGFu
ZGxlQmFzZSwgcHVibGljIEF1dGhlbnRpY2F0aW9uQ2xpZW50IHsKK2NsYXNzIFNvY2tldFN0cmVh
bUhhbmRsZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTb2NrZXRTdHJlYW1IYW5kbGU+
LCBwdWJsaWMgU29ja2V0U3RyZWFtSGFuZGxlQmFzZSwgcHVibGljIEF1dGhlbnRpY2F0aW9uQ2xp
ZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTb2NrZXRTdHJlYW1IYW5kbGU+
IGNyZWF0ZShjb25zdCBLVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCogY2xpZW50
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgU29ja2V0U3RyZWFtSGFuZGxlKHVybCwgY2xpZW50KSk7
IH0KIAogICAgIHZpcnR1YWwgflNvY2tldFN0cmVhbUhhbmRsZSgpOwogCi0gICAgdXNpbmcgVGhy
ZWFkU2FmZVNoYXJlZDxTb2NrZXRTdHJlYW1IYW5kbGU+OjpyZWY7Ci0gICAgdXNpbmcgVGhyZWFk
U2FmZVNoYXJlZDxTb2NrZXRTdHJlYW1IYW5kbGU+OjpkZXJlZjsKKyAgICB1c2luZyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxTb2NrZXRTdHJlYW1IYW5kbGU+OjpyZWY7CisgICAgdXNpbmcgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8U29ja2V0U3RyZWFtSGFuZGxlPjo6ZGVyZWY7CiAKIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBpbnQgcGxhdGZvcm1TZW5kKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9BYnN0cmFjdERhdGFiYXNlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9BYnN0cmFjdERhdGFiYXNlLmgJKHJldmlz
aW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9BYnN0cmFjdERhdGFiYXNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmlu
Zy5oIgogI2luY2x1ZGUgIlNRTGl0ZURhdGFiYXNlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVNoYXJlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJl
YWRTYWZlUmVmQ291bnRlZC5oPgogI2lmbmRlZiBOREVCVUcKICNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbi5oIgogI2VuZGlmCkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIERhdGFiYXNlQXV0aG9yaXpl
cjsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsK
IAotY2xhc3MgQWJzdHJhY3REYXRhYmFzZSA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPEFic3Ry
YWN0RGF0YWJhc2U+IHsKK2NsYXNzIEFic3RyYWN0RGF0YWJhc2UgOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8QWJzdHJhY3REYXRhYmFzZT4gewogcHVibGljOgogICAgIHN0YXRpYyBib29s
IGlzQXZhaWxhYmxlKCk7CiAgICAgc3RhdGljIHZvaWQgc2V0SXNBdmFpbGFibGUoYm9vbCBhdmFp
bGFibGUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZUF1dGhvcml6ZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlQXV0aG9yaXpl
ci5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VB
dXRob3JpemVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVNoYXJlZC5oPgorI2luY2x1ZGUg
PHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hh
c2guaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDAsNyArNDAsNyBAQCBleHRlcm4gY29u
c3QgaW50IFNRTEF1dGhBbGxvdzsKIGV4dGVybiBjb25zdCBpbnQgU1FMQXV0aElnbm9yZTsKIGV4
dGVybiBjb25zdCBpbnQgU1FMQXV0aERlbnk7CiAKLWNsYXNzIERhdGFiYXNlQXV0aG9yaXplciA6
IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPERhdGFiYXNlQXV0aG9yaXplcj4geworY2xhc3MgRGF0
YWJhc2VBdXRob3JpemVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPERhdGFiYXNlQXV0
aG9yaXplcj4gewogcHVibGljOgogCiAgICAgZW51bSBQZXJtaXNzaW9ucyB7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlQ2FsbGJhY2suaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlQ2FsbGJhY2suaAkocmV2aXNpb24gODE1NTMpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlQ2FsbGJhY2suaAkod29ya2luZyBjb3B5
KQpAQCAtMzMsMTQgKzMzLDE0IEBACiAKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAKLSNpbmNsdWRl
IDx3dGYvVGhyZWFkU2FmZVNoYXJlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291
bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGFiYXNlOwogY2xhc3Mg
RGF0YWJhc2VTeW5jOwogCi1jbGFzcyBEYXRhYmFzZUNhbGxiYWNrIDogcHVibGljIFRocmVhZFNh
ZmVTaGFyZWQ8RGF0YWJhc2VDYWxsYmFjaz4geworY2xhc3MgRGF0YWJhc2VDYWxsYmFjayA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxEYXRhYmFzZUNhbGxiYWNrPiB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+RGF0YWJhc2VDYWxsYmFjaygpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBoYW5k
bGVFdmVudChEYXRhYmFzZSopID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0
YWJhc2VUaHJlYWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFi
YXNlVGhyZWFkLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9E
YXRhYmFzZVRocmVhZC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIERv
Y3VtZW50OwogY2xhc3MgU1FMVHJhbnNhY3Rpb25DbGllbnQ7CiBjbGFzcyBTUUxUcmFuc2FjdGlv
bkNvb3JkaW5hdG9yOwogCi1jbGFzcyBEYXRhYmFzZVRocmVhZCA6IHB1YmxpYyBUaHJlYWRTYWZl
U2hhcmVkPERhdGFiYXNlVGhyZWFkPiB7CitjbGFzcyBEYXRhYmFzZVRocmVhZCA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxEYXRhYmFzZVRocmVhZD4gewogcHVibGljOgogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPERhdGFiYXNlVGhyZWFkPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgRGF0YWJhc2VUaHJlYWQpOyB9CiAgICAgfkRhdGFiYXNlVGhyZWFkKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0lEQkNhbGxiYWNrcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvSURCQ2FsbGJhY2tzLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9JREJDYWxsYmFja3MuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyAr
NDMsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBGSVhNRTogQWxsIGNoaWxkIGNsYXNz
ZXMgbmVlZCB0byBiZSBtYWRlIHRocmVhZHNhZmUuCi1jbGFzcyBJREJDYWxsYmFja3MgOiBwdWJs
aWMgVGhyZWFkU2FmZVNoYXJlZDxJREJDYWxsYmFja3M+IHsKK2NsYXNzIElEQkNhbGxiYWNrcyA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxJREJDYWxsYmFja3M+IHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5JREJDYWxsYmFja3MoKSB7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9JREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmgJKHJldmlzaW9uIDgxNTUz
KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgSURCS2V5OwogY2xhc3MgSURC
UmVxdWVzdDsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIAotY2xhc3MgSURCQ3Vyc29y
QmFja2VuZEludGVyZmFjZSA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPElEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2U+IHsKK2NsYXNzIElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UgOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gewogcHVibGlj
OgogICAgIHZpcnR1YWwgfklEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UoKSB7fQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJm
YWNlLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRh
YmFzZUJhY2tlbmRJbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBj
bGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U7CiAvLyBUaGlzIGlzIGltcGxlbWVu
dGVkIGJ5IElEQkRhdGFiYXNlQmFja2VuZEltcGwgYW5kIG9wdGlvbmFsbHkgb3RoZXJzIChpbiBv
cmRlciB0byBwcm94eQogLy8gY2FsbHMgYWNyb3NzIHByb2Nlc3MgYmFycmllcnMpLiBBbGwgY2Fs
bHMgdG8gdGhlc2UgY2xhc3NlcyBzaG91bGQgYmUgbm9uLWJsb2NraW5nIGFuZAogLy8gdHJpZ2dl
ciB3b3JrIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQgaWYgbmVjZXNzYXJ5LgotY2xhc3MgSURCRGF0
YWJhc2VCYWNrZW5kSW50ZXJmYWNlIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8SURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlPiB7CitjbGFzcyBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2Ug
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNl
PiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlKCkg
eyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRmFjdG9yeUJhY2tlbmRJbnRl
cmZhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkZhY3RvcnlC
YWNrZW5kSW50ZXJmYWNlLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3
ICs0Niw3IEBAIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogLy8gVGhpcyBpcyBpbXBsZW1lbnRlZCBi
eSBJREJGYWN0b3J5QmFja2VuZEltcGwgYW5kIG9wdGlvbmFsbHkgb3RoZXJzIChpbiBvcmRlciB0
byBwcm94eQogLy8gY2FsbHMgYWNyb3NzIHByb2Nlc3MgYmFycmllcnMpLiBBbGwgY2FsbHMgdG8g
dGhlc2UgY2xhc3NlcyBzaG91bGQgYmUgbm9uLWJsb2NraW5nIGFuZAogLy8gdHJpZ2dlciB3b3Jr
IG9uIGEgYmFja2dyb3VuZCB0aHJlYWQgaWYgbmVjZXNzYXJ5LgotY2xhc3MgSURCRmFjdG9yeUJh
Y2tlbmRJbnRlcmZhY2UgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxJREJGYWN0b3J5QmFja2Vu
ZEludGVyZmFjZT4geworY2xhc3MgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UgOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U+IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZT4gY3Jl
YXRlKCk7CiAgICAgdmlydHVhbCB+SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UoKSB7IH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleEJhY2tlbmRJbnRlcmZh
Y2UuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4
QmFja2VuZEludGVyZmFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNz
IElEQktleTsKIGNsYXNzIElEQktleVJhbmdlOwogY2xhc3MgSURCVHJhbnNhY3Rpb25CYWNrZW5k
SW50ZXJmYWNlOwogCi1jbGFzcyBJREJJbmRleEJhY2tlbmRJbnRlcmZhY2UgOiBwdWJsaWMgVGhy
ZWFkU2FmZVNoYXJlZDxJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+IHsKK2NsYXNzIElEQkluZGV4
QmFja2VuZEludGVyZmFjZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxJREJJbmRleEJh
Y2tlbmRJbnRlcmZhY2U+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJJbmRleEJhY2tlbmRJ
bnRlcmZhY2UoKSB7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJLZXkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQktleS5oCShyZXZpc2lvbiA4
MTU1MykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5LmgJKHdvcmtpbmcgY29weSkK
QEAgLTM0LDcgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBJREJLZXkg
OiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxJREJLZXk+IHsKK2NsYXNzIElEQktleSA6IHB1Ymxp
YyBUaHJlYWRTYWZlUmVmQ291bnRlZDxJREJLZXk+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxJREJLZXk+IGNyZWF0ZU51bGwoKQogICAgIHsKQEAgLTEwMCw4ICsxMDAsOCBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc0xlc3NUaGFuKGNvbnN0IElEQktleSogb3RoZXIpIGNvbnN0Owog
ICAgIGJvb2wgaXNFcXVhbChjb25zdCBJREJLZXkqIG90aGVyKSBjb25zdDsKIAotICAgIHVzaW5n
IFRocmVhZFNhZmVTaGFyZWQ8SURCS2V5Pjo6cmVmOwotICAgIHVzaW5nIFRocmVhZFNhZmVTaGFy
ZWQ8SURCS2V5Pjo6ZGVyZWY7CisgICAgdXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SURCS2V5
Pjo6cmVmOworICAgIHVzaW5nIFRocmVhZFNhZmVSZWZDb3VudGVkPElEQktleT46OmRlcmVmOwog
CiBwcml2YXRlOgogICAgIElEQktleSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9J
REJLZXlSYW5nZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5
UmFuZ2UuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQktl
eVJhbmdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBJREJLZXlSYW5nZSA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPElE
QktleVJhbmdlPiB7CitjbGFzcyBJREJLZXlSYW5nZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxJREJLZXlSYW5nZT4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQktl
eVJhbmdlPiBjcmVhdGUoUGFzc1JlZlB0cjxJREJLZXk+IGxvd2VyLCBQYXNzUmVmUHRyPElEQktl
eT4gdXBwZXIsIGJvb2wgbG93ZXJPcGVuLCBib29sIHVwcGVyT3BlbikKICAgICB7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW50ZXJmYWNlLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9J
REJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyAr
NDIsNyBAQCBjbGFzcyBJREJLZXlSYW5nZTsKIGNsYXNzIElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZTsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIAotY2xhc3MgSURCT2JqZWN0
U3RvcmVCYWNrZW5kSW50ZXJmYWNlIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8SURCT2JqZWN0
U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiB7CitjbGFzcyBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRl
cmZhY2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SURCT2JqZWN0U3RvcmVCYWNrZW5k
SW50ZXJmYWNlPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCT2JqZWN0U3RvcmVCYWNrZW5k
SW50ZXJmYWNlKCkgeyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVz
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oCShy
ZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC05MSw4ICs5MSw4IEBAIHB1YmxpYzoKICAgICBib29sIGRpc3BhdGNo
RXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVy
biBFdmVudFRhcmdldDo6ZGlzcGF0Y2hFdmVudChldmVudCwgZWMpOyB9CiAgICAgdmlydHVhbCB2
b2lkIHVuY2F1Z2h0RXhjZXB0aW9uSW5FdmVudEhhbmRsZXIoKTsKIAotICAgIHVzaW5nIFRocmVh
ZFNhZmVTaGFyZWQ8SURCQ2FsbGJhY2tzPjo6cmVmOwotICAgIHVzaW5nIFRocmVhZFNhZmVTaGFy
ZWQ8SURCQ2FsbGJhY2tzPjo6ZGVyZWY7CisgICAgdXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
SURCQ2FsbGJhY2tzPjo6cmVmOworICAgIHVzaW5nIFRocmVhZFNhZmVSZWZDb3VudGVkPElEQkNh
bGxiYWNrcz46OmRlcmVmOwogCiBwcm90ZWN0ZWQ6CiAgICAgSURCUmVxdWVzdChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgSURCVHJhbnNhY3Rpb24q
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzOwogLy8gVGhp
cyBpcyBpbXBsZW1lbnRlZCBieSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsIGFuZCBvcHRpb25h
bGx5IG90aGVycyAoaW4gb3JkZXIgdG8gcHJveHkKIC8vIGNhbGxzIGFjcm9zcyBwcm9jZXNzIGJh
cnJpZXJzKS4gQWxsIGNhbGxzIHRvIHRoZXNlIGNsYXNzZXMgc2hvdWxkIGJlIG5vbi1ibG9ja2lu
ZyBhbmQKIC8vIHRyaWdnZXIgd29yayBvbiBhIGJhY2tncm91bmQgdGhyZWFkIGlmIG5lY2Vzc2Fy
eS4KLWNsYXNzIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSA6IHB1YmxpYyBUaHJlYWRT
YWZlU2hhcmVkPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4geworY2xhc3MgSURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gewogcHVibGljOgogICAgIHZpcnR1YWwgfklE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpIHsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL1NRTEVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9TUUxFcnJvci5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
U1FMRXJyb3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTEgKzMyLDExIEBACiAjaWYgRU5BQkxF
KERBVEFCQVNFKQogCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKLSNpbmNsdWRlIDx3dGYv
VGhyZWFkU2FmZVNoYXJlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNRTEVycm9yIDogcHVibGljIFRocmVh
ZFNhZmVTaGFyZWQ8U1FMRXJyb3I+IHsKK2NsYXNzIFNRTEVycm9yIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFNRTEVycm9yPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTUUxFcnJvcihjb2RlLCBtZXNzYWdlKSk7IH0KIApJbmRleDog
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxSZXN1bHRTZXQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1NRTFJlc3VsdFNldC5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMUmVzdWx0U2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMz
LDExICszMywxMSBAQAogCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIlNR
TFJlc3VsdFNldFJvd0xpc3QuaCIKLSNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVNoYXJlZC5oPgor
I2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIFNRTFJlc3VsdFNldCA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFNRTFJl
c3VsdFNldD4geworY2xhc3MgU1FMUmVzdWx0U2V0IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPFNRTFJlc3VsdFNldD4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNRTFJl
c3VsdFNldD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNRTFJlc3VsdFNldCk7IH0K
IApJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudC5oCShyZXZpc2lvbiA4MTU1
MykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgU1FMU3RhdGVtZW50Q2FsbGJhY2s7CiBjbGFzcyBT
UUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrOwogY2xhc3MgU1FMVHJhbnNhY3Rpb247CiAKLWNsYXNz
IFNRTFN0YXRlbWVudCA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFNRTFN0YXRlbWVudD4gewor
Y2xhc3MgU1FMU3RhdGVtZW50IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNRTFN0YXRl
bWVudD4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNRTFN0YXRlbWVudD4gY3Jl
YXRlKERhdGFiYXNlKiwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPFNRTFZhbHVlPiYsIFBh
c3NSZWZQdHI8U1FMU3RhdGVtZW50Q2FsbGJhY2s+LCBQYXNzUmVmUHRyPFNRTFN0YXRlbWVudEVy
cm9yQ2FsbGJhY2s+LCBpbnQgcGVybWlzc2lvbnMpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL1NRTFN0YXRlbWVudENhbGxiYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnRDYWxsYmFjay5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50Q2FsbGJhY2suaAkod29ya2luZyBjb3B5
KQpAQCAtMzAsMTQgKzMwLDE0IEBACiAKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAKLSNpbmNsdWRl
IDx3dGYvVGhyZWFkU2FmZVNoYXJlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291
bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNRTFRyYW5zYWN0aW9uOwog
Y2xhc3MgU1FMUmVzdWx0U2V0OwogCi1jbGFzcyBTUUxTdGF0ZW1lbnRDYWxsYmFjayA6IHB1Ymxp
YyBUaHJlYWRTYWZlU2hhcmVkPFNRTFN0YXRlbWVudENhbGxiYWNrPiB7CitjbGFzcyBTUUxTdGF0
ZW1lbnRDYWxsYmFjayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTUUxTdGF0ZW1lbnRD
YWxsYmFjaz4gewogcHVibGljOgogICAgIHZpcnR1YWwgflNRTFN0YXRlbWVudENhbGxiYWNrKCkg
eyB9CiAgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KFNRTFRyYW5zYWN0aW9uKiwgU1FMUmVz
dWx0U2V0KikgPSAwOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnRF
cnJvckNhbGxiYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxT
dGF0ZW1lbnRFcnJvckNhbGxiYWNrLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMxLDE0ICszMSwxNCBAQAogCiAjaWYgRU5BQkxFKERBVEFCQVNFKQogCi0jaW5jbHVkZSA8d3Rm
L1RocmVhZFNhZmVTaGFyZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTUUxUcmFuc2FjdGlvbjsKIGNsYXNz
IFNRTEVycm9yOwogCi1jbGFzcyBTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrIDogcHVibGljIFRo
cmVhZFNhZmVTaGFyZWQ8U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjaz4geworY2xhc3MgU1FMU3Rh
dGVtZW50RXJyb3JDYWxsYmFjayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTUUxTdGF0
ZW1lbnRFcnJvckNhbGxiYWNrPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1FMU3RhdGVtZW50
RXJyb3JDYWxsYmFjaygpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChTUUxUcmFu
c2FjdGlvbiosIFNRTEVycm9yKikgPSAwOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
UUxUcmFuc2FjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FM
VHJhbnNhY3Rpb24uaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1NRTFRyYW5zYWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNs
dWRlICJTUUxTdGF0ZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlU2hhcmVkLmg+CisjaW5jbHVk
ZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFNRTFRyYW5zYWN0
aW9uRXJyb3JDYWxsYmFjazsKIGNsYXNzIFNRTFZhbHVlOwogY2xhc3MgVm9pZENhbGxiYWNrOwog
Ci1jbGFzcyBTUUxUcmFuc2FjdGlvbldyYXBwZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxT
UUxUcmFuc2FjdGlvbldyYXBwZXI+IHsKK2NsYXNzIFNRTFRyYW5zYWN0aW9uV3JhcHBlciA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTUUxUcmFuc2FjdGlvbldyYXBwZXI+IHsKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5TUUxUcmFuc2FjdGlvbldyYXBwZXIoKSB7IH0KICAgICB2aXJ0dWFs
IGJvb2wgcGVyZm9ybVByZWZsaWdodChTUUxUcmFuc2FjdGlvbiopID0gMDsKQEAgLTU5LDcgKzU5
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU1FMRXJyb3IqIHNxbEVycm9yKCkgY29uc3QgPSAw
OwogfTsKIAotY2xhc3MgU1FMVHJhbnNhY3Rpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxT
UUxUcmFuc2FjdGlvbj4geworY2xhc3MgU1FMVHJhbnNhY3Rpb24gOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8U1FMVHJhbnNhY3Rpb24+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTUUxUcmFuc2FjdGlvbj4gY3JlYXRlKERhdGFiYXNlKiwgUGFzc1JlZlB0cjxTUUxUcmFu
c2FjdGlvbkNhbGxiYWNrPiwgUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0
cjxWb2lkQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uV3JhcHBlcj4sIGJvb2wg
cmVhZE9ubHkgPSBmYWxzZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5z
YWN0aW9uQ2FsbGJhY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NR
TFRyYW5zYWN0aW9uQ2FsbGJhY2suaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaAkod29ya2luZyBjb3B5KQpAQCAtMzEs
MTMgKzMxLDEzIEBACiAKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAKLSNpbmNsdWRlIDx3dGYvVGhy
ZWFkU2FmZVNoYXJlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNRTFRyYW5zYWN0aW9uOwogCi1jbGFzcyBT
UUxUcmFuc2FjdGlvbkNhbGxiYWNrIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8U1FMVHJhbnNh
Y3Rpb25DYWxsYmFjaz4geworY2xhc3MgU1FMVHJhbnNhY3Rpb25DYWxsYmFjayA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+U1FMVHJhbnNhY3Rpb25DYWxsYmFjaygpIHsgfQogICAgIHZpcnR1YWwgYm9v
bCBoYW5kbGVFdmVudChTUUxUcmFuc2FjdGlvbiopID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaAkocmV2aXNp
b24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uRXJyb3JD
YWxsYmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxMyArMzEsMTMgQEAKIAogI2lmIEVOQUJM
RShEQVRBQkFTRSkKIAotI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlU2hhcmVkLmg+CisjaW5jbHVk
ZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgU1FMRXJyb3I7CiAKLWNsYXNzIFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjayA6IHB1
YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4geworY2xh
c3MgU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4gewogcHVibGljOgogICAgIHZpcnR1YWwg
flNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaygpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBoYW5k
bGVFdmVudChTUUxFcnJvciopID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMv
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVu
dFdyYXBwZXIuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRz
L1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC00Miw3ICs0Miw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyIDogcHVibGljIFRocmVhZFNhZmVTaGFy
ZWQ8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiB7CitjbGFzcyBUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGll
bnRXcmFwcGVyPiBjcmVhdGUoV2ViU29ja2V0Q2hhbm5lbENsaWVudCogY2xpZW50KQogICAgIHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRv
cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJl
ZFdvcmtlclJlcG9zaXRvcnkuY3BwCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01OCw3ICs1OCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU2hhcmVk
V29ya2VyUHJveHkgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxTaGFyZWRXb3JrZXJQcm94eT4s
IHB1YmxpYyBXb3JrZXJMb2FkZXJQcm94eSwgcHVibGljIFdvcmtlclJlcG9ydGluZ1Byb3h5IHsK
K2NsYXNzIFNoYXJlZFdvcmtlclByb3h5IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNo
YXJlZFdvcmtlclByb3h5PiwgcHVibGljIFdvcmtlckxvYWRlclByb3h5LCBwdWJsaWMgV29ya2Vy
UmVwb3J0aW5nUHJveHkgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZFdv
cmtlclByb3h5PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBLVVJMJiB1cmwsIFBh
c3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbikgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNo
YXJlZFdvcmtlclByb3h5KG5hbWUsIHVybCwgb3JpZ2luKSk7IH0KIApJbmRleDogU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwko
cmV2aXNpb24gODE1NjIpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0wMy0xOSAgQmlsbCBCdWRnZSAgPGJidWRnZUBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVuYW1lIFRocmVhZFNhZmVTaGFyZWQgdG8gVGhyZWFkU2FmZVJlZkNvdW50ZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NzE0CisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLiBFeHBvc2VzIG5vIG5ldyBmdW5jdGlvbmFsaXR5LgorCisgICAgICAg
ICogUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmg6CisgICAgICAgICogUGxhdGZvcm0vV29y
a1F1ZXVlLmg6CisgICAgICAgICogUGxhdGZvcm0vd2luL1dvcmtRdWV1ZVdpbi5jcHA6CisgICAg
ICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9MYXVuY2hlci9UaHJlYWRMYXVuY2hlci5oOgorCiAyMDExLTAzLTE5ICBBbnRvbiBE
J0F1cmlhICA8YWRhdXJpYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5
IFByb3NrdXJ5YWtvdi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5oCShyZXZp
c2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDYsNyArMTA2LDcgQEAgcHJpdmF0ZToKICAgICBkaXNwYXRjaF9xdWV1
ZV90IG1fZGlzcGF0Y2hRdWV1ZTsKICNlbmRpZgogI2VsaWYgUExBVEZPUk0oV0lOKQotICAgIGNs
YXNzIFdvcmtJdGVtV2luIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8V29ya0l0ZW1XaW4+IHsK
KyAgICBjbGFzcyBXb3JrSXRlbVdpbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXb3Jr
SXRlbVdpbj4gewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8V29ya0l0
ZW1XaW4+IGNyZWF0ZShQYXNzT3duUHRyPFdvcmtJdGVtPiwgV29ya1F1ZXVlKik7CiAgICAgICAg
IHZpcnR1YWwgfldvcmtJdGVtV2luKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL0Nvbm5lY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL0Nvbm5lY3Rpb24uaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNzIsNyAr
NzIsNyBAQCBlbnVtIE1lc3NhZ2VTZW5kRmxhZ3MgewogICAgIH0gXAogd2hpbGUgKDApCiAKLWNs
YXNzIENvbm5lY3Rpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxDb25uZWN0aW9uPiB7Citj
bGFzcyBDb25uZWN0aW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENvbm5lY3Rpb24+
IHsKIHB1YmxpYzoKICAgICBjbGFzcyBNZXNzYWdlUmVjZWl2ZXIgewogICAgIHByb3RlY3RlZDoK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3dpbi9Xb3JrUXVldWVXaW4uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3dpbi9Xb3JrUXVldWVXaW4uY3BwCShy
ZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3dpbi9Xb3JrUXVldWVX
aW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTAsNyArMjEwLDcgQEAgdm9pZCBXb3JrUXVldWU6
OnNjaGVkdWxlV29yayhQYXNzT3duUHRyPAogICAgICAgICA6OlF1ZXVlVXNlcldvcmtJdGVtKHdv
cmtUaHJlYWRDYWxsYmFjaywgdGhpcywgV1RfRVhFQ1VURURFRkFVTFQpOwogfQogCi1zdHJ1Y3Qg
VGltZXJDb250ZXh0IDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8VGltZXJDb250ZXh0PiB7Citz
dHJ1Y3QgVGltZXJDb250ZXh0IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFRpbWVyQ29u
dGV4dD4gewogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRpbWVyQ29udGV4dD4gY3JlYXRlKCkgeyBy
ZXR1cm4gYWRvcHRSZWYobmV3IFRpbWVyQ29udGV4dCk7IH0KIAogICAgIFdvcmtRdWV1ZSogcXVl
dWU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5j
aGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1By
b2Nlc3NMYXVuY2hlci5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyAr
MzcsNyBAQCBjbGFzcyBRTG9jYWxTb2NrZXQ7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFz
cyBQcm9jZXNzTGF1bmNoZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxQcm9jZXNzTGF1bmNo
ZXI+IHsKK2NsYXNzIFByb2Nlc3NMYXVuY2hlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxQcm9jZXNzTGF1bmNoZXI+IHsKIHB1YmxpYzoKICAgICBjbGFzcyBDbGllbnQgewogICAgIHB1
YmxpYzoKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9UaHJlYWRMYXVu
Y2hlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9U
aHJlYWRMYXVuY2hlci5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9MYXVuY2hlci9UaHJlYWRMYXVuY2hlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICsz
Nyw3IEBAIGNsYXNzIFFMb2NhbFNvY2tldDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNz
IFRocmVhZExhdW5jaGVyIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8VGhyZWFkTGF1bmNoZXI+
IHsKK2NsYXNzIFRocmVhZExhdW5jaGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFRo
cmVhZExhdW5jaGVyPiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgQ2xpZW50IHsKICAgICBwdWJsaWM6
CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gODE1NjIpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3
IEBACisyMDExLTAzLTE5ICBCaWxsIEJ1ZGdlICA8YmJ1ZGdlQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgVGhyZWFk
U2FmZVNoYXJlZCB0byBUaHJlYWRTYWZlUmVmQ291bnRlZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY3MTQKKworICAgICAgICBObyBuZXcgdGVzdHMu
IEV4cG9zZXMgbm8gbmV3IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBzcmMvUGxhdGZvcm1N
ZXNzYWdlUG9ydENoYW5uZWwuaDoKKyAgICAgICAgKiBzcmMvV2ViV29ya2VyQmFzZS5jcHA6Cisg
ICAgICAgICogc3JjL1dvcmtlckZpbGVTeXN0ZW1DYWxsYmFja3NCcmlkZ2UuaDoKKyAgICAgICAg
KiBzcmMvV29ya2VyRmlsZVdyaXRlckNhbGxiYWNrc0JyaWRnZS5oOgorCiAyMDExLTAzLTE4ICBU
b255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBTZWlkZWwuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybU1lc3Nh
Z2VQb3J0Q2hhbm5lbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBNZXNz
YWdlUG9ydDsKIAogLy8gUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwgaXMgYSBwbGF0Zm9ybS1k
ZXBlbmRlbnQgaW50ZXJmYWNlIHRvIHRoZSByZW1vdGUgc2lkZSBvZiBhIG1lc3NhZ2UgY2hhbm5l
bC4KLWNsYXNzIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsIDogcHVibGljIFRocmVhZFNhZmVT
aGFyZWQ8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw+LAorY2xhc3MgUGxhdGZvcm1NZXNzYWdl
UG9ydENoYW5uZWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UGxhdGZvcm1NZXNzYWdl
UG9ydENoYW5uZWw+LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMg
V2ViS2l0OjpXZWJNZXNzYWdlUG9ydENoYW5uZWxDbGllbnQgewogcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIGNyZWF0ZUNoYW5uZWwoUGFzc1JlZlB0cjxNZXNzYWdlUG9ydD4sIFBhc3NSZWZQdHI8
TWVzc2FnZVBvcnQ+KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtl
ckJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldv
cmtlckJhc2UuY3BwCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYldvcmtlckJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBAIG5h
bWVzcGFjZSB7CiAKIC8vIFRoaXMgY2xhc3MgaXMgdXNlZCB0byByb3V0ZSB0aGUgcmVzdWx0IG9m
IHRoZSBXZWJXb3JrZXJCYXNlOjphbGxvd0RhdGFiYXNlCiAvLyBjYWxsIGJhY2sgdG8gdGhlIHdv
cmtlciBjb250ZXh0LgotY2xhc3MgQWxsb3dEYXRhYmFzZU1haW5UaHJlYWRCcmlkZ2UgOiBwdWJs
aWMgVGhyZWFkU2FmZVNoYXJlZDxBbGxvd0RhdGFiYXNlTWFpblRocmVhZEJyaWRnZT4geworY2xh
c3MgQWxsb3dEYXRhYmFzZU1haW5UaHJlYWRCcmlkZ2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNv
dW50ZWQ8QWxsb3dEYXRhYmFzZU1haW5UaHJlYWRCcmlkZ2U+IHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxBbGxvd0RhdGFiYXNlTWFpblRocmVhZEJyaWRnZT4gY3JlYXRlKFdlYldv
cmtlckJhc2UqIHdvcmtlciwgY29uc3QgV1RGOjpTdHJpbmcmIG1vZGUsIFdlYkNvbW1vbldvcmtl
ckNsaWVudCogY29tbW9uQ2xpZW50LCBXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFdURjo6U3RyaW5n
JiBuYW1lLCBjb25zdCBXVEY6OlN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0
aW1hdGVkU2l6ZSkKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Xb3Jr
ZXJGaWxlU3lzdGVtQ2FsbGJhY2tzQnJpZGdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV29ya2VyRmlsZVN5c3RlbUNhbGxiYWNrc0JyaWRnZS5oCShyZXZpc2lv
biA4MTU1MykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dvcmtlckZpbGVTeXN0ZW1D
YWxsYmFja3NCcmlkZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtNjYsNyArNjYsNyBAQCBzdHJ1Y3Qg
V2ViRmlsZVN5c3RlbUVudHJ5OwogLy8gIC0tPiBCcmlkZ2U6OmRpZFh4eE9uV29ya2VyVGhyZWFk
IGlzIGNhbGxlZCBvbiBXb3JrZXJUaHJlYWQKIC8vICAgICAgVGhpcyBjYWxscyB0aGUgb3JpZ2lu
YWwgY2FsbGJhY2tzIChtX2NhbGxiYWNrc09uV29ya2VyVGhyZWFkKSBhbmQKIC8vICAgICAgcmVs
ZWFzZXMgYSBzZWxmLXJlZmVyZW5jZSB0byB0aGUgYnJpZGdlLgotY2xhc3MgV29ya2VyRmlsZVN5
c3RlbUNhbGxiYWNrc0JyaWRnZSA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFdvcmtlckZpbGVT
eXN0ZW1DYWxsYmFja3NCcmlkZ2U+LCBwdWJsaWMgV2ViQ29yZTo6V29ya2VyQ29udGV4dDo6T2Jz
ZXJ2ZXIgeworY2xhc3MgV29ya2VyRmlsZVN5c3RlbUNhbGxiYWNrc0JyaWRnZSA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxXb3JrZXJGaWxlU3lzdGVtQ2FsbGJhY2tzQnJpZGdlPiwgcHVi
bGljIFdlYkNvcmU6OldvcmtlckNvbnRleHQ6Ok9ic2VydmVyIHsKIHB1YmxpYzoKICAgICB+V29y
a2VyRmlsZVN5c3RlbUNhbGxiYWNrc0JyaWRnZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9Xb3JrZXJGaWxlV3JpdGVyQ2FsbGJhY2tzQnJpZGdlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV29ya2VyRmlsZVdyaXRlckNhbGxiYWNrc0Jy
aWRnZS5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dv
cmtlckZpbGVXcml0ZXJDYWxsYmFja3NCcmlkZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyAr
MzgsNyBAQAogI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVh
ZFNhZmVTaGFyZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEFzeW5jRmlsZVdyaXRlckNsaWVudDsKQEAg
LTc5LDcgKzc5LDcgQEAgY2xhc3MgV2ViV29ya2VyQmFzZTsKIC8vIHNob3VsZCBjYWxsIHBvc3RT
aHV0ZG93blRvTWFpblRocmVhZCBiZWZvcmUgZHJvcHBpbmcgaXRzIHJlZmVyZW5jZSB0byB0aGUK
IC8vIGJyaWRnZS4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIFdlYkZpbGVXcml0ZXIgd2lsbCBiZSBj
bGVhcmVkIG9uIHRoZSBtYWluCiAvLyB0aHJlYWQgYW5kIHRoYXQgbm8gZnVydGhlciBjYWxscyB0
byB0aGUgV2ViRmlsZVdyaXRlckNsaWVudCB3aWxsIGJlIG1hZGUuCi1jbGFzcyBXb3JrZXJGaWxl
V3JpdGVyQ2FsbGJhY2tzQnJpZGdlIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8V29ya2VyRmls
ZVdyaXRlckNhbGxiYWNrc0JyaWRnZT4sIHB1YmxpYyBXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjpP
YnNlcnZlciwgcHVibGljIFdlYkZpbGVXcml0ZXJDbGllbnQgeworY2xhc3MgV29ya2VyRmlsZVdy
aXRlckNhbGxiYWNrc0JyaWRnZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXb3JrZXJG
aWxlV3JpdGVyQ2FsbGJhY2tzQnJpZGdlPiwgcHVibGljIFdlYkNvcmU6OldvcmtlckNvbnRleHQ6
Ok9ic2VydmVyLCBwdWJsaWMgV2ViRmlsZVdyaXRlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgfldv
cmtlckZpbGVXcml0ZXJDYWxsYmFja3NCcmlkZ2UoKTsKIApJbmRleDogVG9vbHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gODE1NjIpCisrKyBUb29s
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0wMy0xOSAg
QmlsbCBCdWRnZSAgPGJidWRnZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIFRocmVhZFNhZmVTaGFyZWQgdG8gVGhy
ZWFkU2FmZVJlZkNvdW50ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU2NzE0CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBFeHBvc2VzIG5vIG5ldyBm
dW5jdGlvbmFsaXR5LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRm9yd2FyZGluZ0hlYWRl
cnMvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg6IENvcGllZCBmcm9tIER1bXBSZW5kZXJUcmVl
L0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlU2hhcmVkLmguCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVTaGFyZWQuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL2RvLXdlYmNvcmUtcmVuYW1lOgorCiAyMDExLTAzLTE5
ICBBbnRvbiBEJ0F1cmlhICA8YWRhdXJpYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0Zvcndh
cmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL0R1bXBSZW5kZXJUcmVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlUmVmQ291
bnRlZC5oCShyZXZpc2lvbiA4MTUyOCkJKGZyb20gVG9vbHMvRHVtcFJlbmRlclRyZWUvRm9yd2Fy
ZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVTaGFyZWQuaDo4MTUyOCkKKysrIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UaHJl
YWRTYWZlU2hhcmVkLmg+CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9Gb3J3YXJkaW5nSGVh
ZGVycy93dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1w
UmVuZGVyVHJlZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaAko
cmV2aXNpb24gODE1MjgpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9Gb3J3YXJkaW5nSGVhZGVy
cy93dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaAkod29ya2luZyBjb3B5KQpAQCAtMSArMSBAQAot
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1RocmVhZFNhZmVTaGFyZWQuaD4KKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgpJbmRleDogVG9vbHMvRHVtcFJl
bmRlclRyZWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVTaGFyZWQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFk
U2FmZVNoYXJlZC5oCShyZXZpc2lvbiA4MTUyOCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0Zv
cndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlU2hhcmVkLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEgKzAsMCBAQAotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1RocmVhZFNhZmVTaGFyZWQuaD4K
SW5kZXg6IFRvb2xzL1NjcmlwdHMvZG8td2ViY29yZS1yZW5hbWUKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvU2NyaXB0cy9kby13ZWJjb3JlLXJlbmFtZQkocmV2aXNpb24gODE1MjgpCisrKyBUb29scy9T
Y3JpcHRzL2RvLXdlYmNvcmUtcmVuYW1lCSh3b3JraW5nIGNvcHkpCkBAIC0xMjUsOCArMTI1LDYg
QEAgbXkgJXJlbmFtZXNDb250ZW1wbGF0ZWRGb3JUaGVGdXR1cmUgPSAoCiAgICAgIktVUkxNYWMi
ID0+ICJVUkxNYWMiLAogICAgICJLVVJMX2giID0+ICJVUkxfaCIsCiAKLSAgICAiVGhyZWFkU2Fm
ZVNoYXJlZEJhc2UiID0+ICJUaHJlYWRTYWZlUmVmQ291bnRlZEJhc2UiLAotICAgICJUaHJlYWRT
YWZlU2hhcmVkIiA9PiAiVGhyZWFkU2FmZVJlZkNvdW50ZWQiLAogICAgICJUcmVlU2hhcmVkIiA9
PiAiVHJlZVJlZkNvdW50ZWQiLAogCiAgICAgIlN0cmluZ0ltcGwiID0+ICJTaGFyZWRTdHJpbmci
LAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86276</attachid>
            <date>2011-03-19 17:57:15 -0700</date>
            <delta_ts>2011-03-20 08:14:51 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>refcounted.txt</filename>
            <type>text/plain</type>
            <size>74235</size>
            <attacher name="Bill Budge">bbudge</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODE1NjIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAK
KzIwMTEtMDMtMTkgIEJpbGwgQnVkZ2UgIDxiYnVkZ2VAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBUaHJlYWRTYWZl
U2hhcmVkIHRvIFRocmVhZFNhZmVSZWZDb3VudGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjcxNAorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gRXhw
b3NlcyBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIEFQSS9KU0NsYXNzUmVmLmg6
CisgICAgICAgICogQVBJL09wYXF1ZUpTU3RyaW5nLmg6CisgICAgICAgICogR05VbWFrZWZpbGUu
YW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZ3lwaToKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvQXRvbWljcy5oOgorICAgICAg
ICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvQ3Jvc3NUaHJlYWRSZWZDb3Vu
dGVkLmg6CisgICAgICAgIChXVEY6OkNyb3NzVGhyZWFkUmVmQ291bnRlZDo6Q3Jvc3NUaHJlYWRS
ZWZDb3VudGVkKToKKyAgICAgICAgKFdURjo6Ojpjcm9zc1RocmVhZENvcHkpOgorICAgICAgICAq
IHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oOiBDb3BpZWQgZnJvbSB3dGYvVGhyZWFkU2FmZVNo
YXJlZC5oLgorICAgICAgICAoV1RGOjpUaHJlYWRTYWZlUmVmQ291bnRlZEJhc2U6OlRocmVhZFNh
ZmVSZWZDb3VudGVkQmFzZSk6CisgICAgICAgIChXVEY6OlRocmVhZFNhZmVSZWZDb3VudGVkQmFz
ZTo6cmVmKToKKyAgICAgICAgKFdURjo6VGhyZWFkU2FmZVJlZkNvdW50ZWRCYXNlOjpyZWZDb3Vu
dCk6CisgICAgICAgIChXVEY6OlRocmVhZFNhZmVSZWZDb3VudGVkQmFzZTo6ZGVyZWZCYXNlKToK
KyAgICAgICAgKFdURjo6VGhyZWFkU2FmZVJlZkNvdW50ZWQ6OlRocmVhZFNhZmVSZWZDb3VudGVk
KToKKyAgICAgICAgKiB3dGYvVGhyZWFkU2FmZVNoYXJlZC5oOiBSZW1vdmVkLgorICAgICAgICAq
IHd0Zi9UaHJlYWRpbmcuaDoKKwogMjAxMS0wMy0xOSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJv
Z2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDgxNTUzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC01NTEs
NyArNTUxLDcgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9UaHJlYWRpbmcuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJl
YWRpbmdQcmltaXRpdmVzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkaW5n
UHRocmVhZHMuY3BwIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFNhZmVTaGFy
ZWQuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFNwZWNpZmljLmggXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvVHlwZVRyYWl0cy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvVHlwZVRyYWl0cy5oIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5neXBpCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0xOTksNyArMTk5LDcgQEAK
ICAgICAgICAgICAgICd3dGYvU3RkTGliRXh0cmFzLmgnLAogICAgICAgICAgICAgJ3d0Zi9TdHJp
bmdFeHRyYXMuaCcsCiAgICAgICAgICAgICAnd3RmL1N0cmluZ0hhc2hlci5oJywKLSAgICAgICAg
ICAgICd3dGYvVGhyZWFkU2FmZVNoYXJlZC5oJywKKyAgICAgICAgICAgICd3dGYvVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQuaCcsCiAgICAgICAgICAgICAnd3RmL1RocmVhZFNwZWNpZmljLmgnLAogICAg
ICAgICAgICAgJ3d0Zi9UaHJlYWRpbmcuaCcsCiAgICAgICAgICAgICAnd3RmL1RocmVhZGluZ1By
aW1pdGl2ZXMuaCcsCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuaAko
cmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYu
aAkod29ya2luZyBjb3B5KQpAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgSlNDOjpXZWFr
R0NQdHI8SlNDOjpKU09iamVjdD4gY2FjaGVkUHJvdG90eXBlOwogfTsKIAotc3RydWN0IE9wYXF1
ZUpTQ2xhc3MgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxPcGFxdWVKU0NsYXNzPiB7CitzdHJ1
Y3QgT3BhcXVlSlNDbGFzcyA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxPcGFxdWVKU0Ns
YXNzPiB7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNDbGFzcz4gY3JlYXRlKGNvbnN0
IEpTQ2xhc3NEZWZpbml0aW9uKik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNDbGFz
cz4gY3JlYXRlTm9BdXRvbWF0aWNQcm90b3R5cGUoY29uc3QgSlNDbGFzc0RlZmluaXRpb24qKTsK
ICAgICB+T3BhcXVlSlNDbGFzcygpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9P
cGFxdWVKU1N0cmluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
T3BhcXVlSlNTdHJpbmcuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL09wYXF1ZUpTU3RyaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgSlNHbG9iYWxEYXRhOwogfQogCi1zdHJ1Y3QgT3Bh
cXVlSlNTdHJpbmcgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxPcGFxdWVKU1N0cmluZz4gewor
c3RydWN0IE9wYXF1ZUpTU3RyaW5nIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE9wYXF1
ZUpTU3RyaW5nPiB7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxPcGFxdWVKU1N0cmluZz4gY3Jl
YXRlKCkgLy8gbnVsbAogICAgIHsKQEAgLTU0LDcgKzU0LDcgQEAgc3RydWN0IE9wYXF1ZUpTU3Ry
aW5nIDogcHVibGljIFRocmVhZFNhZgogICAgIEpTQzo6SWRlbnRpZmllciBpZGVudGlmaWVyKEpT
Qzo6SlNHbG9iYWxEYXRhKikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIFdU
Rjo6VGhyZWFkU2FmZVNoYXJlZDxPcGFxdWVKU1N0cmluZz47CisgICAgZnJpZW5kIGNsYXNzIFdU
Rjo6VGhyZWFkU2FmZVJlZkNvdW50ZWQ8T3BhcXVlSlNTdHJpbmc+OwogCiAgICAgT3BhcXVlSlNT
dHJpbmcoKQogICAgICAgICA6IG1fY2hhcmFjdGVycygwKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNw
cm9qCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTk2NSw3ICs5NjUs
NyBAQAogCQkJPgogCQk8L0ZpbGU+CiAJCTxGaWxlCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0
ZlxUaHJlYWRTYWZlU2hhcmVkLmgiCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0ZlxUaHJlYWRT
YWZlUmVmQ291bnRlZC5oIgogCQkJPgogCQk8L0ZpbGU+CiAJCTxGaWxlCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtNTU1LDcgKzU1NSw3IEBACiAJCUJDMzEzNTY1MEYzMDJGQTMwMDNERkQzQSAvKiBE
ZWJ1Z2dlckFjdGl2YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMzMTM1NjMwRjMwMkZBMzAwM0RGRDNBIC8qIERlYnVnZ2VyQWN0aXZhdGlv
bi5jcHAgKi87IH07CiAJCUJDNUY3QkJFMTE4MjNCNTkwMDUyQzAyQyAvKiBBdG9taWNzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzVGN0JCQjExODIz
QjU5MDA1MkMwMkMgLyogQXRvbWljcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUJDNUY3QkJGMTE4MjNCNTkwMDUyQzAyQyAvKiBUaHJlYWRpbmdQ
cmltaXRpdmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzVGN0JCQzExODIzQjU5MDA1MkMwMkMgLyogVGhyZWFkaW5nUHJpbWl0aXZlcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUJDNUY3QkMwMTE4
MjNCNTkwMDUyQzAyQyAvKiBUaHJlYWRTYWZlU2hhcmVkLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzVGN0JCRDExODIzQjU5MDA1MkMwMkMgLyogVGhy
ZWFkU2FmZVNoYXJlZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUJDNUY3QkMwMTE4MjNCNTkwMDUyQzAyQyAvKiBUaHJlYWRTYWZlUmVmQ291bnRl
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1RjdC
QkQxMTgyM0I1OTAwNTJDMDJDIC8qIFRocmVhZFNhZmVSZWZDb3VudGVkLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM2QUFBRTUwRTFGNDI2NTAw
QUQ4N0Q4IC8qIENsYXNzSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM2QUFBRTQwRTFGNDI2NTAwQUQ4N0Q4IC8qIENsYXNzSW5mby5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNzU2RkM5MEUy
MDMxQjIwMERFN0QxMiAvKiBKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NTZGQzcwRTIwMzFCMjAwREU3RDEy
IC8qIEpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmggKi87IH07CiAJCUJDN0Y4RkI5MEUxOUQxQzMw
MDg2MzJDMCAvKiBKU051bWJlckNlbGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDN0Y4RkI4MEUxOUQxQzMwMDg2MzJDMCAvKiBKU051bWJlckNlbGwu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE3
Miw3ICsxMTcyLDcgQEAKIAkJQkMzMzdCRUEwRTFCMDBDQjAwNzY5MThBIC8qIEVycm9yLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVycm9yLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1RjdCQkIxMTgyM0I1OTAwNTJDMDJDIC8qIEF0b21pY3Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXRvbWljcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzVGN0JCQzExODIzQjU5MDA1MkMwMkMgLyogVGhyZWFkaW5n
UHJpbWl0aXZlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaHJlYWRpbmdQ
cmltaXRpdmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDNUY3QkJEMTE4MjNC
NTkwMDUyQzAyQyAvKiBUaHJlYWRTYWZlU2hhcmVkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFRocmVhZFNhZmVTaGFyZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQkM1RjdCQkQxMTgyM0I1OTAwNTJDMDJDIC8qIFRocmVhZFNhZmVSZWZDb3VudGVkLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRocmVhZFNhZmVSZWZDb3VudGVkLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNkFBQUU0MEUxRjQyNjUwMEFEODdEOCAvKiBD
bGFzc0luZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xhc3NJbmZvLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzU2RkM2MEUyMDMxQjIwMERFN0QxMiAv
KiBKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDNzU2RkM3MEUyMDMxQjIwMERFN0QxMiAvKiBKU0dsb2JhbE9iamVjdEZ1
bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0dsb2JhbE9iamVj
dEZ1bmN0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY4Miw3ICsxNjgy
LDcgQEAKIAkJCQlFMUVFNzkyMjBENkM5NUNEMDBGRUEzQkEgLyogVGhyZWFkaW5nLmggKi8sCiAJ
CQkJQkM1RjdCQkMxMTgyM0I1OTAwNTJDMDJDIC8qIFRocmVhZGluZ1ByaW1pdGl2ZXMuaCAqLywK
IAkJCQlFMUVFNzkzQzBENkM5QjkyMDBGRUEzQkEgLyogVGhyZWFkaW5nUHRocmVhZHMuY3BwICov
LAotCQkJCUJDNUY3QkJEMTE4MjNCNTkwMDUyQzAyQyAvKiBUaHJlYWRTYWZlU2hhcmVkLmggKi8s
CisJCQkJQkM1RjdCQkQxMTgyM0I1OTAwNTJDMDJDIC8qIFRocmVhZFNhZmVSZWZDb3VudGVkLmgg
Ki8sCiAJCQkJRTFCN0M4QkQwREEzQTMzNjAwNzRCMERDIC8qIFRocmVhZFNwZWNpZmljLmggKi8s
CiAJCQkJMEIzMzBDMjYwRjM4QzYyMzAwNjkyREUzIC8qIFR5cGVUcmFpdHMuY3BwICovLAogCQkJ
CTBCNEQ3RTYyMEYzMTlBQzgwMEFEN0U1OCAvKiBUeXBlVHJhaXRzLmggKi8sCkBAIC0yNDgwLDcg
KzI0ODAsNyBAQAogCQkJCTE4QkFCNTU0MTBEQUUwNjYwMDBEOTQ1QiAvKiBUaHJlYWRJZGVudGlm
aWVyRGF0YVB0aHJlYWRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ3MDBFMTZGNUNEMDBC
MzQ0NjAgLyogVGhyZWFkaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVGN0JCRjExODIzQjU5
MDA1MkMwMkMgLyogVGhyZWFkaW5nUHJpbWl0aXZlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkM1
RjdCQzAxMTgyM0I1OTAwNTJDMDJDIC8qIFRocmVhZFNhZmVTaGFyZWQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUJDNUY3QkMwMTE4MjNCNTkwMDUyQzAyQyAvKiBUaHJlYWRTYWZlUmVmQ291bnRlZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NzEwRTE2RjVDRDAwQjM0NDYwIC8qIFRocmVhZFNw
ZWNpZmljLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzM4NjU1NjExODY5N0I0MDA1NDAyNzkgLyog
VGh1bmtHZW5lcmF0b3JzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEE0MkU0MDBGNEY2MEVFMDA1
OTkwOTkgLyogVGltZW91dENoZWNrZXIuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9BdG9taWNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9BdG9taWNzLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9BdG9taWNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4LDcgQEAKIG5h
bWVzcGFjZSBXVEYgewogCiAjaWYgT1MoV0lORE9XUykKLSNkZWZpbmUgV1RGX1VTRV9MT0NLRlJF
RV9USFJFQURTQUZFU0hBUkVEIDEKKyNkZWZpbmUgV1RGX1VTRV9MT0NLRlJFRV9USFJFQURTQUZF
UkVGQ09VTlRFRCAxCiAKICNpZiBDT01QSUxFUihNSU5HVykgfHwgQ09NUElMRVIoTVNWQzdfT1Jf
TE9XRVIpIHx8IE9TKFdJTkNFKQogaW5saW5lIGludCBhdG9taWNJbmNyZW1lbnQoaW50KiBhZGRl
bmQpIHsgcmV0dXJuIEludGVybG9ja2VkSW5jcmVtZW50KHJlaW50ZXJwcmV0X2Nhc3Q8bG9uZyo+
KGFkZGVuZCkpOyB9CkBAIC04OSw3ICs4OSw3IEBAIGlubGluZSBpbnQgYXRvbWljRGVjcmVtZW50
KGludCB2b2xhdGlsZSoKICNlbmRpZgogCiAjZWxpZiBPUyhEQVJXSU4pCi0jZGVmaW5lIFdURl9V
U0VfTE9DS0ZSRUVfVEhSRUFEU0FGRVNIQVJFRCAxCisjZGVmaW5lIFdURl9VU0VfTE9DS0ZSRUVf
VEhSRUFEU0FGRVJFRkNPVU5URUQgMQogCiBpbmxpbmUgaW50IGF0b21pY0luY3JlbWVudChpbnQg
dm9sYXRpbGUqIGFkZGVuZCkgeyByZXR1cm4gT1NBdG9taWNJbmNyZW1lbnQzMkJhcnJpZXIoY29u
c3RfY2FzdDxpbnQqPihhZGRlbmQpKTsgfQogaW5saW5lIGludCBhdG9taWNEZWNyZW1lbnQoaW50
IHZvbGF0aWxlKiBhZGRlbmQpIHsgcmV0dXJuIE9TQXRvbWljRGVjcmVtZW50MzJCYXJyaWVyKGNv
bnN0X2Nhc3Q8aW50Kj4oYWRkZW5kKSk7IH0KQEAgLTEwMCw3ICsxMDAsNyBAQCBpbmxpbmUgaW50
IGF0b21pY0luY3JlbWVudChpbnQgdm9sYXRpbGUqCiBpbmxpbmUgaW50IGF0b21pY0RlY3JlbWVu
dChpbnQgdm9sYXRpbGUqIGFkZGVuZCkgeyByZXR1cm4gYW5kcm9pZF9hdG9taWNfZGVjKGFkZGVu
ZCk7IH0KIAogI2VsaWYgQ09NUElMRVIoR0NDKSAmJiAhQ1BVKFNQQVJDNjQpICYmICFPUyhTWU1C
SUFOKSAvLyBzaXplb2YoX0F0b21pY193b3JkKSAhPSBzaXplb2YoaW50KSBvbiBzcGFyYzY0IGdj
YwotI2RlZmluZSBXVEZfVVNFX0xPQ0tGUkVFX1RIUkVBRFNBRkVTSEFSRUQgMQorI2RlZmluZSBX
VEZfVVNFX0xPQ0tGUkVFX1RIUkVBRFNBRkVSRUZDT1VOVEVEIDEKIAogaW5saW5lIGludCBhdG9t
aWNJbmNyZW1lbnQoaW50IHZvbGF0aWxlKiBhZGRlbmQpIHsgcmV0dXJuIF9fZ251X2N4eDo6X19l
eGNoYW5nZV9hbmRfYWRkKGFkZGVuZCwgMSkgKyAxOyB9CiBpbmxpbmUgaW50IGF0b21pY0RlY3Jl
bWVudChpbnQgdm9sYXRpbGUqIGFkZGVuZCkgeyByZXR1cm4gX19nbnVfY3h4OjpfX2V4Y2hhbmdl
X2FuZF9hZGQoYWRkZW5kLCAtMSkgLSAxOyB9CkBAIC0xMDksNyArMTA5LDcgQEAgaW5saW5lIGlu
dCBhdG9taWNEZWNyZW1lbnQoaW50IHZvbGF0aWxlKgogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAot
I2lmIFVTRShMT0NLRlJFRV9USFJFQURTQUZFU0hBUkVEKQorI2lmIFVTRShMT0NLRlJFRV9USFJF
QURTQUZFUkVGQ09VTlRFRCkKIHVzaW5nIFdURjo6YXRvbWljRGVjcmVtZW50OwogdXNpbmcgV1RG
OjphdG9taWNJbmNyZW1lbnQ7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw3IEBAIFNF
VChXVEZfSEVBREVSUwogICAgIFRDU3BpbkxvY2suaAogICAgIFRDU3lzdGVtQWxsb2MuaAogICAg
IFRocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuaAotICAgIFRocmVhZFNhZmVTaGFyZWQuaAor
ICAgIFRocmVhZFNhZmVSZWZDb3VudGVkLmgKICAgICBUaHJlYWRTcGVjaWZpYy5oCiAgICAgVGhy
ZWFkaW5nLmgKICAgICBUaHJlYWRpbmdQcmltaXRpdmVzLmgKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvQ3Jvc3NUaHJlYWRSZWZDb3VudGVkLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9Dcm9zc1RocmVhZFJlZkNvdW50ZWQuaAkocmV2aXNpb24gODE1
NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0Nyb3NzVGhyZWFkUmVmQ291bnRlZC5o
CSh3b3JraW5nIGNvcHkpCkBAIC00MCw4ICs0MCw4IEBAIG5hbWVzcGFjZSBXVEYgewogCiAgICAg
Ly8gVXNlZCB0byBhbGxvd2luZyBzaGFyaW5nIGRhdGEgYWNyb3NzIGNsYXNzZXMgYW5kIHRocmVh
ZHMgKGxpa2UgVGhyZWFkZWRTYWZlU2hhcmVkKS4KICAgICAvLwotICAgIC8vIFdoeSBub3QganVz
dCB1c2UgVGhyZWFkU2FmZVNoYXJlZD8KLSAgICAvLyBUaHJlYWRTYWZlU2hhcmVkIGNhbiBoYXZl
IGEgc2lnbmlmaWNhbnQgcGVyZiBpbXBhY3Qgd2hlbiB1c2VkIGluIGxvdyBsZXZlbCBjbGFzc2Vz
CisgICAgLy8gV2h5IG5vdCBqdXN0IHVzZSBUaHJlYWRTYWZlUmVmQ291bnRlZD8KKyAgICAvLyBU
aHJlYWRTYWZlUmVmQ291bnRlZCBjYW4gaGF2ZSBhIHNpZ25pZmljYW50IHBlcmYgaW1wYWN0IHdo
ZW4gdXNlZCBpbiBsb3cgbGV2ZWwgY2xhc3NlcwogICAgIC8vIChsaWtlIFVTdHJpbmcpIHRoYXQg
Z2V0IHJlZi9kZXJlZidlZCBhIGxvdC4gVGhpcyBjbGFzcyBoYXMgdGhlIGJlbmVmaXQgb2YgZG9p
bmcgZmFzdCByZWYKICAgICAvLyBjb3VudHMgbGlrZSBSZWZQdHIgd2hlbmV2ZXIgcG9zc2libGUs
IGJ1dCBpdCBoYXMgdGhlIGRvd25zaWRlIHRoYXQgeW91IG5lZWQgdG8gY29weSBpdAogICAgIC8v
IHRvIHVzZSBpdCBvbiBhbm90aGVyIHRocmVhZC4KQEAgLTcyLDcgKzcyLDcgQEAgbmFtZXNwYWNl
IFdURiB7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIENyb3NzVGhyZWFkUmVm
Q291bnRlZChUKiBkYXRhLCBUaHJlYWRTYWZlU2hhcmVkQmFzZSogdGhyZWFkZWRDb3VudGVyKQor
ICAgICAgICBDcm9zc1RocmVhZFJlZkNvdW50ZWQoVCogZGF0YSwgVGhyZWFkU2FmZVJlZkNvdW50
ZWRCYXNlKiB0aHJlYWRlZENvdW50ZXIpCiAgICAgICAgICAgICA6IG1fdGhyZWFkU2FmZVJlZkNv
dW50ZXIodGhyZWFkZWRDb3VudGVyKQogICAgICAgICAgICAgLCBtX2RhdGEoZGF0YSkKICNpZm5k
ZWYgTkRFQlVHCkBAIC05Nyw3ICs5Nyw3IEBAIG5hbWVzcGFjZSBXVEYgewogI2VuZGlmCiAKICAg
ICAgICAgUmVmQ291bnRlZEJhc2UgbV9yZWZDb3VudGVyOwotICAgICAgICBUaHJlYWRTYWZlU2hh
cmVkQmFzZSogbV90aHJlYWRTYWZlUmVmQ291bnRlcjsKKyAgICAgICAgVGhyZWFkU2FmZVJlZkNv
dW50ZWRCYXNlKiBtX3RocmVhZFNhZmVSZWZDb3VudGVyOwogICAgICAgICBUKiBtX2RhdGE7CiAj
aWZuZGVmIE5ERUJVRwogICAgICAgICBUaHJlYWRJZGVudGlmaWVyIG1fdGhyZWFkSWQ7CkBAIC0x
NTQsNyArMTU0LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIGlmIChtX3RocmVhZFNhZmVS
ZWZDb3VudGVyKQogICAgICAgICAgICAgbV90aHJlYWRTYWZlUmVmQ291bnRlci0+cmVmKCk7CiAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fdGhyZWFkU2FmZVJlZkNvdW50ZXIgPSBuZXcgVGhy
ZWFkU2FmZVNoYXJlZEJhc2UoMik7CisgICAgICAgICAgICBtX3RocmVhZFNhZmVSZWZDb3VudGVy
ID0gbmV3IFRocmVhZFNhZmVSZWZDb3VudGVkQmFzZSgyKTsKIAogICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IENyb3NzVGhyZWFkUmVmQ291bnRlZDxUPihtX2RhdGEsIG1fdGhyZWFkU2FmZVJl
ZkNvdW50ZXIpKTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVh
ZFNhZmVSZWZDb3VudGVkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oCShyZXZpc2lvbiA4MTU1MykJKGZyb20gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRTYWZlU2hhcmVkLmg6ODE1NTMpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3IEp1c3Rp
biBIYXlnb29kIChqaGF5Z29vZEByZWFrdGl4LmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorICog
My4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5v
ciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKgorICogTm90ZTogVGhlIGltcGxlbWVu
dGF0aW9ucyBvZiBJbnRlcmxvY2tlZEluY3JlbWVudCBhbmQgSW50ZXJsb2NrZWREZWNyZW1lbnQg
YXJlIGJhc2VkCisgKiBvbiBhdG9taWNfaW5jcmVtZW50IGFuZCBhdG9taWNfZXhjaGFuZ2VfYW5k
X2FkZCBmcm9tIHRoZSBCb29zdCBDKysgTGlicmFyeS4gVGhlIGxpY2Vuc2UKKyAqIGlzIHZpcnR1
YWxseSBpZGVudGljYWwgdG8gdGhlIEFwcGxlIGxpY2Vuc2UgYWJvdmUgYnV0IGlzIGluY2x1ZGVk
IGhlcmUgZm9yIGNvbXBsZXRlbmVzcy4KKyAqCisgKiBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlIC0g
VmVyc2lvbiAxLjAgLSBBdWd1c3QgMTd0aCwgMjAwMworICogCisgKiBQZXJtaXNzaW9uIGlzIGhl
cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvciBvcmdhbml6YXRp
b24KKyAqIG9idGFpbmluZyBhIGNvcHkgb2YgdGhlIHNvZnR3YXJlIGFuZCBhY2NvbXBhbnlpbmcg
ZG9jdW1lbnRhdGlvbiBjb3ZlcmVkIGJ5CisgKiB0aGlzIGxpY2Vuc2UgKHRoZSAiU29mdHdhcmUi
KSB0byB1c2UsIHJlcHJvZHVjZSwgZGlzcGxheSwgZGlzdHJpYnV0ZSwKKyAqIGV4ZWN1dGUsIGFu
ZCB0cmFuc21pdCB0aGUgU29mdHdhcmUsIGFuZCB0byBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3Mg
b2YgdGhlCisgKiBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCB0aGlyZC1wYXJ0aWVzIHRvIHdob20g
dGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0bworICogZG8gc28sIGFsbCBzdWJqZWN0IHRvIHRo
ZSBmb2xsb3dpbmc6CisgKiAKKyAqIFRoZSBjb3B5cmlnaHQgbm90aWNlcyBpbiB0aGUgU29mdHdh
cmUgYW5kIHRoaXMgZW50aXJlIHN0YXRlbWVudCwgaW5jbHVkaW5nCisgKiB0aGUgYWJvdmUgbGlj
ZW5zZSBncmFudCwgdGhpcyByZXN0cmljdGlvbiBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LAorICogbXVzdCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgaW4g
d2hvbGUgb3IgaW4gcGFydCwgYW5kCisgKiBhbGwgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU29m
dHdhcmUsIHVubGVzcyBzdWNoIGNvcGllcyBvciBkZXJpdmF0aXZlCisgKiB3b3JrcyBhcmUgc29s
ZWx5IGluIHRoZSBmb3JtIG9mIG1hY2hpbmUtZXhlY3V0YWJsZSBvYmplY3QgY29kZSBnZW5lcmF0
ZWQgYnkKKyAqIGEgc291cmNlIGxhbmd1YWdlIHByb2Nlc3Nvci4KKyAqIAorICogVEhFIFNPRlRX
QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVY
UFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UsIFRJVExFIEFORCBOT04tSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVAorICogU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SIEFOWU9ORSBESVNUUklCVVRJTkcgVEhFIFNPRlRX
QVJFIEJFIExJQUJMRQorICogRk9SIEFOWSBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9V
VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI
RVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworCisjaWZuZGVmIFRocmVhZFNh
ZmVTaGFyZWRfaAorI2RlZmluZSBUaHJlYWRTYWZlU2hhcmVkX2gKKworI2luY2x1ZGUgIlBsYXRm
b3JtLmgiCisKKyNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRp
bmdQcmltaXRpdmVzLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBUaHJlYWRTYWZlU2hh
cmVkQmFzZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGhyZWFkU2FmZVNoYXJlZEJhc2Up
OyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBUaHJlYWRTYWZlU2hhcmVk
QmFzZShpbnQgaW5pdGlhbFJlZkNvdW50ID0gMSkKKyAgICAgICAgOiBtX3JlZkNvdW50KGluaXRp
YWxSZWZDb3VudCkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCByZWYoKQorICAgIHsKKyNpZiBV
U0UoTE9DS0ZSRUVfVEhSRUFEU0FGRVNIQVJFRCkKKyAgICAgICAgYXRvbWljSW5jcmVtZW50KCZt
X3JlZkNvdW50KTsKKyNlbHNlCisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsK
KyAgICAgICAgKyttX3JlZkNvdW50OworI2VuZGlmCisgICAgfQorCisgICAgYm9vbCBoYXNPbmVS
ZWYoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJlZkNvdW50KCkgPT0gMTsKKyAgICB9CisKKyAg
ICBpbnQgcmVmQ291bnQoKSBjb25zdAorICAgIHsKKyNpZiAhVVNFKExPQ0tGUkVFX1RIUkVBRFNB
RkVTSEFSRUQpCisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyNlbmRpZgor
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50IGNvbnN0IHZvbGF0aWxlICY+KG1fcmVmQ291
bnQpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIC8vIFJldHVybnMgd2hldGhlciB0aGUgcG9p
bnRlciBzaG91bGQgYmUgZnJlZWQgb3Igbm90LgorICAgIGJvb2wgZGVyZWZCYXNlKCkKKyAgICB7
CisjaWYgVVNFKExPQ0tGUkVFX1RIUkVBRFNBRkVTSEFSRUQpCisgICAgICAgIGlmIChhdG9taWNE
ZWNyZW1lbnQoJm1fcmVmQ291bnQpIDw9IDApCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyNl
bHNlCisgICAgICAgIGludCByZWZDb3VudDsKKyAgICAgICAgeworICAgICAgICAgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgICAgICAgICAgLS1tX3JlZkNvdW50OworICAgICAg
ICAgICAgcmVmQ291bnQgPSBtX3JlZkNvdW50OworICAgICAgICB9CisgICAgICAgIGlmIChyZWZD
b3VudCA8PSAwKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKworcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPgorICAg
IGZyaWVuZCBjbGFzcyBDcm9zc1RocmVhZFJlZkNvdW50ZWQ7CisKKyAgICBpbnQgbV9yZWZDb3Vu
dDsKKyNpZiAhVVNFKExPQ0tGUkVFX1RIUkVBRFNBRkVTSEFSRUQpCisgICAgbXV0YWJsZSBNdXRl
eCBtX211dGV4OworI2VuZGlmCit9OworCit0ZW1wbGF0ZTxjbGFzcyBUPiBjbGFzcyBUaHJlYWRT
YWZlU2hhcmVkIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWRCYXNlIHsKK3B1YmxpYzoKKyAgICB2
b2lkIGRlcmVmKCkKKyAgICB7CisgICAgICAgIGlmIChkZXJlZkJhc2UoKSkKKyAgICAgICAgICAg
IGRlbGV0ZSBzdGF0aWNfY2FzdDxUKj4odGhpcyk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAg
VGhyZWFkU2FmZVNoYXJlZCgpCisgICAgeworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdU
RgorCit1c2luZyBXVEY6OlRocmVhZFNhZmVTaGFyZWQ7CisKKyNlbmRpZiAvLyBUaHJlYWRTYWZl
U2hhcmVkX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkU2FmZVJlZkNv
dW50ZWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFNh
ZmVSZWZDb3VudGVkLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw4ICs1Niw4
IEBACiAgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCiAgKi8KIAotI2lmbmRlZiBUaHJlYWRT
YWZlU2hhcmVkX2gKLSNkZWZpbmUgVGhyZWFkU2FmZVNoYXJlZF9oCisjaWZuZGVmIFRocmVhZFNh
ZmVSZWZDb3VudGVkX2gKKyNkZWZpbmUgVGhyZWFkU2FmZVJlZkNvdW50ZWRfaAogCiAjaW5jbHVk
ZSAiUGxhdGZvcm0uaCIKIApAQCAtNjYsMTcgKzY2LDE4IEBACiAKIG5hbWVzcGFjZSBXVEYgewog
Ci1jbGFzcyBUaHJlYWRTYWZlU2hhcmVkQmFzZSB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
VGhyZWFkU2FmZVNoYXJlZEJhc2UpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK2NsYXNzIFRo
cmVhZFNhZmVSZWZDb3VudGVkQmFzZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGhyZWFk
U2FmZVJlZkNvdW50ZWRCYXNlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBUaHJlYWRTYWZlU2hhcmVkQmFzZShpbnQgaW5pdGlhbFJlZkNvdW50ID0gMSkKKyAg
ICBUaHJlYWRTYWZlUmVmQ291bnRlZEJhc2UoaW50IGluaXRpYWxSZWZDb3VudCA9IDEpCiAgICAg
ICAgIDogbV9yZWZDb3VudChpbml0aWFsUmVmQ291bnQpCiAgICAgewogICAgIH0KIAogICAgIHZv
aWQgcmVmKCkKICAgICB7Ci0jaWYgVVNFKExPQ0tGUkVFX1RIUkVBRFNBRkVTSEFSRUQpCisjaWYg
VVNFKExPQ0tGUkVFX1RIUkVBRFNBRkVSRUZDT1VOVEVEKQogICAgICAgICBhdG9taWNJbmNyZW1l
bnQoJm1fcmVmQ291bnQpOwogI2Vsc2UKICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0
ZXgpOwpAQCAtOTEsNyArOTIsNyBAQCBwdWJsaWM6CiAKICAgICBpbnQgcmVmQ291bnQoKSBjb25z
dAogICAgIHsKLSNpZiAhVVNFKExPQ0tGUkVFX1RIUkVBRFNBRkVTSEFSRUQpCisjaWYgIVVTRShM
T0NLRlJFRV9USFJFQURTQUZFUkVGQ09VTlRFRCkKICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fbXV0ZXgpOwogI2VuZGlmCiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQgY29uc3Qg
dm9sYXRpbGUgJj4obV9yZWZDb3VudCk7CkBAIC0xMDEsNyArMTAyLDcgQEAgcHJvdGVjdGVkOgog
ICAgIC8vIFJldHVybnMgd2hldGhlciB0aGUgcG9pbnRlciBzaG91bGQgYmUgZnJlZWQgb3Igbm90
LgogICAgIGJvb2wgZGVyZWZCYXNlKCkKICAgICB7Ci0jaWYgVVNFKExPQ0tGUkVFX1RIUkVBRFNB
RkVTSEFSRUQpCisjaWYgVVNFKExPQ0tGUkVFX1RIUkVBRFNBRkVSRUZDT1VOVEVEKQogICAgICAg
ICBpZiAoYXRvbWljRGVjcmVtZW50KCZtX3JlZkNvdW50KSA8PSAwKQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAjZWxzZQpAQCAtMTIyLDEyICsxMjMsMTIgQEAgcHJpdmF0ZToKICAgICBmcmll
bmQgY2xhc3MgQ3Jvc3NUaHJlYWRSZWZDb3VudGVkOwogCiAgICAgaW50IG1fcmVmQ291bnQ7Ci0j
aWYgIVVTRShMT0NLRlJFRV9USFJFQURTQUZFU0hBUkVEKQorI2lmICFVU0UoTE9DS0ZSRUVfVEhS
RUFEU0FGRVJFRkNPVU5URUQpCiAgICAgbXV0YWJsZSBNdXRleCBtX211dGV4OwogI2VuZGlmCiB9
OwogCi10ZW1wbGF0ZTxjbGFzcyBUPiBjbGFzcyBUaHJlYWRTYWZlU2hhcmVkIDogcHVibGljIFRo
cmVhZFNhZmVTaGFyZWRCYXNlIHsKK3RlbXBsYXRlPGNsYXNzIFQ+IGNsYXNzIFRocmVhZFNhZmVS
ZWZDb3VudGVkIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkQmFzZSB7CiBwdWJsaWM6CiAg
ICAgdm9pZCBkZXJlZigpCiAgICAgewpAQCAtMTM2LDEzICsxMzcsMTMgQEAgcHVibGljOgogICAg
IH0KIAogcHJvdGVjdGVkOgotICAgIFRocmVhZFNhZmVTaGFyZWQoKQorICAgIFRocmVhZFNhZmVS
ZWZDb3VudGVkKCkKICAgICB7CiAgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKLXVz
aW5nIFdURjo6VGhyZWFkU2FmZVNoYXJlZDsKK3VzaW5nIFdURjo6VGhyZWFkU2FmZVJlZkNvdW50
ZWQ7CiAKLSNlbmRpZiAvLyBUaHJlYWRTYWZlU2hhcmVkX2gKKyNlbmRpZiAvLyBUaHJlYWRTYWZl
UmVmQ291bnRlZF9oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFNhZmVT
aGFyZWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFNh
ZmVTaGFyZWQuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L1RocmVhZFNhZmVTaGFyZWQuaAkod29ya2luZyBjb3B5KQpAQCAtMSwxNDggKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgSnVzdGluIEhheWdvb2QgKGpoYXlnb29k
QHJlYWt0aXguY29tKQotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCi0gKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICog
ICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0g
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICoKLSAqCi0gKiBOb3RlOiBUaGUgaW1wbGVtZW50YXRpb25zIG9mIEludGVybG9j
a2VkSW5jcmVtZW50IGFuZCBJbnRlcmxvY2tlZERlY3JlbWVudCBhcmUgYmFzZWQKLSAqIG9uIGF0
b21pY19pbmNyZW1lbnQgYW5kIGF0b21pY19leGNoYW5nZV9hbmRfYWRkIGZyb20gdGhlIEJvb3N0
IEMrKyBMaWJyYXJ5LiBUaGUgbGljZW5zZQotICogaXMgdmlydHVhbGx5IGlkZW50aWNhbCB0byB0
aGUgQXBwbGUgbGljZW5zZSBhYm92ZSBidXQgaXMgaW5jbHVkZWQgaGVyZSBmb3IgY29tcGxldGVu
ZXNzLgotICoKLSAqIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UgLSBWZXJzaW9uIDEuMCAtIEF1Z3Vz
dCAxN3RoLCAyMDAzCi0gKiAKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg
b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9yIG9yZ2FuaXphdGlvbgotICogb2J0YWluaW5nIGEg
Y29weSBvZiB0aGUgc29mdHdhcmUgYW5kIGFjY29tcGFueWluZyBkb2N1bWVudGF0aW9uIGNvdmVy
ZWQgYnkKLSAqIHRoaXMgbGljZW5zZSAodGhlICJTb2Z0d2FyZSIpIHRvIHVzZSwgcmVwcm9kdWNl
LCBkaXNwbGF5LCBkaXN0cmlidXRlLAotICogZXhlY3V0ZSwgYW5kIHRyYW5zbWl0IHRoZSBTb2Z0
d2FyZSwgYW5kIHRvIHByZXBhcmUgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUKLSAqIFNvZnR3YXJl
LCBhbmQgdG8gcGVybWl0IHRoaXJkLXBhcnRpZXMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVy
bmlzaGVkIHRvCi0gKiBkbyBzbywgYWxsIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZzoKLSAqIAot
ICogVGhlIGNvcHlyaWdodCBub3RpY2VzIGluIHRoZSBTb2Z0d2FyZSBhbmQgdGhpcyBlbnRpcmUg
c3RhdGVtZW50LCBpbmNsdWRpbmcKLSAqIHRoZSBhYm92ZSBsaWNlbnNlIGdyYW50LCB0aGlzIHJl
c3RyaWN0aW9uIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIsCi0gKiBtdXN0IGJlIGluY2x1
ZGVkIGluIGFsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBpbiB3aG9sZSBvciBpbiBwYXJ0LCBh
bmQKLSAqIGFsbCBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTb2Z0d2FyZSwgdW5sZXNzIHN1Y2gg
Y29waWVzIG9yIGRlcml2YXRpdmUKLSAqIHdvcmtzIGFyZSBzb2xlbHkgaW4gdGhlIGZvcm0gb2Yg
bWFjaGluZS1leGVjdXRhYmxlIG9iamVjdCBjb2RlIGdlbmVyYXRlZCBieQotICogYSBzb3VyY2Ug
bGFuZ3VhZ2UgcHJvY2Vzc29yLgotICogCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFT
IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotICogSU1QTElF
RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFksCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwgVElUTEUgQU5E
IE5PTi1JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UCi0gKiBTSEFMTCBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgT1IgQU5ZT05FIERJU1RSSUJVVElORyBUSEUgU09GVFdBUkUgQkUgTElBQkxFCi0gKiBG
T1IgQU5ZIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBU
T1JUIE9SIE9USEVSV0lTRSwKLSAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJ
T04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgotICogREVBTElOR1MgSU4g
VEhFIFNPRlRXQVJFLgotICovCi0KLSNpZm5kZWYgVGhyZWFkU2FmZVNoYXJlZF9oCi0jZGVmaW5l
IFRocmVhZFNhZmVTaGFyZWRfaAotCi0jaW5jbHVkZSAiUGxhdGZvcm0uaCIKLQotI2luY2x1ZGUg
PHd0Zi9BdG9taWNzLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KLQot
bmFtZXNwYWNlIFdURiB7Ci0KLWNsYXNzIFRocmVhZFNhZmVTaGFyZWRCYXNlIHsKLSAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShUaHJlYWRTYWZlU2hhcmVkQmFzZSk7IFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwotcHVibGljOgotICAgIFRocmVhZFNhZmVTaGFyZWRCYXNlKGludCBpbml0aWFsUmVm
Q291bnQgPSAxKQotICAgICAgICA6IG1fcmVmQ291bnQoaW5pdGlhbFJlZkNvdW50KQotICAgIHsK
LSAgICB9Ci0KLSAgICB2b2lkIHJlZigpCi0gICAgewotI2lmIFVTRShMT0NLRlJFRV9USFJFQURT
QUZFU0hBUkVEKQotICAgICAgICBhdG9taWNJbmNyZW1lbnQoJm1fcmVmQ291bnQpOwotI2Vsc2UK
LSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOwotICAgICAgICArK21fcmVmQ291
bnQ7Ci0jZW5kaWYKLSAgICB9Ci0KLSAgICBib29sIGhhc09uZVJlZigpCi0gICAgewotICAgICAg
ICByZXR1cm4gcmVmQ291bnQoKSA9PSAxOwotICAgIH0KLQotICAgIGludCByZWZDb3VudCgpIGNv
bnN0Ci0gICAgewotI2lmICFVU0UoTE9DS0ZSRUVfVEhSRUFEU0FGRVNIQVJFRCkKLSAgICAgICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOwotI2VuZGlmCi0gICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxpbnQgY29uc3Qgdm9sYXRpbGUgJj4obV9yZWZDb3VudCk7Ci0gICAgfQotCi1wcm90
ZWN0ZWQ6Ci0gICAgLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBwb2ludGVyIHNob3VsZCBiZSBmcmVl
ZCBvciBub3QuCi0gICAgYm9vbCBkZXJlZkJhc2UoKQotICAgIHsKLSNpZiBVU0UoTE9DS0ZSRUVf
VEhSRUFEU0FGRVNIQVJFRCkKLSAgICAgICAgaWYgKGF0b21pY0RlY3JlbWVudCgmbV9yZWZDb3Vu
dCkgPD0gMCkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotI2Vsc2UKLSAgICAgICAgaW50IHJl
ZkNvdW50OwotICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRl
eCk7Ci0gICAgICAgICAgICAtLW1fcmVmQ291bnQ7Ci0gICAgICAgICAgICByZWZDb3VudCA9IG1f
cmVmQ291bnQ7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlZkNvdW50IDw9IDApCi0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQot
Ci1wcml2YXRlOgotICAgIHRlbXBsYXRlPGNsYXNzIFQ+Ci0gICAgZnJpZW5kIGNsYXNzIENyb3Nz
VGhyZWFkUmVmQ291bnRlZDsKLQotICAgIGludCBtX3JlZkNvdW50OwotI2lmICFVU0UoTE9DS0ZS
RUVfVEhSRUFEU0FGRVNIQVJFRCkKLSAgICBtdXRhYmxlIE11dGV4IG1fbXV0ZXg7Ci0jZW5kaWYK
LX07Ci0KLXRlbXBsYXRlPGNsYXNzIFQ+IGNsYXNzIFRocmVhZFNhZmVTaGFyZWQgOiBwdWJsaWMg
VGhyZWFkU2FmZVNoYXJlZEJhc2UgewotcHVibGljOgotICAgIHZvaWQgZGVyZWYoKQotICAgIHsK
LSAgICAgICAgaWYgKGRlcmVmQmFzZSgpKQotICAgICAgICAgICAgZGVsZXRlIHN0YXRpY19jYXN0
PFQqPih0aGlzKTsKLSAgICB9Ci0KLXByb3RlY3RlZDoKLSAgICBUaHJlYWRTYWZlU2hhcmVkKCkK
LSAgICB7Ci0gICAgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6VGhy
ZWFkU2FmZVNoYXJlZDsKLQotI2VuZGlmIC8vIFRocmVhZFNhZmVTaGFyZWRfaApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZGluZy5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDcg
KzY3LDcgQEAKICNpbmNsdWRlIDx3dGYvTG9ja2VyLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFk
U2FmZVNoYXJlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAKIC8vIEZvciBwb3J0YWJpbGl0eSwg
d2UgZG8gbm90IHVzZSB0aHJlYWQtc2FmZSBzdGF0aWNzIG5hdGl2ZWx5IHN1cHBvcnRlZCBieSBz
b21lIGNvbXBpbGVycyAoZS5nLiBnY2MpLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRHbHVlL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA4MTU2MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0wMy0xOSAgQmlsbCBCdWRnZSAgPGJidWRn
ZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVuYW1lIFRocmVhZFNhZmVTaGFyZWQgdG8gVGhyZWFkU2FmZVJlZkNvdW50ZWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NzE0CisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLiBFeHBvc2VzIG5vIG5ldyBmdW5jdGlvbmFsaXR5LqcKKwor
ICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oOiBD
b3BpZWQgZnJvbSBGb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVNoYXJlZC5oLgorICAg
ICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlU2hhcmVkLmg6IFJlbW92ZWQu
CisgICAgICAgICogZ3lwL0phdmFTY3JpcHRHbHVlLmd5cGk6CisKIDIwMTEtMDMtMTcgIEplZmYg
TWlsbGVyICA8amVmZm1AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBhIGNvbnNpc3RlbnQgc2V0
IG9mIGZpbGUgcGF0dGVybnMgaW4gdGhlIHN2bjppZ25vcmUgcHJvcGVydHkgZm9yIGFsbCAueGNv
ZGVwcm9qIGRpcmVjdG9yaWVzLCBzcGVjaWZpY2FsbHk6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dEdsdWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRHbHVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJl
YWRTYWZlUmVmQ291bnRlZC5oCShyZXZpc2lvbiA4MTU1MykJKGZyb20gU291cmNlL0phdmFTY3Jp
cHRHbHVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlU2hhcmVkLmg6ODE1NTMpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdEdsdWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVS
ZWZDb3VudGVkLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL1RocmVhZFNhZmVTaGFyZWQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0R2x1
ZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdEdsdWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNh
ZmVSZWZDb3VudGVkLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL0phdmFTY3JpcHRHbHVl
L0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xICsxIEBACi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVGhyZWFkU2FmZVNoYXJl
ZC5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdEdsdWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNh
ZmVTaGFyZWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdEdsdWUvRm9yd2FyZGlu
Z0hlYWRlcnMvd3RmL1RocmVhZFNhZmVTaGFyZWQuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdEdsdWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVTaGFyZWQu
aAkod29ya2luZyBjb3B5KQpAQCAtMSArMCwwIEBACi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
VGhyZWFkU2FmZVNoYXJlZC5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRHbHVlL2d5cC9KYXZh
U2NyaXB0R2x1ZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0R2x1ZS9neXAv
SmF2YVNjcmlwdEdsdWUuZ3lwaQkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dEdsdWUvZ3lwL0phdmFTY3JpcHRHbHVlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0
IEBACi17CitUaHJlYWRTYWZlUmVmQ291bnRlZHsKICAgICAndmFyaWFibGVzJzogewogICAgICAg
ICAnamF2YXNjcmlwdGdsdWVfZmlsZXMnOiBbCiAgICAgICAgICAgICAnLi4vSmF2YVNjcmlwdEds
dWUuY3BwJywKQEAgLTY3LDcgKzY3LDcgQEAKICAgICAgICAgICAgICcuLi9Gb3J3YXJkaW5nSGVh
ZGVycy93dGYvdGV4dC9XVEZTdHJpbmcuaCcsCiAgICAgICAgICAgICAnLi4vRm9yd2FyZGluZ0hl
YWRlcnMvd3RmL1RocmVhZGluZy5oJywKICAgICAgICAgICAgICcuLi9Gb3J3YXJkaW5nSGVhZGVy
cy93dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oJywKLSAgICAgICAgICAgICcuLi9Gb3J3YXJkaW5n
SGVhZGVycy93dGYvVGhyZWFkU2FmZVNoYXJlZC5oJywKKyAgICAgICAgICAgICcuLi9Gb3J3YXJk
aW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaCcsCiAgICAgICAgICAgICAnLi4v
Rm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNwZWNpZmljLmgnLAogICAgICAgICAgICAgJy4u
L0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgnLAogICAgICAg
ICAgICAgJy4uL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi91bmljb2RlL1VuaWNvZGUuaCcsCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCShyZXZpc2lvbiA4MTU2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBACisyMDExLTAzLTE5ICBCaWxsIEJ1ZGdlICA8
YmJ1ZGdlQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW5hbWUgVGhyZWFkU2FmZVNoYXJlZCB0byBUaHJlYWRTYWZlUmVmQ291
bnRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY3
MTQKKworICAgICAgICBObyBuZXcgdGVzdHMuIEV4cG9zZXMgbm8gbmV3IGZ1bmN0aW9uYWxpdHku
CisKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aDogQ29waWVkIGZyb20gRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVTaGFyZWQuaC4K
KyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVNoYXJlZC5oOiBSZW1v
dmVkLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgICogZG9tL2RlZmF1bHQvUGxhdGZvcm1N
ZXNzYWdlUG9ydENoYW5uZWwuaDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVUaHJlYWQuaDoKKyAg
ICAgICAgKiBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXI6OmNsZWFyQ2xpZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyOjpkb25lKToK
KyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyOjpkaWRTZW5k
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlcjo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJD
bGllbnRXcmFwcGVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRh
YmxlTG9hZGVyQ2xpZW50V3JhcHBlcjo6ZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyOjpkaWRGaW5pc2hMb2Fk
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyOjpk
aWRGYWlsKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVy
OjpkaWRGYWlsUmVkaXJlY3RDaGVjayk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9h
ZGVyQ2xpZW50V3JhcHBlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2FuY2VsbGF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyOjpUaHJlYWRh
YmxlTG9hZGVyQ2xpZW50V3JhcHBlcik6CisgICAgICAgICogcGFnZS9TZWN1cml0eU9yaWdpbi5o
OgorICAgICAgICAqIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9CbG9iRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2Yv
U29ja2V0U3RyZWFtSGFuZGxlLmg6CisgICAgICAgICogc3RvcmFnZS9BYnN0cmFjdERhdGFiYXNl
Lmg6CisgICAgICAgICogc3RvcmFnZS9EYXRhYmFzZUF1dGhvcml6ZXIuaDoKKyAgICAgICAgKiBz
dG9yYWdlL0RhdGFiYXNlQ2FsbGJhY2suaDoKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlVGhy
ZWFkLmg6CisgICAgICAgICogc3RvcmFnZS9JREJDYWxsYmFja3MuaDoKKyAgICAgICAgKiBzdG9y
YWdlL0lEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZS5oOgorICAgICAgICAqIHN0b3JhZ2UvSURCRmFjdG9yeUJh
Y2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQkluZGV4QmFja2VuZEludGVy
ZmFjZS5oOgorICAgICAgICAqIHN0b3JhZ2UvSURCS2V5Lmg6CisgICAgICAgICogc3RvcmFnZS9J
REJLZXlSYW5nZS5oOgorICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50
ZXJmYWNlLmg6CisgICAgICAgICogc3RvcmFnZS9JREJSZXF1ZXN0Lmg6CisgICAgICAgICogc3Rv
cmFnZS9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBzdG9yYWdl
L1NRTEVycm9yLmg6CisgICAgICAgICogc3RvcmFnZS9TUUxSZXN1bHRTZXQuaDoKKyAgICAgICAg
KiBzdG9yYWdlL1NRTFN0YXRlbWVudC5oOgorICAgICAgICAqIHN0b3JhZ2UvU1FMU3RhdGVtZW50
Q2FsbGJhY2suaDoKKyAgICAgICAgKiBzdG9yYWdlL1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2su
aDoKKyAgICAgICAgKiBzdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmg6CisgICAgICAgICogc3RvcmFn
ZS9TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmg6CisgICAgICAgICogc3RvcmFnZS9TUUxUcmFuc2Fj
dGlvbkVycm9yQ2FsbGJhY2suaDoKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oOgorICAgICAgICAqIHdvcmtlcnMvRGVmYXVsdFNo
YXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwOgorCiAyMDExLTAzLTE5ICBBbmRyZWFzIEtsaW5nICA8
a2xpbmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBCZW5qYW1pbiBQb3VsYWlu
LgpJbmRleDogU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVS
ZWZDb3VudGVkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRl
cnMvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmgJKHJldmlzaW9uIDgxNTUzKQkoZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVNoYXJlZC5oOjgxNTUz
KQorKysgU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVSZWZD
b3VudGVkLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVf
RldEX1RocmVhZFNhZmVTaGFyZWRfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9UaHJlYWRTYWZlU2hh
cmVkX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UaHJlYWRTYWZlU2hhcmVkLmg+CisjZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZl
UmVmQ291bnRlZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFk
ZXJzL3d0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJj
ZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotI2lmbmRlZiBXZWJDb3JlX0ZXRF9UaHJlYWRT
YWZlU2hhcmVkX2gKLSNkZWZpbmUgV2ViQ29yZV9GV0RfVGhyZWFkU2FmZVNoYXJlZF9oCi0jaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvVGhyZWFkU2FmZVNoYXJlZC5oPgorI2lmbmRlZiBXZWJDb3Jl
X0ZXRF9UaHJlYWRTYWZlUmVmQ291bnRlZF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX1RocmVhZFNh
ZmVSZWZDb3VudGVkX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UaHJlYWRTYWZlUmVmQ291
bnRlZC5oPgogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93
dGYvVGhyZWFkU2FmZVNoYXJlZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Zvcndh
cmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlU2hhcmVkLmgJKHJldmlzaW9uIDgxNTUzKQorKysg
U291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVTaGFyZWQuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw0ICswLDAgQEAKLSNpZm5kZWYgV2ViQ29yZV9GV0RfVGhyZWFk
U2FmZVNoYXJlZF9oCi0jZGVmaW5lIFdlYkNvcmVfRldEX1RocmVhZFNhZmVTaGFyZWRfaAotI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL1RocmVhZFNhZmVTaGFyZWQuaD4KLSNlbmRpZgpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWUgOiBwdWJsaWMg
VGhyZWFkU2FmZVNoYXJlZDxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHsKK2NsYXNzIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBkZXNlcmlhbGl6ZUFuZFNldFBy
b3BlcnR5KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sIGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHY4OjpQcm9wZXJ0eUF0
dHJpYnV0ZSwgU2VyaWFsaXplZFNjcmlwdFZhbHVlKik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzQ0LDcgKzM0NCw3IEBAIHN0YXRpYyBib29sIGRpc2FibGVS
YW5nZU11dGF0aW9uKFBhZ2UqIHAKIAogc3RhdGljIEhhc2hTZXQ8RG9jdW1lbnQqPiogZG9jdW1l
bnRzVGhhdE5lZWRTdHlsZVJlY2FsYyA9IDA7CiAKLWNsYXNzIERvY3VtZW50V2Vha1JlZmVyZW5j
ZSA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPERvY3VtZW50V2Vha1JlZmVyZW5jZT4geworY2xh
c3MgRG9jdW1lbnRXZWFrUmVmZXJlbmNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPERv
Y3VtZW50V2Vha1JlZmVyZW5jZT4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERv
Y3VtZW50V2Vha1JlZmVyZW5jZT4gY3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKICAgICB7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5l
bC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVz
c2FnZVBvcnRDaGFubmVsLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUvZG9t
L2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaAkod29ya2luZyBjb3B5KQpAQCAt
NDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgLy8gUGxhdGZvcm1NZXNzYWdl
UG9ydENoYW5uZWwgaXMgYSBwbGF0Zm9ybS1kZXBlbmRlbnQgaW50ZXJmYWNlIHRvIHRoZSByZW1v
dGUgc2lkZSBvZiBhIG1lc3NhZ2UgY2hhbm5lbC4KICAgICAvLyBUaGlzIGRlZmF1bHQgaW1wbGVt
ZW50YXRpb24gc3VwcG9ydHMgbXVsdGlwbGUgdGhyZWFkcyBydW5uaW5nIHdpdGhpbiBhIHNpbmds
ZSBwcm9jZXNzLiBJbXBsZW1lbnRhdGlvbnMgZm9yIG11bHRpLXByb2Nlc3MgcGxhdGZvcm1zIHNo
b3VsZCBkZWZpbmUgdGhlc2UgcHVibGljIEFQSXMgaW4gdGhlaXIgb3duIHBsYXRmb3JtLXNwZWNp
ZmljIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsIGZpbGUuCiAgICAgLy8gVGhlIGdvYWwgb2Yg
dGhpcyBpbXBsZW1lbnRhdGlvbiBpcyB0byBlbGltaW5hdGUgY29udGVudGlvbiBleGNlcHQgd2hl
biBjbG9uaW5nIG9yIGNsb3NpbmcgdGhlIHBvcnQsIHNvIGVhY2ggc2lkZSBvZiB0aGUgY2hhbm5l
bCBoYXMgaXRzIG93biBzZXBhcmF0ZSBtdXRleC4KLSAgICBjbGFzcyBQbGF0Zm9ybU1lc3NhZ2VQ
b3J0Q2hhbm5lbCA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFBsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsPiB7CisgICAgY2xhc3MgUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwgOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw+IHsKICAgICBw
dWJsaWM6CiAgICAgICAgIHN0YXRpYyB2b2lkIGNyZWF0ZUNoYW5uZWwoUGFzc1JlZlB0cjxNZXNz
YWdlUG9ydD4sIFBhc3NSZWZQdHI8TWVzc2FnZVBvcnQ+KTsKIApAQCAtNTksNyArNTksNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE1lc3NhZ2VQb3J0KiBsb2NhbGx5RW50YW5nbGVk
UG9ydChjb25zdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKICAgICAgICAgLy8gV3JhcHBl
ciBmb3IgTWVzc2FnZVF1ZXVlIHRoYXQgYWxsb3dzIHVzIHRvIGRvIHRocmVhZCBzYWZlIHNoYXJp
bmcgYnkgdHdvIHByb3hpZXMuCi0gICAgICAgIGNsYXNzIE1lc3NhZ2VQb3J0UXVldWUgOiBwdWJs
aWMgVGhyZWFkU2FmZVNoYXJlZDxNZXNzYWdlUG9ydFF1ZXVlPiB7CisgICAgICAgIGNsYXNzIE1l
c3NhZ2VQb3J0UXVldWUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TWVzc2FnZVBvcnRR
dWV1ZT4gewogICAgICAgICBwdWJsaWM6CiAgICAgICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxN
ZXNzYWdlUG9ydFF1ZXVlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgTWVzc2FnZVBv
cnRRdWV1ZSgpKTsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVUaHJlYWQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVUaHJlYWQuaAkocmV2
aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVUaHJlYWQuaAkod29y
a2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEZpbGVTdHJlYW07CiAKLWNsYXNzIEZpbGVUaHJlYWQgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJl
ZDxGaWxlVGhyZWFkPiB7CitjbGFzcyBGaWxlVGhyZWFkIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPEZpbGVUaHJlYWQ+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxGaWxl
VGhyZWFkPiBjcmVhdGUoKQogICAgIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJl
YWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlci5oCShyZXZpc2lvbiA4MTU1MykK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zOCw4NSArMzgsODUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi0gICAgY2xhc3MgVGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXIgOiBwdWJsaWMgVGhy
ZWFkU2FmZVNoYXJlZDxUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlcj4gewotICAgIHB1Ymxp
YzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8VGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBw
ZXI+IGNyZWF0ZShUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KiBjbGllbnQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBw
ZXIoY2xpZW50KSk7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIGNsZWFyQ2xpZW50KCkKLSAg
ICAgICAgewotICAgICAgICAgICAgbV9kb25lID0gdHJ1ZTsKLSAgICAgICAgICAgIG1fY2xpZW50
ID0gMDsKLSAgICAgICAgfQotCi0gICAgICAgIGJvb2wgZG9uZSgpIGNvbnN0Ci0gICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBtX2RvbmU7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIGRp
ZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9u
ZyB0b3RhbEJ5dGVzVG9CZVNlbnQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChtX2NsaWVu
dCkKLSAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkU2VuZERhdGEoYnl0ZXNTZW50LCB0b3Rh
bEJ5dGVzVG9CZVNlbnQpOwotICAgICAgICB9Ci0KLSAgICAgICAgdm9pZCBkaWRSZWNlaXZlUmVz
cG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2
ZVJlc3BvbnNlKHJlc3BvbnNlKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZvaWQgZGlkUmVjZWl2
ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2
ZURhdGEoZGF0YSwgZGF0YUxlbmd0aCk7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIGRpZFJl
Y2VpdmVDYWNoZWRNZXRhZGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkKLSAg
ICAgICAgewotICAgICAgICAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICAgICAgICAgIG1fY2xp
ZW50LT5kaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEoZGF0YSwgZGF0YUxlbmd0aCk7Ci0gICAgICAg
IH0KLQotICAgICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBkb3VibGUgZmluaXNoVGltZSkKLSAgICAgICAgewotICAgICAgICAgICAgbV9kb25lID0g
dHJ1ZTsKLSAgICAgICAgICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgICAgICAgICBtX2NsaWVu
dC0+ZGlkRmluaXNoTG9hZGluZyhpZGVudGlmaWVyLCBmaW5pc2hUaW1lKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKLSAgICAg
ICAgewotICAgICAgICAgICAgbV9kb25lID0gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChtX2NsaWVu
dCkKLSAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkRmFpbChlcnJvcik7Ci0gICAgICAgIH0K
LQotICAgICAgICB2b2lkIGRpZEZhaWxSZWRpcmVjdENoZWNrKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgbV9kb25lID0gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAg
ICAgICAgICBtX2NsaWVudC0+ZGlkRmFpbFJlZGlyZWN0Q2hlY2soKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2FuY2VsbGF0aW9uKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAobV9j
bGllbnQpCi0gICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZShyZXNw
b25zZSk7Ci0gICAgICAgIH0KLQotICAgIHByb3RlY3RlZDoKLSAgICAgICAgVGhyZWFkYWJsZUxv
YWRlckNsaWVudFdyYXBwZXIoVGhyZWFkYWJsZUxvYWRlckNsaWVudCogY2xpZW50KQotICAgICAg
ICAgICAgOiBtX2NsaWVudChjbGllbnQpCi0gICAgICAgICAgICAsIG1fZG9uZShmYWxzZSkKLSAg
ICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgVGhyZWFkYWJsZUxvYWRlckNsaWVudCogbV9j
bGllbnQ7Ci0gICAgICAgIGJvb2wgbV9kb25lOwotICAgIH07CitjbGFzcyBUaHJlYWRhYmxlTG9h
ZGVyQ2xpZW50V3JhcHBlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJlYWRhYmxl
TG9hZGVyQ2xpZW50V3JhcHBlcj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRo
cmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyPiBjcmVhdGUoVGhyZWFkYWJsZUxvYWRlckNsaWVu
dCogY2xpZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUaHJlYWRhYmxl
TG9hZGVyQ2xpZW50V3JhcHBlcihjbGllbnQpKTsKKyAgICB9CisKKyAgICB2b2lkIGNsZWFyQ2xp
ZW50KCkKKyAgICB7CisgICAgICAgIG1fZG9uZSA9IHRydWU7CisgICAgICAgIG1fY2xpZW50ID0g
MDsKKyAgICB9CisKKyAgICBib29sIGRvbmUoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IG1fZG9uZTsKKyAgICB9CisKKyAgICB2b2lkIGRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9u
ZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpCisgICAg
eworICAgICAgICBpZiAobV9jbGllbnQpCisgICAgICAgICAgICBtX2NsaWVudC0+ZGlkU2VuZERh
dGEoYnl0ZXNTZW50LCB0b3RhbEJ5dGVzVG9CZVNlbnQpOworICAgIH0KKworICAgIHZvaWQgZGlk
UmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQorICAgIHsK
KyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVS
ZXNwb25zZShyZXNwb25zZSk7CisgICAgfQorCisgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25z
dCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkKKyAgICB7CisgICAgICAgIGlmIChtX2NsaWVu
dCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlRGF0YShkYXRhLCBkYXRhTGVuZ3Ro
KTsKKyAgICB9CisKKyAgICB2b2lkIGRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShjb25zdCBjaGFy
KiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkKKyAgICB7CisgICAgICAgIGlmIChtX2NsaWVudCkKKyAg
ICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEoZGF0YSwgZGF0YUxl
bmd0aCk7CisgICAgfQorCisgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpCisgICAgeworICAgICAgICBtX2RvbmUgPSB0
cnVlOworICAgICAgICBpZiAobV9jbGllbnQpCisgICAgICAgICAgICBtX2NsaWVudC0+ZGlkRmlu
aXNoTG9hZGluZyhpZGVudGlmaWVyLCBmaW5pc2hUaW1lKTsKKyAgICB9CisKKyAgICB2b2lkIGRp
ZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCisgICAgeworICAgICAgICBtX2RvbmUg
PSB0cnVlOworICAgICAgICBpZiAobV9jbGllbnQpCisgICAgICAgICAgICBtX2NsaWVudC0+ZGlk
RmFpbChlcnJvcik7CisgICAgfQorCisgICAgdm9pZCBkaWRGYWlsUmVkaXJlY3RDaGVjaygpCisg
ICAgeworICAgICAgICBtX2RvbmUgPSB0cnVlOworICAgICAgICBpZiAobV9jbGllbnQpCisgICAg
ICAgICAgICBtX2NsaWVudC0+ZGlkRmFpbFJlZGlyZWN0Q2hlY2soKTsKKyAgICB9CisKKyAgICB2
b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNhbmNlbGxhdGlvbihjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkKKyAgICB7CisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAg
ICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOworICAgIH0KKworcHJv
dGVjdGVkOgorICAgIFRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyKFRocmVhZGFibGVMb2Fk
ZXJDbGllbnQqIGNsaWVudCkKKyAgICAgICAgOiBtX2NsaWVudChjbGllbnQpCisgICAgICAgICwg
bV9kb25lKGZhbHNlKQorICAgIHsKKyAgICB9CisKKyAgICBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50
KiBtX2NsaWVudDsKKyAgICBib29sIG1fZG9uZTsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAkocmV2aXNpb24gODE1
NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDE0ICszMSwxNCBAQAogCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVTaGFy
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEtVUkw7CiAKLWNsYXNzIFNlY3Vy
aXR5T3JpZ2luIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8U2VjdXJpdHlPcmlnaW4+IHsKK2Ns
YXNzIFNlY3VyaXR5T3JpZ2luIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNlY3VyaXR5
T3JpZ2luPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IGNyZWF0ZUZyb21EYXRhYmFzZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJik7CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZUZyb21TdHJpbmcoY29uc3QgU3RyaW5n
Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmgJ
KHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRD
b3BpZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIH0KICAgICB9OwogCi0gICAgdGVtcGxhdGU8Ym9vbCBpc0NvbnZlcnRpYmxl
VG9JbnRlZ2VyLCBib29sIGlzVGhyZWFkc2FmZVNoYXJlZCwgdHlwZW5hbWUgVD4gc3RydWN0IENy
b3NzVGhyZWFkQ29waWVyQmFzZTsKKyAgICB0ZW1wbGF0ZTxib29sIGlzQ29udmVydGlibGVUb0lu
dGVnZXIsIGJvb2wgaXNUaHJlYWRTYWZlUmVmQ291bnRlZCwgdHlwZW5hbWUgVD4gc3RydWN0IENy
b3NzVGhyZWFkQ29waWVyQmFzZTsKIAogICAgIC8vIEludGVnZXJzIGdldCBwYXNzZWQgdGhyb3Vn
aCB3aXRob3V0IGFueSBjaGFuZ2VzLgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBD
cm9zc1RocmVhZENvcGllckJhc2U8dHJ1ZSwgZmFsc2UsIFQ+IDogcHVibGljIENyb3NzVGhyZWFk
Q29waWVyUGFzc1Rocm91Z2g8VD4gewpAQCAtMTE0LDggKzExNCw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENyb3NzVGhy
ZWFkQ29waWVyIDogcHVibGljIENyb3NzVGhyZWFkQ29waWVyQmFzZTxXVEY6OklzQ29udmVydGli
bGVUb0ludGVnZXI8VD46OnZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV1RGOjpJc1N1
YmNsYXNzT2ZUZW1wbGF0ZTx0eXBlbmFtZSBXVEY6OlJlbW92ZVRlbXBsYXRlPFQsIFJlZlB0cj46
OlR5cGUsIFRocmVhZFNhZmVTaGFyZWQ+Ojp2YWx1ZQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHx8IFdURjo6SXNTdWJjbGFzc09mVGVtcGxhdGU8dHlwZW5hbWUgV1RGOjpSZW1vdmVUZW1w
bGF0ZTxULCBQYXNzUmVmUHRyPjo6VHlwZSwgVGhyZWFkU2FmZVNoYXJlZD46OnZhbHVlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV1RGOjpJc1N1YmNsYXNzT2ZUZW1wbGF0ZTx0eXBlbmFtZSBX
VEY6OlJlbW92ZVRlbXBsYXRlPFQsIFJlZlB0cj46OlR5cGUsIFRocmVhZFNhZmVSZWZDb3VudGVk
Pjo6dmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBXVEY6OklzU3ViY2xhc3NP
ZlRlbXBsYXRlPHR5cGVuYW1lIFdURjo6UmVtb3ZlVGVtcGxhdGU8VCwgUGFzc1JlZlB0cj46OlR5
cGUsIFRocmVhZFNhZmVSZWZDb3VudGVkPjo6dmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBUPiB7CiAgICAgfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9C
bG9iRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
QmxvYkRhdGEuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDExICszNCwxMSBAQAogI2lu
Y2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVTaGFyZWQuaD4KKyNpbmNsdWRl
IDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBSYXdEYXRhIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8UmF3RGF0YT4geworY2xhc3Mg
UmF3RGF0YSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSYXdEYXRhPiB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmF3RGF0YT4gY3JlYXRlKCkKICAgICB7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3Ry
ZWFtSGFuZGxlLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsMTQg
KzQ0LDE0IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOwogY2xhc3MgQ3JlZGVudGlh
bDsKIGNsYXNzIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudDsKIAotY2xhc3MgU29ja2V0U3RyZWFt
SGFuZGxlIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8U29ja2V0U3RyZWFtSGFuZGxlPiwgcHVi
bGljIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UsIHB1YmxpYyBBdXRoZW50aWNhdGlvbkNsaWVudCB7
CitjbGFzcyBTb2NrZXRTdHJlYW1IYW5kbGUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
U29ja2V0U3RyZWFtSGFuZGxlPiwgcHVibGljIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UsIHB1Ymxp
YyBBdXRoZW50aWNhdGlvbkNsaWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U29ja2V0U3RyZWFtSGFuZGxlPiBjcmVhdGUoY29uc3QgS1VSTCYgdXJsLCBTb2NrZXRTdHJlYW1I
YW5kbGVDbGllbnQqIGNsaWVudCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNvY2tldFN0cmVhbUhh
bmRsZSh1cmwsIGNsaWVudCkpOyB9CiAKICAgICB2aXJ0dWFsIH5Tb2NrZXRTdHJlYW1IYW5kbGUo
KTsKIAotICAgIHVzaW5nIFRocmVhZFNhZmVTaGFyZWQ8U29ja2V0U3RyZWFtSGFuZGxlPjo6cmVm
OwotICAgIHVzaW5nIFRocmVhZFNhZmVTaGFyZWQ8U29ja2V0U3RyZWFtSGFuZGxlPjo6ZGVyZWY7
CisgICAgdXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U29ja2V0U3RyZWFtSGFuZGxlPjo6cmVm
OworICAgIHVzaW5nIFRocmVhZFNhZmVSZWZDb3VudGVkPFNvY2tldFN0cmVhbUhhbmRsZT46OmRl
cmVmOwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgaW50IHBsYXRmb3JtU2VuZChjb25zdCBjaGFy
KiBkYXRhLCBpbnQgbGVuZ3RoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJh
Y3REYXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJh
Y3REYXRhYmFzZS5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
QWJzdHJhY3REYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBACiAjaW5j
bHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJTUUxpdGVEYXRhYmFzZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVTaGFyZWQuaD4K
KyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpZm5kZWYgTkRFQlVHCiAj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNlbmRpZgpAQCAtNDYsNyArNDYsNyBAQCBjbGFz
cyBEYXRhYmFzZUF1dGhvcml6ZXI7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xh
c3MgU2VjdXJpdHlPcmlnaW47CiAKLWNsYXNzIEFic3RyYWN0RGF0YWJhc2UgOiBwdWJsaWMgVGhy
ZWFkU2FmZVNoYXJlZDxBYnN0cmFjdERhdGFiYXNlPiB7CitjbGFzcyBBYnN0cmFjdERhdGFiYXNl
IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEFic3RyYWN0RGF0YWJhc2U+IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogICAgIHN0YXRpYyB2b2lkIHNldElz
QXZhaWxhYmxlKGJvb2wgYXZhaWxhYmxlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
RGF0YWJhc2VBdXRob3JpemVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9EYXRhYmFzZUF1dGhvcml6ZXIuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL0RhdGFiYXNlQXV0aG9yaXplci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICsz
MSw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVT
aGFyZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQwLDcg
KzQwLDcgQEAgZXh0ZXJuIGNvbnN0IGludCBTUUxBdXRoQWxsb3c7CiBleHRlcm4gY29uc3QgaW50
IFNRTEF1dGhJZ25vcmU7CiBleHRlcm4gY29uc3QgaW50IFNRTEF1dGhEZW55OwogCi1jbGFzcyBE
YXRhYmFzZUF1dGhvcml6ZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxEYXRhYmFzZUF1dGhv
cml6ZXI+IHsKK2NsYXNzIERhdGFiYXNlQXV0aG9yaXplciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxEYXRhYmFzZUF1dGhvcml6ZXI+IHsKIHB1YmxpYzoKIAogICAgIGVudW0gUGVybWlz
c2lvbnMgewpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZUNhbGxiYWNrLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZUNhbGxiYWNrLmgJ
KHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZUNhbGxi
YWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDE0ICszMywxNCBAQAogCiAjaWYgRU5BQkxFKERB
VEFCQVNFKQogCi0jaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVTaGFyZWQuaD4KKyNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBEYXRhYmFzZTsKIGNsYXNzIERhdGFiYXNlU3luYzsKIAotY2xhc3MgRGF0YWJhc2VDYWxsYmFj
ayA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPERhdGFiYXNlQ2FsbGJhY2s+IHsKK2NsYXNzIERh
dGFiYXNlQ2FsbGJhY2sgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RGF0YWJhc2VDYWxs
YmFjaz4gewogcHVibGljOgogICAgIHZpcnR1YWwgfkRhdGFiYXNlQ2FsbGJhY2soKSB7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoRGF0YWJhc2UqKSA9IDA7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGhyZWFkLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRocmVhZC5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUaHJlYWQuaAkod29ya2luZyBjb3B5KQpAQCAtNDgs
NyArNDgsNyBAQCBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIFNRTFRyYW5zYWN0aW9uQ2xpZW50Owog
Y2xhc3MgU1FMVHJhbnNhY3Rpb25Db29yZGluYXRvcjsKIAotY2xhc3MgRGF0YWJhc2VUaHJlYWQg
OiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxEYXRhYmFzZVRocmVhZD4geworY2xhc3MgRGF0YWJh
c2VUaHJlYWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RGF0YWJhc2VUaHJlYWQ+IHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhYmFzZVRocmVhZD4gY3JlYXRlKCkg
eyByZXR1cm4gYWRvcHRSZWYobmV3IERhdGFiYXNlVGhyZWFkKTsgfQogICAgIH5EYXRhYmFzZVRo
cmVhZCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJDYWxsYmFja3MuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkNhbGxiYWNrcy5oCShyZXZpc2lv
biA4MTU1MykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCQ2FsbGJhY2tzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gRklY
TUU6IEFsbCBjaGlsZCBjbGFzc2VzIG5lZWQgdG8gYmUgbWFkZSB0aHJlYWRzYWZlLgotY2xhc3Mg
SURCQ2FsbGJhY2tzIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8SURCQ2FsbGJhY2tzPiB7Citj
bGFzcyBJREJDYWxsYmFja3MgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SURCQ2FsbGJh
Y2tzPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCQ2FsbGJhY2tzKCkgeyB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEludGVyZmFj
ZS5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29y
QmFja2VuZEludGVyZmFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNz
IElEQktleTsKIGNsYXNzIElEQlJlcXVlc3Q7CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7
CiAKLWNsYXNzIElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UgOiBwdWJsaWMgVGhyZWFkU2FmZVNo
YXJlZDxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiB7CitjbGFzcyBJREJDdXJzb3JCYWNrZW5k
SW50ZXJmYWNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPElEQkN1cnNvckJhY2tlbmRJ
bnRlcmZhY2U+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJDdXJzb3JCYWNrZW5kSW50ZXJm
YWNlKCkge30KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUJhY2tl
bmRJbnRlcmZhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZS5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOwog
Ly8gVGhpcyBpcyBpbXBsZW1lbnRlZCBieSBJREJEYXRhYmFzZUJhY2tlbmRJbXBsIGFuZCBvcHRp
b25hbGx5IG90aGVycyAoaW4gb3JkZXIgdG8gcHJveHkKIC8vIGNhbGxzIGFjcm9zcyBwcm9jZXNz
IGJhcnJpZXJzKS4gQWxsIGNhbGxzIHRvIHRoZXNlIGNsYXNzZXMgc2hvdWxkIGJlIG5vbi1ibG9j
a2luZyBhbmQKIC8vIHRyaWdnZXIgd29yayBvbiBhIGJhY2tncm91bmQgdGhyZWFkIGlmIG5lY2Vz
c2FyeS4KLWNsYXNzIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSA6IHB1YmxpYyBUaHJlYWRT
YWZlU2hhcmVkPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4geworY2xhc3MgSURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPElEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZT4gewogcHVibGljOgogICAgIHZpcnR1YWwgfklEQkRhdGFiYXNl
QmFja2VuZEludGVyZmFjZSgpIHsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lE
QkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCShyZXZpc2lvbiA4MTU1MykKKysr
IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaAkod29y
a2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIC8vIFRo
aXMgaXMgaW1wbGVtZW50ZWQgYnkgSURCRmFjdG9yeUJhY2tlbmRJbXBsIGFuZCBvcHRpb25hbGx5
IG90aGVycyAoaW4gb3JkZXIgdG8gcHJveHkKIC8vIGNhbGxzIGFjcm9zcyBwcm9jZXNzIGJhcnJp
ZXJzKS4gQWxsIGNhbGxzIHRvIHRoZXNlIGNsYXNzZXMgc2hvdWxkIGJlIG5vbi1ibG9ja2luZyBh
bmQKIC8vIHRyaWdnZXIgd29yayBvbiBhIGJhY2tncm91bmQgdGhyZWFkIGlmIG5lY2Vzc2FyeS4K
LWNsYXNzIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlIDogcHVibGljIFRocmVhZFNhZmVTaGFy
ZWQ8SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U+IHsKK2NsYXNzIElEQkZhY3RvcnlCYWNrZW5k
SW50ZXJmYWNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPElEQkZhY3RvcnlCYWNrZW5k
SW50ZXJmYWNlPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCRmFjdG9yeUJh
Y2tlbmRJbnRlcmZhY2U+IGNyZWF0ZSgpOwogICAgIHZpcnR1YWwgfklEQkZhY3RvcnlCYWNrZW5k
SW50ZXJmYWNlKCkgeyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4QmFj
a2VuZEludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURC
SW5kZXhCYWNrZW5kSW50ZXJmYWNlLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9JREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAt
MzksNyArMzksNyBAQCBjbGFzcyBJREJLZXk7CiBjbGFzcyBJREJLZXlSYW5nZTsKIGNsYXNzIElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTsKIAotY2xhc3MgSURCSW5kZXhCYWNrZW5kSW50
ZXJmYWNlIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNl
PiB7CitjbGFzcyBJREJJbmRleEJhY2tlbmRJbnRlcmZhY2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiB7CiBwdWJsaWM6CiAgICAgdmlydHVh
bCB+SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlKCkgeyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvSURCS2V5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9J
REJLZXkuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQktl
eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY2xhc3MgSURCS2V5IDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8SURCS2V5PiB7Citj
bGFzcyBJREJLZXkgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SURCS2V5PiB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCS2V5PiBjcmVhdGVOdWxsKCkKICAgICB7CkBA
IC0xMDAsOCArMTAwLDggQEAgcHVibGljOgogICAgIGJvb2wgaXNMZXNzVGhhbihjb25zdCBJREJL
ZXkqIG90aGVyKSBjb25zdDsKICAgICBib29sIGlzRXF1YWwoY29uc3QgSURCS2V5KiBvdGhlcikg
Y29uc3Q7CiAKLSAgICB1c2luZyBUaHJlYWRTYWZlU2hhcmVkPElEQktleT46OnJlZjsKLSAgICB1
c2luZyBUaHJlYWRTYWZlU2hhcmVkPElEQktleT46OmRlcmVmOworICAgIHVzaW5nIFRocmVhZFNh
ZmVSZWZDb3VudGVkPElEQktleT46OnJlZjsKKyAgICB1c2luZyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxJREJLZXk+OjpkZXJlZjsKIAogcHJpdmF0ZToKICAgICBJREJLZXkoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5UmFuZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0lEQktleVJhbmdlLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9JREJLZXlSYW5nZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSURCS2V5UmFuZ2UgOiBwdWJsaWMg
VGhyZWFkU2FmZVNoYXJlZDxJREJLZXlSYW5nZT4geworY2xhc3MgSURCS2V5UmFuZ2UgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SURCS2V5UmFuZ2U+IHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gY3JlYXRlKFBhc3NSZWZQdHI8SURCS2V5PiBsb3dl
ciwgUGFzc1JlZlB0cjxJREJLZXk+IHVwcGVyLCBib29sIGxvd2VyT3BlbiwgYm9vbCB1cHBlck9w
ZW4pCiAgICAgewpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJh
Y2tlbmRJbnRlcmZhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lE
Qk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgSURCS2V5UmFuZ2U7CiBjbGFzcyBJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U7CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7
CiAKLWNsYXNzIElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZSA6IHB1YmxpYyBUaHJlYWRT
YWZlU2hhcmVkPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4geworY2xhc3MgSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPElE
Qk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gewogcHVibGljOgogICAgIHZpcnR1YWwgfklE
Qk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZSgpIHsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL0lEQlJlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL0lEQlJlcXVlc3QuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL0lEQlJlcXVlc3QuaAkod29ya2luZyBjb3B5KQpAQCAtOTEsOCArOTEsOCBAQCBwdWJsaWM6
CiAgICAgYm9vbCBkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBFeGNlcHRp
b25Db2RlJiBlYykgeyByZXR1cm4gRXZlbnRUYXJnZXQ6OmRpc3BhdGNoRXZlbnQoZXZlbnQsIGVj
KTsgfQogICAgIHZpcnR1YWwgdm9pZCB1bmNhdWdodEV4Y2VwdGlvbkluRXZlbnRIYW5kbGVyKCk7
CiAKLSAgICB1c2luZyBUaHJlYWRTYWZlU2hhcmVkPElEQkNhbGxiYWNrcz46OnJlZjsKLSAgICB1
c2luZyBUaHJlYWRTYWZlU2hhcmVkPElEQkNhbGxiYWNrcz46OmRlcmVmOworICAgIHVzaW5nIFRo
cmVhZFNhZmVSZWZDb3VudGVkPElEQkNhbGxiYWNrcz46OnJlZjsKKyAgICB1c2luZyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxJREJDYWxsYmFja3M+OjpkZXJlZjsKIAogcHJvdGVjdGVkOgogICAgIElE
QlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCQW55PiBzb3Vy
Y2UsIElEQlRyYW5zYWN0aW9uKik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgJKHJldmlzaW9uIDgxNTUz
KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBJREJUcmFuc2FjdGlv
bkNhbGxiYWNrczsKIC8vIFRoaXMgaXMgaW1wbGVtZW50ZWQgYnkgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW1wbCBhbmQgb3B0aW9uYWxseSBvdGhlcnMgKGluIG9yZGVyIHRvIHByb3h5CiAvLyBjYWxs
cyBhY3Jvc3MgcHJvY2VzcyBiYXJyaWVycykuIEFsbCBjYWxscyB0byB0aGVzZSBjbGFzc2VzIHNo
b3VsZCBiZSBub24tYmxvY2tpbmcgYW5kCiAvLyB0cmlnZ2VyIHdvcmsgb24gYSBiYWNrZ3JvdW5k
IHRocmVhZCBpZiBuZWNlc3NhcnkuCi1jbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2U+IHsKK2NsYXNzIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHsKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSB7IH0KIApJ
bmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxFcnJvci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMRXJyb3IuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1NRTEVycm9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDExICsz
MiwxMSBAQAogI2lmIEVOQUJMRShEQVRBQkFTRSkKIAogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCi0jaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVTaGFyZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhy
ZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTUUxF
cnJvciA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFNRTEVycm9yPiB7CitjbGFzcyBTUUxFcnJv
ciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTUUxFcnJvcj4gewogcHVibGljOgogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNRTEVycm9yPiBjcmVhdGUodW5zaWduZWQgY29kZSwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU1FMRXJyb3IoY29kZSwgbWVz
c2FnZSkpOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMUmVzdWx0U2V0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxSZXN1bHRTZXQuaAkocmV2
aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFJlc3VsdFNldC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMywxMSArMzMsMTEgQEAKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGUuaCIKICNpbmNsdWRlICJTUUxSZXN1bHRTZXRSb3dMaXN0LmgiCi0jaW5jbHVkZSA8d3RmL1Ro
cmVhZFNhZmVTaGFyZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTUUxSZXN1bHRTZXQgOiBwdWJsaWMgVGhy
ZWFkU2FmZVNoYXJlZDxTUUxSZXN1bHRTZXQ+IHsKK2NsYXNzIFNRTFJlc3VsdFNldCA6IHB1Ymxp
YyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTUUxSZXN1bHRTZXQ+IHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5l
dyBTUUxSZXN1bHRTZXQpOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3Rh
dGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1l
bnQuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIGNsYXNzIFNRTFN0YXRlbWVu
dENhbGxiYWNrOwogY2xhc3MgU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjazsKIGNsYXNzIFNRTFRy
YW5zYWN0aW9uOwogCi1jbGFzcyBTUUxTdGF0ZW1lbnQgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJl
ZDxTUUxTdGF0ZW1lbnQ+IHsKK2NsYXNzIFNRTFN0YXRlbWVudCA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxTUUxTdGF0ZW1lbnQ+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTUUxTdGF0ZW1lbnQ+IGNyZWF0ZShEYXRhYmFzZSosIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZl
Y3RvcjxTUUxWYWx1ZT4mLCBQYXNzUmVmUHRyPFNRTFN0YXRlbWVudENhbGxiYWNrPiwgUGFzc1Jl
ZlB0cjxTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrPiwgaW50IHBlcm1pc3Npb25zKTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnRDYWxsYmFjay5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50Q2FsbGJhY2suaAkocmV2
aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudENhbGxi
YWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE0ICszMCwxNCBAQAogCiAjaWYgRU5BQkxFKERB
VEFCQVNFKQogCi0jaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVTaGFyZWQuaD4KKyNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBTUUxUcmFuc2FjdGlvbjsKIGNsYXNzIFNRTFJlc3VsdFNldDsKIAotY2xhc3MgU1FMU3RhdGVt
ZW50Q2FsbGJhY2sgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxTUUxTdGF0ZW1lbnRDYWxsYmFj
az4geworY2xhc3MgU1FMU3RhdGVtZW50Q2FsbGJhY2sgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNv
dW50ZWQ8U1FMU3RhdGVtZW50Q2FsbGJhY2s+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TUUxT
dGF0ZW1lbnRDYWxsYmFjaygpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChTUUxU
cmFuc2FjdGlvbiosIFNRTFJlc3VsdFNldCopID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oCShyZXZpc2lvbiA4MTU1
MykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxNCArMzEsMTQgQEAKIAogI2lmIEVOQUJMRShEQVRBQkFT
RSkKIAotI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlU2hhcmVkLmg+CisjaW5jbHVkZSA8d3RmL1Ro
cmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1FM
VHJhbnNhY3Rpb247CiBjbGFzcyBTUUxFcnJvcjsKIAotY2xhc3MgU1FMU3RhdGVtZW50RXJyb3JD
YWxsYmFjayA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFNRTFN0YXRlbWVudEVycm9yQ2FsbGJh
Y2s+IHsKK2NsYXNzIFNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2sgOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjaz4gewogcHVibGljOgogICAgIHZp
cnR1YWwgflNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2soKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aGFuZGxlRXZlbnQoU1FMVHJhbnNhY3Rpb24qLCBTUUxFcnJvciopID0gMDsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
NCw3ICszNCw3IEBACiAjaW5jbHVkZSAiU1FMU3RhdGVtZW50LmgiCiAjaW5jbHVkZSA8d3RmL0Rl
cXVlLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkU2Fm
ZVNoYXJlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTAsNyArNTAsNyBA
QCBjbGFzcyBTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s7CiBjbGFzcyBTUUxWYWx1ZTsKIGNs
YXNzIFZvaWRDYWxsYmFjazsKIAotY2xhc3MgU1FMVHJhbnNhY3Rpb25XcmFwcGVyIDogcHVibGlj
IFRocmVhZFNhZmVTaGFyZWQ8U1FMVHJhbnNhY3Rpb25XcmFwcGVyPiB7CitjbGFzcyBTUUxUcmFu
c2FjdGlvbldyYXBwZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U1FMVHJhbnNhY3Rp
b25XcmFwcGVyPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1FMVHJhbnNhY3Rpb25XcmFwcGVy
KCkgeyB9CiAgICAgdmlydHVhbCBib29sIHBlcmZvcm1QcmVmbGlnaHQoU1FMVHJhbnNhY3Rpb24q
KSA9IDA7CkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFNRTEVycm9yKiBz
cWxFcnJvcigpIGNvbnN0ID0gMDsKIH07CiAKLWNsYXNzIFNRTFRyYW5zYWN0aW9uIDogcHVibGlj
IFRocmVhZFNhZmVTaGFyZWQ8U1FMVHJhbnNhY3Rpb24+IHsKK2NsYXNzIFNRTFRyYW5zYWN0aW9u
IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNRTFRyYW5zYWN0aW9uPiB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb24+IGNyZWF0ZShEYXRhYmFzZSos
IFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4sIFBhc3NSZWZQdHI8U1FMVHJhbnNh
Y3Rpb25FcnJvckNhbGxiYWNrPiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiwgUGFzc1JlZlB0cjxTUUxUcmFuc2Fj
dGlvbldyYXBwZXI+LCBib29sIHJlYWRPbmx5ID0gZmFsc2UpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmgJKHJldmlzaW9uIDgxNTUz
KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMxLDEzICszMSwxMyBAQAogCiAjaWYgRU5BQkxFKERBVEFCQVNFKQog
Ci0jaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVTaGFyZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFk
U2FmZVJlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTUUxUcmFu
c2FjdGlvbjsKIAotY2xhc3MgU1FMVHJhbnNhY3Rpb25DYWxsYmFjayA6IHB1YmxpYyBUaHJlYWRT
YWZlU2hhcmVkPFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+IHsKK2NsYXNzIFNRTFRyYW5zYWN0aW9u
Q2FsbGJhY2sgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U1FMVHJhbnNhY3Rpb25DYWxs
YmFjaz4gewogcHVibGljOgogICAgIHZpcnR1YWwgflNRTFRyYW5zYWN0aW9uQ2FsbGJhY2soKSB7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoU1FMVHJhbnNhY3Rpb24qKSA9IDA7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25FcnJv
ckNhbGxiYWNrLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
UUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTMgKzMx
LDEzIEBACiAKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAKLSNpbmNsdWRlIDx3dGYvVGhyZWFkU2Fm
ZVNoYXJlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNRTEVycm9yOwogCi1jbGFzcyBTUUxUcmFuc2FjdGlv
bkVycm9yQ2FsbGJhY2sgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxTUUxUcmFuc2FjdGlvbkVy
cm9yQ2FsbGJhY2s+IHsKK2NsYXNzIFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjayA6IHB1Ymxp
YyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+IHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2soKSB7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoU1FMRXJyb3IqKSA9IDA7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNl
L1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlciA6IHB1
YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlcj4geworY2xhc3MgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyIDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50V3JhcHBlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4gY3JlYXRlKFdlYlNvY2tldENoYW5uZWxDbGll
bnQqIGNsaWVudCkKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRT
aGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93
b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAkocmV2aXNpb24gODE1NTMp
CisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIFNoYXJlZFdvcmtlclByb3h5IDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8
U2hhcmVkV29ya2VyUHJveHk+LCBwdWJsaWMgV29ya2VyTG9hZGVyUHJveHksIHB1YmxpYyBXb3Jr
ZXJSZXBvcnRpbmdQcm94eSB7CitjbGFzcyBTaGFyZWRXb3JrZXJQcm94eSA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxTaGFyZWRXb3JrZXJQcm94eT4sIHB1YmxpYyBXb3JrZXJMb2FkZXJQ
cm94eSwgcHVibGljIFdvcmtlclJlcG9ydGluZ1Byb3h5IHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTaGFyZWRXb3JrZXJQcm94eT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgS1VSTCYgdXJsLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4pIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRXb3JrZXJQcm94eShuYW1lLCB1cmwsIG9yaWdpbikpOyB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxNTYyKQorKysgU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDMtMTkgIEJpbGwg
QnVkZ2UgIDxiYnVkZ2VAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBUaHJlYWRTYWZlU2hhcmVkIHRvIFRocmVhZFNh
ZmVSZWZDb3VudGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01NjcxNAorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gRXhwb3NlcyBubyBuZXcgZnVuY3Rp
b25hbGl0eS4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oOgorICAg
ICAgICAqIFBsYXRmb3JtL1dvcmtRdWV1ZS5oOgorICAgICAgICAqIFBsYXRmb3JtL3dpbi9Xb3Jr
UXVldWVXaW4uY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNo
ZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuaDoKKwog
MjAxMS0wMy0xOSAgQW50b24gRCdBdXJpYSAgPGFkYXVyaWFAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9Xb3JrUXVldWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Xb3JrUXVldWUuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Xb3JrUXVldWUuaAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDcgKzEwNiw3IEBAIHByaXZhdGU6
CiAgICAgZGlzcGF0Y2hfcXVldWVfdCBtX2Rpc3BhdGNoUXVldWU7CiAjZW5kaWYKICNlbGlmIFBM
QVRGT1JNKFdJTikKLSAgICBjbGFzcyBXb3JrSXRlbVdpbiA6IHB1YmxpYyBUaHJlYWRTYWZlU2hh
cmVkPFdvcmtJdGVtV2luPiB7CisgICAgY2xhc3MgV29ya0l0ZW1XaW4gOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8V29ya0l0ZW1XaW4+IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdvcmtJdGVtV2luPiBjcmVhdGUoUGFzc093blB0cjxXb3JrSXRlbT4sIFdv
cmtRdWV1ZSopOwogICAgICAgICB2aXJ0dWFsIH5Xb3JrSXRlbVdpbigpOwpJbmRleDogU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgJKHJldmlzaW9uIDgxNTUz
KQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgJKHdvcmtp
bmcgY29weSkKQEAgLTcyLDcgKzcyLDcgQEAgZW51bSBNZXNzYWdlU2VuZEZsYWdzIHsKICAgICB9
IFwKIHdoaWxlICgwKQogCi1jbGFzcyBDb25uZWN0aW9uIDogcHVibGljIFRocmVhZFNhZmVTaGFy
ZWQ8Q29ubmVjdGlvbj4geworY2xhc3MgQ29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxDb25uZWN0aW9uPiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgTWVzc2FnZVJlY2VpdmVy
IHsKICAgICBwcm90ZWN0ZWQ6CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS93aW4vV29y
a1F1ZXVlV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS93aW4v
V29ya1F1ZXVlV2luLmNwcAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS93aW4vV29ya1F1ZXVlV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEwLDcgKzIxMCw3
IEBAIHZvaWQgV29ya1F1ZXVlOjpzY2hlZHVsZVdvcmsoUGFzc093blB0cjwKICAgICAgICAgOjpR
dWV1ZVVzZXJXb3JrSXRlbSh3b3JrVGhyZWFkQ2FsbGJhY2ssIHRoaXMsIFdUX0VYRUNVVEVERUZB
VUxUKTsKIH0KIAotc3RydWN0IFRpbWVyQ29udGV4dCA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVk
PFRpbWVyQ29udGV4dD4geworc3RydWN0IFRpbWVyQ29udGV4dCA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxUaW1lckNvbnRleHQ+IHsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxUaW1lckNv
bnRleHQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBUaW1lckNvbnRleHQpOyB9CiAK
ICAgICBXb3JrUXVldWUqIHF1ZXVlOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAkocmV2aXNpb24gODE1NTMpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgUUxvY2FsU29ja2V0OwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotY2xhc3MgUHJvY2Vzc0xhdW5jaGVyIDogcHVibGljIFRocmVhZFNhZmVT
aGFyZWQ8UHJvY2Vzc0xhdW5jaGVyPiB7CitjbGFzcyBQcm9jZXNzTGF1bmNoZXIgOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8UHJvY2Vzc0xhdW5jaGVyPiB7CiBwdWJsaWM6CiAgICAgY2xh
c3MgQ2xpZW50IHsKICAgICBwdWJsaWM6CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuaAkocmV2aXNpb24gODE1NTMpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBRTG9jYWxTb2NrZXQ7CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi1jbGFzcyBUaHJlYWRMYXVuY2hlciA6IHB1YmxpYyBUaHJlYWRTYWZlU2hh
cmVkPFRocmVhZExhdW5jaGVyPiB7CitjbGFzcyBUaHJlYWRMYXVuY2hlciA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxUaHJlYWRMYXVuY2hlcj4gewogcHVibGljOgogICAgIGNsYXNzIENs
aWVudCB7CiAgICAgcHVibGljOgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDgxNTYyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wMy0xOSAgQmlsbCBCdWRnZSAgPGJidWRnZUBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVuYW1lIFRocmVhZFNhZmVTaGFyZWQgdG8gVGhyZWFkU2FmZVJlZkNvdW50ZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NzE0CisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBFeHBvc2VzIG5vIG5ldyBmdW5jdGlvbmFsaXR5LgorCisgICAg
ICAgICogc3JjL1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmg6CisgICAgICAgICogc3JjL1dl
YldvcmtlckJhc2UuY3BwOgorICAgICAgICAqIHNyYy9Xb3JrZXJGaWxlU3lzdGVtQ2FsbGJhY2tz
QnJpZGdlLmg6CisgICAgICAgICogc3JjL1dvcmtlckZpbGVXcml0ZXJDYWxsYmFja3NCcmlkZ2Uu
aDoKKwogMjAxMS0wMy0xOCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oCShyZXZpc2lv
biA4MTU1MykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtTWVzc2FnZVBv
cnRDaGFubmVsLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgTWVzc2FnZVBvcnQ7CiAKIC8vIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFu
bmVsIGlzIGEgcGxhdGZvcm0tZGVwZW5kZW50IGludGVyZmFjZSB0byB0aGUgcmVtb3RlIHNpZGUg
b2YgYSBtZXNzYWdlIGNoYW5uZWwuCi1jbGFzcyBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbCA6
IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsPiwKK2Ns
YXNzIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsPiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVibGljIFdlYktpdDo6V2ViTWVzc2FnZVBvcnRDaGFubmVsQ2xpZW50IHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBjcmVhdGVDaGFubmVsKFBhc3NSZWZQdHI8TWVzc2Fn
ZVBvcnQ+LCBQYXNzUmVmUHRyPE1lc3NhZ2VQb3J0Pik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJXb3JrZXJCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJCYXNlLmNwcAkocmV2aXNpb24gODE1NTMpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJCYXNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjUsNyArNjUsNyBAQCBuYW1lc3BhY2UgewogCiAvLyBUaGlzIGNsYXNzIGlzIHVzZWQgdG8g
cm91dGUgdGhlIHJlc3VsdCBvZiB0aGUgV2ViV29ya2VyQmFzZTo6YWxsb3dEYXRhYmFzZQogLy8g
Y2FsbCBiYWNrIHRvIHRoZSB3b3JrZXIgY29udGV4dC4KLWNsYXNzIEFsbG93RGF0YWJhc2VNYWlu
VGhyZWFkQnJpZGdlIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8QWxsb3dEYXRhYmFzZU1haW5U
aHJlYWRCcmlkZ2U+IHsKK2NsYXNzIEFsbG93RGF0YWJhc2VNYWluVGhyZWFkQnJpZGdlIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEFsbG93RGF0YWJhc2VNYWluVGhyZWFkQnJpZGdlPiB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8QWxsb3dEYXRhYmFzZU1haW5UaHJlYWRC
cmlkZ2U+IGNyZWF0ZShXZWJXb3JrZXJCYXNlKiB3b3JrZXIsIGNvbnN0IFdURjo6U3RyaW5nJiBt
b2RlLCBXZWJDb21tb25Xb3JrZXJDbGllbnQqIGNvbW1vbkNsaWVudCwgV2ViRnJhbWUqIGZyYW1l
LCBjb25zdCBXVEY6OlN0cmluZyYgbmFtZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRpc3BsYXlOYW1l
LCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUpCiAgICAgewpJbmRleDogU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV29ya2VyRmlsZVN5c3RlbUNhbGxiYWNrc0JyaWRnZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dvcmtlckZpbGVTeXN0ZW1DYWxsYmFj
a3NCcmlkZ2UuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Xb3JrZXJGaWxlU3lzdGVtQ2FsbGJhY2tzQnJpZGdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY2
LDcgKzY2LDcgQEAgc3RydWN0IFdlYkZpbGVTeXN0ZW1FbnRyeTsKIC8vICAtLT4gQnJpZGdlOjpk
aWRYeHhPbldvcmtlclRocmVhZCBpcyBjYWxsZWQgb24gV29ya2VyVGhyZWFkCiAvLyAgICAgIFRo
aXMgY2FsbHMgdGhlIG9yaWdpbmFsIGNhbGxiYWNrcyAobV9jYWxsYmFja3NPbldvcmtlclRocmVh
ZCkgYW5kCiAvLyAgICAgIHJlbGVhc2VzIGEgc2VsZi1yZWZlcmVuY2UgdG8gdGhlIGJyaWRnZS4K
LWNsYXNzIFdvcmtlckZpbGVTeXN0ZW1DYWxsYmFja3NCcmlkZ2UgOiBwdWJsaWMgVGhyZWFkU2Fm
ZVNoYXJlZDxXb3JrZXJGaWxlU3lzdGVtQ2FsbGJhY2tzQnJpZGdlPiwgcHVibGljIFdlYkNvcmU6
OldvcmtlckNvbnRleHQ6Ok9ic2VydmVyIHsKK2NsYXNzIFdvcmtlckZpbGVTeXN0ZW1DYWxsYmFj
a3NCcmlkZ2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya2VyRmlsZVN5c3RlbUNh
bGxiYWNrc0JyaWRnZT4sIHB1YmxpYyBXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjpPYnNlcnZlciB7
CiBwdWJsaWM6CiAgICAgfldvcmtlckZpbGVTeXN0ZW1DYWxsYmFja3NCcmlkZ2UoKTsKIApJbmRl
eDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV29ya2VyRmlsZVdyaXRlckNhbGxiYWNrc0Jy
aWRnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dvcmtlckZp
bGVXcml0ZXJDYWxsYmFja3NCcmlkZ2UuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9Xb3JrZXJGaWxlV3JpdGVyQ2FsbGJhY2tzQnJpZGdlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0LmgiCiAj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgot
I2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlU2hhcmVkLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNh
ZmVSZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBBc3luY0Zp
bGVXcml0ZXJDbGllbnQ7CkBAIC03OSw3ICs3OSw3IEBAIGNsYXNzIFdlYldvcmtlckJhc2U7CiAv
LyBzaG91bGQgY2FsbCBwb3N0U2h1dGRvd25Ub01haW5UaHJlYWQgYmVmb3JlIGRyb3BwaW5nIGl0
cyByZWZlcmVuY2UgdG8gdGhlCiAvLyBicmlkZ2UuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBXZWJG
aWxlV3JpdGVyIHdpbGwgYmUgY2xlYXJlZCBvbiB0aGUgbWFpbgogLy8gdGhyZWFkIGFuZCB0aGF0
IG5vIGZ1cnRoZXIgY2FsbHMgdG8gdGhlIFdlYkZpbGVXcml0ZXJDbGllbnQgd2lsbCBiZSBtYWRl
LgotY2xhc3MgV29ya2VyRmlsZVdyaXRlckNhbGxiYWNrc0JyaWRnZSA6IHB1YmxpYyBUaHJlYWRT
YWZlU2hhcmVkPFdvcmtlckZpbGVXcml0ZXJDYWxsYmFja3NCcmlkZ2U+LCBwdWJsaWMgV2ViQ29y
ZTo6V29ya2VyQ29udGV4dDo6T2JzZXJ2ZXIsIHB1YmxpYyBXZWJGaWxlV3JpdGVyQ2xpZW50IHsK
K2NsYXNzIFdvcmtlckZpbGVXcml0ZXJDYWxsYmFja3NCcmlkZ2UgOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8V29ya2VyRmlsZVdyaXRlckNhbGxiYWNrc0JyaWRnZT4sIHB1YmxpYyBXZWJD
b3JlOjpXb3JrZXJDb250ZXh0OjpPYnNlcnZlciwgcHVibGljIFdlYkZpbGVXcml0ZXJDbGllbnQg
ewogcHVibGljOgogICAgIH5Xb3JrZXJGaWxlV3JpdGVyQ2FsbGJhY2tzQnJpZGdlKCk7CiAKSW5k
ZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDgxNTYyKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTEtMDMtMTkgIEJpbGwgQnVkZ2UgIDxiYnVkZ2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBUaHJl
YWRTYWZlU2hhcmVkIHRvIFRocmVhZFNhZmVSZWZDb3VudGVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjcxNAorCisgICAgICAgIE5vIG5ldyB0ZXN0
cy4gRXhwb3NlcyBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oOiBDb3BpZWQg
ZnJvbSBEdW1wUmVuZGVyVHJlZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVNoYXJl
ZC5oLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJl
YWRTYWZlU2hhcmVkLmg6IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy9kby13ZWJjb3JlLXJl
bmFtZToKKwogMjAxMS0wMy0xOSAgQW50b24gRCdBdXJpYSAgPGFkYXVyaWFAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCkluZGV4OiBUb29scy9E
dW1wUmVuZGVyVHJlZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9Gb3J3YXJkaW5nSGVhZGVycy93
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaAkocmV2aXNpb24gODE1MjgpCShmcm9tIFRvb2xzL0R1
bXBSZW5kZXJUcmVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlU2hhcmVkLmg6ODE1
MjgpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFk
U2FmZVJlZkNvdW50ZWQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxIEBACisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvVGhyZWFkU2FmZVNoYXJlZC5oPgpJbmRleDogVG9vbHMvRHVtcFJlbmRl
clRyZWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVh
ZFNhZmVSZWZDb3VudGVkLmgJKHJldmlzaW9uIDgxNTI4KQorKysgVG9vbHMvRHVtcFJlbmRlclRy
ZWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEgKzEgQEAKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UaHJlYWRTYWZlU2hh
cmVkLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4K
SW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRT
YWZlU2hhcmVkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvRm9yd2FyZGlu
Z0hlYWRlcnMvd3RmL1RocmVhZFNhZmVTaGFyZWQuaAkocmV2aXNpb24gODE1MjgpCisrKyBUb29s
cy9EdW1wUmVuZGVyVHJlZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVNoYXJlZC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xICswLDAgQEAKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9U
aHJlYWRTYWZlU2hhcmVkLmg+CkluZGV4OiBUb29scy9TY3JpcHRzL2RvLXdlYmNvcmUtcmVuYW1l
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvZG8td2ViY29yZS1yZW5hbWUJKHJldmlzaW9u
IDgxNTI4KQorKysgVG9vbHMvU2NyaXB0cy9kby13ZWJjb3JlLXJlbmFtZQkod29ya2luZyBjb3B5
KQpAQCAtMTI1LDggKzEyNSw2IEBAIG15ICVyZW5hbWVzQ29udGVtcGxhdGVkRm9yVGhlRnV0dXJl
ID0gKAogICAgICJLVVJMTWFjIiA9PiAiVVJMTWFjIiwKICAgICAiS1VSTF9oIiA9PiAiVVJMX2gi
LAogCi0gICAgIlRocmVhZFNhZmVTaGFyZWRCYXNlIiA9PiAiVGhyZWFkU2FmZVJlZkNvdW50ZWRC
YXNlIiwKLSAgICAiVGhyZWFkU2FmZVNoYXJlZCIgPT4gIlRocmVhZFNhZmVSZWZDb3VudGVkIiwK
ICAgICAiVHJlZVNoYXJlZCIgPT4gIlRyZWVSZWZDb3VudGVkIiwKIAogICAgICJTdHJpbmdJbXBs
IiA9PiAiU2hhcmVkU3RyaW5nIiwK
</data>
<flag name="review"
          id="78513"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="78514"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86282</attachid>
            <date>2011-03-20 08:14:51 -0700</date>
            <delta_ts>2011-03-20 11:03:14 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>refcounted.txt</filename>
            <type>text/plain</type>
            <size>74199</size>
            <attacher name="Bill Budge">bbudge</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODE1NjIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAK
KzIwMTEtMDMtMTkgIEJpbGwgQnVkZ2UgIDxiYnVkZ2VAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBUaHJlYWRTYWZl
U2hhcmVkIHRvIFRocmVhZFNhZmVSZWZDb3VudGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjcxNAorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gRXhw
b3NlcyBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIEFQSS9KU0NsYXNzUmVmLmg6
CisgICAgICAgICogQVBJL09wYXF1ZUpTU3RyaW5nLmg6CisgICAgICAgICogR05VbWFrZWZpbGUu
YW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZ3lwaToKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvQXRvbWljcy5oOgorICAgICAg
ICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvQ3Jvc3NUaHJlYWRSZWZDb3Vu
dGVkLmg6CisgICAgICAgIChXVEY6OkNyb3NzVGhyZWFkUmVmQ291bnRlZDo6Q3Jvc3NUaHJlYWRS
ZWZDb3VudGVkKToKKyAgICAgICAgKFdURjo6Ojpjcm9zc1RocmVhZENvcHkpOgorICAgICAgICAq
IHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oOiBDb3BpZWQgZnJvbSB3dGYvVGhyZWFkU2FmZVNo
YXJlZC5oLgorICAgICAgICAoV1RGOjpUaHJlYWRTYWZlUmVmQ291bnRlZEJhc2U6OlRocmVhZFNh
ZmVSZWZDb3VudGVkQmFzZSk6CisgICAgICAgIChXVEY6OlRocmVhZFNhZmVSZWZDb3VudGVkQmFz
ZTo6cmVmKToKKyAgICAgICAgKFdURjo6VGhyZWFkU2FmZVJlZkNvdW50ZWRCYXNlOjpyZWZDb3Vu
dCk6CisgICAgICAgIChXVEY6OlRocmVhZFNhZmVSZWZDb3VudGVkQmFzZTo6ZGVyZWZCYXNlKToK
KyAgICAgICAgKFdURjo6VGhyZWFkU2FmZVJlZkNvdW50ZWQ6OlRocmVhZFNhZmVSZWZDb3VudGVk
KToKKyAgICAgICAgKiB3dGYvVGhyZWFkU2FmZVNoYXJlZC5oOiBSZW1vdmVkLgorICAgICAgICAq
IHd0Zi9UaHJlYWRpbmcuaDoKKwogMjAxMS0wMy0xOSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJv
Z2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDgxNTUzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC01NTEs
NyArNTUxLDcgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9UaHJlYWRpbmcuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJl
YWRpbmdQcmltaXRpdmVzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkaW5n
UHRocmVhZHMuY3BwIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFNhZmVTaGFy
ZWQuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFNwZWNpZmljLmggXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvVHlwZVRyYWl0cy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvVHlwZVRyYWl0cy5oIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5neXBpCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0xOTksNyArMTk5LDcgQEAK
ICAgICAgICAgICAgICd3dGYvU3RkTGliRXh0cmFzLmgnLAogICAgICAgICAgICAgJ3d0Zi9TdHJp
bmdFeHRyYXMuaCcsCiAgICAgICAgICAgICAnd3RmL1N0cmluZ0hhc2hlci5oJywKLSAgICAgICAg
ICAgICd3dGYvVGhyZWFkU2FmZVNoYXJlZC5oJywKKyAgICAgICAgICAgICd3dGYvVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQuaCcsCiAgICAgICAgICAgICAnd3RmL1RocmVhZFNwZWNpZmljLmgnLAogICAg
ICAgICAgICAgJ3d0Zi9UaHJlYWRpbmcuaCcsCiAgICAgICAgICAgICAnd3RmL1RocmVhZGluZ1By
aW1pdGl2ZXMuaCcsCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuaAko
cmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYu
aAkod29ya2luZyBjb3B5KQpAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgSlNDOjpXZWFr
R0NQdHI8SlNDOjpKU09iamVjdD4gY2FjaGVkUHJvdG90eXBlOwogfTsKIAotc3RydWN0IE9wYXF1
ZUpTQ2xhc3MgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxPcGFxdWVKU0NsYXNzPiB7CitzdHJ1
Y3QgT3BhcXVlSlNDbGFzcyA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxPcGFxdWVKU0Ns
YXNzPiB7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNDbGFzcz4gY3JlYXRlKGNvbnN0
IEpTQ2xhc3NEZWZpbml0aW9uKik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNDbGFz
cz4gY3JlYXRlTm9BdXRvbWF0aWNQcm90b3R5cGUoY29uc3QgSlNDbGFzc0RlZmluaXRpb24qKTsK
ICAgICB+T3BhcXVlSlNDbGFzcygpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9P
cGFxdWVKU1N0cmluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
T3BhcXVlSlNTdHJpbmcuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL09wYXF1ZUpTU3RyaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgSlNHbG9iYWxEYXRhOwogfQogCi1zdHJ1Y3QgT3Bh
cXVlSlNTdHJpbmcgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxPcGFxdWVKU1N0cmluZz4gewor
c3RydWN0IE9wYXF1ZUpTU3RyaW5nIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE9wYXF1
ZUpTU3RyaW5nPiB7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxPcGFxdWVKU1N0cmluZz4gY3Jl
YXRlKCkgLy8gbnVsbAogICAgIHsKQEAgLTU0LDcgKzU0LDcgQEAgc3RydWN0IE9wYXF1ZUpTU3Ry
aW5nIDogcHVibGljIFRocmVhZFNhZgogICAgIEpTQzo6SWRlbnRpZmllciBpZGVudGlmaWVyKEpT
Qzo6SlNHbG9iYWxEYXRhKikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIFdU
Rjo6VGhyZWFkU2FmZVNoYXJlZDxPcGFxdWVKU1N0cmluZz47CisgICAgZnJpZW5kIGNsYXNzIFdU
Rjo6VGhyZWFkU2FmZVJlZkNvdW50ZWQ8T3BhcXVlSlNTdHJpbmc+OwogCiAgICAgT3BhcXVlSlNT
dHJpbmcoKQogICAgICAgICA6IG1fY2hhcmFjdGVycygwKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNw
cm9qCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTk2NSw3ICs5NjUs
NyBAQAogCQkJPgogCQk8L0ZpbGU+CiAJCTxGaWxlCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0
ZlxUaHJlYWRTYWZlU2hhcmVkLmgiCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHd0ZlxUaHJlYWRT
YWZlUmVmQ291bnRlZC5oIgogCQkJPgogCQk8L0ZpbGU+CiAJCTxGaWxlCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtNTU1LDcgKzU1NSw3IEBACiAJCUJDMzEzNTY1MEYzMDJGQTMwMDNERkQzQSAvKiBE
ZWJ1Z2dlckFjdGl2YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMzMTM1NjMwRjMwMkZBMzAwM0RGRDNBIC8qIERlYnVnZ2VyQWN0aXZhdGlv
bi5jcHAgKi87IH07CiAJCUJDNUY3QkJFMTE4MjNCNTkwMDUyQzAyQyAvKiBBdG9taWNzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzVGN0JCQjExODIz
QjU5MDA1MkMwMkMgLyogQXRvbWljcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUJDNUY3QkJGMTE4MjNCNTkwMDUyQzAyQyAvKiBUaHJlYWRpbmdQ
cmltaXRpdmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzVGN0JCQzExODIzQjU5MDA1MkMwMkMgLyogVGhyZWFkaW5nUHJpbWl0aXZlcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUJDNUY3QkMwMTE4
MjNCNTkwMDUyQzAyQyAvKiBUaHJlYWRTYWZlU2hhcmVkLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzVGN0JCRDExODIzQjU5MDA1MkMwMkMgLyogVGhy
ZWFkU2FmZVNoYXJlZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUJDNUY3QkMwMTE4MjNCNTkwMDUyQzAyQyAvKiBUaHJlYWRTYWZlUmVmQ291bnRl
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1RjdC
QkQxMTgyM0I1OTAwNTJDMDJDIC8qIFRocmVhZFNhZmVSZWZDb3VudGVkLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM2QUFBRTUwRTFGNDI2NTAw
QUQ4N0Q4IC8qIENsYXNzSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM2QUFBRTQwRTFGNDI2NTAwQUQ4N0Q4IC8qIENsYXNzSW5mby5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNzU2RkM5MEUy
MDMxQjIwMERFN0QxMiAvKiBKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NTZGQzcwRTIwMzFCMjAwREU3RDEy
IC8qIEpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmggKi87IH07CiAJCUJDN0Y4RkI5MEUxOUQxQzMw
MDg2MzJDMCAvKiBKU051bWJlckNlbGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDN0Y4RkI4MEUxOUQxQzMwMDg2MzJDMCAvKiBKU051bWJlckNlbGwu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE3
Miw3ICsxMTcyLDcgQEAKIAkJQkMzMzdCRUEwRTFCMDBDQjAwNzY5MThBIC8qIEVycm9yLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVycm9yLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1RjdCQkIxMTgyM0I1OTAwNTJDMDJDIC8qIEF0b21pY3Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXRvbWljcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzVGN0JCQzExODIzQjU5MDA1MkMwMkMgLyogVGhyZWFkaW5n
UHJpbWl0aXZlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaHJlYWRpbmdQ
cmltaXRpdmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDNUY3QkJEMTE4MjNC
NTkwMDUyQzAyQyAvKiBUaHJlYWRTYWZlU2hhcmVkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFRocmVhZFNhZmVTaGFyZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQkM1RjdCQkQxMTgyM0I1OTAwNTJDMDJDIC8qIFRocmVhZFNhZmVSZWZDb3VudGVkLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRocmVhZFNhZmVSZWZDb3VudGVkLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNkFBQUU0MEUxRjQyNjUwMEFEODdEOCAvKiBD
bGFzc0luZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xhc3NJbmZvLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzU2RkM2MEUyMDMxQjIwMERFN0QxMiAv
KiBKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDNzU2RkM3MEUyMDMxQjIwMERFN0QxMiAvKiBKU0dsb2JhbE9iamVjdEZ1
bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0dsb2JhbE9iamVj
dEZ1bmN0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY4Miw3ICsxNjgy
LDcgQEAKIAkJCQlFMUVFNzkyMjBENkM5NUNEMDBGRUEzQkEgLyogVGhyZWFkaW5nLmggKi8sCiAJ
CQkJQkM1RjdCQkMxMTgyM0I1OTAwNTJDMDJDIC8qIFRocmVhZGluZ1ByaW1pdGl2ZXMuaCAqLywK
IAkJCQlFMUVFNzkzQzBENkM5QjkyMDBGRUEzQkEgLyogVGhyZWFkaW5nUHRocmVhZHMuY3BwICov
LAotCQkJCUJDNUY3QkJEMTE4MjNCNTkwMDUyQzAyQyAvKiBUaHJlYWRTYWZlU2hhcmVkLmggKi8s
CisJCQkJQkM1RjdCQkQxMTgyM0I1OTAwNTJDMDJDIC8qIFRocmVhZFNhZmVSZWZDb3VudGVkLmgg
Ki8sCiAJCQkJRTFCN0M4QkQwREEzQTMzNjAwNzRCMERDIC8qIFRocmVhZFNwZWNpZmljLmggKi8s
CiAJCQkJMEIzMzBDMjYwRjM4QzYyMzAwNjkyREUzIC8qIFR5cGVUcmFpdHMuY3BwICovLAogCQkJ
CTBCNEQ3RTYyMEYzMTlBQzgwMEFEN0U1OCAvKiBUeXBlVHJhaXRzLmggKi8sCkBAIC0yNDgwLDcg
KzI0ODAsNyBAQAogCQkJCTE4QkFCNTU0MTBEQUUwNjYwMDBEOTQ1QiAvKiBUaHJlYWRJZGVudGlm
aWVyRGF0YVB0aHJlYWRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ3MDBFMTZGNUNEMDBC
MzQ0NjAgLyogVGhyZWFkaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVGN0JCRjExODIzQjU5
MDA1MkMwMkMgLyogVGhyZWFkaW5nUHJpbWl0aXZlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkM1
RjdCQzAxMTgyM0I1OTAwNTJDMDJDIC8qIFRocmVhZFNhZmVTaGFyZWQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUJDNUY3QkMwMTE4MjNCNTkwMDUyQzAyQyAvKiBUaHJlYWRTYWZlUmVmQ291bnRlZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NzEwRTE2RjVDRDAwQjM0NDYwIC8qIFRocmVhZFNw
ZWNpZmljLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzM4NjU1NjExODY5N0I0MDA1NDAyNzkgLyog
VGh1bmtHZW5lcmF0b3JzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEE0MkU0MDBGNEY2MEVFMDA1
OTkwOTkgLyogVGltZW91dENoZWNrZXIuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9BdG9taWNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9BdG9taWNzLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9BdG9taWNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4LDcgQEAKIG5h
bWVzcGFjZSBXVEYgewogCiAjaWYgT1MoV0lORE9XUykKLSNkZWZpbmUgV1RGX1VTRV9MT0NLRlJF
RV9USFJFQURTQUZFU0hBUkVEIDEKKyNkZWZpbmUgV1RGX1VTRV9MT0NLRlJFRV9USFJFQURTQUZF
UkVGQ09VTlRFRCAxCiAKICNpZiBDT01QSUxFUihNSU5HVykgfHwgQ09NUElMRVIoTVNWQzdfT1Jf
TE9XRVIpIHx8IE9TKFdJTkNFKQogaW5saW5lIGludCBhdG9taWNJbmNyZW1lbnQoaW50KiBhZGRl
bmQpIHsgcmV0dXJuIEludGVybG9ja2VkSW5jcmVtZW50KHJlaW50ZXJwcmV0X2Nhc3Q8bG9uZyo+
KGFkZGVuZCkpOyB9CkBAIC04OSw3ICs4OSw3IEBAIGlubGluZSBpbnQgYXRvbWljRGVjcmVtZW50
KGludCB2b2xhdGlsZSoKICNlbmRpZgogCiAjZWxpZiBPUyhEQVJXSU4pCi0jZGVmaW5lIFdURl9V
U0VfTE9DS0ZSRUVfVEhSRUFEU0FGRVNIQVJFRCAxCisjZGVmaW5lIFdURl9VU0VfTE9DS0ZSRUVf
VEhSRUFEU0FGRVJFRkNPVU5URUQgMQogCiBpbmxpbmUgaW50IGF0b21pY0luY3JlbWVudChpbnQg
dm9sYXRpbGUqIGFkZGVuZCkgeyByZXR1cm4gT1NBdG9taWNJbmNyZW1lbnQzMkJhcnJpZXIoY29u
c3RfY2FzdDxpbnQqPihhZGRlbmQpKTsgfQogaW5saW5lIGludCBhdG9taWNEZWNyZW1lbnQoaW50
IHZvbGF0aWxlKiBhZGRlbmQpIHsgcmV0dXJuIE9TQXRvbWljRGVjcmVtZW50MzJCYXJyaWVyKGNv
bnN0X2Nhc3Q8aW50Kj4oYWRkZW5kKSk7IH0KQEAgLTEwMCw3ICsxMDAsNyBAQCBpbmxpbmUgaW50
IGF0b21pY0luY3JlbWVudChpbnQgdm9sYXRpbGUqCiBpbmxpbmUgaW50IGF0b21pY0RlY3JlbWVu
dChpbnQgdm9sYXRpbGUqIGFkZGVuZCkgeyByZXR1cm4gYW5kcm9pZF9hdG9taWNfZGVjKGFkZGVu
ZCk7IH0KIAogI2VsaWYgQ09NUElMRVIoR0NDKSAmJiAhQ1BVKFNQQVJDNjQpICYmICFPUyhTWU1C
SUFOKSAvLyBzaXplb2YoX0F0b21pY193b3JkKSAhPSBzaXplb2YoaW50KSBvbiBzcGFyYzY0IGdj
YwotI2RlZmluZSBXVEZfVVNFX0xPQ0tGUkVFX1RIUkVBRFNBRkVTSEFSRUQgMQorI2RlZmluZSBX
VEZfVVNFX0xPQ0tGUkVFX1RIUkVBRFNBRkVSRUZDT1VOVEVEIDEKIAogaW5saW5lIGludCBhdG9t
aWNJbmNyZW1lbnQoaW50IHZvbGF0aWxlKiBhZGRlbmQpIHsgcmV0dXJuIF9fZ251X2N4eDo6X19l
eGNoYW5nZV9hbmRfYWRkKGFkZGVuZCwgMSkgKyAxOyB9CiBpbmxpbmUgaW50IGF0b21pY0RlY3Jl
bWVudChpbnQgdm9sYXRpbGUqIGFkZGVuZCkgeyByZXR1cm4gX19nbnVfY3h4OjpfX2V4Y2hhbmdl
X2FuZF9hZGQoYWRkZW5kLCAtMSkgLSAxOyB9CkBAIC0xMDksNyArMTA5LDcgQEAgaW5saW5lIGlu
dCBhdG9taWNEZWNyZW1lbnQoaW50IHZvbGF0aWxlKgogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAot
I2lmIFVTRShMT0NLRlJFRV9USFJFQURTQUZFU0hBUkVEKQorI2lmIFVTRShMT0NLRlJFRV9USFJF
QURTQUZFUkVGQ09VTlRFRCkKIHVzaW5nIFdURjo6YXRvbWljRGVjcmVtZW50OwogdXNpbmcgV1RG
OjphdG9taWNJbmNyZW1lbnQ7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw3IEBAIFNF
VChXVEZfSEVBREVSUwogICAgIFRDU3BpbkxvY2suaAogICAgIFRDU3lzdGVtQWxsb2MuaAogICAg
IFRocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuaAotICAgIFRocmVhZFNhZmVTaGFyZWQuaAor
ICAgIFRocmVhZFNhZmVSZWZDb3VudGVkLmgKICAgICBUaHJlYWRTcGVjaWZpYy5oCiAgICAgVGhy
ZWFkaW5nLmgKICAgICBUaHJlYWRpbmdQcmltaXRpdmVzLmgKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvQ3Jvc3NUaHJlYWRSZWZDb3VudGVkLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9Dcm9zc1RocmVhZFJlZkNvdW50ZWQuaAkocmV2aXNpb24gODE1
NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0Nyb3NzVGhyZWFkUmVmQ291bnRlZC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxMCArMzgsMTAgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAK
LSAgICAvLyBVc2VkIHRvIGFsbG93aW5nIHNoYXJpbmcgZGF0YSBhY3Jvc3MgY2xhc3NlcyBhbmQg
dGhyZWFkcyAobGlrZSBUaHJlYWRlZFNhZmVTaGFyZWQpLgorICAgIC8vIFVzZWQgdG8gYWxsb3dp
bmcgc2hhcmluZyBkYXRhIGFjcm9zcyBjbGFzc2VzIGFuZCB0aHJlYWRzIChsaWtlIFRocmVhZFNh
ZmVSZWZDb3VudGVkKS4KICAgICAvLwotICAgIC8vIFdoeSBub3QganVzdCB1c2UgVGhyZWFkU2Fm
ZVNoYXJlZD8KLSAgICAvLyBUaHJlYWRTYWZlU2hhcmVkIGNhbiBoYXZlIGEgc2lnbmlmaWNhbnQg
cGVyZiBpbXBhY3Qgd2hlbiB1c2VkIGluIGxvdyBsZXZlbCBjbGFzc2VzCisgICAgLy8gV2h5IG5v
dCBqdXN0IHVzZSBUaHJlYWRTYWZlUmVmQ291bnRlZD8KKyAgICAvLyBUaHJlYWRTYWZlUmVmQ291
bnRlZCBjYW4gaGF2ZSBhIHNpZ25pZmljYW50IHBlcmYgaW1wYWN0IHdoZW4gdXNlZCBpbiBsb3cg
bGV2ZWwgY2xhc3NlcwogICAgIC8vIChsaWtlIFVTdHJpbmcpIHRoYXQgZ2V0IHJlZi9kZXJlZidl
ZCBhIGxvdC4gVGhpcyBjbGFzcyBoYXMgdGhlIGJlbmVmaXQgb2YgZG9pbmcgZmFzdCByZWYKICAg
ICAvLyBjb3VudHMgbGlrZSBSZWZQdHIgd2hlbmV2ZXIgcG9zc2libGUsIGJ1dCBpdCBoYXMgdGhl
IGRvd25zaWRlIHRoYXQgeW91IG5lZWQgdG8gY29weSBpdAogICAgIC8vIHRvIHVzZSBpdCBvbiBh
bm90aGVyIHRocmVhZC4KQEAgLTcyLDcgKzcyLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAg
IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIENyb3NzVGhyZWFkUmVmQ291bnRlZChUKiBkYXRh
LCBUaHJlYWRTYWZlU2hhcmVkQmFzZSogdGhyZWFkZWRDb3VudGVyKQorICAgICAgICBDcm9zc1Ro
cmVhZFJlZkNvdW50ZWQoVCogZGF0YSwgVGhyZWFkU2FmZVJlZkNvdW50ZWRCYXNlKiB0aHJlYWRl
ZENvdW50ZXIpCiAgICAgICAgICAgICA6IG1fdGhyZWFkU2FmZVJlZkNvdW50ZXIodGhyZWFkZWRD
b3VudGVyKQogICAgICAgICAgICAgLCBtX2RhdGEoZGF0YSkKICNpZm5kZWYgTkRFQlVHCkBAIC05
Nyw3ICs5Nyw3IEBAIG5hbWVzcGFjZSBXVEYgewogI2VuZGlmCiAKICAgICAgICAgUmVmQ291bnRl
ZEJhc2UgbV9yZWZDb3VudGVyOwotICAgICAgICBUaHJlYWRTYWZlU2hhcmVkQmFzZSogbV90aHJl
YWRTYWZlUmVmQ291bnRlcjsKKyAgICAgICAgVGhyZWFkU2FmZVJlZkNvdW50ZWRCYXNlKiBtX3Ro
cmVhZFNhZmVSZWZDb3VudGVyOwogICAgICAgICBUKiBtX2RhdGE7CiAjaWZuZGVmIE5ERUJVRwog
ICAgICAgICBUaHJlYWRJZGVudGlmaWVyIG1fdGhyZWFkSWQ7CkBAIC0xNTQsNyArMTU0LDcgQEAg
bmFtZXNwYWNlIFdURiB7CiAgICAgICAgIGlmIChtX3RocmVhZFNhZmVSZWZDb3VudGVyKQogICAg
ICAgICAgICAgbV90aHJlYWRTYWZlUmVmQ291bnRlci0+cmVmKCk7CiAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIG1fdGhyZWFkU2FmZVJlZkNvdW50ZXIgPSBuZXcgVGhyZWFkU2FmZVNoYXJlZEJh
c2UoMik7CisgICAgICAgICAgICBtX3RocmVhZFNhZmVSZWZDb3VudGVyID0gbmV3IFRocmVhZFNh
ZmVSZWZDb3VudGVkQmFzZSgyKTsKIAogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENyb3Nz
VGhyZWFkUmVmQ291bnRlZDxUPihtX2RhdGEsIG1fdGhyZWFkU2FmZVJlZkNvdW50ZXIpKTsKICAg
ICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVk
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRTYWZlUmVm
Q291bnRlZC5oCShyZXZpc2lvbiA4MTU1MykJKGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9UaHJlYWRTYWZlU2hhcmVkLmg6ODE1NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L1RocmVhZFNhZmVSZWZDb3VudGVkLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNDggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3IEp1c3RpbiBIYXlnb29kIChqaGF5
Z29vZEByZWFrdGl4LmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhl
IG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YK
KyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqCisgKgorICogTm90ZTogVGhlIGltcGxlbWVudGF0aW9ucyBvZiBJbnRl
cmxvY2tlZEluY3JlbWVudCBhbmQgSW50ZXJsb2NrZWREZWNyZW1lbnQgYXJlIGJhc2VkCisgKiBv
biBhdG9taWNfaW5jcmVtZW50IGFuZCBhdG9taWNfZXhjaGFuZ2VfYW5kX2FkZCBmcm9tIHRoZSBC
b29zdCBDKysgTGlicmFyeS4gVGhlIGxpY2Vuc2UKKyAqIGlzIHZpcnR1YWxseSBpZGVudGljYWwg
dG8gdGhlIEFwcGxlIGxpY2Vuc2UgYWJvdmUgYnV0IGlzIGluY2x1ZGVkIGhlcmUgZm9yIGNvbXBs
ZXRlbmVzcy4KKyAqCisgKiBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlIC0gVmVyc2lvbiAxLjAgLSBB
dWd1c3QgMTd0aCwgMjAwMworICogCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBm
cmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvciBvcmdhbml6YXRpb24KKyAqIG9idGFpbmlu
ZyBhIGNvcHkgb2YgdGhlIHNvZnR3YXJlIGFuZCBhY2NvbXBhbnlpbmcgZG9jdW1lbnRhdGlvbiBj
b3ZlcmVkIGJ5CisgKiB0aGlzIGxpY2Vuc2UgKHRoZSAiU29mdHdhcmUiKSB0byB1c2UsIHJlcHJv
ZHVjZSwgZGlzcGxheSwgZGlzdHJpYnV0ZSwKKyAqIGV4ZWN1dGUsIGFuZCB0cmFuc21pdCB0aGUg
U29mdHdhcmUsIGFuZCB0byBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlCisgKiBTb2Z0
d2FyZSwgYW5kIHRvIHBlcm1pdCB0aGlyZC1wYXJ0aWVzIHRvIHdob20gdGhlIFNvZnR3YXJlIGlz
IGZ1cm5pc2hlZCB0bworICogZG8gc28sIGFsbCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmc6Cisg
KiAKKyAqIFRoZSBjb3B5cmlnaHQgbm90aWNlcyBpbiB0aGUgU29mdHdhcmUgYW5kIHRoaXMgZW50
aXJlIHN0YXRlbWVudCwgaW5jbHVkaW5nCisgKiB0aGUgYWJvdmUgbGljZW5zZSBncmFudCwgdGhp
cyByZXN0cmljdGlvbiBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLAorICogbXVzdCBiZSBp
bmNsdWRlZCBpbiBhbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgaW4gd2hvbGUgb3IgaW4gcGFy
dCwgYW5kCisgKiBhbGwgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU29mdHdhcmUsIHVubGVzcyBz
dWNoIGNvcGllcyBvciBkZXJpdmF0aXZlCisgKiB3b3JrcyBhcmUgc29sZWx5IGluIHRoZSBmb3Jt
IG9mIG1hY2hpbmUtZXhlY3V0YWJsZSBvYmplY3QgY29kZSBnZW5lcmF0ZWQgYnkKKyAqIGEgc291
cmNlIGxhbmd1YWdlIHByb2Nlc3Nvci4KKyAqIAorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVE
ICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElN
UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIFRJVExF
IEFORCBOT04tSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIENPUFlSSUdI
VCBIT0xERVJTIE9SIEFOWU9ORSBESVNUUklCVVRJTkcgVEhFIFNPRlRXQVJFIEJFIExJQUJMRQor
ICogRk9SIEFOWSBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05O
RUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdT
IElOIFRIRSBTT0ZUV0FSRS4KKyAqLworCisjaWZuZGVmIFRocmVhZFNhZmVTaGFyZWRfaAorI2Rl
ZmluZSBUaHJlYWRTYWZlU2hhcmVkX2gKKworI2luY2x1ZGUgIlBsYXRmb3JtLmgiCisKKyNpbmNs
dWRlIDx3dGYvQXRvbWljcy5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+
CisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBUaHJlYWRTYWZlU2hhcmVkQmFzZSB7CisgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoVGhyZWFkU2FmZVNoYXJlZEJhc2UpOyBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBUaHJlYWRTYWZlU2hhcmVkQmFzZShpbnQgaW5pdGlh
bFJlZkNvdW50ID0gMSkKKyAgICAgICAgOiBtX3JlZkNvdW50KGluaXRpYWxSZWZDb3VudCkKKyAg
ICB7CisgICAgfQorCisgICAgdm9pZCByZWYoKQorICAgIHsKKyNpZiBVU0UoTE9DS0ZSRUVfVEhS
RUFEU0FGRVNIQVJFRCkKKyAgICAgICAgYXRvbWljSW5jcmVtZW50KCZtX3JlZkNvdW50KTsKKyNl
bHNlCisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICAgICAgKyttX3Jl
ZkNvdW50OworI2VuZGlmCisgICAgfQorCisgICAgYm9vbCBoYXNPbmVSZWYoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHJlZkNvdW50KCkgPT0gMTsKKyAgICB9CisKKyAgICBpbnQgcmVmQ291bnQo
KSBjb25zdAorICAgIHsKKyNpZiAhVVNFKExPQ0tGUkVFX1RIUkVBRFNBRkVTSEFSRUQpCisgICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyNlbmRpZgorICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8aW50IGNvbnN0IHZvbGF0aWxlICY+KG1fcmVmQ291bnQpOworICAgIH0KKwor
cHJvdGVjdGVkOgorICAgIC8vIFJldHVybnMgd2hldGhlciB0aGUgcG9pbnRlciBzaG91bGQgYmUg
ZnJlZWQgb3Igbm90LgorICAgIGJvb2wgZGVyZWZCYXNlKCkKKyAgICB7CisjaWYgVVNFKExPQ0tG
UkVFX1RIUkVBRFNBRkVTSEFSRUQpCisgICAgICAgIGlmIChhdG9taWNEZWNyZW1lbnQoJm1fcmVm
Q291bnQpIDw9IDApCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbHNlCisgICAgICAgIGlu
dCByZWZDb3VudDsKKyAgICAgICAgeworICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
bXV0ZXgpOworICAgICAgICAgICAgLS1tX3JlZkNvdW50OworICAgICAgICAgICAgcmVmQ291bnQg
PSBtX3JlZkNvdW50OworICAgICAgICB9CisgICAgICAgIGlmIChyZWZDb3VudCA8PSAwKQorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KKworcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPgorICAgIGZyaWVuZCBjbGFzcyBD
cm9zc1RocmVhZFJlZkNvdW50ZWQ7CisKKyAgICBpbnQgbV9yZWZDb3VudDsKKyNpZiAhVVNFKExP
Q0tGUkVFX1RIUkVBRFNBRkVTSEFSRUQpCisgICAgbXV0YWJsZSBNdXRleCBtX211dGV4OworI2Vu
ZGlmCit9OworCit0ZW1wbGF0ZTxjbGFzcyBUPiBjbGFzcyBUaHJlYWRTYWZlU2hhcmVkIDogcHVi
bGljIFRocmVhZFNhZmVTaGFyZWRCYXNlIHsKK3B1YmxpYzoKKyAgICB2b2lkIGRlcmVmKCkKKyAg
ICB7CisgICAgICAgIGlmIChkZXJlZkJhc2UoKSkKKyAgICAgICAgICAgIGRlbGV0ZSBzdGF0aWNf
Y2FzdDxUKj4odGhpcyk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgVGhyZWFkU2FmZVNoYXJl
ZCgpCisgICAgeworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6
OlRocmVhZFNhZmVTaGFyZWQ7CisKKyNlbmRpZiAvLyBUaHJlYWRTYWZlU2hhcmVkX2gKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmgJ
KHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRTYWZl
UmVmQ291bnRlZC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw4ICs1Niw4IEBACiAgKiBERUFMSU5H
UyBJTiBUSEUgU09GVFdBUkUuCiAgKi8KIAotI2lmbmRlZiBUaHJlYWRTYWZlU2hhcmVkX2gKLSNk
ZWZpbmUgVGhyZWFkU2FmZVNoYXJlZF9oCisjaWZuZGVmIFRocmVhZFNhZmVSZWZDb3VudGVkX2gK
KyNkZWZpbmUgVGhyZWFkU2FmZVJlZkNvdW50ZWRfaAogCiAjaW5jbHVkZSAiUGxhdGZvcm0uaCIK
IApAQCAtNjYsMTcgKzY2LDE4IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1jbGFzcyBUaHJlYWRT
YWZlU2hhcmVkQmFzZSB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGhyZWFkU2FmZVNoYXJl
ZEJhc2UpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK2NsYXNzIFRocmVhZFNhZmVSZWZDb3Vu
dGVkQmFzZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGhyZWFkU2FmZVJlZkNvdW50ZWRC
YXNlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBUaHJlYWRT
YWZlU2hhcmVkQmFzZShpbnQgaW5pdGlhbFJlZkNvdW50ID0gMSkKKyAgICBUaHJlYWRTYWZlUmVm
Q291bnRlZEJhc2UoaW50IGluaXRpYWxSZWZDb3VudCA9IDEpCiAgICAgICAgIDogbV9yZWZDb3Vu
dChpbml0aWFsUmVmQ291bnQpCiAgICAgewogICAgIH0KIAogICAgIHZvaWQgcmVmKCkKICAgICB7
Ci0jaWYgVVNFKExPQ0tGUkVFX1RIUkVBRFNBRkVTSEFSRUQpCisjaWYgVVNFKExPQ0tGUkVFX1RI
UkVBRFNBRkVSRUZDT1VOVEVEKQogICAgICAgICBhdG9taWNJbmNyZW1lbnQoJm1fcmVmQ291bnQp
OwogI2Vsc2UKICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOwpAQCAtOTEsNyAr
OTIsNyBAQCBwdWJsaWM6CiAKICAgICBpbnQgcmVmQ291bnQoKSBjb25zdAogICAgIHsKLSNpZiAh
VVNFKExPQ0tGUkVFX1RIUkVBRFNBRkVTSEFSRUQpCisjaWYgIVVTRShMT0NLRlJFRV9USFJFQURT
QUZFUkVGQ09VTlRFRCkKICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOwogI2Vu
ZGlmCiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQgY29uc3Qgdm9sYXRpbGUgJj4obV9y
ZWZDb3VudCk7CkBAIC0xMDEsNyArMTAyLDcgQEAgcHJvdGVjdGVkOgogICAgIC8vIFJldHVybnMg
d2hldGhlciB0aGUgcG9pbnRlciBzaG91bGQgYmUgZnJlZWQgb3Igbm90LgogICAgIGJvb2wgZGVy
ZWZCYXNlKCkKICAgICB7Ci0jaWYgVVNFKExPQ0tGUkVFX1RIUkVBRFNBRkVTSEFSRUQpCisjaWYg
VVNFKExPQ0tGUkVFX1RIUkVBRFNBRkVSRUZDT1VOVEVEKQogICAgICAgICBpZiAoYXRvbWljRGVj
cmVtZW50KCZtX3JlZkNvdW50KSA8PSAwKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAjZWxz
ZQpAQCAtMTIyLDEyICsxMjMsMTIgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgQ3Jvc3NU
aHJlYWRSZWZDb3VudGVkOwogCiAgICAgaW50IG1fcmVmQ291bnQ7Ci0jaWYgIVVTRShMT0NLRlJF
RV9USFJFQURTQUZFU0hBUkVEKQorI2lmICFVU0UoTE9DS0ZSRUVfVEhSRUFEU0FGRVJFRkNPVU5U
RUQpCiAgICAgbXV0YWJsZSBNdXRleCBtX211dGV4OwogI2VuZGlmCiB9OwogCi10ZW1wbGF0ZTxj
bGFzcyBUPiBjbGFzcyBUaHJlYWRTYWZlU2hhcmVkIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWRC
YXNlIHsKK3RlbXBsYXRlPGNsYXNzIFQ+IGNsYXNzIFRocmVhZFNhZmVSZWZDb3VudGVkIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkQmFzZSB7CiBwdWJsaWM6CiAgICAgdm9pZCBkZXJlZigp
CiAgICAgewpAQCAtMTM2LDEzICsxMzcsMTMgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVk
OgotICAgIFRocmVhZFNhZmVTaGFyZWQoKQorICAgIFRocmVhZFNhZmVSZWZDb3VudGVkKCkKICAg
ICB7CiAgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKLXVzaW5nIFdURjo6VGhyZWFk
U2FmZVNoYXJlZDsKK3VzaW5nIFdURjo6VGhyZWFkU2FmZVJlZkNvdW50ZWQ7CiAKLSNlbmRpZiAv
LyBUaHJlYWRTYWZlU2hhcmVkX2gKKyNlbmRpZiAvLyBUaHJlYWRTYWZlUmVmQ291bnRlZF9oCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFNhZmVTaGFyZWQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFNhZmVTaGFyZWQuaAkocmV2
aXNpb24gODE1NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZFNhZmVTaGFy
ZWQuaAkod29ya2luZyBjb3B5KQpAQCAtMSwxNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNywgMjAwOCwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDcgSnVzdGluIEhheWdvb2QgKGpoYXlnb29kQHJlYWt0aXguY29tKQot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4gCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4gCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21w
dXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQK
LSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uIAotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
Ci0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAq
Ci0gKiBOb3RlOiBUaGUgaW1wbGVtZW50YXRpb25zIG9mIEludGVybG9ja2VkSW5jcmVtZW50IGFu
ZCBJbnRlcmxvY2tlZERlY3JlbWVudCBhcmUgYmFzZWQKLSAqIG9uIGF0b21pY19pbmNyZW1lbnQg
YW5kIGF0b21pY19leGNoYW5nZV9hbmRfYWRkIGZyb20gdGhlIEJvb3N0IEMrKyBMaWJyYXJ5LiBU
aGUgbGljZW5zZQotICogaXMgdmlydHVhbGx5IGlkZW50aWNhbCB0byB0aGUgQXBwbGUgbGljZW5z
ZSBhYm92ZSBidXQgaXMgaW5jbHVkZWQgaGVyZSBmb3IgY29tcGxldGVuZXNzLgotICoKLSAqIEJv
b3N0IFNvZnR3YXJlIExpY2Vuc2UgLSBWZXJzaW9uIDEuMCAtIEF1Z3VzdCAxN3RoLCAyMDAzCi0g
KiAKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBh
bnkgcGVyc29uIG9yIG9yZ2FuaXphdGlvbgotICogb2J0YWluaW5nIGEgY29weSBvZiB0aGUgc29m
dHdhcmUgYW5kIGFjY29tcGFueWluZyBkb2N1bWVudGF0aW9uIGNvdmVyZWQgYnkKLSAqIHRoaXMg
bGljZW5zZSAodGhlICJTb2Z0d2FyZSIpIHRvIHVzZSwgcmVwcm9kdWNlLCBkaXNwbGF5LCBkaXN0
cmlidXRlLAotICogZXhlY3V0ZSwgYW5kIHRyYW5zbWl0IHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBy
ZXBhcmUgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUKLSAqIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0
IHRoaXJkLXBhcnRpZXMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvCi0gKiBk
byBzbywgYWxsIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZzoKLSAqIAotICogVGhlIGNvcHlyaWdo
dCBub3RpY2VzIGluIHRoZSBTb2Z0d2FyZSBhbmQgdGhpcyBlbnRpcmUgc3RhdGVtZW50LCBpbmNs
dWRpbmcKLSAqIHRoZSBhYm92ZSBsaWNlbnNlIGdyYW50LCB0aGlzIHJlc3RyaWN0aW9uIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIsCi0gKiBtdXN0IGJlIGluY2x1ZGVkIGluIGFsbCBjb3Bp
ZXMgb2YgdGhlIFNvZnR3YXJlLCBpbiB3aG9sZSBvciBpbiBwYXJ0LCBhbmQKLSAqIGFsbCBkZXJp
dmF0aXZlIHdvcmtzIG9mIHRoZSBTb2Z0d2FyZSwgdW5sZXNzIHN1Y2ggY29waWVzIG9yIGRlcml2
YXRpdmUKLSAqIHdvcmtzIGFyZSBzb2xlbHkgaW4gdGhlIGZvcm0gb2YgbWFjaGluZS1leGVjdXRh
YmxlIG9iamVjdCBjb2RlIGdlbmVyYXRlZCBieQotICogYSBzb3VyY2UgbGFuZ3VhZ2UgcHJvY2Vz
c29yLgotICogCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX
QVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotICogSU1QTElFRCwgSU5DTFVESU5HIEJV
VCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0gKiBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwgVElUTEUgQU5EIE5PTi1JTkZSSU5HRU1F
TlQuIElOIE5PIEVWRU5UCi0gKiBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IgQU5ZT05F
IERJU1RSSUJVVElORyBUSEUgU09GVFdBUkUgQkUgTElBQkxFCi0gKiBGT1IgQU5ZIERBTUFHRVMg
T1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lT
RSwKLSAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09G
VFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgotICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgot
ICovCi0KLSNpZm5kZWYgVGhyZWFkU2FmZVNoYXJlZF9oCi0jZGVmaW5lIFRocmVhZFNhZmVTaGFy
ZWRfaAotCi0jaW5jbHVkZSAiUGxhdGZvcm0uaCIKLQotI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+
Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KLQotbmFtZXNwYWNlIFdURiB7
Ci0KLWNsYXNzIFRocmVhZFNhZmVTaGFyZWRCYXNlIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShUaHJlYWRTYWZlU2hhcmVkQmFzZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGlj
OgotICAgIFRocmVhZFNhZmVTaGFyZWRCYXNlKGludCBpbml0aWFsUmVmQ291bnQgPSAxKQotICAg
ICAgICA6IG1fcmVmQ291bnQoaW5pdGlhbFJlZkNvdW50KQotICAgIHsKLSAgICB9Ci0KLSAgICB2
b2lkIHJlZigpCi0gICAgewotI2lmIFVTRShMT0NLRlJFRV9USFJFQURTQUZFU0hBUkVEKQotICAg
ICAgICBhdG9taWNJbmNyZW1lbnQoJm1fcmVmQ291bnQpOwotI2Vsc2UKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbXV0ZXgpOwotICAgICAgICArK21fcmVmQ291bnQ7Ci0jZW5kaWYKLSAg
ICB9Ci0KLSAgICBib29sIGhhc09uZVJlZigpCi0gICAgewotICAgICAgICByZXR1cm4gcmVmQ291
bnQoKSA9PSAxOwotICAgIH0KLQotICAgIGludCByZWZDb3VudCgpIGNvbnN0Ci0gICAgewotI2lm
ICFVU0UoTE9DS0ZSRUVfVEhSRUFEU0FGRVNIQVJFRCkKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fbXV0ZXgpOwotI2VuZGlmCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQgY29u
c3Qgdm9sYXRpbGUgJj4obV9yZWZDb3VudCk7Ci0gICAgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgLy8g
UmV0dXJucyB3aGV0aGVyIHRoZSBwb2ludGVyIHNob3VsZCBiZSBmcmVlZCBvciBub3QuCi0gICAg
Ym9vbCBkZXJlZkJhc2UoKQotICAgIHsKLSNpZiBVU0UoTE9DS0ZSRUVfVEhSRUFEU0FGRVNIQVJF
RCkKLSAgICAgICAgaWYgKGF0b21pY0RlY3JlbWVudCgmbV9yZWZDb3VudCkgPD0gMCkKLSAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotI2Vsc2UKLSAgICAgICAgaW50IHJlZkNvdW50OwotICAgICAg
ICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7Ci0gICAgICAgICAg
ICAtLW1fcmVmQ291bnQ7Ci0gICAgICAgICAgICByZWZDb3VudCA9IG1fcmVmQ291bnQ7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKHJlZkNvdW50IDw9IDApCi0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSNlbmRpZgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi1wcml2YXRlOgotICAg
IHRlbXBsYXRlPGNsYXNzIFQ+Ci0gICAgZnJpZW5kIGNsYXNzIENyb3NzVGhyZWFkUmVmQ291bnRl
ZDsKLQotICAgIGludCBtX3JlZkNvdW50OwotI2lmICFVU0UoTE9DS0ZSRUVfVEhSRUFEU0FGRVNI
QVJFRCkKLSAgICBtdXRhYmxlIE11dGV4IG1fbXV0ZXg7Ci0jZW5kaWYKLX07Ci0KLXRlbXBsYXRl
PGNsYXNzIFQ+IGNsYXNzIFRocmVhZFNhZmVTaGFyZWQgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJl
ZEJhc2UgewotcHVibGljOgotICAgIHZvaWQgZGVyZWYoKQotICAgIHsKLSAgICAgICAgaWYgKGRl
cmVmQmFzZSgpKQotICAgICAgICAgICAgZGVsZXRlIHN0YXRpY19jYXN0PFQqPih0aGlzKTsKLSAg
ICB9Ci0KLXByb3RlY3RlZDoKLSAgICBUaHJlYWRTYWZlU2hhcmVkKCkKLSAgICB7Ci0gICAgfQot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6VGhyZWFkU2FmZVNoYXJlZDsK
LQotI2VuZGlmIC8vIFRocmVhZFNhZmVTaGFyZWRfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9UaHJlYWRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL1RocmVhZGluZy5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvVGhyZWFkaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDcgKzY3LDcgQEAKICNpbmNs
dWRlIDx3dGYvTG9ja2VyLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVNoYXJlZC5oPgor
I2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmdQcmltaXRpdmVzLmg+CiAKIC8vIEZvciBwb3J0YWJpbGl0eSwgd2UgZG8gbm90IHVzZSB0
aHJlYWQtc2FmZSBzdGF0aWNzIG5hdGl2ZWx5IHN1cHBvcnRlZCBieSBzb21lIGNvbXBpbGVycyAo
ZS5nLiBnY2MpLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCShyZXZpc2lvbiA4MTU2MikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxNiBAQAorMjAxMS0wMy0xOSAgQmlsbCBCdWRnZSAgPGJidWRnZUBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1l
IFRocmVhZFNhZmVTaGFyZWQgdG8gVGhyZWFkU2FmZVJlZkNvdW50ZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NzE0CisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLiBFeHBvc2VzIG5vIG5ldyBmdW5jdGlvbmFsaXR5LqcKKworICAgICAgICAqIEZvcndh
cmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oOiBDb3BpZWQgZnJvbSBGb3J3
YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVNoYXJlZC5oLgorICAgICAgICAqIEZvcndhcmRp
bmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlU2hhcmVkLmg6IFJlbW92ZWQuCisgICAgICAgICogZ3lw
L0phdmFTY3JpcHRHbHVlLmd5cGk6CisKIDIwMTEtMDMtMTcgIEplZmYgTWlsbGVyICA8amVmZm1A
YXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBhIGNvbnNpc3RlbnQgc2V0IG9mIGZpbGUgcGF0dGVy
bnMgaW4gdGhlIHN2bjppZ25vcmUgcHJvcGVydHkgZm9yIGFsbCAueGNvZGVwcm9qIGRpcmVjdG9y
aWVzLCBzcGVjaWZpY2FsbHk6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdEdsdWUvRm9yd2FyZGlu
Z0hlYWRlcnMvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRHbHVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlUmVmQ291bnRl
ZC5oCShyZXZpc2lvbiA4MTU1MykJKGZyb20gU291cmNlL0phdmFTY3JpcHRHbHVlL0ZvcndhcmRp
bmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlU2hhcmVkLmg6ODE1NTMpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdEdsdWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmgJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1RocmVh
ZFNhZmVTaGFyZWQuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Gb3J3YXJkaW5nSGVh
ZGVycy93dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdEdsdWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmgJ
KHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL0phdmFTY3JpcHRHbHVlL0ZvcndhcmRpbmdIZWFk
ZXJzL3d0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xICsxIEBA
Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVGhyZWFkU2FmZVNoYXJlZC5oPgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdEdsdWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVTaGFyZWQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdEdsdWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1Ro
cmVhZFNhZmVTaGFyZWQuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdEds
dWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVTaGFyZWQuaAkod29ya2luZyBjb3B5
KQpAQCAtMSArMCwwIEBACi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVGhyZWFkU2FmZVNoYXJl
ZC5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRHbHVlL2d5cC9KYXZhU2NyaXB0R2x1ZS5neXBp
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0R2x1ZS9neXAvSmF2YVNjcmlwdEdsdWUu
Z3lwaQkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdEdsdWUvZ3lwL0phdmFT
Y3JpcHRHbHVlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTY3LDcgKzY3LDcgQEAKICAgICAgICAg
ICAgICcuLi9Gb3J3YXJkaW5nSGVhZGVycy93dGYvdGV4dC9XVEZTdHJpbmcuaCcsCiAgICAgICAg
ICAgICAnLi4vRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZGluZy5oJywKICAgICAgICAgICAg
ICcuLi9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oJywKLSAgICAg
ICAgICAgICcuLi9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVNoYXJlZC5oJywKKyAg
ICAgICAgICAgICcuLi9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aCcsCiAgICAgICAgICAgICAnLi4vRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNwZWNpZmlj
LmgnLAogICAgICAgICAgICAgJy4uL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi91bmljb2RlL2ljdS9V
bmljb2RlSWN1LmgnLAogICAgICAgICAgICAgJy4uL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi91bmlj
b2RlL1VuaWNvZGUuaCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA4MTU2MikKKysrIFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBACisyMDEx
LTAzLTE5ICBCaWxsIEJ1ZGdlICA8YmJ1ZGdlQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgVGhyZWFkU2FmZVNoYXJl
ZCB0byBUaHJlYWRTYWZlUmVmQ291bnRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTY3MTQKKworICAgICAgICBObyBuZXcgdGVzdHMuIEV4cG9zZXMg
bm8gbmV3IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy93dGYv
VGhyZWFkU2FmZVJlZkNvdW50ZWQuaDogQ29waWVkIGZyb20gRm9yd2FyZGluZ0hlYWRlcnMvd3Rm
L1RocmVhZFNhZmVTaGFyZWQuaC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy93dGYvVGhy
ZWFkU2FmZVNoYXJlZC5oOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgICog
ZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaDoKKyAgICAgICAgKiBmaWxl
YXBpL0ZpbGVUaHJlYWQuaDoKKyAgICAgICAgKiBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlckNsaWVu
dFdyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFw
cGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlckNsaWVudFdy
YXBwZXI6OmNsZWFyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJD
bGllbnRXcmFwcGVyOjpkb25lKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJD
bGllbnRXcmFwcGVyOjpkaWRTZW5kRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxl
TG9hZGVyQ2xpZW50V3JhcHBlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNv
cmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlcjo6ZGlkUmVjZWl2ZUNh
Y2hlZE1ldGFkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnRX
cmFwcGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVM
b2FkZXJDbGllbnRXcmFwcGVyOjpkaWRGYWlsKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFi
bGVMb2FkZXJDbGllbnRXcmFwcGVyOjpkaWRGYWlsUmVkaXJlY3RDaGVjayk6CisgICAgICAgIChX
ZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2FuY2VsbGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJD
bGllbnRXcmFwcGVyOjpUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlcik6CisgICAgICAgICog
cGFnZS9TZWN1cml0eU9yaWdpbi5oOgorICAgICAgICAqIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29w
aWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YS5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlLmg6CisgICAgICAgICogc3Rv
cmFnZS9BYnN0cmFjdERhdGFiYXNlLmg6CisgICAgICAgICogc3RvcmFnZS9EYXRhYmFzZUF1dGhv
cml6ZXIuaDoKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlQ2FsbGJhY2suaDoKKyAgICAgICAg
KiBzdG9yYWdlL0RhdGFiYXNlVGhyZWFkLmg6CisgICAgICAgICogc3RvcmFnZS9JREJDYWxsYmFj
a3MuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaDoKKyAg
ICAgICAgKiBzdG9yYWdlL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oOgorICAgICAgICAq
IHN0b3JhZ2UvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBzdG9yYWdl
L0lEQkluZGV4QmFja2VuZEludGVyZmFjZS5oOgorICAgICAgICAqIHN0b3JhZ2UvSURCS2V5Lmg6
CisgICAgICAgICogc3RvcmFnZS9JREJLZXlSYW5nZS5oOgorICAgICAgICAqIHN0b3JhZ2UvSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmg6CisgICAgICAgICogc3RvcmFnZS9JREJSZXF1
ZXN0Lmg6CisgICAgICAgICogc3RvcmFnZS9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uu
aDoKKyAgICAgICAgKiBzdG9yYWdlL1NRTEVycm9yLmg6CisgICAgICAgICogc3RvcmFnZS9TUUxS
ZXN1bHRTZXQuaDoKKyAgICAgICAgKiBzdG9yYWdlL1NRTFN0YXRlbWVudC5oOgorICAgICAgICAq
IHN0b3JhZ2UvU1FMU3RhdGVtZW50Q2FsbGJhY2suaDoKKyAgICAgICAgKiBzdG9yYWdlL1NRTFN0
YXRlbWVudEVycm9yQ2FsbGJhY2suaDoKKyAgICAgICAgKiBzdG9yYWdlL1NRTFRyYW5zYWN0aW9u
Lmg6CisgICAgICAgICogc3RvcmFnZS9TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmg6CisgICAgICAg
ICogc3RvcmFnZS9TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaDoKKyAgICAgICAgKiB3ZWJz
b2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oOgorICAgICAg
ICAqIHdvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwOgorCiAyMDExLTAz
LTE5ICBBbmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBCZW5qYW1pbiBQb3VsYWluLgpJbmRleDogU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hl
YWRlcnMvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmgJKHJldmlz
aW9uIDgxNTUzKQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhy
ZWFkU2FmZVNoYXJlZC5oOjgxNTUzKQorKysgU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRl
cnMvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0
IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX1RocmVhZFNhZmVTaGFyZWRfaAorI2RlZmluZSBXZWJD
b3JlX0ZXRF9UaHJlYWRTYWZlU2hhcmVkX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UaHJl
YWRTYWZlU2hhcmVkLmg+CisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdI
ZWFkZXJzL3d0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oCShyZXZp
c2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJl
YWRTYWZlUmVmQ291bnRlZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotI2lmbmRl
ZiBXZWJDb3JlX0ZXRF9UaHJlYWRTYWZlU2hhcmVkX2gKLSNkZWZpbmUgV2ViQ29yZV9GV0RfVGhy
ZWFkU2FmZVNoYXJlZF9oCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVGhyZWFkU2FmZVNoYXJl
ZC5oPgorI2lmbmRlZiBXZWJDb3JlX0ZXRF9UaHJlYWRTYWZlUmVmQ291bnRlZF9oCisjZGVmaW5l
IFdlYkNvcmVfRldEX1RocmVhZFNhZmVSZWZDb3VudGVkX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVNoYXJlZC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlU2hhcmVkLmgJ
KHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3Rm
L1RocmVhZFNhZmVTaGFyZWQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICswLDAgQEAKLSNpZm5k
ZWYgV2ViQ29yZV9GV0RfVGhyZWFkU2FmZVNoYXJlZF9oCi0jZGVmaW5lIFdlYkNvcmVfRldEX1Ro
cmVhZFNhZmVTaGFyZWRfaAotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1RocmVhZFNhZmVTaGFy
ZWQuaD4KLSNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDcgKzM3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTZXJpYWxpemVk
U2NyaXB0VmFsdWUgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IHsKK2NsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9p
ZCBkZXNlcmlhbGl6ZUFuZFNldFByb3BlcnR5KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sIGNvbnN0
IGNoYXIqIHByb3BlcnR5TmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZSwgU2VyaWFsaXplZFNjcmlwdFZhbHVlKik7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ0LDcgKzM0NCw3IEBA
IHN0YXRpYyBib29sIGRpc2FibGVSYW5nZU11dGF0aW9uKFBhZ2UqIHAKIAogc3RhdGljIEhhc2hT
ZXQ8RG9jdW1lbnQqPiogZG9jdW1lbnRzVGhhdE5lZWRTdHlsZVJlY2FsYyA9IDA7CiAKLWNsYXNz
IERvY3VtZW50V2Vha1JlZmVyZW5jZSA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPERvY3VtZW50
V2Vha1JlZmVyZW5jZT4geworY2xhc3MgRG9jdW1lbnRXZWFrUmVmZXJlbmNlIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPERvY3VtZW50V2Vha1JlZmVyZW5jZT4gewogcHVibGljOgogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50V2Vha1JlZmVyZW5jZT4gY3JlYXRlKERvY3VtZW50
KiBkb2N1bWVudCkKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0
Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgJKHJldmlzaW9uIDgxNTUzKQor
KysgU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwu
aAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgLy8gUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwgaXMgYSBwbGF0Zm9ybS1kZXBlbmRlbnQg
aW50ZXJmYWNlIHRvIHRoZSByZW1vdGUgc2lkZSBvZiBhIG1lc3NhZ2UgY2hhbm5lbC4KICAgICAv
LyBUaGlzIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gc3VwcG9ydHMgbXVsdGlwbGUgdGhyZWFkcyBy
dW5uaW5nIHdpdGhpbiBhIHNpbmdsZSBwcm9jZXNzLiBJbXBsZW1lbnRhdGlvbnMgZm9yIG11bHRp
LXByb2Nlc3MgcGxhdGZvcm1zIHNob3VsZCBkZWZpbmUgdGhlc2UgcHVibGljIEFQSXMgaW4gdGhl
aXIgb3duIHBsYXRmb3JtLXNwZWNpZmljIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsIGZpbGUu
CiAgICAgLy8gVGhlIGdvYWwgb2YgdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyB0byBlbGltaW5hdGUg
Y29udGVudGlvbiBleGNlcHQgd2hlbiBjbG9uaW5nIG9yIGNsb3NpbmcgdGhlIHBvcnQsIHNvIGVh
Y2ggc2lkZSBvZiB0aGUgY2hhbm5lbCBoYXMgaXRzIG93biBzZXBhcmF0ZSBtdXRleC4KLSAgICBj
bGFzcyBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbCA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVk
PFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsPiB7CisgICAgY2xhc3MgUGxhdGZvcm1NZXNzYWdl
UG9ydENoYW5uZWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UGxhdGZvcm1NZXNzYWdl
UG9ydENoYW5uZWw+IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyB2b2lkIGNyZWF0ZUNo
YW5uZWwoUGFzc1JlZlB0cjxNZXNzYWdlUG9ydD4sIFBhc3NSZWZQdHI8TWVzc2FnZVBvcnQ+KTsK
IApAQCAtNTksNyArNTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE1lc3NhZ2VQ
b3J0KiBsb2NhbGx5RW50YW5nbGVkUG9ydChjb25zdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7
CiAKICAgICAgICAgLy8gV3JhcHBlciBmb3IgTWVzc2FnZVF1ZXVlIHRoYXQgYWxsb3dzIHVzIHRv
IGRvIHRocmVhZCBzYWZlIHNoYXJpbmcgYnkgdHdvIHByb3hpZXMuCi0gICAgICAgIGNsYXNzIE1l
c3NhZ2VQb3J0UXVldWUgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxNZXNzYWdlUG9ydFF1ZXVl
PiB7CisgICAgICAgIGNsYXNzIE1lc3NhZ2VQb3J0UXVldWUgOiBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8TWVzc2FnZVBvcnRRdWV1ZT4gewogICAgICAgICBwdWJsaWM6CiAgICAgICAgICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxNZXNzYWdlUG9ydFF1ZXVlPiBjcmVhdGUoKSB7IHJldHVybiBh
ZG9wdFJlZihuZXcgTWVzc2FnZVBvcnRRdWV1ZSgpKTsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL0ZpbGVUaHJlYWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0ZpbGVUaHJlYWQuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0ZpbGVUaHJlYWQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGVTdHJlYW07CiAKLWNsYXNzIEZpbGVUaHJlYWQgOiBw
dWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxGaWxlVGhyZWFkPiB7CitjbGFzcyBGaWxlVGhyZWFkIDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEZpbGVUaHJlYWQ+IHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxGaWxlVGhyZWFkPiBjcmVhdGUoKQogICAgIHsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBl
ci5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxl
TG9hZGVyQ2xpZW50V3JhcHBlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw4NSArMzgsODUgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgVGhyZWFkYWJsZUxvYWRlckNsaWVu
dFdyYXBwZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxUaHJlYWRhYmxlTG9hZGVyQ2xpZW50
V3JhcHBlcj4gewotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8VGhyZWFk
YWJsZUxvYWRlckNsaWVudFdyYXBwZXI+IGNyZWF0ZShUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KiBj
bGllbnQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGhyZWFk
YWJsZUxvYWRlckNsaWVudFdyYXBwZXIoY2xpZW50KSk7Ci0gICAgICAgIH0KLQotICAgICAgICB2
b2lkIGNsZWFyQ2xpZW50KCkKLSAgICAgICAgewotICAgICAgICAgICAgbV9kb25lID0gdHJ1ZTsK
LSAgICAgICAgICAgIG1fY2xpZW50ID0gMDsKLSAgICAgICAgfQotCi0gICAgICAgIGJvb2wgZG9u
ZSgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBtX2RvbmU7Ci0gICAgICAg
IH0KLQotICAgICAgICB2b2lkIGRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1Nl
bnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkU2Vu
ZERhdGEoYnl0ZXNTZW50LCB0b3RhbEJ5dGVzVG9CZVNlbnQpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgICAgICAg
ICBtX2NsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5n
dGgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgICAgICAg
ICBtX2NsaWVudC0+ZGlkUmVjZWl2ZURhdGEoZGF0YSwgZGF0YUxlbmd0aCk7Ci0gICAgICAgIH0K
LQotICAgICAgICB2b2lkIGRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShjb25zdCBjaGFyKiBkYXRh
LCBpbnQgZGF0YUxlbmd0aCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKG1fY2xpZW50KQot
ICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEoZGF0YSwg
ZGF0YUxlbmd0aCk7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmco
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBkb3VibGUgZmluaXNoVGltZSkKLSAgICAgICAgewot
ICAgICAgICAgICAgbV9kb25lID0gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChtX2NsaWVudCkKLSAg
ICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkRmluaXNoTG9hZGluZyhpZGVudGlmaWVyLCBmaW5p
c2hUaW1lKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJj
ZUVycm9yJiBlcnJvcikKLSAgICAgICAgewotICAgICAgICAgICAgbV9kb25lID0gdHJ1ZTsKLSAg
ICAgICAgICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkRmFp
bChlcnJvcik7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIGRpZEZhaWxSZWRpcmVjdENoZWNr
KCkKLSAgICAgICAgewotICAgICAgICAgICAgbV9kb25lID0gdHJ1ZTsKLSAgICAgICAgICAgIGlm
IChtX2NsaWVudCkKLSAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkRmFpbFJlZGlyZWN0Q2hl
Y2soKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2FuY2VsbGF0aW9uKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotICAgICAgICB7
Ci0gICAgICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICAgICAgbV9jbGllbnQtPmRp
ZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7Ci0gICAgICAgIH0KLQotICAgIHByb3RlY3RlZDoK
LSAgICAgICAgVGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXIoVGhyZWFkYWJsZUxvYWRlckNs
aWVudCogY2xpZW50KQotICAgICAgICAgICAgOiBtX2NsaWVudChjbGllbnQpCi0gICAgICAgICAg
ICAsIG1fZG9uZShmYWxzZSkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgVGhyZWFk
YWJsZUxvYWRlckNsaWVudCogbV9jbGllbnQ7Ci0gICAgICAgIGJvb2wgbV9kb25lOwotICAgIH07
CitjbGFzcyBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlciA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlcj4geworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyPiBjcmVhdGUo
VGhyZWFkYWJsZUxvYWRlckNsaWVudCogY2xpZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlcihjbGllbnQpKTsKKyAgICB9
CisKKyAgICB2b2lkIGNsZWFyQ2xpZW50KCkKKyAgICB7CisgICAgICAgIG1fZG9uZSA9IHRydWU7
CisgICAgICAgIG1fY2xpZW50ID0gMDsKKyAgICB9CisKKyAgICBib29sIGRvbmUoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZG9uZTsKKyAgICB9CisKKyAgICB2b2lkIGRpZFNlbmRE
YXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3Rh
bEJ5dGVzVG9CZVNlbnQpCisgICAgeworICAgICAgICBpZiAobV9jbGllbnQpCisgICAgICAgICAg
ICBtX2NsaWVudC0+ZGlkU2VuZERhdGEoYnl0ZXNTZW50LCB0b3RhbEJ5dGVzVG9CZVNlbnQpOwor
ICAgIH0KKworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQorICAgIHsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAg
bV9jbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7CisgICAgfQorCisgICAgdm9p
ZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkKKyAgICB7
CisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZl
RGF0YShkYXRhLCBkYXRhTGVuZ3RoKTsKKyAgICB9CisKKyAgICB2b2lkIGRpZFJlY2VpdmVDYWNo
ZWRNZXRhZGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkKKyAgICB7CisgICAg
ICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlQ2FjaGVk
TWV0YWRhdGEoZGF0YSwgZGF0YUxlbmd0aCk7CisgICAgfQorCisgICAgdm9pZCBkaWRGaW5pc2hM
b2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpCisgICAg
eworICAgICAgICBtX2RvbmUgPSB0cnVlOworICAgICAgICBpZiAobV9jbGllbnQpCisgICAgICAg
ICAgICBtX2NsaWVudC0+ZGlkRmluaXNoTG9hZGluZyhpZGVudGlmaWVyLCBmaW5pc2hUaW1lKTsK
KyAgICB9CisKKyAgICB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCisg
ICAgeworICAgICAgICBtX2RvbmUgPSB0cnVlOworICAgICAgICBpZiAobV9jbGllbnQpCisgICAg
ICAgICAgICBtX2NsaWVudC0+ZGlkRmFpbChlcnJvcik7CisgICAgfQorCisgICAgdm9pZCBkaWRG
YWlsUmVkaXJlY3RDaGVjaygpCisgICAgeworICAgICAgICBtX2RvbmUgPSB0cnVlOworICAgICAg
ICBpZiAobV9jbGllbnQpCisgICAgICAgICAgICBtX2NsaWVudC0+ZGlkRmFpbFJlZGlyZWN0Q2hl
Y2soKTsKKyAgICB9CisKKyAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNhbmNlbGxh
dGlvbihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKKyAgICB7CisgICAgICAgIGlm
IChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlUmVzcG9uc2UocmVz
cG9uc2UpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFRocmVhZGFibGVMb2FkZXJDbGllbnRX
cmFwcGVyKFRocmVhZGFibGVMb2FkZXJDbGllbnQqIGNsaWVudCkKKyAgICAgICAgOiBtX2NsaWVu
dChjbGllbnQpCisgICAgICAgICwgbV9kb25lKGZhbHNlKQorICAgIHsKKyAgICB9CisKKyAgICBU
aHJlYWRhYmxlTG9hZGVyQ2xpZW50KiBtX2NsaWVudDsKKyAgICBib29sIG1fZG9uZTsKK307CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlP
cmlnaW4uaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5
T3JpZ2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDE0ICszMSwxNCBAQAogCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVk
ZSA8d3RmL1RocmVhZFNhZmVTaGFyZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNv
dW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKIGNsYXNz
IEtVUkw7CiAKLWNsYXNzIFNlY3VyaXR5T3JpZ2luIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8
U2VjdXJpdHlPcmlnaW4+IHsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFNlY3VyaXR5T3JpZ2luPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZUZyb21EYXRhYmFzZUlkZW50aWZpZXIoY29uc3Qg
U3RyaW5nJik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZUZy
b21TdHJpbmcoY29uc3QgU3RyaW5nJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
cm9zc1RocmVhZENvcGllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0Nyb3NzVGhyZWFkQ29waWVyLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIH0KICAgICB9OwogCi0gICAgdGVtcGxh
dGU8Ym9vbCBpc0NvbnZlcnRpYmxlVG9JbnRlZ2VyLCBib29sIGlzVGhyZWFkc2FmZVNoYXJlZCwg
dHlwZW5hbWUgVD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTsKKyAgICB0ZW1wbGF0ZTxi
b29sIGlzQ29udmVydGlibGVUb0ludGVnZXIsIGJvb2wgaXNUaHJlYWRTYWZlUmVmQ291bnRlZCwg
dHlwZW5hbWUgVD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTsKIAogICAgIC8vIEludGVn
ZXJzIGdldCBwYXNzZWQgdGhyb3VnaCB3aXRob3V0IGFueSBjaGFuZ2VzLgogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8dHJ1ZSwgZmFsc2UsIFQ+
IDogcHVibGljIENyb3NzVGhyZWFkQ29waWVyUGFzc1Rocm91Z2g8VD4gewpAQCAtMTE0LDggKzEx
NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyIDogcHVibGljIENyb3NzVGhyZWFkQ29waWVy
QmFzZTxXVEY6OklzQ29udmVydGlibGVUb0ludGVnZXI8VD46OnZhbHVlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV1RGOjpJc1N1YmNsYXNzT2ZUZW1wbGF0ZTx0eXBlbmFtZSBXVEY6OlJlbW92
ZVRlbXBsYXRlPFQsIFJlZlB0cj46OlR5cGUsIFRocmVhZFNhZmVTaGFyZWQ+Ojp2YWx1ZQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHx8IFdURjo6SXNTdWJjbGFzc09mVGVtcGxhdGU8dHlw
ZW5hbWUgV1RGOjpSZW1vdmVUZW1wbGF0ZTxULCBQYXNzUmVmUHRyPjo6VHlwZSwgVGhyZWFkU2Fm
ZVNoYXJlZD46OnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV1RGOjpJc1N1YmNsYXNz
T2ZUZW1wbGF0ZTx0eXBlbmFtZSBXVEY6OlJlbW92ZVRlbXBsYXRlPFQsIFJlZlB0cj46OlR5cGUs
IFRocmVhZFNhZmVSZWZDb3VudGVkPjo6dmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8fCBXVEY6OklzU3ViY2xhc3NPZlRlbXBsYXRlPHR5cGVuYW1lIFdURjo6UmVtb3ZlVGVtcGxh
dGU8VCwgUGFzc1JlZlB0cj46OlR5cGUsIFRocmVhZFNhZmVSZWZDb3VudGVkPjo6dmFsdWUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBUPiB7CiAgICAgfTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGEuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDExICszNCwxMSBAQAogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0
cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZFNh
ZmVTaGFyZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBSYXdEYXRhIDogcHVibGljIFRocmVhZFNhZmVTaGFy
ZWQ8UmF3RGF0YT4geworY2xhc3MgUmF3RGF0YSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxSYXdEYXRhPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmF3RGF0YT4gY3Jl
YXRlKCkKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Nv
Y2tldFN0cmVhbUhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGUuaAkod29y
a2luZyBjb3B5KQpAQCAtNDQsMTQgKzQ0LDE0IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlOwogY2xhc3MgQ3JlZGVudGlhbDsKIGNsYXNzIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudDsK
IAotY2xhc3MgU29ja2V0U3RyZWFtSGFuZGxlIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8U29j
a2V0U3RyZWFtSGFuZGxlPiwgcHVibGljIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UsIHB1YmxpYyBB
dXRoZW50aWNhdGlvbkNsaWVudCB7CitjbGFzcyBTb2NrZXRTdHJlYW1IYW5kbGUgOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8U29ja2V0U3RyZWFtSGFuZGxlPiwgcHVibGljIFNvY2tldFN0
cmVhbUhhbmRsZUJhc2UsIHB1YmxpYyBBdXRoZW50aWNhdGlvbkNsaWVudCB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U29ja2V0U3RyZWFtSGFuZGxlPiBjcmVhdGUoY29uc3QgS1VS
TCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQqIGNsaWVudCkgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IFNvY2tldFN0cmVhbUhhbmRsZSh1cmwsIGNsaWVudCkpOyB9CiAKICAgICB2aXJ0dWFs
IH5Tb2NrZXRTdHJlYW1IYW5kbGUoKTsKIAotICAgIHVzaW5nIFRocmVhZFNhZmVTaGFyZWQ8U29j
a2V0U3RyZWFtSGFuZGxlPjo6cmVmOwotICAgIHVzaW5nIFRocmVhZFNhZmVTaGFyZWQ8U29ja2V0
U3RyZWFtSGFuZGxlPjo6ZGVyZWY7CisgICAgdXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U29j
a2V0U3RyZWFtSGFuZGxlPjo6cmVmOworICAgIHVzaW5nIFRocmVhZFNhZmVSZWZDb3VudGVkPFNv
Y2tldFN0cmVhbUhhbmRsZT46OmRlcmVmOwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgaW50IHBs
YXRmb3JtU2VuZChjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvQWJzdHJhY3REYXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvQWJzdHJhY3REYXRhYmFzZS5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJhY3REYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJT
UUxpdGVEYXRhYmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3Rm
L1RocmVhZFNhZmVTaGFyZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aD4KICNpZm5kZWYgTkRFQlVHCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNlbmRpZgpA
QCAtNDYsNyArNDYsNyBAQCBjbGFzcyBEYXRhYmFzZUF1dGhvcml6ZXI7CiBjbGFzcyBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiAKLWNsYXNzIEFic3RyYWN0
RGF0YWJhc2UgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxBYnN0cmFjdERhdGFiYXNlPiB7Citj
bGFzcyBBYnN0cmFjdERhdGFiYXNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEFic3Ry
YWN0RGF0YWJhc2U+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwog
ICAgIHN0YXRpYyB2b2lkIHNldElzQXZhaWxhYmxlKGJvb2wgYXZhaWxhYmxlKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VBdXRob3JpemVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZUF1dGhvcml6ZXIuaAkocmV2aXNpb24gODE1
NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlQXV0aG9yaXplci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5j
bHVkZSA8d3RmL1RocmVhZFNhZmVTaGFyZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTQwLDcgKzQwLDcgQEAgZXh0ZXJuIGNvbnN0IGludCBTUUxBdXRoQWxs
b3c7CiBleHRlcm4gY29uc3QgaW50IFNRTEF1dGhJZ25vcmU7CiBleHRlcm4gY29uc3QgaW50IFNR
TEF1dGhEZW55OwogCi1jbGFzcyBEYXRhYmFzZUF1dGhvcml6ZXIgOiBwdWJsaWMgVGhyZWFkU2Fm
ZVNoYXJlZDxEYXRhYmFzZUF1dGhvcml6ZXI+IHsKK2NsYXNzIERhdGFiYXNlQXV0aG9yaXplciA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxEYXRhYmFzZUF1dGhvcml6ZXI+IHsKIHB1Ymxp
YzoKIAogICAgIGVudW0gUGVybWlzc2lvbnMgewpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9EYXRhYmFzZUNhbGxiYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9EYXRhYmFzZUNhbGxiYWNrLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9EYXRhYmFzZUNhbGxiYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDE0ICszMywx
NCBAQAogCiAjaWYgRU5BQkxFKERBVEFCQVNFKQogCi0jaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVT
aGFyZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBEYXRhYmFzZTsKIGNsYXNzIERhdGFiYXNlU3luYzsKIAot
Y2xhc3MgRGF0YWJhc2VDYWxsYmFjayA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPERhdGFiYXNl
Q2FsbGJhY2s+IHsKK2NsYXNzIERhdGFiYXNlQ2FsbGJhY2sgOiBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8RGF0YWJhc2VDYWxsYmFjaz4gewogcHVibGljOgogICAgIHZpcnR1YWwgfkRhdGFi
YXNlQ2FsbGJhY2soKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoRGF0YWJhc2Uq
KSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGhyZWFkLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRocmVhZC5oCShyZXZp
c2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUaHJlYWQuaAko
d29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIFNR
TFRyYW5zYWN0aW9uQ2xpZW50OwogY2xhc3MgU1FMVHJhbnNhY3Rpb25Db29yZGluYXRvcjsKIAot
Y2xhc3MgRGF0YWJhc2VUaHJlYWQgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxEYXRhYmFzZVRo
cmVhZD4geworY2xhc3MgRGF0YWJhc2VUaHJlYWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8RGF0YWJhc2VUaHJlYWQ+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRh
YmFzZVRocmVhZD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERhdGFiYXNlVGhyZWFk
KTsgfQogICAgIH5EYXRhYmFzZVRocmVhZCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9JREJDYWxsYmFja3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lE
QkNhbGxiYWNrcy5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
SURCQ2FsbGJhY2tzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogLy8gRklYTUU6IEFsbCBjaGlsZCBjbGFzc2VzIG5lZWQgdG8gYmUgbWFk
ZSB0aHJlYWRzYWZlLgotY2xhc3MgSURCQ2FsbGJhY2tzIDogcHVibGljIFRocmVhZFNhZmVTaGFy
ZWQ8SURCQ2FsbGJhY2tzPiB7CitjbGFzcyBJREJDYWxsYmFja3MgOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8SURCQ2FsbGJhY2tzPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCQ2Fs
bGJhY2tzKCkgeyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yQmFj
a2VuZEludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURC
Q3Vyc29yQmFja2VuZEludGVyZmFjZS5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC00MSw3ICs0MSw3IEBAIGNsYXNzIElEQktleTsKIGNsYXNzIElEQlJlcXVlc3Q7CiBjbGFzcyBT
ZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAKLWNsYXNzIElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2Ug
OiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiB7Citj
bGFzcyBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5J
REJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlKCkge30KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCShyZXZpc2lvbiA4
MTU1MykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJm
YWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgSURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlOwogLy8gVGhpcyBpcyBpbXBsZW1lbnRlZCBieSBJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsIGFuZCBvcHRpb25hbGx5IG90aGVycyAoaW4gb3JkZXIgdG8gcHJveHkKIC8v
IGNhbGxzIGFjcm9zcyBwcm9jZXNzIGJhcnJpZXJzKS4gQWxsIGNhbGxzIHRvIHRoZXNlIGNsYXNz
ZXMgc2hvdWxkIGJlIG5vbi1ibG9ja2luZyBhbmQKIC8vIHRyaWdnZXIgd29yayBvbiBhIGJhY2tn
cm91bmQgdGhyZWFkIGlmIG5lY2Vzc2FyeS4KLWNsYXNzIElEQkRhdGFiYXNlQmFja2VuZEludGVy
ZmFjZSA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZT4geworY2xhc3MgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gewogcHVibGljOgogICAg
IHZpcnR1YWwgfklEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSgpIHsgfQogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5o
CShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRmFjdG9yeUJh
Y2tlbmRJbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBjbGFzcyBT
ZWN1cml0eU9yaWdpbjsKIC8vIFRoaXMgaXMgaW1wbGVtZW50ZWQgYnkgSURCRmFjdG9yeUJhY2tl
bmRJbXBsIGFuZCBvcHRpb25hbGx5IG90aGVycyAoaW4gb3JkZXIgdG8gcHJveHkKIC8vIGNhbGxz
IGFjcm9zcyBwcm9jZXNzIGJhcnJpZXJzKS4gQWxsIGNhbGxzIHRvIHRoZXNlIGNsYXNzZXMgc2hv
dWxkIGJlIG5vbi1ibG9ja2luZyBhbmQKIC8vIHRyaWdnZXIgd29yayBvbiBhIGJhY2tncm91bmQg
dGhyZWFkIGlmIG5lY2Vzc2FyeS4KLWNsYXNzIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlIDog
cHVibGljIFRocmVhZFNhZmVTaGFyZWQ8SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U+IHsKK2Ns
YXNzIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZSgpOwogICAgIHZpcnR1
YWwgfklEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKCkgeyB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL0lEQkluZGV4QmFja2VuZEludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmgJKHJldmlzaW9uIDgx
NTUzKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleEJhY2tlbmRJbnRlcmZhY2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCBjbGFzcyBJREJLZXk7CiBjbGFzcyBJ
REJLZXlSYW5nZTsKIGNsYXNzIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTsKIAotY2xh
c3MgSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8SURC
SW5kZXhCYWNrZW5kSW50ZXJmYWNlPiB7CitjbGFzcyBJREJJbmRleEJhY2tlbmRJbnRlcmZhY2Ug
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiB7
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlKCkgeyB9CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJLZXkuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL0lEQktleS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSURCS2V5IDogcHVibGljIFRocmVhZFNh
ZmVTaGFyZWQ8SURCS2V5PiB7CitjbGFzcyBJREJLZXkgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNv
dW50ZWQ8SURCS2V5PiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCS2V5PiBj
cmVhdGVOdWxsKCkKICAgICB7CkBAIC0xMDAsOCArMTAwLDggQEAgcHVibGljOgogICAgIGJvb2wg
aXNMZXNzVGhhbihjb25zdCBJREJLZXkqIG90aGVyKSBjb25zdDsKICAgICBib29sIGlzRXF1YWwo
Y29uc3QgSURCS2V5KiBvdGhlcikgY29uc3Q7CiAKLSAgICB1c2luZyBUaHJlYWRTYWZlU2hhcmVk
PElEQktleT46OnJlZjsKLSAgICB1c2luZyBUaHJlYWRTYWZlU2hhcmVkPElEQktleT46OmRlcmVm
OworICAgIHVzaW5nIFRocmVhZFNhZmVSZWZDb3VudGVkPElEQktleT46OnJlZjsKKyAgICB1c2lu
ZyBUaHJlYWRTYWZlUmVmQ291bnRlZDxJREJLZXk+OjpkZXJlZjsKIAogcHJpdmF0ZToKICAgICBJ
REJLZXkoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5UmFuZ2UuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQktleVJhbmdlLmgJKHJldmlzaW9u
IDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJLZXlSYW5nZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSw3ICszNSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
SURCS2V5UmFuZ2UgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxJREJLZXlSYW5nZT4geworY2xh
c3MgSURCS2V5UmFuZ2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SURCS2V5UmFuZ2U+
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gY3JlYXRlKFBh
c3NSZWZQdHI8SURCS2V5PiBsb3dlciwgUGFzc1JlZlB0cjxJREJLZXk+IHVwcGVyLCBib29sIGxv
d2VyT3BlbiwgYm9vbCB1cHBlck9wZW4pCiAgICAgewpJbmRleDogU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oCShyZXZp
c2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgSURC
S2V5UmFuZ2U7CiBjbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U7CiBjbGFzcyBT
ZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAKLWNsYXNzIElEQk9iamVjdFN0b3JlQmFja2VuZEludGVy
ZmFjZSA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVy
ZmFjZT4geworY2xhc3MgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gewogcHVi
bGljOgogICAgIHZpcnR1YWwgfklEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZSgpIHsgfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuaAkocmV2aXNpb24gODE1NTMpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuaAkod29ya2luZyBjb3B5KQpAQCAt
OTEsOCArOTEsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8
RXZlbnQ+IGV2ZW50LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gRXZlbnRUYXJnZXQ6OmRp
c3BhdGNoRXZlbnQoZXZlbnQsIGVjKTsgfQogICAgIHZpcnR1YWwgdm9pZCB1bmNhdWdodEV4Y2Vw
dGlvbkluRXZlbnRIYW5kbGVyKCk7CiAKLSAgICB1c2luZyBUaHJlYWRTYWZlU2hhcmVkPElEQkNh
bGxiYWNrcz46OnJlZjsKLSAgICB1c2luZyBUaHJlYWRTYWZlU2hhcmVkPElEQkNhbGxiYWNrcz46
OmRlcmVmOworICAgIHVzaW5nIFRocmVhZFNhZmVSZWZDb3VudGVkPElEQkNhbGxiYWNrcz46OnJl
ZjsKKyAgICB1c2luZyBUaHJlYWRTYWZlUmVmQ291bnRlZDxJREJDYWxsYmFja3M+OjpkZXJlZjsK
IAogcHJvdGVjdGVkOgogICAgIElEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBh
c3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIElEQlRyYW5zYWN0aW9uKik7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBA
QCBjbGFzcyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrczsKIC8vIFRoaXMgaXMgaW1wbGVtZW50ZWQg
YnkgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCBhbmQgb3B0aW9uYWxseSBvdGhlcnMgKGluIG9y
ZGVyIHRvIHByb3h5CiAvLyBjYWxscyBhY3Jvc3MgcHJvY2VzcyBiYXJyaWVycykuIEFsbCBjYWxs
cyB0byB0aGVzZSBjbGFzc2VzIHNob3VsZCBiZSBub24tYmxvY2tpbmcgYW5kCiAvLyB0cmlnZ2Vy
IHdvcmsgb24gYSBiYWNrZ3JvdW5kIHRocmVhZCBpZiBuZWNlc3NhcnkuCi1jbGFzcyBJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHsKK2NsYXNzIElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2U+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UoKSB7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxFcnJv
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMRXJyb3IuaAkocmV2
aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTEVycm9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMyLDExICszMiwxMSBAQAogI2lmIEVOQUJMRShEQVRBQkFTRSkKIAogI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVTaGFyZWQu
aD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBTUUxFcnJvciA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFNRTEVy
cm9yPiB7CitjbGFzcyBTUUxFcnJvciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTUUxF
cnJvcj4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNRTEVycm9yPiBjcmVhdGUo
dW5zaWduZWQgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgU1FMRXJyb3IoY29kZSwgbWVzc2FnZSkpOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvU1FMUmVzdWx0U2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9TUUxSZXN1bHRTZXQuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1NRTFJlc3VsdFNldC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMSArMzMsMTEgQEAKIAog
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJTUUxSZXN1bHRTZXRSb3dMaXN0
LmgiCi0jaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVTaGFyZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhy
ZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTUUxS
ZXN1bHRTZXQgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxTUUxSZXN1bHRTZXQ+IHsKK2NsYXNz
IFNRTFJlc3VsdFNldCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTUUxSZXN1bHRTZXQ+
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+IGNyZWF0ZSgp
IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTUUxSZXN1bHRTZXQpOyB9CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnQuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3
IEBAIGNsYXNzIFNRTFN0YXRlbWVudENhbGxiYWNrOwogY2xhc3MgU1FMU3RhdGVtZW50RXJyb3JD
YWxsYmFjazsKIGNsYXNzIFNRTFRyYW5zYWN0aW9uOwogCi1jbGFzcyBTUUxTdGF0ZW1lbnQgOiBw
dWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxTUUxTdGF0ZW1lbnQ+IHsKK2NsYXNzIFNRTFN0YXRlbWVu
dCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTUUxTdGF0ZW1lbnQ+IHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTUUxTdGF0ZW1lbnQ+IGNyZWF0ZShEYXRhYmFzZSosIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFZlY3RvcjxTUUxWYWx1ZT4mLCBQYXNzUmVmUHRyPFNRTFN0YXRl
bWVudENhbGxiYWNrPiwgUGFzc1JlZlB0cjxTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrPiwgaW50
IHBlcm1pc3Npb25zKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1l
bnRDYWxsYmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3Rh
dGVtZW50Q2FsbGJhY2suaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1NRTFN0YXRlbWVudENhbGxiYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE0ICszMCwx
NCBAQAogCiAjaWYgRU5BQkxFKERBVEFCQVNFKQogCi0jaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVT
aGFyZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBTUUxUcmFuc2FjdGlvbjsKIGNsYXNzIFNRTFJlc3VsdFNl
dDsKIAotY2xhc3MgU1FMU3RhdGVtZW50Q2FsbGJhY2sgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJl
ZDxTUUxTdGF0ZW1lbnRDYWxsYmFjaz4geworY2xhc3MgU1FMU3RhdGVtZW50Q2FsbGJhY2sgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U1FMU3RhdGVtZW50Q2FsbGJhY2s+IHsKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5TUUxTdGF0ZW1lbnRDYWxsYmFjaygpIHsgfQogICAgIHZpcnR1YWwg
Ym9vbCBoYW5kbGVFdmVudChTUUxUcmFuc2FjdGlvbiosIFNRTFJlc3VsdFNldCopID0gMDsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50RXJyb3JDYWxs
YmFjay5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3Rh
dGVtZW50RXJyb3JDYWxsYmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxNCArMzEsMTQgQEAK
IAogI2lmIEVOQUJMRShEQVRBQkFTRSkKIAotI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlU2hhcmVk
Lmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgU1FMVHJhbnNhY3Rpb247CiBjbGFzcyBTUUxFcnJvcjsKIAotY2xh
c3MgU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjayA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFNR
TFN0YXRlbWVudEVycm9yQ2FsbGJhY2s+IHsKK2NsYXNzIFNRTFN0YXRlbWVudEVycm9yQ2FsbGJh
Y2sgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFj
az4gewogcHVibGljOgogICAgIHZpcnR1YWwgflNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2soKSB7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoU1FMVHJhbnNhY3Rpb24qLCBTUUxFcnJv
ciopID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmgJKHJl
dmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiU1FMU3RhdGVtZW50
LmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNp
bmNsdWRlIDx3dGYvVGhyZWFkU2FmZVNoYXJlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZl
UmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNTAsNyArNTAsNyBAQCBjbGFzcyBTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s7
CiBjbGFzcyBTUUxWYWx1ZTsKIGNsYXNzIFZvaWRDYWxsYmFjazsKIAotY2xhc3MgU1FMVHJhbnNh
Y3Rpb25XcmFwcGVyIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8U1FMVHJhbnNhY3Rpb25XcmFw
cGVyPiB7CitjbGFzcyBTUUxUcmFuc2FjdGlvbldyYXBwZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8U1FMVHJhbnNhY3Rpb25XcmFwcGVyPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+
U1FMVHJhbnNhY3Rpb25XcmFwcGVyKCkgeyB9CiAgICAgdmlydHVhbCBib29sIHBlcmZvcm1QcmVm
bGlnaHQoU1FMVHJhbnNhY3Rpb24qKSA9IDA7CkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIFNRTEVycm9yKiBzcWxFcnJvcigpIGNvbnN0ID0gMDsKIH07CiAKLWNsYXNzIFNR
TFRyYW5zYWN0aW9uIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8U1FMVHJhbnNhY3Rpb24+IHsK
K2NsYXNzIFNRTFRyYW5zYWN0aW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNRTFRy
YW5zYWN0aW9uPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rp
b24+IGNyZWF0ZShEYXRhYmFzZSosIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4s
IFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiwg
UGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbldyYXBwZXI+LCBib29sIHJlYWRPbmx5ID0gZmFsc2Up
OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbkNhbGxi
YWNrLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFu
c2FjdGlvbkNhbGxiYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDEzICszMSwxMyBAQAogCiAj
aWYgRU5BQkxFKERBVEFCQVNFKQogCi0jaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVTaGFyZWQuaD4K
KyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBTUUxUcmFuc2FjdGlvbjsKIAotY2xhc3MgU1FMVHJhbnNhY3Rpb25DYWxs
YmFjayA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+IHsK
K2NsYXNzIFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2sgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4gewogcHVibGljOgogICAgIHZpcnR1YWwgflNRTFRy
YW5zYWN0aW9uQ2FsbGJhY2soKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoU1FM
VHJhbnNhY3Rpb24qKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5z
YWN0aW9uRXJyb3JDYWxsYmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsMTMgKzMxLDEzIEBACiAKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAKLSNp
bmNsdWRlIDx3dGYvVGhyZWFkU2FmZVNoYXJlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZl
UmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNRTEVycm9yOwog
Ci1jbGFzcyBTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2sgOiBwdWJsaWMgVGhyZWFkU2FmZVNo
YXJlZDxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+IHsKK2NsYXNzIFNRTFRyYW5zYWN0aW9u
RXJyb3JDYWxsYmFjayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTUUxUcmFuc2FjdGlv
bkVycm9yQ2FsbGJhY2s+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TUUxUcmFuc2FjdGlvbkVy
cm9yQ2FsbGJhY2soKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoU1FMRXJyb3Iq
KSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dl
YnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgJKHJldmlz
aW9uIDgxNTUzKQorKysgU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlciA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4geworY2xhc3MgVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4gY3JlYXRl
KFdlYlNvY2tldENoYW5uZWxDbGllbnQqIGNsaWVudCkKICAgICB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5
LmNwcAkocmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRT
aGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNoYXJlZFdvcmtlclByb3h5IDogcHVi
bGljIFRocmVhZFNhZmVTaGFyZWQ8U2hhcmVkV29ya2VyUHJveHk+LCBwdWJsaWMgV29ya2VyTG9h
ZGVyUHJveHksIHB1YmxpYyBXb3JrZXJSZXBvcnRpbmdQcm94eSB7CitjbGFzcyBTaGFyZWRXb3Jr
ZXJQcm94eSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTaGFyZWRXb3JrZXJQcm94eT4s
IHB1YmxpYyBXb3JrZXJMb2FkZXJQcm94eSwgcHVibGljIFdvcmtlclJlcG9ydGluZ1Byb3h5IHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXJQcm94eT4gY3JlYXRl
KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgS1VSTCYgdXJsLCBQYXNzUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiBvcmlnaW4pIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRXb3JrZXJQcm94eShu
YW1lLCB1cmwsIG9yaWdpbikpOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxNTYyKQor
KysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTEtMDMtMTkgIEJpbGwgQnVkZ2UgIDxiYnVkZ2VAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBUaHJlYWRT
YWZlU2hhcmVkIHRvIFRocmVhZFNhZmVSZWZDb3VudGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjcxNAorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4g
RXhwb3NlcyBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJ
UEMvQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFBsYXRmb3JtL1dvcmtRdWV1ZS5oOgorICAgICAg
ICAqIFBsYXRmb3JtL3dpbi9Xb3JrUXVldWVXaW4uY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9M
YXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIv
VGhyZWFkTGF1bmNoZXIuaDoKKwogMjAxMS0wMy0xOSAgQW50b24gRCdBdXJpYSAgPGFkYXVyaWFA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaAkocmV2aXNpb24gODE1NTMpCisrKyBT
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaAkod29ya2luZyBjb3B5KQpAQCAtMTA2
LDcgKzEwNiw3IEBAIHByaXZhdGU6CiAgICAgZGlzcGF0Y2hfcXVldWVfdCBtX2Rpc3BhdGNoUXVl
dWU7CiAjZW5kaWYKICNlbGlmIFBMQVRGT1JNKFdJTikKLSAgICBjbGFzcyBXb3JrSXRlbVdpbiA6
IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFdvcmtJdGVtV2luPiB7CisgICAgY2xhc3MgV29ya0l0
ZW1XaW4gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya0l0ZW1XaW4+IHsKICAgICBw
dWJsaWM6CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdvcmtJdGVtV2luPiBjcmVhdGUoUGFz
c093blB0cjxXb3JrSXRlbT4sIFdvcmtRdWV1ZSopOwogICAgICAgICB2aXJ0dWFsIH5Xb3JrSXRl
bVdpbigpOwpJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0
aW9uLmgJKHJldmlzaW9uIDgxNTUzKQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9Db25uZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDcgKzcyLDcgQEAgZW51bSBNZXNz
YWdlU2VuZEZsYWdzIHsKICAgICB9IFwKIHdoaWxlICgwKQogCi1jbGFzcyBDb25uZWN0aW9uIDog
cHVibGljIFRocmVhZFNhZmVTaGFyZWQ8Q29ubmVjdGlvbj4geworY2xhc3MgQ29ubmVjdGlvbiA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDb25uZWN0aW9uPiB7CiBwdWJsaWM6CiAgICAg
Y2xhc3MgTWVzc2FnZVJlY2VpdmVyIHsKICAgICBwcm90ZWN0ZWQ6CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS93aW4vV29ya1F1ZXVlV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS93aW4vV29ya1F1ZXVlV2luLmNwcAkocmV2aXNpb24gODE1NTMpCisr
KyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS93aW4vV29ya1F1ZXVlV2luLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjEwLDcgKzIxMCw3IEBAIHZvaWQgV29ya1F1ZXVlOjpzY2hlZHVsZVdvcmsoUGFz
c093blB0cjwKICAgICAgICAgOjpRdWV1ZVVzZXJXb3JrSXRlbSh3b3JrVGhyZWFkQ2FsbGJhY2ss
IHRoaXMsIFdUX0VYRUNVVEVERUZBVUxUKTsKIH0KIAotc3RydWN0IFRpbWVyQ29udGV4dCA6IHB1
YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFRpbWVyQ29udGV4dD4geworc3RydWN0IFRpbWVyQ29udGV4
dCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaW1lckNvbnRleHQ+IHsKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxUaW1lckNvbnRleHQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5l
dyBUaW1lckNvbnRleHQpOyB9CiAKICAgICBXb3JrUXVldWUqIHF1ZXVlOwpJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAko
cmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJv
Y2Vzc0xhdW5jaGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgUUxv
Y2FsU29ja2V0OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgUHJvY2Vzc0xhdW5jaGVy
IDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8UHJvY2Vzc0xhdW5jaGVyPiB7CitjbGFzcyBQcm9j
ZXNzTGF1bmNoZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UHJvY2Vzc0xhdW5jaGVy
PiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgQ2xpZW50IHsKICAgICBwdWJsaWM6CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuaAko
cmV2aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvVGhy
ZWFkTGF1bmNoZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBRTG9j
YWxTb2NrZXQ7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBUaHJlYWRMYXVuY2hlciA6
IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFRocmVhZExhdW5jaGVyPiB7CitjbGFzcyBUaHJlYWRM
YXVuY2hlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJlYWRMYXVuY2hlcj4gewog
cHVibGljOgogICAgIGNsYXNzIENsaWVudCB7CiAgICAgcHVibGljOgpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxNTYyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wMy0xOSAg
QmlsbCBCdWRnZSAgPGJidWRnZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIFRocmVhZFNhZmVTaGFyZWQgdG8gVGhy
ZWFkU2FmZVJlZkNvdW50ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU2NzE0CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBFeHBvc2VzIG5vIG5ldyBm
dW5jdGlvbmFsaXR5LgorCisgICAgICAgICogc3JjL1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVs
Lmg6CisgICAgICAgICogc3JjL1dlYldvcmtlckJhc2UuY3BwOgorICAgICAgICAqIHNyYy9Xb3Jr
ZXJGaWxlU3lzdGVtQ2FsbGJhY2tzQnJpZGdlLmg6CisgICAgICAgICogc3JjL1dvcmtlckZpbGVX
cml0ZXJDYWxsYmFja3NCcmlkZ2UuaDoKKwogMjAxMS0wMy0xOCAgVG9ueSBDaGFuZyAgPHRvbnlA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybU1lc3NhZ2VQ
b3J0Q2hhbm5lbC5oCShyZXZpc2lvbiA4MTU1MykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcg
KzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTWVzc2FnZVBvcnQ7CiAKIC8vIFBs
YXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsIGlzIGEgcGxhdGZvcm0tZGVwZW5kZW50IGludGVyZmFj
ZSB0byB0aGUgcmVtb3RlIHNpZGUgb2YgYSBtZXNzYWdlIGNoYW5uZWwuCi1jbGFzcyBQbGF0Zm9y
bU1lc3NhZ2VQb3J0Q2hhbm5lbCA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFBsYXRmb3JtTWVz
c2FnZVBvcnRDaGFubmVsPiwKK2NsYXNzIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsPiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFdlYktpdDo6V2ViTWVzc2Fn
ZVBvcnRDaGFubmVsQ2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBjcmVhdGVDaGFu
bmVsKFBhc3NSZWZQdHI8TWVzc2FnZVBvcnQ+LCBQYXNzUmVmUHRyPE1lc3NhZ2VQb3J0Pik7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJCYXNlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJCYXNlLmNwcAkocmV2
aXNpb24gODE1NTMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJCYXNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNyBAQCBuYW1lc3BhY2UgewogCiAvLyBU
aGlzIGNsYXNzIGlzIHVzZWQgdG8gcm91dGUgdGhlIHJlc3VsdCBvZiB0aGUgV2ViV29ya2VyQmFz
ZTo6YWxsb3dEYXRhYmFzZQogLy8gY2FsbCBiYWNrIHRvIHRoZSB3b3JrZXIgY29udGV4dC4KLWNs
YXNzIEFsbG93RGF0YWJhc2VNYWluVGhyZWFkQnJpZGdlIDogcHVibGljIFRocmVhZFNhZmVTaGFy
ZWQ8QWxsb3dEYXRhYmFzZU1haW5UaHJlYWRCcmlkZ2U+IHsKK2NsYXNzIEFsbG93RGF0YWJhc2VN
YWluVGhyZWFkQnJpZGdlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEFsbG93RGF0YWJh
c2VNYWluVGhyZWFkQnJpZGdlPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8QWxs
b3dEYXRhYmFzZU1haW5UaHJlYWRCcmlkZ2U+IGNyZWF0ZShXZWJXb3JrZXJCYXNlKiB3b3JrZXIs
IGNvbnN0IFdURjo6U3RyaW5nJiBtb2RlLCBXZWJDb21tb25Xb3JrZXJDbGllbnQqIGNvbW1vbkNs
aWVudCwgV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBXVEY6OlN0cmluZyYgbmFtZSwgY29uc3QgV1RG
OjpTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUpCiAgICAg
ewpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV29ya2VyRmlsZVN5c3RlbUNhbGxi
YWNrc0JyaWRnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dv
cmtlckZpbGVTeXN0ZW1DYWxsYmFja3NCcmlkZ2UuaAkocmV2aXNpb24gODE1NTMpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Xb3JrZXJGaWxlU3lzdGVtQ2FsbGJhY2tzQnJpZGdlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTY2LDcgKzY2LDcgQEAgc3RydWN0IFdlYkZpbGVTeXN0ZW1FbnRy
eTsKIC8vICAtLT4gQnJpZGdlOjpkaWRYeHhPbldvcmtlclRocmVhZCBpcyBjYWxsZWQgb24gV29y
a2VyVGhyZWFkCiAvLyAgICAgIFRoaXMgY2FsbHMgdGhlIG9yaWdpbmFsIGNhbGxiYWNrcyAobV9j
YWxsYmFja3NPbldvcmtlclRocmVhZCkgYW5kCiAvLyAgICAgIHJlbGVhc2VzIGEgc2VsZi1yZWZl
cmVuY2UgdG8gdGhlIGJyaWRnZS4KLWNsYXNzIFdvcmtlckZpbGVTeXN0ZW1DYWxsYmFja3NCcmlk
Z2UgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxXb3JrZXJGaWxlU3lzdGVtQ2FsbGJhY2tzQnJp
ZGdlPiwgcHVibGljIFdlYkNvcmU6OldvcmtlckNvbnRleHQ6Ok9ic2VydmVyIHsKK2NsYXNzIFdv
cmtlckZpbGVTeXN0ZW1DYWxsYmFja3NCcmlkZ2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8V29ya2VyRmlsZVN5c3RlbUNhbGxiYWNrc0JyaWRnZT4sIHB1YmxpYyBXZWJDb3JlOjpXb3Jr
ZXJDb250ZXh0OjpPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgfldvcmtlckZpbGVTeXN0ZW1DYWxs
YmFja3NCcmlkZ2UoKTsKIApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV29ya2Vy
RmlsZVdyaXRlckNhbGxiYWNrc0JyaWRnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dvcmtlckZpbGVXcml0ZXJDYWxsYmFja3NCcmlkZ2UuaAkocmV2aXNpb24g
ODE1NTMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Xb3JrZXJGaWxlV3JpdGVyQ2Fs
bGJhY2tzQnJpZGdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRl
ICJXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlU2hhcmVkLmg+Cisj
aW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBjbGFzcyBBc3luY0ZpbGVXcml0ZXJDbGllbnQ7CkBAIC03OSw3ICs3OSw3IEBAIGNs
YXNzIFdlYldvcmtlckJhc2U7CiAvLyBzaG91bGQgY2FsbCBwb3N0U2h1dGRvd25Ub01haW5UaHJl
YWQgYmVmb3JlIGRyb3BwaW5nIGl0cyByZWZlcmVuY2UgdG8gdGhlCiAvLyBicmlkZ2UuIFRoaXMg
ZW5zdXJlcyB0aGF0IHRoZSBXZWJGaWxlV3JpdGVyIHdpbGwgYmUgY2xlYXJlZCBvbiB0aGUgbWFp
bgogLy8gdGhyZWFkIGFuZCB0aGF0IG5vIGZ1cnRoZXIgY2FsbHMgdG8gdGhlIFdlYkZpbGVXcml0
ZXJDbGllbnQgd2lsbCBiZSBtYWRlLgotY2xhc3MgV29ya2VyRmlsZVdyaXRlckNhbGxiYWNrc0Jy
aWRnZSA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFdvcmtlckZpbGVXcml0ZXJDYWxsYmFja3NC
cmlkZ2U+LCBwdWJsaWMgV2ViQ29yZTo6V29ya2VyQ29udGV4dDo6T2JzZXJ2ZXIsIHB1YmxpYyBX
ZWJGaWxlV3JpdGVyQ2xpZW50IHsKK2NsYXNzIFdvcmtlckZpbGVXcml0ZXJDYWxsYmFja3NCcmlk
Z2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya2VyRmlsZVdyaXRlckNhbGxiYWNr
c0JyaWRnZT4sIHB1YmxpYyBXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjpPYnNlcnZlciwgcHVibGlj
IFdlYkZpbGVXcml0ZXJDbGllbnQgewogcHVibGljOgogICAgIH5Xb3JrZXJGaWxlV3JpdGVyQ2Fs
bGJhY2tzQnJpZGdlKCk7CiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxNTYyKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDMtMTkgIEJpbGwgQnVkZ2UgIDxiYnVk
Z2VAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlbmFtZSBUaHJlYWRTYWZlU2hhcmVkIHRvIFRocmVhZFNhZmVSZWZDb3VudGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjcxNAor
CisgICAgICAgIE5vIG5ldyB0ZXN0cy4gRXhwb3NlcyBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKwor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZl
UmVmQ291bnRlZC5oOiBDb3BpZWQgZnJvbSBEdW1wUmVuZGVyVHJlZS9Gb3J3YXJkaW5nSGVhZGVy
cy93dGYvVGhyZWFkU2FmZVNoYXJlZC5oLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0Zvcndh
cmRpbmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlU2hhcmVkLmg6IFJlbW92ZWQuCisgICAgICAgICog
U2NyaXB0cy9kby13ZWJjb3JlLXJlbmFtZToKKwogMjAxMS0wMy0xOSAgQW50b24gRCdBdXJpYSAg
PGFkYXVyaWFAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3Vy
eWFrb3YuCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYv
VGhyZWFkU2FmZVJlZkNvdW50ZWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJl
ZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaAkocmV2aXNpb24g
ODE1MjgpCShmcm9tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9U
aHJlYWRTYWZlU2hhcmVkLmg6ODE1MjgpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9Gb3J3YXJk
aW5nSGVhZGVycy93dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxIEBACisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVGhyZWFkU2FmZVNoYXJlZC5oPgpJ
bmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNh
ZmVSZWZDb3VudGVkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvRm9yd2Fy
ZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmgJKHJldmlzaW9uIDgxNTI4KQor
KysgVG9vbHMvRHVtcFJlbmRlclRyZWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVS
ZWZDb3VudGVkLmgJKHdvcmtpbmcgY29weSkKQEAgLTEgKzEgQEAKLSNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9UaHJlYWRTYWZlU2hhcmVkLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVGhy
ZWFkU2FmZVJlZkNvdW50ZWQuaD4KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0ZvcndhcmRp
bmdIZWFkZXJzL3d0Zi9UaHJlYWRTYWZlU2hhcmVkLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVt
cFJlbmRlclRyZWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RocmVhZFNhZmVTaGFyZWQuaAkocmV2
aXNpb24gODE1MjgpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9Gb3J3YXJkaW5nSGVhZGVycy93
dGYvVGhyZWFkU2FmZVNoYXJlZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xICswLDAgQEAKLSNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9UaHJlYWRTYWZlU2hhcmVkLmg+CkluZGV4OiBUb29scy9TY3Jp
cHRzL2RvLXdlYmNvcmUtcmVuYW1lCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvZG8td2Vi
Y29yZS1yZW5hbWUJKHJldmlzaW9uIDgxNTI4KQorKysgVG9vbHMvU2NyaXB0cy9kby13ZWJjb3Jl
LXJlbmFtZQkod29ya2luZyBjb3B5KQpAQCAtMTI1LDggKzEyNSw2IEBAIG15ICVyZW5hbWVzQ29u
dGVtcGxhdGVkRm9yVGhlRnV0dXJlID0gKAogICAgICJLVVJMTWFjIiA9PiAiVVJMTWFjIiwKICAg
ICAiS1VSTF9oIiA9PiAiVVJMX2giLAogCi0gICAgIlRocmVhZFNhZmVTaGFyZWRCYXNlIiA9PiAi
VGhyZWFkU2FmZVJlZkNvdW50ZWRCYXNlIiwKLSAgICAiVGhyZWFkU2FmZVNoYXJlZCIgPT4gIlRo
cmVhZFNhZmVSZWZDb3VudGVkIiwKICAgICAiVHJlZVNoYXJlZCIgPT4gIlRyZWVSZWZDb3VudGVk
IiwKIAogICAgICJTdHJpbmdJbXBsIiA9PiAiU2hhcmVkU3RyaW5nIiwK
</data>
<flag name="review"
          id="78521"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="78522"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>