<?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>95839</bug_id>
          
          <creation_ts>2012-09-05 03:50:03 -0700</creation_ts>
          <short_desc>MediaStream API: Add the local and remote description functionality to RTCPeerConnection</short_desc>
          <delta_ts>2012-09-06 11:50:39 -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>WebCore Misc.</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>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>95920</dependson>
          <blocked>80589</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tommy Widenflycht">tommyw</reporter>
          <assigned_to name="Tommy Widenflycht">tommyw</assigned_to>
          <cc>abarth</cc>
    
    <cc>bashi</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fishd</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jamesr</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>711915</commentid>
    <comment_count>0</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-05 03:50:03 -0700</bug_when>
    <thetext>This is the last large patch missing, just a few small ones still lined up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711941</commentid>
    <comment_count>1</comment_count>
      <attachid>162217</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-05 04:36:56 -0700</bug_when>
    <thetext>Created attachment 162217
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711945</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-05 04:40:33 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711986</commentid>
    <comment_count>3</comment_count>
      <attachid>162217</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-09-05 05:42:52 -0700</bug_when>
    <thetext>Comment on attachment 162217
Patch

Attachment 162217 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/13745835</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712004</commentid>
    <comment_count>4</comment_count>
      <attachid>162233</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-05 06:16:10 -0700</bug_when>
    <thetext>Created attachment 162233
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712216</commentid>
    <comment_count>5</comment_count>
      <attachid>162233</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-05 10:29:41 -0700</bug_when>
    <thetext>Comment on attachment 162233
Patch

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

It&apos;s a bit unfortunate that we need to build all this machinery just for WebRTC.  The void request seems like something that could potentially be shared between WebRTC and FileSystem, for example.  However, I don&apos;t think we need to worry about that at this stage.

Would you be willing to fix up the variable names in a followup patch?

&gt; Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp:220
&gt; +    RefPtr&lt;RTCSessionDescription&gt; desc = RTCSessionDescription::create(descriptor.release());

desc -&gt; please use complete words in variable names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712313</commentid>
    <comment_count>6</comment_count>
      <attachid>162233</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-05 11:00:51 -0700</bug_when>
    <thetext>Comment on attachment 162233
Patch

Clearing flags on attachment: 162233

Committed r127612: &lt;http://trac.webkit.org/changeset/127612&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712314</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-05 11:00:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712665</commentid>
    <comment_count>8</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-09-05 16:37:49 -0700</bug_when>
    <thetext>r127612 broke win build.
http://build.chromium.org/p/chromium.webkit/builders/Win%20Builder/builds/27608

33&gt;  RTCPeerConnectionHandlerChromium.cpp
33&gt;..\..\WTF\wtf/PassRefPtr.h(53): error C2027: use of undefined type &apos;WebCore::RTCVoidRequest&apos;
33&gt;          ..\platform\mediastream\RTCPeerConnectionHandler.h(48) : see declaration of &apos;WebCore::RTCVoidRequest&apos;
33&gt;          ..\..\WTF\wtf/PassRefPtr.h(68) : see reference to function template instantiation &apos;void WTF::derefIfNotNull&lt;T&gt;(T *)&apos; being compiled
33&gt;          with
33&gt;          [
33&gt;              T=WebCore::RTCVoidRequest
33&gt;          ]
33&gt;          ..\..\WTF\wtf/PassRefPtr.h(68) : while compiling class template member function &apos;WTF::PassRefPtr&lt;T&gt;::~PassRefPtr(void)&apos;
33&gt;          with
33&gt;          [
33&gt;              T=WebCore::RTCVoidRequest
33&gt;          ]
33&gt;          ..\platform\mediastream\chromium\RTCPeerConnectionHandlerChromium.cpp(86) : see reference to class template instantiation &apos;WTF::PassRefPtr&lt;T&gt;&apos; being compiled
33&gt;          with
33&gt;          [
33&gt;              T=WebCore::RTCVoidRequest
33&gt;          ]
33&gt;..\..\WTF\wtf/PassRefPtr.h(53): error C2227: left of &apos;-&gt;deref&apos; must point to class/struct/union/generic type
32&gt;  V8AbstractEventListener.cpp
33&gt;
33&gt;Build FAILED.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712668</commentid>
    <comment_count>9</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-09-05 16:39:32 -0700</bug_when>
    <thetext>I&apos;m trying to fix it:
http://trac.webkit.org/changeset/127660</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712737</commentid>
    <comment_count>10</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-09-05 18:20:01 -0700</bug_when>
    <thetext>After some attempts, I gave up to fix it and I&apos;m rolling out the patch. Even if builds succeeded, it seems that there are layout tests failures.
http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Linux/builds/30510</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713030</commentid>
    <comment_count>11</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-06 01:51:51 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; After some attempts, I gave up to fix it and I&apos;m rolling out the patch. Even if builds succeeded, it seems that there are layout tests failures.
&gt; http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Linux/builds/30510

Yeah, your fix didn&apos;t do the right thing at all but thanks for trying.

 The problem is that I don&apos;t want a third machine under my desk and since cr-win is so different for some reason it should have its own build bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713039</commentid>
    <comment_count>12</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-09-06 01:57:52 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; After some attempts, I gave up to fix it and I&apos;m rolling out the patch. Even if builds succeeded, it seems that there are layout tests failures.
&gt; &gt; http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Linux/builds/30510
&gt; 
&gt; Yeah, your fix didn&apos;t do the right thing at all but thanks for trying.
&gt; 
&gt;  The problem is that I don&apos;t want a third machine under my desk and since cr-win is so different for some reason it should have its own build bot.

You may want to use try.
http://dev.chromium.org/developers/testing/try-server-usage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713071</commentid>
    <comment_count>13</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-06 02:32:34 -0700</bug_when>
    <thetext>
&gt; You may want to use try.
&gt; http://dev.chromium.org/developers/testing/try-server-usage

That seems to require chromium committer status, which I don&apos;t have.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713072</commentid>
    <comment_count>14</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-09-06 02:34:15 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; You may want to use try.
&gt; &gt; http://dev.chromium.org/developers/testing/try-server-usage
&gt; 
&gt; That seems to require chromium committer status, which I don&apos;t have.

You can ask a committer to submit a try. See the bottom of the page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713102</commentid>
    <comment_count>15</comment_count>
      <attachid>162462</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-06 03:04:58 -0700</bug_when>
    <thetext>Created attachment 162462
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713107</commentid>
    <comment_count>16</comment_count>
      <attachid>162464</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-06 03:08:24 -0700</bug_when>
    <thetext>Created attachment 162464
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713109</commentid>
    <comment_count>17</comment_count>
      <attachid>162233</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-06 03:09:52 -0700</bug_when>
    <thetext>Comment on attachment 162233
Patch

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

&gt;&gt; Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp:220
&gt;&gt; +    RefPtr&lt;RTCSessionDescription&gt; desc = RTCSessionDescription::create(descriptor.release());
&gt; 
&gt; desc -&gt; please use complete words in variable names.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713112</commentid>
    <comment_count>18</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-06 03:12:11 -0700</bug_when>
    <thetext>Patch now confirmed compiling and working on Windows, thanks to hbono. The fix was to add a missing header file to RTCPeerConnectionHandlerChromium.cpp

What I don&apos;t understand is how the previous patch could compile under cr-linux and cr-mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713442</commentid>
    <comment_count>19</comment_count>
      <attachid>162464</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-06 10:36:50 -0700</bug_when>
    <thetext>Comment on attachment 162464
Patch

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713528</commentid>
    <comment_count>20</comment_count>
      <attachid>162464</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 11:50:34 -0700</bug_when>
    <thetext>Comment on attachment 162464
Patch

Clearing flags on attachment: 162464

Committed r127766: &lt;http://trac.webkit.org/changeset/127766&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713529</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 11:50:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162217</attachid>
            <date>2012-09-05 04:36:56 -0700</date>
            <delta_ts>2012-09-05 06:16:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95839-20120905133637.patch</filename>
            <type>text/plain</type>
            <size>66574</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAwNDlhNDAwNjk3OWZi
MjIyZTU2NzY3N2E4ZmE0MjQ3ZTJjZjNkNzg4Li4zODMxMzVmOWQ4ZjdiNzA5MGZjNzY0NzU0NDUx
NjkyOGQ0ZmIxM2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0wOS0wNSAg
VG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAgICAgICBNZWRpYVN0
cmVhbSBBUEk6IEFkZCB0aGUgbG9jYWwgYW5kIHJlbW90ZSBkZXNjcmlwdGlvbiBmdW5jdGlvbmFs
aXR5IHRvIFJUQ1BlZXJDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NTgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogUGxhdGZvcm0uZ3lwaToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJs
aWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6CisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKToKKyAgICAgICAgKiBjaHJvbWl1bS9w
dWJsaWMvV2ViUlRDVm9pZFJlcXVlc3QuaDogQ29waWVkIGZyb20gU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaC4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlJUQ1ZvaWRSZXF1ZXN0KToK
KyAgICAgICAgKEV4dHJhRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0
OjpFeHRyYURhdGE6On5FeHRyYURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENWb2lkUmVx
dWVzdDo6V2ViUlRDVm9pZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENWb2lkUmVx
dWVzdDo6fldlYlJUQ1ZvaWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDVm9pZFJl
cXVlc3Q6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0Ojpp
c051bGwpOgorCiAyMDEyLTA5LTA0ICBLZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEF0dGVtcHQgdG8gZml4IGJ1aWxkIGZhaWx1cmUg
b24gV2luCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggNmYzMzkxMDNlMjIxOGEzMjRiZjIzZWJkMWFkMzZhOWYxZGE4
MmNkYS4uY2Q3ZjgwNTNjNTc1MDRhY2FjNmU5ZTM0NmQ3MDEyNjQxNDhlZjg1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDk2IEBACisyMDEyLTA5LTA1ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15
d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQSTogQWRkIHRoZSBsb2NhbCBh
bmQgcmVtb3RlIGRlc2NyaXB0aW9uIGZ1bmN0aW9uYWxpdHkgdG8gUlRDUGVlckNvbm5lY3Rpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1ODM5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgd2VsbCBh
cyBhZGRpbmcgdGhlIGxvY2FsL3JlbW90ZSBkZXNjcmlwdGlvbnMgc3R1ZmYsIEkgcmVtb3ZlZCB0
aGUgc291cmNlIGF0dHJpYnV0ZSBmcm9tCisgICAgICAgIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNh
bGxiYWNrIGFuZCBSVENFcnJvckNhbGxiYWNrIHNpbmNlIGl0IGhhcyBiZWVuIHJlbW92ZWQgZnJv
bSB0aGUgZHJhZnQuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24tbG9jYWxEZXNjcmlwdGlvbi5odG1sCisgICAgICAgICAgICAgICBmYXN0L21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXJlbW90ZURlc2NyaXB0aW9uLmh0bWwKKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFcnJvckNhbGxiYWNrLmg6CisgICAgICAgIChS
VENFcnJvckNhbGxiYWNrKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9y
Q2FsbGJhY2suaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmNyZWF0ZU9m
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpzZXRMb2NhbERlc2Ny
aXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNv
bm5lY3Rpb246OmxvY2FsRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNv
bm5lY3Rpb246OnNldFJlbW90ZURlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1Bl
ZXJDb25uZWN0aW9uOjpyZW1vdGVEZXNjcmlwdGlvbik6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChSVENQZWVyQ29ubmVjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNz
aW9uRGVzY3JpcHRpb25DYWxsYmFjay5oOgorICAgICAgICAoUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
Q2FsbGJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uQ2FsbGJhY2suaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpS
VENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dEltcGw6OnJlcXVlc3RTdWNjZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uUmVxdWVzdEltcGw6OnJlcXVlc3RGYWlsZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNsZWFyKToKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmg6CisgICAg
ICAgIChSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbCk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJ
bXBsLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDVm9pZFJl
cXVlc3RJbXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDVm9pZFJlcXVlc3RJbXBs
OjpSVENWb2lkUmVxdWVzdEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6UlRDVm9pZFJlcXVlc3RJ
bXBsOjp+UlRDVm9pZFJlcXVlc3RJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1ZvaWRSZXF1
ZXN0SW1wbDo6cmVxdWVzdFN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpSVENWb2lkUmVx
dWVzdEltcGw6OnJlcXVlc3RGYWlsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDVm9pZFJlcXVl
c3RJbXBsOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1ZvaWRSZXF1ZXN0SW1wbDo6Y2xl
YXIpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uQ2FsbGJhY2suaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRD
Vm9pZFJlcXVlc3RJbXBsKToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENWb2lkUmVxdWVzdC5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyLmguCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENWb2lkUmVx
dWVzdDo6V2ViUlRDVm9pZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENWb2lkUmVx
dWVzdDo6YXNzaWduKToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDVm9pZFJlcXVlc3Q6OnJlc2V0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDVm9pZFJlcXVlc3Q6OnJlcXVlc3RTdWNjZWVkZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSVENWb2lkUmVxdWVzdDo6cmVxdWVzdEZhaWxlZCk6Cisg
ICAgICAgIChFeHRyYURhdGFDb250YWluZXIpOgorICAgICAgICAoV2ViS2l0OjpFeHRyYURhdGFD
b250YWluZXI6OkV4dHJhRGF0YUNvbnRhaW5lcik6CisgICAgICAgIChXZWJLaXQ6OkV4dHJhRGF0
YUNvbnRhaW5lcjo6ZXh0cmFEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDVm9pZFJlcXVl
c3Q6OmV4dHJhRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0OjpzZXRF
eHRyYURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlci5jcHA6CisgICAgICAgIChSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJEdW1teSk6
CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJEdW1teTo6c2V0TG9j
YWxEZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15OjpzZXRSZW1vdGVEZXNjcmlwdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJEdW1teTo6bG9jYWxEZXNjcmlw
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJEdW1teTo6
cmVtb3RlRGVzY3JpcHRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JU
Q1ZvaWRSZXF1ZXN0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDRXJyb3JDYWxsYmFjay5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChS
VENWb2lkUmVxdWVzdCk6CisgICAgICAgIChFeHRyYURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
UlRDVm9pZFJlcXVlc3Q6OkV4dHJhRGF0YTo6fkV4dHJhRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpSVENWb2lkUmVxdWVzdDo6flJUQ1ZvaWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1ZvaWRSZXF1ZXN0OjpleHRyYURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UlRDVm9pZFJlcXVl
c3Q6OnNldEV4dHJhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSVENWb2lkUmVxdWVzdDo6UlRD
Vm9pZFJlcXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpzZXRMb2NhbERlc2NyaXB0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyQ2hyb21pdW06OnNldFJlbW90ZURlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpsb2NhbERlc2NyaXB0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpyZW1vdGVEZXNj
cmlwdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlckNocm9taXVtKToKKwogMjAxMi0wOS0wNCAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlA
d2Via2l0Lm9yZz4KIAogICAgICAgICBNb3ZlIFBhZ2VQb3B1cENsaWVudCBpbXBsZW1lbnRhdGlv
biBmb3IgaW5wdXRbdHlwZT1kYXRlXSB0byBDaHJvbWl1bSBXZWJLaXQgbGF5ZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpIGIvU291cmNlL1BsYXRmb3JtL1BsYXRm
b3JtLmd5cGkKaW5kZXggYmFlYjk0NDRkNmExZWY0MzhhYTBiNjVhYTlhMWM4ZjYyOTZiM2YwMy4u
ZDk5ZDY3OGI1YmJmYTc0MGIzY2NmZGM4OWU0NThiNTUxODZkMzhmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKKysrIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3Jt
Lmd5cGkKQEAgLTEwOSw2ICsxMDksNyBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9X
ZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAnY2hyb21p
dW0vcHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCcsCiAgICAgICAg
ICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaCcs
CisgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJUQ1ZvaWRSZXF1ZXN0LmgnLAogICAg
ICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJSZWN0LmgnLAogICAgICAgICAgICAgJ2Nocm9t
aXVtL3B1YmxpYy9XZWJSZWZlcnJlclBvbGljeS5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9w
dWJsaWMvV2ViUmVuZGVyaW5nU3RhdHMuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oIGIvU291cmNlL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAppbmRl
eCBjOGYyZjEzNzUzYWYwODU4MTJmZDZkZGE0Mzg3ZDFhMjRjMTc0YjNjLi5mMWU3ZmM2ZjdhNTcx
ZDhlZDQxYWUxMDIxMjJjMzk0YmM0NGFlMjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCisrKyBiL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgK
QEAgLTM5LDYgKzM5LDcgQEAgY2xhc3MgV2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRvcjsKIGNs
YXNzIFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudDsKIGNsYXNzIFdlYlJUQ1Nlc3Np
b25EZXNjcmlwdGlvbkRlc2NyaXB0b3I7CiBjbGFzcyBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25S
ZXF1ZXN0OworY2xhc3MgV2ViUlRDVm9pZFJlcXVlc3Q7CiAKIGNsYXNzIFdlYlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlciB7CiBwdWJsaWM6CkBAIC00Nyw2ICs0OCwxMCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGluaXRpYWxpemUoY29uc3QgV2ViUlRDQ29uZmlndXJhdGlvbiYsIGNvbnN0
IFdlYk1lZGlhQ29uc3RyYWludHMmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2Zm
ZXIoY29uc3QgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCYsIGNvbnN0IFdlYk1lZGlh
Q29uc3RyYWludHMmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldExvY2FsRGVzY3JpcHRpb24o
Y29uc3QgV2ViUlRDVm9pZFJlcXVlc3QmLCBjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25E
ZXNjcmlwdG9yJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRSZW1vdGVEZXNjcmlwdGlvbihj
b25zdCBXZWJSVENWb2lkUmVxdWVzdCYsIGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRl
c2NyaXB0b3ImKSA9IDA7CisgICAgdmlydHVhbCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yIGxvY2FsRGVzY3JpcHRpb24oKSA9IDA7CisgICAgdmlydHVhbCBXZWJSVENTZXNzaW9u
RGVzY3JpcHRpb25EZXNjcmlwdG9yIHJlbW90ZURlc2NyaXB0aW9uKCkgPSAwOwogICAgIHZpcnR1
YWwgYm9vbCB1cGRhdGVJQ0UoY29uc3QgV2ViUlRDQ29uZmlndXJhdGlvbiYsIGNvbnN0IFdlYk1l
ZGlhQ29uc3RyYWludHMmKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGFkZElDRUNhbmRpZGF0ZShj
b25zdCBXZWJSVENJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yJikgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBhZGRTdHJlYW0oY29uc3QgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJiwgY29uc3QgV2ViTWVk
aWFDb25zdHJhaW50cyYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViUlRDVm9pZFJlcXVlc3QuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvV2ViUlRDVm9pZFJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjU2YmM2YzBhOGUyZDA1NDg0
MjhhN2UyOWJhMmRiMTU1OWIyMjFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJSVENWb2lkUmVxdWVzdC5oCkBAIC0wLDAgKzEsODcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFdlYlJUQ1ZvaWRSZXF1ZXN0X2gKKyNkZWZpbmUgV2ViUlRDVm9pZFJlcXVlc3RfaAorCisj
aW5jbHVkZSAiV2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViTm9uQ29weWFibGUuaCIKKyNpbmNs
dWRlICJXZWJQcml2YXRlUHRyLmgiCisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK2NsYXNzIFJUQ1ZvaWRSZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViUlRDVm9pZFJlcXVlc3QgeworcHVibGljOgorICAgIGNsYXNzIEV4dHJh
RGF0YSB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5FeHRyYURhdGEoKSB7IH0KKyAg
ICB9OworCisgICAgV2ViUlRDVm9pZFJlcXVlc3QoKSB7IH0KKyAgICBXZWJSVENWb2lkUmVxdWVz
dChjb25zdCBXZWJSVENWb2lkUmVxdWVzdCYgb3RoZXIpIHsgYXNzaWduKG90aGVyKTsgfQorICAg
IH5XZWJSVENWb2lkUmVxdWVzdCgpIHsgcmVzZXQoKTsgfQorCisgICAgV2ViUlRDVm9pZFJlcXVl
c3QmIG9wZXJhdG9yPShjb25zdCBXZWJSVENWb2lkUmVxdWVzdCYgb3RoZXIpCisgICAgeworICAg
ICAgICBhc3NpZ24ob3RoZXIpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAg
V0VCS0lUX0VYUE9SVCB2b2lkIGFzc2lnbihjb25zdCBXZWJSVENWb2lkUmVxdWVzdCYpOworCisg
ICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CisgICAgYm9vbCBpc051bGwoKSBjb25zdCB7
IHJldHVybiBtX3ByaXZhdGUuaXNOdWxsKCk7IH0KKworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBy
ZXF1ZXN0U3VjY2VlZGVkKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlcXVlc3RG
YWlsZWQoY29uc3QgV2ViU3RyaW5nJiBlcnJvcikgY29uc3Q7CisKKyAgICAvLyBFeHRyYSBkYXRh
IGFzc29jaWF0ZWQgd2l0aCB0aGlzIG9iamVjdC4KKyAgICAvLyBJZiBub24tbnVsbCwgdGhlIGV4
dHJhIGRhdGEgcG9pbnRlciB3aWxsIGJlIGRlbGV0ZWQgd2hlbiB0aGUgb2JqZWN0IGlzIGRlc3Ry
b3llZC4KKyAgICAvLyBTZXR0aW5nIHRoZSBleHRyYSBkYXRhIHBvaW50ZXIgd2lsbCBjYXVzZSBh
bnkgZXhpc3Rpbmcgbm9uLW51bGwKKyAgICAvLyBleHRyYSBkYXRhIHBvaW50ZXIgdG8gYmUgZGVs
ZXRlZC4KKyAgICBXRUJLSVRfRVhQT1JUIEV4dHJhRGF0YSogZXh0cmFEYXRhKCkgY29uc3Q7Cisg
ICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldEV4dHJhRGF0YShFeHRyYURhdGEqKTsKKworI2lmIFdF
QktJVF9JTVBMRU1FTlRBVElPTgorICAgIFdlYlJUQ1ZvaWRSZXF1ZXN0KGNvbnN0IFdURjo6UGFz
c1JlZlB0cjxXZWJDb3JlOjpSVENWb2lkUmVxdWVzdD4mKTsKKyNlbmRpZgorCitwcml2YXRlOgor
ICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6UlRDVm9pZFJlcXVlc3Q+IG1fcHJpdmF0ZTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViUlRDVm9pZFJlcXVlc3Rf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5NTM2MTVkMjlhMDNkNTgwMzNiZmQ3M2FiMGExNjAw
MzcxYTQyMTY4Li4yZGMwNGJiMWFhZjBlNmMxNjE2NTAyM2U1MjQwYmU0YjExOGMzMjg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtODYxLDYgKzg2MSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMK
ICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAogICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcAogICAgIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCisgICAgTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFDb250cm9sbGVyLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVx
dWVzdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGY2MjZkZmUyZTBmY2Rh
MDM4NjljOGYyZmNjMDEwNmVlYWViMzAxYjkuLjBhNGI2MWYxZTI5NmMxNTg5MGFjOWViZjYyY2I3
N2VlZTJiNjE3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTkzNiw2ICsx
OTM2LDggQEAgd2ViY29yZV9tb2R1bGVzX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaCBcCiAJU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1
ZXN0SW1wbC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmggXAogCVNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ2xpZW50LmggXApAQCAtNDU2NSw2
ICs0NTY3LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0LmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3IuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNzaW9u
RGVzY3JpcHRpb25EZXNjcmlwdG9yLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmggXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVh
bUNlbnRlckdTdHJlYW1lci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENFcnJvckNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0Vycm9yQ2FsbGJhY2suaAppbmRleCA2OTMxOTQ2OGVmMGUxM2IyNzgx
NDU3M2YxMTYxMTExOGU5MzE4MzIyLi42NDRlNTZmMGJlYTcwZDUzZTQ5ZjI4OWU0YWZmNjE1N2Rh
M2VmYmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q0Vycm9yQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ0Vycm9yQ2FsbGJhY2suaApAQCAtMzgsMTIgKzM4LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgUlRDUGVlckNvbm5lY3Rpb247Ci0KIGNsYXNzIFJUQ0Vycm9yQ2FsbGJh
Y2sgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENFcnJvckNhbGxiYWNrPiB7CiBwdWJsaWM6CiAgICAg
dmlydHVhbCB+UlRDRXJyb3JDYWxsYmFjaygpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVF
dmVudChjb25zdCBTdHJpbmcmIGVycm9ySW5mb3JtYXRpb24sIFJUQ1BlZXJDb25uZWN0aW9uKikg
PSAwOworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChjb25zdCBTdHJpbmcmIGVycm9ySW5m
b3JtYXRpb24pID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRXJyb3JDYWxsYmFjay5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9yQ2FsbGJhY2suaWRs
CmluZGV4IDRlNDBkMTRkYWUxN2RkYmQwYTYzZmFmNjdkYjg4MmE0YmFiM2NjMjUuLjgxMmUyNzQ0
ZjJhNjQ2MzU5NDA1Y2FhM2VmMWY5MThjZWI3Y2ZjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRXJyb3JDYWxsYmFjay5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFcnJvckNhbGxiYWNrLmlkbApAQCAtMzQs
NyArMzQsNyBAQCBtb2R1bGUgbWVkaWFzdHJlYW0gewogICAgICAgICBDb25kaXRpb25hbD1NRURJ
QV9TVFJFQU0sCiAgICAgICAgIENhbGxiYWNrCiAgICAgXSBSVENFcnJvckNhbGxiYWNrIHsKLSAg
ICAgICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBET01TdHJpbmcgZXJyb3JJbmZvcm1hdGlvbiwg
aW4gUlRDUGVlckNvbm5lY3Rpb24gc291cmNlKTsKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVu
dChpbiBET01TdHJpbmcgZXJyb3JJbmZvcm1hdGlvbik7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LmNwcAppbmRleCBkZmJjODliY2VhZDUxMjM1Yjc4MDhlYjAyMzc5MDczZDI0ZTUyM2MxLi5iNWQ4
MjU3NmVmZDY5Y2RlYWNhODgyNzZmODM5NDg5ZWQ1YzhjYjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApA
QCAtNDgsNyArNDgsOSBAQAogI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNr
LmgiCiAjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oIgogI2luY2x1
ZGUgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmgiCisjaW5jbHVkZSAiUlRDVm9p
ZFJlcXVlc3RJbXBsLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2lu
Y2x1ZGUgIlZvaWRDYWxsYmFjay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTE1MSwx
MCArMTUzLDc0IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmNyZWF0ZU9mZmVyKFBhc3NSZWZQ
dHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+IHN1CiAgICAgaWYgKGVjKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw+
IHJlcXVlc3QgPSBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y3JlYXRlKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCB0aGlz
KTsKKyAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw+IHJlcXVlc3Qg
PSBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKICAgICBtX3BlZXJI
YW5kbGVyLT5jcmVhdGVPZmZlcihyZXF1ZXN0LnJlbGVhc2UoKSwgY29uc3RyYWludHMpOwogfQog
Cit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpzZXRMb2NhbERlc2NyaXB0aW9uKFBhc3NSZWZQdHI8
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBwcnBTZXNzaW9uRGVzY3JpcHRpb24sIFBhc3NSZWZQdHI8
Vm9pZENhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFj
az4gZXJyb3JDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKG1fcmVhZHlT
dGF0ZSA9PSBSZWFkeVN0YXRlQ2xvc2luZyB8fCBtX3JlYWR5U3RhdGUgPT0gUmVhZHlTdGF0ZUNs
b3NlZCkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gc2Vzc2lvbkRlc2Ny
aXB0aW9uID0gcHJwU2Vzc2lvbkRlc2NyaXB0aW9uOworICAgIGlmICghc2Vzc2lvbkRlc2NyaXB0
aW9uKSB7CisgICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9FUlI7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBSZWZQdHI8UlRDVm9pZFJlcXVlc3RJbXBsPiByZXF1ZXN0ID0gUlRDVm9p
ZFJlcXVlc3RJbXBsOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdWNjZXNzQ2Fs
bGJhY2ssIGVycm9yQ2FsbGJhY2spOworICAgIG1fcGVlckhhbmRsZXItPnNldExvY2FsRGVzY3Jp
cHRpb24ocmVxdWVzdC5yZWxlYXNlKCksIHNlc3Npb25EZXNjcmlwdGlvbi0+ZGVzY3JpcHRvcigp
KTsKK30KKworUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IFJUQ1BlZXJDb25uZWN0
aW9uOjpsb2NhbERlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX3Jl
YWR5U3RhdGUgPT0gUmVhZHlTdGF0ZUNsb3NpbmcgfHwgbV9yZWFkeVN0YXRlID09IFJlYWR5U3Rh
dGVDbG9zZWQpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgfQorCisgICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3I+IGRlc2NyaXB0b3IgPSBtX3BlZXJIYW5kbGVyLT5sb2NhbERlc2NyaXB0aW9uKCk7CisgICAg
aWYgKCFkZXNjcmlwdG9yKQorICAgICAgICByZXR1cm4gMDsKKworICAgIFJlZlB0cjxSVENTZXNz
aW9uRGVzY3JpcHRpb24+IGRlc2MgPSBSVENTZXNzaW9uRGVzY3JpcHRpb246OmNyZWF0ZShkZXNj
cmlwdG9yLnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIGRlc2MucmVsZWFzZSgpOworfQorCit2b2lk
IFJUQ1BlZXJDb25uZWN0aW9uOjpzZXRSZW1vdGVEZXNjcmlwdGlvbihQYXNzUmVmUHRyPFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbj4gcHJwU2Vzc2lvbkRlc2NyaXB0aW9uLCBQYXNzUmVmUHRyPFZvaWRD
YWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+IGVy
cm9yQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX3JlYWR5U3RhdGUg
PT0gUmVhZHlTdGF0ZUNsb3NpbmcgfHwgbV9yZWFkeVN0YXRlID09IFJlYWR5U3RhdGVDbG9zZWQp
IHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IHNlc3Npb25EZXNjcmlwdGlv
biA9IHBycFNlc3Npb25EZXNjcmlwdGlvbjsKKyAgICBpZiAoIXNlc3Npb25EZXNjcmlwdGlvbikg
eworICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0SW1wbD4gcmVxdWVzdCA9IFJUQ1ZvaWRSZXF1
ZXN0SW1wbDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc3VjY2Vzc0NhbGxiYWNr
LCBlcnJvckNhbGxiYWNrKTsKKyAgICBtX3BlZXJIYW5kbGVyLT5zZXRSZW1vdGVEZXNjcmlwdGlv
bihyZXF1ZXN0LnJlbGVhc2UoKSwgc2Vzc2lvbkRlc2NyaXB0aW9uLT5kZXNjcmlwdG9yKCkpOwor
fQorCitQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gUlRDUGVlckNvbm5lY3Rpb246
OnJlbW90ZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX3JlYWR5
U3RhdGUgPT0gUmVhZHlTdGF0ZUNsb3NpbmcgfHwgbV9yZWFkeVN0YXRlID09IFJlYWR5U3RhdGVD
bG9zZWQpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgfQorCisgICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+
IGRlc2NyaXB0b3IgPSBtX3BlZXJIYW5kbGVyLT5yZW1vdGVEZXNjcmlwdGlvbigpOworICAgIGlm
ICghZGVzY3JpcHRvcikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8UlRDU2Vzc2lv
bkRlc2NyaXB0aW9uPiBkZXNjID0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpjcmVhdGUoZGVzY3Jp
cHRvci5yZWxlYXNlKCkpOworICAgIHJldHVybiBkZXNjLnJlbGVhc2UoKTsKK30KKwogdm9pZCBS
VENQZWVyQ29ubmVjdGlvbjo6dXBkYXRlSWNlKGNvbnN0IERpY3Rpb25hcnkmIHJ0Y0NvbmZpZ3Vy
YXRpb24sIGNvbnN0IERpY3Rpb25hcnkmIG1lZGlhQ29uc3RyYWludHMsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewogICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gUmVhZHlTdGF0ZUNsb3NpbmcgfHwgbV9y
ZWFkeVN0YXRlID09IFJlYWR5U3RhdGVDbG9zZWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAppbmRleCBkNGM0Y2Rm
ZDIxMTM4NTg0ZWM5ZmViNmM3MmQ2ODkzNjdkMGNiZTUzLi45NzZhYmRjNmQyNTkxNzIzMjcyZmRj
ODY2YTU5NWE3YTg3YWQ3ZDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCkBAIC00OSw3ICs0OSw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIE1lZGlhQ29uc3RyYWludHM7CiBjbGFzcyBSVENDb25maWd1
cmF0aW9uOwogY2xhc3MgUlRDRXJyb3JDYWxsYmFjazsKK2NsYXNzIFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbjsKIGNsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrOworY2xhc3MgVm9pZENh
bGxiYWNrOwogCiBjbGFzcyBSVENQZWVyQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFJU
Q1BlZXJDb25uZWN0aW9uPiwgcHVibGljIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCwg
cHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoKQEAg
LTU4LDYgKzYwLDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY3JlYXRlT2ZmZXIoUGFzc1JlZlB0
cjxSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxs
YmFjaz4sIGNvbnN0IERpY3Rpb25hcnkmIG1lZGlhQ29uc3RyYWludHMsIEV4Y2VwdGlvbkNvZGUm
KTsKIAorICAgIHZvaWQgc2V0TG9jYWxEZXNjcmlwdGlvbihQYXNzUmVmUHRyPFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbj4sIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiwgUGFzc1JlZlB0cjxSVENFcnJv
ckNhbGxiYWNrPiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uPiBsb2NhbERlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUmKTsKKworICAgIHZvaWQg
c2V0UmVtb3RlRGVzY3JpcHRpb24oUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+LCBQ
YXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4sIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gcmVt
b3RlRGVzY3JpcHRpb24oRXhjZXB0aW9uQ29kZSYpOworCiAgICAgU3RyaW5nIHJlYWR5U3RhdGUo
KSBjb25zdDsKIAogICAgIHZvaWQgdXBkYXRlSWNlKGNvbnN0IERpY3Rpb25hcnkmIHJ0Y0NvbmZp
Z3VyYXRpb24sIGNvbnN0IERpY3Rpb25hcnkmIG1lZGlhQ29uc3RyYWludHMsIEV4Y2VwdGlvbkNv
ZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5pZGwKaW5kZXggMDJmYTM0NTQ4ZGRjMmMxODA3OGM3YjI0OTc4NmVi
ODI3YWI4ZTE0ZC4uOWVlNWUwMTk5YjdlZWQwMGI2NTdmZmUxMWViYTZlOGQzYjBiYmNmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5pZGwKQEAgLTQxLDYgKzQxLDE2IEBAIG1vZHVsZSBtZWRpYXN0cmVhbSB7CiAg
ICAgICAgIHZvaWQgY3JlYXRlT2ZmZXIoaW4gW0NhbGxiYWNrXSBSVENTZXNzaW9uRGVzY3JpcHRp
b25DYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIGluIFtDYWxsYmFjayxPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIFJUQ0Vycm9yQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBEaWN0aW9uYXJ5IG1lZGlhQ29uc3RyYWludHMpCiAgICAg
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAorICAgICAgICB2b2lkIHNldExvY2FsRGVz
Y3JpcHRpb24oaW4gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCBpbiBbQ2FsbGJh
Y2ssIE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gVm9pZENhbGxiYWNrIHN1Y2Nlc3NDYWxs
YmFjaywgaW4gW0NhbGxiYWNrLCBPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFJUQ0Vycm9y
Q2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrKQorICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENTZXNzaW9uRGVzY3JpcHRpb24gbG9j
YWxEZXNjcmlwdGlvbgorICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwor
CisgICAgICAgIHZvaWQgc2V0UmVtb3RlRGVzY3JpcHRpb24oaW4gUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uIGRlc2NyaXB0aW9uLCBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gVm9pZENhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgaW4gW0NhbGxiYWNrLCBPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIFJUQ0Vycm9yQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrKQorICAg
ICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBSVENTZXNzaW9uRGVzY3JpcHRpb24gcmVtb3RlRGVzY3JpcHRpb24KKyAgICAgICAgICAgIGdl
dHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHJlYWR5U3RhdGU7CiAKICAgICAgICAgdm9pZCB1cGRhdGVJY2UoaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRGljdGlvbmFyeSBjb25maWd1cmF0aW9uLCBpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBEaWN0aW9uYXJ5IG1lZGlhQ29uc3RyYWludHMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmgKaW5kZXggMWExZTBhOTkxM2U2NmU2Mzgy
N2NjNzg2ODcxNGZlM2QzZjVhZjE1ZS4uMDZlZTA3MWM0NTU4ZDM0ZGFjYTk3ZjJjZTU3ZTU0YTg3
MWJhYzgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaApAQCAtMzcsMTMg
KzM3LDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUlRDUGVlckNvbm5lY3Rp
b247CiBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb247CiAKIGNsYXNzIFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbkNhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDU2Vzc2lvbkRlc2NyaXB0aW9u
Q2FsbGJhY2s+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SVENTZXNzaW9uRGVzY3JpcHRpb25D
YWxsYmFjaygpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChSVENTZXNzaW9uRGVz
Y3JpcHRpb24qLCBSVENQZWVyQ29ubmVjdGlvbiopID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaGFu
ZGxlRXZlbnQoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmlkbAppbmRleCA0
YTUzNmQ0ZDljMjgxMDk5MDAxZjczMjVlZWFhYzA0NzYxYjVlMDM3Li41YmU3NWU5MjA5OTMwNmIy
NDMxZmVjYTExNWRlYmNjOTQ4ODMyOWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNh
bGxiYWNrLmlkbApAQCAtMzQsNyArMzQsNyBAQCBtb2R1bGUgbWVkaWFzdHJlYW0gewogICAgICAg
ICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCiAgICAgICAgIENhbGxiYWNrCiAgICAgXSBSVENT
ZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjayB7Ci0gICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQo
aW4gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uIHNkcCwgaW4gUlRDUGVlckNvbm5lY3Rpb24gc291cmNl
KTsKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBSVENTZXNzaW9uRGVzY3JpcHRpb24g
c2RwKTsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdElt
cGwuY3BwCmluZGV4IGViODhlNjI1N2UxZGI1ZGM5MWQ4MzdlOGVhZDEyM2Y1Y2YyNjZkNjIuLjIz
YzU1M2ExNjQ5ZGVlYzA5OWEwZDdiYmMwYTUwNmI2Njk0MGI5ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCkBAIC00MiwxOCArNDIsMTcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3RJbXBsPiBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9u
Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxSVENFcnJvckNhbGxiYWNrPiBl
cnJvckNhbGxiYWNrLCBQYXNzUmVmUHRyPFJUQ1BlZXJDb25uZWN0aW9uPiBvd25lcikKK1Bhc3NS
ZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw+IFJUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3RJbXBsOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
UGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNr
LCBQYXNzUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCiB7Ci0gICAgUmVm
UHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsPiByZXF1ZXN0ID0gYWRvcHRSZWYo
bmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsKGNvbnRleHQsIHN1Y2Nlc3NDYWxs
YmFjaywgZXJyb3JDYWxsYmFjaywgb3duZXIpKTsKKyAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdEltcGw+IHJlcXVlc3QgPSBhZG9wdFJlZihuZXcgUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdEltcGwoY29udGV4dCwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNr
KSk7CiAgICAgcmVxdWVzdC0+c3VzcGVuZElmTmVlZGVkKCk7CiAgICAgcmV0dXJuIHJlcXVlc3Qu
cmVsZWFzZSgpOwogfQogCi1SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6UlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaz4gc3VjY2Vzc0NhbGxi
YWNrLCBQYXNzUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2ssIFBhc3NSZWZQ
dHI8UlRDUGVlckNvbm5lY3Rpb24+IG93bmVyKQorUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dEltcGw6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+
IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxSVENFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxi
YWNrKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCiAgICAgLCBtX3N1Y2Nl
c3NDYWxsYmFjayhzdWNjZXNzQ2FsbGJhY2spCiAgICAgLCBtX2Vycm9yQ2FsbGJhY2soZXJyb3JD
YWxsYmFjaykKLSAgICAsIG1fb3duZXIob3duZXIpCiB7CiB9CiAKQEAgLTY1LDcgKzY0LDcgQEAg
dm9pZCBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6cmVxdWVzdFN1Y2NlZWRlZChQ
YXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXMKIHsKICAgICBpZiAobV9zdWNjZXNzQ2FsbGJhY2spIHsK
ICAgICAgICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gc2Vzc2lvbkRlc2NyaXB0aW9u
ID0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpjcmVhdGUoZGVzY3JpcHRvcik7Ci0gICAgICAgIG1f
c3VjY2Vzc0NhbGxiYWNrLT5oYW5kbGVFdmVudChzZXNzaW9uRGVzY3JpcHRpb24uZ2V0KCksIG1f
b3duZXIuZ2V0KCkpOworICAgICAgICBtX3N1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQoc2Vz
c2lvbkRlc2NyaXB0aW9uLmdldCgpKTsKICAgICB9CiAKICAgICBjbGVhcigpOwpAQCAtNzQsNyAr
NzMsNyBAQCB2b2lkIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpyZXF1ZXN0U3Vj
Y2VlZGVkKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlcwogdm9pZCBSVENTZXNzaW9uRGVzY3JpcHRp
b25SZXF1ZXN0SW1wbDo6cmVxdWVzdEZhaWxlZChjb25zdCBTdHJpbmcmIGVycm9yKQogewogICAg
IGlmIChtX2Vycm9yQ2FsbGJhY2spCi0gICAgICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZl
bnQoZXJyb3IsIG1fb3duZXIuZ2V0KCkpOworICAgICAgICBtX2Vycm9yQ2FsbGJhY2stPmhhbmRs
ZUV2ZW50KGVycm9yKTsKIAogICAgIGNsZWFyKCk7CiB9CkBAIC04OCw3ICs4Nyw2IEBAIHZvaWQg
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNsZWFyKCkKIHsKICAgICBtX3N1Y2Nl
c3NDYWxsYmFjay5jbGVhcigpOwogICAgIG1fZXJyb3JDYWxsYmFjay5jbGVhcigpOwotICAgIG1f
b3duZXIuY2xlYXIoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25S
ZXF1ZXN0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oCmluZGV4IDc0YWViZmM5OGI4MTEyZmUyZmM4ODE5
NTUzYzgyNDhjNjU5Y2Y0YWEuLmQxYmNlZTAxMzUxM2FhNjdjMmIwNzZhOTA1MDFlY2U4NTYyZTE2
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmgKQEAgLTQ0LDcg
KzQ0LDcgQEAgY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s7CiAKIGNsYXNzIFJU
Q1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsIDogcHVibGljIFJUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3QsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsPiBjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2Fs
bGJhY2s+LCBQYXNzUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFJUQ1BlZXJD
b25uZWN0aW9uPik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdEltcGw+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxS
VENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFj
az4pOwogICAgIHZpcnR1YWwgflJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsKCk7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZChQYXNzUmVmUHRyPFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkRlc2NyaXB0b3I+KSBPVkVSUklERTsKQEAgLTU0LDEzICs1NCwxMiBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKIAogcHJpdmF0ZToKLSAgICBS
VENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
UGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRD
RXJyb3JDYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDUGVlckNvbm5lY3Rpb24+KTsKKyAgICBSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFz
c1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDRXJy
b3JDYWxsYmFjaz4pOwogCiAgICAgdm9pZCBjbGVhcigpOwogCiAgICAgUmVmUHRyPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbkNhbGxiYWNrPiBtX3N1Y2Nlc3NDYWxsYmFjazsKICAgICBSZWZQdHI8UlRD
RXJyb3JDYWxsYmFjaz4gbV9lcnJvckNhbGxiYWNrOwotICAgIFJlZlB0cjxSVENQZWVyQ29ubmVj
dGlvbj4gbV9vd25lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBs
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jYWU3NjEzN2U3NGZjNTQwNzA4MmYxNjVmNTU1OTM1OGExNTNiNmNi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENWb2lkUmVxdWVzdEltcGwuY3BwCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0
aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiUlRDVm9p
ZFJlcXVlc3RJbXBsLmgiCisKKyNpbmNsdWRlICJSVENFcnJvckNhbGxiYWNrLmgiCisjaW5jbHVk
ZSAiUlRDUGVlckNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0SW1wbD4gUlRDVm9p
ZFJlcXVlc3RJbXBsOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFz
c1JlZlB0cjxWb2lkQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxSVENFcnJv
ckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQoreworICAgIFJlZlB0cjxSVENWb2lkUmVxdWVzdElt
cGw+IHJlcXVlc3QgPSBhZG9wdFJlZihuZXcgUlRDVm9pZFJlcXVlc3RJbXBsKGNvbnRleHQsIHN1
Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaykpOworICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5l
ZWRlZCgpOworICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKK30KKworUlRDVm9pZFJlcXVl
c3RJbXBsOjpSVENWb2lkUmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxS
VENFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNv
bnRleHQsIHRoaXMpCisgICAgLCBtX3N1Y2Nlc3NDYWxsYmFjayhzdWNjZXNzQ2FsbGJhY2spCisg
ICAgLCBtX2Vycm9yQ2FsbGJhY2soZXJyb3JDYWxsYmFjaykKK3sKK30KKworUlRDVm9pZFJlcXVl
c3RJbXBsOjp+UlRDVm9pZFJlcXVlc3RJbXBsKCkKK3sKK30KKwordm9pZCBSVENWb2lkUmVxdWVz
dEltcGw6OnJlcXVlc3RTdWNjZWVkZWQoKQoreworICAgIGlmIChtX3N1Y2Nlc3NDYWxsYmFjaykK
KyAgICAgICAgbV9zdWNjZXNzQ2FsbGJhY2stPmhhbmRsZUV2ZW50KCk7CisKKyAgICBjbGVhcigp
OworfQorCit2b2lkIFJUQ1ZvaWRSZXF1ZXN0SW1wbDo6cmVxdWVzdEZhaWxlZChjb25zdCBTdHJp
bmcmIGVycm9yKQoreworICAgIGlmIChtX2Vycm9yQ2FsbGJhY2suZ2V0KCkpCisgICAgICAgIG1f
ZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoZXJyb3IpOworCisgICAgY2xlYXIoKTsKK30KKwor
dm9pZCBSVENWb2lkUmVxdWVzdEltcGw6OnN0b3AoKQoreworICAgIGNsZWFyKCk7Cit9CisKK3Zv
aWQgUlRDVm9pZFJlcXVlc3RJbXBsOjpjbGVhcigpCit7CisgICAgbV9zdWNjZXNzQ2FsbGJhY2su
Y2xlYXIoKTsKKyAgICBtX2Vycm9yQ2FsbGJhY2suY2xlYXIoKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjY1N2FiZmM3YzZiMzI5MmE1MzM0YzQxOWNmMmE0N2UyOTJmNzJjYjYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Zv
aWRSZXF1ZXN0SW1wbC5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgor
ICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1ZvaWRS
ZXF1ZXN0SW1wbF9oCisjZGVmaW5lIFJUQ1ZvaWRSZXF1ZXN0SW1wbF9oCisKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAi
UlRDVm9pZFJlcXVlc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENFcnJv
ckNhbGxiYWNrOworY2xhc3MgVm9pZENhbGxiYWNrOworCitjbGFzcyBSVENWb2lkUmVxdWVzdElt
cGwgOiBwdWJsaWMgUlRDVm9pZFJlcXVlc3QsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0SW1wbD4gY3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4sIFBhc3NSZWZQ
dHI8UlRDRXJyb3JDYWxsYmFjaz4pOworICAgIHZpcnR1YWwgflJUQ1ZvaWRSZXF1ZXN0SW1wbCgp
OworCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdEZhaWxlZChjb25zdCBTdHJpbmcmIGVycm9yKTsKKworICAgIC8vIEFjdGl2ZURP
TU9iamVjdAorICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CisKK3ByaXZhdGU6Cisg
ICAgUlRDVm9pZFJlcXVlc3RJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRy
PFZvaWRDYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4pOworCisgICAgdm9p
ZCBjbGVhcigpOworCisgICAgUmVmUHRyPFZvaWRDYWxsYmFjaz4gbV9zdWNjZXNzQ2FsbGJhY2s7
CisgICAgUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+IG1fZXJyb3JDYWxsYmFjazsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNlbmRpZiAvLyBSVENWb2lkUmVxdWVzdEltcGxfaAorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA5
MWM0NDYxN2EwN2E1ZTMzOTJlM2IxMWQ1N2U3ZTczZjI4ZmUzZjU0Li42ZDc4MTljYjIyYmI5MzFh
ZTA1YTViZGJhNTlhNWM0MGRlYzQ4MDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00NjUsNiArNDY1
LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3Jp
cHRpb25EZXNjcmlwdG9yLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0v
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0LmgnLAorICAgICAgICAg
ICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0LmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL01l
ZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW0uY3BwJywKQEAgLTE2MTksNiArMTYyMCw4IEBACiAgICAg
ICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFj
ay5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3RJbXBsLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oJywKKyAgICAgICAgICAgICdNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAnLAorICAgICAgICAgICAgJ01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmgnLAogICAgICAgICAgICAgJ01vZHVs
ZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCcsCiAgICAgICAgICAgICAnTW9k
dWxlcy9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uaCcsCiAgICAgICAgICAgICAnTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGllbnQuaCcsCkBAIC04MzQ4LDYgKzgzNTEsNyBA
QAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDSUNFQ2FuZGlk
YXRlRGVzY3JpcHRvci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBv
cnQvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dC5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDVm9p
ZFJlcXVlc3QuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dl
YlNjcm9sbGJhclRoZW1lR2VvbWV0cnlOYXRpdmUuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9jaHJvbWl1bS9zdXBwb3J0L1dlYlNjcm9sbGJhclRoZW1lR2VvbWV0cnlOYXRpdmUuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJTY3JvbGxiYXJJbXBsLmNw
cCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L1dlYlJUQ1ZvaWRSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L3N1cHBvcnQvV2ViUlRDVm9pZFJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlMjQyMTkzYmFkZWZl
ZTUyZjQ4NWFkMzg2ZThhODA5NGZjMDVlMmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1ZvaWRSZXF1ZXN0LmNwcApAQCAt
MCwwICsxLDk3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKworI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENWb2lkUmVxdWVzdC5oPgorCisjaW5jbHVkZSAi
UlRDVm9pZFJlcXVlc3QuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlJUQ1ZvaWRSZXF1
ZXN0OjpXZWJSVENWb2lkUmVxdWVzdChjb25zdCBQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0PiYg
Y29uc3RyYWludHMpCisgICAgOiBtX3ByaXZhdGUoY29uc3RyYWludHMpCit7Cit9CisKK3ZvaWQg
V2ViUlRDVm9pZFJlcXVlc3Q6OmFzc2lnbihjb25zdCBXZWJSVENWb2lkUmVxdWVzdCYgb3RoZXIp
Cit7CisgICAgbV9wcml2YXRlID0gb3RoZXIubV9wcml2YXRlOworfQorCit2b2lkIFdlYlJUQ1Zv
aWRSZXF1ZXN0OjpyZXNldCgpCit7CisgICAgbV9wcml2YXRlLnJlc2V0KCk7Cit9CisKK3ZvaWQg
V2ViUlRDVm9pZFJlcXVlc3Q6OnJlcXVlc3RTdWNjZWVkZWQoKSBjb25zdAoreworICAgIEFTU0VS
VChtX3ByaXZhdGUuZ2V0KCkpOworICAgIG1fcHJpdmF0ZS0+cmVxdWVzdFN1Y2NlZWRlZCgpOwor
fQorCit2b2lkIFdlYlJUQ1ZvaWRSZXF1ZXN0OjpyZXF1ZXN0RmFpbGVkKGNvbnN0IFdlYlN0cmlu
ZyYgZXJyb3IpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fcHJpdmF0ZS5nZXQoKSk7CisgICAgbV9w
cml2YXRlLT5yZXF1ZXN0RmFpbGVkKGVycm9yKTsKK30KKworY2xhc3MgRXh0cmFEYXRhQ29udGFp
bmVyIDogcHVibGljIFdlYkNvcmU6OlJUQ1ZvaWRSZXF1ZXN0OjpFeHRyYURhdGEgeworcHVibGlj
OgorICAgIEV4dHJhRGF0YUNvbnRhaW5lcihXZWJSVENWb2lkUmVxdWVzdDo6RXh0cmFEYXRhKiBl
eHRyYURhdGEpIDogbV9leHRyYURhdGEoV1RGOjphZG9wdFB0cihleHRyYURhdGEpKSB7IH0KKwor
ICAgIFdlYlJUQ1ZvaWRSZXF1ZXN0OjpFeHRyYURhdGEqIGV4dHJhRGF0YSgpIHsgcmV0dXJuIG1f
ZXh0cmFEYXRhLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgT3duUHRyPFdlYlJUQ1ZvaWRSZXF1
ZXN0OjpFeHRyYURhdGE+IG1fZXh0cmFEYXRhOworfTsKKworV2ViUlRDVm9pZFJlcXVlc3Q6OkV4
dHJhRGF0YSogV2ViUlRDVm9pZFJlcXVlc3Q6OmV4dHJhRGF0YSgpIGNvbnN0Cit7CisgICAgUmVm
UHRyPFJUQ1ZvaWRSZXF1ZXN0OjpFeHRyYURhdGE+IGRhdGEgPSBtX3ByaXZhdGUtPmV4dHJhRGF0
YSgpOworICAgIGlmICghZGF0YSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEV4dHJhRGF0YUNvbnRhaW5lcio+KGRhdGEuZ2V0KCkpLT5leHRyYURhdGEoKTsKK30K
Kwordm9pZCBXZWJSVENWb2lkUmVxdWVzdDo6c2V0RXh0cmFEYXRhKEV4dHJhRGF0YSogZXh0cmFE
YXRhKQoreworICAgIG1fcHJpdmF0ZS0+c2V0RXh0cmFEYXRhKGFkb3B0UmVmKG5ldyBFeHRyYURh
dGFDb250YWluZXIoZXh0cmFEYXRhKSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXIuY3BwCmluZGV4IDg1ZDAyNjJjMzdkNjkxZDRhNjU4YWRlNWJjNmQwNGQ5NzkxYzhlZDEuLjVh
NmU3ZGNjMDUxMjdmMjUyNDNiY2JhNzQ1ZGZmYmVmMDc4NmRiNDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyLmNwcApAQCAtNDksNiArNDksMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBpbml0aWFsaXplKFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4sIFBhc3NSZWZQdHI8
TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9m
ZmVyKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdD4sIFBhc3NSZWZQdHI8
TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbERl
c2NyaXB0aW9uKFBhc3NSZWZQdHI8UlRDVm9pZFJlcXVlc3Q+LCBQYXNzUmVmUHRyPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
UmVtb3RlRGVzY3JpcHRpb24oUGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdD4sIFBhc3NSZWZQdHI8
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4pIE9WRVJSSURFOworICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiBsb2NhbERlc2NyaXB0
aW9uKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3I+IHJlbW90ZURlc2NyaXB0aW9uKCkgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBib29sIHVwZGF0ZUljZShQYXNzUmVmUHRyPFJUQ0NvbmZpZ3VyYXRpb24+LCBQYXNzUmVmUHRy
PE1lZGlhQ29uc3RyYWludHM+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYWRkSWNlQ2Fu
ZGlkYXRlKFBhc3NSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4pIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgYm9vbCBhZGRTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0
b3I+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSBPVkVSUklERTsKQEAgLTgzLDYgKzg3
LDI0IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyRHVtbXk6OmNyZWF0ZU9mZmVyKFBh
c3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uCiB7CiB9CiAKK3ZvaWQgUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyRHVtbXk6OnNldExvY2FsRGVzY3JpcHRpb24oUGFzc1JlZlB0cjxSVENWb2lk
UmVxdWVzdD4sIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4pCit7
Cit9CisKK3ZvaWQgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyRHVtbXk6OnNldFJlbW90ZURlc2Ny
aXB0aW9uKFBhc3NSZWZQdHI8UlRDVm9pZFJlcXVlc3Q+LCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkRlc2NyaXB0b3I+KQoreworfQorCitQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbkRlc2NyaXB0b3I+IFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15Ojpsb2NhbERl
c2NyaXB0aW9uKCkKK3sKKyAgICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxSVENTZXNzaW9u
RGVzY3JpcHRpb25EZXNjcmlwdG9yPiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJEdW1teTo6cmVt
b3RlRGVzY3JpcHRpb24oKQoreworICAgIHJldHVybiAwOworfQorCiBib29sIFJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlckR1bW15OjphZGRTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2Ny
aXB0b3I+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KQogewogICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKaW5kZXggMGM3MzBiMmFjZDhiODA1NTFlMmFh
MDA1ZGRhMWIwMDk3YjFmNDFhNS4uYTQzMGE3MWE2MTY3YjVlYjQxNWJhNzY2ZTNkOTg2N2Y0MmNh
MTEwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgY2xh
c3MgUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjsKIGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlckNsaWVudDsKIGNsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I7CiBjbGFz
cyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OworY2xhc3MgUlRDVm9pZFJlcXVlc3Q7CiAK
IGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciB7CiBwdWJsaWM6CkBAIC01NCw2ICs1NSwx
MCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGluaXRpYWxpemUoUGFzc1JlZlB0cjxSVEND
b25maWd1cmF0aW9uPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgPSAwOwogCiAgICAg
dmlydHVhbCB2b2lkIGNyZWF0ZU9mZmVyKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdD4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0TG9jYWxEZXNjcmlwdGlvbihQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0PiwgUGFz
c1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzZXRSZW1vdGVEZXNjcmlwdGlvbihQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0Piwg
UGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPikgPSAwOworICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiBsb2NhbERl
c2NyaXB0aW9uKCkgPSAwOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3Jp
cHRpb25EZXNjcmlwdG9yPiByZW1vdGVEZXNjcmlwdGlvbigpID0gMDsKICAgICB2aXJ0dWFsIGJv
b2wgdXBkYXRlSWNlKFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4sIFBhc3NSZWZQdHI8TWVk
aWFDb25zdHJhaW50cz4pID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgYWRkSWNlQ2FuZGlkYXRlKFBh
c3NSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4pID0gMDsKICAgICB2aXJ0dWFsIGJv
b2wgYWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiwgUGFzc1JlZlB0
cjxNZWRpYUNvbnN0cmFpbnRzPikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjNlMzlmYTA5ODM3
YjIxYzFjNzE3ZjJhMTZmZGM1YjUxNGQ3OTA2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0LmgKQEAgLTAsMCArMSw2
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiAg
ICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCisg
KiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgUlRDVm9pZFJlcXVlc3RfaAorI2RlZmluZSBSVENWb2lkUmVx
dWVzdF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBSVENWb2lkUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1ZvaWRS
ZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgY2xhc3MgRXh0cmFEYXRhIDogcHVibGljIFJlZkNvdW50
ZWQ8RXh0cmFEYXRhPiB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5FeHRyYURhdGEo
KSB7IH0KKyAgICB9OworCisgICAgdmlydHVhbCB+UlRDVm9pZFJlcXVlc3QoKSB7IH0KKworICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0RmFpbGVkKGNvbnN0IFN0cmluZyYgZXJyb3IpID0gMDsKKworICAgIFBhc3NSZWZQdHI8
RXh0cmFEYXRhPiBleHRyYURhdGEoKSBjb25zdCB7IHJldHVybiBtX2V4dHJhRGF0YTsgfQorICAg
IHZvaWQgc2V0RXh0cmFEYXRhKFBhc3NSZWZQdHI8RXh0cmFEYXRhPiBleHRyYURhdGEpIHsgbV9l
eHRyYURhdGEgPSBleHRyYURhdGE7IH0KKworcHJvdGVjdGVkOgorICAgIFJUQ1ZvaWRSZXF1ZXN0
KCkgeyB9CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPEV4dHJhRGF0YT4gbV9leHRyYURhdGE7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjZW5kaWYgLy8gUlRDVm9pZFJlcXVlc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hy
b21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3BwCmluZGV4IGEwMDIyMDI3
YTJlMmVjY2I5ZWNlZWVjYjkwZjQyMTNjZDEzZDI3ZDkuLjIyNTA3MTBlNzAwNThkNTQzNzE0NDI2
ZDg3NWUyY2I2NmFmOWIxMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRl
IDxwdWJsaWMvV2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRvci5oPgogI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmg+CiAjaW5jbHVkZSA8cHVibGlj
L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2Vi
UlRDVm9pZFJlcXVlc3QuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC04MSw2ICs4MiwyMiBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlckNocm9taXVtOjpjcmVhdGVPZmZlcihQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdAog
ICAgIG1fd2ViSGFuZGxlci0+Y3JlYXRlT2ZmZXIocmVxdWVzdCwgY29uc3RyYWludHMpOwogfQog
Cit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpzZXRMb2NhbERlc2NyaXB0
aW9uKFBhc3NSZWZQdHI8UlRDVm9pZFJlcXVlc3Q+IHJlcXVlc3QsIFBhc3NSZWZQdHI8UlRDU2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gc2Vzc2lvbkRlc2NyaXB0aW9uKQoreworICAgIGlm
ICghbV93ZWJIYW5kbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3dlYkhhbmRsZXItPnNl
dExvY2FsRGVzY3JpcHRpb24ocmVxdWVzdCwgc2Vzc2lvbkRlc2NyaXB0aW9uKTsKK30KKwordm9p
ZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6c2V0UmVtb3RlRGVzY3JpcHRpb24o
UGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdD4gcmVxdWVzdCwgUGFzc1JlZlB0cjxSVENTZXNzaW9u
RGVzY3JpcHRpb25EZXNjcmlwdG9yPiBzZXNzaW9uRGVzY3JpcHRpb24pCit7CisgICAgaWYgKCFt
X3dlYkhhbmRsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fd2ViSGFuZGxlci0+c2V0UmVt
b3RlRGVzY3JpcHRpb24ocmVxdWVzdCwgc2Vzc2lvbkRlc2NyaXB0aW9uKTsKK30KKwogYm9vbCBS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6dXBkYXRlSWNlKFBhc3NSZWZQdHI8UlRD
Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRz
PiBjb25zdHJhaW50cykKIHsKICAgICBpZiAoIW1fd2ViSGFuZGxlcikKQEAgLTk3LDYgKzExNCwy
MiBAQCBib29sIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjphZGRJY2VDYW5kaWRh
dGUoUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdAogICAgIHJldHVybiBtX3dlYkhhbmRsZXItPmFk
ZElDRUNhbmRpZGF0ZShpY2VDYW5kaWRhdGUpOwogfQogCitQYXNzUmVmUHRyPFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkRlc2NyaXB0b3I+IFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjps
b2NhbERlc2NyaXB0aW9uKCkKK3sKKyAgICBpZiAoIW1fd2ViSGFuZGxlcikKKyAgICAgICAgcmV0
dXJuIDA7CisKKyAgICByZXR1cm4gbV93ZWJIYW5kbGVyLT5sb2NhbERlc2NyaXB0aW9uKCk7Cit9
CisKK1Bhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OnJlbW90ZURlc2NyaXB0aW9uKCkKK3sKKyAgICBpZiAo
IW1fd2ViSGFuZGxlcikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gbV93ZWJIYW5k
bGVyLT5yZW1vdGVEZXNjcmlwdGlvbigpOworfQorCiBib29sIFJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlckNocm9taXVtOjphZGRTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+
IG1lZGlhU3RyZWFtLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGNvbnN0cmFpbnRzKQog
ewogICAgIGlmICghbV93ZWJIYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21p
dW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmgKaW5kZXggODk5M2MxMTg3MTE3ODA0NWM3NDYw
NDE1ZjU2YTAyMDRkMGQ2MWRiYi4uYTdiYWM4MTYxMWIwYmQxNWQxZGM4ODQzYWJiNjkzYWRiYTNh
NzNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hy
b21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXJDaHJvbWl1bS5oCkBAIC01NSw2ICs1NSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29s
IGluaXRpYWxpemUoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPiwgUGFzc1JlZlB0cjxNZWRp
YUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2ZmZXIo
UGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0PiwgUGFzc1JlZlB0cjxNZWRp
YUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldExvY2FsRGVzY3Jp
cHRpb24oUGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdD4sIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uRGVzY3JpcHRvcj4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRSZW1v
dGVEZXNjcmlwdGlvbihQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0PiwgUGFzc1JlZlB0cjxSVENT
ZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IGxvY2FsRGVzY3JpcHRpb24o
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9u
RGVzY3JpcHRvcj4gcmVtb3RlRGVzY3JpcHRpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJv
b2wgdXBkYXRlSWNlKFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4sIFBhc3NSZWZQdHI8TWVk
aWFDb25zdHJhaW50cz4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhZGRJY2VDYW5kaWRh
dGUoUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIGFkZFN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4s
IFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDVkMjZmYjYyNmExNzQ5ZWE4NzZm
ZjU3MTE3NjZjMDZjNTc3ZTM0MzAuLjdhYWQ5YmRlNWZhZTcwMTdkMjY1NmE1MjljNzk5NzBiYjcz
NDFlMWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyOCBAQAorMjAxMi0wOS0wNSAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdA
Z29vZ2xlLmNvbT4KKworICAgICAgICBNZWRpYVN0cmVhbSBBUEk6IEFkZCB0aGUgbG9jYWwgYW5k
IHJlbW90ZSBkZXNjcmlwdGlvbiBmdW5jdGlvbmFsaXR5IHRvIFJUQ1BlZXJDb25uZWN0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTgzOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIGFkZGl0aW9u
IHRvIGFkZGluZyB0aGUgbmV3IG1ldGhvZHMgdG8gTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlciBJIGNsZWFuZWQKKyAgICAgICAgdXAgdGhlIHRhc2sgZGVmaW5pdGlvbnMgYSBiaXQuIFRo
ZXJlIHdhcyBubyBuZWVkIHRvIGhhdmUgdGhlbSBpbiB0aGUgaGVhZGVyIGZpbGUuCisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyLmNwcDoKKyAgICAgICAgKFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RTdWNjZWRlZFRh
c2spOgorICAgICAgICAoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdFN1Y2NlZGVkVGFzazo6
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdFN1Y2NlZGVkVGFzayk6CisgICAgICAgIChSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0RmFpbGVkVGFzayk6CisgICAgICAgIChSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0RmFpbGVkVGFzazo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dEZhaWxlZFRhc2spOgorICAgICAgICAoUlRDVm9pZFJlcXVlc3RUYXNrKToKKyAgICAgICAgKFJU
Q1ZvaWRSZXF1ZXN0VGFzazo6UlRDVm9pZFJlcXVlc3RUYXNrKToKKyAgICAgICAgKE1vY2tXZWJS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmNyZWF0ZU9mZmVyKToKKyAgICAgICAgKE1vY2tXZWJS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OnNldExvY2FsRGVzY3JpcHRpb24pOgorICAgICAgICAo
TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6c2V0UmVtb3RlRGVzY3JpcHRpb24pOgor
ICAgICAgICAoTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6bG9jYWxEZXNjcmlwdGlv
bik6CisgICAgICAgIChNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpyZW1vdGVEZXNj
cmlwdGlvbik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlci5oOgorICAgICAgICAoTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlcik6CisKIDIwMTItMDktMDQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgSGF2ZSBOUldUIGxvZyBtb3JlIG91dHB1dCB3aGVuIGNyYXNoIGxv
Z3MgYXJlIG1pc3NpbmcKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKaW5kZXggN2Y4
MmE0ZjczYTllYTFlZmE0OTgzZWIzZDFiODZiZDMwZmNlYWEzMi4uYjY2MDQyZGM0ZWJmZjRhYTU4
NTRmMTIyNjg1NmM0MjU0MzlmODJhNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5j
cHAKQEAgLTM3LDMzICszNyw3MSBAQAogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXJDbGllbnQuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvci5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1ZvaWRSZXF1ZXN0Lmg+CiAj
aW5jbHVkZSA8cHVibGljL1dlYlN0cmluZy5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJWZWN0b3Iu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlcjo6U3VjY2Vzc0NhbGxiYWNrVGFzazo6U3VjY2Vzc0NhbGxiYWNrVGFzayhNb2NrV2Vi
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKiBvYmplY3QsIGNvbnN0IFdlYktpdDo6V2ViUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvciYgcmVzdWx0KQotICAgIDogTWV0aG9kVGFzazxNb2NrV2ViUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyPihvYmplY3QpCi0gICAgLCBtX3JlcXVlc3QocmVxdWVzdCkKLSAg
ICAsIG1fcmVzdWx0KHJlc3VsdCkKLXsKLX0KK2NsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3RTdWNjZWRlZFRhc2sgOiBwdWJsaWMgTWV0aG9kVGFzazxNb2NrV2ViUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyPiB7CitwdWJsaWM6CisgICAgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dFN1Y2NlZGVkVGFzayhNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKiBvYmplY3QsIGNv
bnN0IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yJiByZXN1bHQpCisg
ICAgICAgIDogTWV0aG9kVGFzazxNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyPihvYmpl
Y3QpCisgICAgICAgICwgbV9yZXF1ZXN0KHJlcXVlc3QpCisgICAgICAgICwgbV9yZXN1bHQocmVz
dWx0KQorICAgIHsKKyAgICB9CiAKLXZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
cjo6U3VjY2Vzc0NhbGxiYWNrVGFzazo6cnVuSWZWYWxpZCgpCi17Ci0gICAgbV9yZXF1ZXN0LnJl
cXVlc3RTdWNjZWVkZWQobV9yZXN1bHQpOwotfQorICAgIHZpcnR1YWwgdm9pZCBydW5JZlZhbGlk
KCkgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIG1fcmVxdWVzdC5yZXF1ZXN0U3VjY2VlZGVkKG1f
cmVzdWx0KTsKKyAgICB9CiAKLU1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OkZhaWx1
cmVDYWxsYmFja1Rhc2s6OkZhaWx1cmVDYWxsYmFja1Rhc2soTW9ja1dlYlJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlciogb2JqZWN0LCBjb25zdCBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlv
blJlcXVlc3QmIHJlcXVlc3QpCi0gICAgOiBNZXRob2RUYXNrPE1vY2tXZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXI+KG9iamVjdCkKLSAgICAsIG1fcmVxdWVzdChyZXF1ZXN0KQotewotfQorcHJp
dmF0ZToKKyAgICBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QgbV9yZXF1
ZXN0OworICAgIFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciBtX3Jl
c3VsdDsKK307CisKK2NsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RGYWlsZWRUYXNr
IDogcHVibGljIE1ldGhvZFRhc2s8TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcj4gewor
cHVibGljOgorICAgIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RGYWlsZWRUYXNrKE1vY2tX
ZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIqIG9iamVjdCwgY29uc3QgV2ViS2l0OjpXZWJSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiByZXF1ZXN0KQorICAgICAgICA6IE1ldGhvZFRhc2s8
TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcj4ob2JqZWN0KQorICAgICAgICAsIG1fcmVx
dWVzdChyZXF1ZXN0KQorICAgIHsKKyAgICB9CiAKLXZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlcjo6RmFpbHVyZUNhbGxiYWNrVGFzazo6cnVuSWZWYWxpZCgpCi17Ci0gICAgbV9y
ZXF1ZXN0LnJlcXVlc3RGYWlsZWQoIlRFU1RfRVJST1IiKTsKLX0KKyAgICB2aXJ0dWFsIHZvaWQg
cnVuSWZWYWxpZCgpIE9WRVJSSURFCisgICAgeworICAgICAgICBtX3JlcXVlc3QucmVxdWVzdEZh
aWxlZCgiVEVTVF9FUlJPUiIpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBXZWJLaXQ6OldlYlJU
Q1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QgbV9yZXF1ZXN0OworfTsKKworY2xhc3MgUlRDVm9p
ZFJlcXVlc3RUYXNrIDogcHVibGljIE1ldGhvZFRhc2s8TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlcj4geworcHVibGljOgorICAgIFJUQ1ZvaWRSZXF1ZXN0VGFzayhNb2NrV2ViUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyKiBvYmplY3QsIGNvbnN0IFdlYktpdDo6V2ViUlRDVm9pZFJlcXVl
c3QmIHJlcXVlc3QsIGJvb2wgc3VjY2VlZGVkKQorICAgICAgICA6IE1ldGhvZFRhc2s8TW9ja1dl
YlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcj4ob2JqZWN0KQorICAgICAgICAsIG1fcmVxdWVzdChy
ZXF1ZXN0KQorICAgICAgICAsIG1fc3VjY2VlZGVkKHN1Y2NlZWRlZCkKKyAgICB7CisgICAgfQor
CisgICAgdmlydHVhbCB2b2lkIHJ1bklmVmFsaWQoKSBPVkVSUklERQorICAgIHsKKyAgICAgICAg
aWYgKG1fc3VjY2VlZGVkKQorICAgICAgICAgICAgbV9yZXF1ZXN0LnJlcXVlc3RTdWNjZWVkZWQo
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9yZXF1ZXN0LnJlcXVlc3RGYWlsZWQoIlRF
U1RfRVJST1IiKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgV2ViS2l0OjpXZWJSVENWb2lkUmVx
dWVzdCBtX3JlcXVlc3Q7CisgICAgYm9vbCBtX3N1Y2NlZWRlZDsKK307CisKKy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLwogCiBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpNb2NrV2ViUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyKFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCog
Y2xpZW50KQogICAgIDogbV9jbGllbnQoY2xpZW50KQpAQCAtMTE3LDkgKzE1NSwzNyBAQCB2b2lk
IE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmNyZWF0ZU9mZmVyKGNvbnN0IFdlYlJU
Q1Nlc3Npb25EZXNjcmlwdGlvbgogICAgIGlmIChjb25zdHJhaW50cy5nZXRNYW5kYXRvcnlDb25z
dHJhaW50VmFsdWUoInN1Y2NlZWQiLCBzaG91bGRTdWNjZWVkKSAmJiBzaG91bGRTdWNjZWVkID09
ICJ0cnVlIikgewogICAgICAgICBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yIHNl
c3Npb25EZXNjcmlwdGlvbjsKICAgICAgICAgc2Vzc2lvbkRlc2NyaXB0aW9uLmluaXRpYWxpemUo
Im9mZmVyIiwgIlNvbWUgU0RQIGhlcmUiKTsKLSAgICAgICAgcG9zdFRhc2sobmV3IFN1Y2Nlc3ND
YWxsYmFja1Rhc2sodGhpcywgcmVxdWVzdCwgc2Vzc2lvbkRlc2NyaXB0aW9uKSk7CisgICAgICAg
IHBvc3RUYXNrKG5ldyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0U3VjY2VkZWRUYXNrKHRo
aXMsIHJlcXVlc3QsIHNlc3Npb25EZXNjcmlwdGlvbikpOworICAgIH0gZWxzZQorICAgICAgICBw
b3N0VGFzayhuZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEZhaWxlZFRhc2sodGhpcywg
cmVxdWVzdCkpOworfQorCit2b2lkIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OnNl
dExvY2FsRGVzY3JpcHRpb24oY29uc3QgV2ViUlRDVm9pZFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3ImIGxvY2FsRGVzY3JpcHRpb24pCit7
CisgICAgaWYgKCFsb2NhbERlc2NyaXB0aW9uLmlzTnVsbCgpICYmIGxvY2FsRGVzY3JpcHRpb24u
dHlwZSgpID09ICJvZmZlciIpIHsKKyAgICAgICAgbV9sb2NhbERlc2NyaXB0aW9uID0gbG9jYWxE
ZXNjcmlwdGlvbjsKKyAgICAgICAgcG9zdFRhc2sobmV3IFJUQ1ZvaWRSZXF1ZXN0VGFzayh0aGlz
LCByZXF1ZXN0LCB0cnVlKSk7CisgICAgfSBlbHNlCisgICAgICAgIHBvc3RUYXNrKG5ldyBSVENW
b2lkUmVxdWVzdFRhc2sodGhpcywgcmVxdWVzdCwgZmFsc2UpKTsKK30KKwordm9pZCBNb2NrV2Vi
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpzZXRSZW1vdGVEZXNjcmlwdGlvbihjb25zdCBXZWJS
VENWb2lkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVz
Y3JpcHRvciYgcmVtb3RlRGVzY3JpcHRpb24pCit7CisgICAgaWYgKCFyZW1vdGVEZXNjcmlwdGlv
bi5pc051bGwoKSAmJiByZW1vdGVEZXNjcmlwdGlvbi50eXBlKCkgPT0gImFuc3dlciIpIHsKKyAg
ICAgICAgbV9yZW1vdGVEZXNjcmlwdGlvbiA9IHJlbW90ZURlc2NyaXB0aW9uOworICAgICAgICBw
b3N0VGFzayhuZXcgUlRDVm9pZFJlcXVlc3RUYXNrKHRoaXMsIHJlcXVlc3QsIHRydWUpKTsKICAg
ICB9IGVsc2UKLSAgICAgICAgcG9zdFRhc2sobmV3IEZhaWx1cmVDYWxsYmFja1Rhc2sodGhpcywg
cmVxdWVzdCkpOworICAgICAgICBwb3N0VGFzayhuZXcgUlRDVm9pZFJlcXVlc3RUYXNrKHRoaXMs
IHJlcXVlc3QsIGZhbHNlKSk7Cit9CisKK1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3IgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6bG9jYWxEZXNjcmlwdGlvbigpCit7
CisgICAgcmV0dXJuIG1fbG9jYWxEZXNjcmlwdGlvbjsKK30KKworV2ViUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvciBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpyZW1vdGVE
ZXNjcmlwdGlvbigpCit7CisgICAgcmV0dXJuIG1fcmVtb3RlRGVzY3JpcHRpb247CiB9CiAKIGJv
b2wgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6dXBkYXRlSUNFKGNvbnN0IFdlYlJU
Q0NvbmZpZ3VyYXRpb24mLCBjb25zdCBXZWJNZWRpYUNvbnN0cmFpbnRzJikKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXIuaAppbmRleCA0MmQ0MGQ3MmExMjIwNzc2OTRlNTZkNjQ3MWNiNzE4NjQ1
MmMxZmNmLi4xODA1NjhiYTY5YmM0NjRlOTU5ODgzNzRkNTQxOTJlZDgwYmE5YTMzIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCkBAIC00OSw2ICs0OSwxMCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGluaXRpYWxpemUoY29uc3QgV2ViS2l0OjpXZWJSVENDb25maWd1cmF0aW9u
JiwgY29uc3QgV2ViS2l0OjpXZWJNZWRpYUNvbnN0cmFpbnRzJikgT1ZFUlJJREU7CiAKICAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlT2ZmZXIoY29uc3QgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0JiwgY29uc3QgV2ViS2l0OjpXZWJNZWRpYUNvbnN0cmFpbnRzJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHNldExvY2FsRGVzY3JpcHRpb24oY29uc3QgV2ViS2l0OjpX
ZWJSVENWb2lkUmVxdWVzdCYsIGNvbnN0IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
RGVzY3JpcHRvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRSZW1vdGVEZXNjcmlw
dGlvbihjb25zdCBXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0JiwgY29uc3QgV2ViS2l0OjpXZWJS
VENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBX
ZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IgbG9jYWxEZXNjcmlwdGlv
bigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRp
b25EZXNjcmlwdG9yIHJlbW90ZURlc2NyaXB0aW9uKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIHVwZGF0ZUlDRShjb25zdCBXZWJLaXQ6OldlYlJUQ0NvbmZpZ3VyYXRpb24mLCBjb25zdCBX
ZWJLaXQ6OldlYk1lZGlhQ29uc3RyYWludHMmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wg
YWRkSUNFQ2FuZGlkYXRlKGNvbnN0IFdlYktpdDo6V2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRv
ciYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhZGRTdHJlYW0oY29uc3QgV2ViS2l0OjpX
ZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImLCBjb25zdCBXZWJLaXQ6OldlYk1lZGlhQ29uc3RyYWlu
dHMmKSBPVkVSUklERTsKQEAgLTYyLDI3ICs2Niw5IEBAIHByaXZhdGU6CiAgICAgTW9ja1dlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlcigpIHsgfQogCiAgICAgV2ViS2l0OjpXZWJSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXJDbGllbnQqIG1fY2xpZW50OwotCiAgICAgVGFza0xpc3QgbV90YXNrTGlz
dDsKLQotICAgIGNsYXNzIFN1Y2Nlc3NDYWxsYmFja1Rhc2sgOiBwdWJsaWMgTWV0aG9kVGFzazxN
b2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyPiB7Ci0gICAgcHVibGljOgotICAgICAgICBT
dWNjZXNzQ2FsbGJhY2tUYXNrKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIqLCBjb25z
dCBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QmLCBjb25zdCBXZWJLaXQ6
OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3ImKTsKLSAgICAgICAgdmlydHVhbCB2
b2lkIHJ1bklmVmFsaWQoKSBPVkVSUklERTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIFdlYktp
dDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCBtX3JlcXVlc3Q7Ci0gICAgICAgIFdl
YktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciBtX3Jlc3VsdDsKLSAgICB9
OwotCi0gICAgY2xhc3MgRmFpbHVyZUNhbGxiYWNrVGFzayA6IHB1YmxpYyBNZXRob2RUYXNrPE1v
Y2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIEZh
aWx1cmVDYWxsYmFja1Rhc2soTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciosIGNvbnN0
IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCYpOwotICAgICAgICB2aXJ0
dWFsIHZvaWQgcnVuSWZWYWxpZCgpIE9WRVJSSURFOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAg
V2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0IG1fcmVxdWVzdDsKLSAgICB9
OworICAgIFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciBtX2xvY2Fs
RGVzY3JpcHRpb247CisgICAgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlw
dG9yIG1fcmVtb3RlRGVzY3JpcHRpb247CiB9OwogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NU
UkVBTSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA0YjQwMjI0NmE0ZDAyYTc2MTBmMGJjOTc2ZDY2ZjI0NjIzNzhjODkxLi4y
OGY5OGU3MTQ5MmZkODNjZGZlMDllMWEzYTY3NDllMmVkN2RmNzM3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTItMDktMDUgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+
CisKKyAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBBZGQgdGhlIGxvY2FsIGFuZCByZW1vdGUgZGVz
Y3JpcHRpb24gZnVuY3Rpb25hbGl0eSB0byBSVENQZWVyQ29ubmVjdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU4MzkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXIuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWxvY2FsRGVzY3JpcHRpb24tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWxvY2FsRGVz
Y3JpcHRpb24uaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci5odG1sLgorICAgICAgICAqIGZhc3QvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlRGVzY3JpcHRpb24tZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXJlbW90
ZURlc2NyaXB0aW9uLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXIuaHRtbC4KKwogMjAxMi0wOS0wNSAgRGFu
IEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZGVkIE1hYy1zcGVjaWZp
YyBleHBlY3RlZCByZXN1bHRzIGZvciBhIHRlc3QgYWRkZWQgaW4gcjEyNzU1Ny4gVGhlIGdlbmVy
aWMgcmVzdWx0cyBhcmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXIuaHRtbAppbmRleCBmZjQ3NjJk
YjE5ZjE2MGJiZmJjYWNiMTBhNjhkNTdlNGUxOTVmODdiLi5hNTAwZDc0ZGZlNTEwNjA5NjU3ZDNi
ODYyMDc0NjNlYjdhMjQ4MWQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci5odG1sCkBAIC0x
OSw3ICsxOSw3IEBAIGZ1bmN0aW9uIHJlcXVlc3RGYWlsZWQyKHJlYXNvbikKICAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0KIAotZnVuY3Rpb24gcmVxdWVzdFN1Y2NlZWRlZDIoc2QsIHNvdXJjZSkKK2Z1
bmN0aW9uIHJlcXVlc3RTdWNjZWVkZWQyKHNkKQogewogICAgIHRlc3RGYWlsZWQoJ3JlcXVlc3RT
dWNjZWVkZWQgd2FzIGNhbGxlZC4nKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKQEAgLTMxLDcgKzMx
LDcgQEAgZnVuY3Rpb24gcmVxdWVzdEZhaWxlZDEoKQogICAgIGZpbmlzaEpTVGVzdCgpOwogfQog
Ci1mdW5jdGlvbiByZXF1ZXN0U3VjY2VlZGVkMShzZCwgc291cmNlKQorZnVuY3Rpb24gcmVxdWVz
dFN1Y2NlZWRlZDEoc2QpCiB7CiAgICAgdGVzdFBhc3NlZCgncmVxdWVzdFN1Y2NlZWRlZCB3YXMg
Y2FsbGVkLicpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLWxvY2FsRGVzY3JpcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1sb2NhbERlc2NyaXB0aW9uLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40M2QyODc2ZmRkMGU0NDczZWQ4OWEzOTZkOTA3NGYwMWZi
NTdhZWNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi1sb2NhbERlc2NyaXB0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE0IEBACitUZXN0cyBSVENQZWVyQ29ubmVjdGlvbiBsb2NhbERlc2NyaXB0aW9uLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKHNl
c3Npb25EZXNjcmlwdGlvbiwgcmVxdWVzdFN1Y2NlZWRlZDEsIHJlcXVlc3RGYWlsZWQxKTsgZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHJlcXVlc3RTdWNjZWVkZWQgd2FzIGNhbGxlZC4K
K1BBU1MgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihzZXNzaW9uRGVzY3JpcHRpb24sIHJlcXVlc3RT
dWNjZWVkZWQyLCByZXF1ZXN0RmFpbGVkMik7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFT
UyByZXF1ZXN0RmFpbGVkIHdhcyBjYWxsZWQuCitQQVNTIHBjLmxvY2FsRGVzY3JpcHRpb24uc2Rw
IGlzICJzZHAxIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24tbG9jYWxEZXNjcmlwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1sb2NhbERlc2NyaXB0aW9uLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGZhZTQ2YjRhMTgzMTZhZTA0ZWMwNWRmMTVjYTgxNTg5MjRmMjE5OAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tbG9jYWxE
ZXNjcmlwdGlvbi5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyBSVENQZWVyQ29ubmVjdGlvbiBsb2NhbERlc2Ny
aXB0aW9uLiIpOworCit2YXIgcGMgPSBudWxsOworCitmdW5jdGlvbiByZXF1ZXN0RmFpbGVkMigp
Cit7CisgICAgdGVzdFBhc3NlZCgncmVxdWVzdEZhaWxlZCB3YXMgY2FsbGVkLicpOworCisgICAg
c2hvdWxkQmUoJ3BjLmxvY2FsRGVzY3JpcHRpb24uc2RwJywgJyJzZHAxIicpOworICAgIGZpbmlz
aEpTVGVzdCgpOworfQorCitmdW5jdGlvbiByZXF1ZXN0U3VjY2VlZGVkMigpCit7CisgICAgdGVz
dEZhaWxlZCgncmVxdWVzdFN1Y2NlZWRlZCB3YXMgY2FsbGVkLicpOworICAgIGZpbmlzaEpTVGVz
dCgpOworfQorCitmdW5jdGlvbiByZXF1ZXN0RmFpbGVkMSgpCit7CisgICAgdGVzdEZhaWxlZCgn
cmVxdWVzdEZhaWxlZCB3YXMgY2FsbGVkLicpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitm
dW5jdGlvbiByZXF1ZXN0U3VjY2VlZGVkMSgpCit7CisgICAgdGVzdFBhc3NlZCgncmVxdWVzdFN1
Y2NlZWRlZCB3YXMgY2FsbGVkLicpOworCisgICAgc2Vzc2lvbkRlc2NyaXB0aW9uID0gbmV3IFJU
Q1Nlc3Npb25EZXNjcmlwdGlvbih7dHlwZToiYW5zd2VyIiwgc2RwOiJzZHAyIn0pOworICAgIHNo
b3VsZE5vdFRocm93KCdwYy5zZXRMb2NhbERlc2NyaXB0aW9uKHNlc3Npb25EZXNjcmlwdGlvbiwg
cmVxdWVzdFN1Y2NlZWRlZDIsIHJlcXVlc3RGYWlsZWQyKTsnKTsKK30KKworcGMgPSBuZXcgd2Vi
a2l0UlRDUGVlckNvbm5lY3Rpb24obnVsbCwgbnVsbCk7Cit2YXIgc2Vzc2lvbkRlc2NyaXB0aW9u
ID0gbmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbih7dHlwZToib2ZmZXIiLCBzZHA6InNkcDEifSk7
CitzaG91bGROb3RUaHJvdygncGMuc2V0TG9jYWxEZXNjcmlwdGlvbihzZXNzaW9uRGVzY3JpcHRp
b24sIHJlcXVlc3RTdWNjZWVkZWQxLCByZXF1ZXN0RmFpbGVkMSk7Jyk7CisKKword2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOword2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlRGVzY3JpcHRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1yZW1v
dGVEZXNjcmlwdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTZiMDQzNzBmZGE2ZWE2Yjgw
ZmE3OWU0MjI2MDk5YjU1ZjA1ZDcyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlRGVzY3JpcHRpb24tZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIFJUQ1BlZXJDb25uZWN0aW9uIHJlbW90ZURl
c2NyaXB0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBwYy5zZXRS
ZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzY3JpcHRpb24sIHJlcXVlc3RTdWNjZWVkZWQxLCBy
ZXF1ZXN0RmFpbGVkMSk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyByZXF1ZXN0U3Vj
Y2VlZGVkIHdhcyBjYWxsZWQuCitQQVNTIHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHNlc3Npb25E
ZXNjcmlwdGlvbiwgcmVxdWVzdFN1Y2NlZWRlZDIsIHJlcXVlc3RGYWlsZWQyKTsgZGlkIG5vdCB0
aHJvdyBleGNlcHRpb24uCitQQVNTIHJlcXVlc3RGYWlsZWQgd2FzIGNhbGxlZC4KK1BBU1MgcGMu
cmVtb3RlRGVzY3JpcHRpb24uc2RwIGlzICJzZHAxIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlRGVzY3JpcHRpb24uaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlRGVzY3Jp
cHRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjBjNTExYmFmMGQzYTU2NmVmODUxYzY3Yjc1NWUyYjdl
MTRlY2U0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi1yZW1vdGVEZXNjcmlwdGlvbi5odG1sCkBAIC0wLDAgKzEsNTAgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyBSVENQ
ZWVyQ29ubmVjdGlvbiByZW1vdGVEZXNjcmlwdGlvbi4iKTsKKwordmFyIHBjID0gbnVsbDsKKwor
ZnVuY3Rpb24gcmVxdWVzdEZhaWxlZDIoKQoreworICAgIHRlc3RQYXNzZWQoJ3JlcXVlc3RGYWls
ZWQgd2FzIGNhbGxlZC4nKTsKKworICAgIHNob3VsZEJlKCdwYy5yZW1vdGVEZXNjcmlwdGlvbi5z
ZHAnLCAnInNkcDEiJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHJlcXVl
c3RTdWNjZWVkZWQyKCkKK3sKKyAgICB0ZXN0RmFpbGVkKCdyZXF1ZXN0U3VjY2VlZGVkIHdhcyBj
YWxsZWQuJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHJlcXVlc3RGYWls
ZWQxKCkKK3sKKyAgICB0ZXN0RmFpbGVkKCdyZXF1ZXN0RmFpbGVkIHdhcyBjYWxsZWQuJyk7Cisg
ICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHJlcXVlc3RTdWNjZWVkZWQxKCkKK3sK
KyAgICB0ZXN0UGFzc2VkKCdyZXF1ZXN0U3VjY2VlZGVkIHdhcyBjYWxsZWQuJyk7CisKKyAgICBz
ZXNzaW9uRGVzY3JpcHRpb24gPSBuZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKHt0eXBlOiJvZmZl
ciIsIHNkcDoic2RwMiJ9KTsKKyAgICBzaG91bGROb3RUaHJvdygncGMuc2V0UmVtb3RlRGVzY3Jp
cHRpb24oc2Vzc2lvbkRlc2NyaXB0aW9uLCByZXF1ZXN0U3VjY2VlZGVkMiwgcmVxdWVzdEZhaWxl
ZDIpOycpOworfQorCitwYyA9IG5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbihudWxsLCBudWxs
KTsKK3ZhciBzZXNzaW9uRGVzY3JpcHRpb24gPSBuZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKHt0
eXBlOiJhbnN3ZXIiLCBzZHA6InNkcDEifSk7CitzaG91bGROb3RUaHJvdygncGMuc2V0UmVtb3Rl
RGVzY3JpcHRpb24oc2Vzc2lvbkRlc2NyaXB0aW9uLCByZXF1ZXN0U3VjY2VlZGVkMSwgcmVxdWVz
dEZhaWxlZDEpOycpOworCisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3dpbmRvdy5z
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162233</attachid>
            <date>2012-09-05 06:16:10 -0700</date>
            <delta_ts>2012-09-06 03:09:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95839-20120905151551.patch</filename>
            <type>text/plain</type>
            <size>66776</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAwNDlhNDAwNjk3OWZi
MjIyZTU2NzY3N2E4ZmE0MjQ3ZTJjZjNkNzg4Li4zODMxMzVmOWQ4ZjdiNzA5MGZjNzY0NzU0NDUx
NjkyOGQ0ZmIxM2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0wOS0wNSAg
VG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAgICAgICBNZWRpYVN0
cmVhbSBBUEk6IEFkZCB0aGUgbG9jYWwgYW5kIHJlbW90ZSBkZXNjcmlwdGlvbiBmdW5jdGlvbmFs
aXR5IHRvIFJUQ1BlZXJDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NTgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogUGxhdGZvcm0uZ3lwaToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJs
aWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6CisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKToKKyAgICAgICAgKiBjaHJvbWl1bS9w
dWJsaWMvV2ViUlRDVm9pZFJlcXVlc3QuaDogQ29waWVkIGZyb20gU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaC4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlJUQ1ZvaWRSZXF1ZXN0KToK
KyAgICAgICAgKEV4dHJhRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0
OjpFeHRyYURhdGE6On5FeHRyYURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENWb2lkUmVx
dWVzdDo6V2ViUlRDVm9pZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENWb2lkUmVx
dWVzdDo6fldlYlJUQ1ZvaWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDVm9pZFJl
cXVlc3Q6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0Ojpp
c051bGwpOgorCiAyMDEyLTA5LTA0ICBLZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEF0dGVtcHQgdG8gZml4IGJ1aWxkIGZhaWx1cmUg
b24gV2luCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggNmYzMzkxMDNlMjIxOGEzMjRiZjIzZWJkMWFkMzZhOWYxZGE4
MmNkYS4uY2Q3ZjgwNTNjNTc1MDRhY2FjNmU5ZTM0NmQ3MDEyNjQxNDhlZjg1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDk2IEBACisyMDEyLTA5LTA1ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15
d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQSTogQWRkIHRoZSBsb2NhbCBh
bmQgcmVtb3RlIGRlc2NyaXB0aW9uIGZ1bmN0aW9uYWxpdHkgdG8gUlRDUGVlckNvbm5lY3Rpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1ODM5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgd2VsbCBh
cyBhZGRpbmcgdGhlIGxvY2FsL3JlbW90ZSBkZXNjcmlwdGlvbnMgc3R1ZmYsIEkgcmVtb3ZlZCB0
aGUgc291cmNlIGF0dHJpYnV0ZSBmcm9tCisgICAgICAgIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNh
bGxiYWNrIGFuZCBSVENFcnJvckNhbGxiYWNrIHNpbmNlIGl0IGhhcyBiZWVuIHJlbW92ZWQgZnJv
bSB0aGUgZHJhZnQuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24tbG9jYWxEZXNjcmlwdGlvbi5odG1sCisgICAgICAgICAgICAgICBmYXN0L21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXJlbW90ZURlc2NyaXB0aW9uLmh0bWwKKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFcnJvckNhbGxiYWNrLmg6CisgICAgICAgIChS
VENFcnJvckNhbGxiYWNrKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9y
Q2FsbGJhY2suaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmNyZWF0ZU9m
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpzZXRMb2NhbERlc2Ny
aXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNv
bm5lY3Rpb246OmxvY2FsRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNv
bm5lY3Rpb246OnNldFJlbW90ZURlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1Bl
ZXJDb25uZWN0aW9uOjpyZW1vdGVEZXNjcmlwdGlvbik6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChSVENQZWVyQ29ubmVjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNz
aW9uRGVzY3JpcHRpb25DYWxsYmFjay5oOgorICAgICAgICAoUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
Q2FsbGJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uQ2FsbGJhY2suaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpS
VENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dEltcGw6OnJlcXVlc3RTdWNjZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uUmVxdWVzdEltcGw6OnJlcXVlc3RGYWlsZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNsZWFyKToKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmg6CisgICAg
ICAgIChSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbCk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJ
bXBsLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDVm9pZFJl
cXVlc3RJbXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDVm9pZFJlcXVlc3RJbXBs
OjpSVENWb2lkUmVxdWVzdEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6UlRDVm9pZFJlcXVlc3RJ
bXBsOjp+UlRDVm9pZFJlcXVlc3RJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1ZvaWRSZXF1
ZXN0SW1wbDo6cmVxdWVzdFN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpSVENWb2lkUmVx
dWVzdEltcGw6OnJlcXVlc3RGYWlsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDVm9pZFJlcXVl
c3RJbXBsOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1ZvaWRSZXF1ZXN0SW1wbDo6Y2xl
YXIpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uQ2FsbGJhY2suaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRD
Vm9pZFJlcXVlc3RJbXBsKToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENWb2lkUmVxdWVzdC5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyLmguCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENWb2lkUmVx
dWVzdDo6V2ViUlRDVm9pZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENWb2lkUmVx
dWVzdDo6YXNzaWduKToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDVm9pZFJlcXVlc3Q6OnJlc2V0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDVm9pZFJlcXVlc3Q6OnJlcXVlc3RTdWNjZWVkZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSVENWb2lkUmVxdWVzdDo6cmVxdWVzdEZhaWxlZCk6Cisg
ICAgICAgIChFeHRyYURhdGFDb250YWluZXIpOgorICAgICAgICAoV2ViS2l0OjpFeHRyYURhdGFD
b250YWluZXI6OkV4dHJhRGF0YUNvbnRhaW5lcik6CisgICAgICAgIChXZWJLaXQ6OkV4dHJhRGF0
YUNvbnRhaW5lcjo6ZXh0cmFEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDVm9pZFJlcXVl
c3Q6OmV4dHJhRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0OjpzZXRF
eHRyYURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlci5jcHA6CisgICAgICAgIChSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJEdW1teSk6
CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJEdW1teTo6c2V0TG9j
YWxEZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15OjpzZXRSZW1vdGVEZXNjcmlwdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJEdW1teTo6bG9jYWxEZXNjcmlw
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJEdW1teTo6
cmVtb3RlRGVzY3JpcHRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JU
Q1ZvaWRSZXF1ZXN0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDRXJyb3JDYWxsYmFjay5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChS
VENWb2lkUmVxdWVzdCk6CisgICAgICAgIChFeHRyYURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
UlRDVm9pZFJlcXVlc3Q6OkV4dHJhRGF0YTo6fkV4dHJhRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpSVENWb2lkUmVxdWVzdDo6flJUQ1ZvaWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1ZvaWRSZXF1ZXN0OjpleHRyYURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UlRDVm9pZFJlcXVl
c3Q6OnNldEV4dHJhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSVENWb2lkUmVxdWVzdDo6UlRD
Vm9pZFJlcXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpzZXRMb2NhbERlc2NyaXB0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyQ2hyb21pdW06OnNldFJlbW90ZURlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpsb2NhbERlc2NyaXB0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpyZW1vdGVEZXNj
cmlwdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlckNocm9taXVtKToKKwogMjAxMi0wOS0wNCAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlA
d2Via2l0Lm9yZz4KIAogICAgICAgICBNb3ZlIFBhZ2VQb3B1cENsaWVudCBpbXBsZW1lbnRhdGlv
biBmb3IgaW5wdXRbdHlwZT1kYXRlXSB0byBDaHJvbWl1bSBXZWJLaXQgbGF5ZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpIGIvU291cmNlL1BsYXRmb3JtL1BsYXRm
b3JtLmd5cGkKaW5kZXggYmFlYjk0NDRkNmExZWY0MzhhYTBiNjVhYTlhMWM4ZjYyOTZiM2YwMy4u
ZDk5ZDY3OGI1YmJmYTc0MGIzY2NmZGM4OWU0NThiNTUxODZkMzhmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKKysrIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3Jt
Lmd5cGkKQEAgLTEwOSw2ICsxMDksNyBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9X
ZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAnY2hyb21p
dW0vcHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCcsCiAgICAgICAg
ICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaCcs
CisgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJUQ1ZvaWRSZXF1ZXN0LmgnLAogICAg
ICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJSZWN0LmgnLAogICAgICAgICAgICAgJ2Nocm9t
aXVtL3B1YmxpYy9XZWJSZWZlcnJlclBvbGljeS5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9w
dWJsaWMvV2ViUmVuZGVyaW5nU3RhdHMuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oIGIvU291cmNlL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAppbmRl
eCBjOGYyZjEzNzUzYWYwODU4MTJmZDZkZGE0Mzg3ZDFhMjRjMTc0YjNjLi5mMWU3ZmM2ZjdhNTcx
ZDhlZDQxYWUxMDIxMjJjMzk0YmM0NGFlMjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCisrKyBiL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgK
QEAgLTM5LDYgKzM5LDcgQEAgY2xhc3MgV2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRvcjsKIGNs
YXNzIFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudDsKIGNsYXNzIFdlYlJUQ1Nlc3Np
b25EZXNjcmlwdGlvbkRlc2NyaXB0b3I7CiBjbGFzcyBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25S
ZXF1ZXN0OworY2xhc3MgV2ViUlRDVm9pZFJlcXVlc3Q7CiAKIGNsYXNzIFdlYlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlciB7CiBwdWJsaWM6CkBAIC00Nyw2ICs0OCwxMCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGluaXRpYWxpemUoY29uc3QgV2ViUlRDQ29uZmlndXJhdGlvbiYsIGNvbnN0
IFdlYk1lZGlhQ29uc3RyYWludHMmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2Zm
ZXIoY29uc3QgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCYsIGNvbnN0IFdlYk1lZGlh
Q29uc3RyYWludHMmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldExvY2FsRGVzY3JpcHRpb24o
Y29uc3QgV2ViUlRDVm9pZFJlcXVlc3QmLCBjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25E
ZXNjcmlwdG9yJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRSZW1vdGVEZXNjcmlwdGlvbihj
b25zdCBXZWJSVENWb2lkUmVxdWVzdCYsIGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRl
c2NyaXB0b3ImKSA9IDA7CisgICAgdmlydHVhbCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yIGxvY2FsRGVzY3JpcHRpb24oKSA9IDA7CisgICAgdmlydHVhbCBXZWJSVENTZXNzaW9u
RGVzY3JpcHRpb25EZXNjcmlwdG9yIHJlbW90ZURlc2NyaXB0aW9uKCkgPSAwOwogICAgIHZpcnR1
YWwgYm9vbCB1cGRhdGVJQ0UoY29uc3QgV2ViUlRDQ29uZmlndXJhdGlvbiYsIGNvbnN0IFdlYk1l
ZGlhQ29uc3RyYWludHMmKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGFkZElDRUNhbmRpZGF0ZShj
b25zdCBXZWJSVENJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yJikgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBhZGRTdHJlYW0oY29uc3QgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJiwgY29uc3QgV2ViTWVk
aWFDb25zdHJhaW50cyYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViUlRDVm9pZFJlcXVlc3QuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvV2ViUlRDVm9pZFJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjU2YmM2YzBhOGUyZDA1NDg0
MjhhN2UyOWJhMmRiMTU1OWIyMjFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJSVENWb2lkUmVxdWVzdC5oCkBAIC0wLDAgKzEsODcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFdlYlJUQ1ZvaWRSZXF1ZXN0X2gKKyNkZWZpbmUgV2ViUlRDVm9pZFJlcXVlc3RfaAorCisj
aW5jbHVkZSAiV2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViTm9uQ29weWFibGUuaCIKKyNpbmNs
dWRlICJXZWJQcml2YXRlUHRyLmgiCisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK2NsYXNzIFJUQ1ZvaWRSZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViUlRDVm9pZFJlcXVlc3QgeworcHVibGljOgorICAgIGNsYXNzIEV4dHJh
RGF0YSB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5FeHRyYURhdGEoKSB7IH0KKyAg
ICB9OworCisgICAgV2ViUlRDVm9pZFJlcXVlc3QoKSB7IH0KKyAgICBXZWJSVENWb2lkUmVxdWVz
dChjb25zdCBXZWJSVENWb2lkUmVxdWVzdCYgb3RoZXIpIHsgYXNzaWduKG90aGVyKTsgfQorICAg
IH5XZWJSVENWb2lkUmVxdWVzdCgpIHsgcmVzZXQoKTsgfQorCisgICAgV2ViUlRDVm9pZFJlcXVl
c3QmIG9wZXJhdG9yPShjb25zdCBXZWJSVENWb2lkUmVxdWVzdCYgb3RoZXIpCisgICAgeworICAg
ICAgICBhc3NpZ24ob3RoZXIpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAg
V0VCS0lUX0VYUE9SVCB2b2lkIGFzc2lnbihjb25zdCBXZWJSVENWb2lkUmVxdWVzdCYpOworCisg
ICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CisgICAgYm9vbCBpc051bGwoKSBjb25zdCB7
IHJldHVybiBtX3ByaXZhdGUuaXNOdWxsKCk7IH0KKworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBy
ZXF1ZXN0U3VjY2VlZGVkKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlcXVlc3RG
YWlsZWQoY29uc3QgV2ViU3RyaW5nJiBlcnJvcikgY29uc3Q7CisKKyAgICAvLyBFeHRyYSBkYXRh
IGFzc29jaWF0ZWQgd2l0aCB0aGlzIG9iamVjdC4KKyAgICAvLyBJZiBub24tbnVsbCwgdGhlIGV4
dHJhIGRhdGEgcG9pbnRlciB3aWxsIGJlIGRlbGV0ZWQgd2hlbiB0aGUgb2JqZWN0IGlzIGRlc3Ry
b3llZC4KKyAgICAvLyBTZXR0aW5nIHRoZSBleHRyYSBkYXRhIHBvaW50ZXIgd2lsbCBjYXVzZSBh
bnkgZXhpc3Rpbmcgbm9uLW51bGwKKyAgICAvLyBleHRyYSBkYXRhIHBvaW50ZXIgdG8gYmUgZGVs
ZXRlZC4KKyAgICBXRUJLSVRfRVhQT1JUIEV4dHJhRGF0YSogZXh0cmFEYXRhKCkgY29uc3Q7Cisg
ICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldEV4dHJhRGF0YShFeHRyYURhdGEqKTsKKworI2lmIFdF
QktJVF9JTVBMRU1FTlRBVElPTgorICAgIFdlYlJUQ1ZvaWRSZXF1ZXN0KGNvbnN0IFdURjo6UGFz
c1JlZlB0cjxXZWJDb3JlOjpSVENWb2lkUmVxdWVzdD4mKTsKKyNlbmRpZgorCitwcml2YXRlOgor
ICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6UlRDVm9pZFJlcXVlc3Q+IG1fcHJpdmF0ZTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViUlRDVm9pZFJlcXVlc3Rf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5NTM2MTVkMjlhMDNkNTgwMzNiZmQ3M2FiMGExNjAw
MzcxYTQyMTY4Li4yZGMwNGJiMWFhZjBlNmMxNjE2NTAyM2U1MjQwYmU0YjExOGMzMjg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtODYxLDYgKzg2MSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMK
ICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAogICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcAogICAgIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCisgICAgTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFDb250cm9sbGVyLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVx
dWVzdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGY2MjZkZmUyZTBmY2Rh
MDM4NjljOGYyZmNjMDEwNmVlYWViMzAxYjkuLjBhNGI2MWYxZTI5NmMxNTg5MGFjOWViZjYyY2I3
N2VlZTJiNjE3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTkzNiw2ICsx
OTM2LDggQEAgd2ViY29yZV9tb2R1bGVzX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaCBcCiAJU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1
ZXN0SW1wbC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmggXAogCVNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ2xpZW50LmggXApAQCAtNDU2NSw2
ICs0NTY3LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0LmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3IuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNzaW9u
RGVzY3JpcHRpb25EZXNjcmlwdG9yLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmggXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVh
bUNlbnRlckdTdHJlYW1lci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENFcnJvckNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0Vycm9yQ2FsbGJhY2suaAppbmRleCA2OTMxOTQ2OGVmMGUxM2IyNzgx
NDU3M2YxMTYxMTExOGU5MzE4MzIyLi42NDRlNTZmMGJlYTcwZDUzZTQ5ZjI4OWU0YWZmNjE1N2Rh
M2VmYmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q0Vycm9yQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ0Vycm9yQ2FsbGJhY2suaApAQCAtMzgsMTIgKzM4LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgUlRDUGVlckNvbm5lY3Rpb247Ci0KIGNsYXNzIFJUQ0Vycm9yQ2FsbGJh
Y2sgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENFcnJvckNhbGxiYWNrPiB7CiBwdWJsaWM6CiAgICAg
dmlydHVhbCB+UlRDRXJyb3JDYWxsYmFjaygpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVF
dmVudChjb25zdCBTdHJpbmcmIGVycm9ySW5mb3JtYXRpb24sIFJUQ1BlZXJDb25uZWN0aW9uKikg
PSAwOworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChjb25zdCBTdHJpbmcmIGVycm9ySW5m
b3JtYXRpb24pID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRXJyb3JDYWxsYmFjay5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9yQ2FsbGJhY2suaWRs
CmluZGV4IDRlNDBkMTRkYWUxN2RkYmQwYTYzZmFmNjdkYjg4MmE0YmFiM2NjMjUuLjgxMmUyNzQ0
ZjJhNjQ2MzU5NDA1Y2FhM2VmMWY5MThjZWI3Y2ZjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRXJyb3JDYWxsYmFjay5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFcnJvckNhbGxiYWNrLmlkbApAQCAtMzQs
NyArMzQsNyBAQCBtb2R1bGUgbWVkaWFzdHJlYW0gewogICAgICAgICBDb25kaXRpb25hbD1NRURJ
QV9TVFJFQU0sCiAgICAgICAgIENhbGxiYWNrCiAgICAgXSBSVENFcnJvckNhbGxiYWNrIHsKLSAg
ICAgICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBET01TdHJpbmcgZXJyb3JJbmZvcm1hdGlvbiwg
aW4gUlRDUGVlckNvbm5lY3Rpb24gc291cmNlKTsKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVu
dChpbiBET01TdHJpbmcgZXJyb3JJbmZvcm1hdGlvbik7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LmNwcAppbmRleCBkZmJjODliY2VhZDUxMjM1Yjc4MDhlYjAyMzc5MDczZDI0ZTUyM2MxLi5iNWQ4
MjU3NmVmZDY5Y2RlYWNhODgyNzZmODM5NDg5ZWQ1YzhjYjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApA
QCAtNDgsNyArNDgsOSBAQAogI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNr
LmgiCiAjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oIgogI2luY2x1
ZGUgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmgiCisjaW5jbHVkZSAiUlRDVm9p
ZFJlcXVlc3RJbXBsLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2lu
Y2x1ZGUgIlZvaWRDYWxsYmFjay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTE1MSwx
MCArMTUzLDc0IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmNyZWF0ZU9mZmVyKFBhc3NSZWZQ
dHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+IHN1CiAgICAgaWYgKGVjKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw+
IHJlcXVlc3QgPSBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y3JlYXRlKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCB0aGlz
KTsKKyAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw+IHJlcXVlc3Qg
PSBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKICAgICBtX3BlZXJI
YW5kbGVyLT5jcmVhdGVPZmZlcihyZXF1ZXN0LnJlbGVhc2UoKSwgY29uc3RyYWludHMpOwogfQog
Cit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpzZXRMb2NhbERlc2NyaXB0aW9uKFBhc3NSZWZQdHI8
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBwcnBTZXNzaW9uRGVzY3JpcHRpb24sIFBhc3NSZWZQdHI8
Vm9pZENhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFj
az4gZXJyb3JDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKG1fcmVhZHlT
dGF0ZSA9PSBSZWFkeVN0YXRlQ2xvc2luZyB8fCBtX3JlYWR5U3RhdGUgPT0gUmVhZHlTdGF0ZUNs
b3NlZCkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gc2Vzc2lvbkRlc2Ny
aXB0aW9uID0gcHJwU2Vzc2lvbkRlc2NyaXB0aW9uOworICAgIGlmICghc2Vzc2lvbkRlc2NyaXB0
aW9uKSB7CisgICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9FUlI7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBSZWZQdHI8UlRDVm9pZFJlcXVlc3RJbXBsPiByZXF1ZXN0ID0gUlRDVm9p
ZFJlcXVlc3RJbXBsOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdWNjZXNzQ2Fs
bGJhY2ssIGVycm9yQ2FsbGJhY2spOworICAgIG1fcGVlckhhbmRsZXItPnNldExvY2FsRGVzY3Jp
cHRpb24ocmVxdWVzdC5yZWxlYXNlKCksIHNlc3Npb25EZXNjcmlwdGlvbi0+ZGVzY3JpcHRvcigp
KTsKK30KKworUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IFJUQ1BlZXJDb25uZWN0
aW9uOjpsb2NhbERlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX3Jl
YWR5U3RhdGUgPT0gUmVhZHlTdGF0ZUNsb3NpbmcgfHwgbV9yZWFkeVN0YXRlID09IFJlYWR5U3Rh
dGVDbG9zZWQpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgfQorCisgICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3I+IGRlc2NyaXB0b3IgPSBtX3BlZXJIYW5kbGVyLT5sb2NhbERlc2NyaXB0aW9uKCk7CisgICAg
aWYgKCFkZXNjcmlwdG9yKQorICAgICAgICByZXR1cm4gMDsKKworICAgIFJlZlB0cjxSVENTZXNz
aW9uRGVzY3JpcHRpb24+IGRlc2MgPSBSVENTZXNzaW9uRGVzY3JpcHRpb246OmNyZWF0ZShkZXNj
cmlwdG9yLnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIGRlc2MucmVsZWFzZSgpOworfQorCit2b2lk
IFJUQ1BlZXJDb25uZWN0aW9uOjpzZXRSZW1vdGVEZXNjcmlwdGlvbihQYXNzUmVmUHRyPFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbj4gcHJwU2Vzc2lvbkRlc2NyaXB0aW9uLCBQYXNzUmVmUHRyPFZvaWRD
YWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+IGVy
cm9yQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX3JlYWR5U3RhdGUg
PT0gUmVhZHlTdGF0ZUNsb3NpbmcgfHwgbV9yZWFkeVN0YXRlID09IFJlYWR5U3RhdGVDbG9zZWQp
IHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IHNlc3Npb25EZXNjcmlwdGlv
biA9IHBycFNlc3Npb25EZXNjcmlwdGlvbjsKKyAgICBpZiAoIXNlc3Npb25EZXNjcmlwdGlvbikg
eworICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0SW1wbD4gcmVxdWVzdCA9IFJUQ1ZvaWRSZXF1
ZXN0SW1wbDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc3VjY2Vzc0NhbGxiYWNr
LCBlcnJvckNhbGxiYWNrKTsKKyAgICBtX3BlZXJIYW5kbGVyLT5zZXRSZW1vdGVEZXNjcmlwdGlv
bihyZXF1ZXN0LnJlbGVhc2UoKSwgc2Vzc2lvbkRlc2NyaXB0aW9uLT5kZXNjcmlwdG9yKCkpOwor
fQorCitQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gUlRDUGVlckNvbm5lY3Rpb246
OnJlbW90ZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX3JlYWR5
U3RhdGUgPT0gUmVhZHlTdGF0ZUNsb3NpbmcgfHwgbV9yZWFkeVN0YXRlID09IFJlYWR5U3RhdGVD
bG9zZWQpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgfQorCisgICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+
IGRlc2NyaXB0b3IgPSBtX3BlZXJIYW5kbGVyLT5yZW1vdGVEZXNjcmlwdGlvbigpOworICAgIGlm
ICghZGVzY3JpcHRvcikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8UlRDU2Vzc2lv
bkRlc2NyaXB0aW9uPiBkZXNjID0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpjcmVhdGUoZGVzY3Jp
cHRvci5yZWxlYXNlKCkpOworICAgIHJldHVybiBkZXNjLnJlbGVhc2UoKTsKK30KKwogdm9pZCBS
VENQZWVyQ29ubmVjdGlvbjo6dXBkYXRlSWNlKGNvbnN0IERpY3Rpb25hcnkmIHJ0Y0NvbmZpZ3Vy
YXRpb24sIGNvbnN0IERpY3Rpb25hcnkmIG1lZGlhQ29uc3RyYWludHMsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewogICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gUmVhZHlTdGF0ZUNsb3NpbmcgfHwgbV9y
ZWFkeVN0YXRlID09IFJlYWR5U3RhdGVDbG9zZWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAppbmRleCBkNGM0Y2Rm
ZDIxMTM4NTg0ZWM5ZmViNmM3MmQ2ODkzNjdkMGNiZTUzLi45NzZhYmRjNmQyNTkxNzIzMjcyZmRj
ODY2YTU5NWE3YTg3YWQ3ZDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCkBAIC00OSw3ICs0OSw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIE1lZGlhQ29uc3RyYWludHM7CiBjbGFzcyBSVENDb25maWd1
cmF0aW9uOwogY2xhc3MgUlRDRXJyb3JDYWxsYmFjazsKK2NsYXNzIFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbjsKIGNsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrOworY2xhc3MgVm9pZENh
bGxiYWNrOwogCiBjbGFzcyBSVENQZWVyQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFJU
Q1BlZXJDb25uZWN0aW9uPiwgcHVibGljIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCwg
cHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoKQEAg
LTU4LDYgKzYwLDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY3JlYXRlT2ZmZXIoUGFzc1JlZlB0
cjxSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxs
YmFjaz4sIGNvbnN0IERpY3Rpb25hcnkmIG1lZGlhQ29uc3RyYWludHMsIEV4Y2VwdGlvbkNvZGUm
KTsKIAorICAgIHZvaWQgc2V0TG9jYWxEZXNjcmlwdGlvbihQYXNzUmVmUHRyPFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbj4sIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiwgUGFzc1JlZlB0cjxSVENFcnJv
ckNhbGxiYWNrPiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uPiBsb2NhbERlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUmKTsKKworICAgIHZvaWQg
c2V0UmVtb3RlRGVzY3JpcHRpb24oUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+LCBQ
YXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4sIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gcmVt
b3RlRGVzY3JpcHRpb24oRXhjZXB0aW9uQ29kZSYpOworCiAgICAgU3RyaW5nIHJlYWR5U3RhdGUo
KSBjb25zdDsKIAogICAgIHZvaWQgdXBkYXRlSWNlKGNvbnN0IERpY3Rpb25hcnkmIHJ0Y0NvbmZp
Z3VyYXRpb24sIGNvbnN0IERpY3Rpb25hcnkmIG1lZGlhQ29uc3RyYWludHMsIEV4Y2VwdGlvbkNv
ZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5pZGwKaW5kZXggMDJmYTM0NTQ4ZGRjMmMxODA3OGM3YjI0OTc4NmVi
ODI3YWI4ZTE0ZC4uOWVlNWUwMTk5YjdlZWQwMGI2NTdmZmUxMWViYTZlOGQzYjBiYmNmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5pZGwKQEAgLTQxLDYgKzQxLDE2IEBAIG1vZHVsZSBtZWRpYXN0cmVhbSB7CiAg
ICAgICAgIHZvaWQgY3JlYXRlT2ZmZXIoaW4gW0NhbGxiYWNrXSBSVENTZXNzaW9uRGVzY3JpcHRp
b25DYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIGluIFtDYWxsYmFjayxPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIFJUQ0Vycm9yQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBEaWN0aW9uYXJ5IG1lZGlhQ29uc3RyYWludHMpCiAgICAg
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAorICAgICAgICB2b2lkIHNldExvY2FsRGVz
Y3JpcHRpb24oaW4gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCBpbiBbQ2FsbGJh
Y2ssIE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gVm9pZENhbGxiYWNrIHN1Y2Nlc3NDYWxs
YmFjaywgaW4gW0NhbGxiYWNrLCBPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFJUQ0Vycm9y
Q2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrKQorICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENTZXNzaW9uRGVzY3JpcHRpb24gbG9j
YWxEZXNjcmlwdGlvbgorICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwor
CisgICAgICAgIHZvaWQgc2V0UmVtb3RlRGVzY3JpcHRpb24oaW4gUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uIGRlc2NyaXB0aW9uLCBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gVm9pZENhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgaW4gW0NhbGxiYWNrLCBPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIFJUQ0Vycm9yQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrKQorICAg
ICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBSVENTZXNzaW9uRGVzY3JpcHRpb24gcmVtb3RlRGVzY3JpcHRpb24KKyAgICAgICAgICAgIGdl
dHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHJlYWR5U3RhdGU7CiAKICAgICAgICAgdm9pZCB1cGRhdGVJY2UoaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRGljdGlvbmFyeSBjb25maWd1cmF0aW9uLCBpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBEaWN0aW9uYXJ5IG1lZGlhQ29uc3RyYWludHMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmgKaW5kZXggMWExZTBhOTkxM2U2NmU2Mzgy
N2NjNzg2ODcxNGZlM2QzZjVhZjE1ZS4uMDZlZTA3MWM0NTU4ZDM0ZGFjYTk3ZjJjZTU3ZTU0YTg3
MWJhYzgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaApAQCAtMzcsMTMg
KzM3LDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUlRDUGVlckNvbm5lY3Rp
b247CiBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb247CiAKIGNsYXNzIFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbkNhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDU2Vzc2lvbkRlc2NyaXB0aW9u
Q2FsbGJhY2s+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SVENTZXNzaW9uRGVzY3JpcHRpb25D
YWxsYmFjaygpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChSVENTZXNzaW9uRGVz
Y3JpcHRpb24qLCBSVENQZWVyQ29ubmVjdGlvbiopID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaGFu
ZGxlRXZlbnQoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmlkbAppbmRleCA0
YTUzNmQ0ZDljMjgxMDk5MDAxZjczMjVlZWFhYzA0NzYxYjVlMDM3Li41YmU3NWU5MjA5OTMwNmIy
NDMxZmVjYTExNWRlYmNjOTQ4ODMyOWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNh
bGxiYWNrLmlkbApAQCAtMzQsNyArMzQsNyBAQCBtb2R1bGUgbWVkaWFzdHJlYW0gewogICAgICAg
ICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCiAgICAgICAgIENhbGxiYWNrCiAgICAgXSBSVENT
ZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjayB7Ci0gICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQo
aW4gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uIHNkcCwgaW4gUlRDUGVlckNvbm5lY3Rpb24gc291cmNl
KTsKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBSVENTZXNzaW9uRGVzY3JpcHRpb24g
c2RwKTsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdElt
cGwuY3BwCmluZGV4IGViODhlNjI1N2UxZGI1ZGM5MWQ4MzdlOGVhZDEyM2Y1Y2YyNjZkNjIuLjIz
YzU1M2ExNjQ5ZGVlYzA5OWEwZDdiYmMwYTUwNmI2Njk0MGI5ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCkBAIC00MiwxOCArNDIsMTcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3RJbXBsPiBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9u
Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxSVENFcnJvckNhbGxiYWNrPiBl
cnJvckNhbGxiYWNrLCBQYXNzUmVmUHRyPFJUQ1BlZXJDb25uZWN0aW9uPiBvd25lcikKK1Bhc3NS
ZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw+IFJUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3RJbXBsOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
UGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNr
LCBQYXNzUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCiB7Ci0gICAgUmVm
UHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsPiByZXF1ZXN0ID0gYWRvcHRSZWYo
bmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsKGNvbnRleHQsIHN1Y2Nlc3NDYWxs
YmFjaywgZXJyb3JDYWxsYmFjaywgb3duZXIpKTsKKyAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdEltcGw+IHJlcXVlc3QgPSBhZG9wdFJlZihuZXcgUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdEltcGwoY29udGV4dCwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNr
KSk7CiAgICAgcmVxdWVzdC0+c3VzcGVuZElmTmVlZGVkKCk7CiAgICAgcmV0dXJuIHJlcXVlc3Qu
cmVsZWFzZSgpOwogfQogCi1SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6UlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaz4gc3VjY2Vzc0NhbGxi
YWNrLCBQYXNzUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2ssIFBhc3NSZWZQ
dHI8UlRDUGVlckNvbm5lY3Rpb24+IG93bmVyKQorUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dEltcGw6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+
IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxSVENFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxi
YWNrKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCiAgICAgLCBtX3N1Y2Nl
c3NDYWxsYmFjayhzdWNjZXNzQ2FsbGJhY2spCiAgICAgLCBtX2Vycm9yQ2FsbGJhY2soZXJyb3JD
YWxsYmFjaykKLSAgICAsIG1fb3duZXIob3duZXIpCiB7CiB9CiAKQEAgLTY1LDcgKzY0LDcgQEAg
dm9pZCBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6cmVxdWVzdFN1Y2NlZWRlZChQ
YXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXMKIHsKICAgICBpZiAobV9zdWNjZXNzQ2FsbGJhY2spIHsK
ICAgICAgICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gc2Vzc2lvbkRlc2NyaXB0aW9u
ID0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpjcmVhdGUoZGVzY3JpcHRvcik7Ci0gICAgICAgIG1f
c3VjY2Vzc0NhbGxiYWNrLT5oYW5kbGVFdmVudChzZXNzaW9uRGVzY3JpcHRpb24uZ2V0KCksIG1f
b3duZXIuZ2V0KCkpOworICAgICAgICBtX3N1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQoc2Vz
c2lvbkRlc2NyaXB0aW9uLmdldCgpKTsKICAgICB9CiAKICAgICBjbGVhcigpOwpAQCAtNzQsNyAr
NzMsNyBAQCB2b2lkIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpyZXF1ZXN0U3Vj
Y2VlZGVkKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlcwogdm9pZCBSVENTZXNzaW9uRGVzY3JpcHRp
b25SZXF1ZXN0SW1wbDo6cmVxdWVzdEZhaWxlZChjb25zdCBTdHJpbmcmIGVycm9yKQogewogICAg
IGlmIChtX2Vycm9yQ2FsbGJhY2spCi0gICAgICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZl
bnQoZXJyb3IsIG1fb3duZXIuZ2V0KCkpOworICAgICAgICBtX2Vycm9yQ2FsbGJhY2stPmhhbmRs
ZUV2ZW50KGVycm9yKTsKIAogICAgIGNsZWFyKCk7CiB9CkBAIC04OCw3ICs4Nyw2IEBAIHZvaWQg
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNsZWFyKCkKIHsKICAgICBtX3N1Y2Nl
c3NDYWxsYmFjay5jbGVhcigpOwogICAgIG1fZXJyb3JDYWxsYmFjay5jbGVhcigpOwotICAgIG1f
b3duZXIuY2xlYXIoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25S
ZXF1ZXN0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oCmluZGV4IDc0YWViZmM5OGI4MTEyZmUyZmM4ODE5
NTUzYzgyNDhjNjU5Y2Y0YWEuLmQxYmNlZTAxMzUxM2FhNjdjMmIwNzZhOTA1MDFlY2U4NTYyZTE2
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmgKQEAgLTQ0LDcg
KzQ0LDcgQEAgY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s7CiAKIGNsYXNzIFJU
Q1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsIDogcHVibGljIFJUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3QsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsPiBjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2Fs
bGJhY2s+LCBQYXNzUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFJUQ1BlZXJD
b25uZWN0aW9uPik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdEltcGw+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxS
VENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFj
az4pOwogICAgIHZpcnR1YWwgflJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsKCk7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZChQYXNzUmVmUHRyPFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkRlc2NyaXB0b3I+KSBPVkVSUklERTsKQEAgLTU0LDEzICs1NCwxMiBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKIAogcHJpdmF0ZToKLSAgICBS
VENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
UGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRD
RXJyb3JDYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDUGVlckNvbm5lY3Rpb24+KTsKKyAgICBSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFz
c1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDRXJy
b3JDYWxsYmFjaz4pOwogCiAgICAgdm9pZCBjbGVhcigpOwogCiAgICAgUmVmUHRyPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbkNhbGxiYWNrPiBtX3N1Y2Nlc3NDYWxsYmFjazsKICAgICBSZWZQdHI8UlRD
RXJyb3JDYWxsYmFjaz4gbV9lcnJvckNhbGxiYWNrOwotICAgIFJlZlB0cjxSVENQZWVyQ29ubmVj
dGlvbj4gbV9vd25lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBs
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jYWU3NjEzN2U3NGZjNTQwNzA4MmYxNjVmNTU1OTM1OGExNTNiNmNi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENWb2lkUmVxdWVzdEltcGwuY3BwCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0
aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiUlRDVm9p
ZFJlcXVlc3RJbXBsLmgiCisKKyNpbmNsdWRlICJSVENFcnJvckNhbGxiYWNrLmgiCisjaW5jbHVk
ZSAiUlRDUGVlckNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0SW1wbD4gUlRDVm9p
ZFJlcXVlc3RJbXBsOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFz
c1JlZlB0cjxWb2lkQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxSVENFcnJv
ckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQoreworICAgIFJlZlB0cjxSVENWb2lkUmVxdWVzdElt
cGw+IHJlcXVlc3QgPSBhZG9wdFJlZihuZXcgUlRDVm9pZFJlcXVlc3RJbXBsKGNvbnRleHQsIHN1
Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaykpOworICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5l
ZWRlZCgpOworICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKK30KKworUlRDVm9pZFJlcXVl
c3RJbXBsOjpSVENWb2lkUmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxS
VENFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNv
bnRleHQsIHRoaXMpCisgICAgLCBtX3N1Y2Nlc3NDYWxsYmFjayhzdWNjZXNzQ2FsbGJhY2spCisg
ICAgLCBtX2Vycm9yQ2FsbGJhY2soZXJyb3JDYWxsYmFjaykKK3sKK30KKworUlRDVm9pZFJlcXVl
c3RJbXBsOjp+UlRDVm9pZFJlcXVlc3RJbXBsKCkKK3sKK30KKwordm9pZCBSVENWb2lkUmVxdWVz
dEltcGw6OnJlcXVlc3RTdWNjZWVkZWQoKQoreworICAgIGlmIChtX3N1Y2Nlc3NDYWxsYmFjaykK
KyAgICAgICAgbV9zdWNjZXNzQ2FsbGJhY2stPmhhbmRsZUV2ZW50KCk7CisKKyAgICBjbGVhcigp
OworfQorCit2b2lkIFJUQ1ZvaWRSZXF1ZXN0SW1wbDo6cmVxdWVzdEZhaWxlZChjb25zdCBTdHJp
bmcmIGVycm9yKQoreworICAgIGlmIChtX2Vycm9yQ2FsbGJhY2suZ2V0KCkpCisgICAgICAgIG1f
ZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoZXJyb3IpOworCisgICAgY2xlYXIoKTsKK30KKwor
dm9pZCBSVENWb2lkUmVxdWVzdEltcGw6OnN0b3AoKQoreworICAgIGNsZWFyKCk7Cit9CisKK3Zv
aWQgUlRDVm9pZFJlcXVlc3RJbXBsOjpjbGVhcigpCit7CisgICAgbV9zdWNjZXNzQ2FsbGJhY2su
Y2xlYXIoKTsKKyAgICBtX2Vycm9yQ2FsbGJhY2suY2xlYXIoKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjY1N2FiZmM3YzZiMzI5MmE1MzM0YzQxOWNmMmE0N2UyOTJmNzJjYjYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Zv
aWRSZXF1ZXN0SW1wbC5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgor
ICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1ZvaWRS
ZXF1ZXN0SW1wbF9oCisjZGVmaW5lIFJUQ1ZvaWRSZXF1ZXN0SW1wbF9oCisKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAi
UlRDVm9pZFJlcXVlc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENFcnJv
ckNhbGxiYWNrOworY2xhc3MgVm9pZENhbGxiYWNrOworCitjbGFzcyBSVENWb2lkUmVxdWVzdElt
cGwgOiBwdWJsaWMgUlRDVm9pZFJlcXVlc3QsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0SW1wbD4gY3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4sIFBhc3NSZWZQ
dHI8UlRDRXJyb3JDYWxsYmFjaz4pOworICAgIHZpcnR1YWwgflJUQ1ZvaWRSZXF1ZXN0SW1wbCgp
OworCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdEZhaWxlZChjb25zdCBTdHJpbmcmIGVycm9yKTsKKworICAgIC8vIEFjdGl2ZURP
TU9iamVjdAorICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CisKK3ByaXZhdGU6Cisg
ICAgUlRDVm9pZFJlcXVlc3RJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRy
PFZvaWRDYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4pOworCisgICAgdm9p
ZCBjbGVhcigpOworCisgICAgUmVmUHRyPFZvaWRDYWxsYmFjaz4gbV9zdWNjZXNzQ2FsbGJhY2s7
CisgICAgUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+IG1fZXJyb3JDYWxsYmFjazsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNlbmRpZiAvLyBSVENWb2lkUmVxdWVzdEltcGxfaAorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA5
MWM0NDYxN2EwN2E1ZTMzOTJlM2IxMWQ1N2U3ZTczZjI4ZmUzZjU0Li42ZDc4MTljYjIyYmI5MzFh
ZTA1YTViZGJhNTlhNWM0MGRlYzQ4MDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00NjUsNiArNDY1
LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3Jp
cHRpb25EZXNjcmlwdG9yLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0v
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0LmgnLAorICAgICAgICAg
ICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0LmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL01l
ZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW0uY3BwJywKQEAgLTE2MTksNiArMTYyMCw4IEBACiAgICAg
ICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFj
ay5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3RJbXBsLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oJywKKyAgICAgICAgICAgICdNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAnLAorICAgICAgICAgICAgJ01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmgnLAogICAgICAgICAgICAgJ01vZHVs
ZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCcsCiAgICAgICAgICAgICAnTW9k
dWxlcy9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uaCcsCiAgICAgICAgICAgICAnTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGllbnQuaCcsCkBAIC04MzQ4LDYgKzgzNTEsNyBA
QAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDSUNFQ2FuZGlk
YXRlRGVzY3JpcHRvci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBv
cnQvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dC5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDVm9p
ZFJlcXVlc3QuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dl
YlNjcm9sbGJhclRoZW1lR2VvbWV0cnlOYXRpdmUuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9jaHJvbWl1bS9zdXBwb3J0L1dlYlNjcm9sbGJhclRoZW1lR2VvbWV0cnlOYXRpdmUuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJTY3JvbGxiYXJJbXBsLmNw
cCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L1dlYlJUQ1ZvaWRSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L3N1cHBvcnQvV2ViUlRDVm9pZFJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlMjQyMTkzYmFkZWZl
ZTUyZjQ4NWFkMzg2ZThhODA5NGZjMDVlMmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1ZvaWRSZXF1ZXN0LmNwcApAQCAt
MCwwICsxLDk3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKworI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENWb2lkUmVxdWVzdC5oPgorCisjaW5jbHVkZSAi
UlRDVm9pZFJlcXVlc3QuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlJUQ1ZvaWRSZXF1
ZXN0OjpXZWJSVENWb2lkUmVxdWVzdChjb25zdCBQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0PiYg
Y29uc3RyYWludHMpCisgICAgOiBtX3ByaXZhdGUoY29uc3RyYWludHMpCit7Cit9CisKK3ZvaWQg
V2ViUlRDVm9pZFJlcXVlc3Q6OmFzc2lnbihjb25zdCBXZWJSVENWb2lkUmVxdWVzdCYgb3RoZXIp
Cit7CisgICAgbV9wcml2YXRlID0gb3RoZXIubV9wcml2YXRlOworfQorCit2b2lkIFdlYlJUQ1Zv
aWRSZXF1ZXN0OjpyZXNldCgpCit7CisgICAgbV9wcml2YXRlLnJlc2V0KCk7Cit9CisKK3ZvaWQg
V2ViUlRDVm9pZFJlcXVlc3Q6OnJlcXVlc3RTdWNjZWVkZWQoKSBjb25zdAoreworICAgIEFTU0VS
VChtX3ByaXZhdGUuZ2V0KCkpOworICAgIG1fcHJpdmF0ZS0+cmVxdWVzdFN1Y2NlZWRlZCgpOwor
fQorCit2b2lkIFdlYlJUQ1ZvaWRSZXF1ZXN0OjpyZXF1ZXN0RmFpbGVkKGNvbnN0IFdlYlN0cmlu
ZyYgZXJyb3IpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fcHJpdmF0ZS5nZXQoKSk7CisgICAgbV9w
cml2YXRlLT5yZXF1ZXN0RmFpbGVkKGVycm9yKTsKK30KKworY2xhc3MgRXh0cmFEYXRhQ29udGFp
bmVyIDogcHVibGljIFdlYkNvcmU6OlJUQ1ZvaWRSZXF1ZXN0OjpFeHRyYURhdGEgeworcHVibGlj
OgorICAgIEV4dHJhRGF0YUNvbnRhaW5lcihXZWJSVENWb2lkUmVxdWVzdDo6RXh0cmFEYXRhKiBl
eHRyYURhdGEpIDogbV9leHRyYURhdGEoV1RGOjphZG9wdFB0cihleHRyYURhdGEpKSB7IH0KKwor
ICAgIFdlYlJUQ1ZvaWRSZXF1ZXN0OjpFeHRyYURhdGEqIGV4dHJhRGF0YSgpIHsgcmV0dXJuIG1f
ZXh0cmFEYXRhLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgT3duUHRyPFdlYlJUQ1ZvaWRSZXF1
ZXN0OjpFeHRyYURhdGE+IG1fZXh0cmFEYXRhOworfTsKKworV2ViUlRDVm9pZFJlcXVlc3Q6OkV4
dHJhRGF0YSogV2ViUlRDVm9pZFJlcXVlc3Q6OmV4dHJhRGF0YSgpIGNvbnN0Cit7CisgICAgUmVm
UHRyPFJUQ1ZvaWRSZXF1ZXN0OjpFeHRyYURhdGE+IGRhdGEgPSBtX3ByaXZhdGUtPmV4dHJhRGF0
YSgpOworICAgIGlmICghZGF0YSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEV4dHJhRGF0YUNvbnRhaW5lcio+KGRhdGEuZ2V0KCkpLT5leHRyYURhdGEoKTsKK30K
Kwordm9pZCBXZWJSVENWb2lkUmVxdWVzdDo6c2V0RXh0cmFEYXRhKEV4dHJhRGF0YSogZXh0cmFE
YXRhKQoreworICAgIG1fcHJpdmF0ZS0+c2V0RXh0cmFEYXRhKGFkb3B0UmVmKG5ldyBFeHRyYURh
dGFDb250YWluZXIoZXh0cmFEYXRhKSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXIuY3BwCmluZGV4IDg1ZDAyNjJjMzdkNjkxZDRhNjU4YWRlNWJjNmQwNGQ5NzkxYzhlZDEuLjBm
ZDExMGI5NjFiMzcyYmQ4YWZhZmNjYzNlMmJlZmZhMmEzOWNjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlci5oIgogCiAjaW5jbHVkZSAiUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xp
ZW50LmgiCisjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oIgogI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ5LDYg
KzUwLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShQYXNzUmVmUHRy
PFJUQ0NvbmZpZ3VyYXRpb24+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSBPVkVSUklE
RTsKIAogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVPZmZlcihQYXNzUmVmUHRyPFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3Q+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TG9jYWxEZXNjcmlwdGlvbihQYXNzUmVmUHRyPFJUQ1Zv
aWRSZXF1ZXN0PiwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFJlbW90ZURlc2NyaXB0aW9uKFBhc3NSZWZQ
dHI8UlRDVm9pZFJlcXVlc3Q+LCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2Ny
aXB0b3I+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvcj4gbG9jYWxEZXNjcmlwdGlvbigpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiByZW1vdGVEZXNj
cmlwdGlvbigpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJY2UoUGFzc1JlZlB0
cjxSVENDb25maWd1cmF0aW9uPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBib29sIGFkZEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ0ljZUNh
bmRpZGF0ZURlc2NyaXB0b3I+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFt
KFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0
cmFpbnRzPikgT1ZFUlJJREU7CkBAIC04Myw2ICs4OCwyNCBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlckR1bW15OjpjcmVhdGVPZmZlcihQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbgogewogfQogCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15OjpzZXRMb2Nh
bERlc2NyaXB0aW9uKFBhc3NSZWZQdHI8UlRDVm9pZFJlcXVlc3Q+LCBQYXNzUmVmUHRyPFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+KQoreworfQorCit2b2lkIFJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlckR1bW15OjpzZXRSZW1vdGVEZXNjcmlwdGlvbihQYXNzUmVmUHRyPFJUQ1ZvaWRS
ZXF1ZXN0PiwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPikKK3sK
K30KKworUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiBSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJEdW1teTo6bG9jYWxEZXNjcmlwdGlvbigpCit7CisgICAgcmV0dXJu
IDA7Cit9CisKK1Bhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyRHVtbXk6OnJlbW90ZURlc2NyaXB0aW9uKCkKK3sKKyAgICBy
ZXR1cm4gMDsKK30KKwogYm9vbCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJEdW1teTo6YWRkU3Ry
ZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiwgUGFzc1JlZlB0cjxNZWRpYUNv
bnN0cmFpbnRzPikKIHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ci5oCmluZGV4IDBjNzMwYjJhY2Q4YjgwNTUxZTJhYTAwNWRkYTFiMDA5N2IxZjQxYTUuLmE0MzBh
NzFhNjE2N2I1ZWI0MTViYTc2NmUzZDk4NjdmNDJjYTExMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlci5oCkBAIC00NSw2ICs0NSw3IEBAIGNsYXNzIFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0
b3I7CiBjbGFzcyBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQ7CiBjbGFzcyBSVENTZXNz
aW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOwogY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdDsKK2NsYXNzIFJUQ1ZvaWRSZXF1ZXN0OwogCiBjbGFzcyBSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXIgewogcHVibGljOgpAQCAtNTQsNiArNTUsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBpbml0aWFsaXplKFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4sIFBhc3NSZWZQdHI8
TWVkaWFDb25zdHJhaW50cz4pID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVPZmZlcihQ
YXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q+LCBQYXNzUmVmUHRyPE1lZGlh
Q29uc3RyYWludHM+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldExvY2FsRGVzY3JpcHRpb24o
UGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdD4sIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0
aW9uRGVzY3JpcHRvcj4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVtb3RlRGVzY3JpcHRp
b24oUGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdD4sIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvcj4pID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UlRDU2Vzc2lv
bkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gbG9jYWxEZXNjcmlwdGlvbigpID0gMDsKKyAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gcmVtb3RlRGVz
Y3JpcHRpb24oKSA9IDA7CiAgICAgdmlydHVhbCBib29sIHVwZGF0ZUljZShQYXNzUmVmUHRyPFJU
Q0NvbmZpZ3VyYXRpb24+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSA9IDA7CiAgICAg
dmlydHVhbCBib29sIGFkZEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZURl
c2NyaXB0b3I+KSA9IDA7CiAgICAgdmlydHVhbCBib29sIGFkZFN0cmVhbShQYXNzUmVmUHRyPE1l
ZGlhU3RyZWFtRGVzY3JpcHRvcj4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1ZvaWRS
ZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENWb2lkUmVx
dWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIzZTM5ZmEwOTgzN2IyMWMxYzcxN2YyYTE2ZmRjNWI1MTRkNzkw
NmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SVENWb2lkUmVxdWVzdC5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9u
LgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1Zv
aWRSZXF1ZXN0X2gKKyNkZWZpbmUgUlRDVm9pZFJlcXVlc3RfaAorCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRDVm9pZFJlcXVl
c3QgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENWb2lkUmVxdWVzdD4geworcHVibGljOgorICAgIGNs
YXNzIEV4dHJhRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPEV4dHJhRGF0YT4geworICAgIHB1Ymxp
YzoKKyAgICAgICAgdmlydHVhbCB+RXh0cmFEYXRhKCkgeyB9CisgICAgfTsKKworICAgIHZpcnR1
YWwgflJUQ1ZvaWRSZXF1ZXN0KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN1Y2Nl
ZWRlZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEZhaWxlZChjb25zdCBTdHJpbmcm
IGVycm9yKSA9IDA7CisKKyAgICBQYXNzUmVmUHRyPEV4dHJhRGF0YT4gZXh0cmFEYXRhKCkgY29u
c3QgeyByZXR1cm4gbV9leHRyYURhdGE7IH0KKyAgICB2b2lkIHNldEV4dHJhRGF0YShQYXNzUmVm
UHRyPEV4dHJhRGF0YT4gZXh0cmFEYXRhKSB7IG1fZXh0cmFEYXRhID0gZXh0cmFEYXRhOyB9CisK
K3Byb3RlY3RlZDoKKyAgICBSVENWb2lkUmVxdWVzdCgpIHsgfQorCitwcml2YXRlOgorICAgIFJl
ZlB0cjxFeHRyYURhdGE+IG1fZXh0cmFEYXRhOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFJUQ1ZvaWRS
ZXF1ZXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlckNocm9taXVtLmNwcAppbmRleCBhMDAyMjAyN2EyZTJlY2NiOWVjZWVlY2I5MGY0MjEzY2Qx
M2QyN2Q5Li4yMjUwNzEwZTcwMDU4ZDU0MzcxNDQyNmQ4NzVlMmNiNjZhZjliMTE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0u
Y3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ0lDRUNhbmRpZGF0
ZURlc2NyaXB0b3IuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
RGVzY3JpcHRvci5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25S
ZXF1ZXN0Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1ZvaWRSZXF1ZXN0Lmg+CiAjaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODEsNiArODIs
MjIgQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6Y3JlYXRlT2ZmZXIo
UGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHQKICAgICBtX3dlYkhhbmRsZXItPmNyZWF0ZU9m
ZmVyKHJlcXVlc3QsIGNvbnN0cmFpbnRzKTsKIH0KIAordm9pZCBSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXJDaHJvbWl1bTo6c2V0TG9jYWxEZXNjcmlwdGlvbihQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1
ZXN0PiByZXF1ZXN0LCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+
IHNlc3Npb25EZXNjcmlwdGlvbikKK3sKKyAgICBpZiAoIW1fd2ViSGFuZGxlcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV93ZWJIYW5kbGVyLT5zZXRMb2NhbERlc2NyaXB0aW9uKHJlcXVlc3Qs
IHNlc3Npb25EZXNjcmlwdGlvbik7Cit9CisKK3ZvaWQgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
Q2hyb21pdW06OnNldFJlbW90ZURlc2NyaXB0aW9uKFBhc3NSZWZQdHI8UlRDVm9pZFJlcXVlc3Q+
IHJlcXVlc3QsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gc2Vz
c2lvbkRlc2NyaXB0aW9uKQoreworICAgIGlmICghbV93ZWJIYW5kbGVyKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX3dlYkhhbmRsZXItPnNldFJlbW90ZURlc2NyaXB0aW9uKHJlcXVlc3QsIHNl
c3Npb25EZXNjcmlwdGlvbik7Cit9CisKIGJvb2wgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hy
b21pdW06OnVwZGF0ZUljZShQYXNzUmVmUHRyPFJUQ0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRp
b24sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gY29uc3RyYWludHMpCiB7CiAgICAgaWYg
KCFtX3dlYkhhbmRsZXIpCkBAIC05Nyw2ICsxMTQsMjIgQEAgYm9vbCBSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXJDaHJvbWl1bTo6YWRkSWNlQ2FuZGlkYXRlKFBhc3NSZWZQdHI8UlRDSWNlQ2FuZGlk
YXQKICAgICByZXR1cm4gbV93ZWJIYW5kbGVyLT5hZGRJQ0VDYW5kaWRhdGUoaWNlQ2FuZGlkYXRl
KTsKIH0KIAorUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiBSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6bG9jYWxEZXNjcmlwdGlvbigpCit7CisgICAg
aWYgKCFtX3dlYkhhbmRsZXIpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1fd2Vi
SGFuZGxlci0+bG9jYWxEZXNjcmlwdGlvbigpOworfQorCitQYXNzUmVmUHRyPFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkRlc2NyaXB0b3I+IFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpy
ZW1vdGVEZXNjcmlwdGlvbigpCit7CisgICAgaWYgKCFtX3dlYkhhbmRsZXIpCisgICAgICAgIHJl
dHVybiAwOworCisgICAgcmV0dXJuIG1fd2ViSGFuZGxlci0+cmVtb3RlRGVzY3JpcHRpb24oKTsK
K30KKwogYm9vbCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6YWRkU3RyZWFtKFBh
c3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiBtZWRpYVN0cmVhbSwgUGFzc1JlZlB0cjxN
ZWRpYUNvbnN0cmFpbnRzPiBjb25zdHJhaW50cykKIHsKICAgICBpZiAoIW1fd2ViSGFuZGxlcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVt
L1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1
bS5oCmluZGV4IDg5OTNjMTE4NzExNzgwNDVjNzQ2MDQxNWY1NmEwMjA0ZDBkNjFkYmIuLmE3YmFj
ODE2MTFiMGJkMTVkMWRjODg0M2FiYjY5M2FkYmEzYTczYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Y2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaApAQCAtNTUsNiArNTUs
MTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpbml0aWFsaXplKFBhc3NSZWZQdHI8UlRD
Q29uZmlndXJhdGlvbj4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURFOwog
CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9mZmVyKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdD4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbERlc2NyaXB0aW9uKFBhc3NSZWZQdHI8UlRDVm9pZFJl
cXVlc3Q+LCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+KSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVtb3RlRGVzY3JpcHRpb24oUGFzc1JlZlB0cjxS
VENWb2lkUmVxdWVzdD4sIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
cj4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRp
b25EZXNjcmlwdG9yPiBsb2NhbERlc2NyaXB0aW9uKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IHJlbW90ZURlc2NyaXB0
aW9uKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHVwZGF0ZUljZShQYXNzUmVmUHRyPFJU
Q0NvbmZpZ3VyYXRpb24+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIGJvb2wgYWRkSWNlQ2FuZGlkYXRlKFBhc3NSZWZQdHI8UlRDSWNlQ2FuZGlk
YXRlRGVzY3JpcHRvcj4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhZGRTdHJlYW0oUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWlu
dHM+KSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCA1ZDI2ZmI2MjZhMTc0OWVhODc2ZmY1NzExNzY2YzA2YzU3N2UzNDMwLi43YWFk
OWJkZTVmYWU3MDE3ZDI2NTZhNTI5Yzc5OTcwYmI3MzQxZTFjIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTItMDkt
MDUgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CisKKyAgICAgICAgTWVk
aWFTdHJlYW0gQVBJOiBBZGQgdGhlIGxvY2FsIGFuZCByZW1vdGUgZGVzY3JpcHRpb24gZnVuY3Rp
b25hbGl0eSB0byBSVENQZWVyQ29ubmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbiBhZGRpdGlvbiB0byBhZGRpbmcgdGhlIG5ldyBtZXRob2Rz
IHRvIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIgSSBjbGVhbmVkCisgICAgICAgIHVw
IHRoZSB0YXNrIGRlZmluaXRpb25zIGEgYml0LiBUaGVyZSB3YXMgbm8gbmVlZCB0byBoYXZlIHRo
ZW0gaW4gdGhlIGhlYWRlciBmaWxlLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHA6CisgICAgICAgIChSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0U3VjY2VkZWRUYXNrKToKKyAgICAgICAgKFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3RTdWNjZWRlZFRhc2s6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3RTdWNjZWRlZFRhc2spOgorICAgICAgICAoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEZh
aWxlZFRhc2spOgorICAgICAgICAoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEZhaWxlZFRh
c2s6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RGYWlsZWRUYXNrKToKKyAgICAgICAgKFJU
Q1ZvaWRSZXF1ZXN0VGFzayk6CisgICAgICAgIChSVENWb2lkUmVxdWVzdFRhc2s6OlJUQ1ZvaWRS
ZXF1ZXN0VGFzayk6CisgICAgICAgIChNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpj
cmVhdGVPZmZlcik6CisgICAgICAgIChNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpz
ZXRMb2NhbERlc2NyaXB0aW9uKToKKyAgICAgICAgKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXI6OnNldFJlbW90ZURlc2NyaXB0aW9uKToKKyAgICAgICAgKE1vY2tXZWJSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXI6OmxvY2FsRGVzY3JpcHRpb24pOgorICAgICAgICAoTW9ja1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlcjo6cmVtb3RlRGVzY3JpcHRpb24pOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaDoKKyAg
ICAgICAgKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIpOgorCiAyMDEyLTA5LTA0ICBU
aW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEhhdmUgTlJX
VCBsb2cgbW9yZSBvdXRwdXQgd2hlbiBjcmFzaCBsb2dzIGFyZSBtaXNzaW5nCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuY3BwCmluZGV4IDdmODJhNGY3M2E5ZWExZWZhNDk4M2ViM2QxYjg2
YmQzMGZjZWFhMzIuLmI2NjA0MmRjNGViZmY0YWE1ODU0ZjEyMjY4NTZjNDI1NDM5ZjgyYTUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01v
Y2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCkBAIC0zNywzMyArMzcsNzEgQEAKICNp
bmNsdWRlIDxwdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50Lmg+CiAjaW5j
bHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaD4KICNpbmNs
dWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oPgorI2luY2x1ZGUg
PHB1YmxpYy9XZWJSVENWb2lkUmVxdWVzdC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJTdHJpbmcu
aD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViVmVjdG9yLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CiAKLU1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OlN1Y2Nlc3NDYWxsYmFja1Rh
c2s6OlN1Y2Nlc3NDYWxsYmFja1Rhc2soTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciog
b2JqZWN0LCBjb25zdCBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3ImIHJlc3VsdCkK
LSAgICA6IE1ldGhvZFRhc2s8TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcj4ob2JqZWN0
KQotICAgICwgbV9yZXF1ZXN0KHJlcXVlc3QpCi0gICAgLCBtX3Jlc3VsdChyZXN1bHQpCi17Ci19
CitjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0U3VjY2VkZWRUYXNrIDogcHVibGlj
IE1ldGhvZFRhc2s8TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcj4geworcHVibGljOgor
ICAgIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RTdWNjZWRlZFRhc2soTW9ja1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlciogb2JqZWN0LCBjb25zdCBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uRGVzY3JpcHRvciYgcmVzdWx0KQorICAgICAgICA6IE1ldGhvZFRhc2s8TW9ja1dl
YlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcj4ob2JqZWN0KQorICAgICAgICAsIG1fcmVxdWVzdChy
ZXF1ZXN0KQorICAgICAgICAsIG1fcmVzdWx0KHJlc3VsdCkKKyAgICB7CisgICAgfQogCi12b2lk
IE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OlN1Y2Nlc3NDYWxsYmFja1Rhc2s6OnJ1
bklmVmFsaWQoKQotewotICAgIG1fcmVxdWVzdC5yZXF1ZXN0U3VjY2VlZGVkKG1fcmVzdWx0KTsK
LX0KKyAgICB2aXJ0dWFsIHZvaWQgcnVuSWZWYWxpZCgpIE9WRVJSSURFCisgICAgeworICAgICAg
ICBtX3JlcXVlc3QucmVxdWVzdFN1Y2NlZWRlZChtX3Jlc3VsdCk7CisgICAgfQogCi1Nb2NrV2Vi
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpGYWlsdXJlQ2FsbGJhY2tUYXNrOjpGYWlsdXJlQ2Fs
bGJhY2tUYXNrKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIqIG9iamVjdCwgY29uc3Qg
V2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiByZXF1ZXN0KQotICAgIDog
TWV0aG9kVGFzazxNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyPihvYmplY3QpCi0gICAg
LCBtX3JlcXVlc3QocmVxdWVzdCkKLXsKLX0KK3ByaXZhdGU6CisgICAgV2ViS2l0OjpXZWJSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0IG1fcmVxdWVzdDsKKyAgICBXZWJLaXQ6OldlYlJUQ1Nl
c3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IgbV9yZXN1bHQ7Cit9OworCitjbGFzcyBSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0RmFpbGVkVGFzayA6IHB1YmxpYyBNZXRob2RUYXNrPE1vY2tX
ZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI+IHsKK3B1YmxpYzoKKyAgICBSVENTZXNzaW9uRGVz
Y3JpcHRpb25SZXF1ZXN0RmFpbGVkVGFzayhNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
KiBvYmplY3QsIGNvbnN0IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCYg
cmVxdWVzdCkKKyAgICAgICAgOiBNZXRob2RUYXNrPE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXI+KG9iamVjdCkKKyAgICAgICAgLCBtX3JlcXVlc3QocmVxdWVzdCkKKyAgICB7CisgICAg
fQogCi12b2lkIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OkZhaWx1cmVDYWxsYmFj
a1Rhc2s6OnJ1bklmVmFsaWQoKQotewotICAgIG1fcmVxdWVzdC5yZXF1ZXN0RmFpbGVkKCJURVNU
X0VSUk9SIik7Ci19CisgICAgdmlydHVhbCB2b2lkIHJ1bklmVmFsaWQoKSBPVkVSUklERQorICAg
IHsKKyAgICAgICAgbV9yZXF1ZXN0LnJlcXVlc3RGYWlsZWQoIlRFU1RfRVJST1IiKTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0
IG1fcmVxdWVzdDsKK307CisKK2NsYXNzIFJUQ1ZvaWRSZXF1ZXN0VGFzayA6IHB1YmxpYyBNZXRo
b2RUYXNrPE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI+IHsKK3B1YmxpYzoKKyAgICBS
VENWb2lkUmVxdWVzdFRhc2soTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciogb2JqZWN0
LCBjb25zdCBXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0JiByZXF1ZXN0LCBib29sIHN1Y2NlZWRl
ZCkKKyAgICAgICAgOiBNZXRob2RUYXNrPE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI+
KG9iamVjdCkKKyAgICAgICAgLCBtX3JlcXVlc3QocmVxdWVzdCkKKyAgICAgICAgLCBtX3N1Y2Nl
ZWRlZChzdWNjZWVkZWQpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBydW5JZlZh
bGlkKCkgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIGlmIChtX3N1Y2NlZWRlZCkKKyAgICAgICAg
ICAgIG1fcmVxdWVzdC5yZXF1ZXN0U3VjY2VlZGVkKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIG1fcmVxdWVzdC5yZXF1ZXN0RmFpbGVkKCJURVNUX0VSUk9SIik7CisgICAgfQorCitwcml2
YXRlOgorICAgIFdlYktpdDo6V2ViUlRDVm9pZFJlcXVlc3QgbV9yZXF1ZXN0OworICAgIGJvb2wg
bV9zdWNjZWVkZWQ7Cit9OworCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAogTW9ja1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlcjo6TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcihXZWJS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQqIGNsaWVudCkKICAgICA6IG1fY2xpZW50KGNs
aWVudCkKQEAgLTExNyw5ICsxNTUsMzcgQEAgdm9pZCBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyOjpjcmVhdGVPZmZlcihjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb24KICAgICBp
ZiAoY29uc3RyYWludHMuZ2V0TWFuZGF0b3J5Q29uc3RyYWludFZhbHVlKCJzdWNjZWVkIiwgc2hv
dWxkU3VjY2VlZCkgJiYgc2hvdWxkU3VjY2VlZCA9PSAidHJ1ZSIpIHsKICAgICAgICAgV2ViUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciBzZXNzaW9uRGVzY3JpcHRpb247CiAgICAgICAg
IHNlc3Npb25EZXNjcmlwdGlvbi5pbml0aWFsaXplKCJvZmZlciIsICJTb21lIFNEUCBoZXJlIik7
Ci0gICAgICAgIHBvc3RUYXNrKG5ldyBTdWNjZXNzQ2FsbGJhY2tUYXNrKHRoaXMsIHJlcXVlc3Qs
IHNlc3Npb25EZXNjcmlwdGlvbikpOworICAgICAgICBwb3N0VGFzayhuZXcgUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uUmVxdWVzdFN1Y2NlZGVkVGFzayh0aGlzLCByZXF1ZXN0LCBzZXNzaW9uRGVzY3Jp
cHRpb24pKTsKKyAgICB9IGVsc2UKKyAgICAgICAgcG9zdFRhc2sobmV3IFJUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3RGYWlsZWRUYXNrKHRoaXMsIHJlcXVlc3QpKTsKK30KKwordm9pZCBNb2Nr
V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpzZXRMb2NhbERlc2NyaXB0aW9uKGNvbnN0IFdl
YlJUQ1ZvaWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25E
ZXNjcmlwdG9yJiBsb2NhbERlc2NyaXB0aW9uKQoreworICAgIGlmICghbG9jYWxEZXNjcmlwdGlv
bi5pc051bGwoKSAmJiBsb2NhbERlc2NyaXB0aW9uLnR5cGUoKSA9PSAib2ZmZXIiKSB7CisgICAg
ICAgIG1fbG9jYWxEZXNjcmlwdGlvbiA9IGxvY2FsRGVzY3JpcHRpb247CisgICAgICAgIHBvc3RU
YXNrKG5ldyBSVENWb2lkUmVxdWVzdFRhc2sodGhpcywgcmVxdWVzdCwgdHJ1ZSkpOworICAgIH0g
ZWxzZQorICAgICAgICBwb3N0VGFzayhuZXcgUlRDVm9pZFJlcXVlc3RUYXNrKHRoaXMsIHJlcXVl
c3QsIGZhbHNlKSk7Cit9CisKK3ZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6
c2V0UmVtb3RlRGVzY3JpcHRpb24oY29uc3QgV2ViUlRDVm9pZFJlcXVlc3QmIHJlcXVlc3QsIGNv
bnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3ImIHJlbW90ZURlc2NyaXB0aW9u
KQoreworICAgIGlmICghcmVtb3RlRGVzY3JpcHRpb24uaXNOdWxsKCkgJiYgcmVtb3RlRGVzY3Jp
cHRpb24udHlwZSgpID09ICJhbnN3ZXIiKSB7CisgICAgICAgIG1fcmVtb3RlRGVzY3JpcHRpb24g
PSByZW1vdGVEZXNjcmlwdGlvbjsKKyAgICAgICAgcG9zdFRhc2sobmV3IFJUQ1ZvaWRSZXF1ZXN0
VGFzayh0aGlzLCByZXF1ZXN0LCB0cnVlKSk7CiAgICAgfSBlbHNlCi0gICAgICAgIHBvc3RUYXNr
KG5ldyBGYWlsdXJlQ2FsbGJhY2tUYXNrKHRoaXMsIHJlcXVlc3QpKTsKKyAgICAgICAgcG9zdFRh
c2sobmV3IFJUQ1ZvaWRSZXF1ZXN0VGFzayh0aGlzLCByZXF1ZXN0LCBmYWxzZSkpOworfQorCitX
ZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXI6OmxvY2FsRGVzY3JpcHRpb24oKQoreworICAgIHJldHVybiBtX2xvY2FsRGVzY3Jp
cHRpb247Cit9CisKK1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IgTW9ja1dlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6cmVtb3RlRGVzY3JpcHRpb24oKQoreworICAgIHJldHVy
biBtX3JlbW90ZURlc2NyaXB0aW9uOwogfQogCiBib29sIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXI6OnVwZGF0ZUlDRShjb25zdCBXZWJSVENDb25maWd1cmF0aW9uJiwgY29uc3QgV2Vi
TWVkaWFDb25zdHJhaW50cyYpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmggYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKaW5kZXggNDJk
NDBkNzJhMTIyMDc3Njk0ZTU2ZDY0NzFjYjcxODY0NTJjMWZjZi4uMTgwNTY4YmE2OWJjNDY0ZTk1
OTg4Mzc0ZDU0MTkyZWQ4MGJhOWEzMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaApA
QCAtNDksNiArNDksMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpbml0aWFsaXplKGNv
bnN0IFdlYktpdDo6V2ViUlRDQ29uZmlndXJhdGlvbiYsIGNvbnN0IFdlYktpdDo6V2ViTWVkaWFD
b25zdHJhaW50cyYpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9mZmVyKGNv
bnN0IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCYsIGNvbnN0IFdlYktp
dDo6V2ViTWVkaWFDb25zdHJhaW50cyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRM
b2NhbERlc2NyaXB0aW9uKGNvbnN0IFdlYktpdDo6V2ViUlRDVm9pZFJlcXVlc3QmLCBjb25zdCBX
ZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3ImKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0UmVtb3RlRGVzY3JpcHRpb24oY29uc3QgV2ViS2l0OjpXZWJSVENW
b2lkUmVxdWVzdCYsIGNvbnN0IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3Jp
cHRpb25EZXNjcmlwdG9yIGxvY2FsRGVzY3JpcHRpb24oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciByZW1vdGVEZXNjcmlw
dGlvbigpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJQ0UoY29uc3QgV2ViS2l0
OjpXZWJSVENDb25maWd1cmF0aW9uJiwgY29uc3QgV2ViS2l0OjpXZWJNZWRpYUNvbnN0cmFpbnRz
JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFkZElDRUNhbmRpZGF0ZShjb25zdCBXZWJL
aXQ6OldlYlJUQ0lDRUNhbmRpZGF0ZURlc2NyaXB0b3ImKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGJvb2wgYWRkU3RyZWFtKGNvbnN0IFdlYktpdDo6V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJiwg
Y29uc3QgV2ViS2l0OjpXZWJNZWRpYUNvbnN0cmFpbnRzJikgT1ZFUlJJREU7CkBAIC02MiwyNyAr
NjYsOSBAQCBwcml2YXRlOgogICAgIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIoKSB7
IH0KIAogICAgIFdlYktpdDo6V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50KiBtX2Ns
aWVudDsKLQogICAgIFRhc2tMaXN0IG1fdGFza0xpc3Q7Ci0KLSAgICBjbGFzcyBTdWNjZXNzQ2Fs
bGJhY2tUYXNrIDogcHVibGljIE1ldGhvZFRhc2s8TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlcj4gewotICAgIHB1YmxpYzoKLSAgICAgICAgU3VjY2Vzc0NhbGxiYWNrVGFzayhNb2NrV2Vi
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKiwgY29uc3QgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVz
Y3JpcHRpb25SZXF1ZXN0JiwgY29uc3QgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25E
ZXNjcmlwdG9yJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBydW5JZlZhbGlkKCkgT1ZFUlJJREU7
Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlv
blJlcXVlc3QgbV9yZXF1ZXN0OwotICAgICAgICBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3IgbV9yZXN1bHQ7Ci0gICAgfTsKLQotICAgIGNsYXNzIEZhaWx1cmVDYWxs
YmFja1Rhc2sgOiBwdWJsaWMgTWV0aG9kVGFzazxNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyPiB7Ci0gICAgcHVibGljOgotICAgICAgICBGYWlsdXJlQ2FsbGJhY2tUYXNrKE1vY2tXZWJS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIqLCBjb25zdCBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3QmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHJ1bklmVmFsaWQoKSBPVkVS
UklERTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdCBtX3JlcXVlc3Q7Ci0gICAgfTsKKyAgICBXZWJLaXQ6OldlYlJUQ1Nlc3Np
b25EZXNjcmlwdGlvbkRlc2NyaXB0b3IgbV9sb2NhbERlc2NyaXB0aW9uOworICAgIFdlYktpdDo6
V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciBtX3JlbW90ZURlc2NyaXB0aW9uOwog
fTsKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGI0MDIyNDZhNGQw
MmE3NjEwZjBiYzk3NmQ2NmYyNDYyMzc4Yzg5MS4uMjhmOThlNzE0OTJmZDgzY2RmZTA5ZTFhM2E2
NzQ5ZTJlZDdkZjczNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA5LTA1ICBUb21teSBX
aWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQ
STogQWRkIHRoZSBsb2NhbCBhbmQgcmVtb3RlIGRlc2NyaXB0aW9uIGZ1bmN0aW9uYWxpdHkgdG8g
UlRDUGVlckNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk1ODM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVy
Lmh0bWw6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1sb2Nh
bERlc2NyaXB0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1sb2NhbERlc2NyaXB0aW9uLmh0bWw6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2Zm
ZXIuaHRtbC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXJl
bW90ZURlc2NyaXB0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1yZW1vdGVEZXNjcmlwdGlvbi5odG1sOiBDb3BpZWQg
ZnJvbSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0
ZU9mZmVyLmh0bWwuCisKIDIwMTItMDktMDUgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGRlZCBNYWMtc3BlY2lmaWMgZXhwZWN0ZWQgcmVzdWx0cyBmb3IgYSB0
ZXN0IGFkZGVkIGluIHIxMjc1NTcuIFRoZSBnZW5lcmljIHJlc3VsdHMgYXJlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9m
ZmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LWNyZWF0ZU9mZmVyLmh0bWwKaW5kZXggZmY0NzYyZGIxOWYxNjBiYmZiY2FjYjEwYTY4ZDU3ZTRl
MTk1Zjg3Yi4uYTUwMGQ3NGRmZTUxMDYwOTY1N2QzYjg2MjA3NDYzZWI3YTI0ODFkNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1jcmVh
dGVPZmZlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24tY3JlYXRlT2ZmZXIuaHRtbApAQCAtMTksNyArMTksNyBAQCBmdW5jdGlvbiByZXF1
ZXN0RmFpbGVkMihyZWFzb24pCiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLWZ1bmN0aW9uIHJl
cXVlc3RTdWNjZWVkZWQyKHNkLCBzb3VyY2UpCitmdW5jdGlvbiByZXF1ZXN0U3VjY2VlZGVkMihz
ZCkKIHsKICAgICB0ZXN0RmFpbGVkKCdyZXF1ZXN0U3VjY2VlZGVkIHdhcyBjYWxsZWQuJyk7CiAg
ICAgZmluaXNoSlNUZXN0KCk7CkBAIC0zMSw3ICszMSw3IEBAIGZ1bmN0aW9uIHJlcXVlc3RGYWls
ZWQxKCkKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotZnVuY3Rpb24gcmVxdWVzdFN1Y2NlZWRl
ZDEoc2QsIHNvdXJjZSkKK2Z1bmN0aW9uIHJlcXVlc3RTdWNjZWVkZWQxKHNkKQogewogICAgIHRl
c3RQYXNzZWQoJ3JlcXVlc3RTdWNjZWVkZWQgd2FzIGNhbGxlZC4nKTsKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1sb2NhbERlc2Ny
aXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24tbG9jYWxEZXNjcmlwdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNk
Mjg3NmZkZDBlNDQ3M2VkODlhMzk2ZDkwNzRmMDFmYjU3YWVjYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tbG9jYWxEZXNj
cmlwdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgUlRDUGVlckNvbm5l
Y3Rpb24gbG9jYWxEZXNjcmlwdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihzZXNzaW9uRGVzY3JpcHRpb24sIHJlcXVlc3RT
dWNjZWVkZWQxLCByZXF1ZXN0RmFpbGVkMSk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFT
UyByZXF1ZXN0U3VjY2VlZGVkIHdhcyBjYWxsZWQuCitQQVNTIHBjLnNldExvY2FsRGVzY3JpcHRp
b24oc2Vzc2lvbkRlc2NyaXB0aW9uLCByZXF1ZXN0U3VjY2VlZGVkMiwgcmVxdWVzdEZhaWxlZDIp
OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgcmVxdWVzdEZhaWxlZCB3YXMgY2FsbGVk
LgorUEFTUyBwYy5sb2NhbERlc2NyaXB0aW9uLnNkcCBpcyAic2RwMSIKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWxvY2FsRGVzY3JpcHRpb24u
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tbG9j
YWxEZXNjcmlwdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmYWU0NmI0YTE4MzE2YWUwNGVjMDVkZjE1
Y2E4MTU4OTI0ZjIxOTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWxvY2FsRGVzY3JpcHRpb24uaHRtbApAQCAtMCwwICsx
LDUwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVz
dHMgUlRDUGVlckNvbm5lY3Rpb24gbG9jYWxEZXNjcmlwdGlvbi4iKTsKKwordmFyIHBjID0gbnVs
bDsKKworZnVuY3Rpb24gcmVxdWVzdEZhaWxlZDIoKQoreworICAgIHRlc3RQYXNzZWQoJ3JlcXVl
c3RGYWlsZWQgd2FzIGNhbGxlZC4nKTsKKworICAgIHNob3VsZEJlKCdwYy5sb2NhbERlc2NyaXB0
aW9uLnNkcCcsICcic2RwMSInKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24g
cmVxdWVzdFN1Y2NlZWRlZDIoKQoreworICAgIHRlc3RGYWlsZWQoJ3JlcXVlc3RTdWNjZWVkZWQg
d2FzIGNhbGxlZC4nKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gcmVxdWVz
dEZhaWxlZDEoKQoreworICAgIHRlc3RGYWlsZWQoJ3JlcXVlc3RGYWlsZWQgd2FzIGNhbGxlZC4n
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gcmVxdWVzdFN1Y2NlZWRlZDEo
KQoreworICAgIHRlc3RQYXNzZWQoJ3JlcXVlc3RTdWNjZWVkZWQgd2FzIGNhbGxlZC4nKTsKKwor
ICAgIHNlc3Npb25EZXNjcmlwdGlvbiA9IG5ldyBSVENTZXNzaW9uRGVzY3JpcHRpb24oe3R5cGU6
ImFuc3dlciIsIHNkcDoic2RwMiJ9KTsKKyAgICBzaG91bGROb3RUaHJvdygncGMuc2V0TG9jYWxE
ZXNjcmlwdGlvbihzZXNzaW9uRGVzY3JpcHRpb24sIHJlcXVlc3RTdWNjZWVkZWQyLCByZXF1ZXN0
RmFpbGVkMik7Jyk7Cit9CisKK3BjID0gbmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKG51bGws
IG51bGwpOwordmFyIHNlc3Npb25EZXNjcmlwdGlvbiA9IG5ldyBSVENTZXNzaW9uRGVzY3JpcHRp
b24oe3R5cGU6Im9mZmVyIiwgc2RwOiJzZHAxIn0pOworc2hvdWxkTm90VGhyb3coJ3BjLnNldExv
Y2FsRGVzY3JpcHRpb24oc2Vzc2lvbkRlc2NyaXB0aW9uLCByZXF1ZXN0U3VjY2VlZGVkMSwgcmVx
dWVzdEZhaWxlZDEpOycpOworCisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3dpbmRv
dy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLXJlbW90ZURlc2NyaXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlRGVzY3JpcHRpb24tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU2YjA0MzcwZmRhNmVhNmI4MGZhNzllNDIyNjA5OWI1NWYwNWQ3MmIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLXJlbW90ZURlc2NyaXB0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitU
ZXN0cyBSVENQZWVyQ29ubmVjdGlvbiByZW1vdGVEZXNjcmlwdGlvbi4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oc2Vzc2lvbkRl
c2NyaXB0aW9uLCByZXF1ZXN0U3VjY2VlZGVkMSwgcmVxdWVzdEZhaWxlZDEpOyBkaWQgbm90IHRo
cm93IGV4Y2VwdGlvbi4KK1BBU1MgcmVxdWVzdFN1Y2NlZWRlZCB3YXMgY2FsbGVkLgorUEFTUyBw
Yy5zZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzY3JpcHRpb24sIHJlcXVlc3RTdWNjZWVk
ZWQyLCByZXF1ZXN0RmFpbGVkMik7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyByZXF1
ZXN0RmFpbGVkIHdhcyBjYWxsZWQuCitQQVNTIHBjLnJlbW90ZURlc2NyaXB0aW9uLnNkcCBpcyAi
c2RwMSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLXJlbW90ZURlc2NyaXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLXJlbW90ZURlc2NyaXB0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjYw
YzUxMWJhZjBkM2E1NjZlZjg1MWM2N2I3NTVlMmI3ZTE0ZWNlNAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlRGVz
Y3JpcHRpb24uaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgUlRDUGVlckNvbm5lY3Rpb24gcmVtb3RlRGVzY3Jp
cHRpb24uIik7CisKK3ZhciBwYyA9IG51bGw7CisKK2Z1bmN0aW9uIHJlcXVlc3RGYWlsZWQyKCkK
K3sKKyAgICB0ZXN0UGFzc2VkKCdyZXF1ZXN0RmFpbGVkIHdhcyBjYWxsZWQuJyk7CisKKyAgICBz
aG91bGRCZSgncGMucmVtb3RlRGVzY3JpcHRpb24uc2RwJywgJyJzZHAxIicpOworICAgIGZpbmlz
aEpTVGVzdCgpOworfQorCitmdW5jdGlvbiByZXF1ZXN0U3VjY2VlZGVkMigpCit7CisgICAgdGVz
dEZhaWxlZCgncmVxdWVzdFN1Y2NlZWRlZCB3YXMgY2FsbGVkLicpOworICAgIGZpbmlzaEpTVGVz
dCgpOworfQorCitmdW5jdGlvbiByZXF1ZXN0RmFpbGVkMSgpCit7CisgICAgdGVzdEZhaWxlZCgn
cmVxdWVzdEZhaWxlZCB3YXMgY2FsbGVkLicpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitm
dW5jdGlvbiByZXF1ZXN0U3VjY2VlZGVkMSgpCit7CisgICAgdGVzdFBhc3NlZCgncmVxdWVzdFN1
Y2NlZWRlZCB3YXMgY2FsbGVkLicpOworCisgICAgc2Vzc2lvbkRlc2NyaXB0aW9uID0gbmV3IFJU
Q1Nlc3Npb25EZXNjcmlwdGlvbih7dHlwZToib2ZmZXIiLCBzZHA6InNkcDIifSk7CisgICAgc2hv
dWxkTm90VGhyb3coJ3BjLnNldFJlbW90ZURlc2NyaXB0aW9uKHNlc3Npb25EZXNjcmlwdGlvbiwg
cmVxdWVzdFN1Y2NlZWRlZDIsIHJlcXVlc3RGYWlsZWQyKTsnKTsKK30KKworcGMgPSBuZXcgd2Vi
a2l0UlRDUGVlckNvbm5lY3Rpb24obnVsbCwgbnVsbCk7Cit2YXIgc2Vzc2lvbkRlc2NyaXB0aW9u
ID0gbmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbih7dHlwZToiYW5zd2VyIiwgc2RwOiJzZHAxIn0p
Oworc2hvdWxkTm90VGhyb3coJ3BjLnNldFJlbW90ZURlc2NyaXB0aW9uKHNlc3Npb25EZXNjcmlw
dGlvbiwgcmVxdWVzdFN1Y2NlZWRlZDEsIHJlcXVlc3RGYWlsZWQxKTsnKTsKKworCit3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7Cit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162462</attachid>
            <date>2012-09-06 03:04:58 -0700</date>
            <delta_ts>2012-09-06 03:08:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95839-20120906120438.patch</filename>
            <type>text/plain</type>
            <size>67042</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA3NjQ4ZmIwMzEyYzli
ZTk1OWE2ZTRhNDljODU0M2VlMGIwYWI3ZmIzLi4yYWI4ZGNkNWMxYjZiMmQ3OTMzYjdmNGM4ODA1
ZTFhODY2MDNkNTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0wOS0wNSAg
VG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAgICAgICBNZWRpYVN0
cmVhbSBBUEk6IEFkZCB0aGUgbG9jYWwgYW5kIHJlbW90ZSBkZXNjcmlwdGlvbiBmdW5jdGlvbmFs
aXR5IHRvIFJUQ1BlZXJDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NTgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogUGxhdGZvcm0uZ3lwaToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJs
aWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6CisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKToKKyAgICAgICAgKiBjaHJvbWl1bS9w
dWJsaWMvV2ViUlRDVm9pZFJlcXVlc3QuaDogQ29waWVkIGZyb20gU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaC4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlJUQ1ZvaWRSZXF1ZXN0KToK
KyAgICAgICAgKEV4dHJhRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0
OjpFeHRyYURhdGE6On5FeHRyYURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENWb2lkUmVx
dWVzdDo6V2ViUlRDVm9pZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENWb2lkUmVx
dWVzdDo6fldlYlJUQ1ZvaWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDVm9pZFJl
cXVlc3Q6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0Ojpp
c051bGwpOgorCiAyMDEyLTA5LTA1ICBLZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTI3NjEyLCByMTI3NjYw
LCBhbmQgcjEyNzY2NC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZWFkYjViMTYyYzdiNTE4ZDg0ZGFkZmMxYTU3
MWRhMGVmMDc5YWFjLi45NjllNDRmNzBjMTk0ZDUyNDE5NTRiOGY2ZjA2Zjc0NWU2NGNiMDcyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsOTYgQEAKKzIwMTItMDktMDUgIFRvbW15IFdpZGVuZmx5Y2h0
ICA8dG9tbXl3QGdvb2dsZS5jb20+CisKKyAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBBZGQgdGhl
IGxvY2FsIGFuZCByZW1vdGUgZGVzY3JpcHRpb24gZnVuY3Rpb25hbGl0eSB0byBSVENQZWVyQ29u
bmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTU4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
cyB3ZWxsIGFzIGFkZGluZyB0aGUgbG9jYWwvcmVtb3RlIGRlc2NyaXB0aW9ucyBzdHVmZiwgSSBy
ZW1vdmVkIHRoZSBzb3VyY2UgYXR0cmlidXRlIGZyb20KKyAgICAgICAgUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uQ2FsbGJhY2sgYW5kIFJUQ0Vycm9yQ2FsbGJhY2sgc2luY2UgaXQgaGFzIGJlZW4gcmVt
b3ZlZCBmcm9tIHRoZSBkcmFmdC4KKworICAgICAgICBUZXN0czogZmFzdC9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi1sb2NhbERlc2NyaXB0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlRGVzY3JpcHRpb24uaHRtbAor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5h
bToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9yQ2FsbGJhY2suaDoKKyAg
ICAgICAgKFJUQ0Vycm9yQ2FsbGJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDRXJyb3JDYWxsYmFjay5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6
Y3JlYXRlT2ZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnNldExv
Y2FsRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpS
VENQZWVyQ29ubmVjdGlvbjo6bG9jYWxEZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpS
VENQZWVyQ29ubmVjdGlvbjo6c2V0UmVtb3RlRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6UlRDUGVlckNvbm5lY3Rpb246OnJlbW90ZURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmg6CisgICAgICAgIChSVENTZXNzaW9uRGVz
Y3JpcHRpb25DYWxsYmFjayk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNz
aW9uRGVzY3JpcHRpb25DYWxsYmFjay5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpSVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRp
b25SZXF1ZXN0SW1wbDo6cmVxdWVzdFN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6cmVxdWVzdEZhaWxlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2xlYXIpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwu
aDoKKyAgICAgICAgKFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdEltcGwuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpS
VENWb2lkUmVxdWVzdEltcGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENWb2lkUmVx
dWVzdEltcGw6OlJUQ1ZvaWRSZXF1ZXN0SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpSVENWb2lk
UmVxdWVzdEltcGw6On5SVENWb2lkUmVxdWVzdEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6UlRD
Vm9pZFJlcXVlc3RJbXBsOjpyZXF1ZXN0U3VjY2VlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1ZvaWRSZXF1ZXN0SW1wbDo6cmVxdWVzdEZhaWxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSVENW
b2lkUmVxdWVzdEltcGw6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6UlRDVm9pZFJlcXVlc3RJ
bXBsOjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVz
dEltcGwuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChSVENWb2lkUmVxdWVzdEltcGwpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1ZvaWRSZXF1ZXN0LmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXIuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJU
Q1ZvaWRSZXF1ZXN0OjpXZWJSVENWb2lkUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJU
Q1ZvaWRSZXF1ZXN0Ojphc3NpZ24pOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENWb2lkUmVxdWVz
dDo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENWb2lkUmVxdWVzdDo6cmVxdWVzdFN1
Y2NlZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0OjpyZXF1ZXN0RmFp
bGVkKToKKyAgICAgICAgKEV4dHJhRGF0YUNvbnRhaW5lcik6CisgICAgICAgIChXZWJLaXQ6OkV4
dHJhRGF0YUNvbnRhaW5lcjo6RXh0cmFEYXRhQ29udGFpbmVyKToKKyAgICAgICAgKFdlYktpdDo6
RXh0cmFEYXRhQ29udGFpbmVyOjpleHRyYURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENW
b2lkUmVxdWVzdDo6ZXh0cmFEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDVm9pZFJlcXVl
c3Q6OnNldEV4dHJhRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyLmNwcDoKKyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckR1bW15KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15
OjpzZXRMb2NhbERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyRHVtbXk6OnNldFJlbW90ZURlc2NyaXB0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15Ojpsb2Nh
bERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckR1bW15OjpyZW1vdGVEZXNjcmlwdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUlRDVm9pZFJlcXVlc3QuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENFcnJvckNhbGxiYWNrLmguCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFJUQ1ZvaWRSZXF1ZXN0KToKKyAgICAgICAgKEV4dHJhRGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpSVENWb2lkUmVxdWVzdDo6RXh0cmFEYXRhOjp+RXh0cmFEYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1ZvaWRSZXF1ZXN0Ojp+UlRDVm9pZFJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDVm9pZFJlcXVlc3Q6OmV4dHJhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSVENW
b2lkUmVxdWVzdDo6c2V0RXh0cmFEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1ZvaWRSZXF1
ZXN0OjpSVENWb2lkUmVxdWVzdCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hy
b21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OnNldExvY2FsRGVzY3JpcHRp
b24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXJDaHJvbWl1bTo6c2V0UmVtb3RlRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OmxvY2FsRGVzY3JpcHRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OnJl
bW90ZURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1
bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5oOgorICAgICAgICAoUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0pOgorCiAyMDEyLTA5LTA2ICBQYXRyaWNrIEdhbnN0ZXJl
ciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1vcmUgZml4ZXMgZm9yIFN0cmluZzo6
b3BlcmF0b3IrPSgpIGluIERlYnVnIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9Q
bGF0Zm9ybS5neXBpIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKaW5kZXggZDNlNzg5
OTBmODYyZTRlMWVmZDdmY2JkNjY2MDMwNWZhZGU4NjIyNi4uNmZhMzk0ZWM5OWJlYWJlNzY2ODAy
ZmEzMzVhYWVjYmUwNmMyNTRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL1BsYXRmb3Jt
Lmd5cGkKKysrIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKQEAgLTExMCw2ICsxMTAs
NyBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJUQ1Nlc3Np
b25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGlj
L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaCcsCisgICAgICAgICAgICAnY2hyb21p
dW0vcHVibGljL1dlYlJUQ1ZvaWRSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1
YmxpYy9XZWJSZWN0LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJSZWZlcnJl
clBvbGljeS5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViUmVuZGVyaW5nU3Rh
dHMuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlci5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1Ymxp
Yy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAppbmRleCBjOGYyZjEzNzUzYWYwODU4MTJm
ZDZkZGE0Mzg3ZDFhMjRjMTc0YjNjLi5mMWU3ZmM2ZjdhNTcxZDhlZDQxYWUxMDIxMjJjMzk0YmM0
NGFlMjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKQEAgLTM5LDYgKzM5LDcgQEAgY2xh
c3MgV2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRvcjsKIGNsYXNzIFdlYlJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlckNsaWVudDsKIGNsYXNzIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3I7CiBjbGFzcyBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OworY2xhc3MgV2ViUlRD
Vm9pZFJlcXVlc3Q7CiAKIGNsYXNzIFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciB7CiBwdWJs
aWM6CkBAIC00Nyw2ICs0OCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGluaXRpYWxp
emUoY29uc3QgV2ViUlRDQ29uZmlndXJhdGlvbiYsIGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMm
KSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2ZmZXIoY29uc3QgV2ViUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uUmVxdWVzdCYsIGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMmKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHNldExvY2FsRGVzY3JpcHRpb24oY29uc3QgV2ViUlRDVm9pZFJlcXVl
c3QmLCBjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBzZXRSZW1vdGVEZXNjcmlwdGlvbihjb25zdCBXZWJSVENWb2lkUmVxdWVz
dCYsIGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3ImKSA9IDA7CisgICAg
dmlydHVhbCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yIGxvY2FsRGVzY3JpcHRp
b24oKSA9IDA7CisgICAgdmlydHVhbCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9y
IHJlbW90ZURlc2NyaXB0aW9uKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJQ0UoY29u
c3QgV2ViUlRDQ29uZmlndXJhdGlvbiYsIGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMmKSA9IDA7
CiAgICAgdmlydHVhbCBib29sIGFkZElDRUNhbmRpZGF0ZShjb25zdCBXZWJSVENJQ0VDYW5kaWRh
dGVEZXNjcmlwdG9yJikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBhZGRTdHJlYW0oY29uc3QgV2Vi
TWVkaWFTdHJlYW1EZXNjcmlwdG9yJiwgY29uc3QgV2ViTWVkaWFDb25zdHJhaW50cyYpID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDVm9pZFJl
cXVlc3QuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDVm9pZFJlcXVl
c3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xMjU2YmM2YzBhOGUyZDA1NDg0MjhhN2UyOWJhMmRiMTU1OWIyMjFm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJS
VENWb2lkUmVxdWVzdC5oCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlJUQ1ZvaWRSZXF1ZXN0
X2gKKyNkZWZpbmUgV2ViUlRDVm9pZFJlcXVlc3RfaAorCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgi
CisjaW5jbHVkZSAiV2ViTm9uQ29weWFibGUuaCIKKyNpbmNsdWRlICJXZWJQcml2YXRlUHRyLmgi
CisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFJU
Q1ZvaWRSZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUlRDVm9p
ZFJlcXVlc3QgeworcHVibGljOgorICAgIGNsYXNzIEV4dHJhRGF0YSB7CisgICAgcHVibGljOgor
ICAgICAgICB2aXJ0dWFsIH5FeHRyYURhdGEoKSB7IH0KKyAgICB9OworCisgICAgV2ViUlRDVm9p
ZFJlcXVlc3QoKSB7IH0KKyAgICBXZWJSVENWb2lkUmVxdWVzdChjb25zdCBXZWJSVENWb2lkUmVx
dWVzdCYgb3RoZXIpIHsgYXNzaWduKG90aGVyKTsgfQorICAgIH5XZWJSVENWb2lkUmVxdWVzdCgp
IHsgcmVzZXQoKTsgfQorCisgICAgV2ViUlRDVm9pZFJlcXVlc3QmIG9wZXJhdG9yPShjb25zdCBX
ZWJSVENWb2lkUmVxdWVzdCYgb3RoZXIpCisgICAgeworICAgICAgICBhc3NpZ24ob3RoZXIpOwor
ICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFz
c2lnbihjb25zdCBXZWJSVENWb2lkUmVxdWVzdCYpOworCisgICAgV0VCS0lUX0VYUE9SVCB2b2lk
IHJlc2V0KCk7CisgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGUuaXNO
dWxsKCk7IH0KKworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKCkgY29u
c3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlcXVlc3RGYWlsZWQoY29uc3QgV2ViU3RyaW5n
JiBlcnJvcikgY29uc3Q7CisKKyAgICAvLyBFeHRyYSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGlz
IG9iamVjdC4KKyAgICAvLyBJZiBub24tbnVsbCwgdGhlIGV4dHJhIGRhdGEgcG9pbnRlciB3aWxs
IGJlIGRlbGV0ZWQgd2hlbiB0aGUgb2JqZWN0IGlzIGRlc3Ryb3llZC4KKyAgICAvLyBTZXR0aW5n
IHRoZSBleHRyYSBkYXRhIHBvaW50ZXIgd2lsbCBjYXVzZSBhbnkgZXhpc3Rpbmcgbm9uLW51bGwK
KyAgICAvLyBleHRyYSBkYXRhIHBvaW50ZXIgdG8gYmUgZGVsZXRlZC4KKyAgICBXRUJLSVRfRVhQ
T1JUIEV4dHJhRGF0YSogZXh0cmFEYXRhKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lk
IHNldEV4dHJhRGF0YShFeHRyYURhdGEqKTsKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgor
ICAgIFdlYlJUQ1ZvaWRSZXF1ZXN0KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpSVENW
b2lkUmVxdWVzdD4mKTsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIFdlYlByaXZhdGVQdHI8V2Vi
Q29yZTo6UlRDVm9pZFJlcXVlc3Q+IG1fcHJpdmF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gV2ViUlRDVm9pZFJlcXVlc3RfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCA5N2EyNmU5NjdkZmZiNjgzZjc4M2ViZDg4OTc3MzE5OTU1OTYwMTE5Li4zNTVjNmNlZWYw
NGUwMmFhYjY0Y2IwN2I1YmExNTIwNWU5ODdlN2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
ODYxLDYgKzg2MSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lk
UmVxdWVzdEltcGwuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRp
b24uY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNwcAog
ICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCmluZGV4IDBlZjRkYTM3NmQxNTg1ZDVkYjMzODU4NzA1ZmY2NmRmYmFk
NWUxMTIuLjJmODM5OGFiOGM4OGI4NDNhMGY1ZTc4ZDU2OTA4MmM1OTg0Yjk5NjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTkzNiw2ICsxOTM2LDggQEAgd2ViY29yZV9tb2R1
bGVzX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dEltcGwuaCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVx
dWVzdEltcGwuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Zv
aWRSZXF1ZXN0SW1wbC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Nl
c3Npb25EZXNjcmlwdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhQ2xpZW50LmggXApAQCAtNDU2Nyw2ICs0NTY5LDcgQEAgd2ViY29yZV9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9y
LmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3IuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9TZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFcnJv
ckNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9y
Q2FsbGJhY2suaAppbmRleCA2OTMxOTQ2OGVmMGUxM2IyNzgxNDU3M2YxMTYxMTExOGU5MzE4MzIy
Li42NDRlNTZmMGJlYTcwZDUzZTQ5ZjI4OWU0YWZmNjE1N2RhM2VmYmRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9yQ2FsbGJhY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9yQ2FsbGJhY2suaApA
QCAtMzgsMTIgKzM4LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUlRDUGVl
ckNvbm5lY3Rpb247Ci0KIGNsYXNzIFJUQ0Vycm9yQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRl
ZDxSVENFcnJvckNhbGxiYWNrPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UlRDRXJyb3JDYWxs
YmFjaygpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChjb25zdCBTdHJpbmcmIGVy
cm9ySW5mb3JtYXRpb24sIFJUQ1BlZXJDb25uZWN0aW9uKikgPSAwOworICAgIHZpcnR1YWwgYm9v
bCBoYW5kbGVFdmVudChjb25zdCBTdHJpbmcmIGVycm9ySW5mb3JtYXRpb24pID0gMDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDRXJyb3JDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9yQ2FsbGJhY2suaWRsCmluZGV4IDRlNDBkMTRkYWUxN2Rk
YmQwYTYzZmFmNjdkYjg4MmE0YmFiM2NjMjUuLjgxMmUyNzQ0ZjJhNjQ2MzU5NDA1Y2FhM2VmMWY5
MThjZWI3Y2ZjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRXJyb3JDYWxsYmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENFcnJvckNhbGxiYWNrLmlkbApAQCAtMzQsNyArMzQsNyBAQCBtb2R1bGUgbWVk
aWFzdHJlYW0gewogICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCiAgICAgICAgIENh
bGxiYWNrCiAgICAgXSBSVENFcnJvckNhbGxiYWNrIHsKLSAgICAgICAgYm9vbGVhbiBoYW5kbGVF
dmVudChpbiBET01TdHJpbmcgZXJyb3JJbmZvcm1hdGlvbiwgaW4gUlRDUGVlckNvbm5lY3Rpb24g
c291cmNlKTsKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBET01TdHJpbmcgZXJyb3JJ
bmZvcm1hdGlvbik7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCBkZmJjODliY2Vh
ZDUxMjM1Yjc4MDhlYjAyMzc5MDczZDI0ZTUyM2MxLi5iNWQ4MjU3NmVmZDY5Y2RlYWNhODgyNzZm
ODM5NDg5ZWQ1YzhjYjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAtNDgsNyArNDgsOSBAQAogI2lu
Y2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3RJbXBsLmgiCisjaW5jbHVkZSAiUlRDVm9pZFJlcXVlc3RJbXBsLmgiCiAjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTE1MSwxMCArMTUzLDc0IEBAIHZvaWQgUlRD
UGVlckNvbm5lY3Rpb246OmNyZWF0ZU9mZmVyKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0
aW9uQ2FsbGJhY2s+IHN1CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZWZQ
dHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw+IHJlcXVlc3QgPSBSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
c3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCB0aGlzKTsKKyAgICBSZWZQdHI8UlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw+IHJlcXVlc3QgPSBSVENTZXNzaW9uRGVzY3JpcHRp
b25SZXF1ZXN0SW1wbDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc3VjY2Vzc0Nh
bGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKICAgICBtX3BlZXJIYW5kbGVyLT5jcmVhdGVPZmZlcihy
ZXF1ZXN0LnJlbGVhc2UoKSwgY29uc3RyYWludHMpOwogfQogCit2b2lkIFJUQ1BlZXJDb25uZWN0
aW9uOjpzZXRMb2NhbERlc2NyaXB0aW9uKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9u
PiBwcnBTZXNzaW9uRGVzY3JpcHRpb24sIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBzdWNjZXNz
Q2FsbGJhY2ssIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaywgRXhj
ZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBSZWFkeVN0YXRlQ2xv
c2luZyB8fCBtX3JlYWR5U3RhdGUgPT0gUmVhZHlTdGF0ZUNsb3NlZCkgeworICAgICAgICBlYyA9
IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUmVmUHRy
PFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gc2Vzc2lvbkRlc2NyaXB0aW9uID0gcHJwU2Vzc2lvbkRl
c2NyaXB0aW9uOworICAgIGlmICghc2Vzc2lvbkRlc2NyaXB0aW9uKSB7CisgICAgICAgIGVjID0g
VFlQRV9NSVNNQVRDSF9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSZWZQdHI8
UlRDVm9pZFJlcXVlc3RJbXBsPiByZXF1ZXN0ID0gUlRDVm9pZFJlcXVlc3RJbXBsOjpjcmVhdGUo
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2sp
OworICAgIG1fcGVlckhhbmRsZXItPnNldExvY2FsRGVzY3JpcHRpb24ocmVxdWVzdC5yZWxlYXNl
KCksIHNlc3Npb25EZXNjcmlwdGlvbi0+ZGVzY3JpcHRvcigpKTsKK30KKworUGFzc1JlZlB0cjxS
VENTZXNzaW9uRGVzY3JpcHRpb24+IFJUQ1BlZXJDb25uZWN0aW9uOjpsb2NhbERlc2NyaXB0aW9u
KEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gUmVhZHlTdGF0
ZUNsb3NpbmcgfHwgbV9yZWFkeVN0YXRlID09IFJlYWR5U3RhdGVDbG9zZWQpIHsKKyAgICAgICAg
ZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAg
UmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IGRlc2NyaXB0b3IgPSBtX3Bl
ZXJIYW5kbGVyLT5sb2NhbERlc2NyaXB0aW9uKCk7CisgICAgaWYgKCFkZXNjcmlwdG9yKQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IGRlc2Mg
PSBSVENTZXNzaW9uRGVzY3JpcHRpb246OmNyZWF0ZShkZXNjcmlwdG9yLnJlbGVhc2UoKSk7Cisg
ICAgcmV0dXJuIGRlc2MucmVsZWFzZSgpOworfQorCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpz
ZXRSZW1vdGVEZXNjcmlwdGlvbihQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gcHJw
U2Vzc2lvbkRlc2NyaXB0aW9uLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gc3VjY2Vzc0NhbGxi
YWNrLCBQYXNzUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2ssIEV4Y2VwdGlv
bkNvZGUmIGVjKQoreworICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gUmVhZHlTdGF0ZUNsb3Npbmcg
fHwgbV9yZWFkeVN0YXRlID09IFJlYWR5U3RhdGVDbG9zZWQpIHsKKyAgICAgICAgZWMgPSBJTlZB
TElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJlZlB0cjxSVENT
ZXNzaW9uRGVzY3JpcHRpb24+IHNlc3Npb25EZXNjcmlwdGlvbiA9IHBycFNlc3Npb25EZXNjcmlw
dGlvbjsKKyAgICBpZiAoIXNlc3Npb25EZXNjcmlwdGlvbikgeworICAgICAgICBlYyA9IFRZUEVf
TUlTTUFUQ0hfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUmVmUHRyPFJUQ1Zv
aWRSZXF1ZXN0SW1wbD4gcmVxdWVzdCA9IFJUQ1ZvaWRSZXF1ZXN0SW1wbDo6Y3JlYXRlKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKKyAg
ICBtX3BlZXJIYW5kbGVyLT5zZXRSZW1vdGVEZXNjcmlwdGlvbihyZXF1ZXN0LnJlbGVhc2UoKSwg
c2Vzc2lvbkRlc2NyaXB0aW9uLT5kZXNjcmlwdG9yKCkpOworfQorCitQYXNzUmVmUHRyPFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbj4gUlRDUGVlckNvbm5lY3Rpb246OnJlbW90ZURlc2NyaXB0aW9uKEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gUmVhZHlTdGF0ZUNs
b3NpbmcgfHwgbV9yZWFkeVN0YXRlID09IFJlYWR5U3RhdGVDbG9zZWQpIHsKKyAgICAgICAgZWMg
PSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgUmVm
UHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IGRlc2NyaXB0b3IgPSBtX3BlZXJI
YW5kbGVyLT5yZW1vdGVEZXNjcmlwdGlvbigpOworICAgIGlmICghZGVzY3JpcHRvcikKKyAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBkZXNjID0g
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpjcmVhdGUoZGVzY3JpcHRvci5yZWxlYXNlKCkpOworICAg
IHJldHVybiBkZXNjLnJlbGVhc2UoKTsKK30KKwogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6dXBk
YXRlSWNlKGNvbnN0IERpY3Rpb25hcnkmIHJ0Y0NvbmZpZ3VyYXRpb24sIGNvbnN0IERpY3Rpb25h
cnkmIG1lZGlhQ29uc3RyYWludHMsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmIChtX3Jl
YWR5U3RhdGUgPT0gUmVhZHlTdGF0ZUNsb3NpbmcgfHwgbV9yZWFkeVN0YXRlID09IFJlYWR5U3Rh
dGVDbG9zZWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24uaAppbmRleCBkNGM0Y2RmZDIxMTM4NTg0ZWM5ZmViNmM3MmQ2
ODkzNjdkMGNiZTUzLi45NzZhYmRjNmQyNTkxNzIzMjcyZmRjODY2YTU5NWE3YTg3YWQ3ZDJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5oCkBAIC00OSw3ICs0OSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IE1lZGlhQ29uc3RyYWludHM7CiBjbGFzcyBSVENDb25maWd1cmF0aW9uOwogY2xhc3MgUlRDRXJy
b3JDYWxsYmFjazsKK2NsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjsKIGNsYXNzIFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbkNhbGxiYWNrOworY2xhc3MgVm9pZENhbGxiYWNrOwogCiBjbGFzcyBSVENQ
ZWVyQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1BlZXJDb25uZWN0aW9uPiwgcHVi
bGljIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCwgcHVibGljIEV2ZW50VGFyZ2V0LCBw
dWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTU4LDYgKzYwLDEyIEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgY3JlYXRlT2ZmZXIoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRp
b25DYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4sIGNvbnN0IERpY3Rpb25h
cnkmIG1lZGlhQ29uc3RyYWludHMsIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAgIHZvaWQgc2V0TG9j
YWxEZXNjcmlwdGlvbihQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4sIFBhc3NSZWZQ
dHI8Vm9pZENhbGxiYWNrPiwgUGFzc1JlZlB0cjxSVENFcnJvckNhbGxiYWNrPiwgRXhjZXB0aW9u
Q29kZSYpOworICAgIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBsb2NhbERlc2Ny
aXB0aW9uKEV4Y2VwdGlvbkNvZGUmKTsKKworICAgIHZvaWQgc2V0UmVtb3RlRGVzY3JpcHRpb24o
UGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+LCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFj
az4sIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBQ
YXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gcmVtb3RlRGVzY3JpcHRpb24oRXhjZXB0
aW9uQ29kZSYpOworCiAgICAgU3RyaW5nIHJlYWR5U3RhdGUoKSBjb25zdDsKIAogICAgIHZvaWQg
dXBkYXRlSWNlKGNvbnN0IERpY3Rpb25hcnkmIHJ0Y0NvbmZpZ3VyYXRpb24sIGNvbnN0IERpY3Rp
b25hcnkmIG1lZGlhQ29uc3RyYWludHMsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwK
aW5kZXggMDJmYTM0NTQ4ZGRjMmMxODA3OGM3YjI0OTc4NmViODI3YWI4ZTE0ZC4uOWVlNWUwMTk5
YjdlZWQwMGI2NTdmZmUxMWViYTZlOGQzYjBiYmNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwKQEAgLTQx
LDYgKzQxLDE2IEBAIG1vZHVsZSBtZWRpYXN0cmVhbSB7CiAgICAgICAgIHZvaWQgY3JlYXRlT2Zm
ZXIoaW4gW0NhbGxiYWNrXSBSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjayBzdWNjZXNzQ2Fs
bGJhY2ssIGluIFtDYWxsYmFjayxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFJUQ0Vycm9y
Q2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBEaWN0aW9uYXJ5IG1lZGlhQ29uc3RyYWludHMpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKIAorICAgICAgICB2b2lkIHNldExvY2FsRGVzY3JpcHRpb24oaW4gUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gVm9pZENhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgaW4gW0NhbGxiYWNrLCBP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFJUQ0Vycm9yQ2FsbGJhY2sgZmFpbHVyZUNhbGxi
YWNrKQorICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBSVENTZXNzaW9uRGVzY3JpcHRpb24gbG9jYWxEZXNjcmlwdGlvbgorICAgICAg
ICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworCisgICAgICAgIHZvaWQgc2V0UmVt
b3RlRGVzY3JpcHRpb24oaW4gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCBpbiBb
Q2FsbGJhY2ssIE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gVm9pZENhbGxiYWNrIHN1Y2Nl
c3NDYWxsYmFjaywgaW4gW0NhbGxiYWNrLCBPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFJU
Q0Vycm9yQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrKQorICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENTZXNzaW9uRGVzY3JpcHRp
b24gcmVtb3RlRGVzY3JpcHRpb24KKyAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlYWR5U3RhdGU7
CiAKICAgICAgICAgdm9pZCB1cGRhdGVJY2UoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gRGljdGlvbmFyeSBjb25maWd1cmF0aW9uLCBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBEaWN0aW9uYXJ5IG1lZGlhQ29uc3RyYWludHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlv
bkNhbGxiYWNrLmgKaW5kZXggMWExZTBhOTkxM2U2NmU2MzgyN2NjNzg2ODcxNGZlM2QzZjVhZjE1
ZS4uMDZlZTA3MWM0NTU4ZDM0ZGFjYTk3ZjJjZTU3ZTU0YTg3MWJhYzgzOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25D
YWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaApAQCAtMzcsMTMgKzM3LDEyIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgUlRDUGVlckNvbm5lY3Rpb247CiBjbGFzcyBSVENTZXNzaW9u
RGVzY3JpcHRpb247CiAKIGNsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrIDogcHVi
bGljIFJlZkNvdW50ZWQ8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+IHsKIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaygpIHsgfQotICAgIHZp
cnR1YWwgYm9vbCBoYW5kbGVFdmVudChSVENTZXNzaW9uRGVzY3JpcHRpb24qLCBSVENQZWVyQ29u
bmVjdGlvbiopID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uKikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRp
b25DYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nl
c3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmlkbAppbmRleCA0YTUzNmQ0ZDljMjgxMDk5MDAxZjcz
MjVlZWFhYzA0NzYxYjVlMDM3Li41YmU3NWU5MjA5OTMwNmIyNDMxZmVjYTExNWRlYmNjOTQ4ODMy
OWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nl
c3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmlkbApAQCAtMzQsNyAr
MzQsNyBAQCBtb2R1bGUgbWVkaWFzdHJlYW0gewogICAgICAgICBDb25kaXRpb25hbD1NRURJQV9T
VFJFQU0sCiAgICAgICAgIENhbGxiYWNrCiAgICAgXSBSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxs
YmFjayB7Ci0gICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uIHNkcCwgaW4gUlRDUGVlckNvbm5lY3Rpb24gc291cmNlKTsKKyAgICAgICAgYm9vbGVhbiBo
YW5kbGVFdmVudChpbiBSVENTZXNzaW9uRGVzY3JpcHRpb24gc2RwKTsKICAgICB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCmluZGV4IGViODhlNjI1
N2UxZGI1ZGM5MWQ4MzdlOGVhZDEyM2Y1Y2YyNjZkNjIuLjIzYzU1M2ExNjQ5ZGVlYzA5OWEwZDdi
YmMwYTUwNmI2Njk0MGI5ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dEltcGwuY3BwCkBAIC00MiwxOCArNDIsMTcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Q
YXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsPiBSVENTZXNzaW9uRGVz
Y3JpcHRpb25SZXF1ZXN0SW1wbDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxs
YmFjaywgUGFzc1JlZlB0cjxSVENFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrLCBQYXNzUmVm
UHRyPFJUQ1BlZXJDb25uZWN0aW9uPiBvd25lcikKK1Bhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdEltcGw+IFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxSVENTZXNzaW9u
RGVzY3JpcHRpb25DYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPFJUQ0Vycm9y
Q2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCiB7Ci0gICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3RJbXBsPiByZXF1ZXN0ID0gYWRvcHRSZWYobmV3IFJUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3RJbXBsKGNvbnRleHQsIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywg
b3duZXIpKTsKKyAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw+IHJl
cXVlc3QgPSBhZG9wdFJlZihuZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwoY29u
dGV4dCwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSk7CiAgICAgcmVxdWVzdC0+c3Vz
cGVuZElmTmVlZGVkKCk7CiAgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOwogfQogCi1SVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxSVENTZXNz
aW9uRGVzY3JpcHRpb25DYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPFJUQ0Vy
cm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2ssIFBhc3NSZWZQdHI8UlRDUGVlckNvbm5lY3Rpb24+
IG93bmVyKQorUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OlJUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3RJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NS
ZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFz
c1JlZlB0cjxSVENFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQogICAgIDogQWN0aXZlRE9N
T2JqZWN0KGNvbnRleHQsIHRoaXMpCiAgICAgLCBtX3N1Y2Nlc3NDYWxsYmFjayhzdWNjZXNzQ2Fs
bGJhY2spCiAgICAgLCBtX2Vycm9yQ2FsbGJhY2soZXJyb3JDYWxsYmFjaykKLSAgICAsIG1fb3du
ZXIob3duZXIpCiB7CiB9CiAKQEAgLTY1LDcgKzY0LDcgQEAgdm9pZCBSVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0SW1wbDo6cmVxdWVzdFN1Y2NlZWRlZChQYXNzUmVmUHRyPFJUQ1Nlc3Npb25E
ZXMKIHsKICAgICBpZiAobV9zdWNjZXNzQ2FsbGJhY2spIHsKICAgICAgICAgUmVmUHRyPFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbj4gc2Vzc2lvbkRlc2NyaXB0aW9uID0gUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uOjpjcmVhdGUoZGVzY3JpcHRvcik7Ci0gICAgICAgIG1fc3VjY2Vzc0NhbGxiYWNrLT5oYW5k
bGVFdmVudChzZXNzaW9uRGVzY3JpcHRpb24uZ2V0KCksIG1fb3duZXIuZ2V0KCkpOworICAgICAg
ICBtX3N1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQoc2Vzc2lvbkRlc2NyaXB0aW9uLmdldCgp
KTsKICAgICB9CiAKICAgICBjbGVhcigpOwpAQCAtNzQsNyArNzMsNyBAQCB2b2lkIFJUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpyZXF1ZXN0U3VjY2VlZGVkKFBhc3NSZWZQdHI8UlRD
U2Vzc2lvbkRlcwogdm9pZCBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6cmVxdWVz
dEZhaWxlZChjb25zdCBTdHJpbmcmIGVycm9yKQogewogICAgIGlmIChtX2Vycm9yQ2FsbGJhY2sp
Ci0gICAgICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoZXJyb3IsIG1fb3duZXIuZ2V0
KCkpOworICAgICAgICBtX2Vycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KGVycm9yKTsKIAogICAg
IGNsZWFyKCk7CiB9CkBAIC04OCw3ICs4Nyw2IEBAIHZvaWQgUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdEltcGw6OmNsZWFyKCkKIHsKICAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOwog
ICAgIG1fZXJyb3JDYWxsYmFjay5jbGVhcigpOwotICAgIG1fb3duZXIuY2xlYXIoKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0
SW1wbC5oCmluZGV4IDc0YWViZmM5OGI4MTEyZmUyZmM4ODE5NTUzYzgyNDhjNjU5Y2Y0YWEuLmQx
YmNlZTAxMzUxM2FhNjdjMmIwNzZhOTA1MDFlY2U4NTYyZTE2ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s7CiAKIGNsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3RJbXBsIDogcHVibGljIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QsIHB1YmxpYyBB
Y3RpdmVET01PYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3RJbXBsPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFJU
Q0Vycm9yQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFJUQ1BlZXJDb25uZWN0aW9uPik7CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw+IGNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25D
YWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4pOwogICAgIHZpcnR1YWwgflJU
Q1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdFN1Y2NlZWRlZChQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+
KSBPVkVSUklERTsKQEAgLTU0LDEzICs1NCwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHN0b3AoKSBPVkVSUklERTsKIAogcHJpdmF0ZToKLSAgICBSVENTZXNzaW9uRGVzY3JpcHRpb25S
ZXF1ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxSVENTZXNzaW9u
RGVzY3JpcHRpb25DYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4sIFBhc3NS
ZWZQdHI8UlRDUGVlckNvbm5lY3Rpb24+KTsKKyAgICBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1
ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVz
Y3JpcHRpb25DYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4pOwogCiAgICAg
dm9pZCBjbGVhcigpOwogCiAgICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNr
PiBtX3N1Y2Nlc3NDYWxsYmFjazsKICAgICBSZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4gbV9lcnJv
ckNhbGxiYWNrOwotICAgIFJlZlB0cjxSVENQZWVyQ29ubmVjdGlvbj4gbV9vd25lcjsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYWU3
NjEzN2U3NGZjNTQwNzA4MmYxNjVmNTU1OTM1OGExNTNiNmNiCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3Bw
CkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMK
KyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiUlRDVm9pZFJlcXVlc3RJbXBsLmgiCisKKyNp
bmNsdWRlICJSVENFcnJvckNhbGxiYWNrLmgiCisjaW5jbHVkZSAiUlRDUGVlckNvbm5lY3Rpb24u
aCIKKyNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQ
YXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0SW1wbD4gUlRDVm9pZFJlcXVlc3RJbXBsOjpjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+
IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxSVENFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxi
YWNrKQoreworICAgIFJlZlB0cjxSVENWb2lkUmVxdWVzdEltcGw+IHJlcXVlc3QgPSBhZG9wdFJl
ZihuZXcgUlRDVm9pZFJlcXVlc3RJbXBsKGNvbnRleHQsIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JD
YWxsYmFjaykpOworICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiBy
ZXF1ZXN0LnJlbGVhc2UoKTsKK30KKworUlRDVm9pZFJlcXVlc3RJbXBsOjpSVENWb2lkUmVxdWVz
dEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxWb2lkQ2Fs
bGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxSVENFcnJvckNhbGxiYWNrPiBlcnJv
ckNhbGxiYWNrKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgLCBt
X3N1Y2Nlc3NDYWxsYmFjayhzdWNjZXNzQ2FsbGJhY2spCisgICAgLCBtX2Vycm9yQ2FsbGJhY2so
ZXJyb3JDYWxsYmFjaykKK3sKK30KKworUlRDVm9pZFJlcXVlc3RJbXBsOjp+UlRDVm9pZFJlcXVl
c3RJbXBsKCkKK3sKK30KKwordm9pZCBSVENWb2lkUmVxdWVzdEltcGw6OnJlcXVlc3RTdWNjZWVk
ZWQoKQoreworICAgIGlmIChtX3N1Y2Nlc3NDYWxsYmFjaykKKyAgICAgICAgbV9zdWNjZXNzQ2Fs
bGJhY2stPmhhbmRsZUV2ZW50KCk7CisKKyAgICBjbGVhcigpOworfQorCit2b2lkIFJUQ1ZvaWRS
ZXF1ZXN0SW1wbDo6cmVxdWVzdEZhaWxlZChjb25zdCBTdHJpbmcmIGVycm9yKQoreworICAgIGlm
IChtX2Vycm9yQ2FsbGJhY2suZ2V0KCkpCisgICAgICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxl
RXZlbnQoZXJyb3IpOworCisgICAgY2xlYXIoKTsKK30KKwordm9pZCBSVENWb2lkUmVxdWVzdElt
cGw6OnN0b3AoKQoreworICAgIGNsZWFyKCk7Cit9CisKK3ZvaWQgUlRDVm9pZFJlcXVlc3RJbXBs
OjpjbGVhcigpCit7CisgICAgbV9zdWNjZXNzQ2FsbGJhY2suY2xlYXIoKTsKKyAgICBtX2Vycm9y
Q2FsbGJhY2suY2xlYXIoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1N2FiZmM3
YzZiMzI5MmE1MzM0YzQxOWNmMmE0N2UyOTJmNzJjYjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5oCkBAIC0w
LDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAg
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20g
dGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1ZvaWRSZXF1ZXN0SW1wbF9oCisjZGVmaW5l
IFJUQ1ZvaWRSZXF1ZXN0SW1wbF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5j
bHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiUlRDVm9pZFJlcXVlc3QuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENFcnJvckNhbGxiYWNrOworY2xhc3MgVm9p
ZENhbGxiYWNrOworCitjbGFzcyBSVENWb2lkUmVxdWVzdEltcGwgOiBwdWJsaWMgUlRDVm9pZFJl
cXVlc3QsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0SW1wbD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4p
OworICAgIHZpcnR1YWwgflJUQ1ZvaWRSZXF1ZXN0SW1wbCgpOworCisgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RTdWNjZWVkZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEZhaWxlZChjb25z
dCBTdHJpbmcmIGVycm9yKTsKKworICAgIC8vIEFjdGl2ZURPTU9iamVjdAorICAgIHZpcnR1YWwg
dm9pZCBzdG9wKCkgT1ZFUlJJREU7CisKK3ByaXZhdGU6CisgICAgUlRDVm9pZFJlcXVlc3RJbXBs
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4sIFBhc3NS
ZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4pOworCisgICAgdm9pZCBjbGVhcigpOworCisgICAgUmVm
UHRyPFZvaWRDYWxsYmFjaz4gbV9zdWNjZXNzQ2FsbGJhY2s7CisgICAgUmVmUHRyPFJUQ0Vycm9y
Q2FsbGJhY2s+IG1fZXJyb3JDYWxsYmFjazsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBSVENWb2lkUmVx
dWVzdEltcGxfaAorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBmMjEzNDljOWRkNDI4YzY1Nzc2NzNh
ZDBkNjRhZmRmZTk1ZDViOTAzLi4yZjUxNzYwYzc1OGJhM2I2NDgwNmRiYTcwZDFmODlmNWIxNmNh
NTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00NjUsNiArNDY1LDcgQEAKICAgICAgICAgICAgICdw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
RGVzY3JpcHRvci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0LmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JUQ1ZvaWRSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFt
L1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL01lZGlhU3RyZWFtQ2VudGVyQ2hyb21p
dW0uY3BwJywKQEAgLTE2MjAsNiArMTYyMSw4IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5oJywKICAgICAgICAgICAgICdN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcCcs
CiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25S
ZXF1ZXN0SW1wbC5oJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRS
ZXF1ZXN0SW1wbC5jcHAnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9p
ZFJlcXVlc3RJbXBsLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lv
bkRlc2NyaXB0aW9uLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNz
aW9uRGVzY3JpcHRpb24uaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFDbGllbnQuaCcsCkBAIC04MzU0LDYgKzgzNTcsNyBAQAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRvci5jcHAnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1
cHBvcnQvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5jcHAnLAorICAgICAgICAgICAg
J3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDVm9pZFJlcXVlc3QuY3BwJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlNjcm9sbGJhclRoZW1lR2VvbWV0
cnlOYXRpdmUuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dl
YlNjcm9sbGJhclRoZW1lR2VvbWV0cnlOYXRpdmUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Y2hyb21pdW0vc3VwcG9ydC9XZWJTY3JvbGxiYXJJbXBsLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1ZvaWRSZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDVm9pZFJl
cXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlMjQyMTkzYmFkZWZlZTUyZjQ4NWFkMzg2ZThhODA5NGZj
MDVlMmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9zdXBwb3J0L1dlYlJUQ1ZvaWRSZXF1ZXN0LmNwcApAQCAtMCwwICsxLDk3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJSVENWb2lkUmVxdWVzdC5oPgorCisjaW5jbHVkZSAiUlRDVm9pZFJlcXVlc3QuaCIKKyNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlJUQ1ZvaWRSZXF1ZXN0OjpXZWJSVENWb2lkUmVxdWVz
dChjb25zdCBQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0PiYgY29uc3RyYWludHMpCisgICAgOiBt
X3ByaXZhdGUoY29uc3RyYWludHMpCit7Cit9CisKK3ZvaWQgV2ViUlRDVm9pZFJlcXVlc3Q6OmFz
c2lnbihjb25zdCBXZWJSVENWb2lkUmVxdWVzdCYgb3RoZXIpCit7CisgICAgbV9wcml2YXRlID0g
b3RoZXIubV9wcml2YXRlOworfQorCit2b2lkIFdlYlJUQ1ZvaWRSZXF1ZXN0OjpyZXNldCgpCit7
CisgICAgbV9wcml2YXRlLnJlc2V0KCk7Cit9CisKK3ZvaWQgV2ViUlRDVm9pZFJlcXVlc3Q6OnJl
cXVlc3RTdWNjZWVkZWQoKSBjb25zdAoreworICAgIEFTU0VSVChtX3ByaXZhdGUuZ2V0KCkpOwor
ICAgIG1fcHJpdmF0ZS0+cmVxdWVzdFN1Y2NlZWRlZCgpOworfQorCit2b2lkIFdlYlJUQ1ZvaWRS
ZXF1ZXN0OjpyZXF1ZXN0RmFpbGVkKGNvbnN0IFdlYlN0cmluZyYgZXJyb3IpIGNvbnN0Cit7Cisg
ICAgQVNTRVJUKG1fcHJpdmF0ZS5nZXQoKSk7CisgICAgbV9wcml2YXRlLT5yZXF1ZXN0RmFpbGVk
KGVycm9yKTsKK30KKworY2xhc3MgRXh0cmFEYXRhQ29udGFpbmVyIDogcHVibGljIFdlYkNvcmU6
OlJUQ1ZvaWRSZXF1ZXN0OjpFeHRyYURhdGEgeworcHVibGljOgorICAgIEV4dHJhRGF0YUNvbnRh
aW5lcihXZWJSVENWb2lkUmVxdWVzdDo6RXh0cmFEYXRhKiBleHRyYURhdGEpIDogbV9leHRyYURh
dGEoV1RGOjphZG9wdFB0cihleHRyYURhdGEpKSB7IH0KKworICAgIFdlYlJUQ1ZvaWRSZXF1ZXN0
OjpFeHRyYURhdGEqIGV4dHJhRGF0YSgpIHsgcmV0dXJuIG1fZXh0cmFEYXRhLmdldCgpOyB9CisK
K3ByaXZhdGU6CisgICAgT3duUHRyPFdlYlJUQ1ZvaWRSZXF1ZXN0OjpFeHRyYURhdGE+IG1fZXh0
cmFEYXRhOworfTsKKworV2ViUlRDVm9pZFJlcXVlc3Q6OkV4dHJhRGF0YSogV2ViUlRDVm9pZFJl
cXVlc3Q6OmV4dHJhRGF0YSgpIGNvbnN0Cit7CisgICAgUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0OjpF
eHRyYURhdGE+IGRhdGEgPSBtX3ByaXZhdGUtPmV4dHJhRGF0YSgpOworICAgIGlmICghZGF0YSkK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEV4dHJhRGF0YUNvbnRh
aW5lcio+KGRhdGEuZ2V0KCkpLT5leHRyYURhdGEoKTsKK30KKwordm9pZCBXZWJSVENWb2lkUmVx
dWVzdDo6c2V0RXh0cmFEYXRhKEV4dHJhRGF0YSogZXh0cmFEYXRhKQoreworICAgIG1fcHJpdmF0
ZS0+c2V0RXh0cmFEYXRhKGFkb3B0UmVmKG5ldyBFeHRyYURhdGFDb250YWluZXIoZXh0cmFEYXRh
KSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCmluZGV4IDg1ZDAyNjJj
MzdkNjkxZDRhNjU4YWRlNWJjNmQwNGQ5NzkxYzhlZDEuLjBmZDExMGI5NjFiMzcyYmQ4YWZhZmNj
YzNlMmJlZmZhMmEzOWNjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcApAQCAt
MzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oIgogCiAj
aW5jbHVkZSAiUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ5LDYgKzUwLDEwIEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShQYXNzUmVmUHRyPFJUQ0NvbmZpZ3VyYXRpb24+LCBQ
YXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBjcmVhdGVPZmZlcihQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q+LCBQ
YXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0TG9jYWxEZXNjcmlwdGlvbihQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0PiwgUGFzc1JlZlB0
cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHNldFJlbW90ZURlc2NyaXB0aW9uKFBhc3NSZWZQdHI8UlRDVm9pZFJlcXVlc3Q+LCBQ
YXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+KSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gbG9j
YWxEZXNjcmlwdGlvbigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxSVENTZXNz
aW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiByZW1vdGVEZXNjcmlwdGlvbigpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJY2UoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPiwg
UGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29s
IGFkZEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I+KSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJl
YW1EZXNjcmlwdG9yPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7CkBA
IC04Myw2ICs4OCwyNCBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15OjpjcmVh
dGVPZmZlcihQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbgogewogfQogCit2b2lkIFJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15OjpzZXRMb2NhbERlc2NyaXB0aW9uKFBhc3NSZWZQ
dHI8UlRDVm9pZFJlcXVlc3Q+LCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2Ny
aXB0b3I+KQoreworfQorCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15OjpzZXRS
ZW1vdGVEZXNjcmlwdGlvbihQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0PiwgUGFzc1JlZlB0cjxS
VENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPikKK3sKK30KKworUGFzc1JlZlB0cjxSVENT
ZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJEdW1t
eTo6bG9jYWxEZXNjcmlwdGlvbigpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
RHVtbXk6OnJlbW90ZURlc2NyaXB0aW9uKCkKK3sKKyAgICByZXR1cm4gMDsKK30KKwogYm9vbCBS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXJEdW1teTo6YWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFT
dHJlYW1EZXNjcmlwdG9yPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikKIHsKICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCmluZGV4IDBjNzMwYjJhY2Q4
YjgwNTUxZTJhYTAwNWRkYTFiMDA5N2IxZjQxYTUuLmE0MzBhNzFhNjE2N2I1ZWI0MTViYTc2NmUz
ZDk4NjdmNDJjYTExMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCkBAIC00NSw2ICs0
NSw3IEBAIGNsYXNzIFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I7CiBjbGFzcyBSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXJDbGllbnQ7CiBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlw
dG9yOwogY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDsKK2NsYXNzIFJUQ1ZvaWRS
ZXF1ZXN0OwogCiBjbGFzcyBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIgewogcHVibGljOgpAQCAt
NTQsNiArNTUsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpbml0aWFsaXplKFBhc3NS
ZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pID0g
MDsKIAogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVPZmZlcihQYXNzUmVmUHRyPFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3Q+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHNldExvY2FsRGVzY3JpcHRpb24oUGFzc1JlZlB0cjxSVENWb2lkUmVx
dWVzdD4sIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4pID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVtb3RlRGVzY3JpcHRpb24oUGFzc1JlZlB0cjxSVENWb2lk
UmVxdWVzdD4sIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4pID0g
MDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
cj4gbG9jYWxEZXNjcmlwdGlvbigpID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UlRDU2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gcmVtb3RlRGVzY3JpcHRpb24oKSA9IDA7CiAgICAg
dmlydHVhbCBib29sIHVwZGF0ZUljZShQYXNzUmVmUHRyPFJUQ0NvbmZpZ3VyYXRpb24+LCBQYXNz
UmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSA9IDA7CiAgICAgdmlydHVhbCBib29sIGFkZEljZUNh
bmRpZGF0ZShQYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I+KSA9IDA7CiAgICAg
dmlydHVhbCBib29sIGFkZFN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4s
IFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIz
ZTM5ZmEwOTgzN2IyMWMxYzcxN2YyYTE2ZmRjNWI1MTRkNzkwNmIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdC5oCkBA
IC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAq
ICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1ZvaWRSZXF1ZXN0X2gKKyNkZWZpbmUg
UlRDVm9pZFJlcXVlc3RfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRDVm9pZFJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRl
ZDxSVENWb2lkUmVxdWVzdD4geworcHVibGljOgorICAgIGNsYXNzIEV4dHJhRGF0YSA6IHB1Ymxp
YyBSZWZDb3VudGVkPEV4dHJhRGF0YT4geworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+
RXh0cmFEYXRhKCkgeyB9CisgICAgfTsKKworICAgIHZpcnR1YWwgflJUQ1ZvaWRSZXF1ZXN0KCkg
eyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZCgpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVxdWVzdEZhaWxlZChjb25zdCBTdHJpbmcmIGVycm9yKSA9IDA7CisKKyAgICBQ
YXNzUmVmUHRyPEV4dHJhRGF0YT4gZXh0cmFEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9leHRyYURh
dGE7IH0KKyAgICB2b2lkIHNldEV4dHJhRGF0YShQYXNzUmVmUHRyPEV4dHJhRGF0YT4gZXh0cmFE
YXRhKSB7IG1fZXh0cmFEYXRhID0gZXh0cmFEYXRhOyB9CisKK3Byb3RlY3RlZDoKKyAgICBSVENW
b2lkUmVxdWVzdCgpIHsgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxFeHRyYURhdGE+IG1fZXh0
cmFEYXRhOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFJUQ1ZvaWRSZXF1ZXN0X2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcAppbmRl
eCBhMDAyMjAyN2EyZTJlY2NiOWVjZWVlY2I5MGY0MjEzY2QxM2QyN2Q5Li5jMGNhZWFkOTMzNGI3
ZjQ4NjBiYjUzMDI3YTdlOTljMzBjYjM5OGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJv
bWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21p
dW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3BwCkBAIC00MCw2ICs0MCw3IEBA
CiAjaW5jbHVkZSAiUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAi
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIlJUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3QuaCIKKyNpbmNsdWRlICJSVENWb2lkUmVxdWVzdC5oIgogI2luY2x1
ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYUNvbnN0cmFp
bnRzLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oPgpAQCAt
NDcsNiArNDgsNyBAQAogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENJQ0VDYW5kaWRhdGVEZXNjcmlw
dG9yLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3IuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5o
PgorI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENWb2lkUmVxdWVzdC5oPgogI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTgxLDYgKzgzLDIyIEBAIHZv
aWQgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OmNyZWF0ZU9mZmVyKFBhc3NSZWZQ
dHI8UlRDU2Vzc2lvbkRlc2NyaXB0CiAgICAgbV93ZWJIYW5kbGVyLT5jcmVhdGVPZmZlcihyZXF1
ZXN0LCBjb25zdHJhaW50cyk7CiB9CiAKK3ZvaWQgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hy
b21pdW06OnNldExvY2FsRGVzY3JpcHRpb24oUGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdD4gcmVx
dWVzdCwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiBzZXNzaW9u
RGVzY3JpcHRpb24pCit7CisgICAgaWYgKCFtX3dlYkhhbmRsZXIpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fd2ViSGFuZGxlci0+c2V0TG9jYWxEZXNjcmlwdGlvbihyZXF1ZXN0LCBzZXNzaW9u
RGVzY3JpcHRpb24pOworfQorCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVt
OjpzZXRSZW1vdGVEZXNjcmlwdGlvbihQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0PiByZXF1ZXN0
LCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IHNlc3Npb25EZXNj
cmlwdGlvbikKK3sKKyAgICBpZiAoIW1fd2ViSGFuZGxlcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV93ZWJIYW5kbGVyLT5zZXRSZW1vdGVEZXNjcmlwdGlvbihyZXF1ZXN0LCBzZXNzaW9uRGVz
Y3JpcHRpb24pOworfQorCiBib29sIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjp1
cGRhdGVJY2UoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uLCBQYXNz
UmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGNvbnN0cmFpbnRzKQogewogICAgIGlmICghbV93ZWJI
YW5kbGVyKQpAQCAtOTcsNiArMTE1LDIyIEBAIGJvb2wgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
Q2hyb21pdW06OmFkZEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0CiAgICAg
cmV0dXJuIG1fd2ViSGFuZGxlci0+YWRkSUNFQ2FuZGlkYXRlKGljZUNhbmRpZGF0ZSk7CiB9CiAK
K1Bhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2hyb21pdW06OmxvY2FsRGVzY3JpcHRpb24oKQoreworICAgIGlmICghbV93
ZWJIYW5kbGVyKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBtX3dlYkhhbmRsZXIt
PmxvY2FsRGVzY3JpcHRpb24oKTsKK30KKworUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRp
b25EZXNjcmlwdG9yPiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6cmVtb3RlRGVz
Y3JpcHRpb24oKQoreworICAgIGlmICghbV93ZWJIYW5kbGVyKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIHJldHVybiBtX3dlYkhhbmRsZXItPnJlbW90ZURlc2NyaXB0aW9uKCk7Cit9CisKIGJv
b2wgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OmFkZFN0cmVhbShQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4gbWVkaWFTdHJlYW0sIFBhc3NSZWZQdHI8TWVkaWFDb25z
dHJhaW50cz4gY29uc3RyYWludHMpCiB7CiAgICAgaWYgKCFtX3dlYkhhbmRsZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaAppbmRl
eCA4OTkzYzExODcxMTc4MDQ1Yzc0NjA0MTVmNTZhMDIwNGQwZDYxZGJiLi5hN2JhYzgxNjExYjBi
ZDE1ZDFkYzg4NDNhYmI2OTNhZGJhM2E3M2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJv
bWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVt
L1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmgKQEAgLTU1LDYgKzU1LDEwIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShQYXNzUmVmUHRyPFJUQ0NvbmZpZ3Vy
YXRpb24+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSBPVkVSUklERTsKIAogICAgIHZp
cnR1YWwgdm9pZCBjcmVhdGVPZmZlcihQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3Q+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0TG9jYWxEZXNjcmlwdGlvbihQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0Piwg
UGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHNldFJlbW90ZURlc2NyaXB0aW9uKFBhc3NSZWZQdHI8UlRDVm9pZFJl
cXVlc3Q+LCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+KSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvcj4gbG9jYWxEZXNjcmlwdGlvbigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiByZW1vdGVEZXNjcmlwdGlvbigpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJY2UoUGFzc1JlZlB0cjxSVENDb25maWd1
cmF0aW9uPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBib29sIGFkZEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZURlc2Ny
aXB0b3I+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKFBhc3NSZWZQdHI8
TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZF
UlJJREU7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggNzQyOTNjZmMyYjA2MjY5ODhlNmUwZGQ1MTE4ODk5NjBlMDM3YWMxMy4uYjA2YmJiNGY2NWIy
YTQ5ZjRkZDJiNGZkYzA2MTgyODgwZjE0OGE2NyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA5LTA1ICBUb21t
eSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFt
IEFQSTogQWRkIHRoZSBsb2NhbCBhbmQgcmVtb3RlIGRlc2NyaXB0aW9uIGZ1bmN0aW9uYWxpdHkg
dG8gUlRDUGVlckNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk1ODM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW4gYWRkaXRpb24gdG8gYWRkaW5nIHRoZSBuZXcgbWV0aG9kcyB0byBNb2Nr
V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyIEkgY2xlYW5lZAorICAgICAgICB1cCB0aGUgdGFz
ayBkZWZpbml0aW9ucyBhIGJpdC4gVGhlcmUgd2FzIG5vIG5lZWQgdG8gaGF2ZSB0aGVtIGluIHRo
ZSBoZWFkZXIgZmlsZS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tX
ZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwOgorICAgICAgICAoUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdFN1Y2NlZGVkVGFzayk6CisgICAgICAgIChSVENTZXNzaW9uRGVzY3JpcHRp
b25SZXF1ZXN0U3VjY2VkZWRUYXNrOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0U3VjY2Vk
ZWRUYXNrKToKKyAgICAgICAgKFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RGYWlsZWRUYXNr
KToKKyAgICAgICAgKFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RGYWlsZWRUYXNrOjpSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0RmFpbGVkVGFzayk6CisgICAgICAgIChSVENWb2lkUmVx
dWVzdFRhc2spOgorICAgICAgICAoUlRDVm9pZFJlcXVlc3RUYXNrOjpSVENWb2lkUmVxdWVzdFRh
c2spOgorICAgICAgICAoTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6Y3JlYXRlT2Zm
ZXIpOgorICAgICAgICAoTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6c2V0TG9jYWxE
ZXNjcmlwdGlvbik6CisgICAgICAgIChNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpz
ZXRSZW1vdGVEZXNjcmlwdGlvbik6CisgICAgICAgIChNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyOjpsb2NhbERlc2NyaXB0aW9uKToKKyAgICAgICAgKE1vY2tXZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXI6OnJlbW90ZURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6CisgICAgICAgIChN
b2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKToKKwogMjAxMi0wOS0wNSAgVG9ueSBDaGFu
ZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmVtb3ZlIGRlcGVu
ZGVuY3kgb24gd2Via2l0X3VzZXJfYWdlbnQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5j
cHAKaW5kZXggN2Y4MmE0ZjczYTllYTFlZmE0OTgzZWIzZDFiODZiZDMwZmNlYWEzMi4uYjY2MDQy
ZGM0ZWJmZjRhYTU4NTRmMTIyNjg1NmM0MjU0MzlmODJhNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlci5jcHAKQEAgLTM3LDMzICszNyw3MSBAQAogI2luY2x1ZGUgPHB1YmxpYy9XZWJS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1ZvaWRS
ZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlN0cmluZy5oPgogI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJWZWN0b3IuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotTW9ja1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlcjo6U3VjY2Vzc0NhbGxiYWNrVGFzazo6U3VjY2Vzc0NhbGxiYWNr
VGFzayhNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKiBvYmplY3QsIGNvbnN0IFdlYktp
dDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciYgcmVzdWx0KQotICAgIDogTWV0aG9kVGFzazxN
b2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyPihvYmplY3QpCi0gICAgLCBtX3JlcXVlc3Qo
cmVxdWVzdCkKLSAgICAsIG1fcmVzdWx0KHJlc3VsdCkKLXsKLX0KK2NsYXNzIFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3RTdWNjZWRlZFRhc2sgOiBwdWJsaWMgTWV0aG9kVGFzazxNb2NrV2Vi
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyPiB7CitwdWJsaWM6CisgICAgUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdFN1Y2NlZGVkVGFzayhNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
KiBvYmplY3QsIGNvbnN0IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9y
JiByZXN1bHQpCisgICAgICAgIDogTWV0aG9kVGFzazxNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyPihvYmplY3QpCisgICAgICAgICwgbV9yZXF1ZXN0KHJlcXVlc3QpCisgICAgICAgICwg
bV9yZXN1bHQocmVzdWx0KQorICAgIHsKKyAgICB9CiAKLXZvaWQgTW9ja1dlYlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlcjo6U3VjY2Vzc0NhbGxiYWNrVGFzazo6cnVuSWZWYWxpZCgpCi17Ci0gICAg
bV9yZXF1ZXN0LnJlcXVlc3RTdWNjZWVkZWQobV9yZXN1bHQpOwotfQorICAgIHZpcnR1YWwgdm9p
ZCBydW5JZlZhbGlkKCkgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIG1fcmVxdWVzdC5yZXF1ZXN0
U3VjY2VlZGVkKG1fcmVzdWx0KTsKKyAgICB9CiAKLU1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXI6OkZhaWx1cmVDYWxsYmFja1Rhc2s6OkZhaWx1cmVDYWxsYmFja1Rhc2soTW9ja1dlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlciogb2JqZWN0LCBjb25zdCBXZWJLaXQ6OldlYlJUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3QmIHJlcXVlc3QpCi0gICAgOiBNZXRob2RUYXNrPE1vY2tXZWJS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXI+KG9iamVjdCkKLSAgICAsIG1fcmVxdWVzdChyZXF1ZXN0
KQotewotfQorcHJpdmF0ZToKKyAgICBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3QgbV9yZXF1ZXN0OworICAgIFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVz
Y3JpcHRvciBtX3Jlc3VsdDsKK307CisKK2NsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3RGYWlsZWRUYXNrIDogcHVibGljIE1ldGhvZFRhc2s8TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlcj4geworcHVibGljOgorICAgIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RGYWls
ZWRUYXNrKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIqIG9iamVjdCwgY29uc3QgV2Vi
S2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiByZXF1ZXN0KQorICAgICAgICA6
IE1ldGhvZFRhc2s8TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcj4ob2JqZWN0KQorICAg
ICAgICAsIG1fcmVxdWVzdChyZXF1ZXN0KQorICAgIHsKKyAgICB9CiAKLXZvaWQgTW9ja1dlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6RmFpbHVyZUNhbGxiYWNrVGFzazo6cnVuSWZWYWxpZCgp
Ci17Ci0gICAgbV9yZXF1ZXN0LnJlcXVlc3RGYWlsZWQoIlRFU1RfRVJST1IiKTsKLX0KKyAgICB2
aXJ0dWFsIHZvaWQgcnVuSWZWYWxpZCgpIE9WRVJSSURFCisgICAgeworICAgICAgICBtX3JlcXVl
c3QucmVxdWVzdEZhaWxlZCgiVEVTVF9FUlJPUiIpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBX
ZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QgbV9yZXF1ZXN0OworfTsKKwor
Y2xhc3MgUlRDVm9pZFJlcXVlc3RUYXNrIDogcHVibGljIE1ldGhvZFRhc2s8TW9ja1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlcj4geworcHVibGljOgorICAgIFJUQ1ZvaWRSZXF1ZXN0VGFzayhN
b2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKiBvYmplY3QsIGNvbnN0IFdlYktpdDo6V2Vi
UlRDVm9pZFJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgc3VjY2VlZGVkKQorICAgICAgICA6IE1ldGhv
ZFRhc2s8TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcj4ob2JqZWN0KQorICAgICAgICAs
IG1fcmVxdWVzdChyZXF1ZXN0KQorICAgICAgICAsIG1fc3VjY2VlZGVkKHN1Y2NlZWRlZCkKKyAg
ICB7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIHJ1bklmVmFsaWQoKSBPVkVSUklERQorICAg
IHsKKyAgICAgICAgaWYgKG1fc3VjY2VlZGVkKQorICAgICAgICAgICAgbV9yZXF1ZXN0LnJlcXVl
c3RTdWNjZWVkZWQoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9yZXF1ZXN0LnJlcXVl
c3RGYWlsZWQoIlRFU1RfRVJST1IiKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgV2ViS2l0OjpX
ZWJSVENWb2lkUmVxdWVzdCBtX3JlcXVlc3Q7CisgICAgYm9vbCBtX3N1Y2NlZWRlZDsKK307CisK
Ky8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCiBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
OjpNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlckNsaWVudCogY2xpZW50KQogICAgIDogbV9jbGllbnQoY2xpZW50KQpAQCAtMTE3LDkgKzE1
NSwzNyBAQCB2b2lkIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmNyZWF0ZU9mZmVy
KGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbgogICAgIGlmIChjb25zdHJhaW50cy5nZXRN
YW5kYXRvcnlDb25zdHJhaW50VmFsdWUoInN1Y2NlZWQiLCBzaG91bGRTdWNjZWVkKSAmJiBzaG91
bGRTdWNjZWVkID09ICJ0cnVlIikgewogICAgICAgICBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25E
ZXNjcmlwdG9yIHNlc3Npb25EZXNjcmlwdGlvbjsKICAgICAgICAgc2Vzc2lvbkRlc2NyaXB0aW9u
LmluaXRpYWxpemUoIm9mZmVyIiwgIlNvbWUgU0RQIGhlcmUiKTsKLSAgICAgICAgcG9zdFRhc2so
bmV3IFN1Y2Nlc3NDYWxsYmFja1Rhc2sodGhpcywgcmVxdWVzdCwgc2Vzc2lvbkRlc2NyaXB0aW9u
KSk7CisgICAgICAgIHBvc3RUYXNrKG5ldyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0U3Vj
Y2VkZWRUYXNrKHRoaXMsIHJlcXVlc3QsIHNlc3Npb25EZXNjcmlwdGlvbikpOworICAgIH0gZWxz
ZQorICAgICAgICBwb3N0VGFzayhuZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEZhaWxl
ZFRhc2sodGhpcywgcmVxdWVzdCkpOworfQorCit2b2lkIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXI6OnNldExvY2FsRGVzY3JpcHRpb24oY29uc3QgV2ViUlRDVm9pZFJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3ImIGxvY2FsRGVz
Y3JpcHRpb24pCit7CisgICAgaWYgKCFsb2NhbERlc2NyaXB0aW9uLmlzTnVsbCgpICYmIGxvY2Fs
RGVzY3JpcHRpb24udHlwZSgpID09ICJvZmZlciIpIHsKKyAgICAgICAgbV9sb2NhbERlc2NyaXB0
aW9uID0gbG9jYWxEZXNjcmlwdGlvbjsKKyAgICAgICAgcG9zdFRhc2sobmV3IFJUQ1ZvaWRSZXF1
ZXN0VGFzayh0aGlzLCByZXF1ZXN0LCB0cnVlKSk7CisgICAgfSBlbHNlCisgICAgICAgIHBvc3RU
YXNrKG5ldyBSVENWb2lkUmVxdWVzdFRhc2sodGhpcywgcmVxdWVzdCwgZmFsc2UpKTsKK30KKwor
dm9pZCBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpzZXRSZW1vdGVEZXNjcmlwdGlv
bihjb25zdCBXZWJSVENWb2lkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uRGVzY3JpcHRvciYgcmVtb3RlRGVzY3JpcHRpb24pCit7CisgICAgaWYgKCFyZW1v
dGVEZXNjcmlwdGlvbi5pc051bGwoKSAmJiByZW1vdGVEZXNjcmlwdGlvbi50eXBlKCkgPT0gImFu
c3dlciIpIHsKKyAgICAgICAgbV9yZW1vdGVEZXNjcmlwdGlvbiA9IHJlbW90ZURlc2NyaXB0aW9u
OworICAgICAgICBwb3N0VGFzayhuZXcgUlRDVm9pZFJlcXVlc3RUYXNrKHRoaXMsIHJlcXVlc3Qs
IHRydWUpKTsKICAgICB9IGVsc2UKLSAgICAgICAgcG9zdFRhc2sobmV3IEZhaWx1cmVDYWxsYmFj
a1Rhc2sodGhpcywgcmVxdWVzdCkpOworICAgICAgICBwb3N0VGFzayhuZXcgUlRDVm9pZFJlcXVl
c3RUYXNrKHRoaXMsIHJlcXVlc3QsIGZhbHNlKSk7Cit9CisKK1dlYlJUQ1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3IgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6bG9jYWxEZXNj
cmlwdGlvbigpCit7CisgICAgcmV0dXJuIG1fbG9jYWxEZXNjcmlwdGlvbjsKK30KKworV2ViUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyOjpyZW1vdGVEZXNjcmlwdGlvbigpCit7CisgICAgcmV0dXJuIG1fcmVtb3RlRGVzY3JpcHRp
b247CiB9CiAKIGJvb2wgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6dXBkYXRlSUNF
KGNvbnN0IFdlYlJUQ0NvbmZpZ3VyYXRpb24mLCBjb25zdCBXZWJNZWRpYUNvbnN0cmFpbnRzJikK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tX
ZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAppbmRleCA0MmQ0MGQ3MmExMjIwNzc2OTRlNTZk
NjQ3MWNiNzE4NjQ1MmMxZmNmLi4xODA1NjhiYTY5YmM0NjRlOTU5ODgzNzRkNTQxOTJlZDgwYmE5
YTMzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCkBAIC00OSw2ICs0OSwxMCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIGluaXRpYWxpemUoY29uc3QgV2ViS2l0OjpXZWJSVEND
b25maWd1cmF0aW9uJiwgY29uc3QgV2ViS2l0OjpXZWJNZWRpYUNvbnN0cmFpbnRzJikgT1ZFUlJJ
REU7CiAKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2ZmZXIoY29uc3QgV2ViS2l0OjpXZWJSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiwgY29uc3QgV2ViS2l0OjpXZWJNZWRpYUNvbnN0cmFp
bnRzJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldExvY2FsRGVzY3JpcHRpb24oY29u
c3QgV2ViS2l0OjpXZWJSVENWb2lkUmVxdWVzdCYsIGNvbnN0IFdlYktpdDo6V2ViUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uRGVzY3JpcHRvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRS
ZW1vdGVEZXNjcmlwdGlvbihjb25zdCBXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0JiwgY29uc3Qg
V2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yJikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IgbG9j
YWxEZXNjcmlwdGlvbigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJSVENTZXNz
aW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yIHJlbW90ZURlc2NyaXB0aW9uKCkgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBib29sIHVwZGF0ZUlDRShjb25zdCBXZWJLaXQ6OldlYlJUQ0NvbmZpZ3VyYXRp
b24mLCBjb25zdCBXZWJLaXQ6OldlYk1lZGlhQ29uc3RyYWludHMmKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGJvb2wgYWRkSUNFQ2FuZGlkYXRlKGNvbnN0IFdlYktpdDo6V2ViUlRDSUNFQ2FuZGlk
YXRlRGVzY3JpcHRvciYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhZGRTdHJlYW0oY29u
c3QgV2ViS2l0OjpXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImLCBjb25zdCBXZWJLaXQ6OldlYk1l
ZGlhQ29uc3RyYWludHMmKSBPVkVSUklERTsKQEAgLTYyLDI3ICs2Niw5IEBAIHByaXZhdGU6CiAg
ICAgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcigpIHsgfQogCiAgICAgV2ViS2l0OjpX
ZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQqIG1fY2xpZW50OwotCiAgICAgVGFza0xp
c3QgbV90YXNrTGlzdDsKLQotICAgIGNsYXNzIFN1Y2Nlc3NDYWxsYmFja1Rhc2sgOiBwdWJsaWMg
TWV0aG9kVGFzazxNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyPiB7Ci0gICAgcHVibGlj
OgotICAgICAgICBTdWNjZXNzQ2FsbGJhY2tUYXNrKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXIqLCBjb25zdCBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QmLCBj
b25zdCBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3ImKTsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHJ1bklmVmFsaWQoKSBPVkVSUklERTsKLQotICAgIHByaXZhdGU6Ci0g
ICAgICAgIFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCBtX3JlcXVlc3Q7
Ci0gICAgICAgIFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciBtX3Jl
c3VsdDsKLSAgICB9OwotCi0gICAgY2xhc3MgRmFpbHVyZUNhbGxiYWNrVGFzayA6IHB1YmxpYyBN
ZXRob2RUYXNrPE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI+IHsKLSAgICBwdWJsaWM6
Ci0gICAgICAgIEZhaWx1cmVDYWxsYmFja1Rhc2soTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlciosIGNvbnN0IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCYpOwot
ICAgICAgICB2aXJ0dWFsIHZvaWQgcnVuSWZWYWxpZCgpIE9WRVJSSURFOwotCi0gICAgcHJpdmF0
ZToKLSAgICAgICAgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0IG1fcmVx
dWVzdDsKLSAgICB9OworICAgIFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvciBtX2xvY2FsRGVzY3JpcHRpb247CisgICAgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3Jp
cHRpb25EZXNjcmlwdG9yIG1fcmVtb3RlRGVzY3JpcHRpb247CiB9OwogCiAjZW5kaWYgLy8gRU5B
QkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5NzcxNWJlZGIyZTkxZjg2YjU1YTJlYWUwZTAzZWI4
NWVmY2RjMmE4Li5mYzA5MjUwYWZkYTU0MjZkMjY4Y2Y4ODk5ODE2YmZiY2UyM2M3OTNlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDktMDUgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3
QGdvb2dsZS5jb20+CisKKyAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBBZGQgdGhlIGxvY2FsIGFu
ZCByZW1vdGUgZGVzY3JpcHRpb24gZnVuY3Rpb25hbGl0eSB0byBSVENQZWVyQ29ubmVjdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU4MzkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXIuaHRtbDoKKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWxvY2FsRGVzY3JpcHRpb24tZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLWxvY2FsRGVzY3JpcHRpb24uaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci5odG1sLgorICAgICAgICAq
IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlRGVzY3JpcHRpb24tZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLXJlbW90ZURlc2NyaXB0aW9uLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXIuaHRtbC4KKwogMjAx
Mi0wOS0wNCAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBGaXggaW5jb25zaXN0ZW5jaWVzIGluIE5ldHdvcmtVSVNvdXJjZUNv
ZGVQcm92aWRlciBpbXBsZW1lbnRhdGlvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXIuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXIuaHRtbApp
bmRleCBmZjQ3NjJkYjE5ZjE2MGJiZmJjYWNiMTBhNjhkNTdlNGUxOTVmODdiLi5hNTAwZDc0ZGZl
NTEwNjA5NjU3ZDNiODYyMDc0NjNlYjdhMjQ4MWQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZl
ci5odG1sCkBAIC0xOSw3ICsxOSw3IEBAIGZ1bmN0aW9uIHJlcXVlc3RGYWlsZWQyKHJlYXNvbikK
ICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotZnVuY3Rpb24gcmVxdWVzdFN1Y2NlZWRlZDIoc2Qs
IHNvdXJjZSkKK2Z1bmN0aW9uIHJlcXVlc3RTdWNjZWVkZWQyKHNkKQogewogICAgIHRlc3RGYWls
ZWQoJ3JlcXVlc3RTdWNjZWVkZWQgd2FzIGNhbGxlZC4nKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsK
QEAgLTMxLDcgKzMxLDcgQEAgZnVuY3Rpb24gcmVxdWVzdEZhaWxlZDEoKQogICAgIGZpbmlzaEpT
VGVzdCgpOwogfQogCi1mdW5jdGlvbiByZXF1ZXN0U3VjY2VlZGVkMShzZCwgc291cmNlKQorZnVu
Y3Rpb24gcmVxdWVzdFN1Y2NlZWRlZDEoc2QpCiB7CiAgICAgdGVzdFBhc3NlZCgncmVxdWVzdFN1
Y2NlZWRlZCB3YXMgY2FsbGVkLicpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWxvY2FsRGVzY3JpcHRpb24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1sb2NhbERl
c2NyaXB0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40M2QyODc2ZmRkMGU0NDczZWQ4OWEz
OTZkOTA3NGYwMWZiNTdhZWNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1sb2NhbERlc2NyaXB0aW9uLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyBSVENQZWVyQ29ubmVjdGlvbiBsb2NhbERlc2NyaXB0
aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBwYy5zZXRMb2NhbERl
c2NyaXB0aW9uKHNlc3Npb25EZXNjcmlwdGlvbiwgcmVxdWVzdFN1Y2NlZWRlZDEsIHJlcXVlc3RG
YWlsZWQxKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHJlcXVlc3RTdWNjZWVkZWQg
d2FzIGNhbGxlZC4KK1BBU1MgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihzZXNzaW9uRGVzY3JpcHRp
b24sIHJlcXVlc3RTdWNjZWVkZWQyLCByZXF1ZXN0RmFpbGVkMik7IGRpZCBub3QgdGhyb3cgZXhj
ZXB0aW9uLgorUEFTUyByZXF1ZXN0RmFpbGVkIHdhcyBjYWxsZWQuCitQQVNTIHBjLmxvY2FsRGVz
Y3JpcHRpb24uc2RwIGlzICJzZHAxIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24tbG9jYWxEZXNjcmlwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1sb2NhbERlc2NyaXB0aW9uLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGZhZTQ2YjRhMTgzMTZhZTA0ZWMwNWRmMTVjYTgxNTg5MjRmMjE5OAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24tbG9jYWxEZXNjcmlwdGlvbi5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyBSVENQZWVyQ29ubmVjdGlv
biBsb2NhbERlc2NyaXB0aW9uLiIpOworCit2YXIgcGMgPSBudWxsOworCitmdW5jdGlvbiByZXF1
ZXN0RmFpbGVkMigpCit7CisgICAgdGVzdFBhc3NlZCgncmVxdWVzdEZhaWxlZCB3YXMgY2FsbGVk
LicpOworCisgICAgc2hvdWxkQmUoJ3BjLmxvY2FsRGVzY3JpcHRpb24uc2RwJywgJyJzZHAxIicp
OworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiByZXF1ZXN0U3VjY2VlZGVkMigp
Cit7CisgICAgdGVzdEZhaWxlZCgncmVxdWVzdFN1Y2NlZWRlZCB3YXMgY2FsbGVkLicpOworICAg
IGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiByZXF1ZXN0RmFpbGVkMSgpCit7CisgICAg
dGVzdEZhaWxlZCgncmVxdWVzdEZhaWxlZCB3YXMgY2FsbGVkLicpOworICAgIGZpbmlzaEpTVGVz
dCgpOworfQorCitmdW5jdGlvbiByZXF1ZXN0U3VjY2VlZGVkMSgpCit7CisgICAgdGVzdFBhc3Nl
ZCgncmVxdWVzdFN1Y2NlZWRlZCB3YXMgY2FsbGVkLicpOworCisgICAgc2Vzc2lvbkRlc2NyaXB0
aW9uID0gbmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbih7dHlwZToiYW5zd2VyIiwgc2RwOiJzZHAy
In0pOworICAgIHNob3VsZE5vdFRocm93KCdwYy5zZXRMb2NhbERlc2NyaXB0aW9uKHNlc3Npb25E
ZXNjcmlwdGlvbiwgcmVxdWVzdFN1Y2NlZWRlZDIsIHJlcXVlc3RGYWlsZWQyKTsnKTsKK30KKwor
cGMgPSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24obnVsbCwgbnVsbCk7Cit2YXIgc2Vzc2lv
bkRlc2NyaXB0aW9uID0gbmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbih7dHlwZToib2ZmZXIiLCBz
ZHA6InNkcDEifSk7CitzaG91bGROb3RUaHJvdygncGMuc2V0TG9jYWxEZXNjcmlwdGlvbihzZXNz
aW9uRGVzY3JpcHRpb24sIHJlcXVlc3RTdWNjZWVkZWQxLCByZXF1ZXN0RmFpbGVkMSk7Jyk7CisK
Kword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOword2luZG93LnN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlRGVzY3JpcHRp
b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi1yZW1vdGVEZXNjcmlwdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTZiMDQz
NzBmZGE2ZWE2YjgwZmE3OWU0MjI2MDk5YjU1ZjA1ZDcyYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlRGVzY3Jp
cHRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIFJUQ1BlZXJDb25uZWN0
aW9uIHJlbW90ZURlc2NyaXB0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzY3JpcHRpb24sIHJlcXVlc3RT
dWNjZWVkZWQxLCByZXF1ZXN0RmFpbGVkMSk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFT
UyByZXF1ZXN0U3VjY2VlZGVkIHdhcyBjYWxsZWQuCitQQVNTIHBjLnNldFJlbW90ZURlc2NyaXB0
aW9uKHNlc3Npb25EZXNjcmlwdGlvbiwgcmVxdWVzdFN1Y2NlZWRlZDIsIHJlcXVlc3RGYWlsZWQy
KTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHJlcXVlc3RGYWlsZWQgd2FzIGNhbGxl
ZC4KK1BBU1MgcGMucmVtb3RlRGVzY3JpcHRpb24uc2RwIGlzICJzZHAxIgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlRGVzY3JpcHRp
b24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24t
cmVtb3RlRGVzY3JpcHRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjBjNTExYmFmMGQzYTU2NmVmODUx
YzY3Yjc1NWUyYjdlMTRlY2U0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1yZW1vdGVEZXNjcmlwdGlvbi5odG1sCkBAIC0w
LDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9u
KCJUZXN0cyBSVENQZWVyQ29ubmVjdGlvbiByZW1vdGVEZXNjcmlwdGlvbi4iKTsKKwordmFyIHBj
ID0gbnVsbDsKKworZnVuY3Rpb24gcmVxdWVzdEZhaWxlZDIoKQoreworICAgIHRlc3RQYXNzZWQo
J3JlcXVlc3RGYWlsZWQgd2FzIGNhbGxlZC4nKTsKKworICAgIHNob3VsZEJlKCdwYy5yZW1vdGVE
ZXNjcmlwdGlvbi5zZHAnLCAnInNkcDEiJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1
bmN0aW9uIHJlcXVlc3RTdWNjZWVkZWQyKCkKK3sKKyAgICB0ZXN0RmFpbGVkKCdyZXF1ZXN0U3Vj
Y2VlZGVkIHdhcyBjYWxsZWQuJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9u
IHJlcXVlc3RGYWlsZWQxKCkKK3sKKyAgICB0ZXN0RmFpbGVkKCdyZXF1ZXN0RmFpbGVkIHdhcyBj
YWxsZWQuJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHJlcXVlc3RTdWNj
ZWVkZWQxKCkKK3sKKyAgICB0ZXN0UGFzc2VkKCdyZXF1ZXN0U3VjY2VlZGVkIHdhcyBjYWxsZWQu
Jyk7CisKKyAgICBzZXNzaW9uRGVzY3JpcHRpb24gPSBuZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
KHt0eXBlOiJvZmZlciIsIHNkcDoic2RwMiJ9KTsKKyAgICBzaG91bGROb3RUaHJvdygncGMuc2V0
UmVtb3RlRGVzY3JpcHRpb24oc2Vzc2lvbkRlc2NyaXB0aW9uLCByZXF1ZXN0U3VjY2VlZGVkMiwg
cmVxdWVzdEZhaWxlZDIpOycpOworfQorCitwYyA9IG5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlv
bihudWxsLCBudWxsKTsKK3ZhciBzZXNzaW9uRGVzY3JpcHRpb24gPSBuZXcgUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uKHt0eXBlOiJhbnN3ZXIiLCBzZHA6InNkcDEifSk7CitzaG91bGROb3RUaHJvdygn
cGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oc2Vzc2lvbkRlc2NyaXB0aW9uLCByZXF1ZXN0U3VjY2Vl
ZGVkMSwgcmVxdWVzdEZhaWxlZDEpOycpOworCisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162464</attachid>
            <date>2012-09-06 03:08:24 -0700</date>
            <delta_ts>2012-09-06 11:50:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95839-20120906120804.patch</filename>
            <type>text/plain</type>
            <size>67070</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA3NjQ4ZmIwMzEyYzli
ZTk1OWE2ZTRhNDljODU0M2VlMGIwYWI3ZmIzLi4yYWI4ZGNkNWMxYjZiMmQ3OTMzYjdmNGM4ODA1
ZTFhODY2MDNkNTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0wOS0wNSAg
VG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAgICAgICBNZWRpYVN0
cmVhbSBBUEk6IEFkZCB0aGUgbG9jYWwgYW5kIHJlbW90ZSBkZXNjcmlwdGlvbiBmdW5jdGlvbmFs
aXR5IHRvIFJUQ1BlZXJDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NTgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogUGxhdGZvcm0uZ3lwaToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJs
aWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6CisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKToKKyAgICAgICAgKiBjaHJvbWl1bS9w
dWJsaWMvV2ViUlRDVm9pZFJlcXVlc3QuaDogQ29waWVkIGZyb20gU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaC4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlJUQ1ZvaWRSZXF1ZXN0KToK
KyAgICAgICAgKEV4dHJhRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0
OjpFeHRyYURhdGE6On5FeHRyYURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENWb2lkUmVx
dWVzdDo6V2ViUlRDVm9pZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENWb2lkUmVx
dWVzdDo6fldlYlJUQ1ZvaWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDVm9pZFJl
cXVlc3Q6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0Ojpp
c051bGwpOgorCiAyMDEyLTA5LTA1ICBLZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTI3NjEyLCByMTI3NjYw
LCBhbmQgcjEyNzY2NC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZWFkYjViMTYyYzdiNTE4ZDg0ZGFkZmMxYTU3
MWRhMGVmMDc5YWFjLi45NjllNDRmNzBjMTk0ZDUyNDE5NTRiOGY2ZjA2Zjc0NWU2NGNiMDcyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsOTYgQEAKKzIwMTItMDktMDUgIFRvbW15IFdpZGVuZmx5Y2h0
ICA8dG9tbXl3QGdvb2dsZS5jb20+CisKKyAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBBZGQgdGhl
IGxvY2FsIGFuZCByZW1vdGUgZGVzY3JpcHRpb24gZnVuY3Rpb25hbGl0eSB0byBSVENQZWVyQ29u
bmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTU4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
cyB3ZWxsIGFzIGFkZGluZyB0aGUgbG9jYWwvcmVtb3RlIGRlc2NyaXB0aW9ucyBzdHVmZiwgSSBy
ZW1vdmVkIHRoZSBzb3VyY2UgYXR0cmlidXRlIGZyb20KKyAgICAgICAgUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uQ2FsbGJhY2sgYW5kIFJUQ0Vycm9yQ2FsbGJhY2sgc2luY2UgaXQgaGFzIGJlZW4gcmVt
b3ZlZCBmcm9tIHRoZSBkcmFmdC4KKworICAgICAgICBUZXN0czogZmFzdC9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi1sb2NhbERlc2NyaXB0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlRGVzY3JpcHRpb24uaHRtbAor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5h
bToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9yQ2FsbGJhY2suaDoKKyAg
ICAgICAgKFJUQ0Vycm9yQ2FsbGJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDRXJyb3JDYWxsYmFjay5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6
Y3JlYXRlT2ZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnNldExv
Y2FsRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpS
VENQZWVyQ29ubmVjdGlvbjo6bG9jYWxEZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpS
VENQZWVyQ29ubmVjdGlvbjo6c2V0UmVtb3RlRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6UlRDUGVlckNvbm5lY3Rpb246OnJlbW90ZURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmg6CisgICAgICAgIChSVENTZXNzaW9uRGVz
Y3JpcHRpb25DYWxsYmFjayk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNz
aW9uRGVzY3JpcHRpb25DYWxsYmFjay5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpSVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRp
b25SZXF1ZXN0SW1wbDo6cmVxdWVzdFN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6cmVxdWVzdEZhaWxlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2xlYXIpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwu
aDoKKyAgICAgICAgKFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdEltcGwuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpS
VENWb2lkUmVxdWVzdEltcGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENWb2lkUmVx
dWVzdEltcGw6OlJUQ1ZvaWRSZXF1ZXN0SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpSVENWb2lk
UmVxdWVzdEltcGw6On5SVENWb2lkUmVxdWVzdEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6UlRD
Vm9pZFJlcXVlc3RJbXBsOjpyZXF1ZXN0U3VjY2VlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1ZvaWRSZXF1ZXN0SW1wbDo6cmVxdWVzdEZhaWxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSVENW
b2lkUmVxdWVzdEltcGw6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6UlRDVm9pZFJlcXVlc3RJ
bXBsOjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVz
dEltcGwuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChSVENWb2lkUmVxdWVzdEltcGwpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1ZvaWRSZXF1ZXN0LmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXIuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJU
Q1ZvaWRSZXF1ZXN0OjpXZWJSVENWb2lkUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJU
Q1ZvaWRSZXF1ZXN0Ojphc3NpZ24pOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENWb2lkUmVxdWVz
dDo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENWb2lkUmVxdWVzdDo6cmVxdWVzdFN1
Y2NlZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0OjpyZXF1ZXN0RmFp
bGVkKToKKyAgICAgICAgKEV4dHJhRGF0YUNvbnRhaW5lcik6CisgICAgICAgIChXZWJLaXQ6OkV4
dHJhRGF0YUNvbnRhaW5lcjo6RXh0cmFEYXRhQ29udGFpbmVyKToKKyAgICAgICAgKFdlYktpdDo6
RXh0cmFEYXRhQ29udGFpbmVyOjpleHRyYURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENW
b2lkUmVxdWVzdDo6ZXh0cmFEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDVm9pZFJlcXVl
c3Q6OnNldEV4dHJhRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyLmNwcDoKKyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckR1bW15KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15
OjpzZXRMb2NhbERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyRHVtbXk6OnNldFJlbW90ZURlc2NyaXB0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15Ojpsb2Nh
bERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckR1bW15OjpyZW1vdGVEZXNjcmlwdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUlRDVm9pZFJlcXVlc3QuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENFcnJvckNhbGxiYWNrLmguCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFJUQ1ZvaWRSZXF1ZXN0KToKKyAgICAgICAgKEV4dHJhRGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpSVENWb2lkUmVxdWVzdDo6RXh0cmFEYXRhOjp+RXh0cmFEYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1ZvaWRSZXF1ZXN0Ojp+UlRDVm9pZFJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDVm9pZFJlcXVlc3Q6OmV4dHJhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSVENW
b2lkUmVxdWVzdDo6c2V0RXh0cmFEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1ZvaWRSZXF1
ZXN0OjpSVENWb2lkUmVxdWVzdCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hy
b21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OnNldExvY2FsRGVzY3JpcHRp
b24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXJDaHJvbWl1bTo6c2V0UmVtb3RlRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OmxvY2FsRGVzY3JpcHRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OnJl
bW90ZURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1
bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5oOgorICAgICAgICAoUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0pOgorCiAyMDEyLTA5LTA2ICBQYXRyaWNrIEdhbnN0ZXJl
ciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1vcmUgZml4ZXMgZm9yIFN0cmluZzo6
b3BlcmF0b3IrPSgpIGluIERlYnVnIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9Q
bGF0Zm9ybS5neXBpIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKaW5kZXggZDNlNzg5
OTBmODYyZTRlMWVmZDdmY2JkNjY2MDMwNWZhZGU4NjIyNi4uNmZhMzk0ZWM5OWJlYWJlNzY2ODAy
ZmEzMzVhYWVjYmUwNmMyNTRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL1BsYXRmb3Jt
Lmd5cGkKKysrIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKQEAgLTExMCw2ICsxMTAs
NyBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJUQ1Nlc3Np
b25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGlj
L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaCcsCisgICAgICAgICAgICAnY2hyb21p
dW0vcHVibGljL1dlYlJUQ1ZvaWRSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1
YmxpYy9XZWJSZWN0LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJSZWZlcnJl
clBvbGljeS5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViUmVuZGVyaW5nU3Rh
dHMuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlci5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1Ymxp
Yy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAppbmRleCBjOGYyZjEzNzUzYWYwODU4MTJm
ZDZkZGE0Mzg3ZDFhMjRjMTc0YjNjLi5mMWU3ZmM2ZjdhNTcxZDhlZDQxYWUxMDIxMjJjMzk0YmM0
NGFlMjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKQEAgLTM5LDYgKzM5LDcgQEAgY2xh
c3MgV2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRvcjsKIGNsYXNzIFdlYlJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlckNsaWVudDsKIGNsYXNzIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3I7CiBjbGFzcyBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OworY2xhc3MgV2ViUlRD
Vm9pZFJlcXVlc3Q7CiAKIGNsYXNzIFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciB7CiBwdWJs
aWM6CkBAIC00Nyw2ICs0OCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGluaXRpYWxp
emUoY29uc3QgV2ViUlRDQ29uZmlndXJhdGlvbiYsIGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMm
KSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2ZmZXIoY29uc3QgV2ViUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uUmVxdWVzdCYsIGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMmKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHNldExvY2FsRGVzY3JpcHRpb24oY29uc3QgV2ViUlRDVm9pZFJlcXVl
c3QmLCBjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBzZXRSZW1vdGVEZXNjcmlwdGlvbihjb25zdCBXZWJSVENWb2lkUmVxdWVz
dCYsIGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3ImKSA9IDA7CisgICAg
dmlydHVhbCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yIGxvY2FsRGVzY3JpcHRp
b24oKSA9IDA7CisgICAgdmlydHVhbCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9y
IHJlbW90ZURlc2NyaXB0aW9uKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJQ0UoY29u
c3QgV2ViUlRDQ29uZmlndXJhdGlvbiYsIGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMmKSA9IDA7
CiAgICAgdmlydHVhbCBib29sIGFkZElDRUNhbmRpZGF0ZShjb25zdCBXZWJSVENJQ0VDYW5kaWRh
dGVEZXNjcmlwdG9yJikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBhZGRTdHJlYW0oY29uc3QgV2Vi
TWVkaWFTdHJlYW1EZXNjcmlwdG9yJiwgY29uc3QgV2ViTWVkaWFDb25zdHJhaW50cyYpID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDVm9pZFJl
cXVlc3QuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDVm9pZFJlcXVl
c3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xMjU2YmM2YzBhOGUyZDA1NDg0MjhhN2UyOWJhMmRiMTU1OWIyMjFm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJS
VENWb2lkUmVxdWVzdC5oCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlJUQ1ZvaWRSZXF1ZXN0
X2gKKyNkZWZpbmUgV2ViUlRDVm9pZFJlcXVlc3RfaAorCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgi
CisjaW5jbHVkZSAiV2ViTm9uQ29weWFibGUuaCIKKyNpbmNsdWRlICJXZWJQcml2YXRlUHRyLmgi
CisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFJU
Q1ZvaWRSZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUlRDVm9p
ZFJlcXVlc3QgeworcHVibGljOgorICAgIGNsYXNzIEV4dHJhRGF0YSB7CisgICAgcHVibGljOgor
ICAgICAgICB2aXJ0dWFsIH5FeHRyYURhdGEoKSB7IH0KKyAgICB9OworCisgICAgV2ViUlRDVm9p
ZFJlcXVlc3QoKSB7IH0KKyAgICBXZWJSVENWb2lkUmVxdWVzdChjb25zdCBXZWJSVENWb2lkUmVx
dWVzdCYgb3RoZXIpIHsgYXNzaWduKG90aGVyKTsgfQorICAgIH5XZWJSVENWb2lkUmVxdWVzdCgp
IHsgcmVzZXQoKTsgfQorCisgICAgV2ViUlRDVm9pZFJlcXVlc3QmIG9wZXJhdG9yPShjb25zdCBX
ZWJSVENWb2lkUmVxdWVzdCYgb3RoZXIpCisgICAgeworICAgICAgICBhc3NpZ24ob3RoZXIpOwor
ICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFz
c2lnbihjb25zdCBXZWJSVENWb2lkUmVxdWVzdCYpOworCisgICAgV0VCS0lUX0VYUE9SVCB2b2lk
IHJlc2V0KCk7CisgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGUuaXNO
dWxsKCk7IH0KKworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKCkgY29u
c3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlcXVlc3RGYWlsZWQoY29uc3QgV2ViU3RyaW5n
JiBlcnJvcikgY29uc3Q7CisKKyAgICAvLyBFeHRyYSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGlz
IG9iamVjdC4KKyAgICAvLyBJZiBub24tbnVsbCwgdGhlIGV4dHJhIGRhdGEgcG9pbnRlciB3aWxs
IGJlIGRlbGV0ZWQgd2hlbiB0aGUgb2JqZWN0IGlzIGRlc3Ryb3llZC4KKyAgICAvLyBTZXR0aW5n
IHRoZSBleHRyYSBkYXRhIHBvaW50ZXIgd2lsbCBjYXVzZSBhbnkgZXhpc3Rpbmcgbm9uLW51bGwK
KyAgICAvLyBleHRyYSBkYXRhIHBvaW50ZXIgdG8gYmUgZGVsZXRlZC4KKyAgICBXRUJLSVRfRVhQ
T1JUIEV4dHJhRGF0YSogZXh0cmFEYXRhKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lk
IHNldEV4dHJhRGF0YShFeHRyYURhdGEqKTsKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgor
ICAgIFdlYlJUQ1ZvaWRSZXF1ZXN0KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpSVENW
b2lkUmVxdWVzdD4mKTsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIFdlYlByaXZhdGVQdHI8V2Vi
Q29yZTo6UlRDVm9pZFJlcXVlc3Q+IG1fcHJpdmF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gV2ViUlRDVm9pZFJlcXVlc3RfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCA5N2EyNmU5NjdkZmZiNjgzZjc4M2ViZDg4OTc3MzE5OTU1OTYwMTE5Li4zNTVjNmNlZWYw
NGUwMmFhYjY0Y2IwN2I1YmExNTIwNWU5ODdlN2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
ODYxLDYgKzg2MSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lk
UmVxdWVzdEltcGwuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRp
b24uY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNwcAog
ICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCmluZGV4IDBlZjRkYTM3NmQxNTg1ZDVkYjMzODU4NzA1ZmY2NmRmYmFk
NWUxMTIuLjJmODM5OGFiOGM4OGI4NDNhMGY1ZTc4ZDU2OTA4MmM1OTg0Yjk5NjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTkzNiw2ICsxOTM2LDggQEAgd2ViY29yZV9tb2R1
bGVzX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dEltcGwuaCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVx
dWVzdEltcGwuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Zv
aWRSZXF1ZXN0SW1wbC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Nl
c3Npb25EZXNjcmlwdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhQ2xpZW50LmggXApAQCAtNDU2Nyw2ICs0NTY5LDcgQEAgd2ViY29yZV9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9y
LmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3IuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9TZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFcnJv
ckNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9y
Q2FsbGJhY2suaAppbmRleCA2OTMxOTQ2OGVmMGUxM2IyNzgxNDU3M2YxMTYxMTExOGU5MzE4MzIy
Li42NDRlNTZmMGJlYTcwZDUzZTQ5ZjI4OWU0YWZmNjE1N2RhM2VmYmRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9yQ2FsbGJhY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9yQ2FsbGJhY2suaApA
QCAtMzgsMTIgKzM4LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUlRDUGVl
ckNvbm5lY3Rpb247Ci0KIGNsYXNzIFJUQ0Vycm9yQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRl
ZDxSVENFcnJvckNhbGxiYWNrPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UlRDRXJyb3JDYWxs
YmFjaygpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChjb25zdCBTdHJpbmcmIGVy
cm9ySW5mb3JtYXRpb24sIFJUQ1BlZXJDb25uZWN0aW9uKikgPSAwOworICAgIHZpcnR1YWwgYm9v
bCBoYW5kbGVFdmVudChjb25zdCBTdHJpbmcmIGVycm9ySW5mb3JtYXRpb24pID0gMDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDRXJyb3JDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9yQ2FsbGJhY2suaWRsCmluZGV4IDRlNDBkMTRkYWUxN2Rk
YmQwYTYzZmFmNjdkYjg4MmE0YmFiM2NjMjUuLjgxMmUyNzQ0ZjJhNjQ2MzU5NDA1Y2FhM2VmMWY5
MThjZWI3Y2ZjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRXJyb3JDYWxsYmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENFcnJvckNhbGxiYWNrLmlkbApAQCAtMzQsNyArMzQsNyBAQCBtb2R1bGUgbWVk
aWFzdHJlYW0gewogICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCiAgICAgICAgIENh
bGxiYWNrCiAgICAgXSBSVENFcnJvckNhbGxiYWNrIHsKLSAgICAgICAgYm9vbGVhbiBoYW5kbGVF
dmVudChpbiBET01TdHJpbmcgZXJyb3JJbmZvcm1hdGlvbiwgaW4gUlRDUGVlckNvbm5lY3Rpb24g
c291cmNlKTsKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBET01TdHJpbmcgZXJyb3JJ
bmZvcm1hdGlvbik7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCBkZmJjODliY2Vh
ZDUxMjM1Yjc4MDhlYjAyMzc5MDczZDI0ZTUyM2MxLi5mNWNmNjI1YzNlYWU3ZjE0ZjViMDc2MWZm
YmY2MTljOGVjNWM2MzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAtNDgsNyArNDgsOSBAQAogI2lu
Y2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3RJbXBsLmgiCisjaW5jbHVkZSAiUlRDVm9pZFJlcXVlc3RJbXBsLmgiCiAjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTE1MSwxMCArMTUzLDc0IEBAIHZvaWQgUlRD
UGVlckNvbm5lY3Rpb246OmNyZWF0ZU9mZmVyKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0
aW9uQ2FsbGJhY2s+IHN1CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZWZQ
dHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw+IHJlcXVlc3QgPSBSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
c3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCB0aGlzKTsKKyAgICBSZWZQdHI8UlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw+IHJlcXVlc3QgPSBSVENTZXNzaW9uRGVzY3JpcHRp
b25SZXF1ZXN0SW1wbDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc3VjY2Vzc0Nh
bGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKICAgICBtX3BlZXJIYW5kbGVyLT5jcmVhdGVPZmZlcihy
ZXF1ZXN0LnJlbGVhc2UoKSwgY29uc3RyYWludHMpOwogfQogCit2b2lkIFJUQ1BlZXJDb25uZWN0
aW9uOjpzZXRMb2NhbERlc2NyaXB0aW9uKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9u
PiBwcnBTZXNzaW9uRGVzY3JpcHRpb24sIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBzdWNjZXNz
Q2FsbGJhY2ssIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaywgRXhj
ZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBSZWFkeVN0YXRlQ2xv
c2luZyB8fCBtX3JlYWR5U3RhdGUgPT0gUmVhZHlTdGF0ZUNsb3NlZCkgeworICAgICAgICBlYyA9
IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUmVmUHRy
PFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gc2Vzc2lvbkRlc2NyaXB0aW9uID0gcHJwU2Vzc2lvbkRl
c2NyaXB0aW9uOworICAgIGlmICghc2Vzc2lvbkRlc2NyaXB0aW9uKSB7CisgICAgICAgIGVjID0g
VFlQRV9NSVNNQVRDSF9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSZWZQdHI8
UlRDVm9pZFJlcXVlc3RJbXBsPiByZXF1ZXN0ID0gUlRDVm9pZFJlcXVlc3RJbXBsOjpjcmVhdGUo
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2sp
OworICAgIG1fcGVlckhhbmRsZXItPnNldExvY2FsRGVzY3JpcHRpb24ocmVxdWVzdC5yZWxlYXNl
KCksIHNlc3Npb25EZXNjcmlwdGlvbi0+ZGVzY3JpcHRvcigpKTsKK30KKworUGFzc1JlZlB0cjxS
VENTZXNzaW9uRGVzY3JpcHRpb24+IFJUQ1BlZXJDb25uZWN0aW9uOjpsb2NhbERlc2NyaXB0aW9u
KEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gUmVhZHlTdGF0
ZUNsb3NpbmcgfHwgbV9yZWFkeVN0YXRlID09IFJlYWR5U3RhdGVDbG9zZWQpIHsKKyAgICAgICAg
ZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAg
UmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IGRlc2NyaXB0b3IgPSBtX3Bl
ZXJIYW5kbGVyLT5sb2NhbERlc2NyaXB0aW9uKCk7CisgICAgaWYgKCFkZXNjcmlwdG9yKQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IHNlc3Np
b25EZXNjcmlwdGlvbiA9IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0b3Iu
cmVsZWFzZSgpKTsKKyAgICByZXR1cm4gc2Vzc2lvbkRlc2NyaXB0aW9uLnJlbGVhc2UoKTsKK30K
Kwordm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6c2V0UmVtb3RlRGVzY3JpcHRpb24oUGFzc1JlZlB0
cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IHBycFNlc3Npb25EZXNjcmlwdGlvbiwgUGFzc1JlZlB0
cjxWb2lkQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxSVENFcnJvckNhbGxi
YWNrPiBlcnJvckNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAobV9yZWFk
eVN0YXRlID09IFJlYWR5U3RhdGVDbG9zaW5nIHx8IG1fcmVhZHlTdGF0ZSA9PSBSZWFkeVN0YXRl
Q2xvc2VkKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBzZXNzaW9uRGVz
Y3JpcHRpb24gPSBwcnBTZXNzaW9uRGVzY3JpcHRpb247CisgICAgaWYgKCFzZXNzaW9uRGVzY3Jp
cHRpb24pIHsKKyAgICAgICAgZWMgPSBUWVBFX01JU01BVENIX0VSUjsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIFJlZlB0cjxSVENWb2lkUmVxdWVzdEltcGw+IHJlcXVlc3QgPSBSVENW
b2lkUmVxdWVzdEltcGw6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHN1Y2Nlc3ND
YWxsYmFjaywgZXJyb3JDYWxsYmFjayk7CisgICAgbV9wZWVySGFuZGxlci0+c2V0UmVtb3RlRGVz
Y3JpcHRpb24ocmVxdWVzdC5yZWxlYXNlKCksIHNlc3Npb25EZXNjcmlwdGlvbi0+ZGVzY3JpcHRv
cigpKTsKK30KKworUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IFJUQ1BlZXJDb25u
ZWN0aW9uOjpyZW1vdGVEZXNjcmlwdGlvbihFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAo
bV9yZWFkeVN0YXRlID09IFJlYWR5U3RhdGVDbG9zaW5nIHx8IG1fcmVhZHlTdGF0ZSA9PSBSZWFk
eVN0YXRlQ2xvc2VkKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAg
IHJldHVybiAwOworICAgIH0KKworICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yPiBkZXNjcmlwdG9yID0gbV9wZWVySGFuZGxlci0+cmVtb3RlRGVzY3JpcHRpb24oKTsK
KyAgICBpZiAoIWRlc2NyaXB0b3IpCisgICAgICAgIHJldHVybiAwOworCisgICAgUmVmUHRyPFJU
Q1Nlc3Npb25EZXNjcmlwdGlvbj4gZGVzYyA9IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6Y3JlYXRl
KGRlc2NyaXB0b3IucmVsZWFzZSgpKTsKKyAgICByZXR1cm4gZGVzYy5yZWxlYXNlKCk7Cit9CisK
IHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnVwZGF0ZUljZShjb25zdCBEaWN0aW9uYXJ5JiBydGND
b25maWd1cmF0aW9uLCBjb25zdCBEaWN0aW9uYXJ5JiBtZWRpYUNvbnN0cmFpbnRzLCBFeGNlcHRp
b25Db2RlJiBlYykKIHsKICAgICBpZiAobV9yZWFkeVN0YXRlID09IFJlYWR5U3RhdGVDbG9zaW5n
IHx8IG1fcmVhZHlTdGF0ZSA9PSBSZWFkeVN0YXRlQ2xvc2VkKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKaW5kZXgg
ZDRjNGNkZmQyMTEzODU4NGVjOWZlYjZjNzJkNjg5MzY3ZDBjYmU1My4uOTc2YWJkYzZkMjU5MTcy
MzI3MmZkYzg2NmE1OTVhN2E4N2FkN2QyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaApAQCAtNDksNyArNDksOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBNZWRpYUNvbnN0cmFpbnRzOwogY2xhc3MgUlRD
Q29uZmlndXJhdGlvbjsKIGNsYXNzIFJUQ0Vycm9yQ2FsbGJhY2s7CitjbGFzcyBSVENTZXNzaW9u
RGVzY3JpcHRpb247CiBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjazsKK2NsYXNz
IFZvaWRDYWxsYmFjazsKIAogY2xhc3MgUlRDUGVlckNvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291
bnRlZDxSVENQZWVyQ29ubmVjdGlvbj4sIHB1YmxpYyBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJD
bGllbnQsIHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJs
aWM6CkBAIC01OCw2ICs2MCwxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNyZWF0ZU9mZmVyKFBh
c3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFJUQ0Vy
cm9yQ2FsbGJhY2s+LCBjb25zdCBEaWN0aW9uYXJ5JiBtZWRpYUNvbnN0cmFpbnRzLCBFeGNlcHRp
b25Db2RlJik7CiAKKyAgICB2b2lkIHNldExvY2FsRGVzY3JpcHRpb24oUGFzc1JlZlB0cjxSVENT
ZXNzaW9uRGVzY3JpcHRpb24+LCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4sIFBhc3NSZWZQdHI8
UlRDRXJyb3JDYWxsYmFjaz4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVmUHRyPFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbj4gbG9jYWxEZXNjcmlwdGlvbihFeGNlcHRpb25Db2RlJik7CisKKyAg
ICB2b2lkIHNldFJlbW90ZURlc2NyaXB0aW9uKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0
aW9uPiwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFJUQ0Vycm9yQ2FsbGJh
Y2s+LCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRp
b24+IHJlbW90ZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIFN0cmluZyByZWFk
eVN0YXRlKCkgY29uc3Q7CiAKICAgICB2b2lkIHVwZGF0ZUljZShjb25zdCBEaWN0aW9uYXJ5JiBy
dGNDb25maWd1cmF0aW9uLCBjb25zdCBEaWN0aW9uYXJ5JiBtZWRpYUNvbnN0cmFpbnRzLCBFeGNl
cHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsCmluZGV4IDAyZmEzNDU0OGRkYzJjMTgwNzhjN2Iy
NDk3ODZlYjgyN2FiOGUxNGQuLjllZTVlMDE5OWI3ZWVkMDBiNjU3ZmZlMTFlYmE2ZThkM2IwYmJj
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24uaWRsCkBAIC00MSw2ICs0MSwxNiBAQCBtb2R1bGUgbWVkaWFzdHJl
YW0gewogICAgICAgICB2b2lkIGNyZWF0ZU9mZmVyKGluIFtDYWxsYmFja10gUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBpbiBbQ2FsbGJhY2ssT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBSVENFcnJvckNhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRGljdGlvbmFyeSBtZWRpYUNvbnN0cmFpbnRz
KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKKyAgICAgICAgdm9pZCBzZXRM
b2NhbERlc2NyaXB0aW9uKGluIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgaW4g
W0NhbGxiYWNrLCBPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFZvaWRDYWxsYmFjayBzdWNj
ZXNzQ2FsbGJhY2ssIGluIFtDYWxsYmFjaywgT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBS
VENFcnJvckNhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaykKKyAgICAgICAgICAgIHJhaXNlcyhET01F
eGNlcHRpb24pOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uIGxvY2FsRGVzY3JpcHRpb24KKyAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKworICAgICAgICB2b2lkIHNldFJlbW90ZURlc2NyaXB0aW9uKGluIFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgaW4gW0NhbGxiYWNrLCBPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIFZvaWRDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIGluIFtDYWxsYmFjaywgT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBSVENFcnJvckNhbGxiYWNrIGZhaWx1cmVDYWxsYmFj
aykKKyAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uIHJlbW90ZURlc2NyaXB0aW9uCisgICAgICAg
ICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyByZWFkeVN0YXRlOwogCiAgICAgICAgIHZvaWQgdXBkYXRlSWNlKGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERpY3Rpb25hcnkgY29uZmlndXJhdGlvbiwg
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRGljdGlvbmFyeSBtZWRpYUNvbnN0cmFp
bnRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
ZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5oCmluZGV4IDFhMWUwYTk5MTNl
NjZlNjM4MjdjYzc4Njg3MTRmZTNkM2Y1YWYxNWUuLjA2ZWUwNzFjNDU1OGQzNGRhY2E5N2YyY2U1
N2U1NGE4NzFiYWM4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmgKQEAg
LTM3LDEzICszNywxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFJUQ1BlZXJD
b25uZWN0aW9uOwogY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOwogCiBjbGFzcyBSVENTZXNz
aW9uRGVzY3JpcHRpb25DYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbkNhbGxiYWNrPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uQ2FsbGJhY2soKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uKiwgUlRDUGVlckNvbm5lY3Rpb24qKSA9IDA7CisgICAgdmlydHVhbCBi
b29sIGhhbmRsZUV2ZW50KFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiopID0gMDsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5pZGwK
aW5kZXggNGE1MzZkNGQ5YzI4MTA5OTAwMWY3MzI1ZWVhYWMwNDc2MWI1ZTAzNy4uNWJlNzVlOTIw
OTkzMDZiMjQzMWZlY2ExMTVkZWJjYzk0ODgzMjlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3Jp
cHRpb25DYWxsYmFjay5pZGwKQEAgLTM0LDcgKzM0LDcgQEAgbW9kdWxlIG1lZGlhc3RyZWFtIHsK
ICAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAogICAgICAgICBDYWxsYmFjawogICAg
IF0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2sgewotICAgICAgICBib29sZWFuIGhhbmRs
ZUV2ZW50KGluIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBzZHAsIGluIFJUQ1BlZXJDb25uZWN0aW9u
IHNvdXJjZSk7CisgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uIHNkcCk7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3RJbXBsLmNwcAppbmRleCBlYjg4ZTYyNTdlMWRiNWRjOTFkODM3ZThlYWQxMjNmNWNmMjY2
ZDYyLi4yM2M1NTNhMTY0OWRlZWMwOTlhMGQ3YmJjMGE1MDZiNjY5NDBiOWVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlv
blJlcXVlc3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcApAQCAtNDIsMTggKzQyLDE3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRp
b25SZXF1ZXN0SW1wbD4gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbkNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxs
YmFjaz4gZXJyb3JDYWxsYmFjaywgUGFzc1JlZlB0cjxSVENQZWVyQ29ubmVjdGlvbj4gb3duZXIp
CitQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsPiBSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+IHN1Y2Nlc3ND
YWxsYmFjaywgUGFzc1JlZlB0cjxSVENFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQogewot
ICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbD4gcmVxdWVzdCA9IGFk
b3B0UmVmKG5ldyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbChjb250ZXh0LCBzdWNj
ZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2ssIG93bmVyKSk7CisgICAgUmVmUHRyPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3RJbXBsPiByZXF1ZXN0ID0gYWRvcHRSZWYobmV3IFJUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3RJbXBsKGNvbnRleHQsIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JD
YWxsYmFjaykpOwogICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5lZWRlZCgpOwogICAgIHJldHVybiBy
ZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAotUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6
OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+IHN1Y2Nl
c3NDYWxsYmFjaywgUGFzc1JlZlB0cjxSVENFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrLCBQ
YXNzUmVmUHRyPFJUQ1BlZXJDb25uZWN0aW9uPiBvd25lcikKK1JUQ1Nlc3Npb25EZXNjcmlwdGlv
blJlcXVlc3RJbXBsOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNh
bGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4gZXJy
b3JDYWxsYmFjaykKICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQogICAgICwg
bV9zdWNjZXNzQ2FsbGJhY2soc3VjY2Vzc0NhbGxiYWNrKQogICAgICwgbV9lcnJvckNhbGxiYWNr
KGVycm9yQ2FsbGJhY2spCi0gICAgLCBtX293bmVyKG93bmVyKQogewogfQogCkBAIC02NSw3ICs2
NCw3IEBAIHZvaWQgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OnJlcXVlc3RTdWNj
ZWVkZWQoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzCiB7CiAgICAgaWYgKG1fc3VjY2Vzc0NhbGxi
YWNrKSB7CiAgICAgICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IHNlc3Npb25EZXNj
cmlwdGlvbiA9IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0b3IpOwotICAg
ICAgICBtX3N1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQoc2Vzc2lvbkRlc2NyaXB0aW9uLmdl
dCgpLCBtX293bmVyLmdldCgpKTsKKyAgICAgICAgbV9zdWNjZXNzQ2FsbGJhY2stPmhhbmRsZUV2
ZW50KHNlc3Npb25EZXNjcmlwdGlvbi5nZXQoKSk7CiAgICAgfQogCiAgICAgY2xlYXIoKTsKQEAg
LTc0LDcgKzczLDcgQEAgdm9pZCBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6cmVx
dWVzdFN1Y2NlZWRlZChQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXMKIHZvaWQgUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uUmVxdWVzdEltcGw6OnJlcXVlc3RGYWlsZWQoY29uc3QgU3RyaW5nJiBlcnJvcikK
IHsKICAgICBpZiAobV9lcnJvckNhbGxiYWNrKQotICAgICAgICBtX2Vycm9yQ2FsbGJhY2stPmhh
bmRsZUV2ZW50KGVycm9yLCBtX293bmVyLmdldCgpKTsKKyAgICAgICAgbV9lcnJvckNhbGxiYWNr
LT5oYW5kbGVFdmVudChlcnJvcik7CiAKICAgICBjbGVhcigpOwogfQpAQCAtODgsNyArODcsNiBA
QCB2b2lkIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpjbGVhcigpCiB7CiAgICAg
bV9zdWNjZXNzQ2FsbGJhY2suY2xlYXIoKTsKICAgICBtX2Vycm9yQ2FsbGJhY2suY2xlYXIoKTsK
LSAgICBtX293bmVyLmNsZWFyKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaAppbmRleCA3NGFlYmZjOThiODExMmZl
MmZjODgxOTU1M2M4MjQ4YzY1OWNmNGFhLi5kMWJjZWUwMTM1MTNhYTY3YzJiMDc2YTkwNTAxZWNl
ODU2MmUxNmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oCkBA
IC00NCw3ICs0NCw3IEBAIGNsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrOwogCiBj
bGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbCA6IHB1YmxpYyBSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbD4gY3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbkNhbGxiYWNrPiwgUGFzc1JlZlB0cjxSVENFcnJvckNhbGxiYWNrPiwgUGFzc1JlZlB0cjxS
VENQZWVyQ29ubmVjdGlvbj4pOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3RJbXBsPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NS
ZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFJUQ0Vycm9y
Q2FsbGJhY2s+KTsKICAgICB2aXJ0dWFsIH5SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1w
bCgpOwogCiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoUGFzc1JlZlB0cjxSVENT
ZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPikgT1ZFUlJJREU7CkBAIC01NCwxMyArNTQsMTIg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6
Ci0gICAgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+LCBQYXNzUmVm
UHRyPFJUQ0Vycm9yQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFJUQ1BlZXJDb25uZWN0aW9uPik7Cisg
ICAgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+LCBQYXNzUmVmUHRy
PFJUQ0Vycm9yQ2FsbGJhY2s+KTsKIAogICAgIHZvaWQgY2xlYXIoKTsKIAogICAgIFJlZlB0cjxS
VENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaz4gbV9zdWNjZXNzQ2FsbGJhY2s7CiAgICAgUmVm
UHRyPFJUQ0Vycm9yQ2FsbGJhY2s+IG1fZXJyb3JDYWxsYmFjazsKLSAgICBSZWZQdHI8UlRDUGVl
ckNvbm5lY3Rpb24+IG1fb3duZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1
ZXN0SW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2FlNzYxMzdlNzRmYzU0MDcwODJmMTY1ZjU1NTkzNThh
MTUzYjZjYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRp
c3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUg
IlJUQ1ZvaWRSZXF1ZXN0SW1wbC5oIgorCisjaW5jbHVkZSAiUlRDRXJyb3JDYWxsYmFjay5oIgor
I2luY2x1ZGUgIlJUQ1BlZXJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdEltcGw+
IFJUQ1ZvaWRSZXF1ZXN0SW1wbDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8
UlRDRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK3sKKyAgICBSZWZQdHI8UlRDVm9pZFJl
cXVlc3RJbXBsPiByZXF1ZXN0ID0gYWRvcHRSZWYobmV3IFJUQ1ZvaWRSZXF1ZXN0SW1wbChjb250
ZXh0LCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsKKyAgICByZXF1ZXN0LT5zdXNw
ZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7Cit9CisKK1JUQ1Zv
aWRSZXF1ZXN0SW1wbDo6UlRDVm9pZFJlcXVlc3RJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NS
ZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKKyAgICA6IEFjdGl2ZURPTU9i
amVjdChjb250ZXh0LCB0aGlzKQorICAgICwgbV9zdWNjZXNzQ2FsbGJhY2soc3VjY2Vzc0NhbGxi
YWNrKQorICAgICwgbV9lcnJvckNhbGxiYWNrKGVycm9yQ2FsbGJhY2spCit7Cit9CisKK1JUQ1Zv
aWRSZXF1ZXN0SW1wbDo6flJUQ1ZvaWRSZXF1ZXN0SW1wbCgpCit7Cit9CisKK3ZvaWQgUlRDVm9p
ZFJlcXVlc3RJbXBsOjpyZXF1ZXN0U3VjY2VlZGVkKCkKK3sKKyAgICBpZiAobV9zdWNjZXNzQ2Fs
bGJhY2spCisgICAgICAgIG1fc3VjY2Vzc0NhbGxiYWNrLT5oYW5kbGVFdmVudCgpOworCisgICAg
Y2xlYXIoKTsKK30KKwordm9pZCBSVENWb2lkUmVxdWVzdEltcGw6OnJlcXVlc3RGYWlsZWQoY29u
c3QgU3RyaW5nJiBlcnJvcikKK3sKKyAgICBpZiAobV9lcnJvckNhbGxiYWNrLmdldCgpKQorICAg
ICAgICBtX2Vycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KGVycm9yKTsKKworICAgIGNsZWFyKCk7
Cit9CisKK3ZvaWQgUlRDVm9pZFJlcXVlc3RJbXBsOjpzdG9wKCkKK3sKKyAgICBjbGVhcigpOwor
fQorCit2b2lkIFJUQ1ZvaWRSZXF1ZXN0SW1wbDo6Y2xlYXIoKQoreworICAgIG1fc3VjY2Vzc0Nh
bGxiYWNrLmNsZWFyKCk7CisgICAgbV9lcnJvckNhbGxiYWNrLmNsZWFyKCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0
SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVz
dEltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42NTdhYmZjN2M2YjMyOTJhNTMzNGM0MTljZjJhNDdlMjkyZjcy
Y2I2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENWb2lkUmVxdWVzdEltcGwuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1
dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBS
VENWb2lkUmVxdWVzdEltcGxfaAorI2RlZmluZSBSVENWb2lkUmVxdWVzdEltcGxfaAorCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2lu
Y2x1ZGUgIlJUQ1ZvaWRSZXF1ZXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
UlRDRXJyb3JDYWxsYmFjazsKK2NsYXNzIFZvaWRDYWxsYmFjazsKKworY2xhc3MgUlRDVm9pZFJl
cXVlc3RJbXBsIDogcHVibGljIFJUQ1ZvaWRSZXF1ZXN0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdEltcGw+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+LCBQ
YXNzUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+KTsKKyAgICB2aXJ0dWFsIH5SVENWb2lkUmVxdWVz
dEltcGwoKTsKKworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKCk7CisgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RGYWlsZWQoY29uc3QgU3RyaW5nJiBlcnJvcik7CisKKyAgICAvLyBB
Y3RpdmVET01PYmplY3QKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOworCitwcml2
YXRlOgorICAgIFJUQ1ZvaWRSZXF1ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFz
c1JlZlB0cjxWb2lkQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+KTsKKwor
ICAgIHZvaWQgY2xlYXIoKTsKKworICAgIFJlZlB0cjxWb2lkQ2FsbGJhY2s+IG1fc3VjY2Vzc0Nh
bGxiYWNrOworICAgIFJlZlB0cjxSVENFcnJvckNhbGxiYWNrPiBtX2Vycm9yQ2FsbGJhY2s7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjZW5kaWYgLy8gUlRDVm9pZFJlcXVlc3RJbXBsX2gKKworCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
aW5kZXggZjIxMzQ5YzlkZDQyOGM2NTc3NjczYWQwZDY0YWZkZmU5NWQ1YjkwMy4uMmY1MTc2MGM3
NThiYTNiNjQ4MDZkYmE3MGQxZjg5ZjViMTZjYTUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNDY1
LDYgKzQ2NSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oJywKKyAg
ICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdC5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9y
LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0
aW9uRGVzY3JpcHRvci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJv
bWl1bS9NZWRpYVN0cmVhbUNlbnRlckNocm9taXVtLmNwcCcsCkBAIC0xNjIwLDYgKzE2MjEsOCBA
QAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
Q2FsbGJhY2suaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaCcsCisgICAgICAgICAgICAn
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwJywKKyAgICAgICAgICAg
ICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5oJywKICAgICAgICAgICAg
ICdNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmgnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ2xpZW50LmgnLApAQCAtODM1NCw2ICs4
MzU3LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ0lD
RUNhbmRpZGF0ZURlc2NyaXB0b3IuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1
bS9zdXBwb3J0L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlv
blJlcXVlc3QuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dl
YlJUQ1ZvaWRSZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3Vw
cG9ydC9XZWJTY3JvbGxiYXJUaGVtZUdlb21ldHJ5TmF0aXZlLmNwcCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJTY3JvbGxiYXJUaGVtZUdlb21ldHJ5TmF0aXZl
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViU2Nyb2xsYmFy
SW1wbC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
c3VwcG9ydC9XZWJSVENWb2lkUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1ZvaWRSZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZTI0MjE5
M2JhZGVmZWU1MmY0ODVhZDM4NmU4YTgwOTRmYzA1ZTJmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENWb2lkUmVxdWVzdC5j
cHAKQEAgLTAsMCArMSw5NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKyNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDVm9pZFJlcXVlc3QuaD4KKworI2lu
Y2x1ZGUgIlJUQ1ZvaWRSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJSVENW
b2lkUmVxdWVzdDo6V2ViUlRDVm9pZFJlcXVlc3QoY29uc3QgUGFzc1JlZlB0cjxSVENWb2lkUmVx
dWVzdD4mIGNvbnN0cmFpbnRzKQorICAgIDogbV9wcml2YXRlKGNvbnN0cmFpbnRzKQoreworfQor
Cit2b2lkIFdlYlJUQ1ZvaWRSZXF1ZXN0Ojphc3NpZ24oY29uc3QgV2ViUlRDVm9pZFJlcXVlc3Qm
IG90aGVyKQoreworICAgIG1fcHJpdmF0ZSA9IG90aGVyLm1fcHJpdmF0ZTsKK30KKwordm9pZCBX
ZWJSVENWb2lkUmVxdWVzdDo6cmVzZXQoKQoreworICAgIG1fcHJpdmF0ZS5yZXNldCgpOworfQor
Cit2b2lkIFdlYlJUQ1ZvaWRSZXF1ZXN0OjpyZXF1ZXN0U3VjY2VlZGVkKCkgY29uc3QKK3sKKyAg
ICBBU1NFUlQobV9wcml2YXRlLmdldCgpKTsKKyAgICBtX3ByaXZhdGUtPnJlcXVlc3RTdWNjZWVk
ZWQoKTsKK30KKwordm9pZCBXZWJSVENWb2lkUmVxdWVzdDo6cmVxdWVzdEZhaWxlZChjb25zdCBX
ZWJTdHJpbmcmIGVycm9yKSBjb25zdAoreworICAgIEFTU0VSVChtX3ByaXZhdGUuZ2V0KCkpOwor
ICAgIG1fcHJpdmF0ZS0+cmVxdWVzdEZhaWxlZChlcnJvcik7Cit9CisKK2NsYXNzIEV4dHJhRGF0
YUNvbnRhaW5lciA6IHB1YmxpYyBXZWJDb3JlOjpSVENWb2lkUmVxdWVzdDo6RXh0cmFEYXRhIHsK
K3B1YmxpYzoKKyAgICBFeHRyYURhdGFDb250YWluZXIoV2ViUlRDVm9pZFJlcXVlc3Q6OkV4dHJh
RGF0YSogZXh0cmFEYXRhKSA6IG1fZXh0cmFEYXRhKFdURjo6YWRvcHRQdHIoZXh0cmFEYXRhKSkg
eyB9CisKKyAgICBXZWJSVENWb2lkUmVxdWVzdDo6RXh0cmFEYXRhKiBleHRyYURhdGEoKSB7IHJl
dHVybiBtX2V4dHJhRGF0YS5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIE93blB0cjxXZWJSVENW
b2lkUmVxdWVzdDo6RXh0cmFEYXRhPiBtX2V4dHJhRGF0YTsKK307CisKK1dlYlJUQ1ZvaWRSZXF1
ZXN0OjpFeHRyYURhdGEqIFdlYlJUQ1ZvaWRSZXF1ZXN0OjpleHRyYURhdGEoKSBjb25zdAorewor
ICAgIFJlZlB0cjxSVENWb2lkUmVxdWVzdDo6RXh0cmFEYXRhPiBkYXRhID0gbV9wcml2YXRlLT5l
eHRyYURhdGEoKTsKKyAgICBpZiAoIWRhdGEpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxFeHRyYURhdGFDb250YWluZXIqPihkYXRhLmdldCgpKS0+ZXh0cmFEYXRh
KCk7Cit9CisKK3ZvaWQgV2ViUlRDVm9pZFJlcXVlc3Q6OnNldEV4dHJhRGF0YShFeHRyYURhdGEq
IGV4dHJhRGF0YSkKK3sKKyAgICBtX3ByaXZhdGUtPnNldEV4dHJhRGF0YShhZG9wdFJlZihuZXcg
RXh0cmFEYXRhQ29udGFpbmVyKGV4dHJhRGF0YSkpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyLmNwcAppbmRleCA4NWQwMjYyYzM3ZDY5MWQ0YTY1OGFkZTViYzZkMDRkOTc5MWM4
ZWQxLi4wZmQxMTBiOTYxYjM3MmJkOGFmYWZjY2MzZTJiZWZmYTJhMzljYzc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCIKIAogI2luY2x1ZGUgIlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlckNsaWVudC5oIgorI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3Iu
aCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC00OSw2ICs1MCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGluaXRpYWxpemUoUGFz
c1JlZlB0cjxSVENDb25maWd1cmF0aW9uPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikg
T1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2ZmZXIoUGFzc1JlZlB0cjxSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0PiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldExvY2FsRGVzY3JpcHRpb24oUGFzc1JlZlB0
cjxSVENWb2lkUmVxdWVzdD4sIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvcj4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRSZW1vdGVEZXNjcmlwdGlvbihQ
YXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0PiwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRp
b25EZXNjcmlwdG9yPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IGxvY2FsRGVzY3JpcHRpb24oKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gcmVt
b3RlRGVzY3JpcHRpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlSWNlKFBh
c3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4p
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhZGRJY2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxS
VENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFk
ZFN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4sIFBhc3NSZWZQdHI8TWVk
aWFDb25zdHJhaW50cz4pIE9WRVJSSURFOwpAQCAtODMsNiArODgsMjQgQEAgdm9pZCBSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJEdW1teTo6Y3JlYXRlT2ZmZXIoUGFzc1JlZlB0cjxSVENTZXNzaW9u
RGVzY3JpcHRpb24KIHsKIH0KIAordm9pZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJEdW1teTo6
c2V0TG9jYWxEZXNjcmlwdGlvbihQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0PiwgUGFzc1JlZlB0
cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPikKK3sKK30KKwordm9pZCBSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJEdW1teTo6c2V0UmVtb3RlRGVzY3JpcHRpb24oUGFzc1JlZlB0cjxS
VENWb2lkUmVxdWVzdD4sIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
cj4pCit7Cit9CisKK1Bhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4g
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyRHVtbXk6OmxvY2FsRGVzY3JpcHRpb24oKQoreworICAg
IHJldHVybiAwOworfQorCitQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3I+IFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15OjpyZW1vdGVEZXNjcmlwdGlvbigpCit7
CisgICAgcmV0dXJuIDA7Cit9CisKIGJvb2wgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyRHVtbXk6
OmFkZFN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4sIFBhc3NSZWZQdHI8
TWVkaWFDb25zdHJhaW50cz4pCiB7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXIuaAppbmRleCAwYzczMGIyYWNkOGI4MDU1MWUyYWEwMDVkZGExYjAwOTdiMWY0MWE1
Li5hNDMwYTcxYTYxNjdiNWViNDE1YmE3NjZlM2Q5ODY3ZjQyY2ExMTBiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXIuaApAQCAtNDUsNiArNDUsNyBAQCBjbGFzcyBSVENJY2VDYW5kaWRhdGVE
ZXNjcmlwdG9yOwogY2xhc3MgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50OwogY2xhc3Mg
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjsKIGNsYXNzIFJUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3Q7CitjbGFzcyBSVENWb2lkUmVxdWVzdDsKIAogY2xhc3MgUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyIHsKIHB1YmxpYzoKQEAgLTU0LDYgKzU1LDEwIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShQYXNzUmVmUHRyPFJUQ0NvbmZpZ3VyYXRpb24+LCBQYXNz
UmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRl
T2ZmZXIoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0PiwgUGFzc1JlZlB0
cjxNZWRpYUNvbnN0cmFpbnRzPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbERlc2Ny
aXB0aW9uKFBhc3NSZWZQdHI8UlRDVm9pZFJlcXVlc3Q+LCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkRlc2NyaXB0b3I+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFJlbW90ZURl
c2NyaXB0aW9uKFBhc3NSZWZQdHI8UlRDVm9pZFJlcXVlc3Q+LCBQYXNzUmVmUHRyPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+KSA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFJU
Q1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IGxvY2FsRGVzY3JpcHRpb24oKSA9IDA7Cisg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IHJl
bW90ZURlc2NyaXB0aW9uKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJY2UoUGFzc1Jl
ZlB0cjxSVENDb25maWd1cmF0aW9uPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgPSAw
OwogICAgIHZpcnR1YWwgYm9vbCBhZGRJY2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxSVENJY2VDYW5k
aWRhdGVEZXNjcmlwdG9yPikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBhZGRTdHJlYW0oUGFzc1Jl
ZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
VENWb2lkUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRD
Vm9pZFJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yM2UzOWZhMDk4MzdiMjFjMWM3MTdmMmExNmZkYzVi
NTE0ZDc5MDZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDVm9pZFJlcXVlc3QuaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3Ry
aWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBSVENWb2lkUmVxdWVzdF9oCisjZGVmaW5lIFJUQ1ZvaWRSZXF1ZXN0X2gKKworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ1Zv
aWRSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8UlRDVm9pZFJlcXVlc3Q+IHsKK3B1YmxpYzoK
KyAgICBjbGFzcyBFeHRyYURhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxFeHRyYURhdGE+IHsKKyAg
ICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfkV4dHJhRGF0YSgpIHsgfQorICAgIH07CisKKyAg
ICB2aXJ0dWFsIH5SVENWb2lkUmVxdWVzdCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RTdWNjZWVkZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RGYWlsZWQoY29uc3Qg
U3RyaW5nJiBlcnJvcikgPSAwOworCisgICAgUGFzc1JlZlB0cjxFeHRyYURhdGE+IGV4dHJhRGF0
YSgpIGNvbnN0IHsgcmV0dXJuIG1fZXh0cmFEYXRhOyB9CisgICAgdm9pZCBzZXRFeHRyYURhdGEo
UGFzc1JlZlB0cjxFeHRyYURhdGE+IGV4dHJhRGF0YSkgeyBtX2V4dHJhRGF0YSA9IGV4dHJhRGF0
YTsgfQorCitwcm90ZWN0ZWQ6CisgICAgUlRDVm9pZFJlcXVlc3QoKSB7IH0KKworcHJpdmF0ZToK
KyAgICBSZWZQdHI8RXh0cmFEYXRhPiBtX2V4dHJhRGF0YTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBS
VENWb2lkUmVxdWVzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXJDaHJvbWl1bS5jcHAKaW5kZXggYTAwMjIwMjdhMmUyZWNjYjllY2VlZWNiOTBm
NDIxM2NkMTNkMjdkOS4uYzBjYWVhZDkzMzRiN2Y0ODYwYmI1MzAyN2E3ZTk5YzMwY2IzOThjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0v
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNo
cm9taXVtLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIlJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlckNsaWVudC5oIgogI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3IuaCIKICNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0LmgiCisjaW5jbHVk
ZSAiUlRDVm9pZFJlcXVlc3QuaCIKICNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KICNpbmNs
dWRlIDxwdWJsaWMvV2ViTWVkaWFDb25zdHJhaW50cy5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJN
ZWRpYVN0cmVhbURlc2NyaXB0b3IuaD4KQEAgLTQ3LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxwdWJs
aWMvV2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRvci5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJS
VENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJU
Q1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDVm9p
ZFJlcXVlc3QuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC04MSw2ICs4MywyMiBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNo
cm9taXVtOjpjcmVhdGVPZmZlcihQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdAogICAgIG1f
d2ViSGFuZGxlci0+Y3JlYXRlT2ZmZXIocmVxdWVzdCwgY29uc3RyYWludHMpOwogfQogCit2b2lk
IFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpzZXRMb2NhbERlc2NyaXB0aW9uKFBh
c3NSZWZQdHI8UlRDVm9pZFJlcXVlc3Q+IHJlcXVlc3QsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uRGVzY3JpcHRvcj4gc2Vzc2lvbkRlc2NyaXB0aW9uKQoreworICAgIGlmICghbV93
ZWJIYW5kbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3dlYkhhbmRsZXItPnNldExvY2Fs
RGVzY3JpcHRpb24ocmVxdWVzdCwgc2Vzc2lvbkRlc2NyaXB0aW9uKTsKK30KKwordm9pZCBSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6c2V0UmVtb3RlRGVzY3JpcHRpb24oUGFzc1Jl
ZlB0cjxSVENWb2lkUmVxdWVzdD4gcmVxdWVzdCwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3Jp
cHRpb25EZXNjcmlwdG9yPiBzZXNzaW9uRGVzY3JpcHRpb24pCit7CisgICAgaWYgKCFtX3dlYkhh
bmRsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fd2ViSGFuZGxlci0+c2V0UmVtb3RlRGVz
Y3JpcHRpb24ocmVxdWVzdCwgc2Vzc2lvbkRlc2NyaXB0aW9uKTsKK30KKwogYm9vbCBSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6dXBkYXRlSWNlKFBhc3NSZWZQdHI8UlRDQ29uZmln
dXJhdGlvbj4gY29uZmlndXJhdGlvbiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBjb25z
dHJhaW50cykKIHsKICAgICBpZiAoIW1fd2ViSGFuZGxlcikKQEAgLTk3LDYgKzExNSwyMiBAQCBi
b29sIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjphZGRJY2VDYW5kaWRhdGUoUGFz
c1JlZlB0cjxSVENJY2VDYW5kaWRhdAogICAgIHJldHVybiBtX3dlYkhhbmRsZXItPmFkZElDRUNh
bmRpZGF0ZShpY2VDYW5kaWRhdGUpOwogfQogCitQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3I+IFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpsb2NhbERl
c2NyaXB0aW9uKCkKK3sKKyAgICBpZiAoIW1fd2ViSGFuZGxlcikKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICByZXR1cm4gbV93ZWJIYW5kbGVyLT5sb2NhbERlc2NyaXB0aW9uKCk7Cit9CisKK1Bh
c3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyQ2hyb21pdW06OnJlbW90ZURlc2NyaXB0aW9uKCkKK3sKKyAgICBpZiAoIW1fd2Vi
SGFuZGxlcikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gbV93ZWJIYW5kbGVyLT5y
ZW1vdGVEZXNjcmlwdGlvbigpOworfQorCiBib29sIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNo
cm9taXVtOjphZGRTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+IG1lZGlh
U3RyZWFtLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGNvbnN0cmFpbnRzKQogewogICAg
IGlmICghbV93ZWJIYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlckNocm9taXVtLmgKaW5kZXggODk5M2MxMTg3MTE3ODA0NWM3NDYwNDE1ZjU2
YTAyMDRkMGQ2MWRiYi4uYTdiYWM4MTYxMWIwYmQxNWQxZGM4ODQzYWJiNjkzYWRiYTNhNzNhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0v
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJv
bWl1bS5oCkBAIC01NSw2ICs1NSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGluaXRp
YWxpemUoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0
cmFpbnRzPikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2ZmZXIoUGFzc1Jl
ZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0PiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0
cmFpbnRzPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldExvY2FsRGVzY3JpcHRpb24o
UGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdD4sIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0
aW9uRGVzY3JpcHRvcj4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRSZW1vdGVEZXNj
cmlwdGlvbihQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0PiwgUGFzc1JlZlB0cjxSVENTZXNzaW9u
RGVzY3JpcHRpb25EZXNjcmlwdG9yPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IGxvY2FsRGVzY3JpcHRpb24oKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvcj4gcmVtb3RlRGVzY3JpcHRpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdXBk
YXRlSWNlKFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4sIFBhc3NSZWZQdHI8TWVkaWFDb25z
dHJhaW50cz4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhZGRJY2VDYW5kaWRhdGUoUGFz
c1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPikgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBib29sIGFkZFN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4sIFBhc3NS
ZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc0MjkzY2ZjMmIwNjI2OTg4ZTZlMGRkNTEx
ODg5OTYwZTAzN2FjMTMuLmIwNmJiYjRmNjViMmE0OWY0ZGQyYjRmZGMwNjE4Mjg4MGYxNDhhNjcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxMi0wOS0wNSAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xl
LmNvbT4KKworICAgICAgICBNZWRpYVN0cmVhbSBBUEk6IEFkZCB0aGUgbG9jYWwgYW5kIHJlbW90
ZSBkZXNjcmlwdGlvbiBmdW5jdGlvbmFsaXR5IHRvIFJUQ1BlZXJDb25uZWN0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTgzOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIGFkZGl0aW9uIHRvIGFk
ZGluZyB0aGUgbmV3IG1ldGhvZHMgdG8gTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciBJ
IGNsZWFuZWQKKyAgICAgICAgdXAgdGhlIHRhc2sgZGVmaW5pdGlvbnMgYSBiaXQuIFRoZXJlIHdh
cyBubyBuZWVkIHRvIGhhdmUgdGhlbSBpbiB0aGUgaGVhZGVyIGZpbGUuCisKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNw
cDoKKyAgICAgICAgKFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RTdWNjZWRlZFRhc2spOgor
ICAgICAgICAoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdFN1Y2NlZGVkVGFzazo6UlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdFN1Y2NlZGVkVGFzayk6CisgICAgICAgIChSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0RmFpbGVkVGFzayk6CisgICAgICAgIChSVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0RmFpbGVkVGFzazo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEZhaWxl
ZFRhc2spOgorICAgICAgICAoUlRDVm9pZFJlcXVlc3RUYXNrKToKKyAgICAgICAgKFJUQ1ZvaWRS
ZXF1ZXN0VGFzazo6UlRDVm9pZFJlcXVlc3RUYXNrKToKKyAgICAgICAgKE1vY2tXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXI6OmNyZWF0ZU9mZmVyKToKKyAgICAgICAgKE1vY2tXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXI6OnNldExvY2FsRGVzY3JpcHRpb24pOgorICAgICAgICAoTW9ja1dl
YlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6c2V0UmVtb3RlRGVzY3JpcHRpb24pOgorICAgICAg
ICAoTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6bG9jYWxEZXNjcmlwdGlvbik6Cisg
ICAgICAgIChNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpyZW1vdGVEZXNjcmlwdGlv
bik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlci5oOgorICAgICAgICAoTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
cik6CisKIDIwMTItMDktMDUgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbY2hyb21pdW1dIFJlbW92ZSBkZXBlbmRlbmN5IG9uIHdlYmtpdF91c2VyX2FnZW50CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tX
ZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCmluZGV4IDdmODJhNGY3M2E5ZWExZWZhNDk4
M2ViM2QxYjg2YmQzMGZjZWFhMzIuLmI2NjA0MmRjNGViZmY0YWE1ODU0ZjEyMjY4NTZjNDI1NDM5
ZjgyYTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCkBAIC0zNywzMyArMzcs
NzEgQEAKICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50
Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3Iu
aD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oPgor
I2luY2x1ZGUgPHB1YmxpYy9XZWJSVENWb2lkUmVxdWVzdC5oPgogI2luY2x1ZGUgPHB1YmxpYy9X
ZWJTdHJpbmcuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViVmVjdG9yLmg+CiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiAKLU1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OlN1Y2Nlc3ND
YWxsYmFja1Rhc2s6OlN1Y2Nlc3NDYWxsYmFja1Rhc2soTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlciogb2JqZWN0LCBjb25zdCBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3Im
IHJlc3VsdCkKLSAgICA6IE1ldGhvZFRhc2s8TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
cj4ob2JqZWN0KQotICAgICwgbV9yZXF1ZXN0KHJlcXVlc3QpCi0gICAgLCBtX3Jlc3VsdChyZXN1
bHQpCi17Ci19CitjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0U3VjY2VkZWRUYXNr
IDogcHVibGljIE1ldGhvZFRhc2s8TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcj4gewor
cHVibGljOgorICAgIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RTdWNjZWRlZFRhc2soTW9j
a1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciogb2JqZWN0LCBjb25zdCBXZWJLaXQ6OldlYlJU
Q1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYktpdDo6V2ViUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciYgcmVzdWx0KQorICAgICAgICA6IE1ldGhvZFRh
c2s8TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcj4ob2JqZWN0KQorICAgICAgICAsIG1f
cmVxdWVzdChyZXF1ZXN0KQorICAgICAgICAsIG1fcmVzdWx0KHJlc3VsdCkKKyAgICB7CisgICAg
fQogCi12b2lkIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OlN1Y2Nlc3NDYWxsYmFj
a1Rhc2s6OnJ1bklmVmFsaWQoKQotewotICAgIG1fcmVxdWVzdC5yZXF1ZXN0U3VjY2VlZGVkKG1f
cmVzdWx0KTsKLX0KKyAgICB2aXJ0dWFsIHZvaWQgcnVuSWZWYWxpZCgpIE9WRVJSSURFCisgICAg
eworICAgICAgICBtX3JlcXVlc3QucmVxdWVzdFN1Y2NlZWRlZChtX3Jlc3VsdCk7CisgICAgfQog
Ci1Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpGYWlsdXJlQ2FsbGJhY2tUYXNrOjpG
YWlsdXJlQ2FsbGJhY2tUYXNrKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIqIG9iamVj
dCwgY29uc3QgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiByZXF1ZXN0
KQotICAgIDogTWV0aG9kVGFzazxNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyPihvYmpl
Y3QpCi0gICAgLCBtX3JlcXVlc3QocmVxdWVzdCkKLXsKLX0KK3ByaXZhdGU6CisgICAgV2ViS2l0
OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0IG1fcmVxdWVzdDsKKyAgICBXZWJLaXQ6
OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IgbV9yZXN1bHQ7Cit9OworCitjbGFz
cyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0RmFpbGVkVGFzayA6IHB1YmxpYyBNZXRob2RU
YXNrPE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI+IHsKK3B1YmxpYzoKKyAgICBSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0RmFpbGVkVGFzayhNb2NrV2ViUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyKiBvYmplY3QsIGNvbnN0IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdCYgcmVxdWVzdCkKKyAgICAgICAgOiBNZXRob2RUYXNrPE1vY2tXZWJSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXI+KG9iamVjdCkKKyAgICAgICAgLCBtX3JlcXVlc3QocmVxdWVzdCkKKyAg
ICB7CisgICAgfQogCi12b2lkIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OkZhaWx1
cmVDYWxsYmFja1Rhc2s6OnJ1bklmVmFsaWQoKQotewotICAgIG1fcmVxdWVzdC5yZXF1ZXN0RmFp
bGVkKCJURVNUX0VSUk9SIik7Ci19CisgICAgdmlydHVhbCB2b2lkIHJ1bklmVmFsaWQoKSBPVkVS
UklERQorICAgIHsKKyAgICAgICAgbV9yZXF1ZXN0LnJlcXVlc3RGYWlsZWQoIlRFU1RfRVJST1Ii
KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRp
b25SZXF1ZXN0IG1fcmVxdWVzdDsKK307CisKK2NsYXNzIFJUQ1ZvaWRSZXF1ZXN0VGFzayA6IHB1
YmxpYyBNZXRob2RUYXNrPE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI+IHsKK3B1Ymxp
YzoKKyAgICBSVENWb2lkUmVxdWVzdFRhc2soTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ciogb2JqZWN0LCBjb25zdCBXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0JiByZXF1ZXN0LCBib29s
IHN1Y2NlZWRlZCkKKyAgICAgICAgOiBNZXRob2RUYXNrPE1vY2tXZWJSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXI+KG9iamVjdCkKKyAgICAgICAgLCBtX3JlcXVlc3QocmVxdWVzdCkKKyAgICAgICAg
LCBtX3N1Y2NlZWRlZChzdWNjZWVkZWQpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgdm9p
ZCBydW5JZlZhbGlkKCkgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIGlmIChtX3N1Y2NlZWRlZCkK
KyAgICAgICAgICAgIG1fcmVxdWVzdC5yZXF1ZXN0U3VjY2VlZGVkKCk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIG1fcmVxdWVzdC5yZXF1ZXN0RmFpbGVkKCJURVNUX0VSUk9SIik7CisgICAg
fQorCitwcml2YXRlOgorICAgIFdlYktpdDo6V2ViUlRDVm9pZFJlcXVlc3QgbV9yZXF1ZXN0Owor
ICAgIGJvb2wgbV9zdWNjZWVkZWQ7Cit9OworCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAogTW9j
a1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlcihXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQqIGNsaWVudCkKICAgICA6IG1f
Y2xpZW50KGNsaWVudCkKQEAgLTExNyw5ICsxNTUsMzcgQEAgdm9pZCBNb2NrV2ViUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyOjpjcmVhdGVPZmZlcihjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRp
b24KICAgICBpZiAoY29uc3RyYWludHMuZ2V0TWFuZGF0b3J5Q29uc3RyYWludFZhbHVlKCJzdWNj
ZWVkIiwgc2hvdWxkU3VjY2VlZCkgJiYgc2hvdWxkU3VjY2VlZCA9PSAidHJ1ZSIpIHsKICAgICAg
ICAgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciBzZXNzaW9uRGVzY3JpcHRpb247
CiAgICAgICAgIHNlc3Npb25EZXNjcmlwdGlvbi5pbml0aWFsaXplKCJvZmZlciIsICJTb21lIFNE
UCBoZXJlIik7Ci0gICAgICAgIHBvc3RUYXNrKG5ldyBTdWNjZXNzQ2FsbGJhY2tUYXNrKHRoaXMs
IHJlcXVlc3QsIHNlc3Npb25EZXNjcmlwdGlvbikpOworICAgICAgICBwb3N0VGFzayhuZXcgUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdFN1Y2NlZGVkVGFzayh0aGlzLCByZXF1ZXN0LCBzZXNz
aW9uRGVzY3JpcHRpb24pKTsKKyAgICB9IGVsc2UKKyAgICAgICAgcG9zdFRhc2sobmV3IFJUQ1Nl
c3Npb25EZXNjcmlwdGlvblJlcXVlc3RGYWlsZWRUYXNrKHRoaXMsIHJlcXVlc3QpKTsKK30KKwor
dm9pZCBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpzZXRMb2NhbERlc2NyaXB0aW9u
KGNvbnN0IFdlYlJUQ1ZvaWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJSVENTZXNzaW9uRGVz
Y3JpcHRpb25EZXNjcmlwdG9yJiBsb2NhbERlc2NyaXB0aW9uKQoreworICAgIGlmICghbG9jYWxE
ZXNjcmlwdGlvbi5pc051bGwoKSAmJiBsb2NhbERlc2NyaXB0aW9uLnR5cGUoKSA9PSAib2ZmZXIi
KSB7CisgICAgICAgIG1fbG9jYWxEZXNjcmlwdGlvbiA9IGxvY2FsRGVzY3JpcHRpb247CisgICAg
ICAgIHBvc3RUYXNrKG5ldyBSVENWb2lkUmVxdWVzdFRhc2sodGhpcywgcmVxdWVzdCwgdHJ1ZSkp
OworICAgIH0gZWxzZQorICAgICAgICBwb3N0VGFzayhuZXcgUlRDVm9pZFJlcXVlc3RUYXNrKHRo
aXMsIHJlcXVlc3QsIGZhbHNlKSk7Cit9CisKK3ZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlcjo6c2V0UmVtb3RlRGVzY3JpcHRpb24oY29uc3QgV2ViUlRDVm9pZFJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3ImIHJlbW90ZURl
c2NyaXB0aW9uKQoreworICAgIGlmICghcmVtb3RlRGVzY3JpcHRpb24uaXNOdWxsKCkgJiYgcmVt
b3RlRGVzY3JpcHRpb24udHlwZSgpID09ICJhbnN3ZXIiKSB7CisgICAgICAgIG1fcmVtb3RlRGVz
Y3JpcHRpb24gPSByZW1vdGVEZXNjcmlwdGlvbjsKKyAgICAgICAgcG9zdFRhc2sobmV3IFJUQ1Zv
aWRSZXF1ZXN0VGFzayh0aGlzLCByZXF1ZXN0LCB0cnVlKSk7CiAgICAgfSBlbHNlCi0gICAgICAg
IHBvc3RUYXNrKG5ldyBGYWlsdXJlQ2FsbGJhY2tUYXNrKHRoaXMsIHJlcXVlc3QpKTsKKyAgICAg
ICAgcG9zdFRhc2sobmV3IFJUQ1ZvaWRSZXF1ZXN0VGFzayh0aGlzLCByZXF1ZXN0LCBmYWxzZSkp
OworfQorCitXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yIE1vY2tXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXI6OmxvY2FsRGVzY3JpcHRpb24oKQoreworICAgIHJldHVybiBtX2xv
Y2FsRGVzY3JpcHRpb247Cit9CisKK1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3Ig
TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6cmVtb3RlRGVzY3JpcHRpb24oKQorewor
ICAgIHJldHVybiBtX3JlbW90ZURlc2NyaXB0aW9uOwogfQogCiBib29sIE1vY2tXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXI6OnVwZGF0ZUlDRShjb25zdCBXZWJSVENDb25maWd1cmF0aW9uJiwg
Y29uc3QgV2ViTWVkaWFDb25zdHJhaW50cyYpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgK
aW5kZXggNDJkNDBkNzJhMTIyMDc3Njk0ZTU2ZDY0NzFjYjcxODY0NTJjMWZjZi4uMTgwNTY4YmE2
OWJjNDY0ZTk1OTg4Mzc0ZDU0MTkyZWQ4MGJhOWEzMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXIuaApAQCAtNDksNiArNDksMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpbml0
aWFsaXplKGNvbnN0IFdlYktpdDo6V2ViUlRDQ29uZmlndXJhdGlvbiYsIGNvbnN0IFdlYktpdDo6
V2ViTWVkaWFDb25zdHJhaW50cyYpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIGNyZWF0
ZU9mZmVyKGNvbnN0IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCYsIGNv
bnN0IFdlYktpdDo6V2ViTWVkaWFDb25zdHJhaW50cyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBzZXRMb2NhbERlc2NyaXB0aW9uKGNvbnN0IFdlYktpdDo6V2ViUlRDVm9pZFJlcXVlc3Qm
LCBjb25zdCBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3ImKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVtb3RlRGVzY3JpcHRpb24oY29uc3QgV2ViS2l0
OjpXZWJSVENWb2lkUmVxdWVzdCYsIGNvbnN0IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uRGVzY3JpcHRvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJSVENTZXNz
aW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yIGxvY2FsRGVzY3JpcHRpb24oKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciByZW1v
dGVEZXNjcmlwdGlvbigpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJQ0UoY29u
c3QgV2ViS2l0OjpXZWJSVENDb25maWd1cmF0aW9uJiwgY29uc3QgV2ViS2l0OjpXZWJNZWRpYUNv
bnN0cmFpbnRzJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFkZElDRUNhbmRpZGF0ZShj
b25zdCBXZWJLaXQ6OldlYlJUQ0lDRUNhbmRpZGF0ZURlc2NyaXB0b3ImKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKGNvbnN0IFdlYktpdDo6V2ViTWVkaWFTdHJlYW1EZXNj
cmlwdG9yJiwgY29uc3QgV2ViS2l0OjpXZWJNZWRpYUNvbnN0cmFpbnRzJikgT1ZFUlJJREU7CkBA
IC02MiwyNyArNjYsOSBAQCBwcml2YXRlOgogICAgIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXIoKSB7IH0KIAogICAgIFdlYktpdDo6V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xp
ZW50KiBtX2NsaWVudDsKLQogICAgIFRhc2tMaXN0IG1fdGFza0xpc3Q7Ci0KLSAgICBjbGFzcyBT
dWNjZXNzQ2FsbGJhY2tUYXNrIDogcHVibGljIE1ldGhvZFRhc2s8TW9ja1dlYlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlcj4gewotICAgIHB1YmxpYzoKLSAgICAgICAgU3VjY2Vzc0NhbGxiYWNrVGFz
ayhNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKiwgY29uc3QgV2ViS2l0OjpXZWJSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiwgY29uc3QgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVz
Y3JpcHRpb25EZXNjcmlwdG9yJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBydW5JZlZhbGlkKCkg
T1ZFUlJJREU7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3QgbV9yZXF1ZXN0OwotICAgICAgICBXZWJLaXQ6OldlYlJUQ1Nlc3Np
b25EZXNjcmlwdGlvbkRlc2NyaXB0b3IgbV9yZXN1bHQ7Ci0gICAgfTsKLQotICAgIGNsYXNzIEZh
aWx1cmVDYWxsYmFja1Rhc2sgOiBwdWJsaWMgTWV0aG9kVGFzazxNb2NrV2ViUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyPiB7Ci0gICAgcHVibGljOgotICAgICAgICBGYWlsdXJlQ2FsbGJhY2tUYXNr
KE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIqLCBjb25zdCBXZWJLaXQ6OldlYlJUQ1Nl
c3Npb25EZXNjcmlwdGlvblJlcXVlc3QmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHJ1bklmVmFs
aWQoKSBPVkVSUklERTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIFdlYktpdDo6V2ViUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdCBtX3JlcXVlc3Q7Ci0gICAgfTsKKyAgICBXZWJLaXQ6Oldl
YlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IgbV9sb2NhbERlc2NyaXB0aW9uOworICAg
IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciBtX3JlbW90ZURlc2Ny
aXB0aW9uOwogfTsKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTc3
MTViZWRiMmU5MWY4NmI1NWEyZWFlMGUwM2ViODVlZmNkYzJhOC4uZmMwOTI1MGFmZGE1NDI2ZDI2
OGNmODg5OTgxNmJmYmNlMjNjNzkzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA5LTA1
ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlh
U3RyZWFtIEFQSTogQWRkIHRoZSBsb2NhbCBhbmQgcmVtb3RlIGRlc2NyaXB0aW9uIGZ1bmN0aW9u
YWxpdHkgdG8gUlRDUGVlckNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk1ODM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWNy
ZWF0ZU9mZmVyLmh0bWw6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi1sb2NhbERlc2NyaXB0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1sb2NhbERlc2NyaXB0aW9uLmh0bWw6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24t
Y3JlYXRlT2ZmZXIuaHRtbC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLXJlbW90ZURlc2NyaXB0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1yZW1vdGVEZXNjcmlwdGlvbi5odG1s
OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLWNyZWF0ZU9mZmVyLmh0bWwuCisKIDIwMTItMDktMDQgIFZzZXZvbG9kIFZsYXNvdiAgPHZz
ZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRml4IGluY29uc2lz
dGVuY2llcyBpbiBOZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIgaW1wbGVtZW50YXRpb24uCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LWNyZWF0ZU9mZmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLWNyZWF0ZU9mZmVyLmh0bWwKaW5kZXggZmY0NzYyZGIxOWYxNjBiYmZiY2FjYjEw
YTY4ZDU3ZTRlMTk1Zjg3Yi4uYTUwMGQ3NGRmZTUxMDYwOTY1N2QzYjg2MjA3NDYzZWI3YTI0ODFk
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi1jcmVhdGVPZmZlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXIuaHRtbApAQCAtMTksNyArMTksNyBAQCBmdW5j
dGlvbiByZXF1ZXN0RmFpbGVkMihyZWFzb24pCiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLWZ1
bmN0aW9uIHJlcXVlc3RTdWNjZWVkZWQyKHNkLCBzb3VyY2UpCitmdW5jdGlvbiByZXF1ZXN0U3Vj
Y2VlZGVkMihzZCkKIHsKICAgICB0ZXN0RmFpbGVkKCdyZXF1ZXN0U3VjY2VlZGVkIHdhcyBjYWxs
ZWQuJyk7CiAgICAgZmluaXNoSlNUZXN0KCk7CkBAIC0zMSw3ICszMSw3IEBAIGZ1bmN0aW9uIHJl
cXVlc3RGYWlsZWQxKCkKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotZnVuY3Rpb24gcmVxdWVz
dFN1Y2NlZWRlZDEoc2QsIHNvdXJjZSkKK2Z1bmN0aW9uIHJlcXVlc3RTdWNjZWVkZWQxKHNkKQog
ewogICAgIHRlc3RQYXNzZWQoJ3JlcXVlc3RTdWNjZWVkZWQgd2FzIGNhbGxlZC4nKTsKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1s
b2NhbERlc2NyaXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24tbG9jYWxEZXNjcmlwdGlvbi1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDNkMjg3NmZkZDBlNDQ3M2VkODlhMzk2ZDkwNzRmMDFmYjU3YWVjYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24t
bG9jYWxEZXNjcmlwdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgUlRD
UGVlckNvbm5lY3Rpb24gbG9jYWxEZXNjcmlwdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihzZXNzaW9uRGVzY3JpcHRpb24s
IHJlcXVlc3RTdWNjZWVkZWQxLCByZXF1ZXN0RmFpbGVkMSk7IGRpZCBub3QgdGhyb3cgZXhjZXB0
aW9uLgorUEFTUyByZXF1ZXN0U3VjY2VlZGVkIHdhcyBjYWxsZWQuCitQQVNTIHBjLnNldExvY2Fs
RGVzY3JpcHRpb24oc2Vzc2lvbkRlc2NyaXB0aW9uLCByZXF1ZXN0U3VjY2VlZGVkMiwgcmVxdWVz
dEZhaWxlZDIpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgcmVxdWVzdEZhaWxlZCB3
YXMgY2FsbGVkLgorUEFTUyBwYy5sb2NhbERlc2NyaXB0aW9uLnNkcCBpcyAic2RwMSIKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWxvY2FsRGVz
Y3JpcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24tbG9jYWxEZXNjcmlwdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmYWU0NmI0YTE4MzE2YWUw
NGVjMDVkZjE1Y2E4MTU4OTI0ZjIxOTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWxvY2FsRGVzY3JpcHRpb24uaHRtbApA
QCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbigiVGVzdHMgUlRDUGVlckNvbm5lY3Rpb24gbG9jYWxEZXNjcmlwdGlvbi4iKTsKKwordmFy
IHBjID0gbnVsbDsKKworZnVuY3Rpb24gcmVxdWVzdEZhaWxlZDIoKQoreworICAgIHRlc3RQYXNz
ZWQoJ3JlcXVlc3RGYWlsZWQgd2FzIGNhbGxlZC4nKTsKKworICAgIHNob3VsZEJlKCdwYy5sb2Nh
bERlc2NyaXB0aW9uLnNkcCcsICcic2RwMSInKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwor
ZnVuY3Rpb24gcmVxdWVzdFN1Y2NlZWRlZDIoKQoreworICAgIHRlc3RGYWlsZWQoJ3JlcXVlc3RT
dWNjZWVkZWQgd2FzIGNhbGxlZC4nKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rp
b24gcmVxdWVzdEZhaWxlZDEoKQoreworICAgIHRlc3RGYWlsZWQoJ3JlcXVlc3RGYWlsZWQgd2Fz
IGNhbGxlZC4nKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gcmVxdWVzdFN1
Y2NlZWRlZDEoKQoreworICAgIHRlc3RQYXNzZWQoJ3JlcXVlc3RTdWNjZWVkZWQgd2FzIGNhbGxl
ZC4nKTsKKworICAgIHNlc3Npb25EZXNjcmlwdGlvbiA9IG5ldyBSVENTZXNzaW9uRGVzY3JpcHRp
b24oe3R5cGU6ImFuc3dlciIsIHNkcDoic2RwMiJ9KTsKKyAgICBzaG91bGROb3RUaHJvdygncGMu
c2V0TG9jYWxEZXNjcmlwdGlvbihzZXNzaW9uRGVzY3JpcHRpb24sIHJlcXVlc3RTdWNjZWVkZWQy
LCByZXF1ZXN0RmFpbGVkMik7Jyk7Cit9CisKK3BjID0gbmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0
aW9uKG51bGwsIG51bGwpOwordmFyIHNlc3Npb25EZXNjcmlwdGlvbiA9IG5ldyBSVENTZXNzaW9u
RGVzY3JpcHRpb24oe3R5cGU6Im9mZmVyIiwgc2RwOiJzZHAxIn0pOworc2hvdWxkTm90VGhyb3co
J3BjLnNldExvY2FsRGVzY3JpcHRpb24oc2Vzc2lvbkRlc2NyaXB0aW9uLCByZXF1ZXN0U3VjY2Vl
ZGVkMSwgcmVxdWVzdEZhaWxlZDEpOycpOworCisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLXJlbW90ZURlc2NyaXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tcmVtb3RlRGVzY3JpcHRpb24tZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2YjA0MzcwZmRhNmVhNmI4MGZhNzllNDIyNjA5OWI1NWYw
NWQ3MmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLXJlbW90ZURlc2NyaXB0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE0IEBACitUZXN0cyBSVENQZWVyQ29ubmVjdGlvbiByZW1vdGVEZXNjcmlwdGlvbi4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24o
c2Vzc2lvbkRlc2NyaXB0aW9uLCByZXF1ZXN0U3VjY2VlZGVkMSwgcmVxdWVzdEZhaWxlZDEpOyBk
aWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgcmVxdWVzdFN1Y2NlZWRlZCB3YXMgY2FsbGVk
LgorUEFTUyBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzY3JpcHRpb24sIHJlcXVl
c3RTdWNjZWVkZWQyLCByZXF1ZXN0RmFpbGVkMik7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgor
UEFTUyByZXF1ZXN0RmFpbGVkIHdhcyBjYWxsZWQuCitQQVNTIHBjLnJlbW90ZURlc2NyaXB0aW9u
LnNkcCBpcyAic2RwMSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLXJlbW90ZURlc2NyaXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXJlbW90ZURlc2NyaXB0aW9uLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjYwYzUxMWJhZjBkM2E1NjZlZjg1MWM2N2I3NTVlMmI3ZTE0ZWNlNAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24t
cmVtb3RlRGVzY3JpcHRpb24uaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgUlRDUGVlckNvbm5lY3Rpb24gcmVt
b3RlRGVzY3JpcHRpb24uIik7CisKK3ZhciBwYyA9IG51bGw7CisKK2Z1bmN0aW9uIHJlcXVlc3RG
YWlsZWQyKCkKK3sKKyAgICB0ZXN0UGFzc2VkKCdyZXF1ZXN0RmFpbGVkIHdhcyBjYWxsZWQuJyk7
CisKKyAgICBzaG91bGRCZSgncGMucmVtb3RlRGVzY3JpcHRpb24uc2RwJywgJyJzZHAxIicpOwor
ICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiByZXF1ZXN0U3VjY2VlZGVkMigpCit7
CisgICAgdGVzdEZhaWxlZCgncmVxdWVzdFN1Y2NlZWRlZCB3YXMgY2FsbGVkLicpOworICAgIGZp
bmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiByZXF1ZXN0RmFpbGVkMSgpCit7CisgICAgdGVz
dEZhaWxlZCgncmVxdWVzdEZhaWxlZCB3YXMgY2FsbGVkLicpOworICAgIGZpbmlzaEpTVGVzdCgp
OworfQorCitmdW5jdGlvbiByZXF1ZXN0U3VjY2VlZGVkMSgpCit7CisgICAgdGVzdFBhc3NlZCgn
cmVxdWVzdFN1Y2NlZWRlZCB3YXMgY2FsbGVkLicpOworCisgICAgc2Vzc2lvbkRlc2NyaXB0aW9u
ID0gbmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbih7dHlwZToib2ZmZXIiLCBzZHA6InNkcDIifSk7
CisgICAgc2hvdWxkTm90VGhyb3coJ3BjLnNldFJlbW90ZURlc2NyaXB0aW9uKHNlc3Npb25EZXNj
cmlwdGlvbiwgcmVxdWVzdFN1Y2NlZWRlZDIsIHJlcXVlc3RGYWlsZWQyKTsnKTsKK30KKworcGMg
PSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24obnVsbCwgbnVsbCk7Cit2YXIgc2Vzc2lvbkRl
c2NyaXB0aW9uID0gbmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbih7dHlwZToiYW5zd2VyIiwgc2Rw
OiJzZHAxIn0pOworc2hvdWxkTm90VGhyb3coJ3BjLnNldFJlbW90ZURlc2NyaXB0aW9uKHNlc3Np
b25EZXNjcmlwdGlvbiwgcmVxdWVzdFN1Y2NlZWRlZDEsIHJlcXVlc3RGYWlsZWQxKTsnKTsKKwor
Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>