<?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>229559</bug_id>
          
          <creation_ts>2021-08-26 08:44:23 -0700</creation_ts>
          <short_desc>Enable SharedArrayBuffer support when COOP/COEP headers are used</short_desc>
          <delta_ts>2021-09-09 02:42:19 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>229465</dependson>
    
    <dependson>229501</dependson>
          <blocked>228137</blocked>
    
    <blocked>228755</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>annulen</cc>
    
    <cc>anthony.bowker</cc>
    
    <cc>beidson</cc>
    
    <cc>bugmail</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hotaru</cc>
    
    <cc>japhet</cc>
    
    <cc>jsbell</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mark.lam</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1787601</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-26 08:44:23 -0700</bug_when>
    <thetext>Re-enable SharedArrayBuffer when COOP/COEP are used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787602</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-26 08:44:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/82391945&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787611</commentid>
    <comment_count>2</comment_count>
      <attachid>436515</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-26 08:55:44 -0700</bug_when>
    <thetext>Created attachment 436515
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787617</commentid>
    <comment_count>3</comment_count>
      <attachid>436517</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-26 09:13:14 -0700</bug_when>
    <thetext>Created attachment 436517
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787643</commentid>
    <comment_count>4</comment_count>
      <attachid>436527</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-26 09:37:46 -0700</bug_when>
    <thetext>Created attachment 436527
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787694</commentid>
    <comment_count>5</comment_count>
      <attachid>436535</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-26 11:24:21 -0700</bug_when>
    <thetext>Created attachment 436535
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787816</commentid>
    <comment_count>6</comment_count>
      <attachid>436573</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-26 14:57:41 -0700</bug_when>
    <thetext>Created attachment 436573
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787848</commentid>
    <comment_count>7</comment_count>
      <attachid>436580</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-26 15:49:53 -0700</bug_when>
    <thetext>Created attachment 436580
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787852</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-08-26 15:54:35 -0700</bug_when>
    <thetext>*** Bug 218944 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787875</commentid>
    <comment_count>9</comment_count>
      <attachid>436588</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-26 16:48:26 -0700</bug_when>
    <thetext>Created attachment 436588
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787920</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-08-26 18:45:32 -0700</bug_when>
    <thetext>*** Bug 218943 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788045</commentid>
    <comment_count>11</comment_count>
      <attachid>436636</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-27 09:47:07 -0700</bug_when>
    <thetext>Created attachment 436636
WIP patch (now with API tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788054</commentid>
    <comment_count>12</comment_count>
      <attachid>436639</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-27 10:06:51 -0700</bug_when>
    <thetext>Created attachment 436639
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788113</commentid>
    <comment_count>13</comment_count>
      <attachid>436656</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-27 12:23:38 -0700</bug_when>
    <thetext>Created attachment 436656
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788183</commentid>
    <comment_count>14</comment_count>
      <attachid>436676</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-27 14:43:30 -0700</bug_when>
    <thetext>Created attachment 436676
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788238</commentid>
    <comment_count>15</comment_count>
      <attachid>436694</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-27 17:00:10 -0700</bug_when>
    <thetext>Created attachment 436694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788269</commentid>
    <comment_count>16</comment_count>
      <attachid>436694</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-08-27 21:10:00 -0700</bug_when>
    <thetext>Comment on attachment 436694
Patch

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

&gt; Source/WebCore/loader/DocumentLoader.cpp:957
&gt; +    if (currentCoopEnforcementResult-&gt;crossOriginOpenerPolicy.value == CrossOriginOpenerPolicyValue::SameOriginPlusCOEP)
&gt; +        return NeedsBrowsingContextGroupSwitch::YesWithCrossOriginIsolation;
&gt; +    return NeedsBrowsingContextGroupSwitch::YesWithoutCrossOriginIsolation;

How about
BrowsingContextGroup::StayInGroup
BrowsingContextGroup::NewSharedGroup
BrowsingContextGroup::NewIsolatedGroup

&gt; Source/WebKit/UIProcess/WebProcessProxy.h:136
&gt; +    enum class IsCrossOriginIsolated : bool { No, Yes };

How about enum class CrossOriginMode : bool { Shared, Isolated };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788500</commentid>
    <comment_count>17</comment_count>
      <attachid>436772</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-30 08:09:48 -0700</bug_when>
    <thetext>Created attachment 436772
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789018</commentid>
    <comment_count>18</comment_count>
      <attachid>436772</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-08-31 12:20:32 -0700</bug_when>
    <thetext>Comment on attachment 436772
Patch

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

&gt; Source/WebKit/ChangeLog:24
&gt; +        JSC Options need to be set before JSC::initialize() is called, which occurs

This doesn&apos;t seem to be true with the code.  It seems to be set immediately after JSC::initialize but before other things.

&gt; Source/WebCore/dom/ScriptExecutionContext.cpp:84
&gt; +static CrossOriginMode globalCrossOriginMode { CrossOriginMode::Shared };

Since this is written to by the main thread and read from by multiple threads, should it be std::atomic?  Right now it&apos;s written only during process initialization, so it&apos;s probably no big deal.

&gt; Source/WebCore/loader/DocumentLoader.cpp:954
&gt; +        return BrowsingContextGroup::StayInGroup;

I think BrowsingContextGroup isn&apos;t a great name for this.  It&apos;s more of a policy action than a group, which makes me think of PageGroup or some other kind of container.  
&quot;BrowsingContextGroupSwitchDecision&quot; or something

&gt; Source/WebCore/page/DOMWindow.idl:-82
&gt; -    // FIXME: Implement &apos;originIsolated&apos;

So I guess this isn&apos;t a thing any more, replaced by window.crossOriginIsolated, right?

&gt; Source/WebKit/Shared/WebProcessCreationParameters.h:139
&gt; +    WebCore::CrossOriginMode crossOriginMode { false }; // Cross-origin isolation via COOP+COEP headers.

false is the wrong type.  I think this should be { WebCore::CrossOriginMode::CrossOriginMode }

&gt; Source/WebKit/UIProcess/WebProcessProxy.h:446
&gt; +    bool shouldEnableSharedArrayBuffer() const final { return m_crossOriginMode == WebCore::CrossOriginMode::Isolated; }

Will there be other uses of this?  We may want to do other things like increase the resolution of DOMHighResTimeStamp.  I think this should be called isCrossOriginIsolated(), but no strong feelings.  It is currently used for enabling SharedArrayBuffer.

&gt; LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/cross-origin-isolated-permission.https-expected.txt:5
&gt; +FAIL frame: origin = https://localhost:9443, value = (\) assert_equals: expected false but got true

Why did this used to pass and it now fails?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789023</commentid>
    <comment_count>19</comment_count>
      <attachid>436772</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-31 12:30:17 -0700</bug_when>
    <thetext>Comment on attachment 436772
Patch

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

&gt;&gt; Source/WebKit/ChangeLog:24
&gt;&gt; +        JSC Options need to be set before JSC::initialize() is called, which occurs
&gt; 
&gt; This doesn&apos;t seem to be true with the code.  It seems to be set immediately after JSC::initialize but before other things.

I did what Mark Lam suggested and it is working. I think my changelog is just wrong. Will fix.

&gt;&gt; Source/WebCore/dom/ScriptExecutionContext.cpp:84
&gt;&gt; +static CrossOriginMode globalCrossOriginMode { CrossOriginMode::Shared };
&gt; 
&gt; Since this is written to by the main thread and read from by multiple threads, should it be std::atomic?  Right now it&apos;s written only during process initialization, so it&apos;s probably no big deal.

As you said, it is only set during process initialization so I don&apos;t think this is strictly necessary.

&gt;&gt; Source/WebCore/loader/DocumentLoader.cpp:954
&gt;&gt; +        return BrowsingContextGroup::StayInGroup;
&gt; 
&gt; I think BrowsingContextGroup isn&apos;t a great name for this.  It&apos;s more of a policy action than a group, which makes me think of PageGroup or some other kind of container.  
&gt; &quot;BrowsingContextGroupSwitchDecision&quot; or something

OK, I had one naming in my original patch (NeedsBrowsingContextGroupSwitch { No, YesWithCrossOriginIsolation, YesWithoutCrossOriginIsolation };

But Ryosuke didn&apos;t like it so I went with the exact naming he suggested.

&gt;&gt; Source/WebCore/page/DOMWindow.idl:-82
&gt;&gt; -    // FIXME: Implement &apos;originIsolated&apos;
&gt; 
&gt; So I guess this isn&apos;t a thing any more, replaced by window.crossOriginIsolated, right?

Right, replaced by self.crossOriginIsolated.

&gt;&gt; Source/WebKit/Shared/WebProcessCreationParameters.h:139
&gt;&gt; +    WebCore::CrossOriginMode crossOriginMode { false }; // Cross-origin isolation via COOP+COEP headers.
&gt; 
&gt; false is the wrong type.  I think this should be { WebCore::CrossOriginMode::CrossOriginMode }

Oops, indeed. Got it wrong when I did the renaming that Ryosuke suggested.

&gt;&gt; Source/WebKit/UIProcess/WebProcessProxy.h:446
&gt;&gt; +    bool shouldEnableSharedArrayBuffer() const final { return m_crossOriginMode == WebCore::CrossOriginMode::Isolated; }
&gt; 
&gt; Will there be other uses of this?  We may want to do other things like increase the resolution of DOMHighResTimeStamp.  I think this should be called isCrossOriginIsolated(), but no strong feelings.  It is currently used for enabling SharedArrayBuffer.

I already have a follow-up patch almost ready for DOMHighResTimeStamp. That patch will rely on ScriptExecutionContext::crossOriginMode() since it is in WebCore.

&gt;&gt; LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/cross-origin-isolated-permission.https-expected.txt:5
&gt;&gt; +FAIL frame: origin = https://localhost:9443, value = (\) assert_equals: expected false but got true
&gt; 
&gt; Why did this used to pass and it now fails?

I explained in the changelog. This test relies on Permissions-Policy HTTP header (https://w3c.github.io/webappsec-permissions-policy/) which we don&apos;t support.
We used to pass by luck because self.crossOriginIsolated was returning false unconditionally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789029</commentid>
    <comment_count>20</comment_count>
      <attachid>436772</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-31 12:34:43 -0700</bug_when>
    <thetext>Comment on attachment 436772
Patch

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

&gt;&gt;&gt; Source/WebKit/ChangeLog:24
&gt;&gt;&gt; +        JSC Options need to be set before JSC::initialize() is called, which occurs
&gt;&gt; 
&gt;&gt; This doesn&apos;t seem to be true with the code.  It seems to be set immediately after JSC::initialize but before other things.
&gt; 
&gt; I did what Mark Lam suggested and it is working. I think my changelog is just wrong. Will fix.

My code seems correct, so does the changelog. According to Mark Lam, I need to set the option *after* calling JSC::Options::initialize() but *before* JSC::initialize() is called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789033</commentid>
    <comment_count>21</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-08-31 12:40:53 -0700</bug_when>
    <thetext>Oh, you&apos;re right.  JSC::initialize and JSC::Options::initialize are different things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789046</commentid>
    <comment_count>22</comment_count>
      <attachid>436934</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-31 13:21:55 -0700</bug_when>
    <thetext>Created attachment 436934
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789136</commentid>
    <comment_count>23</comment_count>
      <attachid>436957</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-31 16:01:19 -0700</bug_when>
    <thetext>Created attachment 436957
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789161</commentid>
    <comment_count>24</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-31 16:53:24 -0700</bug_when>
    <thetext>Committed r281832 (241165@main): &lt;https://commits.webkit.org/241165@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436957.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436515</attachid>
            <date>2021-08-26 08:55:44 -0700</date>
            <delta_ts>2021-08-26 09:13:14 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>229559_COOP_reenable_SharedArrayBuffer_wip.patch</filename>
            <type>text/plain</type>
            <size>4489</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1w
ZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L2Nyb3Nz
LW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAzYjc3
NjYxMzM4OTQuLmNlNzA5MDQyNjg1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kv
Y3Jvc3Mtb3JpZ2luLWlzb2xhdGVkLXBlcm1pc3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1v
cmlnaW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMiBAQAogCi1GQUlMIGZyYW1lOiBvcmlnaW4g
PSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBz
Oi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVl
IGJ1dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0
NDMsIHZhbHVlID0gc2VsZiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFs
c2UKLVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0g
KFwpCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9
IHVuZGVmaW5lZAotUEFTUyBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0Mywg
dmFsdWUgPSAqCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2
YWx1ZSA9IHNlbGYKLVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMs
IHZhbHVlID0gKFwpCitQQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQz
LCB2YWx1ZSA9IHVuZGVmaW5lZAorUEFTUyBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly9sb2NhbGhv
c3Q6OTQ0MywgdmFsdWUgPSAqCitQQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczovL2xvY2FsaG9z
dDo5NDQzLCB2YWx1ZSA9IHNlbGYKK0ZBSUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxo
b3N0Ojk0NDMsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBn
b3QgdHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFs
dWUgPSB1bmRlZmluZWQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVl
CitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9ICog
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitGQUlMIGZyYW1lOiBv
cmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHNlbGYgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRw
czovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IChcKSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBm
YWxzZSBidXQgZ290IHRydWUKIEZBSUwgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gaHR0cHMs
IHZhbHVlID0gdW5kZWZpbmVkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBm
YWxzZQogRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBodHRwcywgdmFsdWUgPSAqIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQogRkFJTCBkZWRpY2F0ZWQg
d29ya2VyOiBzY2hlbWUgPSBodHRwcywgdmFsdWUgPSBzZWxmIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIHRydWUgYnV0IGdvdCBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nv
ZXAuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhw
ZWN0ZWQudHh0CmluZGV4IGI0MzljZGM5NzM1Ni4uZGRjOGZjMzE4NjFmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3Jp
Z2luLW9wZW5lci1wb2xpY3kvY29lcC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVu
ZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC03LDUgKzcsNSBAQCBQQVNTIFNh
bWUtb3JpZ2luIHBvcHVwIHdpdGggY29vcCB1bnNhZmUtbm9uZSB3aXRob3V0IGNvZXAKIFBBU1Mg
aGlzdG9yaWNhbDogInNhbWUtc2l0ZSIgcG9wdXAgd2l0aCBjb29wIHVuc2FmZS1ub25lIHdpdGhv
dXQgY29lcAogUEFTUyBTYW1lLW9yaWdpbiBwb3B1cCB3aXRob3V0IGNvZXAKIFBBU1MgaGlzdG9y
aWNhbDogInNhbWUtc2l0ZSIgcG9wdXAgd2l0aG91dCBjb2VwCi1GQUlMIEJvbnVzOiB3aW5kb3cu
Y3Jvc3NPcmlnaW5Jc29sYXRlZCBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
K1BBU1MgQm9udXM6IHdpbmRvdy5jcm9zc09yaWdpbklzb2xhdGVkCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcAppbmRleCA5YTMyNTVhNjlkMjkuLmY5MmRkY2M4MDA2ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcApAQCAtMTkyMyw5ICsxOTIzLDE1IEBAIGJvb2wgRE9NV2luZG93Ojpp
c1NlY3VyZUNvbnRleHQoKSBjb25zdAogCiBib29sIERPTVdpbmRvdzo6Y3Jvc3NPcmlnaW5Jc29s
YXRlZCgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudGVkIHRoaXMuIFRoaXMgc2hv
dWxkIHJldHVybiB0cnVlIGlmIENPT1AvQ09FUCBhcmUgdXNlZCBhbmQgdGhlIHBhZ2UgaXMgYWxs
b3dlZCB0byB1c2UgQVBJcwotICAgIC8vIHRoYXQgcmVxdWlyZSBjcm9zcy1vcmlnaW4gaXNvbGF0
aW9uIChlLmcuIFNoYXJlZEFycmF5QnVmZmVyKS4KLSAgICByZXR1cm4gZmFsc2U7CisgICAgYXV0
byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8mIHNldHRpbmdzID0gZG9jdW1lbnQtPnNldHRp
bmdzKCk7CisgICAgaWYgKCFzZXR0aW5ncy5jcm9zc09yaWdpbk9wZW5lclBvbGljeUVuYWJsZWQo
KSB8fCAhc2V0dGluZ3MuY3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeUVuYWJsZWQoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGRvY3VtZW50LT50b3BEb2N1bWVudCgpLmNy
b3NzT3JpZ2luT3BlbmVyUG9saWN5KCkudmFsdWUgPT0gQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lW
YWx1ZTo6U2FtZU9yaWdpblBsdXNDT0VQOwogfQogCiBzdGF0aWMgdm9pZCBkaWRBZGRTdG9yYWdl
RXZlbnRMaXN0ZW5lcihET01XaW5kb3cmIHdpbmRvdykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bAppbmRleCA0MGY4NzQ3YjFkYWYuLjFiYzEzMDFjZmEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmlkbApAQCAtNzksOCArNzksNiBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOYXZpZ2F0
b3IgbmF2aWdhdG9yOwogICAgIC8vIEZJWE1FOiBUaGlzIGlzIHNwZWNpZmllZCB0byBiZSBbU2Vj
dXJlQ29udGV4dF0KICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NQXBwbGljYXRpb25DYWNoZSBh
cHBsaWNhdGlvbkNhY2hlOwotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgJ29yaWdpbklzb2xhdGVk
JwotICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIG9yaWdpbklzb2xhdGVkOwogCiAg
ICAgLy8gdXNlciBwcm9tcHRzCiAgICAgdW5kZWZpbmVkIGFsZXJ0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436517</attachid>
            <date>2021-08-26 09:13:14 -0700</date>
            <delta_ts>2021-08-26 09:37:46 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>229559_COOP_reenable_SharedArrayBuffer_wip.patch</filename>
            <type>text/plain</type>
            <size>6386</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL3NlcmlhbGl6ZS1zaGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvc2VyaWFsaXplLXNoYXJlZGFycmF5YnVmZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggYWNjMDQ2NDYwM2IxLi42ZDBiYjY2ZmFmMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3NlcmlhbGl6ZS1z
aGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3NlcmlhbGl6ZS1z
aGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNSBA
QAogCi1GQUlMIEluZGV4ZWREQjogQXR0ZW1wdGluZyB0byBzZXJpYWxpemUgYSBTaGFyZWRBcnJh
eUJ1ZmZlciBzaG91bGQgdGhyb3cgYXNzZXJ0X3RydWU6IFRoZSBwYWdlIGlzIHNlcnZlZCB3aXRo
IENPT1AgYW5kIENPRVAsIGl0IHNob3VsZCBiZSBjcm9zcy1vcmlnaW4taXNvbGF0ZWQuIGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCitGQUlMIEluZGV4ZWREQjogQXR0ZW1wdGluZyB0byBzZXJpYWxp
emUgYSBTaGFyZWRBcnJheUJ1ZmZlciBzaG91bGQgdGhyb3cgYXNzZXJ0X3Rocm93c19kb206IGZ1
bmN0aW9uICIoKSA9PiB7CisgICAgICAgICAgICBycSA9IG9ialN0b3JlLnB1dCh7c2FiOiBzYWJ9
LCAna2V5Jyk7CisgICAgICAgIH0iIHRocmV3IG9iamVjdCAiRGF0YUVycm9yOiBGYWlsZWQgdG8g
c3RvcmUgcmVjb3JkIGluIGFuIElEQk9iamVjdFN0b3JlOiBUaGUgb2JqZWN0IHN0b3JlIHVzZXMg
aW4tbGluZSBrZXlzIGFuZCB0aGUga2V5IHBhcmFtZXRlciB3YXMgcHJvdmlkZWQuIiB0aGF0IGlz
IG5vdCBhIERPTUV4Y2VwdGlvbiBEYXRhQ2xvbmVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVx
dWFsIHRvIDAsIGV4cGVjdGVkIDI1CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5
L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmln
aW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBz
LWV4cGVjdGVkLnR4dAppbmRleCAzYjc3NjYxMzM4OTQuLmNlNzA5MDQyNjg1MiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkLXBlcm1pc3Npb24u
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdp
bi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMiBA
QAogCi1GQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9
IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZB
SUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6IG9yaWdp
biA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gc2VsZiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKFwpCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczov
LzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZAotUEFTUyBmcmFtZTogb3JpZ2luID0g
aHR0cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSAqCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBo
dHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHNlbGYKLVBBU1MgZnJhbWU6IG9yaWdpbiA9
IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMsIHZhbHVlID0gKFwpCitQQVNTIGZyYW1lOiBvcmlnaW4g
PSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZAorUEFTUyBmcmFtZTog
b3JpZ2luID0gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MywgdmFsdWUgPSAqCitQQVNTIGZyYW1lOiBv
cmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHNlbGYKK0ZBSUwgZnJhbWU6
IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0
cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSB1bmRlZmluZWQgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEy
Ny4wLjAuMTo5NDQzLCB2YWx1ZSA9ICogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0
IGdvdCB0cnVlCitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2
YWx1ZSA9IHNlbGYgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitG
QUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IChcKSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKIEZBSUwgZGVkaWNhdGVk
IHdvcmtlcjogc2NoZW1lID0gaHR0cHMsIHZhbHVlID0gdW5kZWZpbmVkIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQogRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hl
bWUgPSBodHRwcywgdmFsdWUgPSAqIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdv
dCBmYWxzZQogRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBodHRwcywgdmFsdWUgPSBz
ZWxmIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVu
ZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGI0MzljZGM5NzM1Ni4uZGRj
OGZjMzE4NjFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC5odHRwcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC03LDUgKzcsNSBAQCBQQVNTIFNhbWUtb3JpZ2luIHBvcHVwIHdpdGggY29vcCB1bnNhZmUt
bm9uZSB3aXRob3V0IGNvZXAKIFBBU1MgaGlzdG9yaWNhbDogInNhbWUtc2l0ZSIgcG9wdXAgd2l0
aCBjb29wIHVuc2FmZS1ub25lIHdpdGhvdXQgY29lcAogUEFTUyBTYW1lLW9yaWdpbiBwb3B1cCB3
aXRob3V0IGNvZXAKIFBBU1MgaGlzdG9yaWNhbDogInNhbWUtc2l0ZSIgcG9wdXAgd2l0aG91dCBj
b2VwCi1GQUlMIEJvbnVzOiB3aW5kb3cuY3Jvc3NPcmlnaW5Jc29sYXRlZCBhc3NlcnRfdHJ1ZTog
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgQm9udXM6IHdpbmRvdy5jcm9zc09yaWdpbklz
b2xhdGVkCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA5YTMyNTVhNjlkMjkuLmY5
MmRkY2M4MDA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTkyMyw5ICsxOTIz
LDE1IEBAIGJvb2wgRE9NV2luZG93Ojppc1NlY3VyZUNvbnRleHQoKSBjb25zdAogCiBib29sIERP
TVdpbmRvdzo6Y3Jvc3NPcmlnaW5Jc29sYXRlZCgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IElt
cGxlbWVudGVkIHRoaXMuIFRoaXMgc2hvdWxkIHJldHVybiB0cnVlIGlmIENPT1AvQ09FUCBhcmUg
dXNlZCBhbmQgdGhlIHBhZ2UgaXMgYWxsb3dlZCB0byB1c2UgQVBJcwotICAgIC8vIHRoYXQgcmVx
dWlyZSBjcm9zcy1vcmlnaW4gaXNvbGF0aW9uIChlLmcuIFNoYXJlZEFycmF5QnVmZmVyKS4KLSAg
ICByZXR1cm4gZmFsc2U7CisgICAgYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwor
ICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8mIHNl
dHRpbmdzID0gZG9jdW1lbnQtPnNldHRpbmdzKCk7CisgICAgaWYgKCFzZXR0aW5ncy5jcm9zc09y
aWdpbk9wZW5lclBvbGljeUVuYWJsZWQoKSB8fCAhc2V0dGluZ3MuY3Jvc3NPcmlnaW5FbWJlZGRl
clBvbGljeUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGRv
Y3VtZW50LT50b3BEb2N1bWVudCgpLmNyb3NzT3JpZ2luT3BlbmVyUG9saWN5KCkudmFsdWUgPT0g
Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1ZTo6U2FtZU9yaWdpblBsdXNDT0VQOwogfQogCiBz
dGF0aWMgdm9pZCBkaWRBZGRTdG9yYWdlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cmIHdpbmRvdykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCA0MGY4NzQ3YjFkYWYuLjFiYzEzMDFjZmEw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtNzksOCArNzksNiBAQAogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBOYXZpZ2F0b3IgbmF2aWdhdG9yOwogICAgIC8vIEZJWE1FOiBUaGlz
IGlzIHNwZWNpZmllZCB0byBiZSBbU2VjdXJlQ29udGV4dF0KICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NQXBwbGljYXRpb25DYWNoZSBhcHBsaWNhdGlvbkNhY2hlOwotICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgJ29yaWdpbklzb2xhdGVkJwotICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29s
ZWFuIG9yaWdpbklzb2xhdGVkOwogCiAgICAgLy8gdXNlciBwcm9tcHRzCiAgICAgdW5kZWZpbmVk
IGFsZXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IDA0ZTNhZTIwMTQzZi4uNDI3ZGQ0ZWZjNDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTcwMiw2ICsxNzAyLDkgQEAgdm9pZCBX
ZWJQYWdlOjpsb2FkUmVxdWVzdChMb2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzKQogCiAg
ICAgcGxhdGZvcm1EaWRSZWNlaXZlTG9hZFBhcmFtZXRlcnMobG9hZFBhcmFtZXRlcnMpOwogCisg
ICAgaWYgKGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9PSBTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lvbikK
KyAgICAgICAgSlNDOjpPcHRpb25zOjp1c2VTaGFyZWRBcnJheUJ1ZmZlcigpID0gdHJ1ZTsKKwog
ICAgIC8vIEluaXRhdGUgdGhlIGxvYWQgaW4gV2ViQ29yZS4KICAgICBGcmFtZUxvYWRSZXF1ZXN0
IGZyYW1lTG9hZFJlcXVlc3QgeyAqbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLCBsb2FkUGFyYW1l
dGVycy5yZXF1ZXN0IH07CiAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5KGxvYWRQYXJhbWV0ZXJzLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436527</attachid>
            <date>2021-08-26 09:37:46 -0700</date>
            <delta_ts>2021-08-26 11:24:21 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>229559_COOP_reenable_SharedArrayBuffer_wip.patch</filename>
            <type>text/plain</type>
            <size>10288</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL3NlcmlhbGl6ZS1zaGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvc2VyaWFsaXplLXNoYXJlZGFycmF5YnVmZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggYWNjMDQ2NDYwM2IxLi42ZDBiYjY2ZmFmMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3NlcmlhbGl6ZS1z
aGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3NlcmlhbGl6ZS1z
aGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNSBA
QAogCi1GQUlMIEluZGV4ZWREQjogQXR0ZW1wdGluZyB0byBzZXJpYWxpemUgYSBTaGFyZWRBcnJh
eUJ1ZmZlciBzaG91bGQgdGhyb3cgYXNzZXJ0X3RydWU6IFRoZSBwYWdlIGlzIHNlcnZlZCB3aXRo
IENPT1AgYW5kIENPRVAsIGl0IHNob3VsZCBiZSBjcm9zcy1vcmlnaW4taXNvbGF0ZWQuIGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCitGQUlMIEluZGV4ZWREQjogQXR0ZW1wdGluZyB0byBzZXJpYWxp
emUgYSBTaGFyZWRBcnJheUJ1ZmZlciBzaG91bGQgdGhyb3cgYXNzZXJ0X3Rocm93c19kb206IGZ1
bmN0aW9uICIoKSA9PiB7CisgICAgICAgICAgICBycSA9IG9ialN0b3JlLnB1dCh7c2FiOiBzYWJ9
LCAna2V5Jyk7CisgICAgICAgIH0iIHRocmV3IG9iamVjdCAiRGF0YUVycm9yOiBGYWlsZWQgdG8g
c3RvcmUgcmVjb3JkIGluIGFuIElEQk9iamVjdFN0b3JlOiBUaGUgb2JqZWN0IHN0b3JlIHVzZXMg
aW4tbGluZSBrZXlzIGFuZCB0aGUga2V5IHBhcmFtZXRlciB3YXMgcHJvdmlkZWQuIiB0aGF0IGlz
IG5vdCBhIERPTUV4Y2VwdGlvbiBEYXRhQ2xvbmVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVx
dWFsIHRvIDAsIGV4cGVjdGVkIDI1CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5
L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmln
aW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBz
LWV4cGVjdGVkLnR4dAppbmRleCAzYjc3NjYxMzM4OTQuLmNlNzA5MDQyNjg1MiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkLXBlcm1pc3Npb24u
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdp
bi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMiBA
QAogCi1GQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9
IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZB
SUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6IG9yaWdp
biA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gc2VsZiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKFwpCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczov
LzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZAotUEFTUyBmcmFtZTogb3JpZ2luID0g
aHR0cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSAqCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBo
dHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHNlbGYKLVBBU1MgZnJhbWU6IG9yaWdpbiA9
IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMsIHZhbHVlID0gKFwpCitQQVNTIGZyYW1lOiBvcmlnaW4g
PSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZAorUEFTUyBmcmFtZTog
b3JpZ2luID0gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MywgdmFsdWUgPSAqCitQQVNTIGZyYW1lOiBv
cmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHNlbGYKK0ZBSUwgZnJhbWU6
IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0
cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSB1bmRlZmluZWQgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEy
Ny4wLjAuMTo5NDQzLCB2YWx1ZSA9ICogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0
IGdvdCB0cnVlCitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2
YWx1ZSA9IHNlbGYgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitG
QUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IChcKSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKIEZBSUwgZGVkaWNhdGVk
IHdvcmtlcjogc2NoZW1lID0gaHR0cHMsIHZhbHVlID0gdW5kZWZpbmVkIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQogRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hl
bWUgPSBodHRwcywgdmFsdWUgPSAqIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdv
dCBmYWxzZQogRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBodHRwcywgdmFsdWUgPSBz
ZWxmIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVu
ZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGI0MzljZGM5NzM1Ni4uZGRj
OGZjMzE4NjFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC5odHRwcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC03LDUgKzcsNSBAQCBQQVNTIFNhbWUtb3JpZ2luIHBvcHVwIHdpdGggY29vcCB1bnNhZmUt
bm9uZSB3aXRob3V0IGNvZXAKIFBBU1MgaGlzdG9yaWNhbDogInNhbWUtc2l0ZSIgcG9wdXAgd2l0
aCBjb29wIHVuc2FmZS1ub25lIHdpdGhvdXQgY29lcAogUEFTUyBTYW1lLW9yaWdpbiBwb3B1cCB3
aXRob3V0IGNvZXAKIFBBU1MgaGlzdG9yaWNhbDogInNhbWUtc2l0ZSIgcG9wdXAgd2l0aG91dCBj
b2VwCi1GQUlMIEJvbnVzOiB3aW5kb3cuY3Jvc3NPcmlnaW5Jc29sYXRlZCBhc3NlcnRfdHJ1ZTog
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgQm9udXM6IHdpbmRvdy5jcm9zc09yaWdpbklz
b2xhdGVkCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA5YTMyNTVhNjlkMjkuLmY5
MmRkY2M4MDA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTkyMyw5ICsxOTIz
LDE1IEBAIGJvb2wgRE9NV2luZG93Ojppc1NlY3VyZUNvbnRleHQoKSBjb25zdAogCiBib29sIERP
TVdpbmRvdzo6Y3Jvc3NPcmlnaW5Jc29sYXRlZCgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IElt
cGxlbWVudGVkIHRoaXMuIFRoaXMgc2hvdWxkIHJldHVybiB0cnVlIGlmIENPT1AvQ09FUCBhcmUg
dXNlZCBhbmQgdGhlIHBhZ2UgaXMgYWxsb3dlZCB0byB1c2UgQVBJcwotICAgIC8vIHRoYXQgcmVx
dWlyZSBjcm9zcy1vcmlnaW4gaXNvbGF0aW9uIChlLmcuIFNoYXJlZEFycmF5QnVmZmVyKS4KLSAg
ICByZXR1cm4gZmFsc2U7CisgICAgYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwor
ICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8mIHNl
dHRpbmdzID0gZG9jdW1lbnQtPnNldHRpbmdzKCk7CisgICAgaWYgKCFzZXR0aW5ncy5jcm9zc09y
aWdpbk9wZW5lclBvbGljeUVuYWJsZWQoKSB8fCAhc2V0dGluZ3MuY3Jvc3NPcmlnaW5FbWJlZGRl
clBvbGljeUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGRv
Y3VtZW50LT50b3BEb2N1bWVudCgpLmNyb3NzT3JpZ2luT3BlbmVyUG9saWN5KCkudmFsdWUgPT0g
Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1ZTo6U2FtZU9yaWdpblBsdXNDT0VQOwogfQogCiBz
dGF0aWMgdm9pZCBkaWRBZGRTdG9yYWdlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cmIHdpbmRvdykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCA0MGY4NzQ3YjFkYWYuLjFiYzEzMDFjZmEw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtNzksOCArNzksNiBAQAogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBOYXZpZ2F0b3IgbmF2aWdhdG9yOwogICAgIC8vIEZJWE1FOiBUaGlz
IGlzIHNwZWNpZmllZCB0byBiZSBbU2VjdXJlQ29udGV4dF0KICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NQXBwbGljYXRpb25DYWNoZSBhcHBsaWNhdGlvbkNhY2hlOwotICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgJ29yaWdpbklzb2xhdGVkJwotICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29s
ZWFuIG9yaWdpbklzb2xhdGVkOwogCiAgICAgLy8gdXNlciBwcm9tcHRzCiAgICAgdW5kZWZpbmVk
IGFsZXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA1
ZmIzMDg5NTAxNTYuLjExY2Y2MTdmMTAxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCkBAIC01NjUzLDYgKzU2NTMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNz
LAogICAgICAgICAgICAgICAgIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3dhcHBp
bmcsICJkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZDogUHJvY2Vzcy1zd2FwcGluZyBkdWUg
dG8gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiKTsKICAgICAgICAgICAgICAgICBwb2xpY3lB
Y3Rpb24gPSBQb2xpY3lBY3Rpb246Oklnbm9yZTsKICAgICAgICAgICAgICAgICBhdXRvIHByb2Nl
c3NGb3JOYXZpZ2F0aW9uID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLnByb2Nlc3NGb3JSZWdp
c3RyYWJsZURvbWFpbih3ZWJzaXRlRGF0YVN0b3JlKCksIHRoaXMsIHJlc3BvbnNlRG9tYWluKTsK
KyAgICAgICAgICAgICAgICBwcm9jZXNzRm9yTmF2aWdhdGlvbi0+bWFya0FzQ3Jvc3NPcmlnaW5J
c29sYXRlZCgpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2Vz
cygqbmF2aWdhdGlvbiwgbnVsbHB0ciwgV1RGTW92ZShwcm9jZXNzRm9yTmF2aWdhdGlvbiksIFBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5vLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQ6Olllc0FmdGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lvbiwgbnVsbHB0cik7CiAgICAgICAgICAg
ICAgICAgd2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2VzcyA9IFdpbGxDb250aW51ZUxvYWRJbk5l
d1Byb2Nlc3M6OlllczsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQ4ZTZjNzNhYTZlOS4uZDc0ZThlMTQyNDRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTExNDYsNiAr
MTE0NiwxMSBAQCBib29sIFdlYlByb2Nlc3NQcm94eTo6Y2FuQmVBZGRlZFRvV2ViUHJvY2Vzc0Nh
Y2hlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAorICAgIGlmIChtX2lz
Q3Jvc3NPcmlnaW5Jc29sYXRlZCkgeworICAgICAgICBXRUJQUk9DRVNTUFJPWFlfUkVMRUFTRV9M
T0coUHJvY2VzcywgImNhbkJlQWRkZWRUb1dlYlByb2Nlc3NDYWNoZTogTm90IGFkZGluZyB0byBw
cm9jZXNzIGNhY2hlIGJlY2F1c2UgdGhlIHByb2Nlc3MgaXMgY3Jvc3Mtb3JpZ2luIGlzb2xhdGVk
Iik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICBpZiAoV2ViS2l0Ojppc0lu
c3BlY3RvclByb2Nlc3NQb29sKHByb2Nlc3NQb29sKCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKQEAgLTE4MjQsNiArMTgyOSwxMiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGFnZUlzQmVj
b21pbmdJbnZpc2libGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgaWRlbnRpZmllcgogICAgICAg
ICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlci0+bXV0ZSgpOwogfQogCit2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6bWFya0FzQ3Jvc3NPcmlnaW5Jc29sYXRlZCgpCit7CisgICAgbV9pc0Nyb3NzT3JpZ2lu
SXNvbGF0ZWQgPSB0cnVlOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6Ok1hcmtBc0Ny
b3NzT3JpZ2luSXNvbGF0ZWQoKSwgMCk7Cit9CisKICNpZiBQTEFURk9STShXQVRDSE9TKQogCiB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6c3RhcnRCYWNrZ3JvdW5kQWN0aXZpdHlGb3JGdWxsc2NyZWVu
SW5wdXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBh
NDBlNjlkZmE1MjIuLjI5Y2U1NTNmOWM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmgKQEAgLTQxOSw2ICs0MTksOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRD
YXB0aW9uTGFuZ3VhZ2UoY29uc3QgU3RyaW5nJik7CiAjZW5kaWYKIAorICAgIHZvaWQgbWFya0Fz
Q3Jvc3NPcmlnaW5Jc29sYXRlZCgpOworICAgIGJvb2wgaXNDcm9zc09yaWdpbklzb2xhdGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9pc0Nyb3NzT3JpZ2luSXNvbGF0ZWQ7IH0KKwogcHJvdGVjdGVkOgog
ICAgIFdlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3RvcmUqLCBJ
c1ByZXdhcm1lZCk7CiAKQEAgLTYyMCw2ICs2MjMsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBt
X2hhc0NvbW1pdHRlZEFueVByb3Zpc2lvbmFsTG9hZHMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9p
c1ByZXdhcm1lZDsKKyAgICBib29sIG1faXNDcm9zc09yaWdpbklzb2xhdGVkIHsgZmFsc2UgfTsK
ICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIGJvb2wgbV9oYXNJc3N1ZWRBdHRh
Y2htZW50RWxlbWVudFJlbGF0ZWRTYW5kYm94RXh0ZW5zaW9ucyB7IGZhbHNlIH07CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAyNzJiNTQ3ZmVkMzUu
LjIyZTQ4YmQ1NjViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApA
QCAtMjAzNyw2ICsyMDM3LDEyIEBAIHZvaWQgV2ViUHJvY2Vzczo6c2VuZFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhSW1tZWRpYXRlbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pCiB9CiAjZW5kaWYK
IAordm9pZCBXZWJQcm9jZXNzOjptYXJrQXNDcm9zc09yaWdpbklzb2xhdGVkKCkKK3sKKyAgICAv
LyBDcm9zcy1vcmlnaW4gaXNvbGF0ZWQgcHJvY2Vzc2VzICh2aWEgQ09PUC9DT0VQKSBhcmUgYWxs
b3dlZCB0byB1c2UgU2hhcmVkQXJyYXlCdWZmZXIuCisgICAgSlNDOjpPcHRpb25zOjp1c2VTaGFy
ZWRBcnJheUJ1ZmZlcigpID0gdHJ1ZTsKK30KKwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIHZv
aWQgV2ViUHJvY2Vzczo6c2V0VXNlR1BVUHJvY2Vzc0ZvckNhbnZhc1JlbmRlcmluZyhib29sIHVz
ZUdQVVByb2Nlc3NGb3JDYW52YXNSZW5kZXJpbmcpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaAppbmRleCA0NWEwMTczYjUyZDMuLmU5M2NhNmE1Y2MwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC00MDgsNiArNDA4LDggQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHByZXdhcm1HbG9iYWxseSgpOwogICAgIHZvaWQgcHJld2FybVdpdGhEb21haW5JbmZv
cm1hdGlvbihjb25zdCBXZWJDb3JlOjpQcmV3YXJtSW5mb3JtYXRpb24mKTsKIAorICAgIHZvaWQg
bWFya0FzQ3Jvc3NPcmlnaW5Jc29sYXRlZCgpOworCiAjaWYgVVNFKE9TX1NUQVRFKQogICAgIFJl
dGFpblB0cjxOU0RpY3Rpb25hcnk+IGFkZGl0aW9uYWxTdGF0ZUZvckRpYWdub3N0aWNSZXBvcnQo
KSBjb25zdCBmaW5hbDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBmYzUxODk5MzIwNTYuLmFiN2RiZjg3ZTc1YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAg
LTE1NSw2ICsxNTUsOCBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5v
dFJlZkNvdW50ZWQgewogICAgIFNldEJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSh1bnNpZ25lZCBj
YXBhY2l0eSk7CiAgICAgQ2xlYXJDYWNoZWRQYWdlKHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2Fy
ZEl0ZW1JZGVudGlmaWVyIGJhY2tGb3J3YXJkSXRlbUlEKSAtPiAoKSBBc3luYwogCisgICAgTWFy
a0FzQ3Jvc3NPcmlnaW5Jc29sYXRlZCgpCisKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KFdQRSkKICAgICBTZW5kTWVzc2FnZVRvV2ViRXh0ZW5zaW9uKHN0cnVjdCBXZWJLaXQ6OlVzZXJN
ZXNzYWdlIHVzZXJNZXNzYWdlKQogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436535</attachid>
            <date>2021-08-26 11:24:21 -0700</date>
            <delta_ts>2021-08-26 14:57:41 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>229559_COOP_reenable_SharedArrayBuffer_wip.patch</filename>
            <type>text/plain</type>
            <size>43321</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL3NlcmlhbGl6ZS1zaGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvc2VyaWFsaXplLXNoYXJlZGFycmF5YnVmZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggYWNjMDQ2NDYwM2IxLi42ZDBiYjY2ZmFmMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3NlcmlhbGl6ZS1z
aGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3NlcmlhbGl6ZS1z
aGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNSBA
QAogCi1GQUlMIEluZGV4ZWREQjogQXR0ZW1wdGluZyB0byBzZXJpYWxpemUgYSBTaGFyZWRBcnJh
eUJ1ZmZlciBzaG91bGQgdGhyb3cgYXNzZXJ0X3RydWU6IFRoZSBwYWdlIGlzIHNlcnZlZCB3aXRo
IENPT1AgYW5kIENPRVAsIGl0IHNob3VsZCBiZSBjcm9zcy1vcmlnaW4taXNvbGF0ZWQuIGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCitGQUlMIEluZGV4ZWREQjogQXR0ZW1wdGluZyB0byBzZXJpYWxp
emUgYSBTaGFyZWRBcnJheUJ1ZmZlciBzaG91bGQgdGhyb3cgYXNzZXJ0X3Rocm93c19kb206IGZ1
bmN0aW9uICIoKSA9PiB7CisgICAgICAgICAgICBycSA9IG9ialN0b3JlLnB1dCh7c2FiOiBzYWJ9
LCAna2V5Jyk7CisgICAgICAgIH0iIHRocmV3IG9iamVjdCAiRGF0YUVycm9yOiBGYWlsZWQgdG8g
c3RvcmUgcmVjb3JkIGluIGFuIElEQk9iamVjdFN0b3JlOiBUaGUgb2JqZWN0IHN0b3JlIHVzZXMg
aW4tbGluZSBrZXlzIGFuZCB0aGUga2V5IHBhcmFtZXRlciB3YXMgcHJvdmlkZWQuIiB0aGF0IGlz
IG5vdCBhIERPTUV4Y2VwdGlvbiBEYXRhQ2xvbmVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVx
dWFsIHRvIDAsIGV4cGVjdGVkIDI1CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5
L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmln
aW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBz
LWV4cGVjdGVkLnR4dAppbmRleCAzYjc3NjYxMzM4OTQuLmNlNzA5MDQyNjg1MiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkLXBlcm1pc3Npb24u
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdp
bi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMiBA
QAogCi1GQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9
IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZB
SUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6IG9yaWdp
biA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gc2VsZiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKFwpCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczov
LzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZAotUEFTUyBmcmFtZTogb3JpZ2luID0g
aHR0cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSAqCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBo
dHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHNlbGYKLVBBU1MgZnJhbWU6IG9yaWdpbiA9
IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMsIHZhbHVlID0gKFwpCitQQVNTIGZyYW1lOiBvcmlnaW4g
PSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZAorUEFTUyBmcmFtZTog
b3JpZ2luID0gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MywgdmFsdWUgPSAqCitQQVNTIGZyYW1lOiBv
cmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHNlbGYKK0ZBSUwgZnJhbWU6
IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0
cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSB1bmRlZmluZWQgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEy
Ny4wLjAuMTo5NDQzLCB2YWx1ZSA9ICogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0
IGdvdCB0cnVlCitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2
YWx1ZSA9IHNlbGYgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitG
QUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IChcKSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKIEZBSUwgZGVkaWNhdGVk
IHdvcmtlcjogc2NoZW1lID0gaHR0cHMsIHZhbHVlID0gdW5kZWZpbmVkIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQogRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hl
bWUgPSBodHRwcywgdmFsdWUgPSAqIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdv
dCBmYWxzZQogRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBodHRwcywgdmFsdWUgPSBz
ZWxmIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVu
ZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGI0MzljZGM5NzM1Ni4uZGRj
OGZjMzE4NjFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC5odHRwcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC03LDUgKzcsNSBAQCBQQVNTIFNhbWUtb3JpZ2luIHBvcHVwIHdpdGggY29vcCB1bnNhZmUt
bm9uZSB3aXRob3V0IGNvZXAKIFBBU1MgaGlzdG9yaWNhbDogInNhbWUtc2l0ZSIgcG9wdXAgd2l0
aCBjb29wIHVuc2FmZS1ub25lIHdpdGhvdXQgY29lcAogUEFTUyBTYW1lLW9yaWdpbiBwb3B1cCB3
aXRob3V0IGNvZXAKIFBBU1MgaGlzdG9yaWNhbDogInNhbWUtc2l0ZSIgcG9wdXAgd2l0aG91dCBj
b2VwCi1GQUlMIEJvbnVzOiB3aW5kb3cuY3Jvc3NPcmlnaW5Jc29sYXRlZCBhc3NlcnRfdHJ1ZTog
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgQm9udXM6IHdpbmRvdy5jcm9zc09yaWdpbklz
b2xhdGVkCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGY2
MWE0Y2RhZTI1ZC4uYzI4ZTU3OGVlMDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5jcHAKQEAgLTk0OCw2ICs5NDgsMTUgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVz
cG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmUK
ICAgICByZXNwb25zZVJlY2VpdmVkKHJlc3BvbnNlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiB9CiAKK3N0YXRpYyBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIHRvTmVlZHNC
cm93c2luZ0NvbnRleHRHcm91cFN3aXRjaChjb25zdCBzdGQ6Om9wdGlvbmFsPENyb3NzT3JpZ2lu
T3BlbmVyUG9saWN5RW5mb3JjZW1lbnRSZXN1bHQ+JiBjdXJyZW50Q29vcEVuZm9yY2VtZW50UmVz
dWx0KQoreworICAgIGlmICghY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdCB8fCAhY3VycmVu
dENvb3BFbmZvcmNlbWVudFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCkK
KyAgICAgICAgcmV0dXJuIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6Ok5vOworICAg
IGlmIChjdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0LT5jcm9zc09yaWdpbk9wZW5lclBvbGlj
eS52YWx1ZSA9PSBDcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpTYW1lT3JpZ2luUGx1c0NP
RVApCisgICAgICAgIHJldHVybiBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoOjpZZXNX
aXRoQ3Jvc3NPcmlnaW5Jc29sYXRpb247CisgICAgcmV0dXJuIE5lZWRzQnJvd3NpbmdDb250ZXh0
R3JvdXBTd2l0Y2g6Olllc1dpdGhvdXRDcm9zc09yaWdpbklzb2xhdGlvbjsKK30KKwogdm9pZCBE
b2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIEFTU0VSVChyZXNwb25zZS5jZXJ0aWZpY2F0ZUluZm8oKSk7CkBAIC0xMDQ4LDcgKzEw
NTcsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aQogICAgIGlmIChtYWluUmVzb3VyY2VMb2Fk
ZXIpCiAgICAgICAgIG1haW5SZXNvdXJjZUxvYWRlci0+bWFya0luQXN5bmNSZXNwb25zZVBvbGlj
eUNoZWNrKCk7CiAgICAgYXV0byByZXF1ZXN0SWRlbnRpZmllciA9IFBvbGljeUNoZWNrSWRlbnRp
Zmllcjo6Y3JlYXRlKCk7Ci0gICAgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
ID0gbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0ICYmIG1fY3VycmVudENvb3BFbmZvcmNl
bWVudFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaDsKKyAgICBhdXRvIG5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggPSB0b05lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2gobV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0KTsKICAgICBmcmFtZUxvYWRl
cigpLT5jaGVja0NvbnRlbnRQb2xpY3kobV9yZXNwb25zZSwgcmVxdWVzdElkZW50aWZpZXIsIG5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIG1haW5SZXNvdXJjZUxvYWRlciA9IFdURk1vdmUobWFpblJlc291cmNlTG9h
ZGVyKSwKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxl
ci5yZWxlYXNlKCksIHJlcXVlc3RJZGVudGlmaWVyXSAoUG9saWN5QWN0aW9uIHBvbGljeSwgUG9s
aWN5Q2hlY2tJZGVudGlmaWVyIHJlc3BvbnNlSWRlbnRpZmllcikgbXV0YWJsZSB7CiAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKHJlc3BvbnNlSWRlbnRpZmllci5pc1ZhbGlkRm9yKHJlcXVlc3RJZGVu
dGlmaWVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDk2NGUy
ZGQxMjA3MC4uMjZjOTY2MzlhZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmNwcApAQCAtODE2LDcgKzgxNiw3IEBAIHZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hTaG93KCkKIHsKIH0KIAotdm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJv
b2wsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikKK3ZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmLCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9u
JiYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1l
TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNs
aWVudC5oCmluZGV4IDEyMGE0YTUyMGJkMS4uM2NiYjMxMGEyZTJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTk2LDcgKzk2LDcgQEAg
cHJpdmF0ZToKICAgICBGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25B
Y3Rpb24mLCBOZXdGcmFtZU9wZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNo
b3coKSBmaW5hbDsKIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CisgICAgdm9pZCBkaXNwYXRj
aERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIE5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmlu
YWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwg
Y29uc3QgU3RyaW5nJiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9u
JiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBQb2xpY3lE
ZWNpc2lvbk1vZGUsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYm
KSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA3YWE3NmFjNmQxZWIuLjZiMDIzNjFhMWI1NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC00MTMsNyArNDEzLDcgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKICAgICB9CiB9
CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wg
bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVu
Y3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggbmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlv
bikKIHsKICAgICBpZiAoIWFjdGl2ZURvY3VtZW50TG9hZGVyKCkpIHsKICAgICAgICAgLy8gTG9h
ZCB3YXMgY2FuY2VsbGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGU1NmMw
OGY3MDM2YS4uNzk4OThhNjRhNGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApA
QCAtMjIwLDcgKzIyMCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhi
b29sKTsKIAotICAgIHZvaWQgY2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJik7CisgICAgdm9pZCBjaGVj
a0NvbnRlbnRQb2xpY3koY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIFBvbGljeUNoZWNrSWRlbnRp
ZmllciwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lz
aW9uRnVuY3Rpb24mJik7CiAKICAgICB2b2lkIGRpZEV4cGxpY2l0T3BlbigpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDM5YmI0MDU0MDljNC4uMjY4
NDMxYTVkOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApA
QCAtMTkwLDcgKzE5MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEZyYW1lKiBkaXNwYXRjaENy
ZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIE5ld0ZyYW1lT3BlbmVyUG9saWN5KSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoU2hvdygpID0gMDsKIAotICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBkb3dubG9hZEF0dHJpYnV0ZSwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJh
bWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgUG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5h
dmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBQb2xpY3lEZWNpc2lvbk1vZGUs
IFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlclR5cGVzLmgKaW5kZXggYzUxNWJhZTRkMjE4Li5jZGQwMTA0MTA2NTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaApAQCAtMTY3LDYgKzE2Nywx
MiBAQCBlbnVtIGNsYXNzIFVubG9hZEV2ZW50UG9saWN5IHsKICAgICBVbmxvYWRBbmRQYWdlSGlk
ZQogfTsKIAorZW51bSBjbGFzcyBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIDogdWlu
dDhfdCB7CisgICAgTm8sCisgICAgWWVzV2l0aG91dENyb3NzT3JpZ2luSXNvbGF0aW9uLAorICAg
IFllc1dpdGhDcm9zc09yaWdpbklzb2xhdGlvbiwKK307CisKIC8vIFBhc3NlZCB0byBGcmFtZUxv
YWRlcjo6dXJsU2VsZWN0ZWQoKSBhbmQgU2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZUlmSmF2YVNj
cmlwdFVSTCgpCiAvLyB0byBjb250cm9sIHdoZXRoZXIsIGluIHRoZSBjYXNlIG9mIGEgSmF2YVNj
cmlwdCBVUkwsIGV4ZWN1dGVJZkphdmFTY3JpcHRVUkwoKSBzaG91bGQKIC8vIHJlcGxhY2UgdGhl
IGRvY3VtZW50LiBJdCBpcyBhIEZJWE1FIHRvIGVsaW1pbmF0ZSB0aGlzIGV4dHJhIHBhcmFtZXRl
ciBmcm9tCkBAIC0yNzYsNiArMjgyLDE1IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
V2ViQ29yZTo6UG9saWN5QWN0aW9uPiB7CiAgICAgPjsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaD4gewor
ICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6Ok5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsCisgICAgICAgIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdD
b250ZXh0R3JvdXBTd2l0Y2g6Ok5vLAorICAgICAgICBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5nQ29u
dGV4dEdyb3VwU3dpdGNoOjpZZXNXaXRob3V0Q3Jvc3NPcmlnaW5Jc29sYXRpb24sCisgICAgICAg
IFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6Olllc1dpdGhDcm9zc09y
aWdpbklzb2xhdGlvbgorICAgID47Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k+IHsKICAgICB1c2luZyB2YWx1
ZXMgPSBFbnVtVmFsdWVzPAogICAgICAgICBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDlhMzI1NWE2OWQyOS4uZjky
ZGRjYzgwMDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xOTIzLDkgKzE5MjMs
MTUgQEAgYm9vbCBET01XaW5kb3c6OmlzU2VjdXJlQ29udGV4dCgpIGNvbnN0CiAKIGJvb2wgRE9N
V2luZG93Ojpjcm9zc09yaWdpbklzb2xhdGVkKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogSW1w
bGVtZW50ZWQgdGhpcy4gVGhpcyBzaG91bGQgcmV0dXJuIHRydWUgaWYgQ09PUC9DT0VQIGFyZSB1
c2VkIGFuZCB0aGUgcGFnZSBpcyBhbGxvd2VkIHRvIHVzZSBBUElzCi0gICAgLy8gdGhhdCByZXF1
aXJlIGNyb3NzLW9yaWdpbiBpc29sYXRpb24gKGUuZy4gU2hhcmVkQXJyYXlCdWZmZXIpLgotICAg
IHJldHVybiBmYWxzZTsKKyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7Cisg
ICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byYgc2V0
dGluZ3MgPSBkb2N1bWVudC0+c2V0dGluZ3MoKTsKKyAgICBpZiAoIXNldHRpbmdzLmNyb3NzT3Jp
Z2luT3BlbmVyUG9saWN5RW5hYmxlZCgpIHx8ICFzZXR0aW5ncy5jcm9zc09yaWdpbkVtYmVkZGVy
UG9saWN5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gZG9j
dW1lbnQtPnRvcERvY3VtZW50KCkuY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3koKS52YWx1ZSA9PSBD
cm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpTYW1lT3JpZ2luUGx1c0NPRVA7CiB9CiAKIHN0
YXRpYyB2b2lkIGRpZEFkZFN0b3JhZ2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyYgd2luZG93KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDQwZjg3NDdiMWRhZi4uMWJjMTMwMWNmYTBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC03OSw4ICs3OSw2IEBACiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIE5hdmlnYXRvciBuYXZpZ2F0b3I7CiAgICAgLy8gRklYTUU6IFRoaXMg
aXMgc3BlY2lmaWVkIHRvIGJlIFtTZWN1cmVDb250ZXh0XQogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01BcHBsaWNhdGlvbkNhY2hlIGFwcGxpY2F0aW9uQ2FjaGU7Ci0gICAgLy8gRklYTUU6IElt
cGxlbWVudCAnb3JpZ2luSXNvbGF0ZWQnCi0gICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xl
YW4gb3JpZ2luSXNvbGF0ZWQ7CiAKICAgICAvLyB1c2VyIHByb21wdHMKICAgICB1bmRlZmluZWQg
YWxlcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGZi
MjM0N2Q1Zjg5Yy4uMmYxM2Y0YmY3YWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKQEAgLTcxOSw2ICs3MTksNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBl
KToKICAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMnOiBbJzxX
ZWJDb3JlL01lZGlhUGxheWVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNZXNzYWdlUG9ydENo
YW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHknOiBbJzxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5JzogWyc8
V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24nOiBbJzxX
ZWJDb3JlL05ldHdvcmtMb2FkSW5mb3JtYXRpb24uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBh
c3RlYm9hcmRDdXN0b21EYXRhJzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCiAgICAgICAg
ICdXZWJDb3JlOjpQYXN0ZWJvYXJkSW1hZ2UnOiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4nXSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApp
bmRleCA0MWNkMzVkYmZhOGQuLjk5ZTUxNjUwZDMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApAQCAtMzMwLDcgKzMzMCw3IEBAIHZv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25B
c3luYyhGcmFtZUlkZW50aWZpZXIKICAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFt
ZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgV1RGTW92
ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIFdURk1vdmUob3JpZ2luYXRpbmdGcmFtZUluZm8pLCBv
cmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZN
b3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIGxp
c3RlbmVySUQpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1l
SW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlN
RVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5
SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWlu
dDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2Fk
QXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBOZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIXZh
bGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKaW5kZXggMjcx
NGIyYTViNTQ3Li5kNDkwNzBlNzNlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtMTI0LDcgKzEyNCw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBzZW5kTWVzc2FnZShVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYmLCBPcHRpb25TZXQ8SVBD
OjpTZW5kT3B0aW9uPiwgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8Q29tcGxldGlvbkhhbmRsZXI8
dm9pZChJUEM6OkRlY29kZXIqKT4sIHVpbnQ2NF90Pj4mJikgZmluYWw7CiAKICAgICB2b2lkIGRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEm
JiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlm
aWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBv
cmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRh
UmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRp
cmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAg
IHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBG
cmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmlu
ZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJv
b2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwg
Y29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hv
d01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93
ZWRCeUluamVjdGVkQnVuZGxlLCBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dp
dGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGlk
Q2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwogICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJl
ZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3Rp
bmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlk
UmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggNWZiMzA4OTUwMTU2Li40YzE0OGY3ODUxOGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTYxNywxMiArNTYxNywxMiBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBGcmFtZQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFt
ZUluZm8sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYg
ZG93bmxvYWRBdHRyaWJ1dGUsCi0gICAgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwg
Ym9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklE
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCisgICAgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3Rl
ZEJ1bmRsZSwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCBuZWVkc0Jyb3dzaW5nQ29u
dGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCiB7CiAgICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNv
cHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRlbnRp
ZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBk
b3dubG9hZEF0dHJpYnV0ZSwgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIG5lZWRzQnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2gsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVudGlm
aWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5T
aG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxs
b3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVudGlm
aWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5T
aG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxs
b3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggbmVl
ZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3Qg
VXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9y
KHBhZ2VDbGllbnQoKSk7CiAKQEAgLTU2NDYsMTYgKzU2NDYsMTkgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYg
cHJvY2VzcywKICAgICAgICAgfSk7CiAKICAgICAgICAgYXV0byB3aWxsQ29udGludWVMb2FkSW5O
ZXdQcm9jZXNzID0gV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6Tm87Ci0gICAgICAgIGlm
IChwb2xpY3lBY3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYgbmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaCAmJiBuYXZpZ2F0aW9uKSB7Ci0gICAgICAgICAgICBSZWdpc3RyYWJsZURv
bWFpbiByZXNwb25zZURvbWFpbiB7IG5hdmlnYXRpb25SZXNwb25zZS0+cmVzcG9uc2UoKS51cmwo
KSB9OwotICAgICAgICAgICAgLy8gQXZvaWQgcHJvY2Vzcy1zd2FwcGluZyBpbiBjYXNlcyB3aGVy
ZSB0aGUgcHJvY2VzcyBvbmx5IGNvbnRhaW5zIGEgc2luZ2xlIHBhZ2UgYW5kIGlzIG9yaWdpbi1j
bGVhbi4KLSAgICAgICAgICAgIGlmICh0aGlzLT5wcm9jZXNzKCkucGFnZUNvdW50KCkgPiAxIHx8
ICh0aGlzLT5wcm9jZXNzKCkub3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbigpICYmICp0aGlzLT5w
cm9jZXNzKCkub3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbigpICE9IHJlc3BvbnNlRG9tYWluKSkg
eworICAgICAgICBpZiAocG9saWN5QWN0aW9uID09IFBvbGljeUFjdGlvbjo6VXNlICYmIG5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggIT0gTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaDo6Tm8gJiYgbmF2aWdhdGlvbikgeworICAgICAgICAgICAgLy8gQXZvaWQgcHJvY2Vzcy1z
d2FwcGluZyBpbiBjYXNlcyB3aGVyZSB0aGUgcHJvY2VzcyBvbmx5IGNvbnRhaW5zIGEgc2luZ2xl
IHBhZ2UgYW5kIHRoZSBwcm9jZXNzIGhhcyBub3QgbG9hZGVkIGFueSBvcmlnaW4geWV0LgorICAg
ICAgICAgICAgaWYgKHRoaXMtPnByb2Nlc3MoKS5wYWdlQ291bnQoKSA+IDEgfHwgdGhpcy0+cHJv
Y2VzcygpLm9wdGlvbmFsUmVnaXN0cmFibGVEb21haW4oKSkgewogICAgICAgICAgICAgICAgIFdF
QlBBR0VQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3dhcHBpbmcsICJkZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZVNoYXJlZDogUHJvY2Vzcy1zd2FwcGluZyBkdWUgdG8gQ3Jvc3MtT3JpZ2luLU9wZW5l
ci1Qb2xpY3kiKTsKICAgICAgICAgICAgICAgICBwb2xpY3lBY3Rpb24gPSBQb2xpY3lBY3Rpb246
Oklnbm9yZTsKKyAgICAgICAgICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZXNwb25zZURvbWFp
biB7IG5hdmlnYXRpb25SZXNwb25zZS0+cmVzcG9uc2UoKS51cmwoKSB9OwogICAgICAgICAgICAg
ICAgIGF1dG8gcHJvY2Vzc0Zvck5hdmlnYXRpb24gPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCku
cHJvY2Vzc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHdlYnNpdGVEYXRhU3RvcmUoKSwgdGhpcywgcmVz
cG9uc2VEb21haW4pOworICAgICAgICAgICAgICAgIGlmIChuZWVkc0Jyb3dzaW5nQ29udGV4dEdy
b3VwU3dpdGNoID09IE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6Olllc1dpdGhDcm9z
c09yaWdpbklzb2xhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0Zvck5hdmlnYXRp
b24tPm1hcmtBc0Nyb3NzT3JpZ2luSXNvbGF0ZWQoKTsKICAgICAgICAgICAgICAgICBjb250aW51
ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoKm5hdmlnYXRpb24sIG51bGxwdHIsIFdURk1vdmUocHJv
Y2Vzc0Zvck5hdmlnYXRpb24pLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OjpObywgU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24s
IG51bGxwdHIpOwogICAgICAgICAgICAgICAgIHdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3Mg
PSBXaWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzOjpZZXM7Ci0gICAgICAgICAgICB9CisgICAg
ICAgICAgICB9IGVsc2UgaWYgKG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggPT0gTmVl
ZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaDo6WWVzV2l0aENyb3NzT3JpZ2luSXNvbGF0aW9u
KQorICAgICAgICAgICAgICAgIHByb2Nlc3MtPm1hcmtBc0Nyb3NzT3JpZ2luSXNvbGF0ZWQoKTsK
ICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihwb2xp
Y3lBY3Rpb24sIG5hdmlnYXRpb24uZ2V0KCksIG51bGxwdHIsIFdURk1vdmUobmF2aWdhdGlvblJl
c3BvbnNlKSwgV1RGTW92ZShzZW5kZXIpLCB7IH0sIHdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nl
c3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBlYTFjMjJmYjZi
MTEuLjAwYTk1NzQzNWFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTE3NDEsNyArMTc0MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5h
dmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYk5hdmln
YXRpb25EYXRhU3RvcmUmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlk
Q2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYp
OwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZy
YW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxXZWJQYWdl
UHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3Rl
bmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBj
b25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVk
QnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9v
bCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wg
d2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0
R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAg
dm9pZCBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYpOwogICAgIHZv
aWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGlu
ZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6
OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9B
cHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgV2Vi
Q29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgV2ViQ29yZTo6U3Vic3RpdHV0ZURh
dGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CiAgICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhO
YXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2Vi
Q29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRh
LCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0Rh
dGE+JiYgPSBzdGQ6Om51bGxvcHQpOwpAQCAtMjA2MCw3ICsyMDYwLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBO
YXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVz
ZXJEYXRhJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCi0gICAgICAgIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNo
b3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxv
d2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgICAgICBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUs
IGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdD
b250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7
CiAgICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOwogICAg
IHZvaWQgYmVnaW5TYWZlQnJvd3NpbmdDaGVjayhjb25zdCBVUkwmLCBib29sLCBXZWJGcmFtZVBv
bGljeUxpc3RlbmVyUHJveHkmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGJjMzdiOGZjNmFkZi4uNDlkM2QzYTI1Nzg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CkBAIC0xMDcsNyArMTA3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgog
CiAgICAgIyBQb2xpY3kgbWVzc2FnZXMKLSAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0
YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hv
d01JTUVUeXBlLCBTdHJpbmcgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5q
ZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0
X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdl
YktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJpbmcgZG93bmxvYWRBdHRyaWJ1dGUsIGJv
b2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGVudW06dWludDhfdCBXZWJDb3JlOjpOZWVk
c0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0
Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAg
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZp
Z2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGlu
Z0ZyYW1lSW5mb0RhdGEsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlm
aWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFs
UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFS
ZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RS
ZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkK
ICAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgc3RydWN0IFdlYktpdDo6RnJhbWVJ
bmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lD
aGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2
aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZy
YW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYktp
dDo6V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEp
IC0+IChzdHJ1Y3QgV2ViS2l0OjpQb2xpY3lEZWNpc2lvbiBQb2xpY3lEZWNpc2lvbikgU3luY2hy
b25vdXMKICAgICBEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZv
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBz
dHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBmcmFtZU5hbWUsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBkOGU2YzczYWE2ZTkuLmQ3NGU4
ZTE0MjQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CkBAIC0xMTQ2LDYgKzExNDYsMTEgQEAgYm9vbCBXZWJQcm9jZXNzUHJveHk6OmNhbkJlQWRkZWRU
b1dlYlByb2Nlc3NDYWNoZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAK
KyAgICBpZiAobV9pc0Nyb3NzT3JpZ2luSXNvbGF0ZWQpIHsKKyAgICAgICAgV0VCUFJPQ0VTU1BS
T1hZX1JFTEVBU0VfTE9HKFByb2Nlc3MsICJjYW5CZUFkZGVkVG9XZWJQcm9jZXNzQ2FjaGU6IE5v
dCBhZGRpbmcgdG8gcHJvY2VzcyBjYWNoZSBiZWNhdXNlIHRoZSBwcm9jZXNzIGlzIGNyb3NzLW9y
aWdpbiBpc29sYXRlZCIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgaWYg
KFdlYktpdDo6aXNJbnNwZWN0b3JQcm9jZXNzUG9vbChwcm9jZXNzUG9vbCgpKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCkBAIC0xODI0LDYgKzE4MjksMTIgQEAgdm9pZCBXZWJQcm9jZXNzUHJv
eHk6OnBhZ2VJc0JlY29taW5nSW52aXNpYmxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIGlkZW50
aWZpZXIKICAgICAgICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXItPm11dGUoKTsKIH0KIAordm9p
ZCBXZWJQcm9jZXNzUHJveHk6Om1hcmtBc0Nyb3NzT3JpZ2luSXNvbGF0ZWQoKQoreworICAgIG1f
aXNDcm9zc09yaWdpbklzb2xhdGVkID0gdHJ1ZTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzOjpNYXJrQXNDcm9zc09yaWdpbklzb2xhdGVkKCksIDApOworfQorCiAjaWYgUExBVEZPUk0o
V0FUQ0hPUykKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnN0YXJ0QmFja2dyb3VuZEFjdGl2aXR5
Rm9yRnVsbHNjcmVlbklucHV0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmgKaW5kZXggYTQwZTY5ZGZhNTIyLi4yOWNlNTUzZjljNTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC00MTksNiArNDE5LDkgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0Q2FwdGlvbkxhbmd1YWdlKGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiAKKyAg
ICB2b2lkIG1hcmtBc0Nyb3NzT3JpZ2luSXNvbGF0ZWQoKTsKKyAgICBib29sIGlzQ3Jvc3NPcmln
aW5Jc29sYXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDcm9zc09yaWdpbklzb2xhdGVkOyB9CisK
IHByb3RlY3RlZDoKICAgICBXZWJQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmLCBXZWJzaXRl
RGF0YVN0b3JlKiwgSXNQcmV3YXJtZWQpOwogCkBAIC02MjAsNiArNjIzLDcgQEAgcHJpdmF0ZToK
IAogICAgIGJvb2wgbV9oYXNDb21taXR0ZWRBbnlQcm92aXNpb25hbExvYWRzIHsgZmFsc2UgfTsK
ICAgICBib29sIG1faXNQcmV3YXJtZWQ7CisgICAgYm9vbCBtX2lzQ3Jvc3NPcmlnaW5Jc29sYXRl
ZCB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBib29sIG1f
aGFzSXNzdWVkQXR0YWNobWVudEVsZW1lbnRSZWxhdGVkU2FuZGJveEV4dGVuc2lvbnMgeyBmYWxz
ZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA3MjMxNWE1
NzU4NzMuLjE2YTVmNjQ2MDhiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBA
IC04MTYsNyArODE2LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hTaG93
KCkKICAgICB3ZWJQYWdlLT5zaG93KCk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1
dGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5j
dGlvbiYmIGZ1bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgTmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBG
cmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAgYXV0byogd2ViUGFnZSA9IG1f
ZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAoIXdlYlBhZ2UpIHsKQEAgLTgzNyw3ICs4MzcsNyBAQCB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNl
KGNvbnN0IFJlc291cmNlUmVzcG9ucwogICAgIFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvbiBwb2xp
Y3kgPSB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZVBvbGljeUNsaWVudCgpLmRlY2lkZVBvbGljeUZv
clJlc3BvbnNlKHdlYlBhZ2UsIG1fZnJhbWUucHRyKCksIHJlc3BvbnNlLCByZXF1ZXN0LCB1c2Vy
RGF0YSk7CiAgICAgLy8gSWYgYSBicm93c2luZyBjb250ZXh0IHN3aXRjaCBpcyByZXF1ZXN0ZWQs
IHdlIHN0aWxsIG5lZWQgdG8gc2VuZCB0aGUgSVBDIHRvIHRoZSBVSVByb2Nlc3MgaW4gb3JkZXIg
dG8gcHJvY2Vzcy1zd2FwIGlmIG5lY2Vzc2FyeSwgZXZlbiB0aG91Z2ggdGhlCiAgICAgLy8gaW5q
ZWN0ZWQgYnVuZGxlIGhhcyBhbHJlYWR5IGhhbmRsZWQgdGhlIHBvbGljeSBkZWNpc2lvbi4KLSAg
ICBpZiAocG9saWN5ID09IFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvblVzZSAmJiAhbmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCkgeworICAgIGlmIChwb2xpY3kgPT0gV0tCdW5kbGVQYWdl
UG9saWN5QWN0aW9uVXNlICYmIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggPT0gTmVl
ZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaDo6Tm8pIHsKICAgICAgICAgV0VCRlJBTUVMT0FE
RVJDTElFTlRfUkVMRUFTRV9MT0coTmV0d29yaywgImRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2U6IGNvbnRpbnVpbmcgYmVjYXVzZSBpbmplY3RlZCBidW5kbGUgc2F5cyBzbyIpOwogICAg
ICAgICBmdW5jdGlvbihQb2xpY3lBY3Rpb246OlVzZSwgaWRlbnRpZmllcik7CiAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggOTY2NmQ2N2Y4NjIwLi41MWQ2
YzEyMzhmMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMjksNyArMTI5LDcg
QEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0
IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBXZWJDb3JlOjpOZXdGcmFtZU9wZW5lclBvbGlj
eSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKICAgICAKLSAgICB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4
dEdyb3VwU3dpdGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAg
IHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpOZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZp
bmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29u
c3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24m
JikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVz
cG9uc2UsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIFdlYkNvcmU6OlBvbGljeURlY2lzaW9uTW9kZSwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0
aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAyNzJiNTQ3ZmVkMzUuLjIyZTQ4
YmQ1NjViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMjAz
Nyw2ICsyMDM3LDEyIEBAIHZvaWQgV2ViUHJvY2Vzczo6c2VuZFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhSW1tZWRpYXRlbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pCiB9CiAjZW5kaWYKIAordm9p
ZCBXZWJQcm9jZXNzOjptYXJrQXNDcm9zc09yaWdpbklzb2xhdGVkKCkKK3sKKyAgICAvLyBDcm9z
cy1vcmlnaW4gaXNvbGF0ZWQgcHJvY2Vzc2VzICh2aWEgQ09PUC9DT0VQKSBhcmUgYWxsb3dlZCB0
byB1c2UgU2hhcmVkQXJyYXlCdWZmZXIuCisgICAgSlNDOjpPcHRpb25zOjp1c2VTaGFyZWRBcnJh
eUJ1ZmZlcigpID0gdHJ1ZTsKK30KKwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIHZvaWQgV2Vi
UHJvY2Vzczo6c2V0VXNlR1BVUHJvY2Vzc0ZvckNhbnZhc1JlbmRlcmluZyhib29sIHVzZUdQVVBy
b2Nlc3NGb3JDYW52YXNSZW5kZXJpbmcpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAppbmRleCA0NWEwMTczYjUyZDMuLmU5M2NhNmE1Y2MwYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC00MDgsNiArNDA4LDggQEAgcHJpdmF0ZToKICAgICB2b2lk
IHByZXdhcm1HbG9iYWxseSgpOwogICAgIHZvaWQgcHJld2FybVdpdGhEb21haW5JbmZvcm1hdGlv
bihjb25zdCBXZWJDb3JlOjpQcmV3YXJtSW5mb3JtYXRpb24mKTsKIAorICAgIHZvaWQgbWFya0Fz
Q3Jvc3NPcmlnaW5Jc29sYXRlZCgpOworCiAjaWYgVVNFKE9TX1NUQVRFKQogICAgIFJldGFpblB0
cjxOU0RpY3Rpb25hcnk+IGFkZGl0aW9uYWxTdGF0ZUZvckRpYWdub3N0aWNSZXBvcnQoKSBjb25z
dCBmaW5hbDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbgppbmRleCBmYzUxODk5MzIwNTYuLmFiN2RiZjg3ZTc1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTE1NSw2
ICsxNTUsOCBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5vdFJlZkNv
dW50ZWQgewogICAgIFNldEJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSh1bnNpZ25lZCBjYXBhY2l0
eSk7CiAgICAgQ2xlYXJDYWNoZWRQYWdlKHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1J
ZGVudGlmaWVyIGJhY2tGb3J3YXJkSXRlbUlEKSAtPiAoKSBBc3luYwogCisgICAgTWFya0FzQ3Jv
c3NPcmlnaW5Jc29sYXRlZCgpCisKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkK
ICAgICBTZW5kTWVzc2FnZVRvV2ViRXh0ZW5zaW9uKHN0cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdl
IHVzZXJNZXNzYWdlKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAwNTE2
MjcwMDlhNjYuLjRjNDdkNDI2ZWFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0x
MjcsNyArMTI3LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVh
dGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBXZWJDb3JlOjpOZXdGcmFt
ZU9wZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKIAot
ICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmlu
YWw7CisgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rp
b24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIGZy
YW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBv
bGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lE
ZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJh
bWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDBjZmJlZWUwNDQ3ZC4uYWFk
ZjRlNzAwNGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtODU1LDcgKzg1NSw3
IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygpCiAgICAgW1t3ZWJW
aWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3U2hvdzp3ZWJWaWV3XTsKIH0KIAotdm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIg
aWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3Vw
U3dpdGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3Vw
U3dpdGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAg
V2ViVmlldyAqd2ViVmlldyA9IGdldFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBjNWFmYTEzMzdkYjQuLmFmMWMwMjlhYWU1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNTE5LDcgKzUxOSw3IEBAIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygpCiAgICAgICAgIHVpLT53ZWJWaWV3
U2hvdyh3ZWJWaWV3KTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4
dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
LCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYg
ZnVuY3Rpb24pCiB7CiAgICAgV2ViVmlldyogd2ViVmlldyA9IG1fd2ViRnJhbWUtPndlYlZpZXco
KTsKICAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShtX3dlYkZyYW1lKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oCmluZGV4IDYxNDY1YzExZmMyNS4uNTQ1NGZiYmRiMzU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlz
cGF0Y2hEaWRGaW5pc2hMb2FkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlYWNo
TGF5b3V0TWlsZXN0b25lKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+KSBvdmVy
cmlkZTsKIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rp
b24mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNl
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYs
IFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1l
UG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGlj
eUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgY29uc3Qg
V1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRp
b25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUq
LCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKICAgICB2b2lk
IGNhbmNlbFBvbGljeUNoZWNrKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5k
ZXggMWRlY2YzMDczYWFmLi5hMTE1NjhjNWFlM2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAK
QEAgLTYzNCw2ICs2MzQsMTEgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxQcm92
aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmUKICAgICBpZiAoIWlu
amVjdGVkQnVuZGxlLmlzVGVzdFJ1bm5pbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8g
V2hlbiBwcm9jZXNzIHN3YXBwaW5nIG9uIHJlc291cmNlIHJlc3BvbnNlLCB0aGUgcHJldmlvdXMg
cHJvY2VzcydzIGxvYWQgZ2V0cyBpbnRlcnJ1cHRlZCBieSBwb2xpY3kgZGVjaXNpb24KKyAgICAv
LyBidXQgd2UgZG9uJ3Qgd2FudCB0byBpbnRlcnJ1cHQgdGhlIHRlc3QuCisgICAgaWYgKFdLRXJy
b3JHZXRFcnJvckNvZGUoZXJyb3IpID09IGtXS0Vycm9yQ29kZUZyYW1lTG9hZEludGVycnVwdGVk
QnlQb2xpY3lDaGFuZ2UgJiYgV0tCdW5kbGVGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSAmJiAhbV9k
aWRDb21taXRMb2FkRm9yTWFpbkZyYW1lICYmIGluamVjdGVkQnVuZGxlLnBhZ2UoKSA9PSB0aGlz
KQorICAgICAgICByZXR1cm47CisKICAgICBpZiAoaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigp
LT5zaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKICAgICAgICAgZHVtcExvYWRFdmVu
dChmcmFtZSwgImRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3IiKTsKICAgICAgICAgYXV0
byBjb2RlID0gV0tFcnJvckdldEVycm9yQ29kZShlcnJvcik7CkBAIC02NTIsNiArNjU3LDkgQEAg
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENvbW1pdExvYWRGb3JGcmFtZShXS0J1bmRsZUZy
YW1lUmVmIGZyYW1lKQogICAgIGlmICghaW5qZWN0ZWRCdW5kbGUuaXNUZXN0UnVubmluZygpKQog
ICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoV0tCdW5kbGVGcmFtZUlzTWFpbkZyYW1lKGZyYW1l
KSkKKyAgICAgICAgbV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lID0gdHJ1ZTsKKwogICAgIGlm
ICghaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJh
Y2tzKCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKaW5kZXggMzE0ODhh
NTJiNWNlLi5hZDY2MjgwMjhlNWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaApAQCAtMTgwLDYgKzE4
MCw3IEBAIHByaXZhdGU6CiAKICAgICBXS0J1bmRsZVBhZ2VSZWYgbV9wYWdlOwogICAgIFdLUmV0
YWluUHRyPFdLQnVuZGxlU2NyaXB0V29ybGRSZWY+IG1fd29ybGQ7CisgICAgYm9vbCBtX2RpZENv
bW1pdExvYWRGb3JNYWluRnJhbWUgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RS
Cg==
</data>
<flag name="commit-queue"
          id="459620"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436573</attachid>
            <date>2021-08-26 14:57:41 -0700</date>
            <delta_ts>2021-08-26 15:49:53 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>229559_COOP_reenable_SharedArrayBuffer_wip.patch</filename>
            <type>text/plain</type>
            <size>45609</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL3NlcmlhbGl6ZS1zaGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvc2VyaWFsaXplLXNoYXJlZGFycmF5YnVmZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggYWNjMDQ2NDYwM2IxLi42ZDBiYjY2ZmFmMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3NlcmlhbGl6ZS1z
aGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3NlcmlhbGl6ZS1z
aGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNSBA
QAogCi1GQUlMIEluZGV4ZWREQjogQXR0ZW1wdGluZyB0byBzZXJpYWxpemUgYSBTaGFyZWRBcnJh
eUJ1ZmZlciBzaG91bGQgdGhyb3cgYXNzZXJ0X3RydWU6IFRoZSBwYWdlIGlzIHNlcnZlZCB3aXRo
IENPT1AgYW5kIENPRVAsIGl0IHNob3VsZCBiZSBjcm9zcy1vcmlnaW4taXNvbGF0ZWQuIGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCitGQUlMIEluZGV4ZWREQjogQXR0ZW1wdGluZyB0byBzZXJpYWxp
emUgYSBTaGFyZWRBcnJheUJ1ZmZlciBzaG91bGQgdGhyb3cgYXNzZXJ0X3Rocm93c19kb206IGZ1
bmN0aW9uICIoKSA9PiB7CisgICAgICAgICAgICBycSA9IG9ialN0b3JlLnB1dCh7c2FiOiBzYWJ9
LCAna2V5Jyk7CisgICAgICAgIH0iIHRocmV3IG9iamVjdCAiRGF0YUVycm9yOiBGYWlsZWQgdG8g
c3RvcmUgcmVjb3JkIGluIGFuIElEQk9iamVjdFN0b3JlOiBUaGUgb2JqZWN0IHN0b3JlIHVzZXMg
aW4tbGluZSBrZXlzIGFuZCB0aGUga2V5IHBhcmFtZXRlciB3YXMgcHJvdmlkZWQuIiB0aGF0IGlz
IG5vdCBhIERPTUV4Y2VwdGlvbiBEYXRhQ2xvbmVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVx
dWFsIHRvIDAsIGV4cGVjdGVkIDI1CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5
L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmln
aW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBz
LWV4cGVjdGVkLnR4dAppbmRleCAzYjc3NjYxMzM4OTQuLmNlNzA5MDQyNjg1MiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkLXBlcm1pc3Npb24u
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdp
bi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMiBA
QAogCi1GQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9
IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZB
SUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6IG9yaWdp
biA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gc2VsZiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKFwpCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczov
LzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZAotUEFTUyBmcmFtZTogb3JpZ2luID0g
aHR0cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSAqCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBo
dHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHNlbGYKLVBBU1MgZnJhbWU6IG9yaWdpbiA9
IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMsIHZhbHVlID0gKFwpCitQQVNTIGZyYW1lOiBvcmlnaW4g
PSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZAorUEFTUyBmcmFtZTog
b3JpZ2luID0gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MywgdmFsdWUgPSAqCitQQVNTIGZyYW1lOiBv
cmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHNlbGYKK0ZBSUwgZnJhbWU6
IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0
cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSB1bmRlZmluZWQgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEy
Ny4wLjAuMTo5NDQzLCB2YWx1ZSA9ICogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0
IGdvdCB0cnVlCitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2
YWx1ZSA9IHNlbGYgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitG
QUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IChcKSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKIEZBSUwgZGVkaWNhdGVk
IHdvcmtlcjogc2NoZW1lID0gaHR0cHMsIHZhbHVlID0gdW5kZWZpbmVkIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQogRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hl
bWUgPSBodHRwcywgdmFsdWUgPSAqIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdv
dCBmYWxzZQogRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBodHRwcywgdmFsdWUgPSBz
ZWxmIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVu
ZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGI0MzljZGM5NzM1Ni4uZGRj
OGZjMzE4NjFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC5odHRwcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC03LDUgKzcsNSBAQCBQQVNTIFNhbWUtb3JpZ2luIHBvcHVwIHdpdGggY29vcCB1bnNhZmUt
bm9uZSB3aXRob3V0IGNvZXAKIFBBU1MgaGlzdG9yaWNhbDogInNhbWUtc2l0ZSIgcG9wdXAgd2l0
aCBjb29wIHVuc2FmZS1ub25lIHdpdGhvdXQgY29lcAogUEFTUyBTYW1lLW9yaWdpbiBwb3B1cCB3
aXRob3V0IGNvZXAKIFBBU1MgaGlzdG9yaWNhbDogInNhbWUtc2l0ZSIgcG9wdXAgd2l0aG91dCBj
b2VwCi1GQUlMIEJvbnVzOiB3aW5kb3cuY3Jvc3NPcmlnaW5Jc29sYXRlZCBhc3NlcnRfdHJ1ZTog
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgQm9udXM6IHdpbmRvdy5jcm9zc09yaWdpbklz
b2xhdGVkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
NzEyNzVlZmYwMTc1Li40MDI5YjVjMWU3ZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0zMTYyLDEwICszMTYyLDYgQEAgd2Via2l0Lm9yZy9iLzIwNzY1
MSBpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0
ZV9vYmoKIAogd2Via2l0Lm9yZy9iLzIwNzY1MiBpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTUuaHRtbCBbIFBhc3MgVGlt
ZW91dCBdCiAKLXdlYmtpdC5vcmcvYi8yMjk1NjUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9lbmNvZGluZy9zaGFyZWRhcnJheWJ1ZmZlci5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJl
IF0KLQotd2Via2l0Lm9yZy9iLzIyOTUwMSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJyYXlidWZmZXItdGhyb3dzLmh0dHBzLmh0bWwg
WyBQYXNzIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMjA3NzAyIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleS1nZW5lcmF0b3JzL3JlYWRpbmctYXV0b2luY3Jl
bWVudC1pbmRleGVzLmFueS5zZXJ2aWNld29ya2VyLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiB3
ZWJraXQub3JnL2IvMjA3NzAzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tldC1pbi1zZXJ2aWNlLXdvcmtlci5odHRw
cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggYWU2ZjY0NTBmYTZjLi4yZDE2ZGU5NmFlYTQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xOTk3LDEwICsxOTk3LDYgQEAgd2Vi
a2l0Lm9yZy9iLzIxNjAyNCBbIE1vamF2ZSBDYXRhbGluYSBdIGZhc3QvdGV4dC9haG9tLmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzIxNjI5OCBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9ibG9iLXZhbGlkLWFmdGVyLWRlbGV0aW9uLmFu
eS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzIyOTUwMSBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJyYXlidWZm
ZXItdGhyb3dzLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotCi13ZWJraXQub3JnL2IvMjI5
NTY1IFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL3No
YXJlZGFycmF5YnVmZmVyLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotCiB3ZWJraXQub3Jn
L2IvMTg2MDQ1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aS90ZXh0
LW92ZXJmbG93LTAxNy5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTg2MDQ1IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdmhfbm90X3JlZnJlc2hpbmdf
b25fY2hyb21lLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xODYwNDUgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9lbWJl
ZGRlZC1jb250ZW50L2Nyb3NzLWRvbWFpbi1pZnJhbWUuc3ViLmh0bWwgWyBTa2lwIF0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGY2MWE0Y2RhZTI1ZC4uYzI4
ZTU3OGVlMDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAg
LTk0OCw2ICs5NDgsMTUgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChD
YWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmUKICAgICByZXNwb25zZVJl
Y2VpdmVkKHJlc3BvbnNlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3N0YXRp
YyBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIHRvTmVlZHNCcm93c2luZ0NvbnRleHRH
cm91cFN3aXRjaChjb25zdCBzdGQ6Om9wdGlvbmFsPENyb3NzT3JpZ2luT3BlbmVyUG9saWN5RW5m
b3JjZW1lbnRSZXN1bHQ+JiBjdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0KQoreworICAgIGlm
ICghY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdCB8fCAhY3VycmVudENvb3BFbmZvcmNlbWVu
dFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCkKKyAgICAgICAgcmV0dXJu
IE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6Ok5vOworICAgIGlmIChjdXJyZW50Q29v
cEVuZm9yY2VtZW50UmVzdWx0LT5jcm9zc09yaWdpbk9wZW5lclBvbGljeS52YWx1ZSA9PSBDcm9z
c09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpTYW1lT3JpZ2luUGx1c0NPRVApCisgICAgICAgIHJl
dHVybiBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoOjpZZXNXaXRoQ3Jvc3NPcmlnaW5J
c29sYXRpb247CisgICAgcmV0dXJuIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6Olll
c1dpdGhvdXRDcm9zc09yaWdpbklzb2xhdGlvbjsKK30KKwogdm9pZCBEb2N1bWVudExvYWRlcjo6
cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChy
ZXNwb25zZS5jZXJ0aWZpY2F0ZUluZm8oKSk7CkBAIC0xMDQ4LDcgKzEwNTcsNyBAQCB2b2lkIERv
Y3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBDb21wbGV0aQogICAgIGlmIChtYWluUmVzb3VyY2VMb2FkZXIpCiAgICAgICAgIG1h
aW5SZXNvdXJjZUxvYWRlci0+bWFya0luQXN5bmNSZXNwb25zZVBvbGljeUNoZWNrKCk7CiAgICAg
YXV0byByZXF1ZXN0SWRlbnRpZmllciA9IFBvbGljeUNoZWNrSWRlbnRpZmllcjo6Y3JlYXRlKCk7
Ci0gICAgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoID0gbV9jdXJyZW50Q29v
cEVuZm9yY2VtZW50UmVzdWx0ICYmIG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdC0+bmVl
ZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaDsKKyAgICBhdXRvIG5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2ggPSB0b05lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gobV9jdXJy
ZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0KTsKICAgICBmcmFtZUxvYWRlcigpLT5jaGVja0NvbnRl
bnRQb2xpY3kobV9yZXNwb25zZSwgcmVxdWVzdElkZW50aWZpZXIsIG5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1h
aW5SZXNvdXJjZUxvYWRlciA9IFdURk1vdmUobWFpblJlc291cmNlTG9hZGVyKSwKICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxlYXNlKCksIHJl
cXVlc3RJZGVudGlmaWVyXSAoUG9saWN5QWN0aW9uIHBvbGljeSwgUG9saWN5Q2hlY2tJZGVudGlm
aWVyIHJlc3BvbnNlSWRlbnRpZmllcikgbXV0YWJsZSB7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KHJlc3BvbnNlSWRlbnRpZmllci5pc1ZhbGlkRm9yKHJlcXVlc3RJZGVudGlmaWVyKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDk2NGUyZGQxMjA3MC4uMjZjOTY2
MzlhZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtODE2LDcg
KzgxNiw3IEBAIHZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hTaG93KCkKIHsK
IH0KIAotdm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZv
clJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wsIEZyYW1lUG9saWN5
RnVuY3Rpb24mJikKK3ZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBOZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDEy
MGE0YTUyMGJkMS4uM2NiYjMxMGEyZTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTk2LDcgKzk2LDcgQEAgcHJpdmF0ZToKICAgICBG
cmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBOZXdGcmFt
ZU9wZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKIAot
ICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1l
UG9saWN5RnVuY3Rpb24mJikgZmluYWw7CisgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZv
clJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIE5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBk
aXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiwg
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAg
IHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmln
YXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZWRpcmVjdFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBQb2xpY3lEZWNpc2lvbk1vZGUsIFBv
bGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2
b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAppbmRleCA3YWE3NmFjNmQxZWIuLjZiMDIzNjFhMWI1NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC00MTMsNyArNDEzLDcgQEAgdm9pZCBGcmFtZUxvYWRl
cjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKICAgICB9CiB9CiAKLXZvaWQgRnJhbWVM
b2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlv
bikKK3ZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBpZiAo
IWFjdGl2ZURvY3VtZW50TG9hZGVyKCkpIHsKICAgICAgICAgLy8gTG9hZCB3YXMgY2FuY2VsbGVk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGU1NmMwOGY3MDM2YS4uNzk4OThh
NjRhNGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMjIwLDcgKzIyMCw3
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKTsKIAotICAgIHZv
aWQgY2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVu
dFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJik7CisgICAgdm9pZCBjaGVja0NvbnRlbnRQb2xpY3ko
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgTmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJik7
CiAKICAgICB2b2lkIGRpZEV4cGxpY2l0T3BlbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDM5YmI0MDU0MDljNC4uMjY4NDMxYTVkOTU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTkwLDcgKzE5MCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYsIE5ld0ZyYW1lT3BlbmVyUG9saWN5KSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoU2hvdygpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG93bmxv
YWRBdHRyaWJ1dGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQ
b2xpY3lGdW5jdGlvbiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJp
YnV0ZSwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlv
biYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2lu
ZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgUG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24m
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVj
dFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBQb2xpY3lEZWNpc2lvbk1vZGUsIFBvbGljeUNoZWNrSWRl
bnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNh
bmNlbFBvbGljeUNoZWNrKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5
cGVzLmgKaW5kZXggYzUxNWJhZTRkMjE4Li5jZGQwMTA0MTA2NTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaApAQCAtMTY3LDYgKzE2NywxMiBAQCBlbnVtIGNsYXNz
IFVubG9hZEV2ZW50UG9saWN5IHsKICAgICBVbmxvYWRBbmRQYWdlSGlkZQogfTsKIAorZW51bSBj
bGFzcyBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIDogdWludDhfdCB7CisgICAgTm8s
CisgICAgWWVzV2l0aG91dENyb3NzT3JpZ2luSXNvbGF0aW9uLAorICAgIFllc1dpdGhDcm9zc09y
aWdpbklzb2xhdGlvbiwKK307CisKIC8vIFBhc3NlZCB0byBGcmFtZUxvYWRlcjo6dXJsU2VsZWN0
ZWQoKSBhbmQgU2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZUlmSmF2YVNjcmlwdFVSTCgpCiAvLyB0
byBjb250cm9sIHdoZXRoZXIsIGluIHRoZSBjYXNlIG9mIGEgSmF2YVNjcmlwdCBVUkwsIGV4ZWN1
dGVJZkphdmFTY3JpcHRVUkwoKSBzaG91bGQKIC8vIHJlcGxhY2UgdGhlIGRvY3VtZW50LiBJdCBp
cyBhIEZJWE1FIHRvIGVsaW1pbmF0ZSB0aGlzIGV4dHJhIHBhcmFtZXRlciBmcm9tCkBAIC0yNzYs
NiArMjgyLDE1IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UG9saWN5
QWN0aW9uPiB7CiAgICAgPjsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2Vi
Q29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaD4geworICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2gsCisgICAgICAgIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0
Y2g6Ok5vLAorICAgICAgICBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
OjpZZXNXaXRob3V0Q3Jvc3NPcmlnaW5Jc29sYXRpb24sCisgICAgICAgIFdlYkNvcmU6Ok5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6Olllc1dpdGhDcm9zc09yaWdpbklzb2xhdGlvbgor
ICAgID47Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVz
PAogICAgICAgICBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDlhMzI1NWE2OWQyOS4uZjkyZGRjYzgwMDZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xOTIzLDkgKzE5MjMsMTUgQEAgYm9vbCBET01X
aW5kb3c6OmlzU2VjdXJlQ29udGV4dCgpIGNvbnN0CiAKIGJvb2wgRE9NV2luZG93Ojpjcm9zc09y
aWdpbklzb2xhdGVkKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50ZWQgdGhpcy4g
VGhpcyBzaG91bGQgcmV0dXJuIHRydWUgaWYgQ09PUC9DT0VQIGFyZSB1c2VkIGFuZCB0aGUgcGFn
ZSBpcyBhbGxvd2VkIHRvIHVzZSBBUElzCi0gICAgLy8gdGhhdCByZXF1aXJlIGNyb3NzLW9yaWdp
biBpc29sYXRpb24gKGUuZy4gU2hhcmVkQXJyYXlCdWZmZXIpLgotICAgIHJldHVybiBmYWxzZTsK
KyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVu
dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byYgc2V0dGluZ3MgPSBkb2N1bWVu
dC0+c2V0dGluZ3MoKTsKKyAgICBpZiAoIXNldHRpbmdzLmNyb3NzT3JpZ2luT3BlbmVyUG9saWN5
RW5hYmxlZCgpIHx8ICFzZXR0aW5ncy5jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5RW5hYmxlZCgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gZG9jdW1lbnQtPnRvcERvY3Vt
ZW50KCkuY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3koKS52YWx1ZSA9PSBDcm9zc09yaWdpbk9wZW5l
clBvbGljeVZhbHVlOjpTYW1lT3JpZ2luUGx1c0NPRVA7CiB9CiAKIHN0YXRpYyB2b2lkIGRpZEFk
ZFN0b3JhZ2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyYgd2luZG93KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsCmluZGV4IDQwZjg3NDdiMWRhZi4uMWJjMTMwMWNmYTBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCkBAIC03OSw4ICs3OSw2IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IE5hdmlnYXRvciBuYXZpZ2F0b3I7CiAgICAgLy8gRklYTUU6IFRoaXMgaXMgc3BlY2lmaWVkIHRv
IGJlIFtTZWN1cmVDb250ZXh0XQogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01BcHBsaWNhdGlv
bkNhY2hlIGFwcGxpY2F0aW9uQ2FjaGU7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCAnb3JpZ2lu
SXNvbGF0ZWQnCi0gICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gb3JpZ2luSXNvbGF0
ZWQ7CiAKICAgICAvLyB1c2VyIHByb21wdHMKICAgICB1bmRlZmluZWQgYWxlcnQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGZiMjM0N2Q1Zjg5Yy4uMmYx
M2Y0YmY3YWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAg
LTcxOSw2ICs3MTksNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dl
YkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMnOiBbJzxXZWJDb3JlL01lZGlhUGxh
eWVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6
SGFzQWN0aXZpdHknOiBbJzxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5JzogWyc8V2ViQ29yZS9Eb2N1bWVu
dExvYWRlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24nOiBbJzxXZWJDb3JlL05ldHdvcmtM
b2FkSW5mb3JtYXRpb24uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21E
YXRhJzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0
ZWJvYXJkSW1hZ2UnOiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4nXSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAppbmRleCA0MWNkMzVkYmZh
OGQuLjk5ZTUxNjUwZDMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
dmlzaW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zp
c2lvbmFsUGFnZVByb3h5LmNwcApAQCAtMzMwLDcgKzMzMCw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQ
YWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhGcmFtZUlkZW50
aWZpZXIKICAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZy
YW1lSW5mbyksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0
aW9uRGF0YSksIFdURk1vdmUob3JpZ2luYXRpbmdGcmFtZUluZm8pLCBvcmlnaW5hdGluZ1BhZ2VJ
RCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5
KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIGxpc3RlbmVySUQpOwogfQog
Ci12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0
cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUs
IGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJ
RCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5m
b0RhdGEmJiBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJv
b2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29s
IHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dp
dGNoIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQs
IGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJh
bWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKaW5kZXggMjcxNGIyYTViNTQ3Li5kNDkw
NzBlNzNlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFs
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdl
UHJveHkuaApAQCAtMTI0LDcgKzEyNCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzZW5kTWVzc2Fn
ZShVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYmLCBPcHRpb25TZXQ8SVBDOjpTZW5kT3B0aW9uPiwg
c3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8Q29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkRlY29k
ZXIqKT4sIHVpbnQ2NF90Pj4mJikgZmluYWw7CiAKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0Rh
dGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0Zy
YW1lSW5mbywgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGlu
Z1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3Qs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVx
dWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBj
b25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRy
aWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2lu
Z0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEm
KTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25z
dCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVu
ZGxlLCBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9u
YWxVUkxGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgVVJMJiYpOwogICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0
cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5n
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJl
ZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25z
dCBVc2VyRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggNWZiMzA4OTUwMTU2Li40YzE0OGY3ODUxOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcApAQCAtNTYxNywxMiArNTYxNywxMiBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBGcmFtZQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFBvbGljeUNo
ZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1
dGUsCi0gICAgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0
YSYgdXNlckRhdGEpCisgICAgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgTmVlZHNC
cm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAg
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQ
YWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlv
bklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0
ZSwgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBT
d2l0Y2gsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vz
cywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJh
bWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNv
bnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRC
dW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlz
dGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vz
cywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJh
bWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNv
bnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRC
dW5kbGUsIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggbmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7
CiAKQEAgLTU2NDYsMTYgKzU2NDYsMTkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywKICAgICAg
ICAgfSk7CiAKICAgICAgICAgYXV0byB3aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzID0gV2ls
bENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6Tm87Ci0gICAgICAgIGlmIChwb2xpY3lBY3Rpb24g
PT0gUG9saWN5QWN0aW9uOjpVc2UgJiYgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCAm
JiBuYXZpZ2F0aW9uKSB7Ci0gICAgICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZXNwb25zZURv
bWFpbiB7IG5hdmlnYXRpb25SZXNwb25zZS0+cmVzcG9uc2UoKS51cmwoKSB9OwotICAgICAgICAg
ICAgLy8gQXZvaWQgcHJvY2Vzcy1zd2FwcGluZyBpbiBjYXNlcyB3aGVyZSB0aGUgcHJvY2VzcyBv
bmx5IGNvbnRhaW5zIGEgc2luZ2xlIHBhZ2UgYW5kIGlzIG9yaWdpbi1jbGVhbi4KLSAgICAgICAg
ICAgIGlmICh0aGlzLT5wcm9jZXNzKCkucGFnZUNvdW50KCkgPiAxIHx8ICh0aGlzLT5wcm9jZXNz
KCkub3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbigpICYmICp0aGlzLT5wcm9jZXNzKCkub3B0aW9u
YWxSZWdpc3RyYWJsZURvbWFpbigpICE9IHJlc3BvbnNlRG9tYWluKSkgeworICAgICAgICBpZiAo
cG9saWN5QWN0aW9uID09IFBvbGljeUFjdGlvbjo6VXNlICYmIG5lZWRzQnJvd3NpbmdDb250ZXh0
R3JvdXBTd2l0Y2ggIT0gTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaDo6Tm8gJiYgbmF2
aWdhdGlvbikgeworICAgICAgICAgICAgLy8gQXZvaWQgcHJvY2Vzcy1zd2FwcGluZyBpbiBjYXNl
cyB3aGVyZSB0aGUgcHJvY2VzcyBvbmx5IGNvbnRhaW5zIGEgc2luZ2xlIHBhZ2UgYW5kIHRoZSBw
cm9jZXNzIGhhcyBub3QgbG9hZGVkIGFueSBvcmlnaW4geWV0LgorICAgICAgICAgICAgaWYgKHRo
aXMtPnByb2Nlc3MoKS5wYWdlQ291bnQoKSA+IDEgfHwgdGhpcy0+cHJvY2VzcygpLm9wdGlvbmFs
UmVnaXN0cmFibGVEb21haW4oKSkgewogICAgICAgICAgICAgICAgIFdFQlBBR0VQUk9YWV9SRUxF
QVNFX0xPRyhQcm9jZXNzU3dhcHBpbmcsICJkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZDog
UHJvY2Vzcy1zd2FwcGluZyBkdWUgdG8gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiKTsKICAg
ICAgICAgICAgICAgICBwb2xpY3lBY3Rpb24gPSBQb2xpY3lBY3Rpb246Oklnbm9yZTsKKyAgICAg
ICAgICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZXNwb25zZURvbWFpbiB7IG5hdmlnYXRpb25S
ZXNwb25zZS0+cmVzcG9uc2UoKS51cmwoKSB9OwogICAgICAgICAgICAgICAgIGF1dG8gcHJvY2Vz
c0Zvck5hdmlnYXRpb24gPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkucHJvY2Vzc0ZvclJlZ2lz
dHJhYmxlRG9tYWluKHdlYnNpdGVEYXRhU3RvcmUoKSwgdGhpcywgcmVzcG9uc2VEb21haW4pOwor
ICAgICAgICAgICAgICAgIGlmIChuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoID09IE5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6Olllc1dpdGhDcm9zc09yaWdpbklzb2xhdGlv
bikKKyAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0Zvck5hdmlnYXRpb24tPm1hcmtBc0Nyb3Nz
T3JpZ2luSXNvbGF0ZWQoKTsKICAgICAgICAgICAgICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5l
d1Byb2Nlc3MoKm5hdmlnYXRpb24sIG51bGxwdHIsIFdURk1vdmUocHJvY2Vzc0Zvck5hdmlnYXRp
b24pLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OjpObywgU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkOjpZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24sIG51bGxwdHIpOwogICAg
ICAgICAgICAgICAgIHdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3MgPSBXaWxsQ29udGludWVM
b2FkSW5OZXdQcm9jZXNzOjpZZXM7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2Ug
aWYgKG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggPT0gTmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaDo6WWVzV2l0aENyb3NzT3JpZ2luSXNvbGF0aW9uKQorICAgICAgICAgICAg
ICAgIHByb2Nlc3MtPm1hcmtBc0Nyb3NzT3JpZ2luSXNvbGF0ZWQoKTsKICAgICAgICAgfQogICAg
ICAgICAKICAgICAgICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihwb2xpY3lBY3Rpb24sIG5hdmln
YXRpb24uZ2V0KCksIG51bGxwdHIsIFdURk1vdmUobmF2aWdhdGlvblJlc3BvbnNlKSwgV1RGTW92
ZShzZW5kZXIpLCB7IH0sIHdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3MpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBlYTFjMjJmYjZiMTEuLjAwYTk1NzQzNWFh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE3NDEsNyArMTc0
MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUm
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9u
YWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwogICAgIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBv
cmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVy
PiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVm
ZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVj
dFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZv
aWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJ
bmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRv
d25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0
IFVzZXJEYXRhJik7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5
cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5q
ZWN0ZWRCdW5kbGUsIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVp
bnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVSTFNj
aGVtZVRhc2tTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgbG9hZERhdGFXaXRo
TmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgQVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29u
c3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5n
JiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4s
IHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgV2ViQ29yZTo6U2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSwgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0
b3J5VmlzaWJpbGl0eSk7CiAgICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5h
dmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91
bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51
bGxvcHQpOwpAQCAtMjA2MCw3ICsyMDYwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlY2lkZVBv
bGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5m
b0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYmLAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgU3RyaW5n
JiBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZy
YW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsCi0gICAgICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29u
c3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1
bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0
ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93
TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dl
ZEJ5SW5qZWN0ZWRCdW5kbGUsIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0
Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCB1bmFi
bGVUb0ltcGxlbWVudFBvbGljeShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgYmVnaW5TYWZl
QnJvd3NpbmdDaGVjayhjb25zdCBVUkwmLCBib29sLCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJv
eHkmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IGJjMzdiOGZjNmFkZi4uNDlkM2QzYTI1Nzg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMDcsNyArMTA3
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAgIyBQb2xpY3kg
bWVzc2FnZXMKLSAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJp
bmcgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJv
b2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZv
RGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVj
a0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2Fu
U2hvd01JTUVUeXBlLCBTdHJpbmcgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5
SW5qZWN0ZWRCdW5kbGUsIGVudW06dWludDhfdCBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5nQ29udGV4
dEdyb3VwU3dpdGNoIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBz
dHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0
YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEs
IHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGlu
Z1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVz
dEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0
OjpVc2VyRGF0YSB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKICAgICBEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgYm9vbCBpc01haW5GcmFtZSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUlu
Zm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRh
dGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3Jp
Z2luYXRpbmdGcmFtZUluZm9EYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZVByb3h5
SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBv
cmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJl
ZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpIC0+IChzdHJ1Y3QgV2Vi
S2l0OjpQb2xpY3lEZWNpc2lvbiBQb2xpY3lEZWNpc2lvbikgU3luY2hyb25vdXMKICAgICBEZWNp
ZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpO
YXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQs
IFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAppbmRleCBkOGU2YzczYWE2ZTkuLmQ3NGU4ZTE0MjQ0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xMTQ2LDYgKzEx
NDYsMTEgQEAgYm9vbCBXZWJQcm9jZXNzUHJveHk6OmNhbkJlQWRkZWRUb1dlYlByb2Nlc3NDYWNo
ZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyAgICBpZiAobV9pc0Ny
b3NzT3JpZ2luSXNvbGF0ZWQpIHsKKyAgICAgICAgV0VCUFJPQ0VTU1BST1hZX1JFTEVBU0VfTE9H
KFByb2Nlc3MsICJjYW5CZUFkZGVkVG9XZWJQcm9jZXNzQ2FjaGU6IE5vdCBhZGRpbmcgdG8gcHJv
Y2VzcyBjYWNoZSBiZWNhdXNlIHRoZSBwcm9jZXNzIGlzIGNyb3NzLW9yaWdpbiBpc29sYXRlZCIp
OworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgaWYgKFdlYktpdDo6aXNJbnNw
ZWN0b3JQcm9jZXNzUG9vbChwcm9jZXNzUG9vbCgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CkBAIC0xODI0LDYgKzE4MjksMTIgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnBhZ2VJc0JlY29t
aW5nSW52aXNpYmxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIGlkZW50aWZpZXIKICAgICAgICAg
c3BlZWNoUmVjb2duaXRpb25TZXJ2ZXItPm11dGUoKTsKIH0KIAordm9pZCBXZWJQcm9jZXNzUHJv
eHk6Om1hcmtBc0Nyb3NzT3JpZ2luSXNvbGF0ZWQoKQoreworICAgIG1faXNDcm9zc09yaWdpbklz
b2xhdGVkID0gdHJ1ZTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpNYXJrQXNDcm9z
c09yaWdpbklzb2xhdGVkKCksIDApOworfQorCiAjaWYgUExBVEZPUk0oV0FUQ0hPUykKIAogdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OnN0YXJ0QmFja2dyb3VuZEFjdGl2aXR5Rm9yRnVsbHNjcmVlbklu
cHV0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggYTQw
ZTY5ZGZhNTIyLi4yOWNlNTUzZjljNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oCkBAIC00MTksNiArNDE5LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2Fw
dGlvbkxhbmd1YWdlKGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiAKKyAgICB2b2lkIG1hcmtBc0Ny
b3NzT3JpZ2luSXNvbGF0ZWQoKTsKKyAgICBib29sIGlzQ3Jvc3NPcmlnaW5Jc29sYXRlZCgpIGNv
bnN0IHsgcmV0dXJuIG1faXNDcm9zc09yaWdpbklzb2xhdGVkOyB9CisKIHByb3RlY3RlZDoKICAg
ICBXZWJQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmLCBXZWJzaXRlRGF0YVN0b3JlKiwgSXNQ
cmV3YXJtZWQpOwogCkBAIC02MjAsNiArNjIzLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9o
YXNDb21taXR0ZWRBbnlQcm92aXNpb25hbExvYWRzIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNQ
cmV3YXJtZWQ7CisgICAgYm9vbCBtX2lzQ3Jvc3NPcmlnaW5Jc29sYXRlZCB7IGZhbHNlIH07CiAj
aWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBib29sIG1faGFzSXNzdWVkQXR0YWNo
bWVudEVsZW1lbnRSZWxhdGVkU2FuZGJveEV4dGVuc2lvbnMgeyBmYWxzZSB9OwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA3MjMxNWE1NzU4NzMuLjE2YTVmNjQ2
MDhiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC04MTYsNyArODE2LDcg
QEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hTaG93KCkKICAgICB3ZWJQYWdl
LT5zaG93KCk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgbmVlZHNC
cm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9u
KQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNw
b25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0
aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAgYXV0byogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsK
ICAgICBpZiAoIXdlYlBhZ2UpIHsKQEAgLTgzNyw3ICs4MzcsNyBAQCB2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNl
UmVzcG9ucwogICAgIFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvbiBwb2xpY3kgPSB3ZWJQYWdlLT5p
bmplY3RlZEJ1bmRsZVBvbGljeUNsaWVudCgpLmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHdlYlBh
Z2UsIG1fZnJhbWUucHRyKCksIHJlc3BvbnNlLCByZXF1ZXN0LCB1c2VyRGF0YSk7CiAgICAgLy8g
SWYgYSBicm93c2luZyBjb250ZXh0IHN3aXRjaCBpcyByZXF1ZXN0ZWQsIHdlIHN0aWxsIG5lZWQg
dG8gc2VuZCB0aGUgSVBDIHRvIHRoZSBVSVByb2Nlc3MgaW4gb3JkZXIgdG8gcHJvY2Vzcy1zd2Fw
IGlmIG5lY2Vzc2FyeSwgZXZlbiB0aG91Z2ggdGhlCiAgICAgLy8gaW5qZWN0ZWQgYnVuZGxlIGhh
cyBhbHJlYWR5IGhhbmRsZWQgdGhlIHBvbGljeSBkZWNpc2lvbi4KLSAgICBpZiAocG9saWN5ID09
IFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvblVzZSAmJiAhbmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCkgeworICAgIGlmIChwb2xpY3kgPT0gV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uVXNl
ICYmIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggPT0gTmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaDo6Tm8pIHsKICAgICAgICAgV0VCRlJBTUVMT0FERVJDTElFTlRfUkVMRUFT
RV9MT0coTmV0d29yaywgImRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2U6IGNvbnRpbnVp
bmcgYmVjYXVzZSBpbmplY3RlZCBidW5kbGUgc2F5cyBzbyIpOwogICAgICAgICBmdW5jdGlvbihQ
b2xpY3lBY3Rpb246OlVzZSwgaWRlbnRpZmllcik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggOTY2NmQ2N2Y4NjIwLi41MWQ2YzEyMzhmMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMjksNyArMTI5LDcgQEAgcHJpdmF0ZToKICAg
ICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmln
YXRpb25BY3Rpb24mLCBXZWJDb3JlOjpOZXdGcmFtZU9wZW5lclBvbGljeSkgZmluYWw7CiAgICAg
dm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIGRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBX
ZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3Vw
U3dpdGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQg
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2
aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6
OkZvcm1TdGF0ZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAg
dm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29y
ZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIFdlYkNvcmU6
OkZvcm1TdGF0ZSosIFdlYkNvcmU6OlBvbGljeURlY2lzaW9uTW9kZSwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwog
ICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAppbmRleCAyNzJiNTQ3ZmVkMzUuLjIyZTQ4YmQ1NjViZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMjAzNyw2ICsyMDM3LDEyIEBA
IHZvaWQgV2ViUHJvY2Vzczo6c2VuZFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhSW1tZWRpYXRl
bHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pCiB9CiAjZW5kaWYKIAordm9pZCBXZWJQcm9jZXNzOjpt
YXJrQXNDcm9zc09yaWdpbklzb2xhdGVkKCkKK3sKKyAgICAvLyBDcm9zcy1vcmlnaW4gaXNvbGF0
ZWQgcHJvY2Vzc2VzICh2aWEgQ09PUC9DT0VQKSBhcmUgYWxsb3dlZCB0byB1c2UgU2hhcmVkQXJy
YXlCdWZmZXIuCisgICAgSlNDOjpPcHRpb25zOjp1c2VTaGFyZWRBcnJheUJ1ZmZlcigpID0gdHJ1
ZTsKK30KKwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIHZvaWQgV2ViUHJvY2Vzczo6c2V0VXNl
R1BVUHJvY2Vzc0ZvckNhbnZhc1JlbmRlcmluZyhib29sIHVzZUdQVVByb2Nlc3NGb3JDYW52YXNS
ZW5kZXJpbmcpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCA0NWEw
MTczYjUyZDMuLmU5M2NhNmE1Y2MwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCkBAIC00MDgsNiArNDA4LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHByZXdhcm1HbG9iYWxs
eSgpOwogICAgIHZvaWQgcHJld2FybVdpdGhEb21haW5JbmZvcm1hdGlvbihjb25zdCBXZWJDb3Jl
OjpQcmV3YXJtSW5mb3JtYXRpb24mKTsKIAorICAgIHZvaWQgbWFya0FzQ3Jvc3NPcmlnaW5Jc29s
YXRlZCgpOworCiAjaWYgVVNFKE9TX1NUQVRFKQogICAgIFJldGFpblB0cjxOU0RpY3Rpb25hcnk+
IGFkZGl0aW9uYWxTdGF0ZUZvckRpYWdub3N0aWNSZXBvcnQoKSBjb25zdCBmaW5hbDsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpp
bmRleCBmYzUxODk5MzIwNTYuLmFiN2RiZjg3ZTc1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTE1NSw2ICsxNTUsOCBAQCBtZXNz
YWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5vdFJlZkNvdW50ZWQgewogICAgIFNl
dEJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSh1bnNpZ25lZCBjYXBhY2l0eSk7CiAgICAgQ2xlYXJD
YWNoZWRQYWdlKHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGJhY2tG
b3J3YXJkSXRlbUlEKSAtPiAoKSBBc3luYwogCisgICAgTWFya0FzQ3Jvc3NPcmlnaW5Jc29sYXRl
ZCgpCisKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICBTZW5kTWVzc2Fn
ZVRvV2ViRXh0ZW5zaW9uKHN0cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHVzZXJNZXNzYWdlKQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAwNTE2MjcwMDlhNjYuLjRjNDdk
NDI2ZWFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMjcsNyArMTI3LDcgQEAg
cHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IFdl
YkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBXZWJDb3JlOjpOZXdGcmFtZU9wZW5lclBvbGljeSkg
ZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKIAotICAgIHZvaWQgZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBT
d2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CisgICAgdm9pZCBk
aXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAg
ICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJD
b3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
V2ViQ29yZTo6Rm9ybVN0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYp
IGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
KGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3Bv
bnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlv
biYmKSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDBjZmJlZWUwNDQ3ZC4uYWFkZjRlNzAwNGMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtODU1LDcgKzg1NSw3IEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygpCiAgICAgW1t3ZWJWaWV3IF9VSURlbGVnYXRl
Rm9yd2FyZGVyXSB3ZWJWaWV3U2hvdzp3ZWJWaWV3XTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmLCBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAgV2ViVmlldyAqd2ViVmll
dyA9IGdldFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcAppbmRleCBjNWFmYTEzMzdkYjQuLmFmMWMwMjlhYWU1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcApAQCAtNTE5LDcgKzUxOSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoU2hvdygpCiAgICAgICAgIHVpLT53ZWJWaWV3U2hvdyh3ZWJWaWV3KTsK
IH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBG
cmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBOZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAg
ICAgV2ViVmlldyogd2ViVmlldyA9IG1fd2ViRnJhbWUtPndlYlZpZXcoKTsKICAgICBGcmFtZSog
Y29yZUZyYW1lID0gY29yZShtX3dlYkZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmlu
ZGV4IDYxNDY1YzExZmMyNS4uNTQ1NGZiYmRiMzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hM
b2FkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlYWNoTGF5b3V0TWlsZXN0b25l
KE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+KSBvdmVycmlkZTsKIAotICAgIHZv
aWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24m
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIGZy
YW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBv
bGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xp
Y3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6
RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNo
ZWNrKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5kZXggMWRlY2YzMDczYWFm
Li5mM2Q5ZGI4NGIzYTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAgLTQwNiw2ICs0MDYs
OCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6cmVzZXRBZnRlclRlc3QoKQogICAgIHVuaW5z
dGFsbEZha2VIZWx2ZXRpY2EoKTsKIAogICAgIEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5y
ZXNldFVzZXJTY3JpcHRJbmplY3RlZENvdW50KCk7CisKKyAgICBtX2RpZENvbW1pdE1haW5GcmFt
ZUxvYWQgPSBmYWxzZTsKIH0KIAogLy8gTG9hZGVyIENsaWVudCBDYWxsYmFja3MKQEAgLTYzNCw2
ICs2MzYsMTEgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxQcm92aXNpb25hbExv
YWRXaXRoRXJyb3JGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmUKICAgICBpZiAoIWluamVjdGVkQnVu
ZGxlLmlzVGVzdFJ1bm5pbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gSW4gY2FzZSBv
ZiBhIENPT1AgcHJvY2Vzcy1zd2FwLCB0aGUgb2xkIHByb2Nlc3MgZ2V0cyBhIGRpZEZhaWxQcm92
aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZSBkZWxlZ2F0ZSBjYWxsLiBXZSB3YW50IHRvIGln
bm9yZQorICAgIC8vIHRoaXMgY2FsbCBzaW5jZSBpdCBjYXVzZXMgdGhlIHRlc3QgdG8gZHVtcCBp
dHMgb3V0cHV0IHRvbyBlYWdlcmx5LCBiZWZvcmUgdGhlIHRlc3QgaGFzIGhhZCBhIGNoYW5jZSB0
byBydW4gaW4gdGhlIG5ldyBwcm9jZXNzLgorICAgIGlmIChXS0J1bmRsZUZyYW1lSXNNYWluRnJh
bWUoZnJhbWUpICYmICFtX2RpZENvbW1pdE1haW5GcmFtZUxvYWQgJiYgaW5qZWN0ZWRCdW5kbGUu
cGFnZSgpID09IHRoaXMpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChpbmplY3RlZEJ1bmRs
ZS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkgewogICAgICAg
ICBkdW1wTG9hZEV2ZW50KGZyYW1lLCAiZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvciIp
OwogICAgICAgICBhdXRvIGNvZGUgPSBXS0Vycm9yR2V0RXJyb3JDb2RlKGVycm9yKTsKQEAgLTY1
Miw2ICs2NTksOSBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ29tbWl0TG9hZEZvckZy
YW1lKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpCiAgICAgaWYgKCFpbmplY3RlZEJ1bmRsZS5pc1Rl
c3RSdW5uaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChXS0J1bmRsZUZyYW1lSXNN
YWluRnJhbWUoZnJhbWUpKQorICAgICAgICBtX2RpZENvbW1pdE1haW5GcmFtZUxvYWQgPSB0cnVl
OworCiAgICAgaWYgKCFpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBGcmFt
ZUxvYWRDYWxsYmFja3MoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaApp
bmRleCAzMTQ4OGE1MmI1Y2UuLjJkOTEyZTkxNjljMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCkBA
IC0xODAsNiArMTgwLDcgQEAgcHJpdmF0ZToKIAogICAgIFdLQnVuZGxlUGFnZVJlZiBtX3BhZ2U7
CiAgICAgV0tSZXRhaW5QdHI8V0tCdW5kbGVTY3JpcHRXb3JsZFJlZj4gbV93b3JsZDsKKyAgICBi
b29sIG1fZGlkQ29tbWl0TWFpbkZyYW1lTG9hZCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXVFIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436580</attachid>
            <date>2021-08-26 15:49:53 -0700</date>
            <delta_ts>2021-08-26 16:48:26 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>229559_COOP_reenable_SharedArrayBuffer_wip.patch</filename>
            <type>text/plain</type>
            <size>49139</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL3NlcmlhbGl6ZS1zaGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvc2VyaWFsaXplLXNoYXJlZGFycmF5YnVmZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggYWNjMDQ2NDYwM2IxLi42ZDBiYjY2ZmFmMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3NlcmlhbGl6ZS1z
aGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3NlcmlhbGl6ZS1z
aGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNSBA
QAogCi1GQUlMIEluZGV4ZWREQjogQXR0ZW1wdGluZyB0byBzZXJpYWxpemUgYSBTaGFyZWRBcnJh
eUJ1ZmZlciBzaG91bGQgdGhyb3cgYXNzZXJ0X3RydWU6IFRoZSBwYWdlIGlzIHNlcnZlZCB3aXRo
IENPT1AgYW5kIENPRVAsIGl0IHNob3VsZCBiZSBjcm9zcy1vcmlnaW4taXNvbGF0ZWQuIGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCitGQUlMIEluZGV4ZWREQjogQXR0ZW1wdGluZyB0byBzZXJpYWxp
emUgYSBTaGFyZWRBcnJheUJ1ZmZlciBzaG91bGQgdGhyb3cgYXNzZXJ0X3Rocm93c19kb206IGZ1
bmN0aW9uICIoKSA9PiB7CisgICAgICAgICAgICBycSA9IG9ialN0b3JlLnB1dCh7c2FiOiBzYWJ9
LCAna2V5Jyk7CisgICAgICAgIH0iIHRocmV3IG9iamVjdCAiRGF0YUVycm9yOiBGYWlsZWQgdG8g
c3RvcmUgcmVjb3JkIGluIGFuIElEQk9iamVjdFN0b3JlOiBUaGUgb2JqZWN0IHN0b3JlIHVzZXMg
aW4tbGluZSBrZXlzIGFuZCB0aGUga2V5IHBhcmFtZXRlciB3YXMgcHJvdmlkZWQuIiB0aGF0IGlz
IG5vdCBhIERPTUV4Y2VwdGlvbiBEYXRhQ2xvbmVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVx
dWFsIHRvIDAsIGV4cGVjdGVkIDI1CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5
L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmln
aW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBz
LWV4cGVjdGVkLnR4dAppbmRleCAzYjc3NjYxMzM4OTQuLmNlNzA5MDQyNjg1MiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkLXBlcm1pc3Npb24u
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdp
bi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMiBA
QAogCi1GQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9
IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZB
SUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6IG9yaWdp
biA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gc2VsZiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKFwpCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczov
LzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZAotUEFTUyBmcmFtZTogb3JpZ2luID0g
aHR0cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSAqCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBo
dHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHNlbGYKLVBBU1MgZnJhbWU6IG9yaWdpbiA9
IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMsIHZhbHVlID0gKFwpCitQQVNTIGZyYW1lOiBvcmlnaW4g
PSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZAorUEFTUyBmcmFtZTog
b3JpZ2luID0gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MywgdmFsdWUgPSAqCitQQVNTIGZyYW1lOiBv
cmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHNlbGYKK0ZBSUwgZnJhbWU6
IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0
cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSB1bmRlZmluZWQgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEy
Ny4wLjAuMTo5NDQzLCB2YWx1ZSA9ICogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0
IGdvdCB0cnVlCitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2
YWx1ZSA9IHNlbGYgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitG
QUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IChcKSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKIEZBSUwgZGVkaWNhdGVk
IHdvcmtlcjogc2NoZW1lID0gaHR0cHMsIHZhbHVlID0gdW5kZWZpbmVkIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQogRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hl
bWUgPSBodHRwcywgdmFsdWUgPSAqIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdv
dCBmYWxzZQogRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBodHRwcywgdmFsdWUgPSBz
ZWxmIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVu
ZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGI0MzljZGM5NzM1Ni4uZGRj
OGZjMzE4NjFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC5odHRwcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC03LDUgKzcsNSBAQCBQQVNTIFNhbWUtb3JpZ2luIHBvcHVwIHdpdGggY29vcCB1bnNhZmUt
bm9uZSB3aXRob3V0IGNvZXAKIFBBU1MgaGlzdG9yaWNhbDogInNhbWUtc2l0ZSIgcG9wdXAgd2l0
aCBjb29wIHVuc2FmZS1ub25lIHdpdGhvdXQgY29lcAogUEFTUyBTYW1lLW9yaWdpbiBwb3B1cCB3
aXRob3V0IGNvZXAKIFBBU1MgaGlzdG9yaWNhbDogInNhbWUtc2l0ZSIgcG9wdXAgd2l0aG91dCBj
b2VwCi1GQUlMIEJvbnVzOiB3aW5kb3cuY3Jvc3NPcmlnaW5Jc29sYXRlZCBhc3NlcnRfdHJ1ZTog
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgQm9udXM6IHdpbmRvdy5jcm9zc09yaWdpbklz
b2xhdGVkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
NzEyNzVlZmYwMTc1Li40MDI5YjVjMWU3ZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0zMTYyLDEwICszMTYyLDYgQEAgd2Via2l0Lm9yZy9iLzIwNzY1
MSBpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0
ZV9vYmoKIAogd2Via2l0Lm9yZy9iLzIwNzY1MiBpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTUuaHRtbCBbIFBhc3MgVGlt
ZW91dCBdCiAKLXdlYmtpdC5vcmcvYi8yMjk1NjUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9lbmNvZGluZy9zaGFyZWRhcnJheWJ1ZmZlci5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJl
IF0KLQotd2Via2l0Lm9yZy9iLzIyOTUwMSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJyYXlidWZmZXItdGhyb3dzLmh0dHBzLmh0bWwg
WyBQYXNzIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMjA3NzAyIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleS1nZW5lcmF0b3JzL3JlYWRpbmctYXV0b2luY3Jl
bWVudC1pbmRleGVzLmFueS5zZXJ2aWNld29ya2VyLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiB3
ZWJraXQub3JnL2IvMjA3NzAzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tldC1pbi1zZXJ2aWNlLXdvcmtlci5odHRw
cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggYWU2ZjY0NTBmYTZjLi4yZDE2ZGU5NmFlYTQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xOTk3LDEwICsxOTk3LDYgQEAgd2Vi
a2l0Lm9yZy9iLzIxNjAyNCBbIE1vamF2ZSBDYXRhbGluYSBdIGZhc3QvdGV4dC9haG9tLmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzIxNjI5OCBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9ibG9iLXZhbGlkLWFmdGVyLWRlbGV0aW9uLmFu
eS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzIyOTUwMSBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJyYXlidWZm
ZXItdGhyb3dzLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotCi13ZWJraXQub3JnL2IvMjI5
NTY1IFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL3No
YXJlZGFycmF5YnVmZmVyLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotCiB3ZWJraXQub3Jn
L2IvMTg2MDQ1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aS90ZXh0
LW92ZXJmbG93LTAxNy5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTg2MDQ1IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdmhfbm90X3JlZnJlc2hpbmdf
b25fY2hyb21lLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xODYwNDUgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9lbWJl
ZGRlZC1jb250ZW50L2Nyb3NzLWRvbWFpbi1pZnJhbWUuc3ViLmh0bWwgWyBTa2lwIF0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGY2MWE0Y2RhZTI1ZC4uYzI4
ZTU3OGVlMDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAg
LTk0OCw2ICs5NDgsMTUgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChD
YWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmUKICAgICByZXNwb25zZVJl
Y2VpdmVkKHJlc3BvbnNlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3N0YXRp
YyBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIHRvTmVlZHNCcm93c2luZ0NvbnRleHRH
cm91cFN3aXRjaChjb25zdCBzdGQ6Om9wdGlvbmFsPENyb3NzT3JpZ2luT3BlbmVyUG9saWN5RW5m
b3JjZW1lbnRSZXN1bHQ+JiBjdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0KQoreworICAgIGlm
ICghY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdCB8fCAhY3VycmVudENvb3BFbmZvcmNlbWVu
dFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCkKKyAgICAgICAgcmV0dXJu
IE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6Ok5vOworICAgIGlmIChjdXJyZW50Q29v
cEVuZm9yY2VtZW50UmVzdWx0LT5jcm9zc09yaWdpbk9wZW5lclBvbGljeS52YWx1ZSA9PSBDcm9z
c09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpTYW1lT3JpZ2luUGx1c0NPRVApCisgICAgICAgIHJl
dHVybiBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoOjpZZXNXaXRoQ3Jvc3NPcmlnaW5J
c29sYXRpb247CisgICAgcmV0dXJuIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6Olll
c1dpdGhvdXRDcm9zc09yaWdpbklzb2xhdGlvbjsKK30KKwogdm9pZCBEb2N1bWVudExvYWRlcjo6
cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChy
ZXNwb25zZS5jZXJ0aWZpY2F0ZUluZm8oKSk7CkBAIC0xMDQ4LDcgKzEwNTcsNyBAQCB2b2lkIERv
Y3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBDb21wbGV0aQogICAgIGlmIChtYWluUmVzb3VyY2VMb2FkZXIpCiAgICAgICAgIG1h
aW5SZXNvdXJjZUxvYWRlci0+bWFya0luQXN5bmNSZXNwb25zZVBvbGljeUNoZWNrKCk7CiAgICAg
YXV0byByZXF1ZXN0SWRlbnRpZmllciA9IFBvbGljeUNoZWNrSWRlbnRpZmllcjo6Y3JlYXRlKCk7
Ci0gICAgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoID0gbV9jdXJyZW50Q29v
cEVuZm9yY2VtZW50UmVzdWx0ICYmIG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdC0+bmVl
ZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaDsKKyAgICBhdXRvIG5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2ggPSB0b05lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gobV9jdXJy
ZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0KTsKICAgICBmcmFtZUxvYWRlcigpLT5jaGVja0NvbnRl
bnRQb2xpY3kobV9yZXNwb25zZSwgcmVxdWVzdElkZW50aWZpZXIsIG5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1h
aW5SZXNvdXJjZUxvYWRlciA9IFdURk1vdmUobWFpblJlc291cmNlTG9hZGVyKSwKICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxlYXNlKCksIHJl
cXVlc3RJZGVudGlmaWVyXSAoUG9saWN5QWN0aW9uIHBvbGljeSwgUG9saWN5Q2hlY2tJZGVudGlm
aWVyIHJlc3BvbnNlSWRlbnRpZmllcikgbXV0YWJsZSB7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KHJlc3BvbnNlSWRlbnRpZmllci5pc1ZhbGlkRm9yKHJlcXVlc3RJZGVudGlmaWVyKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDk2NGUyZGQxMjA3MC4uMjZjOTY2
MzlhZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtODE2LDcg
KzgxNiw3IEBAIHZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hTaG93KCkKIHsK
IH0KIAotdm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZv
clJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wsIEZyYW1lUG9saWN5
RnVuY3Rpb24mJikKK3ZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBOZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDEy
MGE0YTUyMGJkMS4uM2NiYjMxMGEyZTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTk2LDcgKzk2LDcgQEAgcHJpdmF0ZToKICAgICBG
cmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBOZXdGcmFt
ZU9wZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKIAot
ICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1l
UG9saWN5RnVuY3Rpb24mJikgZmluYWw7CisgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZv
clJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIE5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBk
aXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiwg
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAg
IHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmln
YXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZWRpcmVjdFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBQb2xpY3lEZWNpc2lvbk1vZGUsIFBv
bGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2
b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAppbmRleCA3YWE3NmFjNmQxZWIuLjZiMDIzNjFhMWI1NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC00MTMsNyArNDEzLDcgQEAgdm9pZCBGcmFtZUxvYWRl
cjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKICAgICB9CiB9CiAKLXZvaWQgRnJhbWVM
b2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlv
bikKK3ZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBpZiAo
IWFjdGl2ZURvY3VtZW50TG9hZGVyKCkpIHsKICAgICAgICAgLy8gTG9hZCB3YXMgY2FuY2VsbGVk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGU1NmMwOGY3MDM2YS4uNzk4OThh
NjRhNGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMjIwLDcgKzIyMCw3
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKTsKIAotICAgIHZv
aWQgY2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVu
dFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJik7CisgICAgdm9pZCBjaGVja0NvbnRlbnRQb2xpY3ko
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgTmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJik7
CiAKICAgICB2b2lkIGRpZEV4cGxpY2l0T3BlbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDM5YmI0MDU0MDljNC4uMjY4NDMxYTVkOTU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTkwLDcgKzE5MCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYsIE5ld0ZyYW1lT3BlbmVyUG9saWN5KSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoU2hvdygpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG93bmxv
YWRBdHRyaWJ1dGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQ
b2xpY3lGdW5jdGlvbiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJp
YnV0ZSwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlv
biYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2lu
ZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgUG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24m
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVj
dFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBQb2xpY3lEZWNpc2lvbk1vZGUsIFBvbGljeUNoZWNrSWRl
bnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNh
bmNlbFBvbGljeUNoZWNrKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5
cGVzLmgKaW5kZXggYzUxNWJhZTRkMjE4Li5jZGQwMTA0MTA2NTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaApAQCAtMTY3LDYgKzE2NywxMiBAQCBlbnVtIGNsYXNz
IFVubG9hZEV2ZW50UG9saWN5IHsKICAgICBVbmxvYWRBbmRQYWdlSGlkZQogfTsKIAorZW51bSBj
bGFzcyBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIDogdWludDhfdCB7CisgICAgTm8s
CisgICAgWWVzV2l0aG91dENyb3NzT3JpZ2luSXNvbGF0aW9uLAorICAgIFllc1dpdGhDcm9zc09y
aWdpbklzb2xhdGlvbiwKK307CisKIC8vIFBhc3NlZCB0byBGcmFtZUxvYWRlcjo6dXJsU2VsZWN0
ZWQoKSBhbmQgU2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZUlmSmF2YVNjcmlwdFVSTCgpCiAvLyB0
byBjb250cm9sIHdoZXRoZXIsIGluIHRoZSBjYXNlIG9mIGEgSmF2YVNjcmlwdCBVUkwsIGV4ZWN1
dGVJZkphdmFTY3JpcHRVUkwoKSBzaG91bGQKIC8vIHJlcGxhY2UgdGhlIGRvY3VtZW50LiBJdCBp
cyBhIEZJWE1FIHRvIGVsaW1pbmF0ZSB0aGlzIGV4dHJhIHBhcmFtZXRlciBmcm9tCkBAIC0yNzYs
NiArMjgyLDE1IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UG9saWN5
QWN0aW9uPiB7CiAgICAgPjsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2Vi
Q29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaD4geworICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2gsCisgICAgICAgIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0
Y2g6Ok5vLAorICAgICAgICBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
OjpZZXNXaXRob3V0Q3Jvc3NPcmlnaW5Jc29sYXRpb24sCisgICAgICAgIFdlYkNvcmU6Ok5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6Olllc1dpdGhDcm9zc09yaWdpbklzb2xhdGlvbgor
ICAgID47Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVz
PAogICAgICAgICBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDlhMzI1NWE2OWQyOS4uZjkyZGRjYzgwMDZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xOTIzLDkgKzE5MjMsMTUgQEAgYm9vbCBET01X
aW5kb3c6OmlzU2VjdXJlQ29udGV4dCgpIGNvbnN0CiAKIGJvb2wgRE9NV2luZG93Ojpjcm9zc09y
aWdpbklzb2xhdGVkKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50ZWQgdGhpcy4g
VGhpcyBzaG91bGQgcmV0dXJuIHRydWUgaWYgQ09PUC9DT0VQIGFyZSB1c2VkIGFuZCB0aGUgcGFn
ZSBpcyBhbGxvd2VkIHRvIHVzZSBBUElzCi0gICAgLy8gdGhhdCByZXF1aXJlIGNyb3NzLW9yaWdp
biBpc29sYXRpb24gKGUuZy4gU2hhcmVkQXJyYXlCdWZmZXIpLgotICAgIHJldHVybiBmYWxzZTsK
KyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVu
dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byYgc2V0dGluZ3MgPSBkb2N1bWVu
dC0+c2V0dGluZ3MoKTsKKyAgICBpZiAoIXNldHRpbmdzLmNyb3NzT3JpZ2luT3BlbmVyUG9saWN5
RW5hYmxlZCgpIHx8ICFzZXR0aW5ncy5jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5RW5hYmxlZCgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gZG9jdW1lbnQtPnRvcERvY3Vt
ZW50KCkuY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3koKS52YWx1ZSA9PSBDcm9zc09yaWdpbk9wZW5l
clBvbGljeVZhbHVlOjpTYW1lT3JpZ2luUGx1c0NPRVA7CiB9CiAKIHN0YXRpYyB2b2lkIGRpZEFk
ZFN0b3JhZ2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyYgd2luZG93KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsCmluZGV4IDQwZjg3NDdiMWRhZi4uMWJjMTMwMWNmYTBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCkBAIC03OSw4ICs3OSw2IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IE5hdmlnYXRvciBuYXZpZ2F0b3I7CiAgICAgLy8gRklYTUU6IFRoaXMgaXMgc3BlY2lmaWVkIHRv
IGJlIFtTZWN1cmVDb250ZXh0XQogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01BcHBsaWNhdGlv
bkNhY2hlIGFwcGxpY2F0aW9uQ2FjaGU7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCAnb3JpZ2lu
SXNvbGF0ZWQnCi0gICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gb3JpZ2luSXNvbGF0
ZWQ7CiAKICAgICAvLyB1c2VyIHByb21wdHMKICAgICB1bmRlZmluZWQgYWxlcnQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGZiMjM0N2Q1Zjg5Yy4uMmYx
M2Y0YmY3YWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAg
LTcxOSw2ICs3MTksNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dl
YkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMnOiBbJzxXZWJDb3JlL01lZGlhUGxh
eWVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6
SGFzQWN0aXZpdHknOiBbJzxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5JzogWyc8V2ViQ29yZS9Eb2N1bWVu
dExvYWRlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24nOiBbJzxXZWJDb3JlL05ldHdvcmtM
b2FkSW5mb3JtYXRpb24uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21E
YXRhJzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0
ZWJvYXJkSW1hZ2UnOiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4nXSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXgg
YWZmYjU4YjI5NzQ0Li4yN2NjMWUzNmJhMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0xMjIsNiArMTIyLDcg
QEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbWVtb3J5Q2FjaGVEaXNhYmxlZDsKICAg
ICBlbmNvZGVyIDw8IGF0dHJTdHlsZUVuYWJsZWQ7CiAgICAgZW5jb2RlciA8PCBzaG91bGRUaHJv
d0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbjsKKyAgICBlbmNvZGVyIDw8
IGlzQ3Jvc3NPcmlnaW5Jc29sYXRlZDsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQog
ICAgIGVuY29kZXIgPDwgaGFzSW1hZ2VTZXJ2aWNlczsKQEAgLTM4OSw2ICszOTAsOCBAQCBib29s
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29k
ZXIsIFdlYlByb2Nlc3NDcmVhdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3Rh
bnRSZWRlY2xhcmF0aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocGFyYW1ldGVycy5pc0Nyb3NzT3JpZ2luSXNvbGF0ZWQpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHBhcmFtZXRlcnMuaGFzSW1hZ2VTZXJ2aWNlcykpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggZGM2YjIy
OTdkMmY4Li4zMTEzMGE2ZDljZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEzNSw2ICsxMzUsNyBAQCBzdHJ1Y3Qg
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCBtZW1vcnlDYWNoZURpc2Fi
bGVkIHsgZmFsc2UgfTsKICAgICBib29sIGF0dHJTdHlsZUVuYWJsZWQgeyBmYWxzZSB9OwogICAg
IGJvb2wgc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24g
eyB0cnVlIH07CisgICAgYm9vbCBpc0Nyb3NzT3JpZ2luSXNvbGF0ZWQgeyBmYWxzZSB9OwogCiAj
aWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgYm9vbCBoYXNJbWFnZVNlcnZpY2VzIHsg
ZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFs
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVBy
b3h5LmNwcAppbmRleCA0MWNkMzVkYmZhOGQuLjk5ZTUxNjUwZDMxNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApAQCAtMzMwLDcgKzMz
MCw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25Bc3luYyhGcmFtZUlkZW50aWZpZXIKICAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFn
ZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25J
RCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIFdURk1vdmUob3JpZ2luYXRpbmdGcmFt
ZUluZm8pLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVl
c3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNl
ckRhdGEsIGxpc3RlbmVySUQpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0
YSYmIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBj
YW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2Fz
QWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcm
IGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBOZWVk
c0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0
Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAg
ICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgK
aW5kZXggMjcxNGIyYTViNTQ3Li5kNDkwNzBlNzNlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtMTI0LDcgKzEyNCw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBzZW5kTWVzc2FnZShVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYmLCBPcHRp
b25TZXQ8SVBDOjpTZW5kT3B0aW9uPiwgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8Q29tcGxldGlv
bkhhbmRsZXI8dm9pZChJUEM6OkRlY29kZXIqKT4sIHVpbnQ2NF90Pj4mJikgZmluYWw7CiAKICAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1l
SW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJv
eHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6
OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVy
SUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNv
bnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRC
dW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlz
dGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJv
b2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29s
IHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5nQ29udGV4
dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAg
IHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwogICAgIHZvaWQgZGlkUGVyZm9y
bVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJp
bmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAg
IHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNWZiMzA4OTUwMTU2Li4xOGExZmQwMTkzYWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTYxNywxMiArNTYx
NywxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9u
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0Rh
dGEmJiBmcmFtZUluZm8sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0
IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsCi0gICAgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3Rl
ZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCisgICAgYm9vbCB3YXNBbGxvd2Vk
QnlJbmplY3RlZEJ1bmRsZSwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCBuZWVkc0Jy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEpCiB7CiAgICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9w
cm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVJbmZv
KSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01J
TUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIG5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hl
Y2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Ym9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJv
b2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRH
cm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hl
Y2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Ym9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJv
b2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBT
d2l0Y2ggbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJ
RCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3Ig
cHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTU2NDYsMTYgKzU2NDYsMTQgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywKICAgICAgICAgfSk7CiAKICAgICAgICAgYXV0byB3aWxsQ29udGlu
dWVMb2FkSW5OZXdQcm9jZXNzID0gV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6Tm87Ci0g
ICAgICAgIGlmIChwb2xpY3lBY3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYgbmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCAmJiBuYXZpZ2F0aW9uKSB7Ci0gICAgICAgICAgICBSZWdp
c3RyYWJsZURvbWFpbiByZXNwb25zZURvbWFpbiB7IG5hdmlnYXRpb25SZXNwb25zZS0+cmVzcG9u
c2UoKS51cmwoKSB9OwotICAgICAgICAgICAgLy8gQXZvaWQgcHJvY2Vzcy1zd2FwcGluZyBpbiBj
YXNlcyB3aGVyZSB0aGUgcHJvY2VzcyBvbmx5IGNvbnRhaW5zIGEgc2luZ2xlIHBhZ2UgYW5kIGlz
IG9yaWdpbi1jbGVhbi4KLSAgICAgICAgICAgIGlmICh0aGlzLT5wcm9jZXNzKCkucGFnZUNvdW50
KCkgPiAxIHx8ICh0aGlzLT5wcm9jZXNzKCkub3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbigpICYm
ICp0aGlzLT5wcm9jZXNzKCkub3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbigpICE9IHJlc3BvbnNl
RG9tYWluKSkgewotICAgICAgICAgICAgICAgIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xPRyhQcm9j
ZXNzU3dhcHBpbmcsICJkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZDogUHJvY2Vzcy1zd2Fw
cGluZyBkdWUgdG8gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiKTsKLSAgICAgICAgICAgICAg
ICBwb2xpY3lBY3Rpb24gPSBQb2xpY3lBY3Rpb246Oklnbm9yZTsKLSAgICAgICAgICAgICAgICBh
dXRvIHByb2Nlc3NGb3JOYXZpZ2F0aW9uID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLnByb2Nl
c3NGb3JSZWdpc3RyYWJsZURvbWFpbih3ZWJzaXRlRGF0YVN0b3JlKCksIHRoaXMsIHJlc3BvbnNl
RG9tYWluKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3Mo
Km5hdmlnYXRpb24sIG51bGxwdHIsIFdURk1vdmUocHJvY2Vzc0Zvck5hdmlnYXRpb24pLCBQcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OjpObywgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
OjpZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24sIG51bGxwdHIpOwotICAgICAgICAgICAg
ICAgIHdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3MgPSBXaWxsQ29udGludWVMb2FkSW5OZXdQ
cm9jZXNzOjpZZXM7Ci0gICAgICAgICAgICB9CisgICAgICAgIGlmIChwb2xpY3lBY3Rpb24gPT0g
UG9saWN5QWN0aW9uOjpVc2UgJiYgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCAhPSBO
ZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoOjpObyAmJiBuYXZpZ2F0aW9uKSB7CisgICAg
ICAgICAgICBXRUJQQUdFUFJPWFlfUkVMRUFTRV9MT0coUHJvY2Vzc1N3YXBwaW5nLCAiZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQ6IFByb2Nlc3Mtc3dhcHBpbmcgZHVlIHRvIENyb3NzLU9y
aWdpbi1PcGVuZXItUG9saWN5Iik7CisgICAgICAgICAgICBwb2xpY3lBY3Rpb24gPSBQb2xpY3lB
Y3Rpb246Oklnbm9yZTsKKyAgICAgICAgICAgIGF1dG8gc2hvdWxkQmVDcm9zc09yaWdpbklzb2xh
dGVkID0gbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCA9PSBOZWVkc0Jyb3dzaW5nQ29u
dGV4dEdyb3VwU3dpdGNoOjpZZXNXaXRoQ3Jvc3NPcmlnaW5Jc29sYXRpb24gPyBXZWJQcm9jZXNz
UG9vbDo6SXNDcm9zc09yaWdpbklzb2xhdGVkOjpZZXMgOiBXZWJQcm9jZXNzUG9vbDo6SXNDcm9z
c09yaWdpbklzb2xhdGVkOjpObzsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBvbmx5IG5lZWQg
YSBmcmVzaCBuZXcgcHJvY2VzcyBpbiBjYXNlIG9mIGlzb2xhdGlvbi4KKyAgICAgICAgICAgIGF1
dG8gcHJvY2Vzc0Zvck5hdmlnYXRpb24gPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkuY3JlYXRl
TmV3V2ViUHJvY2Vzcygmd2Vic2l0ZURhdGFTdG9yZSgpLCBXZWJQcm9jZXNzUHJveHk6OklzUHJl
d2FybWVkOjpObywgc2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkKTsKKyAgICAgICAgICAgIGNv
bnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcygqbmF2aWdhdGlvbiwgbnVsbHB0ciwgV1RGTW92
ZShwcm9jZXNzRm9yTmF2aWdhdGlvbiksIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5v
LCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyUmVzcG9uc2VQb2xpY3lEZWNp
c2lvbiwgbnVsbHB0cik7CisgICAgICAgICAgICB3aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNz
ID0gV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6WWVzOwogICAgICAgICB9CiAgICAgICAg
IAogICAgICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlv
bi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKHNl
bmRlciksIHsgfSwgd2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGVhMWMyMmZiNmIxMS4uMDBhOTU3NDM1YWFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTc0MSw3ICsxNzQxLDcg
QEAgcHVibGljOgogICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVS
TEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7CiAgICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJh
bWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmIG9yaWdp
bmF0aW5nRnJhbWVJbmZvLCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9y
aWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFs
UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVu
Y2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVz
cG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9E
YXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxv
YWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNC
cm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNl
ckRhdGEmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwg
Y29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3Rl
ZEJ1bmRsZSwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0
X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1l
VGFza1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBsb2FkRGF0YVdpdGhOYXZp
Z2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBT
dHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJh
c2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwgc3Rk
OjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5LCBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlW
aXNpYmlsaXR5KTsKICAgICB2b2lkIGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIEFQSTo6TmF2aWdh
dGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERv
bWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IHN0ZDo6bnVsbG9w
dCk7CkBAIC0yMDYwLDcgKzIwNjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yTmV3V2luZG93QWN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0
YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIE5hdmlnYXRpb25BY3Rpb25EYXRh
JiYsCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIGZy
YW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lk
IGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJ
bmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwKLSAgICAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBT
dHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxl
LCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1F
VHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJ
bmplY3RlZEJ1bmRsZSwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwg
dWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIHVuYWJsZVRv
SW1wbGVtZW50UG9saWN5KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBiZWdpblNhZmVCcm93
c2luZ0NoZWNrKGNvbnN0IFVSTCYsIGJvb2wsIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eSYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KaW5kZXggYmMzN2I4ZmM2YWRmLi40OWQzZDNhMjU3ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTEwNyw3ICsxMDcsNyBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICAgICAjIFBvbGljeSBtZXNz
YWdlcwotICAgIERlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFN0cmluZyBk
b3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBu
ZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJL
aXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRh
IGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
IHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93
TUlNRVR5cGUsIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmpl
Y3RlZEJ1bmRsZSwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2ggbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVu
ZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBEZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVj
dCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0
cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBz
dHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgc3Rk
OjpvcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFn
ZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9k
eSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVz
ZXJEYXRhIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogICAgIERlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBi
b29sIGlzTWFpbkZyYW1lLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBu
YXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5h
dGluZ0ZyYW1lSW5mb0RhdGEsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVu
dGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdp
bmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURh
dGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJl
Y3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkgLT4gKHN0cnVjdCBXZWJLaXQ6
OlBvbGljeURlY2lzaW9uIFBvbGljeURlY2lzaW9uKSBTeW5jaHJvbm91cwogICAgIERlY2lkZVBv
bGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
c3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6Ok5hdmln
YXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdCwgU3RyaW5nIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2Vi
S2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcAppbmRleCAxZjgzZDQwMzI0OWMuLmE2ZDliZWU2YTkzNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNTk2LDcgKzU5Niw3IEBAIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnJlc29sdmVQYXRoc0ZvclNhbmRib3hFeHRlbnNpb25zKCkKICAg
ICBwbGF0Zm9ybVJlc29sdmVQYXRoc0ZvclNhbmRib3hFeHRlbnNpb25zKCk7CiB9CiAKLVJlZjxX
ZWJQcm9jZXNzUHJveHk+IFdlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKFdlYnNp
dGVEYXRhU3RvcmUqIHdlYnNpdGVEYXRhU3RvcmUsIFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJt
ZWQgaXNQcmV3YXJtZWQpCitSZWY8V2ViUHJvY2Vzc1Byb3h5PiBXZWJQcm9jZXNzUG9vbDo6Y3Jl
YXRlTmV3V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3JlLCBXZWJQ
cm9jZXNzUHJveHk6OklzUHJld2FybWVkIGlzUHJld2FybWVkLCBJc0Nyb3NzT3JpZ2luSXNvbGF0
ZWQgaXNDcm9zc09yaWdpbklzb2xhdGVkKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIG1f
dGNjUHJlZmVyZW5jZUVuYWJsZWQgPSBkb2VzQXBwSGF2ZUlUUEVuYWJsZWQoKTsKQEAgLTYwNSw2
ICs2MDUsOCBAQCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3
V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaQogI2VuZGlmCiAKICAgICBhdXRvIHBy
b2Nlc3NQcm94eSA9IFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlKCp0aGlzLCB3ZWJzaXRlRGF0YVN0
b3JlLCBpc1ByZXdhcm1lZCk7CisgICAgaWYgKGlzQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9PSBJc0Ny
b3NzT3JpZ2luSXNvbGF0ZWQ6OlllcykKKyAgICAgICAgcHJvY2Vzc1Byb3h5LT5tYXJrQXNDcm9z
c09yaWdpbklzb2xhdGVkKCk7CiAgICAgaW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3MocHJvY2Vzc1By
b3h5LCB3ZWJzaXRlRGF0YVN0b3JlLCBpc1ByZXdhcm1lZCk7CiAgICAgbV9wcm9jZXNzZXMuYXBw
ZW5kKHByb2Nlc3NQcm94eS5jb3B5UmVmKCkpOwogCkBAIC03OTQsNiArNzk2LDcgQEAgdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiBw
cm9jZXNzLCBXZWJzaXRlRGEKICAgICBwYXJhbWV0ZXJzLmRlZmF1bHRSZXF1ZXN0VGltZW91dElu
dGVydmFsID0gQVBJOjpVUkxSZXF1ZXN0OjpkZWZhdWx0VGltZW91dEludGVydmFsKCk7CiAKICAg
ICBwYXJhbWV0ZXJzLmJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSA9IGJhY2tGb3J3YXJkQ2FjaGUo
KS5jYXBhY2l0eSgpOworICAgIHBhcmFtZXRlcnMuaXNDcm9zc09yaWdpbklzb2xhdGVkID0gcHJv
Y2Vzcy5pc0Nyb3NzT3JpZ2luSXNvbGF0ZWQoKTsKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05T
KQogICAgIC8vIEZJWE1FOiBUaGVyZSBzaG91bGQgYmUgYSBnZW5lcmljIHdheSBmb3Igc3VwcGxl
bWVudHMgdG8gYWRkIHRvIHRoZSBpbnRpYWxpemF0aW9uIHBhcmFtZXRlcnMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAwNTM1OWE3ZGQ0MTEuLjUyYjBlMDIz
NTAyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC01MTQs
NiArNTE0LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgY29udGFpbmVyVGVtcG9yYXJ5
RGlyZWN0b3J5KCk7CiAjZW5kaWYKIAorICAgIGVudW0gY2xhc3MgSXNDcm9zc09yaWdpbklzb2xh
dGVkIDogYm9vbCB7IE5vLCBZZXMgfTsKKyAgICBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBjcmVhdGVO
ZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqLCBXZWJQcm9jZXNzUHJveHk6OklzUHJld2Fy
bWVkID0gV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1lZDo6Tm8sIElzQ3Jvc3NPcmlnaW5Jc29s
YXRlZCA9IElzQ3Jvc3NPcmlnaW5Jc29sYXRlZDo6Tm8pOworCiBwcml2YXRlOgogICAgIHZvaWQg
cGxhdGZvcm1Jbml0aWFsaXplKCk7CiAKQEAgLTUyNCw3ICs1MjcsNiBAQCBwcml2YXRlOgogCiAg
ICAgUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gdHJ5VGFrZVByZXdhcm1lZFByb2Nlc3MoV2Vic2l0
ZURhdGFTdG9yZSYpOwogCi0gICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gY3JlYXRlTmV3V2ViUHJv
Y2VzcyhXZWJzaXRlRGF0YVN0b3JlKiwgV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1lZCA9IFdl
YlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQ6Ok5vKTsKICAgICB2b2lkIGluaXRpYWxpemVOZXdX
ZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYsIFdlYnNpdGVEYXRhU3RvcmUqLCBXZWJQcm9jZXNz
UHJveHk6OklzUHJld2FybWVkID0gV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1lZDo6Tm8pOwog
CiAgICAgdm9pZCBoYW5kbGVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZU5hbWUsIGNvbnN0IFVzZXJEYXRhJiBtZXNzYWdlQm9keSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBkOGU2YzczYWE2ZTkuLjdlNjY5
OGY3MDQ3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CkBAIC0xMTQ2LDYgKzExNDYsMTEgQEAgYm9vbCBXZWJQcm9jZXNzUHJveHk6OmNhbkJlQWRkZWRU
b1dlYlByb2Nlc3NDYWNoZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAK
KyAgICBpZiAobV9pc0Nyb3NzT3JpZ2luSXNvbGF0ZWQpIHsKKyAgICAgICAgV0VCUFJPQ0VTU1BS
T1hZX1JFTEVBU0VfTE9HKFByb2Nlc3MsICJjYW5CZUFkZGVkVG9XZWJQcm9jZXNzQ2FjaGU6IE5v
dCBhZGRpbmcgdG8gcHJvY2VzcyBjYWNoZSBiZWNhdXNlIHRoZSBwcm9jZXNzIGlzIGNyb3NzLW9y
aWdpbiBpc29sYXRlZCIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgaWYg
KFdlYktpdDo6aXNJbnNwZWN0b3JQcm9jZXNzUG9vbChwcm9jZXNzUG9vbCgpKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCkBAIC0xODI0LDYgKzE4MjksMTEgQEAgdm9pZCBXZWJQcm9jZXNzUHJv
eHk6OnBhZ2VJc0JlY29taW5nSW52aXNpYmxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIGlkZW50
aWZpZXIKICAgICAgICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXItPm11dGUoKTsKIH0KIAordm9p
ZCBXZWJQcm9jZXNzUHJveHk6Om1hcmtBc0Nyb3NzT3JpZ2luSXNvbGF0ZWQoKQoreworICAgIG1f
aXNDcm9zc09yaWdpbklzb2xhdGVkID0gdHJ1ZTsKK30KKwogI2lmIFBMQVRGT1JNKFdBVENIT1Mp
CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzdGFydEJhY2tncm91bmRBY3Rpdml0eUZvckZ1bGxz
Y3JlZW5JbnB1dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmlu
ZGV4IGE0MGU2OWRmYTUyMi4uMjljZTU1M2Y5YzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNDE5LDYgKzQxOSw5IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldENhcHRpb25MYW5ndWFnZShjb25zdCBTdHJpbmcmKTsKICNlbmRpZgogCisgICAgdm9pZCBt
YXJrQXNDcm9zc09yaWdpbklzb2xhdGVkKCk7CisgICAgYm9vbCBpc0Nyb3NzT3JpZ2luSXNvbGF0
ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQ3Jvc3NPcmlnaW5Jc29sYXRlZDsgfQorCiBwcm90ZWN0
ZWQ6CiAgICAgV2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9y
ZSosIElzUHJld2FybWVkKTsKIApAQCAtNjIwLDYgKzYyMyw3IEBAIHByaXZhdGU6CiAKICAgICBi
b29sIG1faGFzQ29tbWl0dGVkQW55UHJvdmlzaW9uYWxMb2FkcyB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2lzUHJld2FybWVkOworICAgIGJvb2wgbV9pc0Nyb3NzT3JpZ2luSXNvbGF0ZWQgeyBmYWxz
ZSB9OwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgYm9vbCBtX2hhc0lzc3Vl
ZEF0dGFjaG1lbnRFbGVtZW50UmVsYXRlZFNhbmRib3hFeHRlbnNpb25zIHsgZmFsc2UgfTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNzIzMTVhNTc1ODczLi4x
NmE1ZjY0NjA4YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtODE2LDcg
KzgxNiw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygpCiAgICAg
d2ViUGFnZS0+c2hvdygpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29s
IG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBm
dW5jdGlvbikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIE5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2ggbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xp
Y3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQogewogICAgIGF1dG8qIHdlYlBhZ2UgPSBtX2ZyYW1lLT5w
YWdlKCk7CiAgICAgaWYgKCF3ZWJQYWdlKSB7CkBAIC04MzcsNyArODM3LDcgQEAgdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBS
ZXNvdXJjZVJlc3BvbnMKICAgICBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb24gcG9saWN5ID0gd2Vi
UGFnZS0+aW5qZWN0ZWRCdW5kbGVQb2xpY3lDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZSh3ZWJQYWdlLCBtX2ZyYW1lLnB0cigpLCByZXNwb25zZSwgcmVxdWVzdCwgdXNlckRhdGEpOwog
ICAgIC8vIElmIGEgYnJvd3NpbmcgY29udGV4dCBzd2l0Y2ggaXMgcmVxdWVzdGVkLCB3ZSBzdGls
bCBuZWVkIHRvIHNlbmQgdGhlIElQQyB0byB0aGUgVUlQcm9jZXNzIGluIG9yZGVyIHRvIHByb2Nl
c3Mtc3dhcCBpZiBuZWNlc3NhcnksIGV2ZW4gdGhvdWdoIHRoZQogICAgIC8vIGluamVjdGVkIGJ1
bmRsZSBoYXMgYWxyZWFkeSBoYW5kbGVkIHRoZSBwb2xpY3kgZGVjaXNpb24uCi0gICAgaWYgKHBv
bGljeSA9PSBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb25Vc2UgJiYgIW5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gpIHsKKyAgICBpZiAocG9saWN5ID09IFdLQnVuZGxlUGFnZVBvbGljeUFj
dGlvblVzZSAmJiBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoID09IE5lZWRzQnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2g6Ok5vKSB7CiAgICAgICAgIFdFQkZSQU1FTE9BREVSQ0xJRU5U
X1JFTEVBU0VfTE9HKE5ldHdvcmssICJkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlOiBj
b250aW51aW5nIGJlY2F1c2UgaW5qZWN0ZWQgYnVuZGxlIHNheXMgc28iKTsKICAgICAgICAgZnVu
Y3Rpb24oUG9saWN5QWN0aW9uOjpVc2UsIGlkZW50aWZpZXIpOwogICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDk2NjZkNjdmODYyMC4uNTFkNmMxMjM4ZjI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTI5LDcgKzEyOSw3IEBAIHByaXZh
dGU6CiAgICAgV2ViQ29yZTo6RnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uJiwgV2ViQ29yZTo6TmV3RnJhbWVPcGVuZXJQb2xpY3kpIGZpbmFs
OwogICAgIHZvaWQgZGlzcGF0Y2hTaG93KCkgZmluYWw7CiAgICAgCi0gICAgdm9pZCBkaXNwYXRj
aERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAg
ICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNv
cmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBX
ZWJDb3JlOjpGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFs
OwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0
IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBX
ZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBm
aW5hbDsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMjcyYjU0N2ZlZDM1Li4wMWQ0YjQ0NzYwYTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTM4NSw2ICszODUs
MTAgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBpZiAocGFyYW1ldGVycy53ZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycykKICAgICAgICAgc2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnMoV1RGTW92ZSgqcGFyYW1ldGVycy53ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycykpOwogCisg
ICAgLy8gQ3Jvc3Mtb3JpZ2luLWlzb2xhdGVkIHByb2Nlc3NlcyAodmlhIENPT1AvQ09FUCkgYXJl
IGFsbG93ZWQgdG8gdXNlIFNoYXJlZEFycmF5QnVmZmVyLgorICAgIGlmIChwYXJhbWV0ZXJzLmlz
Q3Jvc3NPcmlnaW5Jc29sYXRlZCkKKyAgICAgICAgSlNDOjpPcHRpb25zOjp1c2VTaGFyZWRBcnJh
eUJ1ZmZlcigpID0gdHJ1ZTsKKwogICAgIFdlYkNvcmU6OnNldFByZXNlbnRpbmdBcHBsaWNhdGlv
blBJRChwYXJhbWV0ZXJzLnByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCk7CiAKICNpZiBPUyhMSU5V
WCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDA1MTYyNzAwOWE2Ni4uNGM0N2Q0MjZl
YWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEyNyw3ICsxMjcsNyBAQCBwcml2
YXRlOgogICAgIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgV2ViQ29y
ZTo6TmF2aWdhdGlvbkFjdGlvbiYsIFdlYkNvcmU6Ok5ld0ZyYW1lT3BlbmVyUG9saWN5KSBmaW5h
bDsKICAgICB2b2lkIGRpc3BhdGNoU2hvdygpIGZpbmFsOwogCi0gICAgdm9pZCBkaXNwYXRjaERl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRH
cm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2
b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6
Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJD
b3JlOjpGb3JtU3RhdGUqLCBjb25zdCBXVEY6OlN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmlu
YWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29u
c3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2Us
IFdlYkNvcmU6OkZvcm1TdGF0ZSosIFdlYkNvcmU6OlBvbGljeURlY2lzaW9uTW9kZSwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYp
IGZpbmFsOwogICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW0KaW5kZXggMGNmYmVlZTA0NDdkLi5hYWRmNGU3MDA0YzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC04NTUsNyArODU1LDcgQEAgdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hTaG93KCkKICAgICBbW3dlYlZpZXcgX1VJRGVsZWdhdGVGb3J3
YXJkZXJdIHdlYlZpZXdTaG93OndlYlZpZXddOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZy
YW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYsIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZy
YW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0g
Z2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCmluZGV4IGM1YWZhMTMzN2RiNC4uYWYxYzAyOWFhZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCkBAIC01MTksNyArNTE5LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hTaG93KCkKICAgICAgICAgdWktPndlYlZpZXdTaG93KHdlYlZpZXcpOwogfQog
Ci12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1l
UG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIE5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBX
ZWJWaWV3KiB3ZWJWaWV3ID0gbV93ZWJGcmFtZS0+d2ViVmlldygpOwogICAgIEZyYW1lKiBjb3Jl
RnJhbWUgPSBjb3JlKG1fd2ViRnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXgg
NjE0NjVjMTFmYzI1Li41NDU0ZmJiZGIzNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApA
QCAtOTEsNyArOTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWQo
KSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUoT3B0
aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4pIG92ZXJyaWRlOwogCi0gICAgdm9pZCBk
aXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRH
cm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBv
dmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9u
KGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBjb25zdCBXVEY6OlN0cmluZyYgZnJhbWVO
YW1lLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5
RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
IHJlZGlyZWN0UmVzcG9uc2UsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIFdlYkNvcmU6OlBvbGljeURl
Y2lzaW9uTW9kZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFt
ZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2so
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRleCAxZGVjZjMwNzNhYWYuLmYz
ZDlkYjg0YjNhNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAtNDA2LDYgKzQwNiw4IEBA
IHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpyZXNldEFmdGVyVGVzdCgpCiAgICAgdW5pbnN0YWxs
RmFrZUhlbHZldGljYSgpOwogCiAgICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnJlc2V0
VXNlclNjcmlwdEluamVjdGVkQ291bnQoKTsKKworICAgIG1fZGlkQ29tbWl0TWFpbkZyYW1lTG9h
ZCA9IGZhbHNlOwogfQogCiAvLyBMb2FkZXIgQ2xpZW50IENhbGxiYWNrcwpAQCAtNjM0LDYgKzYz
NiwxMSBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdp
dGhFcnJvckZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZQogICAgIGlmICghaW5qZWN0ZWRCdW5kbGUu
aXNUZXN0UnVubmluZygpKQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBJbiBjYXNlIG9mIGEg
Q09PUCBwcm9jZXNzLXN3YXAsIHRoZSBvbGQgcHJvY2VzcyBnZXRzIGEgZGlkRmFpbFByb3Zpc2lv
bmFsTG9hZFdpdGhFcnJvckZvckZyYW1lIGRlbGVnYXRlIGNhbGwuIFdlIHdhbnQgdG8gaWdub3Jl
CisgICAgLy8gdGhpcyBjYWxsIHNpbmNlIGl0IGNhdXNlcyB0aGUgdGVzdCB0byBkdW1wIGl0cyBv
dXRwdXQgdG9vIGVhZ2VybHksIGJlZm9yZSB0aGUgdGVzdCBoYXMgaGFkIGEgY2hhbmNlIHRvIHJ1
biBpbiB0aGUgbmV3IHByb2Nlc3MuCisgICAgaWYgKFdLQnVuZGxlRnJhbWVJc01haW5GcmFtZShm
cmFtZSkgJiYgIW1fZGlkQ29tbWl0TWFpbkZyYW1lTG9hZCAmJiBpbmplY3RlZEJ1bmRsZS5wYWdl
KCkgPT0gdGhpcykKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKGluamVjdGVkQnVuZGxlLnRl
c3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7CiAgICAgICAgIGR1
bXBMb2FkRXZlbnQoZnJhbWUsICJkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yIik7CiAg
ICAgICAgIGF1dG8gY29kZSA9IFdLRXJyb3JHZXRFcnJvckNvZGUoZXJyb3IpOwpAQCAtNjUyLDYg
KzY1OSw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDb21taXRMb2FkRm9yRnJhbWUo
V0tCdW5kbGVGcmFtZVJlZiBmcmFtZSkKICAgICBpZiAoIWluamVjdGVkQnVuZGxlLmlzVGVzdFJ1
bm5pbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKFdLQnVuZGxlRnJhbWVJc01haW5G
cmFtZShmcmFtZSkpCisgICAgICAgIG1fZGlkQ29tbWl0TWFpbkZyYW1lTG9hZCA9IHRydWU7CisK
ICAgICBpZiAoIWluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZyYW1lTG9h
ZENhbGxiYWNrcygpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmggYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCmluZGV4
IDMxNDg4YTUyYjVjZS4uMmQ5MTJlOTE2OWMxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKQEAgLTE4
MCw2ICsxODAsNyBAQCBwcml2YXRlOgogCiAgICAgV0tCdW5kbGVQYWdlUmVmIG1fcGFnZTsKICAg
ICBXS1JldGFpblB0cjxXS0J1bmRsZVNjcmlwdFdvcmxkUmVmPiBtX3dvcmxkOworICAgIGJvb2wg
bV9kaWRDb21taXRNYWluRnJhbWVMb2FkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdUUgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436588</attachid>
            <date>2021-08-26 16:48:26 -0700</date>
            <delta_ts>2021-08-27 09:47:07 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>229559_COOP_reenable_SharedArrayBuffer_wip.patch</filename>
            <type>text/plain</type>
            <size>53399</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL3NlcmlhbGl6ZS1zaGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvc2VyaWFsaXplLXNoYXJlZGFycmF5YnVmZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggYWNjMDQ2NDYwM2IxLi42ZDBiYjY2ZmFmMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3NlcmlhbGl6ZS1z
aGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3NlcmlhbGl6ZS1z
aGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNSBA
QAogCi1GQUlMIEluZGV4ZWREQjogQXR0ZW1wdGluZyB0byBzZXJpYWxpemUgYSBTaGFyZWRBcnJh
eUJ1ZmZlciBzaG91bGQgdGhyb3cgYXNzZXJ0X3RydWU6IFRoZSBwYWdlIGlzIHNlcnZlZCB3aXRo
IENPT1AgYW5kIENPRVAsIGl0IHNob3VsZCBiZSBjcm9zcy1vcmlnaW4taXNvbGF0ZWQuIGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCitGQUlMIEluZGV4ZWREQjogQXR0ZW1wdGluZyB0byBzZXJpYWxp
emUgYSBTaGFyZWRBcnJheUJ1ZmZlciBzaG91bGQgdGhyb3cgYXNzZXJ0X3Rocm93c19kb206IGZ1
bmN0aW9uICIoKSA9PiB7CisgICAgICAgICAgICBycSA9IG9ialN0b3JlLnB1dCh7c2FiOiBzYWJ9
LCAna2V5Jyk7CisgICAgICAgIH0iIHRocmV3IG9iamVjdCAiRGF0YUVycm9yOiBGYWlsZWQgdG8g
c3RvcmUgcmVjb3JkIGluIGFuIElEQk9iamVjdFN0b3JlOiBUaGUgb2JqZWN0IHN0b3JlIHVzZXMg
aW4tbGluZSBrZXlzIGFuZCB0aGUga2V5IHBhcmFtZXRlciB3YXMgcHJvdmlkZWQuIiB0aGF0IGlz
IG5vdCBhIERPTUV4Y2VwdGlvbiBEYXRhQ2xvbmVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVx
dWFsIHRvIDAsIGV4cGVjdGVkIDI1CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5
L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmln
aW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBz
LWV4cGVjdGVkLnR4dAppbmRleCAzYjc3NjYxMzM4OTQuLmNlNzA5MDQyNjg1MiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkLXBlcm1pc3Npb24u
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdp
bi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMiBA
QAogCi1GQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9
IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZB
SUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6IG9yaWdp
biA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gc2VsZiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKFwpCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczov
LzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZAotUEFTUyBmcmFtZTogb3JpZ2luID0g
aHR0cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSAqCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBo
dHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHNlbGYKLVBBU1MgZnJhbWU6IG9yaWdpbiA9
IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMsIHZhbHVlID0gKFwpCitQQVNTIGZyYW1lOiBvcmlnaW4g
PSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZAorUEFTUyBmcmFtZTog
b3JpZ2luID0gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MywgdmFsdWUgPSAqCitQQVNTIGZyYW1lOiBv
cmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHNlbGYKK0ZBSUwgZnJhbWU6
IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0
cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSB1bmRlZmluZWQgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEy
Ny4wLjAuMTo5NDQzLCB2YWx1ZSA9ICogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0
IGdvdCB0cnVlCitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2
YWx1ZSA9IHNlbGYgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitG
QUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IChcKSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKIEZBSUwgZGVkaWNhdGVk
IHdvcmtlcjogc2NoZW1lID0gaHR0cHMsIHZhbHVlID0gdW5kZWZpbmVkIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQogRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hl
bWUgPSBodHRwcywgdmFsdWUgPSAqIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdv
dCBmYWxzZQogRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBodHRwcywgdmFsdWUgPSBz
ZWxmIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVu
ZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGI0MzljZGM5NzM1Ni4uZGRj
OGZjMzE4NjFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC5odHRwcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC03LDUgKzcsNSBAQCBQQVNTIFNhbWUtb3JpZ2luIHBvcHVwIHdpdGggY29vcCB1bnNhZmUt
bm9uZSB3aXRob3V0IGNvZXAKIFBBU1MgaGlzdG9yaWNhbDogInNhbWUtc2l0ZSIgcG9wdXAgd2l0
aCBjb29wIHVuc2FmZS1ub25lIHdpdGhvdXQgY29lcAogUEFTUyBTYW1lLW9yaWdpbiBwb3B1cCB3
aXRob3V0IGNvZXAKIFBBU1MgaGlzdG9yaWNhbDogInNhbWUtc2l0ZSIgcG9wdXAgd2l0aG91dCBj
b2VwCi1GQUlMIEJvbnVzOiB3aW5kb3cuY3Jvc3NPcmlnaW5Jc29sYXRlZCBhc3NlcnRfdHJ1ZTog
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgQm9udXM6IHdpbmRvdy5jcm9zc09yaWdpbklz
b2xhdGVkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
NzEyNzVlZmYwMTc1Li40MDI5YjVjMWU3ZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0zMTYyLDEwICszMTYyLDYgQEAgd2Via2l0Lm9yZy9iLzIwNzY1
MSBpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0
ZV9vYmoKIAogd2Via2l0Lm9yZy9iLzIwNzY1MiBpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTUuaHRtbCBbIFBhc3MgVGlt
ZW91dCBdCiAKLXdlYmtpdC5vcmcvYi8yMjk1NjUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9lbmNvZGluZy9zaGFyZWRhcnJheWJ1ZmZlci5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJl
IF0KLQotd2Via2l0Lm9yZy9iLzIyOTUwMSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJyYXlidWZmZXItdGhyb3dzLmh0dHBzLmh0bWwg
WyBQYXNzIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMjA3NzAyIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleS1nZW5lcmF0b3JzL3JlYWRpbmctYXV0b2luY3Jl
bWVudC1pbmRleGVzLmFueS5zZXJ2aWNld29ya2VyLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiB3
ZWJraXQub3JnL2IvMjA3NzAzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tldC1pbi1zZXJ2aWNlLXdvcmtlci5odHRw
cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggM2JhZjQxNjk2ZTJlLi5lMWUwMDA0NjdmYjMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xOTk1LDEwICsxOTk1LDYgQEAgd2Vi
a2l0Lm9yZy9iLzIxNjAyNCBbIE1vamF2ZSBDYXRhbGluYSBdIGZhc3QvdGV4dC9haG9tLmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzIxNjI5OCBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9ibG9iLXZhbGlkLWFmdGVyLWRlbGV0aW9uLmFu
eS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzIyOTUwMSBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJyYXlidWZm
ZXItdGhyb3dzLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotCi13ZWJraXQub3JnL2IvMjI5
NTY1IFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL3No
YXJlZGFycmF5YnVmZmVyLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotCiB3ZWJraXQub3Jn
L2IvMTg2MDQ1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aS90ZXh0
LW92ZXJmbG93LTAxNy5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTg2MDQ1IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdmhfbm90X3JlZnJlc2hpbmdf
b25fY2hyb21lLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xODYwNDUgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9lbWJl
ZGRlZC1jb250ZW50L2Nyb3NzLWRvbWFpbi1pZnJhbWUuc3ViLmh0bWwgWyBTa2lwIF0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGY2MWE0Y2RhZTI1ZC4uYzI4
ZTU3OGVlMDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAg
LTk0OCw2ICs5NDgsMTUgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChD
YWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmUKICAgICByZXNwb25zZVJl
Y2VpdmVkKHJlc3BvbnNlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3N0YXRp
YyBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIHRvTmVlZHNCcm93c2luZ0NvbnRleHRH
cm91cFN3aXRjaChjb25zdCBzdGQ6Om9wdGlvbmFsPENyb3NzT3JpZ2luT3BlbmVyUG9saWN5RW5m
b3JjZW1lbnRSZXN1bHQ+JiBjdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0KQoreworICAgIGlm
ICghY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdCB8fCAhY3VycmVudENvb3BFbmZvcmNlbWVu
dFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCkKKyAgICAgICAgcmV0dXJu
IE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6Ok5vOworICAgIGlmIChjdXJyZW50Q29v
cEVuZm9yY2VtZW50UmVzdWx0LT5jcm9zc09yaWdpbk9wZW5lclBvbGljeS52YWx1ZSA9PSBDcm9z
c09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpTYW1lT3JpZ2luUGx1c0NPRVApCisgICAgICAgIHJl
dHVybiBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoOjpZZXNXaXRoQ3Jvc3NPcmlnaW5J
c29sYXRpb247CisgICAgcmV0dXJuIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6Olll
c1dpdGhvdXRDcm9zc09yaWdpbklzb2xhdGlvbjsKK30KKwogdm9pZCBEb2N1bWVudExvYWRlcjo6
cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChy
ZXNwb25zZS5jZXJ0aWZpY2F0ZUluZm8oKSk7CkBAIC0xMDQ4LDcgKzEwNTcsNyBAQCB2b2lkIERv
Y3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBDb21wbGV0aQogICAgIGlmIChtYWluUmVzb3VyY2VMb2FkZXIpCiAgICAgICAgIG1h
aW5SZXNvdXJjZUxvYWRlci0+bWFya0luQXN5bmNSZXNwb25zZVBvbGljeUNoZWNrKCk7CiAgICAg
YXV0byByZXF1ZXN0SWRlbnRpZmllciA9IFBvbGljeUNoZWNrSWRlbnRpZmllcjo6Y3JlYXRlKCk7
Ci0gICAgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoID0gbV9jdXJyZW50Q29v
cEVuZm9yY2VtZW50UmVzdWx0ICYmIG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdC0+bmVl
ZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaDsKKyAgICBhdXRvIG5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2ggPSB0b05lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gobV9jdXJy
ZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0KTsKICAgICBmcmFtZUxvYWRlcigpLT5jaGVja0NvbnRl
bnRQb2xpY3kobV9yZXNwb25zZSwgcmVxdWVzdElkZW50aWZpZXIsIG5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1h
aW5SZXNvdXJjZUxvYWRlciA9IFdURk1vdmUobWFpblJlc291cmNlTG9hZGVyKSwKICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxlYXNlKCksIHJl
cXVlc3RJZGVudGlmaWVyXSAoUG9saWN5QWN0aW9uIHBvbGljeSwgUG9saWN5Q2hlY2tJZGVudGlm
aWVyIHJlc3BvbnNlSWRlbnRpZmllcikgbXV0YWJsZSB7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KHJlc3BvbnNlSWRlbnRpZmllci5pc1ZhbGlkRm9yKHJlcXVlc3RJZGVudGlmaWVyKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDk2NGUyZGQxMjA3MC4uMjZjOTY2
MzlhZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtODE2LDcg
KzgxNiw3IEBAIHZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hTaG93KCkKIHsK
IH0KIAotdm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZv
clJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wsIEZyYW1lUG9saWN5
RnVuY3Rpb24mJikKK3ZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBOZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDEy
MGE0YTUyMGJkMS4uM2NiYjMxMGEyZTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTk2LDcgKzk2LDcgQEAgcHJpdmF0ZToKICAgICBG
cmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBOZXdGcmFt
ZU9wZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKIAot
ICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1l
UG9saWN5RnVuY3Rpb24mJikgZmluYWw7CisgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZv
clJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIE5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBk
aXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiwg
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAg
IHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmln
YXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZWRpcmVjdFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBQb2xpY3lEZWNpc2lvbk1vZGUsIFBv
bGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2
b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAppbmRleCA3YWE3NmFjNmQxZWIuLjZiMDIzNjFhMWI1NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC00MTMsNyArNDEzLDcgQEAgdm9pZCBGcmFtZUxvYWRl
cjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKICAgICB9CiB9CiAKLXZvaWQgRnJhbWVM
b2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlv
bikKK3ZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBpZiAo
IWFjdGl2ZURvY3VtZW50TG9hZGVyKCkpIHsKICAgICAgICAgLy8gTG9hZCB3YXMgY2FuY2VsbGVk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGU1NmMwOGY3MDM2YS4uNzk4OThh
NjRhNGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMjIwLDcgKzIyMCw3
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKTsKIAotICAgIHZv
aWQgY2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVu
dFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJik7CisgICAgdm9pZCBjaGVja0NvbnRlbnRQb2xpY3ko
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgTmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJik7
CiAKICAgICB2b2lkIGRpZEV4cGxpY2l0T3BlbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDM5YmI0MDU0MDljNC4uMjY4NDMxYTVkOTU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTkwLDcgKzE5MCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYsIE5ld0ZyYW1lT3BlbmVyUG9saWN5KSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoU2hvdygpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG93bmxv
YWRBdHRyaWJ1dGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQ
b2xpY3lGdW5jdGlvbiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJp
YnV0ZSwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlv
biYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2lu
ZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgUG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24m
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVj
dFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBQb2xpY3lEZWNpc2lvbk1vZGUsIFBvbGljeUNoZWNrSWRl
bnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNh
bmNlbFBvbGljeUNoZWNrKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5
cGVzLmgKaW5kZXggYzUxNWJhZTRkMjE4Li5jZGQwMTA0MTA2NTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaApAQCAtMTY3LDYgKzE2NywxMiBAQCBlbnVtIGNsYXNz
IFVubG9hZEV2ZW50UG9saWN5IHsKICAgICBVbmxvYWRBbmRQYWdlSGlkZQogfTsKIAorZW51bSBj
bGFzcyBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIDogdWludDhfdCB7CisgICAgTm8s
CisgICAgWWVzV2l0aG91dENyb3NzT3JpZ2luSXNvbGF0aW9uLAorICAgIFllc1dpdGhDcm9zc09y
aWdpbklzb2xhdGlvbiwKK307CisKIC8vIFBhc3NlZCB0byBGcmFtZUxvYWRlcjo6dXJsU2VsZWN0
ZWQoKSBhbmQgU2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZUlmSmF2YVNjcmlwdFVSTCgpCiAvLyB0
byBjb250cm9sIHdoZXRoZXIsIGluIHRoZSBjYXNlIG9mIGEgSmF2YVNjcmlwdCBVUkwsIGV4ZWN1
dGVJZkphdmFTY3JpcHRVUkwoKSBzaG91bGQKIC8vIHJlcGxhY2UgdGhlIGRvY3VtZW50LiBJdCBp
cyBhIEZJWE1FIHRvIGVsaW1pbmF0ZSB0aGlzIGV4dHJhIHBhcmFtZXRlciBmcm9tCkBAIC0yNzYs
NiArMjgyLDE1IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UG9saWN5
QWN0aW9uPiB7CiAgICAgPjsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2Vi
Q29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaD4geworICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2gsCisgICAgICAgIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0
Y2g6Ok5vLAorICAgICAgICBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
OjpZZXNXaXRob3V0Q3Jvc3NPcmlnaW5Jc29sYXRpb24sCisgICAgICAgIFdlYkNvcmU6Ok5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6Olllc1dpdGhDcm9zc09yaWdpbklzb2xhdGlvbgor
ICAgID47Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVz
PAogICAgICAgICBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDlhMzI1NWE2OWQyOS4uZjkyZGRjYzgwMDZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xOTIzLDkgKzE5MjMsMTUgQEAgYm9vbCBET01X
aW5kb3c6OmlzU2VjdXJlQ29udGV4dCgpIGNvbnN0CiAKIGJvb2wgRE9NV2luZG93Ojpjcm9zc09y
aWdpbklzb2xhdGVkKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50ZWQgdGhpcy4g
VGhpcyBzaG91bGQgcmV0dXJuIHRydWUgaWYgQ09PUC9DT0VQIGFyZSB1c2VkIGFuZCB0aGUgcGFn
ZSBpcyBhbGxvd2VkIHRvIHVzZSBBUElzCi0gICAgLy8gdGhhdCByZXF1aXJlIGNyb3NzLW9yaWdp
biBpc29sYXRpb24gKGUuZy4gU2hhcmVkQXJyYXlCdWZmZXIpLgotICAgIHJldHVybiBmYWxzZTsK
KyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVu
dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byYgc2V0dGluZ3MgPSBkb2N1bWVu
dC0+c2V0dGluZ3MoKTsKKyAgICBpZiAoIXNldHRpbmdzLmNyb3NzT3JpZ2luT3BlbmVyUG9saWN5
RW5hYmxlZCgpIHx8ICFzZXR0aW5ncy5jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5RW5hYmxlZCgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gZG9jdW1lbnQtPnRvcERvY3Vt
ZW50KCkuY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3koKS52YWx1ZSA9PSBDcm9zc09yaWdpbk9wZW5l
clBvbGljeVZhbHVlOjpTYW1lT3JpZ2luUGx1c0NPRVA7CiB9CiAKIHN0YXRpYyB2b2lkIGRpZEFk
ZFN0b3JhZ2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyYgd2luZG93KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsCmluZGV4IDQwZjg3NDdiMWRhZi4uMWJjMTMwMWNmYTBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCkBAIC03OSw4ICs3OSw2IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IE5hdmlnYXRvciBuYXZpZ2F0b3I7CiAgICAgLy8gRklYTUU6IFRoaXMgaXMgc3BlY2lmaWVkIHRv
IGJlIFtTZWN1cmVDb250ZXh0XQogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01BcHBsaWNhdGlv
bkNhY2hlIGFwcGxpY2F0aW9uQ2FjaGU7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCAnb3JpZ2lu
SXNvbGF0ZWQnCi0gICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gb3JpZ2luSXNvbGF0
ZWQ7CiAKICAgICAvLyB1c2VyIHByb21wdHMKICAgICB1bmRlZmluZWQgYWxlcnQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGZiMjM0N2Q1Zjg5Yy4uMmYx
M2Y0YmY3YWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAg
LTcxOSw2ICs3MTksNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dl
YkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMnOiBbJzxXZWJDb3JlL01lZGlhUGxh
eWVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6
SGFzQWN0aXZpdHknOiBbJzxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5JzogWyc8V2ViQ29yZS9Eb2N1bWVu
dExvYWRlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24nOiBbJzxXZWJDb3JlL05ldHdvcmtM
b2FkSW5mb3JtYXRpb24uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21E
YXRhJzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0
ZWJvYXJkSW1hZ2UnOiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4nXSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9Y
UENTZXJ2aWNlRW50cnlQb2ludC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0
aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgKaW5kZXggOTJl
MTRlNGVkZjcxLi4wYTgxMjFhZTc1MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2lu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2Ev
WFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCkBAIC05Miw2ICs5MiwxMSBAQCB2b2lk
IFhQQ1NlcnZpY2VJbml0aWFsaXplcihPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25u
ZWN0aW9uLCB4cGNfb2JqZWN0XwogICAgICAgICAgICAgSlNDOjpDb25maWc6OmNvbmZpZ3VyZUZv
clRlc3RpbmcoKTsKICAgICAgICAgaWYgKHhwY19kaWN0aW9uYXJ5X2dldF9ib29sKGluaXRpYWxp
emVyTWVzc2FnZSwgImRpc2FibGUtaml0IikpCiAgICAgICAgICAgICBKU0M6OkV4ZWN1dGFibGVB
bGxvY2F0b3I6OnNldEpJVEVuYWJsZWQoZmFsc2UpOworICAgICAgICBpZiAoeHBjX2RpY3Rpb25h
cnlfZ2V0X2Jvb2woaW5pdGlhbGl6ZXJNZXNzYWdlLCAiZW5hYmxlLXNoYXJlZC1hcnJheS1idWZm
ZXIiKSkgeworICAgICAgICAgICAgSlNDOjpPcHRpb25zOjppbml0aWFsaXplKCk7CisgICAgICAg
ICAgICBKU0M6Ok9wdGlvbnM6OkFsbG93VW5maW5hbGl6ZWRBY2Nlc3NTY29wZSBzY29wZTsKKyAg
ICAgICAgICAgIEpTQzo6T3B0aW9uczo6dXNlU2hhcmVkQXJyYXlCdWZmZXIoKSA9IHRydWU7Cisg
ICAgICAgIH0KICAgICB9CiAKICAgICBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZVR5cGUg
ZGVsZWdhdGUoV1RGTW92ZShjb25uZWN0aW9uKSwgaW5pdGlhbGl6ZXJNZXNzYWdlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKaW5k
ZXggMTA4MWJhMmE1YmZjLi5iMmQyMmRmNzBhZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCkBAIC02MSw2ICs2MSw3IEBAIHB1
YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1
bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpID0gMDsKICAgICAgICAgdmlydHVh
bCBib29sIHNob3VsZENvbmZpZ3VyZUpTQ0ZvclRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNKSVRFbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRW5hYmxlZFNoYXJlZEFycmF5QnVm
ZmVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNpZiBQTEFURk9STShDT0NPQSkKICAgICAg
ICAgdmlydHVhbCBSZWZQdHI8WFBDRXZlbnRIYW5kbGVyPiB4cGNFdmVudEhhbmRsZXIoKSBjb25z
dCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IGY3
NzczZmU2ZGQwMi4uZGY2ZjFlMjk2NzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTIwNSw2
ICsyMDUsOCBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgICAg
ICAgICB4cGNfZGljdGlvbmFyeV9zZXRfYm9vbChib290c3RyYXBNZXNzYWdlLmdldCgpLCAiY29u
ZmlndXJlLWpzYy1mb3ItdGVzdGluZyIsIHRydWUpOwogICAgICAgICBpZiAoIW1fY2xpZW50LT5p
c0pJVEVuYWJsZWQoKSkKICAgICAgICAgICAgIHhwY19kaWN0aW9uYXJ5X3NldF9ib29sKGJvb3Rz
dHJhcE1lc3NhZ2UuZ2V0KCksICJkaXNhYmxlLWppdCIsIHRydWUpOworICAgICAgICBpZiAobV9j
bGllbnQtPnNob3VsZEVuYWJsZWRTaGFyZWRBcnJheUJ1ZmZlcigpKQorICAgICAgICAgICAgeHBj
X2RpY3Rpb25hcnlfc2V0X2Jvb2woYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImVuYWJsZS1zaGFy
ZWQtYXJyYXktYnVmZmVyIiwgdHJ1ZSk7CiAgICAgfQogCiAgICAgeHBjX2RpY3Rpb25hcnlfc2V0
X3N0cmluZyhib290c3RyYXBNZXNzYWdlLmdldCgpLCAibWVzc2FnZS1uYW1lIiwgImJvb3RzdHJh
cCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHku
Y3BwCmluZGV4IDQxY2QzNWRiZmE4ZC4uOTllNTE2NTBkMzE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCkBAIC0zMzAsNyArMzMwLDcg
QEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbkFzeW5jKEZyYW1lSWRlbnRpZmllcgogICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQs
IGZyYW1lSUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBX
VEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgV1RGTW92ZShvcmlnaW5hdGluZ0ZyYW1lSW5m
byksIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCks
IFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0
YSwgbGlzdGVuZXJJRCk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJiYg
ZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNo
b3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxv
d2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFBy
b3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93
bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIE5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwg
dWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlm
ICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAppbmRl
eCAyNzE0YjJhNWI1NDcuLmQ0OTA3MGU3M2VmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCkBAIC0xMjQsNyArMTI0LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIHNlbmRNZXNzYWdlKFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiYsIE9wdGlvblNl
dDxJUEM6OlNlbmRPcHRpb24+LCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKElQQzo6RGVjb2RlciopPiwgdWludDY0X3Q+PiYmKSBmaW5hbDsKIAogICAgIHZv
aWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZv
RGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvLCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlk
ZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9y
bURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYm
IHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7
Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3Qg
U3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRs
ZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5l
cklELCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBj
YW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2Fz
QWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9p
ZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7CiAgICAgdm9pZCBkaWRQZXJmb3JtU2Vy
dmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYg
ZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAgdm9p
ZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCA1ZmIzMDg5NTAxNTYuLjlmMjZkMGM0ZGJlMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01NjE3LDEyICs1NjE3LDEy
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYm
IGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3Ry
aW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwKLSAgICBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVu
ZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKKyAgICBib29sIHdhc0FsbG93ZWRCeUlu
amVjdGVkQnVuZGxlLCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIG5lZWRzQnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRh
JiB1c2VyRGF0YSkKIHsKICAgICBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nl
c3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBp
ZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5
cGUsIGRvd25sb2FkQXR0cmlidXRlLCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgbmVlZHNC
cm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBQb2xpY3lDaGVja0lk
ZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29s
IGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3
YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3Vw
U3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2
b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBQb2xpY3lDaGVja0lk
ZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29s
IGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3
YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90
ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNTY0NiwxNiArNTY0NiwxOCBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiBwcm9jZXNzLAogICAgICAgICB9KTsKIAogICAgICAgICBhdXRvIHdpbGxDb250aW51ZUxv
YWRJbk5ld1Byb2Nlc3MgPSBXaWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzOjpObzsKLSAgICAg
ICAgaWYgKHBvbGljeUFjdGlvbiA9PSBQb2xpY3lBY3Rpb246OlVzZSAmJiBuZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoICYmIG5hdmlnYXRpb24pIHsKLSAgICAgICAgICAgIFJlZ2lzdHJh
YmxlRG9tYWluIHJlc3BvbnNlRG9tYWluIHsgbmF2aWdhdGlvblJlc3BvbnNlLT5yZXNwb25zZSgp
LnVybCgpIH07Ci0gICAgICAgICAgICAvLyBBdm9pZCBwcm9jZXNzLXN3YXBwaW5nIGluIGNhc2Vz
IHdoZXJlIHRoZSBwcm9jZXNzIG9ubHkgY29udGFpbnMgYSBzaW5nbGUgcGFnZSBhbmQgaXMgb3Jp
Z2luLWNsZWFuLgotICAgICAgICAgICAgaWYgKHRoaXMtPnByb2Nlc3MoKS5wYWdlQ291bnQoKSA+
IDEgfHwgKHRoaXMtPnByb2Nlc3MoKS5vcHRpb25hbFJlZ2lzdHJhYmxlRG9tYWluKCkgJiYgKnRo
aXMtPnByb2Nlc3MoKS5vcHRpb25hbFJlZ2lzdHJhYmxlRG9tYWluKCkgIT0gcmVzcG9uc2VEb21h
aW4pKSB7Ci0gICAgICAgICAgICAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HKFByb2Nlc3NT
d2FwcGluZywgImRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkOiBQcm9jZXNzLXN3YXBwaW5n
IGR1ZSB0byBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSIpOwotICAgICAgICAgICAgICAgIHBv
bGljeUFjdGlvbiA9IFBvbGljeUFjdGlvbjo6SWdub3JlOwotICAgICAgICAgICAgICAgIGF1dG8g
cHJvY2Vzc0Zvck5hdmlnYXRpb24gPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkucHJvY2Vzc0Zv
clJlZ2lzdHJhYmxlRG9tYWluKHdlYnNpdGVEYXRhU3RvcmUoKSwgdGhpcywgcmVzcG9uc2VEb21h
aW4pOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcygqbmF2
aWdhdGlvbiwgbnVsbHB0ciwgV1RGTW92ZShwcm9jZXNzRm9yTmF2aWdhdGlvbiksIFByb2Nlc3NT
d2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5vLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olll
c0FmdGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lvbiwgbnVsbHB0cik7Ci0gICAgICAgICAgICAgICAg
d2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2VzcyA9IFdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nl
c3M6OlllczsKKyAgICAgICAgaWYgKHBvbGljeUFjdGlvbiA9PSBQb2xpY3lBY3Rpb246OlVzZSAm
JiBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoICE9IE5lZWRzQnJvd3NpbmdDb250ZXh0
R3JvdXBTd2l0Y2g6Ok5vICYmIG5hdmlnYXRpb24pIHsKKyAgICAgICAgICAgIFdFQlBBR0VQUk9Y
WV9SRUxFQVNFX0xPRyhQcm9jZXNzU3dhcHBpbmcsICJkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNo
YXJlZDogUHJvY2Vzcy1zd2FwcGluZyBkdWUgdG8gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3ki
KTsKKyAgICAgICAgICAgIHBvbGljeUFjdGlvbiA9IFBvbGljeUFjdGlvbjo6SWdub3JlOworICAg
ICAgICAgICAgUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gcHJvY2Vzc0Zvck5hdmlnYXRpb247Cisg
ICAgICAgICAgICBpZiAobmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCA9PSBOZWVkc0Jy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoOjpZZXNXaXRoQ3Jvc3NPcmlnaW5Jc29sYXRpb24pCisg
ICAgICAgICAgICAgICAgcHJvY2Vzc0Zvck5hdmlnYXRpb24gPSBtX3Byb2Nlc3MtPnByb2Nlc3NQ
b29sKCkuY3JlYXRlTmV3V2ViUHJvY2Vzcygmd2Vic2l0ZURhdGFTdG9yZSgpLCBXZWJQcm9jZXNz
UHJveHk6OklzUHJld2FybWVkOjpObywgV2ViUHJvY2Vzc1Byb3h5OjpJc0Nyb3NzT3JpZ2luSXNv
bGF0ZWQ6Olllcyk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBSZWdpc3Ry
YWJsZURvbWFpbiByZXNwb25zZURvbWFpbiB7IG5hdmlnYXRpb25SZXNwb25zZS0+cmVzcG9uc2Uo
KS51cmwoKSB9OworICAgICAgICAgICAgICAgIHByb2Nlc3NGb3JOYXZpZ2F0aW9uID0gbV9wcm9j
ZXNzLT5wcm9jZXNzUG9vbCgpLnByb2Nlc3NGb3JSZWdpc3RyYWJsZURvbWFpbih3ZWJzaXRlRGF0
YVN0b3JlKCksIHRoaXMsIHJlc3BvbnNlRG9tYWluKTsKICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcygqbmF2aWdhdGlvbiwgbnVsbHB0ciwg
cHJvY2Vzc0Zvck5hdmlnYXRpb24ucmVsZWFzZU5vbk51bGwoKSwgUHJvY2Vzc1N3YXBSZXF1ZXN0
ZWRCeUNsaWVudDo6Tm8sIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJSZXNw
b25zZVBvbGljeURlY2lzaW9uLCBudWxscHRyKTsKKyAgICAgICAgICAgIHdpbGxDb250aW51ZUxv
YWRJbk5ld1Byb2Nlc3MgPSBXaWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzOjpZZXM7CiAgICAg
ICAgIH0KICAgICAgICAgCiAgICAgICAgIHJlY2VpdmVkUG9saWN5RGVjaXNpb24ocG9saWN5QWN0
aW9uLCBuYXZpZ2F0aW9uLmdldCgpLCBudWxscHRyLCBXVEZNb3ZlKG5hdmlnYXRpb25SZXNwb25z
ZSksIFdURk1vdmUoc2VuZGVyKSwgeyB9LCB3aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZWExYzIyZmI2YjExLi4w
MGE5NTc0MzVhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0x
NzQxLDcgKzE3NDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0
aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJOYXZpZ2F0aW9u
RGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZENoYW5n
ZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKICAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUlu
Zm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm8sIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZVByb3h5
SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpG
b3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklE
KTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3Qg
U3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRs
ZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5l
cklELCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2Fu
U2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0Fs
bG93ZWRCeUluamVjdGVkQnVuZGxlLCBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3Vw
U3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQg
c3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmKTsKICAgICB2b2lkIGxv
YWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIEFQSTo6TmF2aWdhdGlvbiYsIGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNv
bnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91
bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYsIFdlYkNvcmU6
OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhOjpT
ZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOwogICAgIHZvaWQgbG9hZFJlcXVlc3RXaXRoTmF2aWdh
dGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6
OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2Vi
Q29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRp
bmdUb0FwcEJvdW5kRG9tYWluPiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYm
ID0gc3RkOjpudWxsb3B0KTsKQEAgLTIwNjAsNyArMjA2MCw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgTmF2aWdh
dGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNv
bnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0
YSYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwg
dWludDY0X3QgbmF2aWdhdGlvbklELAotICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlN
RVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5
SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWlu
dDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICAgICAgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJv
b2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29s
IHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5nQ29udGV4
dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAg
IHZvaWQgdW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lk
IGJlZ2luU2FmZUJyb3dzaW5nQ2hlY2soY29uc3QgVVJMJiwgYm9vbCwgV2ViRnJhbWVQb2xpY3lM
aXN0ZW5lclByb3h5Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCBiYzM3YjhmYzZhZGYuLjQ5ZDNkM2EyNTc4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MTA3LDcgKzEwNyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKIAogICAg
ICMgUG9saWN5IG1lc3NhZ2VzCi0gICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJh
bWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVz
cG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1F
VHlwZSwgU3RyaW5nIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVk
QnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6
OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIg
cG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0
LCBib29sIGNhblNob3dNSU1FVHlwZSwgU3RyaW5nIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdh
c0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1
aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogICAgIERlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlv
bkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFt
ZUluZm9EYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllcj4g
b3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVl
c3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9u
c2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiAgICAg
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0Rh
dGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRp
b25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUlu
Zm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6Oldl
YlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKSAtPiAo
c3RydWN0IFdlYktpdDo6UG9saWN5RGVjaXNpb24gUG9saWN5RGVjaXNpb24pIFN5bmNocm9ub3Vz
CiAgICAgRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgc3RydWN0
IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgZnJhbWVOYW1lLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDFmODNkNDAzMjQ5Yy4uZGUzY2ExOGEwMzhk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC01OTYs
NyArNTk2LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4
dGVuc2lvbnMoKQogICAgIHBsYXRmb3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMo
KTsKIH0KIAotUmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dl
YlByb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdG9yZSwgV2ViUHJvY2Vzc1By
b3h5OjpJc1ByZXdhcm1lZCBpc1ByZXdhcm1lZCkKK1JlZjxXZWJQcm9jZXNzUHJveHk+IFdlYlBy
b2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqIHdlYnNpdGVE
YXRhU3RvcmUsIFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQgaXNQcmV3YXJtZWQsIFdlYlBy
b2Nlc3NQcm94eTo6SXNDcm9zc09yaWdpbklzb2xhdGVkIGlzQ3Jvc3NPcmlnaW5Jc29sYXRlZCkK
IHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBtX3RjY1ByZWZlcmVuY2VFbmFibGVkID0gZG9l
c0FwcEhhdmVJVFBFbmFibGVkKCk7CkBAIC02MDQsNyArNjA0LDcgQEAgUmVmPFdlYlByb2Nlc3NQ
cm94eT4gV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoV2Vic2l0ZURhdGFTdG9y
ZSogd2Vic2kKICAgICAgICAgd2Vic2l0ZURhdGFTdG9yZS0+c2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQobV90Y2NQcmVmZXJlbmNlRW5hYmxlZCk7CiAjZW5kaWYKIAotICAgIGF1dG8g
cHJvY2Vzc1Byb3h5ID0gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoKnRoaXMsIHdlYnNpdGVEYXRh
U3RvcmUsIGlzUHJld2FybWVkKTsKKyAgICBhdXRvIHByb2Nlc3NQcm94eSA9IFdlYlByb2Nlc3NQ
cm94eTo6Y3JlYXRlKCp0aGlzLCB3ZWJzaXRlRGF0YVN0b3JlLCBpc1ByZXdhcm1lZCwgaXNDcm9z
c09yaWdpbklzb2xhdGVkKTsKICAgICBpbml0aWFsaXplTmV3V2ViUHJvY2Vzcyhwcm9jZXNzUHJv
eHksIHdlYnNpdGVEYXRhU3RvcmUsIGlzUHJld2FybWVkKTsKICAgICBtX3Byb2Nlc3Nlcy5hcHBl
bmQocHJvY2Vzc1Byb3h5LmNvcHlSZWYoKSk7CiAKQEAgLTEwNTEsNyArMTA1MSw3IEBAIFJlZjxX
ZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQb29sOjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmIHBh
Z2VDbGllbnQsIFJlZjxBUEk6CiAgICAgICAgIC8vIEluIHRoZSBjb21tb24gY2FzZSwgd2UgZGVs
YXkgcHJvY2VzcyBsYXVuY2ggdW50aWwgc29tZXRoaW5nIGlzIGFjdHVhbGx5IGxvYWRlZCBpbiB0
aGUgcGFnZS4KICAgICAgICAgcHJvY2VzcyA9IGR1bW15UHJvY2Vzc1Byb3h5KHBhZ2VDb25maWd1
cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCktPnNlc3Npb25JRCgpKTsKICAgICAgICAgaWYgKCFw
cm9jZXNzKSB7Ci0gICAgICAgICAgICBwcm9jZXNzID0gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUo
KnRoaXMsIHBhZ2VDb25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCksIFdlYlByb2Nlc3NQ
cm94eTo6SXNQcmV3YXJtZWQ6Ok5vLCBXZWJQcm9jZXNzUHJveHk6OlNob3VsZExhdW5jaFByb2Nl
c3M6Ok5vKTsKKyAgICAgICAgICAgIHByb2Nlc3MgPSBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZSgq
dGhpcywgcGFnZUNvbmZpZ3VyYXRpb24tPndlYnNpdGVEYXRhU3RvcmUoKSwgV2ViUHJvY2Vzc1By
b3h5OjpJc1ByZXdhcm1lZDo6Tm8sIFdlYlByb2Nlc3NQcm94eTo6SXNDcm9zc09yaWdpbklzb2xh
dGVkOjpObywgV2ViUHJvY2Vzc1Byb3h5OjpTaG91bGRMYXVuY2hQcm9jZXNzOjpObyk7CiAgICAg
ICAgICAgICBtX2R1bW15UHJvY2Vzc1Byb3hpZXMuYWRkKHBhZ2VDb25maWd1cmF0aW9uLT53ZWJz
aXRlRGF0YVN0b3JlKCktPnNlc3Npb25JRCgpLCBtYWtlV2Vha1B0cigqcHJvY2VzcykpOwogICAg
ICAgICAgICAgbV9wcm9jZXNzZXMuYXBwZW5kKCpwcm9jZXNzKTsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggMDUzNTlhN2RkNDExLi42M2Zh
ZmY5YWQ5NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAt
NTE0LDYgKzUxNCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU3RyaW5nIGNvbnRhaW5lclRlbXBv
cmFyeURpcmVjdG9yeSgpOwogI2VuZGlmCiAKKyAgICBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBjcmVh
dGVOZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqLCBXZWJQcm9jZXNzUHJveHk6OklzUHJl
d2FybWVkID0gV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1lZDo6Tm8sIFdlYlByb2Nlc3NQcm94
eTo6SXNDcm9zc09yaWdpbklzb2xhdGVkID0gV2ViUHJvY2Vzc1Byb3h5OjpJc0Nyb3NzT3JpZ2lu
SXNvbGF0ZWQ6Ok5vKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgp
OwogCkBAIC01MjQsNyArNTI2LDYgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxXZWJQcm9jZXNz
UHJveHk+IHRyeVRha2VQcmV3YXJtZWRQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUmKTsKIAotICAg
IFJlZjxXZWJQcm9jZXNzUHJveHk+IGNyZWF0ZU5ld1dlYlByb2Nlc3MoV2Vic2l0ZURhdGFTdG9y
ZSosIFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQgPSBXZWJQcm9jZXNzUHJveHk6OklzUHJl
d2FybWVkOjpObyk7CiAgICAgdm9pZCBpbml0aWFsaXplTmV3V2ViUHJvY2VzcyhXZWJQcm9jZXNz
UHJveHkmLCBXZWJzaXRlRGF0YVN0b3JlKiwgV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1lZCA9
IFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQ6Ok5vKTsKIAogICAgIHZvaWQgaGFuZGxlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBjb25zdCBV
c2VyRGF0YSYgbWVzc2FnZUJvZHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKaW5kZXggZDhlNmM3M2FhNmU5Li45MGJkNDcxODJjMDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTQ3LDkgKzE0Nyw5IEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpmb3JXZWJQYWdlc1dpdGhPcmlnaW4oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBTZWN1CiAgICAgfQogfQogCi1SZWY8V2ViUHJvY2Vzc1Byb3h5
PiBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdl
YnNpdGVEYXRhU3RvcmUqIHdlYnNpdGVEYXRhU3RvcmUsIElzUHJld2FybWVkIGlzUHJld2FybWVk
LCBTaG91bGRMYXVuY2hQcm9jZXNzIHNob3VsZExhdW5jaFByb2Nlc3MpCitSZWY8V2ViUHJvY2Vz
c1Byb3h5PiBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bv
b2wsIFdlYnNpdGVEYXRhU3RvcmUqIHdlYnNpdGVEYXRhU3RvcmUsIElzUHJld2FybWVkIGlzUHJl
d2FybWVkLCBJc0Nyb3NzT3JpZ2luSXNvbGF0ZWQgaXNDcm9zc09yaWdpbklzb2xhdGVkLCBTaG91
bGRMYXVuY2hQcm9jZXNzIHNob3VsZExhdW5jaFByb2Nlc3MpCiB7Ci0gICAgYXV0byBwcm94eSA9
IGFkb3B0UmVmKCpuZXcgV2ViUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLCB3ZWJzaXRlRGF0YVN0
b3JlLCBpc1ByZXdhcm1lZCkpOworICAgIGF1dG8gcHJveHkgPSBhZG9wdFJlZigqbmV3IFdlYlBy
b2Nlc3NQcm94eShwcm9jZXNzUG9vbCwgd2Vic2l0ZURhdGFTdG9yZSwgaXNQcmV3YXJtZWQsIGlz
Q3Jvc3NPcmlnaW5Jc29sYXRlZCkpOwogICAgIGlmIChzaG91bGRMYXVuY2hQcm9jZXNzID09IFNo
b3VsZExhdW5jaFByb2Nlc3M6OlllcykKICAgICAgICAgcHJveHktPmNvbm5lY3QoKTsKICAgICBy
ZXR1cm4gcHJveHk7CkBAIC0xNTgsNyArMTU4LDcgQEAgUmVmPFdlYlByb2Nlc3NQcm94eT4gV2Vi
UHJvY2Vzc1Byb3h5OjpjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXQK
ICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBXZWJQcm9j
ZXNzUHJveHk6OmNyZWF0ZUZvclNlcnZpY2VXb3JrZXJzKFdlYlByb2Nlc3NQb29sJiBwcm9jZXNz
UG9vbCwgUmVnaXN0cmFibGVEb21haW4mJiByZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFT
dG9yZSYgd2Vic2l0ZURhdGFTdG9yZSkKIHsKLSAgICBhdXRvIHByb3h5ID0gYWRvcHRSZWYoKm5l
dyBXZWJQcm9jZXNzUHJveHkocHJvY2Vzc1Bvb2wsICZ3ZWJzaXRlRGF0YVN0b3JlLCBJc1ByZXdh
cm1lZDo6Tm8pKTsKKyAgICBhdXRvIHByb3h5ID0gYWRvcHRSZWYoKm5ldyBXZWJQcm9jZXNzUHJv
eHkocHJvY2Vzc1Bvb2wsICZ3ZWJzaXRlRGF0YVN0b3JlLCBJc1ByZXdhcm1lZDo6Tm8sIElzQ3Jv
c3NPcmlnaW5Jc29sYXRlZDo6Tm8pKTsKICAgICBwcm94eS0+bV9yZWdpc3RyYWJsZURvbWFpbiA9
IFdURk1vdmUocmVnaXN0cmFibGVEb21haW4pOwogICAgIHByb3h5LT5lbmFibGVTZXJ2aWNlV29y
a2Vycyhwcm9jZXNzUG9vbC51c2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyRm9yU2Vydmlj
ZVdvcmtlcnMoKSk7CiAgICAgcHJveHktPmNvbm5lY3QoKTsKQEAgLTE5NCw3ICsxOTQsNyBAQCBw
cml2YXRlOgogfTsKICNlbmRpZgogCi1XZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShX
ZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqIHdlYnNpdGVEYXRh
U3RvcmUsIElzUHJld2FybWVkIGlzUHJld2FybWVkKQorV2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9j
ZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKiB3
ZWJzaXRlRGF0YVN0b3JlLCBJc1ByZXdhcm1lZCBpc1ByZXdhcm1lZCwgSXNDcm9zc09yaWdpbklz
b2xhdGVkIGlzQ3Jvc3NPcmlnaW5Jc29sYXRlZCkKICAgICA6IEF1eGlsaWFyeVByb2Nlc3NQcm94
eShwcm9jZXNzUG9vbC5hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkoKSkKICAgICAsIG1f
YmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzVGltZXIoKnRoaXMpCiAgICAgLCBtX3Byb2Nlc3NQb29s
KHByb2Nlc3NQb29sLCBpc1ByZXdhcm1lZCA9PSBJc1ByZXdhcm1lZDo6WWVzID8gSXNXZWFrOjpZ
ZXMgOiBJc1dlYWs6Ok5vKQpAQCAtMjExLDYgKzIxMSw3IEBAIFdlYlByb2Nlc3NQcm94eTo6V2Vi
UHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9y
ZSoKICAgICAsIG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShtYWtlVW5pcXVlPFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+KG1ha2VVbmlxdWVSZWY8VUlQcm94eUZvckNhcHR1cmU+
KCp0aGlzKSkpCiAjZW5kaWYKICAgICAsIG1faXNQcmV3YXJtZWQoaXNQcmV3YXJtZWQgPT0gSXNQ
cmV3YXJtZWQ6OlllcykKKyAgICAsIG1faXNDcm9zc09yaWdpbklzb2xhdGVkKGlzQ3Jvc3NPcmln
aW5Jc29sYXRlZCA9PSBJc0Nyb3NzT3JpZ2luSXNvbGF0ZWQ6OlllcykKICAgICAsIG1fc2h1dGRv
d25QcmV2ZW50aW5nU2NvcGVDb3VudGVyKFt0aGlzXShSZWZDb3VudGVyRXZlbnQgZXZlbnQpIHsg
aWYgKGV2ZW50ID09IFJlZkNvdW50ZXJFdmVudDo6RGVjcmVtZW50KSBtYXliZVNodXREb3duKCk7
IH0pCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkT3JDaGVja0Rpc2FibGVkKCkp
OwpAQCAtMTE0Niw2ICsxMTQ3LDExIEBAIGJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpjYW5CZUFkZGVk
VG9XZWJQcm9jZXNzQ2FjaGUoKSBjb25zdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
CisgICAgaWYgKG1faXNDcm9zc09yaWdpbklzb2xhdGVkKSB7CisgICAgICAgIFdFQlBST0NFU1NQ
Uk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzLCAiY2FuQmVBZGRlZFRvV2ViUHJvY2Vzc0NhY2hlOiBO
b3QgYWRkaW5nIHRvIHByb2Nlc3MgY2FjaGUgYmVjYXVzZSB0aGUgcHJvY2VzcyBpcyBjcm9zcy1v
cmlnaW4gaXNvbGF0ZWQiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIGlm
IChXZWJLaXQ6OmlzSW5zcGVjdG9yUHJvY2Vzc1Bvb2wocHJvY2Vzc1Bvb2woKSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aAppbmRleCBhNDBlNjlkZmE1MjIuLjgyOWUzMDFmYzhhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTEzMyw5ICsxMzMsMTAgQEAgcHVibGljOgogICAg
ICAgICBZZXMKICAgICB9OwogCisgICAgZW51bSBjbGFzcyBJc0Nyb3NzT3JpZ2luSXNvbGF0ZWQg
OiBib29sIHsgTm8sIFllcyB9OwogICAgIGVudW0gY2xhc3MgU2hvdWxkTGF1bmNoUHJvY2VzcyA6
IGJvb2wgeyBObywgWWVzIH07CiAKLSAgICBzdGF0aWMgUmVmPFdlYlByb2Nlc3NQcm94eT4gY3Jl
YXRlKFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVkLCBTaG91
bGRMYXVuY2hQcm9jZXNzID0gU2hvdWxkTGF1bmNoUHJvY2Vzczo6WWVzKTsKKyAgICBzdGF0aWMg
UmVmPFdlYlByb2Nlc3NQcm94eT4gY3JlYXRlKFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFT
dG9yZSosIElzUHJld2FybWVkLCBJc0Nyb3NzT3JpZ2luSXNvbGF0ZWQgPSBJc0Nyb3NzT3JpZ2lu
SXNvbGF0ZWQ6Ok5vLCBTaG91bGRMYXVuY2hQcm9jZXNzID0gU2hvdWxkTGF1bmNoUHJvY2Vzczo6
WWVzKTsKICAgICBzdGF0aWMgUmVmPFdlYlByb2Nlc3NQcm94eT4gY3JlYXRlRm9yU2VydmljZVdv
cmtlcnMoV2ViUHJvY2Vzc1Bvb2wmLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmLCBXZWJz
aXRlRGF0YVN0b3JlJik7CiAKICAgICB+V2ViUHJvY2Vzc1Byb3h5KCk7CkBAIC00MTksOCArNDIw
LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENhcHRpb25MYW5ndWFnZShjb25zdCBTdHJpbmcm
KTsKICNlbmRpZgogCisgICAgYm9vbCBpc0Nyb3NzT3JpZ2luSXNvbGF0ZWQoKSBjb25zdCB7IHJl
dHVybiBtX2lzQ3Jvc3NPcmlnaW5Jc29sYXRlZDsgfQorCiBwcm90ZWN0ZWQ6Ci0gICAgV2ViUHJv
Y2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVk
KTsKKyAgICBXZWJQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmLCBXZWJzaXRlRGF0YVN0b3Jl
KiwgSXNQcmV3YXJtZWQsIElzQ3Jvc3NPcmlnaW5Jc29sYXRlZCk7CiAKICAgICAvLyBBdXhpbGlh
cnlQcm9jZXNzUHJveHkKICAgICBBU0NJSUxpdGVyYWwgcHJvY2Vzc05hbWUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiAiV2ViQ29udGVudCJfczsgfQpAQCAtNDQwLDYgKzQ0Myw3IEBAIHByb3RlY3Rl
ZDoKIAogICAgIGJvb2wgc2hvdWxkQ29uZmlndXJlSlNDRm9yVGVzdGluZygpIGNvbnN0IGZpbmFs
OwogICAgIGJvb2wgaXNKSVRFbmFibGVkKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBzaG91bGRF
bmFibGVkU2hhcmVkQXJyYXlCdWZmZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzQ3Jvc3NP
cmlnaW5Jc29sYXRlZDsgfQogCiAgICAgdm9pZCB2YWxpZGF0ZUZyZWV6ZXJTdGF0dXMoKTsKIApA
QCAtNjIwLDYgKzYyNCw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1faGFzQ29tbWl0dGVkQW55
UHJvdmlzaW9uYWxMb2FkcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzUHJld2FybWVkOworICAg
IGJvb2wgbV9pc0Nyb3NzT3JpZ2luSXNvbGF0ZWQgeyBmYWxzZSB9OwogI2lmIEVOQUJMRShBVFRB
Q0hNRU5UX0VMRU1FTlQpCiAgICAgYm9vbCBtX2hhc0lzc3VlZEF0dGFjaG1lbnRFbGVtZW50UmVs
YXRlZFNhbmRib3hFeHRlbnNpb25zIHsgZmFsc2UgfTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKaW5kZXggNzIzMTVhNTc1ODczLi4xNmE1ZjY0NjA4YjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtODE2LDcgKzgxNiw3IEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygpCiAgICAgd2ViUGFnZS0+c2hvdygpOwogfQog
Ci12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0
R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
ZG93bmxvYWRBdHRyaWJ1dGUsIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggbmVlZHNC
cm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9u
KQogewogICAgIGF1dG8qIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCF3ZWJQ
YWdlKSB7CkBAIC04MzcsNyArODM3LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnMKICAgICBX
S0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb24gcG9saWN5ID0gd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVQ
b2xpY3lDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh3ZWJQYWdlLCBtX2ZyYW1lLnB0
cigpLCByZXNwb25zZSwgcmVxdWVzdCwgdXNlckRhdGEpOwogICAgIC8vIElmIGEgYnJvd3Npbmcg
Y29udGV4dCBzd2l0Y2ggaXMgcmVxdWVzdGVkLCB3ZSBzdGlsbCBuZWVkIHRvIHNlbmQgdGhlIElQ
QyB0byB0aGUgVUlQcm9jZXNzIGluIG9yZGVyIHRvIHByb2Nlc3Mtc3dhcCBpZiBuZWNlc3Nhcnks
IGV2ZW4gdGhvdWdoIHRoZQogICAgIC8vIGluamVjdGVkIGJ1bmRsZSBoYXMgYWxyZWFkeSBoYW5k
bGVkIHRoZSBwb2xpY3kgZGVjaXNpb24uCi0gICAgaWYgKHBvbGljeSA9PSBXS0J1bmRsZVBhZ2VQ
b2xpY3lBY3Rpb25Vc2UgJiYgIW5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gpIHsKKyAg
ICBpZiAocG9saWN5ID09IFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvblVzZSAmJiBuZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoID09IE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6
Ok5vKSB7CiAgICAgICAgIFdFQkZSQU1FTE9BREVSQ0xJRU5UX1JFTEVBU0VfTE9HKE5ldHdvcmss
ICJkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlOiBjb250aW51aW5nIGJlY2F1c2UgaW5q
ZWN0ZWQgYnVuZGxlIHNheXMgc28iKTsKICAgICAgICAgZnVuY3Rpb24oUG9saWN5QWN0aW9uOjpV
c2UsIGlkZW50aWZpZXIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCmluZGV4IDk2NjZkNjdmODYyMC4uNTFkNmMxMjM4ZjI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaApAQCAtMTI5LDcgKzEyOSw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6RnJh
bWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwg
V2ViQ29yZTo6TmV3RnJhbWVPcGVuZXJQb2xpY3kpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hT
aG93KCkgZmluYWw7CiAgICAgCi0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQ
b2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV2ViQ29y
ZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24m
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBj
b25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25B
Y3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBX
ZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGNhbmNl
bFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAwNTE2
MjcwMDlhNjYuLjRjNDdkNDI2ZWFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0x
MjcsNyArMTI3LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVh
dGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBXZWJDb3JlOjpOZXdGcmFt
ZU9wZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKIAot
ICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmlu
YWw7CisgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rp
b24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIGZy
YW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBv
bGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lE
ZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJh
bWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDBjZmJlZWUwNDQ3ZC4uYWFk
ZjRlNzAwNGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtODU1LDcgKzg1NSw3
IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygpCiAgICAgW1t3ZWJW
aWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3U2hvdzp3ZWJWaWV3XTsKIH0KIAotdm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIg
aWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3Vw
U3dpdGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3Vw
U3dpdGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAg
V2ViVmlldyAqd2ViVmlldyA9IGdldFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBjNWFmYTEzMzdkYjQuLmFmMWMwMjlhYWU1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNTE5LDcgKzUxOSw3IEBAIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygpCiAgICAgICAgIHVpLT53ZWJWaWV3
U2hvdyh3ZWJWaWV3KTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4
dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
LCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYg
ZnVuY3Rpb24pCiB7CiAgICAgV2ViVmlldyogd2ViVmlldyA9IG1fd2ViRnJhbWUtPndlYlZpZXco
KTsKICAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShtX3dlYkZyYW1lKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oCmluZGV4IDYxNDY1YzExZmMyNS4uNTQ1NGZiYmRiMzU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlz
cGF0Y2hEaWRGaW5pc2hMb2FkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlYWNo
TGF5b3V0TWlsZXN0b25lKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+KSBvdmVy
cmlkZTsKIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rp
b24mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNl
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYs
IFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1l
UG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGlj
eUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgY29uc3Qg
V1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRp
b25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUq
LCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKICAgICB2b2lk
IGNhbmNlbFBvbGljeUNoZWNrKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5k
ZXggMWRlY2YzMDczYWFmLi5kZmY1MGVkZmY2NmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAK
QEAgLTQwNiw2ICs0MDYsOCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6cmVzZXRBZnRlclRl
c3QoKQogICAgIHVuaW5zdGFsbEZha2VIZWx2ZXRpY2EoKTsKIAogICAgIEluamVjdGVkQnVuZGxl
OjpzaW5nbGV0b24oKS5yZXNldFVzZXJTY3JpcHRJbmplY3RlZENvdW50KCk7CisKKyAgICBtX2Rp
ZENvbW1pdE1haW5GcmFtZUxvYWQgPSBmYWxzZTsKIH0KIAogLy8gTG9hZGVyIENsaWVudCBDYWxs
YmFja3MKQEAgLTYzNCw2ICs2MzYsMTEgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZh
aWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmUKICAgICBp
ZiAoIWluamVjdGVkQnVuZGxlLmlzVGVzdFJ1bm5pbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgLy8gSW4gY2FzZSBvZiBhIENPT1AgcHJvY2Vzcy1zd2FwLCB0aGUgb2xkIHByb2Nlc3MgZ2V0
cyBhIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZSBkZWxlZ2F0ZSBjYWxs
LiBXZSB3YW50IHRvIGlnbm9yZQorICAgIC8vIHRoaXMgY2FsbCBzaW5jZSBpdCBjYXVzZXMgdGhl
IHRlc3QgdG8gZHVtcCBpdHMgb3V0cHV0IHRvbyBlYWdlcmx5LCBiZWZvcmUgdGhlIHRlc3QgaGFz
IGhhZCBhIGNoYW5jZSB0byBydW4gaW4gdGhlIG5ldyBwcm9jZXNzLgorICAgIGlmIChXS0Vycm9y
R2V0RXJyb3JDb2RlKGVycm9yKSA9PSBrV0tFcnJvckNvZGVGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5
UG9saWN5Q2hhbmdlICYmIFdLQnVuZGxlRnJhbWVJc01haW5GcmFtZShmcmFtZSkgJiYgIW1fZGlk
Q29tbWl0TWFpbkZyYW1lTG9hZCAmJiBpbmplY3RlZEJ1bmRsZS5wYWdlKCkgPT0gdGhpcykKKyAg
ICAgICAgcmV0dXJuOworCiAgICAgaWYgKGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hv
dWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7CiAgICAgICAgIGR1bXBMb2FkRXZlbnQoZnJh
bWUsICJkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yIik7CiAgICAgICAgIGF1dG8gY29k
ZSA9IFdLRXJyb3JHZXRFcnJvckNvZGUoZXJyb3IpOwpAQCAtNjUyLDYgKzY1OSw5IEBAIHZvaWQg
SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDb21taXRMb2FkRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJl
ZiBmcmFtZSkKICAgICBpZiAoIWluamVjdGVkQnVuZGxlLmlzVGVzdFJ1bm5pbmcoKSkKICAgICAg
ICAgcmV0dXJuOwogCisgICAgaWYgKFdLQnVuZGxlRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCisg
ICAgICAgIG1fZGlkQ29tbWl0TWFpbkZyYW1lTG9hZCA9IHRydWU7CisKICAgICBpZiAoIWluamVj
dGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKQog
ICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCmluZGV4IDMxNDg4YTUyYjVjZS4u
MmQ5MTJlOTE2OWMxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKQEAgLTE4MCw2ICsxODAsNyBAQCBw
cml2YXRlOgogCiAgICAgV0tCdW5kbGVQYWdlUmVmIG1fcGFnZTsKICAgICBXS1JldGFpblB0cjxX
S0J1bmRsZVNjcmlwdFdvcmxkUmVmPiBtX3dvcmxkOworICAgIGJvb2wgbV9kaWRDb21taXRNYWlu
RnJhbWVMb2FkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdUUgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436636</attachid>
            <date>2021-08-27 09:47:07 -0700</date>
            <delta_ts>2021-08-27 10:06:51 -0700</delta_ts>
            <desc>WIP patch (now with API tests)</desc>
            <filename>229559_COOP_reenable_SharedArrayBuffer_wip.patch</filename>
            <type>text/plain</type>
            <size>74573</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL3NlcmlhbGl6ZS1zaGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvc2VyaWFsaXplLXNoYXJlZGFycmF5YnVmZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggYWNjMDQ2NDYwM2IxLi42ZDBiYjY2ZmFmMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3NlcmlhbGl6ZS1z
aGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3NlcmlhbGl6ZS1z
aGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNSBA
QAogCi1GQUlMIEluZGV4ZWREQjogQXR0ZW1wdGluZyB0byBzZXJpYWxpemUgYSBTaGFyZWRBcnJh
eUJ1ZmZlciBzaG91bGQgdGhyb3cgYXNzZXJ0X3RydWU6IFRoZSBwYWdlIGlzIHNlcnZlZCB3aXRo
IENPT1AgYW5kIENPRVAsIGl0IHNob3VsZCBiZSBjcm9zcy1vcmlnaW4taXNvbGF0ZWQuIGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCitGQUlMIEluZGV4ZWREQjogQXR0ZW1wdGluZyB0byBzZXJpYWxp
emUgYSBTaGFyZWRBcnJheUJ1ZmZlciBzaG91bGQgdGhyb3cgYXNzZXJ0X3Rocm93c19kb206IGZ1
bmN0aW9uICIoKSA9PiB7CisgICAgICAgICAgICBycSA9IG9ialN0b3JlLnB1dCh7c2FiOiBzYWJ9
LCAna2V5Jyk7CisgICAgICAgIH0iIHRocmV3IG9iamVjdCAiRGF0YUVycm9yOiBGYWlsZWQgdG8g
c3RvcmUgcmVjb3JkIGluIGFuIElEQk9iamVjdFN0b3JlOiBUaGUgb2JqZWN0IHN0b3JlIHVzZXMg
aW4tbGluZSBrZXlzIGFuZCB0aGUga2V5IHBhcmFtZXRlciB3YXMgcHJvdmlkZWQuIiB0aGF0IGlz
IG5vdCBhIERPTUV4Y2VwdGlvbiBEYXRhQ2xvbmVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVx
dWFsIHRvIDAsIGV4cGVjdGVkIDI1CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5
L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmln
aW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBz
LWV4cGVjdGVkLnR4dAppbmRleCAzYjc3NjYxMzM4OTQuLmNlNzA5MDQyNjg1MiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkLXBlcm1pc3Npb24u
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdp
bi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMiBA
QAogCi1GQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9
IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZB
SUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6IG9yaWdp
biA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gc2VsZiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKFwpCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczov
LzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZAotUEFTUyBmcmFtZTogb3JpZ2luID0g
aHR0cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSAqCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBo
dHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHNlbGYKLVBBU1MgZnJhbWU6IG9yaWdpbiA9
IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMsIHZhbHVlID0gKFwpCitQQVNTIGZyYW1lOiBvcmlnaW4g
PSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZAorUEFTUyBmcmFtZTog
b3JpZ2luID0gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MywgdmFsdWUgPSAqCitQQVNTIGZyYW1lOiBv
cmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHNlbGYKK0ZBSUwgZnJhbWU6
IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0
cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSB1bmRlZmluZWQgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEy
Ny4wLjAuMTo5NDQzLCB2YWx1ZSA9ICogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0
IGdvdCB0cnVlCitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2
YWx1ZSA9IHNlbGYgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitG
QUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IChcKSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKIEZBSUwgZGVkaWNhdGVk
IHdvcmtlcjogc2NoZW1lID0gaHR0cHMsIHZhbHVlID0gdW5kZWZpbmVkIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQogRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hl
bWUgPSBodHRwcywgdmFsdWUgPSAqIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdv
dCBmYWxzZQogRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBodHRwcywgdmFsdWUgPSBz
ZWxmIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVu
ZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGI0MzljZGM5NzM1Ni4uZGRj
OGZjMzE4NjFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC5odHRwcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC03LDUgKzcsNSBAQCBQQVNTIFNhbWUtb3JpZ2luIHBvcHVwIHdpdGggY29vcCB1bnNhZmUt
bm9uZSB3aXRob3V0IGNvZXAKIFBBU1MgaGlzdG9yaWNhbDogInNhbWUtc2l0ZSIgcG9wdXAgd2l0
aCBjb29wIHVuc2FmZS1ub25lIHdpdGhvdXQgY29lcAogUEFTUyBTYW1lLW9yaWdpbiBwb3B1cCB3
aXRob3V0IGNvZXAKIFBBU1MgaGlzdG9yaWNhbDogInNhbWUtc2l0ZSIgcG9wdXAgd2l0aG91dCBj
b2VwCi1GQUlMIEJvbnVzOiB3aW5kb3cuY3Jvc3NPcmlnaW5Jc29sYXRlZCBhc3NlcnRfdHJ1ZTog
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgQm9udXM6IHdpbmRvdy5jcm9zc09yaWdpbklz
b2xhdGVkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
OTdiMmIxZTc4MWYzLi42ODcxMWM3ODYwZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0zMTYxLDEwICszMTYxLDYgQEAgd2Via2l0Lm9yZy9iLzIwNzY1
MSBpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0
ZV9vYmoKIAogd2Via2l0Lm9yZy9iLzIwNzY1MiBpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTUuaHRtbCBbIFBhc3MgVGlt
ZW91dCBdCiAKLXdlYmtpdC5vcmcvYi8yMjk1NjUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9lbmNvZGluZy9zaGFyZWRhcnJheWJ1ZmZlci5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJl
IF0KLQotd2Via2l0Lm9yZy9iLzIyOTUwMSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJyYXlidWZmZXItdGhyb3dzLmh0dHBzLmh0bWwg
WyBQYXNzIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMjA3NzAyIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleS1nZW5lcmF0b3JzL3JlYWRpbmctYXV0b2luY3Jl
bWVudC1pbmRleGVzLmFueS5zZXJ2aWNld29ya2VyLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiB3
ZWJraXQub3JnL2IvMjA3NzAzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tldC1pbi1zZXJ2aWNlLXdvcmtlci5odHRw
cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggZWY3YzBmZjA5MjBhLi5jMjhiNmEzYTM5ZGMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xOTk4LDEwICsxOTk4LDYgQEAgd2Vi
a2l0Lm9yZy9iLzIxNjAyNCBbIE1vamF2ZSBDYXRhbGluYSBdIGZhc3QvdGV4dC9haG9tLmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzIxNjI5OCBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9ibG9iLXZhbGlkLWFmdGVyLWRlbGV0aW9uLmFu
eS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzIyOTUwMSBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJyYXlidWZm
ZXItdGhyb3dzLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotCi13ZWJraXQub3JnL2IvMjI5
NTY1IFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL3No
YXJlZGFycmF5YnVmZmVyLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotCiB3ZWJraXQub3Jn
L2IvMTg2MDQ1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aS90ZXh0
LW92ZXJmbG93LTAxNy5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTg2MDQ1IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdmhfbm90X3JlZnJlc2hpbmdf
b25fY2hyb21lLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xODYwNDUgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9lbWJl
ZGRlZC1jb250ZW50L2Nyb3NzLWRvbWFpbi1pZnJhbWUuc3ViLmh0bWwgWyBTa2lwIF0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGY2MWE0Y2RhZTI1ZC4uYzI4
ZTU3OGVlMDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAg
LTk0OCw2ICs5NDgsMTUgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChD
YWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmUKICAgICByZXNwb25zZVJl
Y2VpdmVkKHJlc3BvbnNlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3N0YXRp
YyBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIHRvTmVlZHNCcm93c2luZ0NvbnRleHRH
cm91cFN3aXRjaChjb25zdCBzdGQ6Om9wdGlvbmFsPENyb3NzT3JpZ2luT3BlbmVyUG9saWN5RW5m
b3JjZW1lbnRSZXN1bHQ+JiBjdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0KQoreworICAgIGlm
ICghY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdCB8fCAhY3VycmVudENvb3BFbmZvcmNlbWVu
dFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCkKKyAgICAgICAgcmV0dXJu
IE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6Ok5vOworICAgIGlmIChjdXJyZW50Q29v
cEVuZm9yY2VtZW50UmVzdWx0LT5jcm9zc09yaWdpbk9wZW5lclBvbGljeS52YWx1ZSA9PSBDcm9z
c09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpTYW1lT3JpZ2luUGx1c0NPRVApCisgICAgICAgIHJl
dHVybiBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoOjpZZXNXaXRoQ3Jvc3NPcmlnaW5J
c29sYXRpb247CisgICAgcmV0dXJuIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6Olll
c1dpdGhvdXRDcm9zc09yaWdpbklzb2xhdGlvbjsKK30KKwogdm9pZCBEb2N1bWVudExvYWRlcjo6
cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChy
ZXNwb25zZS5jZXJ0aWZpY2F0ZUluZm8oKSk7CkBAIC0xMDQ4LDcgKzEwNTcsNyBAQCB2b2lkIERv
Y3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBDb21wbGV0aQogICAgIGlmIChtYWluUmVzb3VyY2VMb2FkZXIpCiAgICAgICAgIG1h
aW5SZXNvdXJjZUxvYWRlci0+bWFya0luQXN5bmNSZXNwb25zZVBvbGljeUNoZWNrKCk7CiAgICAg
YXV0byByZXF1ZXN0SWRlbnRpZmllciA9IFBvbGljeUNoZWNrSWRlbnRpZmllcjo6Y3JlYXRlKCk7
Ci0gICAgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoID0gbV9jdXJyZW50Q29v
cEVuZm9yY2VtZW50UmVzdWx0ICYmIG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdC0+bmVl
ZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaDsKKyAgICBhdXRvIG5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2ggPSB0b05lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gobV9jdXJy
ZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0KTsKICAgICBmcmFtZUxvYWRlcigpLT5jaGVja0NvbnRl
bnRQb2xpY3kobV9yZXNwb25zZSwgcmVxdWVzdElkZW50aWZpZXIsIG5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1h
aW5SZXNvdXJjZUxvYWRlciA9IFdURk1vdmUobWFpblJlc291cmNlTG9hZGVyKSwKICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxlYXNlKCksIHJl
cXVlc3RJZGVudGlmaWVyXSAoUG9saWN5QWN0aW9uIHBvbGljeSwgUG9saWN5Q2hlY2tJZGVudGlm
aWVyIHJlc3BvbnNlSWRlbnRpZmllcikgbXV0YWJsZSB7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KHJlc3BvbnNlSWRlbnRpZmllci5pc1ZhbGlkRm9yKHJlcXVlc3RJZGVudGlmaWVyKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDk2NGUyZGQxMjA3MC4uMjZjOTY2
MzlhZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtODE2LDcg
KzgxNiw3IEBAIHZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hTaG93KCkKIHsK
IH0KIAotdm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZv
clJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wsIEZyYW1lUG9saWN5
RnVuY3Rpb24mJikKK3ZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBOZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDEy
MGE0YTUyMGJkMS4uM2NiYjMxMGEyZTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTk2LDcgKzk2LDcgQEAgcHJpdmF0ZToKICAgICBG
cmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBOZXdGcmFt
ZU9wZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKIAot
ICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1l
UG9saWN5RnVuY3Rpb24mJikgZmluYWw7CisgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZv
clJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIE5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBk
aXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiwg
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAg
IHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmln
YXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZWRpcmVjdFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBQb2xpY3lEZWNpc2lvbk1vZGUsIFBv
bGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2
b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAppbmRleCA3YWE3NmFjNmQxZWIuLjZiMDIzNjFhMWI1NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC00MTMsNyArNDEzLDcgQEAgdm9pZCBGcmFtZUxvYWRl
cjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKICAgICB9CiB9CiAKLXZvaWQgRnJhbWVM
b2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlv
bikKK3ZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBpZiAo
IWFjdGl2ZURvY3VtZW50TG9hZGVyKCkpIHsKICAgICAgICAgLy8gTG9hZCB3YXMgY2FuY2VsbGVk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGU1NmMwOGY3MDM2YS4uNzk4OThh
NjRhNGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMjIwLDcgKzIyMCw3
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKTsKIAotICAgIHZv
aWQgY2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVu
dFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJik7CisgICAgdm9pZCBjaGVja0NvbnRlbnRQb2xpY3ko
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgTmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJik7
CiAKICAgICB2b2lkIGRpZEV4cGxpY2l0T3BlbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDM5YmI0MDU0MDljNC4uMjY4NDMxYTVkOTU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTkwLDcgKzE5MCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYsIE5ld0ZyYW1lT3BlbmVyUG9saWN5KSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoU2hvdygpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG93bmxv
YWRBdHRyaWJ1dGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQ
b2xpY3lGdW5jdGlvbiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJp
YnV0ZSwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlv
biYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2lu
ZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgUG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24m
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVj
dFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBQb2xpY3lEZWNpc2lvbk1vZGUsIFBvbGljeUNoZWNrSWRl
bnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNh
bmNlbFBvbGljeUNoZWNrKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5
cGVzLmgKaW5kZXggYzUxNWJhZTRkMjE4Li5jZGQwMTA0MTA2NTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaApAQCAtMTY3LDYgKzE2NywxMiBAQCBlbnVtIGNsYXNz
IFVubG9hZEV2ZW50UG9saWN5IHsKICAgICBVbmxvYWRBbmRQYWdlSGlkZQogfTsKIAorZW51bSBj
bGFzcyBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIDogdWludDhfdCB7CisgICAgTm8s
CisgICAgWWVzV2l0aG91dENyb3NzT3JpZ2luSXNvbGF0aW9uLAorICAgIFllc1dpdGhDcm9zc09y
aWdpbklzb2xhdGlvbiwKK307CisKIC8vIFBhc3NlZCB0byBGcmFtZUxvYWRlcjo6dXJsU2VsZWN0
ZWQoKSBhbmQgU2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZUlmSmF2YVNjcmlwdFVSTCgpCiAvLyB0
byBjb250cm9sIHdoZXRoZXIsIGluIHRoZSBjYXNlIG9mIGEgSmF2YVNjcmlwdCBVUkwsIGV4ZWN1
dGVJZkphdmFTY3JpcHRVUkwoKSBzaG91bGQKIC8vIHJlcGxhY2UgdGhlIGRvY3VtZW50LiBJdCBp
cyBhIEZJWE1FIHRvIGVsaW1pbmF0ZSB0aGlzIGV4dHJhIHBhcmFtZXRlciBmcm9tCkBAIC0yNzYs
NiArMjgyLDE1IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UG9saWN5
QWN0aW9uPiB7CiAgICAgPjsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2Vi
Q29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaD4geworICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2gsCisgICAgICAgIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0
Y2g6Ok5vLAorICAgICAgICBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
OjpZZXNXaXRob3V0Q3Jvc3NPcmlnaW5Jc29sYXRpb24sCisgICAgICAgIFdlYkNvcmU6Ok5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6Olllc1dpdGhDcm9zc09yaWdpbklzb2xhdGlvbgor
ICAgID47Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVz
PAogICAgICAgICBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDlhMzI1NWE2OWQyOS4uZjkyZGRjYzgwMDZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xOTIzLDkgKzE5MjMsMTUgQEAgYm9vbCBET01X
aW5kb3c6OmlzU2VjdXJlQ29udGV4dCgpIGNvbnN0CiAKIGJvb2wgRE9NV2luZG93Ojpjcm9zc09y
aWdpbklzb2xhdGVkKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50ZWQgdGhpcy4g
VGhpcyBzaG91bGQgcmV0dXJuIHRydWUgaWYgQ09PUC9DT0VQIGFyZSB1c2VkIGFuZCB0aGUgcGFn
ZSBpcyBhbGxvd2VkIHRvIHVzZSBBUElzCi0gICAgLy8gdGhhdCByZXF1aXJlIGNyb3NzLW9yaWdp
biBpc29sYXRpb24gKGUuZy4gU2hhcmVkQXJyYXlCdWZmZXIpLgotICAgIHJldHVybiBmYWxzZTsK
KyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVu
dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byYgc2V0dGluZ3MgPSBkb2N1bWVu
dC0+c2V0dGluZ3MoKTsKKyAgICBpZiAoIXNldHRpbmdzLmNyb3NzT3JpZ2luT3BlbmVyUG9saWN5
RW5hYmxlZCgpIHx8ICFzZXR0aW5ncy5jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5RW5hYmxlZCgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gZG9jdW1lbnQtPnRvcERvY3Vt
ZW50KCkuY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3koKS52YWx1ZSA9PSBDcm9zc09yaWdpbk9wZW5l
clBvbGljeVZhbHVlOjpTYW1lT3JpZ2luUGx1c0NPRVA7CiB9CiAKIHN0YXRpYyB2b2lkIGRpZEFk
ZFN0b3JhZ2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyYgd2luZG93KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsCmluZGV4IDQwZjg3NDdiMWRhZi4uMWJjMTMwMWNmYTBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCkBAIC03OSw4ICs3OSw2IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IE5hdmlnYXRvciBuYXZpZ2F0b3I7CiAgICAgLy8gRklYTUU6IFRoaXMgaXMgc3BlY2lmaWVkIHRv
IGJlIFtTZWN1cmVDb250ZXh0XQogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01BcHBsaWNhdGlv
bkNhY2hlIGFwcGxpY2F0aW9uQ2FjaGU7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCAnb3JpZ2lu
SXNvbGF0ZWQnCi0gICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gb3JpZ2luSXNvbGF0
ZWQ7CiAKICAgICAvLyB1c2VyIHByb21wdHMKICAgICB1bmRlZmluZWQgYWxlcnQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGZiMjM0N2Q1Zjg5Yy4uMmYx
M2Y0YmY3YWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAg
LTcxOSw2ICs3MTksNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dl
YkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMnOiBbJzxXZWJDb3JlL01lZGlhUGxh
eWVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6
SGFzQWN0aXZpdHknOiBbJzxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5JzogWyc8V2ViQ29yZS9Eb2N1bWVu
dExvYWRlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24nOiBbJzxXZWJDb3JlL05ldHdvcmtM
b2FkSW5mb3JtYXRpb24uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21E
YXRhJzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0
ZWJvYXJkSW1hZ2UnOiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4nXSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9Y
UENTZXJ2aWNlRW50cnlQb2ludC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0
aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgKaW5kZXggOTJl
MTRlNGVkZjcxLi4wYTgxMjFhZTc1MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2lu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2Ev
WFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCkBAIC05Miw2ICs5MiwxMSBAQCB2b2lk
IFhQQ1NlcnZpY2VJbml0aWFsaXplcihPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25u
ZWN0aW9uLCB4cGNfb2JqZWN0XwogICAgICAgICAgICAgSlNDOjpDb25maWc6OmNvbmZpZ3VyZUZv
clRlc3RpbmcoKTsKICAgICAgICAgaWYgKHhwY19kaWN0aW9uYXJ5X2dldF9ib29sKGluaXRpYWxp
emVyTWVzc2FnZSwgImRpc2FibGUtaml0IikpCiAgICAgICAgICAgICBKU0M6OkV4ZWN1dGFibGVB
bGxvY2F0b3I6OnNldEpJVEVuYWJsZWQoZmFsc2UpOworICAgICAgICBpZiAoeHBjX2RpY3Rpb25h
cnlfZ2V0X2Jvb2woaW5pdGlhbGl6ZXJNZXNzYWdlLCAiZW5hYmxlLXNoYXJlZC1hcnJheS1idWZm
ZXIiKSkgeworICAgICAgICAgICAgSlNDOjpPcHRpb25zOjppbml0aWFsaXplKCk7CisgICAgICAg
ICAgICBKU0M6Ok9wdGlvbnM6OkFsbG93VW5maW5hbGl6ZWRBY2Nlc3NTY29wZSBzY29wZTsKKyAg
ICAgICAgICAgIEpTQzo6T3B0aW9uczo6dXNlU2hhcmVkQXJyYXlCdWZmZXIoKSA9IHRydWU7Cisg
ICAgICAgIH0KICAgICB9CiAKICAgICBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZVR5cGUg
ZGVsZWdhdGUoV1RGTW92ZShjb25uZWN0aW9uKSwgaW5pdGlhbGl6ZXJNZXNzYWdlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKaW5k
ZXggMTA4MWJhMmE1YmZjLi5kMzBmNmQ0OWIwOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCkBAIC02MSw2ICs2MSw3IEBAIHB1
YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1
bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpID0gMDsKICAgICAgICAgdmlydHVh
bCBib29sIHNob3VsZENvbmZpZ3VyZUpTQ0ZvclRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNKSVRFbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRW5hYmxlU2hhcmVkQXJyYXlCdWZm
ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAg
ICB2aXJ0dWFsIFJlZlB0cjxYUENFdmVudEhhbmRsZXI+IHhwY0V2ZW50SGFuZGxlcigpIGNvbnN0
IHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KaW5kZXggZjc3
NzNmZTZkZDAyLi5kYWMzMWMzZDlmNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtMjA1LDYg
KzIwNSw4IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKICAgICAgICAg
ICAgIHhwY19kaWN0aW9uYXJ5X3NldF9ib29sKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJjb25m
aWd1cmUtanNjLWZvci10ZXN0aW5nIiwgdHJ1ZSk7CiAgICAgICAgIGlmICghbV9jbGllbnQtPmlz
SklURW5hYmxlZCgpKQogICAgICAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X2Jvb2woYm9vdHN0
cmFwTWVzc2FnZS5nZXQoKSwgImRpc2FibGUtaml0IiwgdHJ1ZSk7CisgICAgICAgIGlmIChtX2Ns
aWVudC0+c2hvdWxkRW5hYmxlU2hhcmVkQXJyYXlCdWZmZXIoKSkKKyAgICAgICAgICAgIHhwY19k
aWN0aW9uYXJ5X3NldF9ib29sKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJlbmFibGUtc2hhcmVk
LWFycmF5LWJ1ZmZlciIsIHRydWUpOwogICAgIH0KIAogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9z
dHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgIm1lc3NhZ2UtbmFtZSIsICJib290c3RyYXAi
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNw
cAppbmRleCA0MWNkMzVkYmZhOGQuLjk5ZTUxNjUwZDMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApAQCAtMzMwLDcgKzMzMCw3IEBA
IHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25Bc3luYyhGcmFtZUlkZW50aWZpZXIKICAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBm
cmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgV1RG
TW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIFdURk1vdmUob3JpZ2luYXRpbmdGcmFtZUluZm8p
LCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBX
VEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEs
IGxpc3RlbmVySUQpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZy
YW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93
TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dl
ZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwg
dWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25s
b2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBOZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVp
bnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAo
IXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKaW5kZXgg
MjcxNGIyYTViNTQ3Li5kNDkwNzBlNzNlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtMTI0LDcgKzEyNCw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBzZW5kTWVzc2FnZShVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYmLCBPcHRpb25TZXQ8
SVBDOjpTZW5kT3B0aW9uPiwgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8Q29tcGxldGlvbkhhbmRs
ZXI8dm9pZChJUEM6OkRlY29kZXIqKT4sIHVpbnQ2NF90Pj4mJikgZmluYWw7CiAKICAgICB2b2lk
IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0Rh
dGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVu
dGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiBy
ZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwot
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0
cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUs
IGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJ
RCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2Fu
U2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0Fs
bG93ZWRCeUluamVjdGVkQnVuZGxlLCBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3Vw
U3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQg
ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwogICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZl
clJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRl
c3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAgIHZvaWQg
ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggNzU4ZDFiMzk4ZWM3Li42ZjNlNTJmZDlmM2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTYxNywxMiArNTYxNywxMiBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBGcmFtZQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBm
cmFtZUluZm8sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmlu
ZyYgZG93bmxvYWRBdHRyaWJ1dGUsCi0gICAgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRs
ZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5l
cklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCisgICAgYm9vbCB3YXNBbGxvd2VkQnlJbmpl
Y3RlZEJ1bmRsZSwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCBuZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCiB7CiAgICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNz
LmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRl
bnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBl
LCBkb3dubG9hZEF0dHJpYnV0ZSwgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIG5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKIH0KIAotdm9p
ZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBj
YW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2Fz
QWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9p
ZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBj
YW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2Fz
QWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gg
bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVj
dG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTU2NDYsMTYgKzU2NDYsMTggQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYgcHJvY2VzcywKICAgICAgICAgfSk7CiAKICAgICAgICAgYXV0byB3aWxsQ29udGludWVMb2Fk
SW5OZXdQcm9jZXNzID0gV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6Tm87Ci0gICAgICAg
IGlmIChwb2xpY3lBY3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYgbmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaCAmJiBuYXZpZ2F0aW9uKSB7Ci0gICAgICAgICAgICBSZWdpc3RyYWJs
ZURvbWFpbiByZXNwb25zZURvbWFpbiB7IG5hdmlnYXRpb25SZXNwb25zZS0+cmVzcG9uc2UoKS51
cmwoKSB9OwotICAgICAgICAgICAgLy8gQXZvaWQgcHJvY2Vzcy1zd2FwcGluZyBpbiBjYXNlcyB3
aGVyZSB0aGUgcHJvY2VzcyBvbmx5IGNvbnRhaW5zIGEgc2luZ2xlIHBhZ2UgYW5kIGlzIG9yaWdp
bi1jbGVhbi4KLSAgICAgICAgICAgIGlmICh0aGlzLT5wcm9jZXNzKCkucGFnZUNvdW50KCkgPiAx
IHx8ICh0aGlzLT5wcm9jZXNzKCkub3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbigpICYmICp0aGlz
LT5wcm9jZXNzKCkub3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbigpICE9IHJlc3BvbnNlRG9tYWlu
KSkgewotICAgICAgICAgICAgICAgIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3dh
cHBpbmcsICJkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZDogUHJvY2Vzcy1zd2FwcGluZyBk
dWUgdG8gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiKTsKLSAgICAgICAgICAgICAgICBwb2xp
Y3lBY3Rpb24gPSBQb2xpY3lBY3Rpb246Oklnbm9yZTsKLSAgICAgICAgICAgICAgICBhdXRvIHBy
b2Nlc3NGb3JOYXZpZ2F0aW9uID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLnByb2Nlc3NGb3JS
ZWdpc3RyYWJsZURvbWFpbih3ZWJzaXRlRGF0YVN0b3JlKCksIHRoaXMsIHJlc3BvbnNlRG9tYWlu
KTsKLSAgICAgICAgICAgICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoKm5hdmln
YXRpb24sIG51bGxwdHIsIFdURk1vdmUocHJvY2Vzc0Zvck5hdmlnYXRpb24pLCBQcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50OjpObywgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXNB
ZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24sIG51bGxwdHIpOwotICAgICAgICAgICAgICAgIHdp
bGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3MgPSBXaWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNz
OjpZZXM7CisgICAgICAgIGlmIChwb2xpY3lBY3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYg
bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCAhPSBOZWVkc0Jyb3dzaW5nQ29udGV4dEdy
b3VwU3dpdGNoOjpObyAmJiBuYXZpZ2F0aW9uKSB7CisgICAgICAgICAgICBXRUJQQUdFUFJPWFlf
UkVMRUFTRV9MT0coUHJvY2Vzc1N3YXBwaW5nLCAiZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFy
ZWQ6IFByb2Nlc3Mtc3dhcHBpbmcgZHVlIHRvIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Iik7
CisgICAgICAgICAgICBwb2xpY3lBY3Rpb24gPSBQb2xpY3lBY3Rpb246Oklnbm9yZTsKKyAgICAg
ICAgICAgIFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHByb2Nlc3NGb3JOYXZpZ2F0aW9uOworICAg
ICAgICAgICAgaWYgKG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggPT0gTmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaDo6WWVzV2l0aENyb3NzT3JpZ2luSXNvbGF0aW9uKQorICAg
ICAgICAgICAgICAgIHByb2Nlc3NGb3JOYXZpZ2F0aW9uID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9v
bCgpLmNyZWF0ZU5ld1dlYlByb2Nlc3MoJndlYnNpdGVEYXRhU3RvcmUoKSwgV2ViUHJvY2Vzc1By
b3h5OjpJc1ByZXdhcm1lZDo6Tm8sIFdlYlByb2Nlc3NQcm94eTo6SXNDcm9zc09yaWdpbklzb2xh
dGVkOjpZZXMpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgUmVnaXN0cmFi
bGVEb21haW4gcmVzcG9uc2VEb21haW4geyBuYXZpZ2F0aW9uUmVzcG9uc2UtPnJlc3BvbnNlKCku
dXJsKCkgfTsKKyAgICAgICAgICAgICAgICBwcm9jZXNzRm9yTmF2aWdhdGlvbiA9IG1fcHJvY2Vz
cy0+cHJvY2Vzc1Bvb2woKS5wcm9jZXNzRm9yUmVnaXN0cmFibGVEb21haW4od2Vic2l0ZURhdGFT
dG9yZSgpLCB0aGlzLCByZXNwb25zZURvbWFpbik7CiAgICAgICAgICAgICB9CisgICAgICAgICAg
ICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoKm5hdmlnYXRpb24sIG51bGxwdHIsIHBy
b2Nlc3NGb3JOYXZpZ2F0aW9uLnJlbGVhc2VOb25OdWxsKCksIFByb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQ6Ok5vLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyUmVzcG9u
c2VQb2xpY3lEZWNpc2lvbiwgbnVsbHB0cik7CisgICAgICAgICAgICB3aWxsQ29udGludWVMb2Fk
SW5OZXdQcm9jZXNzID0gV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6WWVzOwogICAgICAg
ICB9CiAgICAgICAgIAogICAgICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlv
biwgbmF2aWdhdGlvbi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2Up
LCBXVEZNb3ZlKHNlbmRlciksIHsgfSwgd2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGVhMWMyMmZiNmIxMS4uMDBh
OTU3NDM1YWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTc0
MSw3ICsxNzQxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlv
bkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgV2ViTmF2aWdhdGlvbkRh
dGFTdG9yZSYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRDaGFuZ2VQ
cm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7CiAgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZv
RGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvLCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlk
ZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9y
bURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYm
IHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7
Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0
cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUs
IGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJ
RCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNo
b3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxv
d2VkQnlJbmplY3RlZEJ1bmRsZSwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIHN0
YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBsb2Fk
RGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25z
dCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5k
RG9tYWluPiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBXZWJDb3JlOjpT
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6U2Vz
c2lvbkhpc3RvcnlWaXNpYmlsaXR5KTsKICAgICB2b2lkIGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRp
b25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IEFQSTo6TmF2aWdhdGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpT
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNv
cmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9
IHN0ZDo6bnVsbG9wdCk7CkBAIC0yMDYwLDcgKzIwNjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
RnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIE5hdmlnYXRp
b25BY3Rpb25EYXRhJiYsCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25z
dCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEm
KTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwKLSAgICAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVU
eXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUlu
amVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgICAgIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29s
IGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3
YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRH
cm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2
b2lkIHVuYWJsZVRvSW1wbGVtZW50UG9saWN5KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBi
ZWdpblNhZmVCcm93c2luZ0NoZWNrKGNvbnN0IFVSTCYsIGJvb2wsIFdlYkZyYW1lUG9saWN5TGlz
dGVuZXJQcm94eSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggYmMzN2I4ZmM2YWRmLi40OWQzZDNhMjU3ODcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTEw
Nyw3ICsxMDcsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICAgICAj
IFBvbGljeSBtZXNzYWdlcwotICAgIERlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1l
SW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5
cGUsIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1
bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0
ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERlY2lkZVBvbGljeUZvclJl
c3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpG
cmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBv
bGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwg
Ym9vbCBjYW5TaG93TUlNRVR5cGUsIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNB
bGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok5lZWRzQnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2ggbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWlu
dDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25B
Y3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJ
bmZvRGF0YSwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9y
aWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5j
ZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNl
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogICAgIERl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRh
IGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9u
QWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZv
RGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJQ
YWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qs
IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkgLT4gKHN0
cnVjdCBXZWJLaXQ6OlBvbGljeURlY2lzaW9uIFBvbGljeURlY2lzaW9uKSBTeW5jaHJvbm91cwog
ICAgIERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHN0cnVjdCBX
ZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIGZyYW1lTmFtZSwgdWludDY0X3QgbGlz
dGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAxZjgzZDQwMzI0OWMuLmRlM2NhMThhMDM4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNTk2LDcg
KzU5Niw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlc29sdmVQYXRoc0ZvclNhbmRib3hFeHRl
bnNpb25zKCkKICAgICBwbGF0Zm9ybVJlc29sdmVQYXRoc0ZvclNhbmRib3hFeHRlbnNpb25zKCk7
CiB9CiAKLVJlZjxXZWJQcm9jZXNzUHJveHk+IFdlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQ
cm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqIHdlYnNpdGVEYXRhU3RvcmUsIFdlYlByb2Nlc3NQcm94
eTo6SXNQcmV3YXJtZWQgaXNQcmV3YXJtZWQpCitSZWY8V2ViUHJvY2Vzc1Byb3h5PiBXZWJQcm9j
ZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0
YVN0b3JlLCBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkIGlzUHJld2FybWVkLCBXZWJQcm9j
ZXNzUHJveHk6OklzQ3Jvc3NPcmlnaW5Jc29sYXRlZCBpc0Nyb3NzT3JpZ2luSXNvbGF0ZWQpCiB7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgbV90Y2NQcmVmZXJlbmNlRW5hYmxlZCA9IGRvZXNB
cHBIYXZlSVRQRW5hYmxlZCgpOwpAQCAtNjA0LDcgKzYwNCw3IEBAIFJlZjxXZWJQcm9jZXNzUHJv
eHk+IFdlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUq
IHdlYnNpCiAgICAgICAgIHdlYnNpdGVEYXRhU3RvcmUtPnNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFbmFibGVkKG1fdGNjUHJlZmVyZW5jZUVuYWJsZWQpOwogI2VuZGlmCiAKLSAgICBhdXRvIHBy
b2Nlc3NQcm94eSA9IFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlKCp0aGlzLCB3ZWJzaXRlRGF0YVN0
b3JlLCBpc1ByZXdhcm1lZCk7CisgICAgYXV0byBwcm9jZXNzUHJveHkgPSBXZWJQcm9jZXNzUHJv
eHk6OmNyZWF0ZSgqdGhpcywgd2Vic2l0ZURhdGFTdG9yZSwgaXNQcmV3YXJtZWQsIGlzQ3Jvc3NP
cmlnaW5Jc29sYXRlZCk7CiAgICAgaW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3MocHJvY2Vzc1Byb3h5
LCB3ZWJzaXRlRGF0YVN0b3JlLCBpc1ByZXdhcm1lZCk7CiAgICAgbV9wcm9jZXNzZXMuYXBwZW5k
KHByb2Nlc3NQcm94eS5jb3B5UmVmKCkpOwogCkBAIC0xMDUxLDcgKzEwNTEsNyBAQCBSZWY8V2Vi
UGFnZVByb3h5PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50JiBwYWdl
Q2xpZW50LCBSZWY8QVBJOgogICAgICAgICAvLyBJbiB0aGUgY29tbW9uIGNhc2UsIHdlIGRlbGF5
IHByb2Nlc3MgbGF1bmNoIHVudGlsIHNvbWV0aGluZyBpcyBhY3R1YWxseSBsb2FkZWQgaW4gdGhl
IHBhZ2UuCiAgICAgICAgIHByb2Nlc3MgPSBkdW1teVByb2Nlc3NQcm94eShwYWdlQ29uZmlndXJh
dGlvbi0+d2Vic2l0ZURhdGFTdG9yZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAgICAgIGlmICghcHJv
Y2VzcykgewotICAgICAgICAgICAgcHJvY2VzcyA9IFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlKCp0
aGlzLCBwYWdlQ29uZmlndXJhdGlvbi0+d2Vic2l0ZURhdGFTdG9yZSgpLCBXZWJQcm9jZXNzUHJv
eHk6OklzUHJld2FybWVkOjpObywgV2ViUHJvY2Vzc1Byb3h5OjpTaG91bGRMYXVuY2hQcm9jZXNz
OjpObyk7CisgICAgICAgICAgICBwcm9jZXNzID0gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoKnRo
aXMsIHBhZ2VDb25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCksIFdlYlByb2Nlc3NQcm94
eTo6SXNQcmV3YXJtZWQ6Ok5vLCBXZWJQcm9jZXNzUHJveHk6OklzQ3Jvc3NPcmlnaW5Jc29sYXRl
ZDo6Tm8sIFdlYlByb2Nlc3NQcm94eTo6U2hvdWxkTGF1bmNoUHJvY2Vzczo6Tm8pOwogICAgICAg
ICAgICAgbV9kdW1teVByb2Nlc3NQcm94aWVzLmFkZChwYWdlQ29uZmlndXJhdGlvbi0+d2Vic2l0
ZURhdGFTdG9yZSgpLT5zZXNzaW9uSUQoKSwgbWFrZVdlYWtQdHIoKnByb2Nlc3MpKTsKICAgICAg
ICAgICAgIG1fcHJvY2Vzc2VzLmFwcGVuZCgqcHJvY2Vzcyk7CiAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDA1MzU5YTdkZDQxMS4uNjNmYWZm
OWFkOTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTUx
NCw2ICs1MTQsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyBjb250YWluZXJUZW1wb3Jh
cnlEaXJlY3RvcnkoKTsKICNlbmRpZgogCisgICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gY3JlYXRl
TmV3V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiwgV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdh
cm1lZCA9IFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQ6Ok5vLCBXZWJQcm9jZXNzUHJveHk6
OklzQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IFdlYlByb2Nlc3NQcm94eTo6SXNDcm9zc09yaWdpbklz
b2xhdGVkOjpObyk7CisKIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsK
IApAQCAtNTI0LDcgKzUyNiw2IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8V2ViUHJvY2Vzc1By
b3h5PiB0cnlUYWtlUHJld2FybWVkUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlJik7CiAKLSAgICBS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiBjcmVhdGVOZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUq
LCBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkID0gV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdh
cm1lZDo6Tm8pOwogICAgIHZvaWQgaW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3MoV2ViUHJvY2Vzc1By
b3h5JiwgV2Vic2l0ZURhdGFTdG9yZSosIFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQgPSBX
ZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkOjpObyk7CiAKICAgICB2b2lkIGhhbmRsZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgY29uc3QgVXNl
ckRhdGEmIG1lc3NhZ2VCb2R5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCmluZGV4IGQ4ZTZjNzNhYTZlOS4uOTBiZDQ3MTgyYzA2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE0Nyw5ICsxNDcsOSBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6Zm9yV2ViUGFnZXNXaXRoT3JpZ2luKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgU2VjdQogICAgIH0KIH0KIAotUmVmPFdlYlByb2Nlc3NQcm94eT4g
V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJz
aXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3JlLCBJc1ByZXdhcm1lZCBpc1ByZXdhcm1lZCwg
U2hvdWxkTGF1bmNoUHJvY2VzcyBzaG91bGRMYXVuY2hQcm9jZXNzKQorUmVmPFdlYlByb2Nlc3NQ
cm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29s
LCBXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3JlLCBJc1ByZXdhcm1lZCBpc1ByZXdh
cm1lZCwgSXNDcm9zc09yaWdpbklzb2xhdGVkIGlzQ3Jvc3NPcmlnaW5Jc29sYXRlZCwgU2hvdWxk
TGF1bmNoUHJvY2VzcyBzaG91bGRMYXVuY2hQcm9jZXNzKQogewotICAgIGF1dG8gcHJveHkgPSBh
ZG9wdFJlZigqbmV3IFdlYlByb2Nlc3NQcm94eShwcm9jZXNzUG9vbCwgd2Vic2l0ZURhdGFTdG9y
ZSwgaXNQcmV3YXJtZWQpKTsKKyAgICBhdXRvIHByb3h5ID0gYWRvcHRSZWYoKm5ldyBXZWJQcm9j
ZXNzUHJveHkocHJvY2Vzc1Bvb2wsIHdlYnNpdGVEYXRhU3RvcmUsIGlzUHJld2FybWVkLCBpc0Ny
b3NzT3JpZ2luSXNvbGF0ZWQpKTsKICAgICBpZiAoc2hvdWxkTGF1bmNoUHJvY2VzcyA9PSBTaG91
bGRMYXVuY2hQcm9jZXNzOjpZZXMpCiAgICAgICAgIHByb3h5LT5jb25uZWN0KCk7CiAgICAgcmV0
dXJuIHByb3h5OwpAQCAtMTU4LDcgKzE1OCw3IEBAIFJlZjxXZWJQcm9jZXNzUHJveHk+IFdlYlBy
b2Nlc3NQcm94eTo6Y3JlYXRlKFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0CiAj
aWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogUmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vz
c1Byb3h5OjpjcmVhdGVGb3JTZXJ2aWNlV29ya2VycyhXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bv
b2wsIFJlZ2lzdHJhYmxlRG9tYWluJiYgcmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhU3Rv
cmUmIHdlYnNpdGVEYXRhU3RvcmUpCiB7Ci0gICAgYXV0byBwcm94eSA9IGFkb3B0UmVmKCpuZXcg
V2ViUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLCAmd2Vic2l0ZURhdGFTdG9yZSwgSXNQcmV3YXJt
ZWQ6Ok5vKSk7CisgICAgYXV0byBwcm94eSA9IGFkb3B0UmVmKCpuZXcgV2ViUHJvY2Vzc1Byb3h5
KHByb2Nlc3NQb29sLCAmd2Vic2l0ZURhdGFTdG9yZSwgSXNQcmV3YXJtZWQ6Ok5vLCBJc0Nyb3Nz
T3JpZ2luSXNvbGF0ZWQ6Ok5vKSk7CiAgICAgcHJveHktPm1fcmVnaXN0cmFibGVEb21haW4gPSBX
VEZNb3ZlKHJlZ2lzdHJhYmxlRG9tYWluKTsKICAgICBwcm94eS0+ZW5hYmxlU2VydmljZVdvcmtl
cnMocHJvY2Vzc1Bvb2wudXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllckZvclNlcnZpY2VX
b3JrZXJzKCkpOwogICAgIHByb3h5LT5jb25uZWN0KCk7CkBAIC0xOTQsNyArMTk0LDcgQEAgcHJp
dmF0ZToKIH07CiAjZW5kaWYKIAotV2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkoV2Vi
UHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0
b3JlLCBJc1ByZXdhcm1lZCBpc1ByZXdhcm1lZCkKK1dlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vz
c1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9yZSogd2Vi
c2l0ZURhdGFTdG9yZSwgSXNQcmV3YXJtZWQgaXNQcmV3YXJtZWQsIElzQ3Jvc3NPcmlnaW5Jc29s
YXRlZCBpc0Nyb3NzT3JpZ2luSXNvbGF0ZWQpCiAgICAgOiBBdXhpbGlhcnlQcm9jZXNzUHJveHko
cHJvY2Vzc1Bvb2wuYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5KCkpCiAgICAgLCBtX2Jh
Y2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyKCp0aGlzKQogICAgICwgbV9wcm9jZXNzUG9vbChw
cm9jZXNzUG9vbCwgaXNQcmV3YXJtZWQgPT0gSXNQcmV3YXJtZWQ6OlllcyA/IElzV2Vhazo6WWVz
IDogSXNXZWFrOjpObykKQEAgLTIxMSw2ICsyMTEsNyBAQCBXZWJQcm9jZXNzUHJveHk6OldlYlBy
b2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUq
CiAgICAgLCBtX3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkobWFrZVVuaXF1ZTxVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5PihtYWtlVW5pcXVlUmVmPFVJUHJveHlGb3JDYXB0dXJlPigq
dGhpcykpKQogI2VuZGlmCiAgICAgLCBtX2lzUHJld2FybWVkKGlzUHJld2FybWVkID09IElzUHJl
d2FybWVkOjpZZXMpCisgICAgLCBtX2lzQ3Jvc3NPcmlnaW5Jc29sYXRlZChpc0Nyb3NzT3JpZ2lu
SXNvbGF0ZWQgPT0gSXNDcm9zc09yaWdpbklzb2xhdGVkOjpZZXMpCiAgICAgLCBtX3NodXRkb3du
UHJldmVudGluZ1Njb3BlQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50IGV2ZW50KSB7IGlm
IChldmVudCA9PSBSZWZDb3VudGVyRXZlbnQ6OkRlY3JlbWVudCkgbWF5YmVTaHV0RG93bigpOyB9
KQogewogICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZE9yQ2hlY2tEaXNhYmxlZCgpKTsK
QEAgLTExNDYsNiArMTE0NywxMSBAQCBib29sIFdlYlByb2Nlc3NQcm94eTo6Y2FuQmVBZGRlZFRv
V2ViUHJvY2Vzc0NhY2hlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAor
ICAgIGlmIChtX2lzQ3Jvc3NPcmlnaW5Jc29sYXRlZCkgeworICAgICAgICBXRUJQUk9DRVNTUFJP
WFlfUkVMRUFTRV9MT0coUHJvY2VzcywgImNhbkJlQWRkZWRUb1dlYlByb2Nlc3NDYWNoZTogTm90
IGFkZGluZyB0byBwcm9jZXNzIGNhY2hlIGJlY2F1c2UgdGhlIHByb2Nlc3MgaXMgY3Jvc3Mtb3Jp
Z2luIGlzb2xhdGVkIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICBpZiAo
V2ViS2l0Ojppc0luc3BlY3RvclByb2Nlc3NQb29sKHByb2Nlc3NQb29sKCkpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgK
aW5kZXggYTQwZTY5ZGZhNTIyLi42NmQ1NGU0OGRlY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xMzMsOSArMTMzLDEwIEBAIHB1YmxpYzoKICAgICAg
ICAgWWVzCiAgICAgfTsKIAorICAgIGVudW0gY2xhc3MgSXNDcm9zc09yaWdpbklzb2xhdGVkIDog
Ym9vbCB7IE5vLCBZZXMgfTsKICAgICBlbnVtIGNsYXNzIFNob3VsZExhdW5jaFByb2Nlc3MgOiBi
b29sIHsgTm8sIFllcyB9OwogCi0gICAgc3RhdGljIFJlZjxXZWJQcm9jZXNzUHJveHk+IGNyZWF0
ZShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3RvcmUqLCBJc1ByZXdhcm1lZCwgU2hvdWxk
TGF1bmNoUHJvY2VzcyA9IFNob3VsZExhdW5jaFByb2Nlc3M6Olllcyk7CisgICAgc3RhdGljIFJl
ZjxXZWJQcm9jZXNzUHJveHk+IGNyZWF0ZShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3Rv
cmUqLCBJc1ByZXdhcm1lZCwgSXNDcm9zc09yaWdpbklzb2xhdGVkID0gSXNDcm9zc09yaWdpbklz
b2xhdGVkOjpObywgU2hvdWxkTGF1bmNoUHJvY2VzcyA9IFNob3VsZExhdW5jaFByb2Nlc3M6Olll
cyk7CiAgICAgc3RhdGljIFJlZjxXZWJQcm9jZXNzUHJveHk+IGNyZWF0ZUZvclNlcnZpY2VXb3Jr
ZXJzKFdlYlByb2Nlc3NQb29sJiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiwgV2Vic2l0
ZURhdGFTdG9yZSYpOwogCiAgICAgfldlYlByb2Nlc3NQcm94eSgpOwpAQCAtNDE5LDggKzQyMCwx
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDYXB0aW9uTGFuZ3VhZ2UoY29uc3QgU3RyaW5nJik7
CiAjZW5kaWYKIAorICAgIGJvb2wgaXNDcm9zc09yaWdpbklzb2xhdGVkKCkgY29uc3QgeyByZXR1
cm4gbV9pc0Nyb3NzT3JpZ2luSXNvbGF0ZWQ7IH0KKwogcHJvdGVjdGVkOgotICAgIFdlYlByb2Nl
c3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3RvcmUqLCBJc1ByZXdhcm1lZCk7
CisgICAgV2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSos
IElzUHJld2FybWVkLCBJc0Nyb3NzT3JpZ2luSXNvbGF0ZWQpOwogCiAgICAgLy8gQXV4aWxpYXJ5
UHJvY2Vzc1Byb3h5CiAgICAgQVNDSUlMaXRlcmFsIHByb2Nlc3NOYW1lKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gIldlYkNvbnRlbnQiX3M7IH0KQEAgLTQ0MCw2ICs0NDMsNyBAQCBwcm90ZWN0ZWQ6
CiAKICAgICBib29sIHNob3VsZENvbmZpZ3VyZUpTQ0ZvclRlc3RpbmcoKSBjb25zdCBmaW5hbDsK
ICAgICBib29sIGlzSklURW5hYmxlZCgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgc2hvdWxkRW5h
YmxlU2hhcmVkQXJyYXlCdWZmZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzQ3Jvc3NPcmln
aW5Jc29sYXRlZDsgfQogCiAgICAgdm9pZCB2YWxpZGF0ZUZyZWV6ZXJTdGF0dXMoKTsKIApAQCAt
NjIwLDYgKzYyNCw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1faGFzQ29tbWl0dGVkQW55UHJv
dmlzaW9uYWxMb2FkcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzUHJld2FybWVkOworICAgIGJv
b2wgbV9pc0Nyb3NzT3JpZ2luSXNvbGF0ZWQgeyBmYWxzZSB9OwogI2lmIEVOQUJMRShBVFRBQ0hN
RU5UX0VMRU1FTlQpCiAgICAgYm9vbCBtX2hhc0lzc3VlZEF0dGFjaG1lbnRFbGVtZW50UmVsYXRl
ZFNhbmRib3hFeHRlbnNpb25zIHsgZmFsc2UgfTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKaW5kZXggNzIzMTVhNTc1ODczLi4xNmE1ZjY0NjA4YjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtODE2LDcgKzgxNiw3IEBAIHZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygpCiAgICAgd2ViUGFnZS0+c2hvdygpOwogfQogCi12
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNl
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG93
bmxvYWRBdHRyaWJ1dGUsIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggbmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQog
ewogICAgIGF1dG8qIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCF3ZWJQYWdl
KSB7CkBAIC04MzcsNyArODM3LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnMKICAgICBXS0J1
bmRsZVBhZ2VQb2xpY3lBY3Rpb24gcG9saWN5ID0gd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVQb2xp
Y3lDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh3ZWJQYWdlLCBtX2ZyYW1lLnB0cigp
LCByZXNwb25zZSwgcmVxdWVzdCwgdXNlckRhdGEpOwogICAgIC8vIElmIGEgYnJvd3NpbmcgY29u
dGV4dCBzd2l0Y2ggaXMgcmVxdWVzdGVkLCB3ZSBzdGlsbCBuZWVkIHRvIHNlbmQgdGhlIElQQyB0
byB0aGUgVUlQcm9jZXNzIGluIG9yZGVyIHRvIHByb2Nlc3Mtc3dhcCBpZiBuZWNlc3NhcnksIGV2
ZW4gdGhvdWdoIHRoZQogICAgIC8vIGluamVjdGVkIGJ1bmRsZSBoYXMgYWxyZWFkeSBoYW5kbGVk
IHRoZSBwb2xpY3kgZGVjaXNpb24uCi0gICAgaWYgKHBvbGljeSA9PSBXS0J1bmRsZVBhZ2VQb2xp
Y3lBY3Rpb25Vc2UgJiYgIW5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gpIHsKKyAgICBp
ZiAocG9saWN5ID09IFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvblVzZSAmJiBuZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoID09IE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6Ok5v
KSB7CiAgICAgICAgIFdFQkZSQU1FTE9BREVSQ0xJRU5UX1JFTEVBU0VfTE9HKE5ldHdvcmssICJk
aXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlOiBjb250aW51aW5nIGJlY2F1c2UgaW5qZWN0
ZWQgYnVuZGxlIHNheXMgc28iKTsKICAgICAgICAgZnVuY3Rpb24oUG9saWN5QWN0aW9uOjpVc2Us
IGlkZW50aWZpZXIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CmluZGV4IDk2NjZkNjdmODYyMC4uNTFkNmMxMjM4ZjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaApAQCAtMTI5LDcgKzEyOSw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6RnJhbWUq
IGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgV2Vi
Q29yZTo6TmV3RnJhbWVPcGVuZXJQb2xpY3kpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hTaG93
KCkgZmluYWw7CiAgICAgCi0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNl
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYs
IGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6
RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBjb25z
dCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rp
b24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJD
b3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwg
V2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbFBv
bGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAwNTE2Mjcw
MDlhNjYuLjRjNDdkNDI2ZWFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMjcs
NyArMTI3LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVhdGVQ
YWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBXZWJDb3JlOjpOZXdGcmFtZU9w
ZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKIAotICAg
IHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdD
b250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7
CisgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24m
JikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlv
bihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1l
TmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGlj
eUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiBy
ZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNp
c2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQ
b2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmlu
YWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDBjZmJlZWUwNDQ3ZC4uYWFkZjRl
NzAwNGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtODU1LDcgKzg1NSw3IEBA
IHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygpCiAgICAgW1t3ZWJWaWV3
IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3U2hvdzp3ZWJWaWV3XTsKIH0KIAotdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dp
dGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dp
dGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAgV2Vi
VmlldyAqd2ViVmlldyA9IGdldFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBjNWFmYTEzMzdkYjQuLmFmMWMwMjlhYWU1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNTE5LDcgKzUxOSw3IEBAIHZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygpCiAgICAgICAgIHVpLT53ZWJWaWV3U2hv
dyh3ZWJWaWV3KTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdy
b3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBO
ZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVu
Y3Rpb24pCiB7CiAgICAgV2ViVmlldyogd2ViVmlldyA9IG1fd2ViRnJhbWUtPndlYlZpZXcoKTsK
ICAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShtX3dlYkZyYW1lKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCmluZGV4IDYxNDY1YzExZmMyNS4uNTQ1NGZiYmRiMzU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzcGF0
Y2hEaWRGaW5pc2hMb2FkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlYWNoTGF5
b3V0TWlsZXN0b25lKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+KSBvdmVycmlk
ZTsKIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24m
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIFdl
YkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9s
aWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZv
ck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgY29uc3QgV1RG
OjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25B
Y3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBX
ZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGNh
bmNlbFBvbGljeUNoZWNrKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5t
bQppbmRleCA0MGEwODIyMTcwNzMuLjA2NjljODg0NzU5ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25O
YXZpZ2F0aW9uLm1tCkBAIC0yNTEsMTMgKzI1MSwxNCBAQCBAaW50ZXJmYWNlIFBTT05TY2hlbWUg
OiBOU09iamVjdCA8V0tVUkxTY2hlbWVIYW5kbGVyPiB7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0
cmluZz4gX3JlZGlyZWN0czsKICAgICBIYXNoTWFwPFN0cmluZywgUmV0YWluUHRyPE5TRGF0YT4+
IF9kYXRhTWFwcGluZ3M7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gX2Nvb3BWYWx1ZXM7
CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gX2NvZXBWYWx1ZXM7CiAgICAgSGFzaFNldDxp
ZCA8V0tVUkxTY2hlbWVUYXNrPj4gX3J1bm5pbmdUYXNrczsKICAgICBib29sIF9zaG91bGRSZXNw
b25kQXN5bmNocm9ub3VzbHk7CiB9CiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhCeXRlczooY29u
c3QgY2hhciopYnl0ZXM7CiAtICh2b2lkKWFkZFJlZGlyZWN0RnJvbVVSTFN0cmluZzooTlNTdHJp
bmcgKilzb3VyY2VVUkxTdHJpbmcgdG9VUkxTdHJpbmc6KE5TU3RyaW5nICopZGVzdGluYXRpb25V
UkxTdHJpbmc7CiAtICh2b2lkKWFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXVy
bFN0cmluZyB0b0RhdGE6KGNvbnN0IGNoYXIqKWRhdGE7Ci0tICh2b2lkKWFkZE1hcHBpbmdGcm9t
VVJMU3RyaW5nOihOU1N0cmluZyAqKXVybFN0cmluZyB0b0RhdGE6KGNvbnN0IGNoYXIqKWRhdGEg
d2l0aENPT1BWYWx1ZTooY29uc3QgY2hhciopY29vcFZhbHVlOworLSAodm9pZClhZGRNYXBwaW5n
RnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilk
YXRhIHdpdGhDT09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1ZSB3aXRoQ09FUFZhbHVlOihj
b25zdCBjaGFyKiljb2VwVmFsdWU7CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBQU09OU2NoZW1l
CkBAIC0yNzksMTEgKzI4MCwxMyBAQCAtICh2b2lkKWFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOihO
U1N0cmluZyAqKXVybFN0cmluZyB0b0RhdGE6KGNvbnN0IGNoYXIqKWRhdGEKICAgICBfZGF0YU1h
cHBpbmdzLnNldCh1cmxTdHJpbmcsIFtOU0RhdGEgZGF0YVdpdGhCeXRlc05vQ29weToodm9pZCop
ZGF0YSBsZW5ndGg6c3RybGVuKGRhdGEpIGZyZWVXaGVuRG9uZTpOT10pOwogfQogCi0tICh2b2lk
KWFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXVybFN0cmluZyB0b0RhdGE6KGNv
bnN0IGNoYXIqKWRhdGEgd2l0aENPT1BWYWx1ZTooY29uc3QgY2hhciopY29vcFZhbHVlCistICh2
b2lkKWFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXVybFN0cmluZyB0b0RhdGE6
KGNvbnN0IGNoYXIqKWRhdGEgd2l0aENPT1BWYWx1ZTooY29uc3QgY2hhciopY29vcFZhbHVlIHdp
dGhDT0VQVmFsdWU6KGNvbnN0IGNoYXIqKWNvZXBWYWx1ZQogewogICAgIFtzZWxmIGFkZE1hcHBp
bmdGcm9tVVJMU3RyaW5nOnVybFN0cmluZyB0b0RhdGE6ZGF0YV07CiAgICAgaWYgKGNvb3BWYWx1
ZSkKICAgICAgICAgX2Nvb3BWYWx1ZXMuYWRkKHVybFN0cmluZywgY29vcFZhbHVlKTsKKyAgICBp
ZiAoY29lcFZhbHVlKQorICAgICAgICBfY29lcFZhbHVlcy5hZGQodXJsU3RyaW5nLCBjb2VwVmFs
dWUpOwogfQogCiAtICh2b2lkKXNldFNob3VsZFJlc3BvbmRBc3luY2hyb25vdXNseTooQk9PTCl2
YWx1ZQpAQCAtMzI3LDYgKzMzMCw5IEBAIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBzdGFydFVSTFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRhc2s+KXRhCiAgICAgICAg
IGF1dG8gY29vcFZhbHVlID0gX2Nvb3BWYWx1ZXMuZ2V0KFtmaW5hbFVSTCBhYnNvbHV0ZVN0cmlu
Z10pOwogICAgICAgICBpZiAoIWNvb3BWYWx1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBbaGVh
ZGVyRGljdGlvbmFyeSBzZXRPYmplY3Q6KE5TU3RyaW5nICopY29vcFZhbHVlIGZvcktleTpAIkNy
b3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il07CisgICAgICAgIGF1dG8gY29lcFZhbHVlID0gX2Nv
ZXBWYWx1ZXMuZ2V0KFtmaW5hbFVSTCBhYnNvbHV0ZVN0cmluZ10pOworICAgICAgICBpZiAoIWNv
ZXBWYWx1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBbaGVhZGVyRGljdGlvbmFyeSBzZXRPYmpl
Y3Q6KE5TU3RyaW5nICopY29lcFZhbHVlIGZvcktleTpAIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Q
b2xpY3kiXTsKIAogICAgICAgICBhdXRvIHJlc3BvbnNlID0gYWRvcHROUyhbW05TSFRUUFVSTFJl
c3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDpmaW5hbFVSTC5nZXQoKSBzdGF0dXNDb2RlOjIwMCBI
VFRQVmVyc2lvbjpAIkhUVFAvMS4xIiBoZWFkZXJGaWVsZHM6aGVhZGVyRGljdGlvbmFyeV0pOwog
ICAgICAgICBbdGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6cmVzcG9uc2UuZ2V0KCldOwpAQCAtNzE5
MSwzNiArNzE5NywzOSBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAKIGVudW0gY2xh
c3MgSXNTYW1lT3JpZ2luIDogYm9vbCB7IE5vLCBZZXMgfTsKIGVudW0gY2xhc3MgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3QgOiBib29sIHsgTm8sIFllcyB9Owotc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlv
bkNPT1AsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRv
U2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCitzdGF0aWMgdm9pZCBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIq
IHNvdXJjZUNPRVAsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09PUCwgY29uc3QgY2hhciogZGVz
dGluYXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRp
cmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQogewogICAg
IGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbigpOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBh
bGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0
KCldKTsKKyAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJj
ZUNPT1AgJiYgIXN0cmNtcChzb3VyY2VDT09QLCAic2FtZS1vcmlnaW4iKSAmJiBzb3VyY2VDT0VQ
ICYmICFzdHJjbXAoc291cmNlQ09FUCwgInJlcXVpcmUtY29ycCIpOworICAgIGJvb2wgZGVzdGlu
YXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgJiYgIXN0
cmNtcChkZXN0aW5hdGlvbkNPT1AsICJzYW1lLW9yaWdpbiIpICYmIGRlc3RpbmF0aW9uQ09FUCAm
JiAhc3RyY21wKGRlc3RpbmF0aW9uQ09FUCwgInJlcXVpcmUtY29ycCIpOworICAgIEVYUEVDVF9U
UlVFKHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9PSBkZXN0aW5hdGlvblNob3Vs
ZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCB8fCBleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6Olllcyk7
CiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0
UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlF
UzsKICAgICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVy
ZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXSkgewotICAgICAgICBpZiAoW2ZlYXR1cmUua2V5
IGlzRXF1YWxUb1N0cmluZzpAIkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5RW5hYmxlZCJdKSB7Cisg
ICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiQ3Jvc3NPcmlnaW5PcGVu
ZXJQb2xpY3lFbmFibGVkIl0pCisgICAgICAgICAgICBbW3dlYlZpZXdDb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJl
XTsKKyAgICAgICAgZWxzZSBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIkNyb3Nz
T3JpZ2luRW1iZWRkZXJQb2xpY3lFbmFibGVkIl0pCiAgICAgICAgICAgICBbW3dlYlZpZXdDb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTpmZWF0dXJlXTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9CiAgICAgfQogCiAg
ICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAg
ICBpZiAoaXNTYW1lT3JpZ2luID09IElzU2FtZU9yaWdpbjo6WWVzKSB7Ci0gICAgICAgIFtoYW5k
bGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4u
aHRtbCIgdG9EYXRhOndpbmRvd09wZW5TYW1lT3JpZ2luQ09PUFRlc3RCeXRlcyB3aXRoQ09PUFZh
bHVlOnNvdXJjZUNPT1BdOworICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmlu
ZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuU2Ft
ZU9yaWdpbkNPT1BUZXN0Qnl0ZXMgd2l0aENPT1BWYWx1ZTpzb3VyY2VDT09QIHdpdGhDT0VQVmFs
dWU6c291cmNlQ09FUF07CiAgICAgICAgIGlmIChkb1NlcnZlclNpZGVSZWRpcmVjdCA9PSBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6WWVzKSB7CiAgICAgICAgICAgICBbaGFuZGxlciBhZGRSZWRpcmVj
dEZyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvcG9wdXAuaHRtbCIgdG9VUkxT
dHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvcG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCJd
OwotICAgICAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8v
d3d3LndlYmtpdC5vcmcvcG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCIgdG9EYXRhOiJwb3B1cCIg
d2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1BdOworICAgICAgICAgICAgW2hhbmRsZXIgYWRk
TWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvcG9wdXAtYWZ0ZXIt
cmVkaXJlY3QuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNP
T1Agd2l0aENPRVBWYWx1ZTpkZXN0aW5hdGlvbkNPRVBdOwogICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJr
aXQub3JnL3BvcHVwLmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRp
b25DT09QXTsKKyAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAi
cHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09Q
VmFsdWU6ZGVzdGluYXRpb25DT09QIHdpdGhDT0VQVmFsdWU6ZGVzdGluYXRpb25DT0VQXTsKICAg
ICB9IGVsc2UgewotICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBz
b246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuQ3Jvc3NPcmln
aW5DT09QVGVzdEJ5dGVzIHdpdGhDT09QVmFsdWU6c291cmNlQ09PUF07CisgICAgICAgIFtoYW5k
bGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4u
aHRtbCIgdG9EYXRhOndpbmRvd09wZW5Dcm9zc09yaWdpbkNPT1BUZXN0Qnl0ZXMgd2l0aENPT1BW
YWx1ZTpzb3VyY2VDT09QIHdpdGhDT0VQVmFsdWU6c291cmNlQ09FUF07CiAgICAgICAgIGlmIChk
b1NlcnZlclNpZGVSZWRpcmVjdCA9PSBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzKSB7CiAgICAg
ICAgICAgICBbaGFuZGxlciBhZGRSZWRpcmVjdEZyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LmFw
cGxlLmNvbS9wb3B1cC5odG1sIiB0b1VSTFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL3Bv
cHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiXTsKLSAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBp
bmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAtYWZ0ZXItcmVkaXJl
Y3QuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1BdOwor
ICAgICAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3
LmFwcGxlLmNvbS9wb3B1cC1hZnRlci1yZWRpcmVjdC5odG1sIiB0b0RhdGE6InBvcHVwIiB3aXRo
Q09PUFZhbHVlOmRlc3RpbmF0aW9uQ09PUCB3aXRoQ09FUFZhbHVlOmRlc3RpbmF0aW9uQ09FUF07
CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxT
dHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC5odG1sIiB0b0RhdGE6InBvcHVwIiB3
aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9uQ09PUF07CisgICAgICAgICAgICBbaGFuZGxlciBhZGRN
YXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL3BvcHVwLmh0bWwiIHRv
RGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QIHdpdGhDT0VQVmFsdWU6
ZGVzdGluYXRpb25DT0VQXTsKICAgICB9CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVS
TFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CiAKQEAg
LTcyODgsNiArNzI5NywyNiBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNv
bnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aQogICAgICAgICBmaW5p
c2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOwogICAgIH1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKKyAgICBmaW5pc2hlZFJ1bm5pbmdTY3Jp
cHQgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJzZWxmLmNyb3Nz
T3JpZ2luSXNvbGF0ZWQgPyAnaXNvbGF0ZWQnIDogJ25vdC1pc29sYXRlZCciIGNvbXBsZXRpb25I
YW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJp
bmcgKmNyb3NzT3JpZ2luSXNvbGF0ZWQgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlm
IChzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQpCisgICAgICAgICAgICBFWFBFQ1Rf
V0tfU1RSRVEoQCJpc29sYXRlZCIsIGNyb3NzT3JpZ2luSXNvbGF0ZWQpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJub3QtaXNvbGF0ZWQiLCBjcm9zc09yaWdp
bklzb2xhdGVkKTsKKyAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAgICB9
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7
CisgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVh
dGVKYXZhU2NyaXB0OkAic2VsZi5TaGFyZWRBcnJheUJ1ZmZlciA/ICdoYXMtc2FiJyA6ICdkb2Vz
LW5vdC1oYXZlLXNhYiciIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJv
ciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKmhhc1NBQiA9IChOU1N0cmluZyAqKXJlc3Vs
dDsKKyAgICAgICAgaWYgKHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCkKKyAgICAg
ICAgICAgIEVYUEVDVF9XS19TVFJFUShAImhhcy1zYWIiLCBoYXNTQUIpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJkb2VzLW5vdC1oYXZlLXNhYiIsIGhhc1NB
Qik7CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CisgICAgfV07CisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQpOwogCiAgICAg
Ly8gT3BlbmVlIHNob3VsZCBub3QgaGF2ZSBhbiBvcGVuZXIgb3IgYSBuYW1lLgogICAgIGZpbmlz
aGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOwpAQCAtNzMxOCw4NyArNzM0NywyMzUgQEAgc3RhdGlj
IHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25z
dCBjaGFyKiBkZXN0aW5hdGkKICAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsK
ICAgICB9XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1Nj
cmlwdCk7CisgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7CisgICAgW2NyZWF0ZWRX
ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInNlbGYuY3Jvc3NPcmlnaW5Jc29sYXRlZCA/ICdp
c29sYXRlZCcgOiAnbm90LWlzb2xhdGVkJyIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVz
dWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAqY3Jvc3NPcmlnaW5Jc29s
YXRlZCA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYgKGRlc3RpbmF0aW9uU2hvdWxk
QmVDcm9zc09yaWdpbklzb2xhdGVkKQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiaXNv
bGF0ZWQiLCBjcm9zc09yaWdpbklzb2xhdGVkKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
RVhQRUNUX1dLX1NUUkVRKEAibm90LWlzb2xhdGVkIiwgY3Jvc3NPcmlnaW5Jc29sYXRlZCk7Cisg
ICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQpOworICAgIGZpbmlzaGVk
UnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFT
Y3JpcHQ6QCJzZWxmLlNoYXJlZEFycmF5QnVmZmVyID8gJ2hhcy1zYWInIDogJ2RvZXMtbm90LWhh
dmUtc2FiJyIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJv
cikgeworICAgICAgICBOU1N0cmluZyAqaGFzU0FCID0gKE5TU3RyaW5nICopcmVzdWx0OworICAg
ICAgICBpZiAoZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQpCisgICAgICAg
ICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJoYXMtc2FiIiwgaGFzU0FCKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiZG9lcy1ub3QtaGF2ZS1zYWIiLCBoYXNTQUIp
OworICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKIAogICAgIGNy
ZWF0ZWRXZWJWaWV3ID0gbnVsbHB0cjsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QobnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIp
CiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAic2FtZS1vcmln
aW4iLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVs
bHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKK3sKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1
bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
dW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUi
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09P
UEFuZENPRVBTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0
ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51
bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QU2FtZU9yaWdpbjMpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVP
cmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVx
dWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93
LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAy
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
IiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpbkFsbG93UG9wdXAzKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwg
InVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQoreworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInJlcXVpcmUtY29y
cCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInNhbWUtb3JpZ2luIiwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQoreworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQoreworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNh
bWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQ
U2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIs
ICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQor
CitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNh
bWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQoreworICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1c2Ug
dGhlIGRlc3RpbmF0aW9uIGlzIG1pc3NpbmcgQ09FUC4KKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQoreworICAgIC8vIFNob3VsZCBz
d2FwIGJlY2F1c2UgdGhlIHNvdXJjZSBpcyBtaXNzaW5nIENPRVAuCisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWly
ZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAg
IC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENP
T1A9c2FtZS1vcmlnaW4uCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVP
cmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKK3sKKyAgICAvLyBXZSBl
eHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2ZSBDT09QPXNhbWUt
b3JpZ2luIGFuZCBDT0VQPXJlcXVpcmUtY29ycC4KKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1j
b3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2lu
V2l0aG91dENPT1BXaXRoUmVkaXJlY3QpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChu
dWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
OlllcywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0
ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09Q
U2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUi
LCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZl
LW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQorewor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUt
b3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkKK3sKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1
bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNh
bWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZlLW5vbmUi
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpbjQpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAi
dW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVP
cmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVx
dWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2lu
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInNhbWUtb3Jp
Z2luIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVs
bHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5k
Q09FUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
K30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRD
T0VQU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1
aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51
bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jv
c3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwg
bnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQor
eworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwg
InVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9w
dXA0KQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBv
cHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5kZXggMWRlY2YzMDczYWFmLi5kZmY1MGVkZmY2NmUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAgLTQwNiw2ICs0MDYsOCBAQCB2b2lkIEluamVj
dGVkQnVuZGxlUGFnZTo6cmVzZXRBZnRlclRlc3QoKQogICAgIHVuaW5zdGFsbEZha2VIZWx2ZXRp
Y2EoKTsKIAogICAgIEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5yZXNldFVzZXJTY3JpcHRJ
bmplY3RlZENvdW50KCk7CisKKyAgICBtX2RpZENvbW1pdE1haW5GcmFtZUxvYWQgPSBmYWxzZTsK
IH0KIAogLy8gTG9hZGVyIENsaWVudCBDYWxsYmFja3MKQEAgLTYzNCw2ICs2MzYsMTEgQEAgdm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JG
cmFtZShXS0J1bmRsZUZyYW1lUmUKICAgICBpZiAoIWluamVjdGVkQnVuZGxlLmlzVGVzdFJ1bm5p
bmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gSW4gY2FzZSBvZiBhIENPT1AgcHJvY2Vz
cy1zd2FwLCB0aGUgb2xkIHByb2Nlc3MgZ2V0cyBhIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRo
RXJyb3JGb3JGcmFtZSBkZWxlZ2F0ZSBjYWxsLiBXZSB3YW50IHRvIGlnbm9yZQorICAgIC8vIHRo
aXMgY2FsbCBzaW5jZSBpdCBjYXVzZXMgdGhlIHRlc3QgdG8gZHVtcCBpdHMgb3V0cHV0IHRvbyBl
YWdlcmx5LCBiZWZvcmUgdGhlIHRlc3QgaGFzIGhhZCBhIGNoYW5jZSB0byBydW4gaW4gdGhlIG5l
dyBwcm9jZXNzLgorICAgIGlmIChXS0Vycm9yR2V0RXJyb3JDb2RlKGVycm9yKSA9PSBrV0tFcnJv
ckNvZGVGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlICYmIFdLQnVuZGxlRnJhbWVJ
c01haW5GcmFtZShmcmFtZSkgJiYgIW1fZGlkQ29tbWl0TWFpbkZyYW1lTG9hZCAmJiBpbmplY3Rl
ZEJ1bmRsZS5wYWdlKCkgPT0gdGhpcykKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKGluamVj
dGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7
CiAgICAgICAgIGR1bXBMb2FkRXZlbnQoZnJhbWUsICJkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0
aEVycm9yIik7CiAgICAgICAgIGF1dG8gY29kZSA9IFdLRXJyb3JHZXRFcnJvckNvZGUoZXJyb3Ip
OwpAQCAtNjUyLDYgKzY1OSw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDb21taXRM
b2FkRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSkKICAgICBpZiAoIWluamVjdGVkQnVu
ZGxlLmlzVGVzdFJ1bm5pbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKFdLQnVuZGxl
RnJhbWVJc01haW5GcmFtZShmcmFtZSkpCisgICAgICAgIG1fZGlkQ29tbWl0TWFpbkZyYW1lTG9h
ZCA9IHRydWU7CisKICAgICBpZiAoIWluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxk
RHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZS5oCmluZGV4IDMxNDg4YTUyYjVjZS4uMmQ5MTJlOTE2OWMxIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlLmgKQEAgLTE4MCw2ICsxODAsNyBAQCBwcml2YXRlOgogCiAgICAgV0tCdW5kbGVQYWdlUmVm
IG1fcGFnZTsKICAgICBXS1JldGFpblB0cjxXS0J1bmRsZVNjcmlwdFdvcmxkUmVmPiBtX3dvcmxk
OworICAgIGJvb2wgbV9kaWRDb21taXRNYWluRnJhbWVMb2FkIHsgZmFsc2UgfTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdUUgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436639</attachid>
            <date>2021-08-27 10:06:51 -0700</date>
            <delta_ts>2021-08-27 12:23:35 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>229559_COOP_reenable_SharedArrayBuffer_wip.patch</filename>
            <type>text/plain</type>
            <size>70354</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL3NlcmlhbGl6ZS1zaGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvc2VyaWFsaXplLXNoYXJlZGFycmF5YnVmZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggYWNjMDQ2NDYwM2IxLi42ZDBiYjY2ZmFmMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3NlcmlhbGl6ZS1z
aGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3NlcmlhbGl6ZS1z
aGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNSBA
QAogCi1GQUlMIEluZGV4ZWREQjogQXR0ZW1wdGluZyB0byBzZXJpYWxpemUgYSBTaGFyZWRBcnJh
eUJ1ZmZlciBzaG91bGQgdGhyb3cgYXNzZXJ0X3RydWU6IFRoZSBwYWdlIGlzIHNlcnZlZCB3aXRo
IENPT1AgYW5kIENPRVAsIGl0IHNob3VsZCBiZSBjcm9zcy1vcmlnaW4taXNvbGF0ZWQuIGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCitGQUlMIEluZGV4ZWREQjogQXR0ZW1wdGluZyB0byBzZXJpYWxp
emUgYSBTaGFyZWRBcnJheUJ1ZmZlciBzaG91bGQgdGhyb3cgYXNzZXJ0X3Rocm93c19kb206IGZ1
bmN0aW9uICIoKSA9PiB7CisgICAgICAgICAgICBycSA9IG9ialN0b3JlLnB1dCh7c2FiOiBzYWJ9
LCAna2V5Jyk7CisgICAgICAgIH0iIHRocmV3IG9iamVjdCAiRGF0YUVycm9yOiBGYWlsZWQgdG8g
c3RvcmUgcmVjb3JkIGluIGFuIElEQk9iamVjdFN0b3JlOiBUaGUgb2JqZWN0IHN0b3JlIHVzZXMg
aW4tbGluZSBrZXlzIGFuZCB0aGUga2V5IHBhcmFtZXRlciB3YXMgcHJvdmlkZWQuIiB0aGF0IGlz
IG5vdCBhIERPTUV4Y2VwdGlvbiBEYXRhQ2xvbmVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVx
dWFsIHRvIDAsIGV4cGVjdGVkIDI1CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5
L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmln
aW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBz
LWV4cGVjdGVkLnR4dAppbmRleCAzYjc3NjYxMzM4OTQuLmNlNzA5MDQyNjg1MiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkLXBlcm1pc3Npb24u
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdp
bi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMiBA
QAogCi1GQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9
IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZB
SUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6IG9yaWdp
biA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gc2VsZiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKFwpCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczov
LzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZAotUEFTUyBmcmFtZTogb3JpZ2luID0g
aHR0cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSAqCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBo
dHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHNlbGYKLVBBU1MgZnJhbWU6IG9yaWdpbiA9
IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMsIHZhbHVlID0gKFwpCitQQVNTIGZyYW1lOiBvcmlnaW4g
PSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZAorUEFTUyBmcmFtZTog
b3JpZ2luID0gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MywgdmFsdWUgPSAqCitQQVNTIGZyYW1lOiBv
cmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHNlbGYKK0ZBSUwgZnJhbWU6
IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0
cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSB1bmRlZmluZWQgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEy
Ny4wLjAuMTo5NDQzLCB2YWx1ZSA9ICogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0
IGdvdCB0cnVlCitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2
YWx1ZSA9IHNlbGYgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitG
QUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IChcKSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKIEZBSUwgZGVkaWNhdGVk
IHdvcmtlcjogc2NoZW1lID0gaHR0cHMsIHZhbHVlID0gdW5kZWZpbmVkIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQogRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hl
bWUgPSBodHRwcywgdmFsdWUgPSAqIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdv
dCBmYWxzZQogRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBodHRwcywgdmFsdWUgPSBz
ZWxmIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVu
ZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGI0MzljZGM5NzM1Ni4uZGRj
OGZjMzE4NjFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC5odHRwcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC03LDUgKzcsNSBAQCBQQVNTIFNhbWUtb3JpZ2luIHBvcHVwIHdpdGggY29vcCB1bnNhZmUt
bm9uZSB3aXRob3V0IGNvZXAKIFBBU1MgaGlzdG9yaWNhbDogInNhbWUtc2l0ZSIgcG9wdXAgd2l0
aCBjb29wIHVuc2FmZS1ub25lIHdpdGhvdXQgY29lcAogUEFTUyBTYW1lLW9yaWdpbiBwb3B1cCB3
aXRob3V0IGNvZXAKIFBBU1MgaGlzdG9yaWNhbDogInNhbWUtc2l0ZSIgcG9wdXAgd2l0aG91dCBj
b2VwCi1GQUlMIEJvbnVzOiB3aW5kb3cuY3Jvc3NPcmlnaW5Jc29sYXRlZCBhc3NlcnRfdHJ1ZTog
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgQm9udXM6IHdpbmRvdy5jcm9zc09yaWdpbklz
b2xhdGVkCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGY2
MWE0Y2RhZTI1ZC4uYzI4ZTU3OGVlMDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5jcHAKQEAgLTk0OCw2ICs5NDgsMTUgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVz
cG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmUK
ICAgICByZXNwb25zZVJlY2VpdmVkKHJlc3BvbnNlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiB9CiAKK3N0YXRpYyBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIHRvTmVlZHNC
cm93c2luZ0NvbnRleHRHcm91cFN3aXRjaChjb25zdCBzdGQ6Om9wdGlvbmFsPENyb3NzT3JpZ2lu
T3BlbmVyUG9saWN5RW5mb3JjZW1lbnRSZXN1bHQ+JiBjdXJyZW50Q29vcEVuZm9yY2VtZW50UmVz
dWx0KQoreworICAgIGlmICghY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdCB8fCAhY3VycmVu
dENvb3BFbmZvcmNlbWVudFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCkK
KyAgICAgICAgcmV0dXJuIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6Ok5vOworICAg
IGlmIChjdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0LT5jcm9zc09yaWdpbk9wZW5lclBvbGlj
eS52YWx1ZSA9PSBDcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpTYW1lT3JpZ2luUGx1c0NP
RVApCisgICAgICAgIHJldHVybiBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoOjpZZXNX
aXRoQ3Jvc3NPcmlnaW5Jc29sYXRpb247CisgICAgcmV0dXJuIE5lZWRzQnJvd3NpbmdDb250ZXh0
R3JvdXBTd2l0Y2g6Olllc1dpdGhvdXRDcm9zc09yaWdpbklzb2xhdGlvbjsKK30KKwogdm9pZCBE
b2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIEFTU0VSVChyZXNwb25zZS5jZXJ0aWZpY2F0ZUluZm8oKSk7CkBAIC0xMDQ4LDcgKzEw
NTcsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aQogICAgIGlmIChtYWluUmVzb3VyY2VMb2Fk
ZXIpCiAgICAgICAgIG1haW5SZXNvdXJjZUxvYWRlci0+bWFya0luQXN5bmNSZXNwb25zZVBvbGlj
eUNoZWNrKCk7CiAgICAgYXV0byByZXF1ZXN0SWRlbnRpZmllciA9IFBvbGljeUNoZWNrSWRlbnRp
Zmllcjo6Y3JlYXRlKCk7Ci0gICAgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
ID0gbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0ICYmIG1fY3VycmVudENvb3BFbmZvcmNl
bWVudFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaDsKKyAgICBhdXRvIG5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggPSB0b05lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2gobV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0KTsKICAgICBmcmFtZUxvYWRl
cigpLT5jaGVja0NvbnRlbnRQb2xpY3kobV9yZXNwb25zZSwgcmVxdWVzdElkZW50aWZpZXIsIG5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIG1haW5SZXNvdXJjZUxvYWRlciA9IFdURk1vdmUobWFpblJlc291cmNlTG9h
ZGVyKSwKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxl
ci5yZWxlYXNlKCksIHJlcXVlc3RJZGVudGlmaWVyXSAoUG9saWN5QWN0aW9uIHBvbGljeSwgUG9s
aWN5Q2hlY2tJZGVudGlmaWVyIHJlc3BvbnNlSWRlbnRpZmllcikgbXV0YWJsZSB7CiAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKHJlc3BvbnNlSWRlbnRpZmllci5pc1ZhbGlkRm9yKHJlcXVlc3RJZGVu
dGlmaWVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDk2NGUy
ZGQxMjA3MC4uMjZjOTY2MzlhZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmNwcApAQCAtODE2LDcgKzgxNiw3IEBAIHZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hTaG93KCkKIHsKIH0KIAotdm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJv
b2wsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikKK3ZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmLCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9u
JiYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1l
TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNs
aWVudC5oCmluZGV4IDEyMGE0YTUyMGJkMS4uM2NiYjMxMGEyZTJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTk2LDcgKzk2LDcgQEAg
cHJpdmF0ZToKICAgICBGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25B
Y3Rpb24mLCBOZXdGcmFtZU9wZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNo
b3coKSBmaW5hbDsKIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CisgICAgdm9pZCBkaXNwYXRj
aERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIE5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmlu
YWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwg
Y29uc3QgU3RyaW5nJiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9u
JiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBQb2xpY3lE
ZWNpc2lvbk1vZGUsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYm
KSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA3YWE3NmFjNmQxZWIuLjZiMDIzNjFhMWI1NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC00MTMsNyArNDEzLDcgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKICAgICB9CiB9
CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wg
bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVu
Y3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggbmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlv
bikKIHsKICAgICBpZiAoIWFjdGl2ZURvY3VtZW50TG9hZGVyKCkpIHsKICAgICAgICAgLy8gTG9h
ZCB3YXMgY2FuY2VsbGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGU1NmMw
OGY3MDM2YS4uNzk4OThhNjRhNGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApA
QCAtMjIwLDcgKzIyMCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhi
b29sKTsKIAotICAgIHZvaWQgY2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJik7CisgICAgdm9pZCBjaGVj
a0NvbnRlbnRQb2xpY3koY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIFBvbGljeUNoZWNrSWRlbnRp
ZmllciwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lz
aW9uRnVuY3Rpb24mJik7CiAKICAgICB2b2lkIGRpZEV4cGxpY2l0T3BlbigpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDM5YmI0MDU0MDljNC4uMjY4
NDMxYTVkOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApA
QCAtMTkwLDcgKzE5MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEZyYW1lKiBkaXNwYXRjaENy
ZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIE5ld0ZyYW1lT3BlbmVyUG9saWN5KSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoU2hvdygpID0gMDsKIAotICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBkb3dubG9hZEF0dHJpYnV0ZSwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJh
bWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgUG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5h
dmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBQb2xpY3lEZWNpc2lvbk1vZGUs
IFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlclR5cGVzLmgKaW5kZXggYzUxNWJhZTRkMjE4Li5jZGQwMTA0MTA2NTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaApAQCAtMTY3LDYgKzE2Nywx
MiBAQCBlbnVtIGNsYXNzIFVubG9hZEV2ZW50UG9saWN5IHsKICAgICBVbmxvYWRBbmRQYWdlSGlk
ZQogfTsKIAorZW51bSBjbGFzcyBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIDogdWlu
dDhfdCB7CisgICAgTm8sCisgICAgWWVzV2l0aG91dENyb3NzT3JpZ2luSXNvbGF0aW9uLAorICAg
IFllc1dpdGhDcm9zc09yaWdpbklzb2xhdGlvbiwKK307CisKIC8vIFBhc3NlZCB0byBGcmFtZUxv
YWRlcjo6dXJsU2VsZWN0ZWQoKSBhbmQgU2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZUlmSmF2YVNj
cmlwdFVSTCgpCiAvLyB0byBjb250cm9sIHdoZXRoZXIsIGluIHRoZSBjYXNlIG9mIGEgSmF2YVNj
cmlwdCBVUkwsIGV4ZWN1dGVJZkphdmFTY3JpcHRVUkwoKSBzaG91bGQKIC8vIHJlcGxhY2UgdGhl
IGRvY3VtZW50LiBJdCBpcyBhIEZJWE1FIHRvIGVsaW1pbmF0ZSB0aGlzIGV4dHJhIHBhcmFtZXRl
ciBmcm9tCkBAIC0yNzYsNiArMjgyLDE1IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
V2ViQ29yZTo6UG9saWN5QWN0aW9uPiB7CiAgICAgPjsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaD4gewor
ICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6Ok5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsCisgICAgICAgIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdD
b250ZXh0R3JvdXBTd2l0Y2g6Ok5vLAorICAgICAgICBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5nQ29u
dGV4dEdyb3VwU3dpdGNoOjpZZXNXaXRob3V0Q3Jvc3NPcmlnaW5Jc29sYXRpb24sCisgICAgICAg
IFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6Olllc1dpdGhDcm9zc09y
aWdpbklzb2xhdGlvbgorICAgID47Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k+IHsKICAgICB1c2luZyB2YWx1
ZXMgPSBFbnVtVmFsdWVzPAogICAgICAgICBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDlhMzI1NWE2OWQyOS4uZjky
ZGRjYzgwMDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xOTIzLDkgKzE5MjMs
MTUgQEAgYm9vbCBET01XaW5kb3c6OmlzU2VjdXJlQ29udGV4dCgpIGNvbnN0CiAKIGJvb2wgRE9N
V2luZG93Ojpjcm9zc09yaWdpbklzb2xhdGVkKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogSW1w
bGVtZW50ZWQgdGhpcy4gVGhpcyBzaG91bGQgcmV0dXJuIHRydWUgaWYgQ09PUC9DT0VQIGFyZSB1
c2VkIGFuZCB0aGUgcGFnZSBpcyBhbGxvd2VkIHRvIHVzZSBBUElzCi0gICAgLy8gdGhhdCByZXF1
aXJlIGNyb3NzLW9yaWdpbiBpc29sYXRpb24gKGUuZy4gU2hhcmVkQXJyYXlCdWZmZXIpLgotICAg
IHJldHVybiBmYWxzZTsKKyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7Cisg
ICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byYgc2V0
dGluZ3MgPSBkb2N1bWVudC0+c2V0dGluZ3MoKTsKKyAgICBpZiAoIXNldHRpbmdzLmNyb3NzT3Jp
Z2luT3BlbmVyUG9saWN5RW5hYmxlZCgpIHx8ICFzZXR0aW5ncy5jcm9zc09yaWdpbkVtYmVkZGVy
UG9saWN5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gZG9j
dW1lbnQtPnRvcERvY3VtZW50KCkuY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3koKS52YWx1ZSA9PSBD
cm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpTYW1lT3JpZ2luUGx1c0NPRVA7CiB9CiAKIHN0
YXRpYyB2b2lkIGRpZEFkZFN0b3JhZ2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyYgd2luZG93KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDQwZjg3NDdiMWRhZi4uMWJjMTMwMWNmYTBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC03OSw4ICs3OSw2IEBACiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIE5hdmlnYXRvciBuYXZpZ2F0b3I7CiAgICAgLy8gRklYTUU6IFRoaXMg
aXMgc3BlY2lmaWVkIHRvIGJlIFtTZWN1cmVDb250ZXh0XQogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01BcHBsaWNhdGlvbkNhY2hlIGFwcGxpY2F0aW9uQ2FjaGU7Ci0gICAgLy8gRklYTUU6IElt
cGxlbWVudCAnb3JpZ2luSXNvbGF0ZWQnCi0gICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xl
YW4gb3JpZ2luSXNvbGF0ZWQ7CiAKICAgICAvLyB1c2VyIHByb21wdHMKICAgICB1bmRlZmluZWQg
YWxlcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGZi
MjM0N2Q1Zjg5Yy4uMmYxM2Y0YmY3YWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKQEAgLTcxOSw2ICs3MTksNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBl
KToKICAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMnOiBbJzxX
ZWJDb3JlL01lZGlhUGxheWVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNZXNzYWdlUG9ydENo
YW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHknOiBbJzxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5JzogWyc8
V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24nOiBbJzxX
ZWJDb3JlL05ldHdvcmtMb2FkSW5mb3JtYXRpb24uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBh
c3RlYm9hcmRDdXN0b21EYXRhJzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCiAgICAgICAg
ICdXZWJDb3JlOjpQYXN0ZWJvYXJkSW1hZ2UnOiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4nXSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29j
b2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBv
aW50LmgKaW5kZXggOTJlMTRlNGVkZjcxLi4wYTgxMjFhZTc1MDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENT
ZXJ2aWNlRW50cnlQb2ludC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRV
dGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCkBAIC05Miw2
ICs5MiwxMSBAQCB2b2lkIFhQQ1NlcnZpY2VJbml0aWFsaXplcihPU09iamVjdFB0cjx4cGNfY29u
bmVjdGlvbl90PiBjb25uZWN0aW9uLCB4cGNfb2JqZWN0XwogICAgICAgICAgICAgSlNDOjpDb25m
aWc6OmNvbmZpZ3VyZUZvclRlc3RpbmcoKTsKICAgICAgICAgaWYgKHhwY19kaWN0aW9uYXJ5X2dl
dF9ib29sKGluaXRpYWxpemVyTWVzc2FnZSwgImRpc2FibGUtaml0IikpCiAgICAgICAgICAgICBK
U0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6OnNldEpJVEVuYWJsZWQoZmFsc2UpOworICAgICAgICBp
ZiAoeHBjX2RpY3Rpb25hcnlfZ2V0X2Jvb2woaW5pdGlhbGl6ZXJNZXNzYWdlLCAiZW5hYmxlLXNo
YXJlZC1hcnJheS1idWZmZXIiKSkgeworICAgICAgICAgICAgSlNDOjpPcHRpb25zOjppbml0aWFs
aXplKCk7CisgICAgICAgICAgICBKU0M6Ok9wdGlvbnM6OkFsbG93VW5maW5hbGl6ZWRBY2Nlc3NT
Y29wZSBzY29wZTsKKyAgICAgICAgICAgIEpTQzo6T3B0aW9uczo6dXNlU2hhcmVkQXJyYXlCdWZm
ZXIoKSA9IHRydWU7CisgICAgICAgIH0KICAgICB9CiAKICAgICBYUENTZXJ2aWNlSW5pdGlhbGl6
ZXJEZWxlZ2F0ZVR5cGUgZGVsZWdhdGUoV1RGTW92ZShjb25uZWN0aW9uKSwgaW5pdGlhbGl6ZXJN
ZXNzYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1By
b2Nlc3NMYXVuY2hlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vz
c0xhdW5jaGVyLmgKaW5kZXggMTA4MWJhMmE1YmZjLi5kMzBmNmQ0OWIwOTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCkBAIC02
MSw2ICs2MSw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExhdW5j
aGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpID0gMDsK
ICAgICAgICAgdmlydHVhbCBib29sIHNob3VsZENvbmZpZ3VyZUpTQ0ZvclRlc3RpbmcoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNKSVRFbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRW5hYmxl
U2hhcmVkQXJyYXlCdWZmZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgICAgICB2aXJ0dWFsIFJlZlB0cjxYUENFdmVudEhhbmRsZXI+IHhwY0V2ZW50
SGFuZGxlcigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJN
YWMubW0KaW5kZXggZjc3NzNmZTZkZDAyLi5kYWMzMWMzZDlmNjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1h
Yy5tbQpAQCAtMjA1LDYgKzIwNSw4IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9j
ZXNzKCkKICAgICAgICAgICAgIHhwY19kaWN0aW9uYXJ5X3NldF9ib29sKGJvb3RzdHJhcE1lc3Nh
Z2UuZ2V0KCksICJjb25maWd1cmUtanNjLWZvci10ZXN0aW5nIiwgdHJ1ZSk7CiAgICAgICAgIGlm
ICghbV9jbGllbnQtPmlzSklURW5hYmxlZCgpKQogICAgICAgICAgICAgeHBjX2RpY3Rpb25hcnlf
c2V0X2Jvb2woYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImRpc2FibGUtaml0IiwgdHJ1ZSk7Cisg
ICAgICAgIGlmIChtX2NsaWVudC0+c2hvdWxkRW5hYmxlU2hhcmVkQXJyYXlCdWZmZXIoKSkKKyAg
ICAgICAgICAgIHhwY19kaWN0aW9uYXJ5X3NldF9ib29sKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCks
ICJlbmFibGUtc2hhcmVkLWFycmF5LWJ1ZmZlciIsIHRydWUpOwogICAgIH0KIAogICAgIHhwY19k
aWN0aW9uYXJ5X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgIm1lc3NhZ2UtbmFt
ZSIsICJib290c3RyYXAiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1By
b3Zpc2lvbmFsUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lv
bmFsUGFnZVByb3h5LmNwcAppbmRleCA0MWNkMzVkYmZhOGQuLjk5ZTUxNjUwZDMxNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApAQCAt
MzMwLDcgKzMzMCw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25Bc3luYyhGcmFtZUlkZW50aWZpZXIKICAgICBtX3BhZ2UuZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCks
IG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZpZXIsIG5h
dmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIFdURk1vdmUob3JpZ2lu
YXRpbmdGcmFtZUluZm8pLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZN
b3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3Bv
bnNlKSwgdXNlckRhdGEsIGxpc3RlbmVySUQpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJh
bWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUs
IGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25z
dCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVu
ZGxlLCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIG5lZWRzQnJvd3NpbmdDb250ZXh0
R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlz
aW9uYWxQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFn
ZVByb3h5LmgKaW5kZXggMjcxNGIyYTViNTQ3Li5kNDkwNzBlNzNlZmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtMTI0LDcgKzEyNCw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzZW5kTWVzc2FnZShVbmlxdWVSZWY8SVBDOjpFbmNvZGVy
PiYmLCBPcHRpb25TZXQ8SVBDOjpTZW5kT3B0aW9uPiwgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkRlY29kZXIqKT4sIHVpbnQ2NF90Pj4mJikgZmlu
YWw7CiAKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRh
JiYsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxX
ZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90
IGxpc3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlN
RVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5
SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWlu
dDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmli
dXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBXZWJDb3JlOjpOZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0
YSYpOwogICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwogICAgIHZvaWQg
ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNzU4ZDFiMzk4ZWM3Li42ZjNlNTJm
ZDlmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTYx
NywxMiArNTYxNywxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2lu
ZG93QWN0aW9uKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZQogCiB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZy
YW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVy
LAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5
cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsCi0gICAgYm9vbCB3YXNBbGxvd2Vk
QnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1
aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCisgICAgYm9vbCB3
YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VT
aGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUo
ZnJhbWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwg
Y2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRC
dW5kbGUsIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIGxpc3RlbmVySUQsIHVzZXJE
YXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFn
ZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywg
UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRy
aWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2lu
Z0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFn
ZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywg
UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRy
aWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIE5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2ggbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQ
cm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTU2NDYsMTYgKzU2NDYsMTgg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywKICAgICAgICAgfSk7CiAKICAgICAgICAgYXV0byB3
aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzID0gV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vz
czo6Tm87Ci0gICAgICAgIGlmIChwb2xpY3lBY3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYg
bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCAmJiBuYXZpZ2F0aW9uKSB7Ci0gICAgICAg
ICAgICBSZWdpc3RyYWJsZURvbWFpbiByZXNwb25zZURvbWFpbiB7IG5hdmlnYXRpb25SZXNwb25z
ZS0+cmVzcG9uc2UoKS51cmwoKSB9OwotICAgICAgICAgICAgLy8gQXZvaWQgcHJvY2Vzcy1zd2Fw
cGluZyBpbiBjYXNlcyB3aGVyZSB0aGUgcHJvY2VzcyBvbmx5IGNvbnRhaW5zIGEgc2luZ2xlIHBh
Z2UgYW5kIGlzIG9yaWdpbi1jbGVhbi4KLSAgICAgICAgICAgIGlmICh0aGlzLT5wcm9jZXNzKCku
cGFnZUNvdW50KCkgPiAxIHx8ICh0aGlzLT5wcm9jZXNzKCkub3B0aW9uYWxSZWdpc3RyYWJsZURv
bWFpbigpICYmICp0aGlzLT5wcm9jZXNzKCkub3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbigpICE9
IHJlc3BvbnNlRG9tYWluKSkgewotICAgICAgICAgICAgICAgIFdFQlBBR0VQUk9YWV9SRUxFQVNF
X0xPRyhQcm9jZXNzU3dhcHBpbmcsICJkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZDogUHJv
Y2Vzcy1zd2FwcGluZyBkdWUgdG8gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiKTsKLSAgICAg
ICAgICAgICAgICBwb2xpY3lBY3Rpb24gPSBQb2xpY3lBY3Rpb246Oklnbm9yZTsKLSAgICAgICAg
ICAgICAgICBhdXRvIHByb2Nlc3NGb3JOYXZpZ2F0aW9uID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9v
bCgpLnByb2Nlc3NGb3JSZWdpc3RyYWJsZURvbWFpbih3ZWJzaXRlRGF0YVN0b3JlKCksIHRoaXMs
IHJlc3BvbnNlRG9tYWluKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5l
d1Byb2Nlc3MoKm5hdmlnYXRpb24sIG51bGxwdHIsIFdURk1vdmUocHJvY2Vzc0Zvck5hdmlnYXRp
b24pLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OjpObywgU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkOjpZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24sIG51bGxwdHIpOwotICAg
ICAgICAgICAgICAgIHdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3MgPSBXaWxsQ29udGludWVM
b2FkSW5OZXdQcm9jZXNzOjpZZXM7CisgICAgICAgIGlmIChwb2xpY3lBY3Rpb24gPT0gUG9saWN5
QWN0aW9uOjpVc2UgJiYgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCAhPSBOZWVkc0Jy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoOjpObyAmJiBuYXZpZ2F0aW9uKSB7CisgICAgICAgICAg
ICBXRUJQQUdFUFJPWFlfUkVMRUFTRV9MT0coUHJvY2Vzc1N3YXBwaW5nLCAiZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2VTaGFyZWQ6IFByb2Nlc3Mtc3dhcHBpbmcgZHVlIHRvIENyb3NzLU9yaWdpbi1P
cGVuZXItUG9saWN5Iik7CisgICAgICAgICAgICBwb2xpY3lBY3Rpb24gPSBQb2xpY3lBY3Rpb246
Oklnbm9yZTsKKyAgICAgICAgICAgIFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHByb2Nlc3NGb3JO
YXZpZ2F0aW9uOworICAgICAgICAgICAgaWYgKG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0
Y2ggPT0gTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaDo6WWVzV2l0aENyb3NzT3JpZ2lu
SXNvbGF0aW9uKQorICAgICAgICAgICAgICAgIHByb2Nlc3NGb3JOYXZpZ2F0aW9uID0gbV9wcm9j
ZXNzLT5wcm9jZXNzUG9vbCgpLmNyZWF0ZU5ld1dlYlByb2Nlc3MoJndlYnNpdGVEYXRhU3RvcmUo
KSwgV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1lZDo6Tm8sIFdlYlByb2Nlc3NQcm94eTo6SXND
cm9zc09yaWdpbklzb2xhdGVkOjpZZXMpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAg
ICAgICAgUmVnaXN0cmFibGVEb21haW4gcmVzcG9uc2VEb21haW4geyBuYXZpZ2F0aW9uUmVzcG9u
c2UtPnJlc3BvbnNlKCkudXJsKCkgfTsKKyAgICAgICAgICAgICAgICBwcm9jZXNzRm9yTmF2aWdh
dGlvbiA9IG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5wcm9jZXNzRm9yUmVnaXN0cmFibGVEb21h
aW4od2Vic2l0ZURhdGFTdG9yZSgpLCB0aGlzLCByZXNwb25zZURvbWFpbik7CiAgICAgICAgICAg
ICB9CisgICAgICAgICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoKm5hdmlnYXRp
b24sIG51bGxwdHIsIHByb2Nlc3NGb3JOYXZpZ2F0aW9uLnJlbGVhc2VOb25OdWxsKCksIFByb2Nl
c3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5vLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6
Olllc0FmdGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lvbiwgbnVsbHB0cik7CisgICAgICAgICAgICB3
aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzID0gV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vz
czo6WWVzOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICByZWNlaXZlZFBvbGljeURlY2lz
aW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShuYXZp
Z2F0aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKHNlbmRlciksIHsgfSwgd2lsbENvbnRpbnVlTG9hZElu
TmV3UHJvY2Vzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGVh
MWMyMmZiNmIxMS4uMDBhOTU3NDM1YWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaApAQCAtMTc0MSw3ICsxNzQxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkTmF2aWdh
dGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3Qg
V2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAg
dm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBVUkwmJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRh
dGEmJiwgRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvLCBzdGQ6Om9wdGlvbmFs
PFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0
X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlN
RVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5
SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWlu
dDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0
ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgV2ViQ29yZTo6TmVlZHNCcm93c2lu
Z0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEm
KTsKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7
CiAgICAgdm9pZCBsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcm
IGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwg
V2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluPiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRh
PiYmLCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBXZWJDb3JlOjpTdWJz
dGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KTsKICAgICB2b2lkIGxvYWRSZXF1
ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIEFQSTo6TmF2aWdhdGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCog
dXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRp
b25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBv
bGljaWVzRGF0YT4mJiA9IHN0ZDo6bnVsbG9wdCk7CkBAIC0yMDYwLDcgKzIwNjAsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwg
Y29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKLSAgICAgICAgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJv
b2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29s
IHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgICAg
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0
dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgV2ViQ29yZTo6TmVlZHNC
cm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNl
ckRhdGEmKTsKICAgICB2b2lkIHVuYWJsZVRvSW1wbGVtZW50UG9saWN5KFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVzZXJEYXRh
Jik7CiAgICAgdm9pZCBiZWdpblNhZmVCcm93c2luZ0NoZWNrKGNvbnN0IFVSTCYsIGJvb2wsIFdl
YkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYmMzN2I4ZmM2YWRmLi40OWQzZDNh
MjU3ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4KQEAgLTEwNyw3ICsxMDcsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewog
I2VuZGlmCiAKICAgICAjIFBvbGljeSBtZXNzYWdlcwotICAgIERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFt
ZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGlj
eUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgYm9v
bCBjYW5TaG93TUlNRVR5cGUsIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxv
d2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBz
dHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFN0cmluZyBkb3dubG9hZEF0dHJp
YnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgZW51bTp1aW50OF90IFdlYkNv
cmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggbmVlZHNCcm93c2luZ0NvbnRleHRH
cm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0
YSkKICAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJ
bmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25E
YXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9y
aWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94
eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
b3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpG
b3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBy
ZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0
ZW5lcklEKQogICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBzdHJ1Y3QgV2ViS2l0
OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
IHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2Vi
S2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdl
YktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHN0ZDo6b3B0aW9u
YWw8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1
c2VyRGF0YSkgLT4gKHN0cnVjdCBXZWJLaXQ6OlBvbGljeURlY2lzaW9uIFBvbGljeURlY2lzaW9u
KSBTeW5jaHJvbm91cwogICAgIERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBm
cmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50
aWZpZXIsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rp
b25EYXRhLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIGZyYW1lTmFt
ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAxZjgzZDQwMzI0OWMu
LmRlM2NhMThhMDM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcApAQCAtNTk2LDcgKzU5Niw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlc29sdmVQYXRo
c0ZvclNhbmRib3hFeHRlbnNpb25zKCkKICAgICBwbGF0Zm9ybVJlc29sdmVQYXRoc0ZvclNhbmRi
b3hFeHRlbnNpb25zKCk7CiB9CiAKLVJlZjxXZWJQcm9jZXNzUHJveHk+IFdlYlByb2Nlc3NQb29s
OjpjcmVhdGVOZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqIHdlYnNpdGVEYXRhU3RvcmUs
IFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQgaXNQcmV3YXJtZWQpCitSZWY8V2ViUHJvY2Vz
c1Byb3h5PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0
b3JlKiB3ZWJzaXRlRGF0YVN0b3JlLCBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkIGlzUHJl
d2FybWVkLCBXZWJQcm9jZXNzUHJveHk6OklzQ3Jvc3NPcmlnaW5Jc29sYXRlZCBpc0Nyb3NzT3Jp
Z2luSXNvbGF0ZWQpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgbV90Y2NQcmVmZXJlbmNl
RW5hYmxlZCA9IGRvZXNBcHBIYXZlSVRQRW5hYmxlZCgpOwpAQCAtNjA0LDcgKzYwNCw3IEBAIFJl
ZjxXZWJQcm9jZXNzUHJveHk+IFdlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKFdl
YnNpdGVEYXRhU3RvcmUqIHdlYnNpCiAgICAgICAgIHdlYnNpdGVEYXRhU3RvcmUtPnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKG1fdGNjUHJlZmVyZW5jZUVuYWJsZWQpOwogI2VuZGlm
CiAKLSAgICBhdXRvIHByb2Nlc3NQcm94eSA9IFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlKCp0aGlz
LCB3ZWJzaXRlRGF0YVN0b3JlLCBpc1ByZXdhcm1lZCk7CisgICAgYXV0byBwcm9jZXNzUHJveHkg
PSBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZSgqdGhpcywgd2Vic2l0ZURhdGFTdG9yZSwgaXNQcmV3
YXJtZWQsIGlzQ3Jvc3NPcmlnaW5Jc29sYXRlZCk7CiAgICAgaW5pdGlhbGl6ZU5ld1dlYlByb2Nl
c3MocHJvY2Vzc1Byb3h5LCB3ZWJzaXRlRGF0YVN0b3JlLCBpc1ByZXdhcm1lZCk7CiAgICAgbV9w
cm9jZXNzZXMuYXBwZW5kKHByb2Nlc3NQcm94eS5jb3B5UmVmKCkpOwogCkBAIC0xMDUxLDcgKzEw
NTEsNyBAQCBSZWY8V2ViUGFnZVByb3h5PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZShQ
YWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBSZWY8QVBJOgogICAgICAgICAvLyBJbiB0aGUgY29tbW9u
IGNhc2UsIHdlIGRlbGF5IHByb2Nlc3MgbGF1bmNoIHVudGlsIHNvbWV0aGluZyBpcyBhY3R1YWxs
eSBsb2FkZWQgaW4gdGhlIHBhZ2UuCiAgICAgICAgIHByb2Nlc3MgPSBkdW1teVByb2Nlc3NQcm94
eShwYWdlQ29uZmlndXJhdGlvbi0+d2Vic2l0ZURhdGFTdG9yZSgpLT5zZXNzaW9uSUQoKSk7CiAg
ICAgICAgIGlmICghcHJvY2VzcykgewotICAgICAgICAgICAgcHJvY2VzcyA9IFdlYlByb2Nlc3NQ
cm94eTo6Y3JlYXRlKCp0aGlzLCBwYWdlQ29uZmlndXJhdGlvbi0+d2Vic2l0ZURhdGFTdG9yZSgp
LCBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkOjpObywgV2ViUHJvY2Vzc1Byb3h5OjpTaG91
bGRMYXVuY2hQcm9jZXNzOjpObyk7CisgICAgICAgICAgICBwcm9jZXNzID0gV2ViUHJvY2Vzc1By
b3h5OjpjcmVhdGUoKnRoaXMsIHBhZ2VDb25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCks
IFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQ6Ok5vLCBXZWJQcm9jZXNzUHJveHk6OklzQ3Jv
c3NPcmlnaW5Jc29sYXRlZDo6Tm8sIFdlYlByb2Nlc3NQcm94eTo6U2hvdWxkTGF1bmNoUHJvY2Vz
czo6Tm8pOwogICAgICAgICAgICAgbV9kdW1teVByb2Nlc3NQcm94aWVzLmFkZChwYWdlQ29uZmln
dXJhdGlvbi0+d2Vic2l0ZURhdGFTdG9yZSgpLT5zZXNzaW9uSUQoKSwgbWFrZVdlYWtQdHIoKnBy
b2Nlc3MpKTsKICAgICAgICAgICAgIG1fcHJvY2Vzc2VzLmFwcGVuZCgqcHJvY2Vzcyk7CiAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDA1MzU5
YTdkZDQxMS4uNjNmYWZmOWFkOTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmgKQEAgLTUxNCw2ICs1MTQsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyBj
b250YWluZXJUZW1wb3JhcnlEaXJlY3RvcnkoKTsKICNlbmRpZgogCisgICAgUmVmPFdlYlByb2Nl
c3NQcm94eT4gY3JlYXRlTmV3V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiwgV2ViUHJvY2Vz
c1Byb3h5OjpJc1ByZXdhcm1lZCA9IFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQ6Ok5vLCBX
ZWJQcm9jZXNzUHJveHk6OklzQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IFdlYlByb2Nlc3NQcm94eTo6
SXNDcm9zc09yaWdpbklzb2xhdGVkOjpObyk7CisKIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9y
bUluaXRpYWxpemUoKTsKIApAQCAtNTI0LDcgKzUyNiw2IEBAIHByaXZhdGU6CiAKICAgICBSZWZQ
dHI8V2ViUHJvY2Vzc1Byb3h5PiB0cnlUYWtlUHJld2FybWVkUHJvY2VzcyhXZWJzaXRlRGF0YVN0
b3JlJik7CiAKLSAgICBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBjcmVhdGVOZXdXZWJQcm9jZXNzKFdl
YnNpdGVEYXRhU3RvcmUqLCBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkID0gV2ViUHJvY2Vz
c1Byb3h5OjpJc1ByZXdhcm1lZDo6Tm8pOwogICAgIHZvaWQgaW5pdGlhbGl6ZU5ld1dlYlByb2Nl
c3MoV2ViUHJvY2Vzc1Byb3h5JiwgV2Vic2l0ZURhdGFTdG9yZSosIFdlYlByb2Nlc3NQcm94eTo6
SXNQcmV3YXJtZWQgPSBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkOjpObyk7CiAKICAgICB2
b2lkIGhhbmRsZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
TmFtZSwgY29uc3QgVXNlckRhdGEmIG1lc3NhZ2VCb2R5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQ4ZTZjNzNhYTZlOS4uOTBiZDQ3MTgyYzA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE0
Nyw5ICsxNDcsOSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Zm9yV2ViUGFnZXNXaXRoT3JpZ2lu
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU2VjdQogICAgIH0KIH0KIAotUmVmPFdl
YlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wmIHBy
b2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3JlLCBJc1ByZXdhcm1l
ZCBpc1ByZXdhcm1lZCwgU2hvdWxkTGF1bmNoUHJvY2VzcyBzaG91bGRMYXVuY2hQcm9jZXNzKQor
UmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoV2ViUHJvY2Vzc1Bv
b2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3JlLCBJc1By
ZXdhcm1lZCBpc1ByZXdhcm1lZCwgSXNDcm9zc09yaWdpbklzb2xhdGVkIGlzQ3Jvc3NPcmlnaW5J
c29sYXRlZCwgU2hvdWxkTGF1bmNoUHJvY2VzcyBzaG91bGRMYXVuY2hQcm9jZXNzKQogewotICAg
IGF1dG8gcHJveHkgPSBhZG9wdFJlZigqbmV3IFdlYlByb2Nlc3NQcm94eShwcm9jZXNzUG9vbCwg
d2Vic2l0ZURhdGFTdG9yZSwgaXNQcmV3YXJtZWQpKTsKKyAgICBhdXRvIHByb3h5ID0gYWRvcHRS
ZWYoKm5ldyBXZWJQcm9jZXNzUHJveHkocHJvY2Vzc1Bvb2wsIHdlYnNpdGVEYXRhU3RvcmUsIGlz
UHJld2FybWVkLCBpc0Nyb3NzT3JpZ2luSXNvbGF0ZWQpKTsKICAgICBpZiAoc2hvdWxkTGF1bmNo
UHJvY2VzcyA9PSBTaG91bGRMYXVuY2hQcm9jZXNzOjpZZXMpCiAgICAgICAgIHByb3h5LT5jb25u
ZWN0KCk7CiAgICAgcmV0dXJuIHByb3h5OwpAQCAtMTU4LDcgKzE1OCw3IEBAIFJlZjxXZWJQcm9j
ZXNzUHJveHk+IFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlKFdlYlByb2Nlc3NQb29sJiBwcm9jZXNz
UG9vbCwgV2Vic2l0CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogUmVmPFdlYlByb2Nlc3NQ
cm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVGb3JTZXJ2aWNlV29ya2VycyhXZWJQcm9jZXNz
UG9vbCYgcHJvY2Vzc1Bvb2wsIFJlZ2lzdHJhYmxlRG9tYWluJiYgcmVnaXN0cmFibGVEb21haW4s
IFdlYnNpdGVEYXRhU3RvcmUmIHdlYnNpdGVEYXRhU3RvcmUpCiB7Ci0gICAgYXV0byBwcm94eSA9
IGFkb3B0UmVmKCpuZXcgV2ViUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLCAmd2Vic2l0ZURhdGFT
dG9yZSwgSXNQcmV3YXJtZWQ6Ok5vKSk7CisgICAgYXV0byBwcm94eSA9IGFkb3B0UmVmKCpuZXcg
V2ViUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLCAmd2Vic2l0ZURhdGFTdG9yZSwgSXNQcmV3YXJt
ZWQ6Ok5vLCBJc0Nyb3NzT3JpZ2luSXNvbGF0ZWQ6Ok5vKSk7CiAgICAgcHJveHktPm1fcmVnaXN0
cmFibGVEb21haW4gPSBXVEZNb3ZlKHJlZ2lzdHJhYmxlRG9tYWluKTsKICAgICBwcm94eS0+ZW5h
YmxlU2VydmljZVdvcmtlcnMocHJvY2Vzc1Bvb2wudXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRp
ZmllckZvclNlcnZpY2VXb3JrZXJzKCkpOwogICAgIHByb3h5LT5jb25uZWN0KCk7CkBAIC0xOTQs
NyArMTk0LDcgQEAgcHJpdmF0ZToKIH07CiAjZW5kaWYKIAotV2ViUHJvY2Vzc1Byb3h5OjpXZWJQ
cm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3Jl
KiB3ZWJzaXRlRGF0YVN0b3JlLCBJc1ByZXdhcm1lZCBpc1ByZXdhcm1lZCkKK1dlYlByb2Nlc3NQ
cm94eTo6V2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0
ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdG9yZSwgSXNQcmV3YXJtZWQgaXNQcmV3YXJtZWQsIElz
Q3Jvc3NPcmlnaW5Jc29sYXRlZCBpc0Nyb3NzT3JpZ2luSXNvbGF0ZWQpCiAgICAgOiBBdXhpbGlh
cnlQcm9jZXNzUHJveHkocHJvY2Vzc1Bvb2wuYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5
KCkpCiAgICAgLCBtX2JhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyKCp0aGlzKQogICAgICwg
bV9wcm9jZXNzUG9vbChwcm9jZXNzUG9vbCwgaXNQcmV3YXJtZWQgPT0gSXNQcmV3YXJtZWQ6Olll
cyA/IElzV2Vhazo6WWVzIDogSXNXZWFrOjpObykKQEAgLTIxMSw2ICsyMTEsNyBAQCBXZWJQcm9j
ZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdl
YnNpdGVEYXRhU3RvcmUqCiAgICAgLCBtX3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkobWFr
ZVVuaXF1ZTxVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5PihtYWtlVW5pcXVlUmVmPFVJUHJv
eHlGb3JDYXB0dXJlPigqdGhpcykpKQogI2VuZGlmCiAgICAgLCBtX2lzUHJld2FybWVkKGlzUHJl
d2FybWVkID09IElzUHJld2FybWVkOjpZZXMpCisgICAgLCBtX2lzQ3Jvc3NPcmlnaW5Jc29sYXRl
ZChpc0Nyb3NzT3JpZ2luSXNvbGF0ZWQgPT0gSXNDcm9zc09yaWdpbklzb2xhdGVkOjpZZXMpCiAg
ICAgLCBtX3NodXRkb3duUHJldmVudGluZ1Njb3BlQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2
ZW50IGV2ZW50KSB7IGlmIChldmVudCA9PSBSZWZDb3VudGVyRXZlbnQ6OkRlY3JlbWVudCkgbWF5
YmVTaHV0RG93bigpOyB9KQogewogICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZE9yQ2hl
Y2tEaXNhYmxlZCgpKTsKQEAgLTExNDYsNiArMTE0NywxMSBAQCBib29sIFdlYlByb2Nlc3NQcm94
eTo6Y2FuQmVBZGRlZFRvV2ViUHJvY2Vzc0NhY2hlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KIAorICAgIGlmIChtX2lzQ3Jvc3NPcmlnaW5Jc29sYXRlZCkgeworICAgICAg
ICBXRUJQUk9DRVNTUFJPWFlfUkVMRUFTRV9MT0coUHJvY2VzcywgImNhbkJlQWRkZWRUb1dlYlBy
b2Nlc3NDYWNoZTogTm90IGFkZGluZyB0byBwcm9jZXNzIGNhY2hlIGJlY2F1c2UgdGhlIHByb2Nl
c3MgaXMgY3Jvc3Mtb3JpZ2luIGlzb2xhdGVkIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisKICAgICBpZiAoV2ViS2l0Ojppc0luc3BlY3RvclByb2Nlc3NQb29sKHByb2Nlc3NQb29s
KCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmgKaW5kZXggYTQwZTY5ZGZhNTIyLi42NmQ1NGU0OGRlY2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xMzMsOSArMTMzLDEwIEBA
IHB1YmxpYzoKICAgICAgICAgWWVzCiAgICAgfTsKIAorICAgIGVudW0gY2xhc3MgSXNDcm9zc09y
aWdpbklzb2xhdGVkIDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICBlbnVtIGNsYXNzIFNob3VsZExh
dW5jaFByb2Nlc3MgOiBib29sIHsgTm8sIFllcyB9OwogCi0gICAgc3RhdGljIFJlZjxXZWJQcm9j
ZXNzUHJveHk+IGNyZWF0ZShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3RvcmUqLCBJc1By
ZXdhcm1lZCwgU2hvdWxkTGF1bmNoUHJvY2VzcyA9IFNob3VsZExhdW5jaFByb2Nlc3M6Olllcyk7
CisgICAgc3RhdGljIFJlZjxXZWJQcm9jZXNzUHJveHk+IGNyZWF0ZShXZWJQcm9jZXNzUG9vbCYs
IFdlYnNpdGVEYXRhU3RvcmUqLCBJc1ByZXdhcm1lZCwgSXNDcm9zc09yaWdpbklzb2xhdGVkID0g
SXNDcm9zc09yaWdpbklzb2xhdGVkOjpObywgU2hvdWxkTGF1bmNoUHJvY2VzcyA9IFNob3VsZExh
dW5jaFByb2Nlc3M6Olllcyk7CiAgICAgc3RhdGljIFJlZjxXZWJQcm9jZXNzUHJveHk+IGNyZWF0
ZUZvclNlcnZpY2VXb3JrZXJzKFdlYlByb2Nlc3NQb29sJiwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4mJiwgV2Vic2l0ZURhdGFTdG9yZSYpOwogCiAgICAgfldlYlByb2Nlc3NQcm94eSgpOwpA
QCAtNDE5LDggKzQyMCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDYXB0aW9uTGFuZ3VhZ2Uo
Y29uc3QgU3RyaW5nJik7CiAjZW5kaWYKIAorICAgIGJvb2wgaXNDcm9zc09yaWdpbklzb2xhdGVk
KCkgY29uc3QgeyByZXR1cm4gbV9pc0Nyb3NzT3JpZ2luSXNvbGF0ZWQ7IH0KKwogcHJvdGVjdGVk
OgotICAgIFdlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3RvcmUq
LCBJc1ByZXdhcm1lZCk7CisgICAgV2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vi
c2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVkLCBJc0Nyb3NzT3JpZ2luSXNvbGF0ZWQpOwogCiAg
ICAgLy8gQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5CiAgICAgQVNDSUlMaXRlcmFsIHByb2Nlc3NOYW1l
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gIldlYkNvbnRlbnQiX3M7IH0KQEAgLTQ0MCw2ICs0NDMs
NyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBib29sIHNob3VsZENvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmco
KSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzSklURW5hYmxlZCgpIGNvbnN0IGZpbmFsOworICAg
IGJvb2wgc2hvdWxkRW5hYmxlU2hhcmVkQXJyYXlCdWZmZXIoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2lzQ3Jvc3NPcmlnaW5Jc29sYXRlZDsgfQogCiAgICAgdm9pZCB2YWxpZGF0ZUZyZWV6ZXJT
dGF0dXMoKTsKIApAQCAtNjIwLDYgKzYyNCw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1faGFz
Q29tbWl0dGVkQW55UHJvdmlzaW9uYWxMb2FkcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzUHJl
d2FybWVkOworICAgIGJvb2wgbV9pc0Nyb3NzT3JpZ2luSXNvbGF0ZWQgeyBmYWxzZSB9OwogI2lm
IEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgYm9vbCBtX2hhc0lzc3VlZEF0dGFjaG1l
bnRFbGVtZW50UmVsYXRlZFNhbmRib3hFeHRlbnNpb25zIHsgZmFsc2UgfTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNzIzMTVhNTc1ODczLi4xNmE1ZjY0NjA4
YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtODE2LDcgKzgxNiw3IEBA
IHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygpCiAgICAgd2ViUGFnZS0+
c2hvdygpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBv
bGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIG5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikK
K3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBT
d2l0Y2ggbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlv
biYmIGZ1bmN0aW9uKQogewogICAgIGF1dG8qIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CiAg
ICAgaWYgKCF3ZWJQYWdlKSB7CkBAIC04MzcsNyArODM3LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJl
c3BvbnMKICAgICBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb24gcG9saWN5ID0gd2ViUGFnZS0+aW5q
ZWN0ZWRCdW5kbGVQb2xpY3lDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh3ZWJQYWdl
LCBtX2ZyYW1lLnB0cigpLCByZXNwb25zZSwgcmVxdWVzdCwgdXNlckRhdGEpOwogICAgIC8vIElm
IGEgYnJvd3NpbmcgY29udGV4dCBzd2l0Y2ggaXMgcmVxdWVzdGVkLCB3ZSBzdGlsbCBuZWVkIHRv
IHNlbmQgdGhlIElQQyB0byB0aGUgVUlQcm9jZXNzIGluIG9yZGVyIHRvIHByb2Nlc3Mtc3dhcCBp
ZiBuZWNlc3NhcnksIGV2ZW4gdGhvdWdoIHRoZQogICAgIC8vIGluamVjdGVkIGJ1bmRsZSBoYXMg
YWxyZWFkeSBoYW5kbGVkIHRoZSBwb2xpY3kgZGVjaXNpb24uCi0gICAgaWYgKHBvbGljeSA9PSBX
S0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb25Vc2UgJiYgIW5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBT
d2l0Y2gpIHsKKyAgICBpZiAocG9saWN5ID09IFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvblVzZSAm
JiBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoID09IE5lZWRzQnJvd3NpbmdDb250ZXh0
R3JvdXBTd2l0Y2g6Ok5vKSB7CiAgICAgICAgIFdFQkZSQU1FTE9BREVSQ0xJRU5UX1JFTEVBU0Vf
TE9HKE5ldHdvcmssICJkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlOiBjb250aW51aW5n
IGJlY2F1c2UgaW5qZWN0ZWQgYnVuZGxlIHNheXMgc28iKTsKICAgICAgICAgZnVuY3Rpb24oUG9s
aWN5QWN0aW9uOjpVc2UsIGlkZW50aWZpZXIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCmluZGV4IDk2NjZkNjdmODYyMC4uNTFkNmMxMjM4ZjI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTI5LDcgKzEyOSw3IEBAIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6RnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBXZWJDb3JlOjpOYXZpZ2F0
aW9uQWN0aW9uJiwgV2ViQ29yZTo6TmV3RnJhbWVPcGVuZXJQb2xpY3kpIGZpbmFsOwogICAgIHZv
aWQgZGlzcGF0Y2hTaG93KCkgZmluYWw7CiAgICAgCi0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBv
bGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV2Vi
Q29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmln
YXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpG
b3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZv
aWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6
Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpG
b3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAg
ICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aAppbmRleCAwNTE2MjcwMDlhNjYuLjRjNDdkNDI2ZWFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCkBAIC0xMjcsNyArMTI3LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSog
ZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBXZWJD
b3JlOjpOZXdGcmFtZU9wZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3co
KSBmaW5hbDsKIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29s
IG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVu
Y3Rpb24mJikgZmluYWw7CisgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNl
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYs
IFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1l
UG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZv
ck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgY29uc3QgV1RG
OjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rp
b24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJD
b3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwg
V2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbFBv
bGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDBjZmJl
ZWUwNDQ3ZC4uYWFkZjRlNzAwNGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAt
ODU1LDcgKzg1NSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygp
CiAgICAgW1t3ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3U2hvdzp3ZWJWaWV3
XTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rp
b24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJl
c3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rp
b24pCiB7CiAgICAgV2ViVmlldyAqd2ViVmlldyA9IGdldFdlYlZpZXcobV93ZWJGcmFtZS5nZXQo
KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBjNWFmYTEzMzdkYjQuLmFm
MWMwMjlhYWU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNTE5LDcgKzUx
OSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygpCiAgICAgICAg
IHVpLT53ZWJWaWV3U2hvdyh3ZWJWaWV3KTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24p
Cit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmLCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGlj
eUZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAgV2ViVmlldyogd2ViVmlldyA9IG1fd2ViRnJh
bWUtPndlYlZpZXcoKTsKICAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShtX3dlYkZyYW1lKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDYxNDY1YzExZmMyNS4uNTQ1NGZiYmRiMzU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNw
YXRjaERpZFJlYWNoTGF5b3V0TWlsZXN0b25lKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxl
c3RvbmU+KSBvdmVycmlkZTsKIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNw
b25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1l
UG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYsIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdl
YkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRj
aERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9u
QWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0
YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogICAg
IHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNv
cmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3Jl
OjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlk
ZTsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0
aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dh
cE9uTmF2aWdhdGlvbi5tbQppbmRleCA0MGEwODIyMTcwNzMuLjA2NjljODg0NzU5ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9u
TmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC0yNTEsMTMgKzI1MSwxNCBAQCBAaW50ZXJm
YWNlIFBTT05TY2hlbWUgOiBOU09iamVjdCA8V0tVUkxTY2hlbWVIYW5kbGVyPiB7CiAgICAgSGFz
aE1hcDxTdHJpbmcsIFN0cmluZz4gX3JlZGlyZWN0czsKICAgICBIYXNoTWFwPFN0cmluZywgUmV0
YWluUHRyPE5TRGF0YT4+IF9kYXRhTWFwcGluZ3M7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmlu
Zz4gX2Nvb3BWYWx1ZXM7CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gX2NvZXBWYWx1ZXM7
CiAgICAgSGFzaFNldDxpZCA8V0tVUkxTY2hlbWVUYXNrPj4gX3J1bm5pbmdUYXNrczsKICAgICBi
b29sIF9zaG91bGRSZXNwb25kQXN5bmNocm9ub3VzbHk7CiB9CiAtIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhCeXRlczooY29uc3QgY2hhciopYnl0ZXM7CiAtICh2b2lkKWFkZFJlZGlyZWN0RnJvbVVS
TFN0cmluZzooTlNTdHJpbmcgKilzb3VyY2VVUkxTdHJpbmcgdG9VUkxTdHJpbmc6KE5TU3RyaW5n
ICopZGVzdGluYXRpb25VUkxTdHJpbmc7CiAtICh2b2lkKWFkZE1hcHBpbmdGcm9tVVJMU3RyaW5n
OihOU1N0cmluZyAqKXVybFN0cmluZyB0b0RhdGE6KGNvbnN0IGNoYXIqKWRhdGE7Ci0tICh2b2lk
KWFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXVybFN0cmluZyB0b0RhdGE6KGNv
bnN0IGNoYXIqKWRhdGEgd2l0aENPT1BWYWx1ZTooY29uc3QgY2hhciopY29vcFZhbHVlOworLSAo
dm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRh
Oihjb25zdCBjaGFyKilkYXRhIHdpdGhDT09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1ZSB3
aXRoQ09FUFZhbHVlOihjb25zdCBjaGFyKiljb2VwVmFsdWU7CiBAZW5kCiAKIEBpbXBsZW1lbnRh
dGlvbiBQU09OU2NoZW1lCkBAIC0yNzksMTEgKzI4MCwxMyBAQCAtICh2b2lkKWFkZE1hcHBpbmdG
cm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXVybFN0cmluZyB0b0RhdGE6KGNvbnN0IGNoYXIqKWRh
dGEKICAgICBfZGF0YU1hcHBpbmdzLnNldCh1cmxTdHJpbmcsIFtOU0RhdGEgZGF0YVdpdGhCeXRl
c05vQ29weToodm9pZCopZGF0YSBsZW5ndGg6c3RybGVuKGRhdGEpIGZyZWVXaGVuRG9uZTpOT10p
OwogfQogCi0tICh2b2lkKWFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXVybFN0
cmluZyB0b0RhdGE6KGNvbnN0IGNoYXIqKWRhdGEgd2l0aENPT1BWYWx1ZTooY29uc3QgY2hhciop
Y29vcFZhbHVlCistICh2b2lkKWFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXVy
bFN0cmluZyB0b0RhdGE6KGNvbnN0IGNoYXIqKWRhdGEgd2l0aENPT1BWYWx1ZTooY29uc3QgY2hh
ciopY29vcFZhbHVlIHdpdGhDT0VQVmFsdWU6KGNvbnN0IGNoYXIqKWNvZXBWYWx1ZQogewogICAg
IFtzZWxmIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOnVybFN0cmluZyB0b0RhdGE6ZGF0YV07CiAg
ICAgaWYgKGNvb3BWYWx1ZSkKICAgICAgICAgX2Nvb3BWYWx1ZXMuYWRkKHVybFN0cmluZywgY29v
cFZhbHVlKTsKKyAgICBpZiAoY29lcFZhbHVlKQorICAgICAgICBfY29lcFZhbHVlcy5hZGQodXJs
U3RyaW5nLCBjb2VwVmFsdWUpOwogfQogCiAtICh2b2lkKXNldFNob3VsZFJlc3BvbmRBc3luY2hy
b25vdXNseTooQk9PTCl2YWx1ZQpAQCAtMzI3LDYgKzMzMCw5IEBAIC0gKHZvaWQpd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBzdGFydFVSTFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRh
c2s+KXRhCiAgICAgICAgIGF1dG8gY29vcFZhbHVlID0gX2Nvb3BWYWx1ZXMuZ2V0KFtmaW5hbFVS
TCBhYnNvbHV0ZVN0cmluZ10pOwogICAgICAgICBpZiAoIWNvb3BWYWx1ZS5pc0VtcHR5KCkpCiAg
ICAgICAgICAgICBbaGVhZGVyRGljdGlvbmFyeSBzZXRPYmplY3Q6KE5TU3RyaW5nICopY29vcFZh
bHVlIGZvcktleTpAIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il07CisgICAgICAgIGF1dG8g
Y29lcFZhbHVlID0gX2NvZXBWYWx1ZXMuZ2V0KFtmaW5hbFVSTCBhYnNvbHV0ZVN0cmluZ10pOwor
ICAgICAgICBpZiAoIWNvZXBWYWx1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBbaGVhZGVyRGlj
dGlvbmFyeSBzZXRPYmplY3Q6KE5TU3RyaW5nICopY29lcFZhbHVlIGZvcktleTpAIkNyb3NzLU9y
aWdpbi1FbWJlZGRlci1Qb2xpY3kiXTsKIAogICAgICAgICBhdXRvIHJlc3BvbnNlID0gYWRvcHRO
UyhbW05TSFRUUFVSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDpmaW5hbFVSTC5nZXQoKSBz
dGF0dXNDb2RlOjIwMCBIVFRQVmVyc2lvbjpAIkhUVFAvMS4xIiBoZWFkZXJGaWVsZHM6aGVhZGVy
RGljdGlvbmFyeV0pOwogICAgICAgICBbdGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6cmVzcG9uc2Uu
Z2V0KCldOwpAQCAtNzE5MSwzNiArNzE5NywzOSBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24o
KSB7CiAKIGVudW0gY2xhc3MgSXNTYW1lT3JpZ2luIDogYm9vbCB7IE5vLCBZZXMgfTsKIGVudW0g
Y2xhc3MgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgOiBib29sIHsgTm8sIFllcyB9Owotc3RhdGljIHZv
aWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBj
aGFyKiBkZXN0aW5hdGlvbkNPT1AsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVy
U2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXAp
CitzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNP
T1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRVAsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09PUCwg
Y29uc3QgY2hhciogZGVzdGluYXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBE
b1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBl
Y3RTd2FwKQogewogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbigpOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtb
V0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5J
c29sYXRlZCA9IHNvdXJjZUNPT1AgJiYgIXN0cmNtcChzb3VyY2VDT09QLCAic2FtZS1vcmlnaW4i
KSAmJiBzb3VyY2VDT0VQICYmICFzdHJjbXAoc291cmNlQ09FUCwgInJlcXVpcmUtY29ycCIpOwor
ICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5h
dGlvbkNPT1AgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPT1AsICJzYW1lLW9yaWdpbiIpICYmIGRl
c3RpbmF0aW9uQ09FUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9uQ09FUCwgInJlcXVpcmUtY29ycCIp
OworICAgIEVYUEVDVF9UUlVFKHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9PSBk
ZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCB8fCBleHBlY3RTd2FwID09IEV4
cGVjdFN3YXA6Olllcyk7CiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0Nv
bmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOwogICAgIFt3ZWJW
aWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0
b21hdGljYWxseSA9IFlFUzsKICAgICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1
cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXSkgewotICAgICAgICBp
ZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5
RW5hYmxlZCJdKSB7CisgICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAi
Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lFbmFibGVkIl0pCisgICAgICAgICAgICBbW3dlYlZpZXdD
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFs
RmVhdHVyZTpmZWF0dXJlXTsKKyAgICAgICAgZWxzZSBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxU
b1N0cmluZzpAIkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lFbmFibGVkIl0pCiAgICAgICAgICAg
ICBbW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICB9CiAgICAgfQogCiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxs
b2NdIGluaXRdKTsKICAgICBpZiAoaXNTYW1lT3JpZ2luID09IElzU2FtZU9yaWdpbjo6WWVzKSB7
Ci0gICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53
ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOndpbmRvd09wZW5TYW1lT3JpZ2luQ09PUFRlc3RC
eXRlcyB3aXRoQ09PUFZhbHVlOnNvdXJjZUNPT1BdOworICAgICAgICBbaGFuZGxlciBhZGRNYXBw
aW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0
YTp3aW5kb3dPcGVuU2FtZU9yaWdpbkNPT1BUZXN0Qnl0ZXMgd2l0aENPT1BWYWx1ZTpzb3VyY2VD
T09QIHdpdGhDT0VQVmFsdWU6c291cmNlQ09FUF07CiAgICAgICAgIGlmIChkb1NlcnZlclNpZGVS
ZWRpcmVjdCA9PSBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzKSB7CiAgICAgICAgICAgICBbaGFu
ZGxlciBhZGRSZWRpcmVjdEZyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvcG9w
dXAuaHRtbCIgdG9VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvcG9wdXAtYWZ0ZXIt
cmVkaXJlY3QuaHRtbCJdOwotICAgICAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxT
dHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvcG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCIg
dG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1BdOworICAgICAgICAg
ICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5v
cmcvcG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1
ZTpkZXN0aW5hdGlvbkNPT1Agd2l0aENPRVBWYWx1ZTpkZXN0aW5hdGlvbkNPRVBdOwogICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAi
cHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09Q
VmFsdWU6ZGVzdGluYXRpb25DT09QXTsKKyAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdG
cm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLmh0bWwiIHRvRGF0YToi
cG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QIHdpdGhDT0VQVmFsdWU6ZGVzdGlu
YXRpb25DT0VQXTsKICAgICB9IGVsc2UgewotICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJv
bVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp3aW5k
b3dPcGVuQ3Jvc3NPcmlnaW5DT09QVGVzdEJ5dGVzIHdpdGhDT09QVmFsdWU6c291cmNlQ09PUF07
CisgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53
ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOndpbmRvd09wZW5Dcm9zc09yaWdpbkNPT1BUZXN0
Qnl0ZXMgd2l0aENPT1BWYWx1ZTpzb3VyY2VDT09QIHdpdGhDT0VQVmFsdWU6c291cmNlQ09FUF07
CiAgICAgICAgIGlmIChkb1NlcnZlclNpZGVSZWRpcmVjdCA9PSBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6WWVzKSB7CiAgICAgICAgICAgICBbaGFuZGxlciBhZGRSZWRpcmVjdEZyb21VUkxTdHJpbmc6
QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC5odG1sIiB0b1VSTFN0cmluZzpAInBzb246Ly93
d3cuYXBwbGUuY29tL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiXTsKLSAgICAgICAgICAgIFto
YW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9w
dXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0
aW5hdGlvbkNPT1BdOworICAgICAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJp
bmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC1hZnRlci1yZWRpcmVjdC5odG1sIiB0b0Rh
dGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9uQ09PUCB3aXRoQ09FUFZhbHVlOmRl
c3RpbmF0aW9uQ09FUF07CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgW2hhbmRsZXIgYWRk
TWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC5odG1sIiB0
b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9uQ09PUF07CisgICAgICAgICAg
ICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29t
L3BvcHVwLmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09Q
IHdpdGhDT0VQVmFsdWU6ZGVzdGluYXRpb25DT0VQXTsKICAgICB9CiAgICAgW3dlYlZpZXdDb25m
aWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6
QCJQU09OIl07CiAKQEAgLTcyODgsNiArNzI5NywyNiBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIGRlc3RpbmF0
aQogICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOwogICAgIH1dOwogICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKKyAgICBmaW5p
c2hlZFJ1bm5pbmdTY3JpcHQgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3Jp
cHQ6QCJzZWxmLmNyb3NzT3JpZ2luSXNvbGF0ZWQgPyAnaXNvbGF0ZWQnIDogJ25vdC1pc29sYXRl
ZCciIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsK
KyAgICAgICAgTlNTdHJpbmcgKmNyb3NzT3JpZ2luSXNvbGF0ZWQgPSAoTlNTdHJpbmcgKilyZXN1
bHQ7CisgICAgICAgIGlmIChzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQpCisgICAg
ICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJpc29sYXRlZCIsIGNyb3NzT3JpZ2luSXNvbGF0ZWQp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJub3QtaXNvbGF0
ZWQiLCBjcm9zc09yaWdpbklzb2xhdGVkKTsKKyAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0
ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVk
UnVubmluZ1NjcmlwdCk7CisgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7CisgICAg
W3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic2VsZi5TaGFyZWRBcnJheUJ1ZmZlciA/ICdo
YXMtc2FiJyA6ICdkb2VzLW5vdC1oYXZlLXNhYiciIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlk
IHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKmhhc1NBQiA9IChO
U1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYgKHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5J
c29sYXRlZCkKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImhhcy1zYWIiLCBoYXNTQUIp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJkb2VzLW5vdC1o
YXZlLXNhYiIsIGhhc1NBQik7CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7
CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdT
Y3JpcHQpOwogCiAgICAgLy8gT3BlbmVlIHNob3VsZCBub3QgaGF2ZSBhbiBvcGVuZXIgb3IgYSBu
YW1lLgogICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOwpAQCAtNzMxOCw4NyArNzM0
NywyMzUgQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBz
b3VyY2VDT09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGkKICAgICAgICAgZmluaXNoZWRSdW5uaW5n
U2NyaXB0ID0gdHJ1ZTsKICAgICB9XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZp
bmlzaGVkUnVubmluZ1NjcmlwdCk7CisgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7
CisgICAgW2NyZWF0ZWRXZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInNlbGYuY3Jvc3NPcmln
aW5Jc29sYXRlZCA/ICdpc29sYXRlZCcgOiAnbm90LWlzb2xhdGVkJyIgY29tcGxldGlvbkhhbmRs
ZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAq
Y3Jvc3NPcmlnaW5Jc29sYXRlZCA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYgKGRl
c3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkKQorICAgICAgICAgICAgRVhQRUNU
X1dLX1NUUkVRKEAiaXNvbGF0ZWQiLCBjcm9zc09yaWdpbklzb2xhdGVkKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAibm90LWlzb2xhdGVkIiwgY3Jvc3NPcmln
aW5Jc29sYXRlZCk7CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CisgICAg
fV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQp
OworICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFtjcmVhdGVkV2ViVmll
dyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJzZWxmLlNoYXJlZEFycmF5QnVmZmVyID8gJ2hhcy1zYWIn
IDogJ2RvZXMtbm90LWhhdmUtc2FiJyIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0
LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAqaGFzU0FCID0gKE5TU3RyaW5n
ICopcmVzdWx0OworICAgICAgICBpZiAoZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNv
bGF0ZWQpCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJoYXMtc2FiIiwgaGFzU0FCKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiZG9lcy1ub3QtaGF2
ZS1zYWIiLCBoYXNTQUIpOworICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOwor
ICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2Ny
aXB0KTsKIAogICAgIGNyZWF0ZWRXZWJWaWV3ID0gbnVsbHB0cjsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9D
T09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5v
bmUiLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVu
c2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKwor
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykK
K3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJz
YW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCit7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4i
LCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZl
LW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QQW5kQ09FUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5B
bGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFs
bG93LXBvcHVwIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9y
aWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1ub25l
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQoreworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2Fm
ZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQoreworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwg
InVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5BbGxvd1BvcHVw
KQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
IiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInNh
bWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVP
cmlnaW4yKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVu
c2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVP
cmlnaW4zKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVu
c2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmln
aW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1j
b3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZy
b21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQoreworICAgIC8vIFNob3Vs
ZCBzd2FwIGJlY2F1c2UgdGhlIGRlc3RpbmF0aW9uIGlzIG1pc3NpbmcgQ09FUC4KKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1v
cmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQorewor
ICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1c2UgdGhlIHNvdXJjZSBpcyBtaXNzaW5nIENPRVAuCisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1v
cmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luV2l0aFJl
ZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3Qg
ZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4uCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2Fw
OjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkK
K3sKKyAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3Qg
aGF2ZSBDT09QPXNhbWUtb3JpZ2luIGFuZCBDT0VQPXJlcXVpcmUtY29ycC4KKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmln
aW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luV2l0aG91dENPT1BXaXRoUmVkaXJlY3QpCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9y
aWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNh
bWVPcmlnaW4zKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwg
bnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkKK3sKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJz
YW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCit7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVx
dWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUi
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRy
LCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCit7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUi
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpbkZyb21DT09QU2FtZU9yaWdpbjQpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUi
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21D
T09QQW5kQ09FUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5U
b0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1l
T3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVp
cmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3Jp
Z2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUt
b3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKK3sK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1
bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
LWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cit9CisK
K1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdp
bkFsbG93UG9wdXAzKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
LWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpbkFsbG93UG9wdXA0KQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2Fm
ZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436656</attachid>
            <date>2021-08-27 12:23:38 -0700</date>
            <delta_ts>2021-08-27 14:43:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229559-20210827122337.patch</filename>
            <type>text/plain</type>
            <size>84245</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU1MDU2MDRjYmIyNGUy
ZWQ1MGJkZmNiMTI3MGE0NmE1OTI0YWE1OS4uN2JkMjM2MWU2Y2VjNWIwMDc3ZThjZGU0MmE5ZDg0
ZTMwYzJiNGNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA4LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIFNoYXJlZEFycmF5
QnVmZmVyIHN1cHBvcnQgd2hlbiBDT09QL0NPRVAgaGVhZGVycyBhcmUgdXNlZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NTU5CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84MjM5MTk0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNYWtlIHN1cmUgd2luZG93LmNyb3NzT3JpZ2luSXNvbGF0ZWQgcmV0
dXJucyB0cnVlIHdoZW4gQ09PUD1zYW1lLW9yaWdpbiBhbmQKKyAgICAgICAgQ09FUD1yZXF1aXJl
LWNvcnAgYXJlIHVzZWQuIEFsc28gbWFrZSBzdXJlIHRoYXQgY3Jvc3Mtb3JpZ2luLWlzb2xhdGVz
IHBhZ2VzCisgICAgICAgIGFyZSBhbGxvd2VkIHRvIHVzZSBTaGFyZWRBcnJheUJ1ZmZlci4KKwor
ICAgICAgICBDaGFuZ2UgaXMgY292ZXJlZCBieSByZWJhc2VsaW5lZCBsYXlvdXQgdGVzdHMgYW5k
IG5ldyBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6dG9OZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAg
ICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0NvbnRl
bnRQb2xpY3kpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlclR5
cGVzLmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93Ojpjcm9zc09yaWdpbklzb2xhdGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0RP
TVdpbmRvdy5pZGw6CisKIDIwMjEtMDgtMjcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtDU1MgQ2FzY2FkZSBMYXllcnNdIEluaXRpYWwgc3VwcG9ydApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBlM2ZkMjI5MjdmZGJjNjk3MDc3ZGM4M2VlNTc2NzE3YzIyYzA2OWJkLi43Y2E3YzZk
YjJkNDQwMzljZGRmZGY3M2I1YzgxOTY0ZmNlYzg5NWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1
IEBACisyMDIxLTA4LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgRW5hYmxlIFNoYXJlZEFycmF5QnVmZmVyIHN1cHBvcnQgd2hlbiBDT09QL0NPRVAgaGVhZGVy
cyBhcmUgdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5NTU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjM5MTk0NT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHN1cmUgd2luZG93LmNy
b3NzT3JpZ2luSXNvbGF0ZWQgcmV0dXJucyB0cnVlIHdoZW4gQ09PUD1zYW1lLW9yaWdpbiBhbmQK
KyAgICAgICAgQ09FUD1yZXF1aXJlLWNvcnAgYXJlIHVzZWQuIEFsc28gbWFrZSBzdXJlIHRoYXQg
Y3Jvc3Mtb3JpZ2luLWlzb2xhdGVzIHBhZ2VzCisgICAgICAgIGFyZSBhbGxvd2VkIHRvIHVzZSBT
aGFyZWRBcnJheUJ1ZmZlci4KKworICAgICAgICBXaGVuIHRoZSBXZWJQcm9jZXNzIGRldGVybWlu
ZXMgaXQgbmVlZHMgdG8gc3dpdGNoIGJyb3dzaW5nIGNvbnRleHQgZ3JvdXAgaXQKKyAgICAgICAg
bm93IHNlbmRzIGEgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaDo6WWVzV2l0aG91dENy
b3NzT3JpZ2luSXNvbGF0aW9uIC8KKyAgICAgICAgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaDo6WWVzV2l0aENyb3NzT3JpZ2luSXNvbGF0aW9uIGVudW0gdmFsdWUgdG8KKyAgICAgICAg
dGhlIFVJUHJvY2VzcyB3aXRoIHRoZSBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSBJUEMgaW5zdGVh
ZCBvZiBhIHNpbXBsZQorICAgICAgICBib29sZWFuLiBXZSBzZW5kIFllc1dpdGhvdXRDcm9zc09y
aWdpbklzb2xhdGlvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uCisgICAgICAgIGRlc3RpbmF0aW9uIHdp
bGwgYmUgY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkIGR1ZSB0byBDT09QPXNhbWUtb3JpZ2luIGFuZAor
ICAgICAgICBDT0VQPXJlcXVpcmUtY29ycC4gSW4gdGhlIFVJUHJvY2Vzcywgd2hlbiBZZXNXaXRo
Q3Jvc3NPcmlnaW5Jc29sYXRpb24gaXMKKyAgICAgICAgcmVjZWl2ZWQsIHdlIHRha2UgY2FyZSBv
ZiBsYXVuY2hpbmcgYSBmcmVzaCBXZWJQcm9jZXNzIChuZXZlciByZWN5Y2xpbmcgYW4KKyAgICAg
ICAgZXhpc3RpbmcgV2ViUHJvY2VzcykgYW5kIHdlIG1ha2UgdGhpcyBXZWJQcm9jZXNzIGFzIGNy
b3NzLW9yaWdpbi1pc29sYXRlZC4KKyAgICAgICAgV2hlbiBhIHByb2Nlc3MgaXMgY3Jvc3Mtb3Jp
Z2luLWlzb2xhdGVkLCB3ZSBwYXNzIGl0IGEgWFBDIGZsYWcgb24gbGF1bmNoCisgICAgICAgIHRv
IGFsbG93IHRoZSBwcm9jZXNzIHRvIHVzZSBTaGFyZWRBcnJheUJ1ZmZlci4gV2UgdXNlIGFuIFhQ
QyBmbGFnIGJlY2F1c2UKKyAgICAgICAgSlNDIE9wdGlvbnMgbmVlZCB0byBiZSBzZXQgYmVmb3Jl
IEpTQzo6aW5pdGlhbGl6ZSgpIGlzIGNhbGxlZCwgd2hpY2ggb2NjdXJzCisgICAgICAgIGR1cmlu
ZyBYUEMgc2VydmljZSBpbml0aWFsaXphdGlvbi4gV2hlbiBhIFdlYlByb2Nlc3MgaXMgbWFya2Vk
IGFzCisgICAgICAgIGNyb3NzLW9yaWdpbi1pc29sYXRlZCwgd2UgbWFrZSBzdXJlIHRvIG5ldmVy
IGNhY2hlIGl0IHNvIGl0IGNhbm5vdCBiZQorICAgICAgICByZWN5Y2xlZCBmb3IgYSBuZXcgbmF2
aWdhdGlvbiAoZ2l2ZW4gdGhhdCBpdCBoYXMgc3BlY2lhbCBwZXJtaXNzaW9uIHRvIHVzZQorICAg
ICAgICBTaGFyZWRBcnJheUJ1ZmZlcikuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAqIFNoYXJlZC9F
bnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6WFBDU2VydmljZUluaXRpYWxpemVyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmg6CisgICAgICAgIChXZWJLaXQ6OlBy
b2Nlc3NMYXVuY2hlcjo6Q2xpZW50OjpzaG91bGRFbmFibGVTaGFyZWRBcnJheUJ1ZmZlciBjb25z
dCk6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMu
bW06CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3VzcGVuZGVk
UGFnZVByb3h5OjpmaW5kUmV1c2FibGVTdXNwZW5kZWRQYWdlUHJvY2Vzcyk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVXZWJQYWdlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZUZvclNlcnZpY2VXb3JrZXJzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNhbkJlQWRkZWRUb1dlYlByb2Nlc3NDYWNoZSBj
b25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmlzQ3Jvc3NPcmlnaW5Jc29sYXRlZCBjb25zdCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKIDIwMjEtMDgtMjcgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbV0syXSBSZXVzZSB0aGUgc2FtZSBuZXR3b3JrIGxv
YWQgd2hlbiBwcm9jZXNzLXN3YXBwaW5nIG9uIHJlc291cmNlIHJlc3BvbnNlIGR1ZSB0byBDT09Q
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNDVhNTQ4NmUwNTgwNWQ5N2JjMWU0OGI0
NGY5M2RhMzAzMjhhNmExZC4uYWUyNTkxMDk5YTYyZDFhOGVkN2ZlZWRkZmM2ZWZkZjZmZmNjMjU2
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA4
LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIFNo
YXJlZEFycmF5QnVmZmVyIHN1cHBvcnQgd2hlbiBDT09QL0NPRVAgaGVhZGVycyBhcmUgdXNlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NTU5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjM5MTk0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZSk6CisKIDIwMjEtMDgtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2FwcGluZyBiYXNlZCBvbiBD
cm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCmluZGV4IGUyODE1MTAyOThhOGM3MzY0MWRjNDA0OTU2OTdhMmRmNDVhNTEzY2EuLjlj
OTZkNWNkMWM2MzNmN2Q2YzcyMDExZWE3ODIwNTQyMDY1OGI5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wOC0yNyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBTaGFyZWRBcnJheUJ1ZmZlciBzdXBw
b3J0IHdoZW4gQ09PUC9DT0VQIGhlYWRlcnMgYXJlIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTU1OQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vODIzOTE5NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAg
IChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAy
MS0wOC0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJd
IEltcGxlbWVudCBwcm9jZXNzLXN3YXBwaW5nIGJhc2VkIG9uIENyb3NzLU9yaWdpbi1PcGVuZXIt
UG9saWN5IEhUVFAgaGVhZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNw
cAppbmRleCBmNjFhNGNkYWUyNWRmOWZhY2Y3ODM5N2Q3MjI4Y2Y0MzBhNzcwYzZlLi5jMjhlNTc4
ZWUwN2Q0MGI0MDYxZDRlN2QwZmEzZGNiM2U1MGRkYzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTk0OCw2ICs5NDgsMTUgQEAgdm9pZCBEb2N1bWVudExv
YWRlcjo6cmVzcG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IFJl
c291cmNlUmUKICAgICByZXNwb25zZVJlY2VpdmVkKHJlc3BvbnNlLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKK3N0YXRpYyBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
IHRvTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaChjb25zdCBzdGQ6Om9wdGlvbmFsPENy
b3NzT3JpZ2luT3BlbmVyUG9saWN5RW5mb3JjZW1lbnRSZXN1bHQ+JiBjdXJyZW50Q29vcEVuZm9y
Y2VtZW50UmVzdWx0KQoreworICAgIGlmICghY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdCB8
fCAhY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCkKKyAgICAgICAgcmV0dXJuIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6
Ok5vOworICAgIGlmIChjdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0LT5jcm9zc09yaWdpbk9w
ZW5lclBvbGljeS52YWx1ZSA9PSBDcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpTYW1lT3Jp
Z2luUGx1c0NPRVApCisgICAgICAgIHJldHVybiBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dp
dGNoOjpZZXNXaXRoQ3Jvc3NPcmlnaW5Jc29sYXRpb247CisgICAgcmV0dXJuIE5lZWRzQnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2g6Olllc1dpdGhvdXRDcm9zc09yaWdpbklzb2xhdGlvbjsKK30K
Kwogdm9pZCBEb2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIEFTU0VSVChyZXNwb25zZS5jZXJ0aWZpY2F0ZUluZm8oKSk7CkBAIC0x
MDQ4LDcgKzEwNTcsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aQogICAgIGlmIChtYWluUmVz
b3VyY2VMb2FkZXIpCiAgICAgICAgIG1haW5SZXNvdXJjZUxvYWRlci0+bWFya0luQXN5bmNSZXNw
b25zZVBvbGljeUNoZWNrKCk7CiAgICAgYXV0byByZXF1ZXN0SWRlbnRpZmllciA9IFBvbGljeUNo
ZWNrSWRlbnRpZmllcjo6Y3JlYXRlKCk7Ci0gICAgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdy
b3VwU3dpdGNoID0gbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0ICYmIG1fY3VycmVudENv
b3BFbmZvcmNlbWVudFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaDsKKyAg
ICBhdXRvIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggPSB0b05lZWRzQnJvd3NpbmdD
b250ZXh0R3JvdXBTd2l0Y2gobV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0KTsKICAgICBm
cmFtZUxvYWRlcigpLT5jaGVja0NvbnRlbnRQb2xpY3kobV9yZXNwb25zZSwgcmVxdWVzdElkZW50
aWZpZXIsIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIG1haW5SZXNvdXJjZUxvYWRlciA9IFdURk1vdmUobWFpblJl
c291cmNlTG9hZGVyKSwKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFu
ZGxlckNhbGxlci5yZWxlYXNlKCksIHJlcXVlc3RJZGVudGlmaWVyXSAoUG9saWN5QWN0aW9uIHBv
bGljeSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIHJlc3BvbnNlSWRlbnRpZmllcikgbXV0YWJsZSB7
CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHJlc3BvbnNlSWRlbnRpZmllci5pc1ZhbGlkRm9yKHJl
cXVlc3RJZGVudGlmaWVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmlu
ZGV4IDk2NGUyZGQxMjA3MDMzMWE2NWNhMzQxYWM3MGU0YjI4NzQyMDBhMGQuLjI2Yzk2NjM5YWZh
ZTI0NGNhMDAwNWNkNjg2ZDA5MjRlYzIwZTUxODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwCkBAIC04MTYsNyArODE2LDcgQEAgdm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaFNob3coKQogewogfQogCi12b2lkIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiwgYm9vbCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKQordm9pZCBFbXB0eUZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYsIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5
RnVuY3Rpb24mJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5RnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1l
TG9hZGVyQ2xpZW50LmgKaW5kZXggMTIwYTRhNTIwYmQxZjEyZDczZDE0ZjYyZWUwZWU0MGI5ODg0
ZWFhYi4uM2NiYjMxMGEyZTJiMWE1OWQ1MzU2NWYxMTgzMDdjM2EzN2U5MTAxNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBAIC05Niw3ICs5
Niw3IEBAIHByaXZhdGU6CiAgICAgRnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBOYXZp
Z2F0aW9uQWN0aW9uJiwgTmV3RnJhbWVPcGVuZXJQb2xpY3kpIGZpbmFsOwogICAgIHZvaWQgZGlz
cGF0Y2hTaG93KCkgZmluYWw7CiAKLSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBv
bGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29u
dGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAgIHZvaWQg
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmLCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9u
JiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rp
b24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1T
dGF0ZSosIGNvbnN0IFN0cmluZyYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lG
dW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgRm9ybVN0YXRlKiwg
UG9saWN5RGVjaXNpb25Nb2RlLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVu
Y3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggN2FhNzZhYzZkMWViZWQwMTNlNjBi
Nzc5NjU0OTZkYjllYzNhOTlmMC4uNmIwMjM2MWExYjU2OGQyZTQ1ZDI0ODcwNDk3NzBlNTg3NDZi
ODdjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC00MTMsNyArNDEz
LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKICAg
ICB9CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIs
IGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lz
aW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBv
bGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlm
aWVyIGlkZW50aWZpZXIsIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggbmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBm
dW5jdGlvbikKIHsKICAgICBpZiAoIWFjdGl2ZURvY3VtZW50TG9hZGVyKCkpIHsKICAgICAgICAg
Ly8gTG9hZCB3YXMgY2FuY2VsbGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4
IGU1NmMwOGY3MDM2YTVkZmI3MzNjMmU1ZjVjZWVjZDg4NDIyYWY1MTkuLjc5ODk4YTY0YTRiNmI4
MTJjY2NlOTJmZDA2YzYwMTIzMDQ3YjI3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5oCkBAIC0yMjAsNyArMjIwLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXREZWZlcnNMb2Fk
aW5nKGJvb2wpOwogCi0gICAgdm9pZCBjaGVja0NvbnRlbnRQb2xpY3koY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4
dEdyb3VwU3dpdGNoLCBDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiYmKTsKKyAgICB2b2lk
IGNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgUG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBDb250ZW50UG9saWN5
RGVjaXNpb25GdW5jdGlvbiYmKTsKIAogICAgIHZvaWQgZGlkRXhwbGljaXRPcGVuKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMzliYjQwNTQwOWM0
MTc0Nzg1YTkzNzIyODMwMDE4NjNjMGE4Nzc1ZC4uMjY4NDMxYTVkOTU1YzFlZTMxM2YwMjIzZjcw
MmQ5ZjFlNGQ1NTAwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgKQEAgLTE5MCw3ICsxOTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBGcmFtZSogZGlzcGF0
Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBOZXdGcmFtZU9wZW5lclBvbGlj
eSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFNob3coKSA9IDA7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0
R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gs
IEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERl
Y2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUs
IFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNpb25N
b2RlLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCmluZGV4IGM1MTViYWU0ZDIxOGIzNTJkZmQyMjUwZGFi
NTA4NGM1NDNlYjg4NzkuLmNkZDAxMDQxMDY1OTY3M2M3MzJjOWI5M2Q3MGU0ZGZhZTYwNjQ0Nzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaApAQCAtMTY3LDYgKzE2
NywxMiBAQCBlbnVtIGNsYXNzIFVubG9hZEV2ZW50UG9saWN5IHsKICAgICBVbmxvYWRBbmRQYWdl
SGlkZQogfTsKIAorZW51bSBjbGFzcyBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIDog
dWludDhfdCB7CisgICAgTm8sCisgICAgWWVzV2l0aG91dENyb3NzT3JpZ2luSXNvbGF0aW9uLAor
ICAgIFllc1dpdGhDcm9zc09yaWdpbklzb2xhdGlvbiwKK307CisKIC8vIFBhc3NlZCB0byBGcmFt
ZUxvYWRlcjo6dXJsU2VsZWN0ZWQoKSBhbmQgU2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZUlmSmF2
YVNjcmlwdFVSTCgpCiAvLyB0byBjb250cm9sIHdoZXRoZXIsIGluIHRoZSBjYXNlIG9mIGEgSmF2
YVNjcmlwdCBVUkwsIGV4ZWN1dGVJZkphdmFTY3JpcHRVUkwoKSBzaG91bGQKIC8vIHJlcGxhY2Ug
dGhlIGRvY3VtZW50LiBJdCBpcyBhIEZJWE1FIHRvIGVsaW1pbmF0ZSB0aGlzIGV4dHJhIHBhcmFt
ZXRlciBmcm9tCkBAIC0yNzYsNiArMjgyLDE1IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8V2ViQ29yZTo6UG9saWN5QWN0aW9uPiB7CiAgICAgPjsKIH07CiAKK3RlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaD4g
eworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6Ok5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsCisgICAgICAgIFdlYkNvcmU6Ok5lZWRzQnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2g6Ok5vLAorICAgICAgICBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoOjpZZXNXaXRob3V0Q3Jvc3NPcmlnaW5Jc29sYXRpb24sCisgICAg
ICAgIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6Olllc1dpdGhDcm9z
c09yaWdpbklzb2xhdGlvbgorICAgID47Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k+IHsKICAgICB1c2luZyB2
YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgICAgICBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDlhMzI1NWE2OWQyOTE2
MmEzNzY1ZmM0NDExMDBlYjM0MzA1YWFiYTYuLmIxYjRkZjBmZTAwYmJhZDc3YmMxNjE3ZWUzYTcz
NjY5M2Q5ZTNhYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE5MjMsOSArMTky
Myw3IEBAIGJvb2wgRE9NV2luZG93Ojppc1NlY3VyZUNvbnRleHQoKSBjb25zdAogCiBib29sIERP
TVdpbmRvdzo6Y3Jvc3NPcmlnaW5Jc29sYXRlZCgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IElt
cGxlbWVudGVkIHRoaXMuIFRoaXMgc2hvdWxkIHJldHVybiB0cnVlIGlmIENPT1AvQ09FUCBhcmUg
dXNlZCBhbmQgdGhlIHBhZ2UgaXMgYWxsb3dlZCB0byB1c2UgQVBJcwotICAgIC8vIHRoYXQgcmVx
dWlyZSBjcm9zcy1vcmlnaW4gaXNvbGF0aW9uIChlLmcuIFNoYXJlZEFycmF5QnVmZmVyKS4KLSAg
ICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGRvY3VtZW50KCkgJiYgZG9jdW1lbnQoKS0+dG9w
RG9jdW1lbnQoKS5jcm9zc09yaWdpbk9wZW5lclBvbGljeSgpLnZhbHVlID09IENyb3NzT3JpZ2lu
T3BlbmVyUG9saWN5VmFsdWU6OlNhbWVPcmlnaW5QbHVzQ09FUDsKIH0KIAogc3RhdGljIHZvaWQg
ZGlkQWRkU3RvcmFnZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93JiB3aW5kb3cpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwKaW5kZXggNDBmODc0N2IxZGFmM2UxNDkwNjUwZDMxZjk2NWUxZGNmYWUx
ZjU5YS4uMWJjMTMwMWNmYTBjZjliYjQyNGQ1Y2YyMTRjMGViZDg0NTAwZjNhYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbApAQCAtNzksOCArNzksNiBAQAogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBOYXZpZ2F0b3IgbmF2aWdhdG9yOwogICAgIC8vIEZJWE1FOiBUaGlzIGlzIHNwZWNpZmll
ZCB0byBiZSBbU2VjdXJlQ29udGV4dF0KICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NQXBwbGlj
YXRpb25DYWNoZSBhcHBsaWNhdGlvbkNhY2hlOwotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgJ29y
aWdpbklzb2xhdGVkJwotICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIG9yaWdpbklz
b2xhdGVkOwogCiAgICAgLy8gdXNlciBwcm9tcHRzCiAgICAgdW5kZWZpbmVkIGFsZXJ0KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBmYjIzNDdkNWY4OWM4
NTEwZmQ3MDViNDI1YTRlYzUyNDU4NGNlNTdhLi4yZjEzZjRiZjdhYTliMTIyZTg5MWMwMTZmOWNj
Zjk0MGJlNTBkNmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
QEAgLTcxOSw2ICs3MTksNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAg
J1dlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMnOiBbJzxXZWJDb3JlL01lZGlh
UGxheWVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRl
cjo6SGFzQWN0aXZpdHknOiBbJzxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg+
J10sCiAgICAgICAgICdXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5JzogWyc8V2ViQ29yZS9Eb2N1
bWVudExvYWRlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRH
cm91cFN3aXRjaCc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAn
V2ViQ29yZTo6TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24nOiBbJzxXZWJDb3JlL05ldHdv
cmtMb2FkSW5mb3JtYXRpb24uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBhc3RlYm9hcmRDdXN0
b21EYXRhJzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQ
YXN0ZWJvYXJkSW1hZ2UnOiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4nXSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2Vydmlj
ZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2lu
dFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgKaW5kZXgg
OTJlMTRlNGVkZjcxOWIxZWMwMmRmZDg1NDE4Mjk0NDIyM2NjMjZhNS4uMGE4MTIxYWU3NTAwNTBi
MzcwNzEzMjgxMjljMDc0Njc0YTM1OTVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBv
aW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2Nv
YS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgKQEAgLTkyLDYgKzkyLDExIEBAIHZv
aWQgWFBDU2VydmljZUluaXRpYWxpemVyKE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+IGNv
bm5lY3Rpb24sIHhwY19vYmplY3RfCiAgICAgICAgICAgICBKU0M6OkNvbmZpZzo6Y29uZmlndXJl
Rm9yVGVzdGluZygpOwogICAgICAgICBpZiAoeHBjX2RpY3Rpb25hcnlfZ2V0X2Jvb2woaW5pdGlh
bGl6ZXJNZXNzYWdlLCAiZGlzYWJsZS1qaXQiKSkKICAgICAgICAgICAgIEpTQzo6RXhlY3V0YWJs
ZUFsbG9jYXRvcjo6c2V0SklURW5hYmxlZChmYWxzZSk7CisgICAgICAgIGlmICh4cGNfZGljdGlv
bmFyeV9nZXRfYm9vbChpbml0aWFsaXplck1lc3NhZ2UsICJlbmFibGUtc2hhcmVkLWFycmF5LWJ1
ZmZlciIpKSB7CisgICAgICAgICAgICBKU0M6Ok9wdGlvbnM6OmluaXRpYWxpemUoKTsKKyAgICAg
ICAgICAgIEpTQzo6T3B0aW9uczo6QWxsb3dVbmZpbmFsaXplZEFjY2Vzc1Njb3BlIHNjb3BlOwor
ICAgICAgICAgICAgSlNDOjpPcHRpb25zOjp1c2VTaGFyZWRBcnJheUJ1ZmZlcigpID0gdHJ1ZTsK
KyAgICAgICAgfQogICAgIH0KIAogICAgIFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlVHlw
ZSBkZWxlZ2F0ZShXVEZNb3ZlKGNvbm5lY3Rpb24pLCBpbml0aWFsaXplck1lc3NhZ2UpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVy
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaApp
bmRleCAxMDgxYmEyYTViZmMzNGI5ZmI3M2FmODg1MTI1M2U3OGVhYWViM2M4Li5kMzBmNmQ0OWIw
OTJmNzk0MTc1ODU2ODUyMWEwNmFhMzBkMmJkYmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaApAQCAtNjEsNiArNjEsNyBAQCBw
dWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xh
dW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSA9IDA7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRDb25maWd1cmVKU0NGb3JUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICAgICAgdmlydHVhbCBib29sIGlzSklURW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KKyAgICAgICAgdmlydHVhbCBib29sIHNob3VsZEVuYWJsZVNoYXJlZEFycmF5QnVm
ZmVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNpZiBQTEFURk9STShDT0NPQSkKICAgICAg
ICAgdmlydHVhbCBSZWZQdHI8WFBDRXZlbnRIYW5kbGVyPiB4cGNFdmVudEhhbmRsZXIoKSBjb25z
dCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IGY3
NzczZmU2ZGQwMjkyZDJjMzljY2ZmZGMwOGI1MzY5ZTA1MjBlNTIuLmRhYzMxYzNkOWY2NmEwOGIw
ZTBkMDY1NmFmZTY3YTViZjg4YWEzYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtMjA1LDYg
KzIwNSw4IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKICAgICAgICAg
ICAgIHhwY19kaWN0aW9uYXJ5X3NldF9ib29sKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJjb25m
aWd1cmUtanNjLWZvci10ZXN0aW5nIiwgdHJ1ZSk7CiAgICAgICAgIGlmICghbV9jbGllbnQtPmlz
SklURW5hYmxlZCgpKQogICAgICAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X2Jvb2woYm9vdHN0
cmFwTWVzc2FnZS5nZXQoKSwgImRpc2FibGUtaml0IiwgdHJ1ZSk7CisgICAgICAgIGlmIChtX2Ns
aWVudC0+c2hvdWxkRW5hYmxlU2hhcmVkQXJyYXlCdWZmZXIoKSkKKyAgICAgICAgICAgIHhwY19k
aWN0aW9uYXJ5X3NldF9ib29sKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJlbmFibGUtc2hhcmVk
LWFycmF5LWJ1ZmZlciIsIHRydWUpOwogICAgIH0KIAogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9z
dHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgIm1lc3NhZ2UtbmFtZSIsICJib290c3RyYXAi
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNw
cAppbmRleCA3NWE2NWM0MzM3MDY1NDc4MDBlNjIwYWQwNWY0NTZjMzYwNDFlZmYzLi4yNjE4YTRi
ODI2NDE5MGJhNWM3NTY3YzY0MDI1Yzc2Y2QzODgyMDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCkBAIC0zMzAsNyArMzMwLDcgQEAg
dm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bkFzeW5jKEZyYW1lSWRlbnRpZmllcgogICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uQXN5bmNTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZy
YW1lSUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZN
b3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgV1RGTW92ZShvcmlnaW5hdGluZ0ZyYW1lSW5mbyks
IG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdU
Rk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwg
bGlzdGVuZXJJRCk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJiYgZnJh
bWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dN
SU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2Vk
QnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1
aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwg
Y29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0Rh
dGEmJiBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wg
Y2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdh
c0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
IG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxv
YWRJZGVudGlmaWVyLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRh
dGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zp
c2lvbmFsUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBh
Z2VQcm94eS5oCmluZGV4IDBhYmVhOWRhNmJiZDIwMTE0ZmY1NGMxYjhkNzFjYWZkYmY3MjM3NjIu
LjY0YTAxOGVkNGI4YzRkYzVkODYxNTdiNjlhM2EyODQ2YzNmOThjN2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtMTI1LDcgKzEyNSw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzZW5kTWVzc2FnZShVbmlxdWVSZWY8SVBDOjpFbmNvZGVy
PiYmLCBPcHRpb25TZXQ8SVBDOjpTZW5kT3B0aW9uPiwgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkRlY29kZXIqKT4sIHVpbnQ2NF90Pj4mJikgZmlu
YWw7CiAKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRh
JiYsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxX
ZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90
IGxpc3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlN
RVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5
SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWlu
dDY0X3QgbGlzdGVuZXJJRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIGNv
bnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dN
SU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2Vk
QnlJbmplY3RlZEJ1bmRsZSwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCwgdWludDY0X3QgbGlzdGVuZXJJRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZp
ZXIsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZv
ckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBV
UkwmJik7CiAgICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RG
b3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJE
YXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNw
cAppbmRleCAzYjY4MWU1ZTkxYmJmZTUwOTNlZTg3YzhmNTdmNDlkMmFkYWFhZTQ5Li4yMjE5NzI5
NThhYzA2MTEzODJiN2IyZjdlMzM4NWVlMzA5ZjZmZDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgUmVmUHRy
PFdlYlByb2Nlc3NQcm94eT4gU3VzcGVuZGVkUGFnZVByb3h5OjpmaW5kUmV1c2FibGVTdXNwZW5k
ZWRQYWdlUHJvY2VzcyhXZWIKIHsKICAgICBmb3IgKGF1dG8qIHN1c3BlbmRlZFBhZ2UgOiBhbGxT
dXNwZW5kZWRQYWdlcygpKSB7CiAgICAgICAgIGF1dG8mIHByb2Nlc3MgPSBzdXNwZW5kZWRQYWdl
LT5wcm9jZXNzKCk7Ci0gICAgICAgIGlmICgmcHJvY2Vzcy5wcm9jZXNzUG9vbCgpID09ICZwcm9j
ZXNzUG9vbCAmJiBwcm9jZXNzLnJlZ2lzdHJhYmxlRG9tYWluKCkgPT0gcmVnaXN0cmFibGVEb21h
aW4gJiYgJnByb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpID09ICZkYXRhU3RvcmUpCisgICAgICAg
IGlmICgmcHJvY2Vzcy5wcm9jZXNzUG9vbCgpID09ICZwcm9jZXNzUG9vbCAmJiBwcm9jZXNzLnJl
Z2lzdHJhYmxlRG9tYWluKCkgPT0gcmVnaXN0cmFibGVEb21haW4gJiYgJnByb2Nlc3Mud2Vic2l0
ZURhdGFTdG9yZSgpID09ICZkYXRhU3RvcmUgJiYgIXByb2Nlc3MuaXNDcm9zc09yaWdpbklzb2xh
dGVkKCkpCiAgICAgICAgICAgICByZXR1cm4gJnByb2Nlc3M7CiAgICAgfQogICAgIHJldHVybiBu
dWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNjg5
OWUyODkyNzc1Yjg0YTdlNWMwN2ZmNTlkMzExYjdkYmZlNTI5ZS4uZmEyNmE4ZjljY2Y2ZmM3NWM5
NWYzMjM0NjgyYzJhNzkzMmZlY2U0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC01NjE5LDEyICs1NjE5LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNp
ZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1l
CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVu
dGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBi
b29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwKLSAg
ICBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCB1aW50
NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCisgICAgYm9vbCB3YXNB
bGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCBu
ZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2Fk
SWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQogewogICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVm
KCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZpZXIs
IG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxv
YWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBuZWVkc0Jyb3dzaW5nQ29u
dGV4dEdyb3VwU3dpdGNoLCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgbGlzdGVuZXJJRCwg
dXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdlSWRlbnRpZmllciB3
ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJ
bmZvLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9h
ZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRp
ZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9p
ZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBj
YW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2Fz
QWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gg
bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbWFpblJlc291cmNlTG9h
ZElkZW50aWZpZXIsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwog
CkBAIC01NjQ4LDE5ICs1NjQ4LDIxIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAgICAg
IH0pOwogCiAgICAgICAgIGF1dG8gd2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2VzcyA9IFdpbGxD
b250aW51ZUxvYWRJbk5ld1Byb2Nlc3M6Ok5vOwotICAgICAgICBpZiAocG9saWN5QWN0aW9uID09
IFBvbGljeUFjdGlvbjo6VXNlICYmIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggJiYg
bmF2aWdhdGlvbikgewotICAgICAgICAgICAgUmVnaXN0cmFibGVEb21haW4gcmVzcG9uc2VEb21h
aW4geyBuYXZpZ2F0aW9uUmVzcG9uc2UtPnJlc3BvbnNlKCkudXJsKCkgfTsKLSAgICAgICAgICAg
IC8vIEF2b2lkIHByb2Nlc3Mtc3dhcHBpbmcgaW4gY2FzZXMgd2hlcmUgdGhlIHByb2Nlc3Mgb25s
eSBjb250YWlucyBhIHNpbmdsZSBwYWdlIGFuZCBpcyBvcmlnaW4tY2xlYW4uCi0gICAgICAgICAg
ICBpZiAocHJvY2Vzcy0+cGFnZUNvdW50KCkgPiAxIHx8IChwcm9jZXNzLT5vcHRpb25hbFJlZ2lz
dHJhYmxlRG9tYWluKCkgJiYgKnByb2Nlc3MtPm9wdGlvbmFsUmVnaXN0cmFibGVEb21haW4oKSAh
PSByZXNwb25zZURvbWFpbikpIHsKLSAgICAgICAgICAgICAgICBXRUJQQUdFUFJPWFlfUkVMRUFT
RV9MT0coUHJvY2Vzc1N3YXBwaW5nLCAiZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQ6IFBy
b2Nlc3Mtc3dhcHBpbmcgZHVlIHRvIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Iik7Ci0gICAg
ICAgICAgICAgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkucHJlcGFyZUxv
YWRGb3JXZWJQcm9jZXNzVHJhbnNmZXIocHJvY2Vzcy0+Y29yZVByb2Nlc3NJZGVudGlmaWVyKCks
IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1v
dmUocHJvdGVjdGVkVGhpcyksIHJlc3BvbnNlRG9tYWluID0gV1RGTW92ZShyZXNwb25zZURvbWFp
biksIG5hdmlnYXRpb24sIG5hdmlnYXRpb25SZXNwb25zZSA9IFdURk1vdmUobmF2aWdhdGlvblJl
c3BvbnNlKSwgc2VuZGVyID0gV1RGTW92ZShzZW5kZXIpXShhdXRvIGV4aXN0aW5nTmV0d29ya1Jl
c291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGF1dG8gcHJvY2Vzc0Zvck5hdmlnYXRpb24gPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCku
cHJvY2Vzc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHdlYnNpdGVEYXRhU3RvcmUoKSwgdGhpcywgcmVz
cG9uc2VEb21haW4pOwotICAgICAgICAgICAgICAgICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5l
d1Byb2Nlc3MoKm5hdmlnYXRpb24sIG51bGxwdHIsIFdURk1vdmUocHJvY2Vzc0Zvck5hdmlnYXRp
b24pLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OjpObywgU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkOjpZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24sIG51bGxwdHIsIGV4aXN0
aW5nTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSk7Ci0KLSAgICAgICAgICAg
ICAgICAgICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb246Oklnbm9yZSwgbmF2
aWdhdGlvbi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZN
b3ZlKHNlbmRlciksIHsgfSwgV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6WWVzKTsKLSAg
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9
CisgICAgICAgIGlmIChwb2xpY3lBY3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYgbmVlZHNC
cm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCAhPSBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dp
dGNoOjpObyAmJiBuYXZpZ2F0aW9uKSB7CisgICAgICAgICAgICBXRUJQQUdFUFJPWFlfUkVMRUFT
RV9MT0coUHJvY2Vzc1N3YXBwaW5nLCAiZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQ6IFBy
b2Nlc3Mtc3dhcHBpbmcgZHVlIHRvIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Iik7CisgICAg
ICAgICAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5wcmVwYXJlTG9hZEZv
cldlYlByb2Nlc3NUcmFuc2Zlcihwcm9jZXNzLT5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSwgbWFp
blJlc291cmNlTG9hZElkZW50aWZpZXIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShw
cm90ZWN0ZWRUaGlzKSwgbmF2aWdhdGlvbiwgbmF2aWdhdGlvblJlc3BvbnNlID0gV1RGTW92ZShu
YXZpZ2F0aW9uUmVzcG9uc2UpLCBzZW5kZXIgPSBXVEZNb3ZlKHNlbmRlciksIG5lZWRzQnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2hdKGF1dG8gZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRl
bnRpZmllclRvUmVzdW1lKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBSZWZQdHI8V2ViUHJv
Y2Vzc1Byb3h5PiBwcm9jZXNzRm9yTmF2aWdhdGlvbjsKKyAgICAgICAgICAgICAgICBpZiAobmVl
ZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCA9PSBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3Vw
U3dpdGNoOjpZZXNXaXRoQ3Jvc3NPcmlnaW5Jc29sYXRpb24pCisgICAgICAgICAgICAgICAgICAg
IHByb2Nlc3NGb3JOYXZpZ2F0aW9uID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmNyZWF0ZU5l
d1dlYlByb2Nlc3MoJndlYnNpdGVEYXRhU3RvcmUoKSwgV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdh
cm1lZDo6Tm8sIFdlYlByb2Nlc3NQcm94eTo6SXNDcm9zc09yaWdpbklzb2xhdGVkOjpZZXMpOwor
ICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBSZWdpc3RyYWJsZURv
bWFpbiByZXNwb25zZURvbWFpbiB7IG5hdmlnYXRpb25SZXNwb25zZS0+cmVzcG9uc2UoKS51cmwo
KSB9OworICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRm9yTmF2aWdhdGlvbiA9IG1fcHJvY2Vz
cy0+cHJvY2Vzc1Bvb2woKS5wcm9jZXNzRm9yUmVnaXN0cmFibGVEb21haW4od2Vic2l0ZURhdGFT
dG9yZSgpLCB0aGlzLCByZXNwb25zZURvbWFpbik7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcygqbmF2aWdhdGlvbiwgbnVs
bHB0ciwgcHJvY2Vzc0Zvck5hdmlnYXRpb24ucmVsZWFzZU5vbk51bGwoKSwgUHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudDo6Tm8sIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0
ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uLCBudWxscHRyLCBleGlzdGluZ05ldHdvcmtSZXNvdXJj
ZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUpOworCisgICAgICAgICAgICAgICAgcmVjZWl2ZWRQb2xp
Y3lEZWNpc2lvbihQb2xpY3lBY3Rpb246Oklnbm9yZSwgbmF2aWdhdGlvbi5nZXQoKSwgbnVsbHB0
ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKHNlbmRlciksIHsgfSwgV2ls
bENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6WWVzKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICByZWNlaXZlZFBvbGlj
eURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92
ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKHNlbmRlciksIHsgfSwgd2lsbENvbnRpbnVl
TG9hZEluTmV3UHJvY2Vzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmlu
ZGV4IGZmZjg1YjU1MWFmMDM2OTEwZTQxMmVhZDcxMmJlY2MxM2M5MWJmMjYuLjExNTM4Y2EzNmQ1
YmMzYTlmYmYzZDI3YWFmZGYwOWM3NTZhZmRiOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCkBAIC0xNzQyLDcgKzE3NDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRO
YXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBj
b25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsK
ICAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFVSTCYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25B
c3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0
aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm8sIHN0ZDo6b3B0
aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1
aW50NjRfdCBsaXN0ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNo
b3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxv
d2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
LCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJ
RCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNo
b3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxv
d2VkQnlJbmplY3RlZEJ1bmRsZSwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2tTaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFVSTFNj
aGVtZVRhc2tQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNo
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQVBJ
OjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBN
SU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBB
UEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9u
YWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSwgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0
eSk7CiAgICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBz
dGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQsIHN0ZDo6
b3B0aW9uYWw8TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXI+IGV4aXN0aW5nTmV0d29ya1Jl
c291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSA9IHN0ZDo6bnVsbG9wdCk7CkBAIC0yMDYxLDcg
KzIwNjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0
X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZv
clJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKLSAgICAg
ICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2Fk
QXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlm
aWVyLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgICAgICBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1
dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIFdlYkNvcmU6Ok5lZWRzQnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVy
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgdW5hYmxl
VG9JbXBsZW1lbnRQb2xpY3koV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGJlZ2luU2FmZUJy
b3dzaW5nQ2hlY2soY29uc3QgVVJMJiwgYm9vbCwgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgppbmRleCA4MTk2YjExOWE4ZjAyZTdhMDA2MDQwODUwMjhlOTFhZTIzMTg2NTE5Li4wNThi
ZDk1ZmRlMzY2NDBjYmJhMGI2NDI4Y2IxNjIzZGI0YTE0M2RiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMDcsNyArMTA3LDcg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAgIyBQb2xpY3kgbWVz
c2FnZXMKLSAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJpbmcg
ZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wg
bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbWFpblJlc291cmNlTG9h
ZElkZW50aWZpZXIsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCisgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgU3RyaW5nIGRv
d25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBlbnVtOnVp
bnQ4X3QgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCBuZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmln
YXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5n
RnJhbWVJbmZvRGF0YSwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZp
ZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxS
ZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJl
ZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJl
c3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQog
ICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUlu
Zm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNo
ZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZp
Z2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJh
bWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0
OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkg
LT4gKHN0cnVjdCBXZWJLaXQ6OlBvbGljeURlY2lzaW9uIFBvbGljeURlY2lzaW9uKSBTeW5jaHJv
bm91cwogICAgIERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8s
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHN0
cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIGZyYW1lTmFtZSwgdWludDY0
X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAxZjgzZDQwMzI0OWMxZDc4MzZjZDJj
NDRmMmQ4NzZkYzkzMzA0MTMxLi5kZTNjYTE4YTAzOGRkYTY4YjhmODMxMDJhOWQyODhkOTdlN2Qz
MjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC01
OTYsNyArNTk2LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVzb2x2ZVBhdGhzRm9yU2FuZGJv
eEV4dGVuc2lvbnMoKQogICAgIHBsYXRmb3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lv
bnMoKTsKIH0KIAotUmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5l
d1dlYlByb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdG9yZSwgV2ViUHJvY2Vz
c1Byb3h5OjpJc1ByZXdhcm1lZCBpc1ByZXdhcm1lZCkKK1JlZjxXZWJQcm9jZXNzUHJveHk+IFdl
YlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqIHdlYnNp
dGVEYXRhU3RvcmUsIFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQgaXNQcmV3YXJtZWQsIFdl
YlByb2Nlc3NQcm94eTo6SXNDcm9zc09yaWdpbklzb2xhdGVkIGlzQ3Jvc3NPcmlnaW5Jc29sYXRl
ZCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBtX3RjY1ByZWZlcmVuY2VFbmFibGVkID0g
ZG9lc0FwcEhhdmVJVFBFbmFibGVkKCk7CkBAIC02MDQsNyArNjA0LDcgQEAgUmVmPFdlYlByb2Nl
c3NQcm94eT4gV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoV2Vic2l0ZURhdGFT
dG9yZSogd2Vic2kKICAgICAgICAgd2Vic2l0ZURhdGFTdG9yZS0+c2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VuYWJsZWQobV90Y2NQcmVmZXJlbmNlRW5hYmxlZCk7CiAjZW5kaWYKIAotICAgIGF1
dG8gcHJvY2Vzc1Byb3h5ID0gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoKnRoaXMsIHdlYnNpdGVE
YXRhU3RvcmUsIGlzUHJld2FybWVkKTsKKyAgICBhdXRvIHByb2Nlc3NQcm94eSA9IFdlYlByb2Nl
c3NQcm94eTo6Y3JlYXRlKCp0aGlzLCB3ZWJzaXRlRGF0YVN0b3JlLCBpc1ByZXdhcm1lZCwgaXND
cm9zc09yaWdpbklzb2xhdGVkKTsKICAgICBpbml0aWFsaXplTmV3V2ViUHJvY2Vzcyhwcm9jZXNz
UHJveHksIHdlYnNpdGVEYXRhU3RvcmUsIGlzUHJld2FybWVkKTsKICAgICBtX3Byb2Nlc3Nlcy5h
cHBlbmQocHJvY2Vzc1Byb3h5LmNvcHlSZWYoKSk7CiAKQEAgLTEwNTEsNyArMTA1MSw3IEBAIFJl
ZjxXZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQb29sOjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQm
IHBhZ2VDbGllbnQsIFJlZjxBUEk6CiAgICAgICAgIC8vIEluIHRoZSBjb21tb24gY2FzZSwgd2Ug
ZGVsYXkgcHJvY2VzcyBsYXVuY2ggdW50aWwgc29tZXRoaW5nIGlzIGFjdHVhbGx5IGxvYWRlZCBp
biB0aGUgcGFnZS4KICAgICAgICAgcHJvY2VzcyA9IGR1bW15UHJvY2Vzc1Byb3h5KHBhZ2VDb25m
aWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCktPnNlc3Npb25JRCgpKTsKICAgICAgICAgaWYg
KCFwcm9jZXNzKSB7Ci0gICAgICAgICAgICBwcm9jZXNzID0gV2ViUHJvY2Vzc1Byb3h5OjpjcmVh
dGUoKnRoaXMsIHBhZ2VDb25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCksIFdlYlByb2Nl
c3NQcm94eTo6SXNQcmV3YXJtZWQ6Ok5vLCBXZWJQcm9jZXNzUHJveHk6OlNob3VsZExhdW5jaFBy
b2Nlc3M6Ok5vKTsKKyAgICAgICAgICAgIHByb2Nlc3MgPSBXZWJQcm9jZXNzUHJveHk6OmNyZWF0
ZSgqdGhpcywgcGFnZUNvbmZpZ3VyYXRpb24tPndlYnNpdGVEYXRhU3RvcmUoKSwgV2ViUHJvY2Vz
c1Byb3h5OjpJc1ByZXdhcm1lZDo6Tm8sIFdlYlByb2Nlc3NQcm94eTo6SXNDcm9zc09yaWdpbklz
b2xhdGVkOjpObywgV2ViUHJvY2Vzc1Byb3h5OjpTaG91bGRMYXVuY2hQcm9jZXNzOjpObyk7CiAg
ICAgICAgICAgICBtX2R1bW15UHJvY2Vzc1Byb3hpZXMuYWRkKHBhZ2VDb25maWd1cmF0aW9uLT53
ZWJzaXRlRGF0YVN0b3JlKCktPnNlc3Npb25JRCgpLCBtYWtlV2Vha1B0cigqcHJvY2VzcykpOwog
ICAgICAgICAgICAgbV9wcm9jZXNzZXMuYXBwZW5kKCpwcm9jZXNzKTsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggMDUzNTlhN2RkNDExMDU4
MTE4N2QwZjA5N2U1YWZkNjI3MzU1Y2E4YS4uNjNmYWZmOWFkOTQ2MGU2NTMwMjIxNDdiMjViOWIx
NzllYjc0ZjkxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBA
IC01MTQsNiArNTE0LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgY29udGFpbmVyVGVt
cG9yYXJ5RGlyZWN0b3J5KCk7CiAjZW5kaWYKIAorICAgIFJlZjxXZWJQcm9jZXNzUHJveHk+IGNy
ZWF0ZU5ld1dlYlByb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSosIFdlYlByb2Nlc3NQcm94eTo6SXNQ
cmV3YXJtZWQgPSBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkOjpObywgV2ViUHJvY2Vzc1By
b3h5OjpJc0Nyb3NzT3JpZ2luSXNvbGF0ZWQgPSBXZWJQcm9jZXNzUHJveHk6OklzQ3Jvc3NPcmln
aW5Jc29sYXRlZDo6Tm8pOworCiBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXpl
KCk7CiAKQEAgLTUyNCw3ICs1MjYsNiBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPFdlYlByb2Nl
c3NQcm94eT4gdHJ5VGFrZVByZXdhcm1lZFByb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSYpOwogCi0g
ICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gY3JlYXRlTmV3V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0
b3JlKiwgV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1lZCA9IFdlYlByb2Nlc3NQcm94eTo6SXNQ
cmV3YXJtZWQ6Ok5vKTsKICAgICB2b2lkIGluaXRpYWxpemVOZXdXZWJQcm9jZXNzKFdlYlByb2Nl
c3NQcm94eSYsIFdlYnNpdGVEYXRhU3RvcmUqLCBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVk
ID0gV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1lZDo6Tm8pOwogCiAgICAgdm9pZCBoYW5kbGVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIGNvbnN0
IFVzZXJEYXRhJiBtZXNzYWdlQm9keSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcAppbmRleCBkOGU2YzczYWE2ZTlmNTc3YmZiNTdkMmEzMTNiOGNkNmYyNWQy
YmI5Li45MGJkNDcxODJjMDZiYThhOTE4NDZmMDdjYmExYTYzNWU3MzA2NWU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE0Nyw5ICsxNDcsOSBA
QCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Zm9yV2ViUGFnZXNXaXRoT3JpZ2luKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgY29uc3QgU2VjdQogICAgIH0KIH0KIAotUmVmPFdlYlByb2Nlc3NQcm94
eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBX
ZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3JlLCBJc1ByZXdhcm1lZCBpc1ByZXdhcm1l
ZCwgU2hvdWxkTGF1bmNoUHJvY2VzcyBzaG91bGRMYXVuY2hQcm9jZXNzKQorUmVmPFdlYlByb2Nl
c3NQcm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQ
b29sLCBXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3JlLCBJc1ByZXdhcm1lZCBpc1By
ZXdhcm1lZCwgSXNDcm9zc09yaWdpbklzb2xhdGVkIGlzQ3Jvc3NPcmlnaW5Jc29sYXRlZCwgU2hv
dWxkTGF1bmNoUHJvY2VzcyBzaG91bGRMYXVuY2hQcm9jZXNzKQogewotICAgIGF1dG8gcHJveHkg
PSBhZG9wdFJlZigqbmV3IFdlYlByb2Nlc3NQcm94eShwcm9jZXNzUG9vbCwgd2Vic2l0ZURhdGFT
dG9yZSwgaXNQcmV3YXJtZWQpKTsKKyAgICBhdXRvIHByb3h5ID0gYWRvcHRSZWYoKm5ldyBXZWJQ
cm9jZXNzUHJveHkocHJvY2Vzc1Bvb2wsIHdlYnNpdGVEYXRhU3RvcmUsIGlzUHJld2FybWVkLCBp
c0Nyb3NzT3JpZ2luSXNvbGF0ZWQpKTsKICAgICBpZiAoc2hvdWxkTGF1bmNoUHJvY2VzcyA9PSBT
aG91bGRMYXVuY2hQcm9jZXNzOjpZZXMpCiAgICAgICAgIHByb3h5LT5jb25uZWN0KCk7CiAgICAg
cmV0dXJuIHByb3h5OwpAQCAtMTU4LDcgKzE1OCw3IEBAIFJlZjxXZWJQcm9jZXNzUHJveHk+IFdl
YlByb2Nlc3NQcm94eTo6Y3JlYXRlKFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0
CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogUmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJv
Y2Vzc1Byb3h5OjpjcmVhdGVGb3JTZXJ2aWNlV29ya2VycyhXZWJQcm9jZXNzUG9vbCYgcHJvY2Vz
c1Bvb2wsIFJlZ2lzdHJhYmxlRG9tYWluJiYgcmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRh
U3RvcmUmIHdlYnNpdGVEYXRhU3RvcmUpCiB7Ci0gICAgYXV0byBwcm94eSA9IGFkb3B0UmVmKCpu
ZXcgV2ViUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLCAmd2Vic2l0ZURhdGFTdG9yZSwgSXNQcmV3
YXJtZWQ6Ok5vKSk7CisgICAgYXV0byBwcm94eSA9IGFkb3B0UmVmKCpuZXcgV2ViUHJvY2Vzc1By
b3h5KHByb2Nlc3NQb29sLCAmd2Vic2l0ZURhdGFTdG9yZSwgSXNQcmV3YXJtZWQ6Ok5vLCBJc0Ny
b3NzT3JpZ2luSXNvbGF0ZWQ6Ok5vKSk7CiAgICAgcHJveHktPm1fcmVnaXN0cmFibGVEb21haW4g
PSBXVEZNb3ZlKHJlZ2lzdHJhYmxlRG9tYWluKTsKICAgICBwcm94eS0+ZW5hYmxlU2VydmljZVdv
cmtlcnMocHJvY2Vzc1Bvb2wudXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllckZvclNlcnZp
Y2VXb3JrZXJzKCkpOwogICAgIHByb3h5LT5jb25uZWN0KCk7CkBAIC0xOTQsNyArMTk0LDcgQEAg
cHJpdmF0ZToKIH07CiAjZW5kaWYKIAotV2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHko
V2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0
YVN0b3JlLCBJc1ByZXdhcm1lZCBpc1ByZXdhcm1lZCkKK1dlYlByb2Nlc3NQcm94eTo6V2ViUHJv
Y2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9yZSog
d2Vic2l0ZURhdGFTdG9yZSwgSXNQcmV3YXJtZWQgaXNQcmV3YXJtZWQsIElzQ3Jvc3NPcmlnaW5J
c29sYXRlZCBpc0Nyb3NzT3JpZ2luSXNvbGF0ZWQpCiAgICAgOiBBdXhpbGlhcnlQcm9jZXNzUHJv
eHkocHJvY2Vzc1Bvb2wuYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5KCkpCiAgICAgLCBt
X2JhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyKCp0aGlzKQogICAgICwgbV9wcm9jZXNzUG9v
bChwcm9jZXNzUG9vbCwgaXNQcmV3YXJtZWQgPT0gSXNQcmV3YXJtZWQ6OlllcyA/IElzV2Vhazo6
WWVzIDogSXNXZWFrOjpObykKQEAgLTIxMSw2ICsyMTEsNyBAQCBXZWJQcm9jZXNzUHJveHk6Oldl
YlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3Rv
cmUqCiAgICAgLCBtX3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkobWFrZVVuaXF1ZTxVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5PihtYWtlVW5pcXVlUmVmPFVJUHJveHlGb3JDYXB0dXJl
PigqdGhpcykpKQogI2VuZGlmCiAgICAgLCBtX2lzUHJld2FybWVkKGlzUHJld2FybWVkID09IElz
UHJld2FybWVkOjpZZXMpCisgICAgLCBtX2lzQ3Jvc3NPcmlnaW5Jc29sYXRlZChpc0Nyb3NzT3Jp
Z2luSXNvbGF0ZWQgPT0gSXNDcm9zc09yaWdpbklzb2xhdGVkOjpZZXMpCiAgICAgLCBtX3NodXRk
b3duUHJldmVudGluZ1Njb3BlQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50IGV2ZW50KSB7
IGlmIChldmVudCA9PSBSZWZDb3VudGVyRXZlbnQ6OkRlY3JlbWVudCkgbWF5YmVTaHV0RG93bigp
OyB9KQogewogICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZE9yQ2hlY2tEaXNhYmxlZCgp
KTsKQEAgLTExNDYsNiArMTE0NywxMSBAQCBib29sIFdlYlByb2Nlc3NQcm94eTo6Y2FuQmVBZGRl
ZFRvV2ViUHJvY2Vzc0NhY2hlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
IAorICAgIGlmIChtX2lzQ3Jvc3NPcmlnaW5Jc29sYXRlZCkgeworICAgICAgICBXRUJQUk9DRVNT
UFJPWFlfUkVMRUFTRV9MT0coUHJvY2VzcywgImNhbkJlQWRkZWRUb1dlYlByb2Nlc3NDYWNoZTog
Tm90IGFkZGluZyB0byBwcm9jZXNzIGNhY2hlIGJlY2F1c2UgdGhlIHByb2Nlc3MgaXMgY3Jvc3Mt
b3JpZ2luIGlzb2xhdGVkIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICBp
ZiAoV2ViS2l0Ojppc0luc3BlY3RvclByb2Nlc3NQb29sKHByb2Nlc3NQb29sKCkpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmgKaW5kZXggYTQwZTY5ZGZhNTIyZGVkZWJhZmRiNWZjNmI5ZTcxZmNiOWI0YjA1OS4uNjZkNTRl
NDhkZWNlOTk1YmE1ZjBlMjE4YTA0YzhkZGVmM2E4NjJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTEzMyw5ICsxMzMsMTAgQEAgcHVibGljOgogICAg
ICAgICBZZXMKICAgICB9OwogCisgICAgZW51bSBjbGFzcyBJc0Nyb3NzT3JpZ2luSXNvbGF0ZWQg
OiBib29sIHsgTm8sIFllcyB9OwogICAgIGVudW0gY2xhc3MgU2hvdWxkTGF1bmNoUHJvY2VzcyA6
IGJvb2wgeyBObywgWWVzIH07CiAKLSAgICBzdGF0aWMgUmVmPFdlYlByb2Nlc3NQcm94eT4gY3Jl
YXRlKFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVkLCBTaG91
bGRMYXVuY2hQcm9jZXNzID0gU2hvdWxkTGF1bmNoUHJvY2Vzczo6WWVzKTsKKyAgICBzdGF0aWMg
UmVmPFdlYlByb2Nlc3NQcm94eT4gY3JlYXRlKFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFT
dG9yZSosIElzUHJld2FybWVkLCBJc0Nyb3NzT3JpZ2luSXNvbGF0ZWQgPSBJc0Nyb3NzT3JpZ2lu
SXNvbGF0ZWQ6Ok5vLCBTaG91bGRMYXVuY2hQcm9jZXNzID0gU2hvdWxkTGF1bmNoUHJvY2Vzczo6
WWVzKTsKICAgICBzdGF0aWMgUmVmPFdlYlByb2Nlc3NQcm94eT4gY3JlYXRlRm9yU2VydmljZVdv
cmtlcnMoV2ViUHJvY2Vzc1Bvb2wmLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmLCBXZWJz
aXRlRGF0YVN0b3JlJik7CiAKICAgICB+V2ViUHJvY2Vzc1Byb3h5KCk7CkBAIC00MTksOCArNDIw
LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENhcHRpb25MYW5ndWFnZShjb25zdCBTdHJpbmcm
KTsKICNlbmRpZgogCisgICAgYm9vbCBpc0Nyb3NzT3JpZ2luSXNvbGF0ZWQoKSBjb25zdCB7IHJl
dHVybiBtX2lzQ3Jvc3NPcmlnaW5Jc29sYXRlZDsgfQorCiBwcm90ZWN0ZWQ6Ci0gICAgV2ViUHJv
Y2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVk
KTsKKyAgICBXZWJQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmLCBXZWJzaXRlRGF0YVN0b3Jl
KiwgSXNQcmV3YXJtZWQsIElzQ3Jvc3NPcmlnaW5Jc29sYXRlZCk7CiAKICAgICAvLyBBdXhpbGlh
cnlQcm9jZXNzUHJveHkKICAgICBBU0NJSUxpdGVyYWwgcHJvY2Vzc05hbWUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiAiV2ViQ29udGVudCJfczsgfQpAQCAtNDQwLDYgKzQ0Myw3IEBAIHByb3RlY3Rl
ZDoKIAogICAgIGJvb2wgc2hvdWxkQ29uZmlndXJlSlNDRm9yVGVzdGluZygpIGNvbnN0IGZpbmFs
OwogICAgIGJvb2wgaXNKSVRFbmFibGVkKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBzaG91bGRF
bmFibGVTaGFyZWRBcnJheUJ1ZmZlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faXNDcm9zc09y
aWdpbklzb2xhdGVkOyB9CiAKICAgICB2b2lkIHZhbGlkYXRlRnJlZXplclN0YXR1cygpOwogCkBA
IC02MjAsNiArNjI0LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9oYXNDb21taXR0ZWRBbnlQ
cm92aXNpb25hbExvYWRzIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNQcmV3YXJtZWQ7CisgICAg
Ym9vbCBtX2lzQ3Jvc3NPcmlnaW5Jc29sYXRlZCB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKEFUVEFD
SE1FTlRfRUxFTUVOVCkKICAgICBib29sIG1faGFzSXNzdWVkQXR0YWNobWVudEVsZW1lbnRSZWxh
dGVkU2FuZGJveEV4dGVuc2lvbnMgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcAppbmRleCBjMDM2MDlkM2FiOTI0MWJiODEyYTMzNDA5OTgyNDVlZDU4OTBh
NjdjLi4wYzNhMzFlMjg3ZGRiZTkzMzZkYjI4NDE5ZGIzOTU0NjA0NjU0OTVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTgxNyw3ICs4MTcsNyBAQCB2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogICAgIHdlYlBhZ2UtPnNob3coKTsKIH0KIAot
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdy
b3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRv
d25sb2FkQXR0cmlidXRlLCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIG5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikK
IHsKICAgICBhdXRvKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOwogICAgIGlmICghd2ViUGFn
ZSkgewpAQCAtODM4LDcgKzgzOCw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zCiAgICAgV0tC
dW5kbGVQYWdlUG9saWN5QWN0aW9uIHBvbGljeSA9IHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlUG9s
aWN5Q2xpZW50KCkuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uod2ViUGFnZSwgbV9mcmFtZS5wdHIo
KSwgcmVzcG9uc2UsIHJlcXVlc3QsIHVzZXJEYXRhKTsKICAgICAvLyBJZiBhIGJyb3dzaW5nIGNv
bnRleHQgc3dpdGNoIGlzIHJlcXVlc3RlZCwgd2Ugc3RpbGwgbmVlZCB0byBzZW5kIHRoZSBJUEMg
dG8gdGhlIFVJUHJvY2VzcyBpbiBvcmRlciB0byBwcm9jZXNzLXN3YXAgaWYgbmVjZXNzYXJ5LCBl
dmVuIHRob3VnaCB0aGUKICAgICAvLyBpbmplY3RlZCBidW5kbGUgaGFzIGFscmVhZHkgaGFuZGxl
ZCB0aGUgcG9saWN5IGRlY2lzaW9uLgotICAgIGlmIChwb2xpY3kgPT0gV0tCdW5kbGVQYWdlUG9s
aWN5QWN0aW9uVXNlICYmICFuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoKSB7CisgICAg
aWYgKHBvbGljeSA9PSBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb25Vc2UgJiYgbmVlZHNCcm93c2lu
Z0NvbnRleHRHcm91cFN3aXRjaCA9PSBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoOjpO
bykgewogICAgICAgICBXRUJGUkFNRUxPQURFUkNMSUVOVF9SRUxFQVNFX0xPRyhOZXR3b3JrLCAi
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZTogY29udGludWluZyBiZWNhdXNlIGluamVj
dGVkIGJ1bmRsZSBzYXlzIHNvIik7CiAgICAgICAgIGZ1bmN0aW9uKFBvbGljeUFjdGlvbjo6VXNl
LCBpZGVudGlmaWVyKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aAppbmRleCA5NjY2ZDY3Zjg2MjA4ZDliNmM2NGY0MTFkYmQ2M2JmMDE1OTBhNzExLi41MWQ2YzEy
MzhmMjg0Mzc3YTQ3YjRmOTkwYzE5OWE1ZmI1NzgyNWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaApAQCAtMTI5LDcgKzEyOSw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6RnJhbWUq
IGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgV2Vi
Q29yZTo6TmV3RnJhbWVPcGVuZXJQb2xpY3kpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hTaG93
KCkgZmluYWw7CiAgICAgCi0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNl
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYs
IGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6
RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBjb25z
dCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rp
b24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJD
b3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwg
V2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbFBv
bGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAwNTE2Mjcw
MDlhNjZlMTI0YWE5NjM2Mzc4NGE2ZDc0Y2ViMDQzYmY4Li40YzQ3ZDQyNmVhYzk2ZTNjNWRiNWI5
OWZiZTIxZDBjOGM1M2M1ODA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEyNyw3
ICsxMjcsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0ZVBh
Z2UoY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIFdlYkNvcmU6Ok5ld0ZyYW1lT3Bl
bmVyUG9saWN5KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoU2hvdygpIGZpbmFsOwogCi0gICAg
dm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsK
KyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TmVlZHNC
cm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYm
KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9u
KGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBjb25zdCBXVEY6OlN0cmluZyYgZnJhbWVO
YW1lLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5
RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJl
ZGlyZWN0UmVzcG9uc2UsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIFdlYkNvcmU6OlBvbGljeURlY2lz
aW9uTW9kZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBv
bGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBmaW5h
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggMGNmYmVlZTA0NDdkMmUyODU3NzIy
ZmUwYTY2NDE1MTk0MDliMmFmYi4uYWFkZjRlNzAwNGMzOTdmZDZhZmMxZWNmZDBlYzgzZDM3NGY5
MzA1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTg1NSw3ICs4NTUsNyBAQCB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogICAgIFtbd2ViVmlldyBf
VUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlld1Nob3c6d2ViVmlld107CiB9CiAKLXZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQordm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQogewogICAgIFdlYlZp
ZXcgKndlYlZpZXcgPSBnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAKaW5kZXggYzVhZmExMzM3ZGI0ZTJmYjY3Y2VlNDBmMTA0NWYxYzY5
NmFjMjdmNy4uYWYxYzAyOWFhZTUzMzhkMWY0YzRmYWQ2MDBmMGI5MzhjOGY2NDlkMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNTE5LDcgKzUxOSw3IEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygpCiAgICAgICAgIHVpLT53ZWJWaWV3U2hvdyh3
ZWJWaWV3KTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIg
aWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3Vw
U3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBOZWVk
c0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rp
b24pCiB7CiAgICAgV2ViVmlldyogd2ViVmlldyA9IG1fd2ViRnJhbWUtPndlYlZpZXcoKTsKICAg
ICBGcmFtZSogY29yZUZyYW1lID0gY29yZShtX3dlYkZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCmluZGV4IDYxNDY1YzExZmMyNTU3MzI0ODIxNTgxMjU5MjUxOWM1YTYxMWFmZDIuLjU0
NTRmYmJkYjM1OTQ5MTM5NWQ1MWFlMjM4Y2NiMjM3NDg3OGZjZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaApAQCAtOTEsNyArOTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaERp
ZEZpbmlzaExvYWQoKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVhY2hMYXlvdXRN
aWxlc3RvbmUoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4pIG92ZXJyaWRlOwog
Ci0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBv
dmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29y
ZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lG
dW5jdGlvbiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3
V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBjb25zdCBXVEY6OlN0
cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6
OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlv
biYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIFdlYkNv
cmU6OlBvbGljeURlY2lzaW9uTW9kZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogICAgIHZvaWQgY2FuY2Vs
UG9saWN5Q2hlY2soKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA2ZWIwOWU1ODFkZGVmNTg4ODNkM2FjYmVmMDBkNzIwZDRlMDlk
MWRmLi5iMTE5NTBjNjg2NDQ5N2IzZTYxNDlhYTAwOTFmMzg3Yzc1OTE1ZGYwIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMjEtMDgtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBF
bmFibGUgU2hhcmVkQXJyYXlCdWZmZXIgc3VwcG9ydCB3aGVuIENPT1AvQ09FUCBoZWFkZXJzIGFy
ZSB1c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
Mjk1NTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgyMzkxOTQ1PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4g
U2hhcmVkQXJyYXlCdWZmZXIgc3VwcG9ydCBpcyBjdXJyZW50bHkgZm9yY2VmdWxseSBlbmFibGVk
IGJ5CisgICAgICAgIHJ1bi13ZWJraXQtdGVzdHMucHkgc28gaXQgd291bGQgbm90IGJlIHByYWN0
aWNhbCB0byB3cml0ZSBsYXlvdXQgdGVzdHMgZm9yIHRoaXMgYXQKKyAgICAgICAgdGhlIG1vbWVu
dC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3
YXBPbk5hdmlnYXRpb24ubW06CisgICAgICAgICgtW1BTT05TY2hlbWUgYWRkTWFwcGluZ0Zyb21V
UkxTdHJpbmc6dG9EYXRhOndpdGhDT09QVmFsdWU6d2l0aENPRVBWYWx1ZTpdKToKKyAgICAgICAg
KC1bUFNPTlNjaGVtZSB3ZWJWaWV3OnN0YXJ0VVJMU2NoZW1lVGFzazpdKToKKwogMjAyMS0wOC0y
NyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEV4dGVuZCBBUEkg
dGVzdCBjb3ZlcmFnZSB0byBtYWtlIHN1cmUgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZCBpcyBub3Qg
Y2FsbGVkIHVwb24gQ09PUCBwcm9jZXNzIHN3YXAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9u
Lm1tCmluZGV4IGE2M2Y3NDE5ZGRkY2I5MmNiMjMzMmJjNjlmMDEyNTQ1ZmZmODFkZjUuLmM2MzMx
Njc4NTg1MDczZGRlYmRmNDQyNmQyMDNkZmIxZDU2YmI3MjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9u
TmF2aWdhdGlvbi5tbQpAQCAtMjUxLDEzICsyNTEsMTQgQEAgQGludGVyZmFjZSBQU09OU2NoZW1l
IDogTlNPYmplY3QgPFdLVVJMU2NoZW1lSGFuZGxlcj4gewogICAgIEhhc2hNYXA8U3RyaW5nLCBT
dHJpbmc+IF9yZWRpcmVjdHM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJldGFpblB0cjxOU0RhdGE+
PiBfZGF0YU1hcHBpbmdzOwogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IF9jb29wVmFsdWVz
OworICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IF9jb2VwVmFsdWVzOwogICAgIEhhc2hTZXQ8
aWQgPFdLVVJMU2NoZW1lVGFzaz4+IF9ydW5uaW5nVGFza3M7CiAgICAgYm9vbCBfc2hvdWxkUmVz
cG9uZEFzeW5jaHJvbm91c2x5OwogfQogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQnl0ZXM6KGNv
bnN0IGNoYXIqKWJ5dGVzOwogLSAodm9pZClhZGRSZWRpcmVjdEZyb21VUkxTdHJpbmc6KE5TU3Ry
aW5nICopc291cmNlVVJMU3RyaW5nIHRvVVJMU3RyaW5nOihOU1N0cmluZyAqKWRlc3RpbmF0aW9u
VVJMU3RyaW5nOwogLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1
cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhOwotLSAodm9pZClhZGRNYXBwaW5nRnJv
bVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRh
IHdpdGhDT09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1ZTsKKy0gKHZvaWQpYWRkTWFwcGlu
Z0Zyb21VUkxTdHJpbmc6KE5TU3RyaW5nICopdXJsU3RyaW5nIHRvRGF0YTooY29uc3QgY2hhciop
ZGF0YSB3aXRoQ09PUFZhbHVlOihjb25zdCBjaGFyKiljb29wVmFsdWUgd2l0aENPRVBWYWx1ZToo
Y29uc3QgY2hhciopY29lcFZhbHVlOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gUFNPTlNjaGVt
ZQpAQCAtMjc5LDExICsyODAsMTMgQEAgLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzoo
TlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhCiAgICAgX2RhdGFN
YXBwaW5ncy5zZXQodXJsU3RyaW5nLCBbTlNEYXRhIGRhdGFXaXRoQnl0ZXNOb0NvcHk6KHZvaWQq
KWRhdGEgbGVuZ3RoOnN0cmxlbihkYXRhKSBmcmVlV2hlbkRvbmU6Tk9dKTsKIH0KIAotLSAodm9p
ZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihj
b25zdCBjaGFyKilkYXRhIHdpdGhDT09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1ZQorLSAo
dm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRh
Oihjb25zdCBjaGFyKilkYXRhIHdpdGhDT09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1ZSB3
aXRoQ09FUFZhbHVlOihjb25zdCBjaGFyKiljb2VwVmFsdWUKIHsKICAgICBbc2VsZiBhZGRNYXBw
aW5nRnJvbVVSTFN0cmluZzp1cmxTdHJpbmcgdG9EYXRhOmRhdGFdOwogICAgIGlmIChjb29wVmFs
dWUpCiAgICAgICAgIF9jb29wVmFsdWVzLmFkZCh1cmxTdHJpbmcsIGNvb3BWYWx1ZSk7CisgICAg
aWYgKGNvZXBWYWx1ZSkKKyAgICAgICAgX2NvZXBWYWx1ZXMuYWRkKHVybFN0cmluZywgY29lcFZh
bHVlKTsKIH0KIAogLSAodm9pZClzZXRTaG91bGRSZXNwb25kQXN5bmNocm9ub3VzbHk6KEJPT0wp
dmFsdWUKQEAgLTMyNyw2ICszMzAsOSBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgc3RhcnRVUkxTY2hlbWVUYXNrOihpZCA8V0tVUkxTY2hlbWVUYXNrPil0YQogICAgICAg
ICBhdXRvIGNvb3BWYWx1ZSA9IF9jb29wVmFsdWVzLmdldChbZmluYWxVUkwgYWJzb2x1dGVTdHJp
bmddKTsKICAgICAgICAgaWYgKCFjb29wVmFsdWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgW2hl
YWRlckRpY3Rpb25hcnkgc2V0T2JqZWN0OihOU1N0cmluZyAqKWNvb3BWYWx1ZSBmb3JLZXk6QCJD
cm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJdOworICAgICAgICBhdXRvIGNvZXBWYWx1ZSA9IF9j
b2VwVmFsdWVzLmdldChbZmluYWxVUkwgYWJzb2x1dGVTdHJpbmddKTsKKyAgICAgICAgaWYgKCFj
b2VwVmFsdWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgW2hlYWRlckRpY3Rpb25hcnkgc2V0T2Jq
ZWN0OihOU1N0cmluZyAqKWNvZXBWYWx1ZSBmb3JLZXk6QCJDcm9zcy1PcmlnaW4tRW1iZWRkZXIt
UG9saWN5Il07CiAKICAgICAgICAgYXV0byByZXNwb25zZSA9IGFkb3B0TlMoW1tOU0hUVFBVUkxS
ZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6ZmluYWxVUkwuZ2V0KCkgc3RhdHVzQ29kZToyMDAg
SFRUUFZlcnNpb246QCJIVFRQLzEuMSIgaGVhZGVyRmllbGRzOmhlYWRlckRpY3Rpb25hcnldKTsK
ICAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOnJlc3BvbnNlLmdldCgpXTsKQEAgLTcx
OTEsMzYgKzcxOTcsMzkgQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBlbnVtIGNs
YXNzIElzU2FtZU9yaWdpbiA6IGJvb2wgeyBObywgWWVzIH07CiBlbnVtIGNsYXNzIERvU2VydmVy
U2lkZVJlZGlyZWN0IDogYm9vbCB7IE5vLCBZZXMgfTsKLXN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRp
b25DT09QLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBk
b1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQorc3RhdGljIHZvaWQg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFy
KiBzb3VyY2VDT0VQLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPT1AsIGNvbnN0IGNoYXIqIGRl
c3RpbmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKIHsKICAg
ICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24oKTsKICAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wg
YWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdl
dCgpXSk7CisgICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3Vy
Y2VDT09QICYmICFzdHJjbXAoc291cmNlQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgc291cmNlQ09F
UCAmJiAhc3RyY21wKHNvdXJjZUNPRVAsICJyZXF1aXJlLWNvcnAiKTsKKyAgICBib29sIGRlc3Rp
bmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QICYmICFz
dHJjbXAoZGVzdGluYXRpb25DT09QLCAic2FtZS1vcmlnaW4iKSAmJiBkZXN0aW5hdGlvbkNPRVAg
JiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPRVAsICJyZXF1aXJlLWNvcnAiKTsKKyAgICBFWFBFQ1Rf
VFJVRShzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPT0gZGVzdGluYXRpb25TaG91
bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgfHwgZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMp
OwogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNl
dFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZ
RVM7CiAgICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZl
cmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJlc10pIHsKLSAgICAgICAgaWYgKFtmZWF0dXJlLmtl
eSBpc0VxdWFsVG9TdHJpbmc6QCJDcm9zc09yaWdpbk9wZW5lclBvbGljeUVuYWJsZWQiXSkgewor
ICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIkNyb3NzT3JpZ2luT3Bl
bmVyUG9saWN5RW5hYmxlZCJdKQorICAgICAgICAgICAgW1t3ZWJWaWV3Q29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVy
ZV07CisgICAgICAgIGVsc2UgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJDcm9z
c09yaWdpbkVtYmVkZGVyUG9saWN5RW5hYmxlZCJdKQogICAgICAgICAgICAgW1t3ZWJWaWV3Q29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6ZmVhdHVyZV07Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQogICAgIH0KIAog
ICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CiAg
ICAgaWYgKGlzU2FtZU9yaWdpbiA9PSBJc1NhbWVPcmlnaW46OlllcykgewotICAgICAgICBbaGFu
ZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWlu
Lmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuU2FtZU9yaWdpbkNPT1BUZXN0Qnl0ZXMgd2l0aENPT1BW
YWx1ZTpzb3VyY2VDT09QXTsKKyAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJp
bmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlblNh
bWVPcmlnaW5DT09QVGVzdEJ5dGVzIHdpdGhDT09QVmFsdWU6c291cmNlQ09PUCB3aXRoQ09FUFZh
bHVlOnNvdXJjZUNPRVBdOwogICAgICAgICBpZiAoZG9TZXJ2ZXJTaWRlUmVkaXJlY3QgPT0gRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcykgewogICAgICAgICAgICAgW2hhbmRsZXIgYWRkUmVkaXJl
Y3RGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLmh0bWwiIHRvVVJM
U3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwi
XTsKLSAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjov
L3d3dy53ZWJraXQub3JnL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiIHRvRGF0YToicG9wdXAi
IHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QXTsKKyAgICAgICAgICAgIFtoYW5kbGVyIGFk
ZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLWFmdGVy
LXJlZGlyZWN0Lmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25D
T09QIHdpdGhDT0VQVmFsdWU6ZGVzdGluYXRpb25DT0VQXTsKICAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Vi
a2l0Lm9yZy9wb3B1cC5odG1sIiB0b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0
aW9uQ09PUF07CisgICAgICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpA
InBzb246Ly93d3cud2Via2l0Lm9yZy9wb3B1cC5odG1sIiB0b0RhdGE6InBvcHVwIiB3aXRoQ09P
UFZhbHVlOmRlc3RpbmF0aW9uQ09PUCB3aXRoQ09FUFZhbHVlOmRlc3RpbmF0aW9uQ09FUF07CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJw
c29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlbkNyb3NzT3Jp
Z2luQ09PUFRlc3RCeXRlcyB3aXRoQ09PUFZhbHVlOnNvdXJjZUNPT1BdOworICAgICAgICBbaGFu
ZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWlu
Lmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuQ3Jvc3NPcmlnaW5DT09QVGVzdEJ5dGVzIHdpdGhDT09Q
VmFsdWU6c291cmNlQ09PUCB3aXRoQ09FUFZhbHVlOnNvdXJjZUNPRVBdOwogICAgICAgICBpZiAo
ZG9TZXJ2ZXJTaWRlUmVkaXJlY3QgPT0gRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcykgewogICAg
ICAgICAgICAgW2hhbmRsZXIgYWRkUmVkaXJlY3RGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5h
cHBsZS5jb20vcG9wdXAuaHRtbCIgdG9VUkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9w
b3B1cC1hZnRlci1yZWRpcmVjdC5odG1sIl07Ci0gICAgICAgICAgICBbaGFuZGxlciBhZGRNYXBw
aW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL3BvcHVwLWFmdGVyLXJlZGly
ZWN0Lmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QXTsK
KyAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3
dy5hcHBsZS5jb20vcG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0
aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1Agd2l0aENPRVBWYWx1ZTpkZXN0aW5hdGlvbkNPRVBd
OwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJM
U3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAuaHRtbCIgdG9EYXRhOiJwb3B1cCIg
d2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1BdOworICAgICAgICAgICAgW2hhbmRsZXIgYWRk
TWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC5odG1sIiB0
b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9uQ09PUCB3aXRoQ09FUFZhbHVl
OmRlc3RpbmF0aW9uQ09FUF07CiAgICAgfQogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRV
UkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwogCkBA
IC03MjkwLDYgKzcyOTksMjYgQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChj
b25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGkKICAgICAgICAgZmlu
aXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKICAgICB9XTsKICAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7CisgICAgZmluaXNoZWRSdW5uaW5nU2Ny
aXB0ID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic2VsZi5jcm9z
c09yaWdpbklzb2xhdGVkID8gJ2lzb2xhdGVkJyA6ICdub3QtaXNvbGF0ZWQnIiBjb21wbGV0aW9u
SGFuZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIE5TU3Ry
aW5nICpjcm9zc09yaWdpbklzb2xhdGVkID0gKE5TU3RyaW5nICopcmVzdWx0OworICAgICAgICBp
ZiAoc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkKQorICAgICAgICAgICAgRVhQRUNU
X1dLX1NUUkVRKEAiaXNvbGF0ZWQiLCBjcm9zc09yaWdpbklzb2xhdGVkKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAibm90LWlzb2xhdGVkIiwgY3Jvc3NPcmln
aW5Jc29sYXRlZCk7CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CisgICAg
fV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQp
OworICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1
YXRlSmF2YVNjcmlwdDpAInNlbGYuU2hhcmVkQXJyYXlCdWZmZXIgPyAnaGFzLXNhYicgOiAnZG9l
cy1ub3QtaGF2ZS1zYWInIiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJy
b3IgKmVycm9yKSB7CisgICAgICAgIE5TU3RyaW5nICpoYXNTQUIgPSAoTlNTdHJpbmcgKilyZXN1
bHQ7CisgICAgICAgIGlmIChzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQpCisgICAg
ICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJoYXMtc2FiIiwgaGFzU0FCKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiZG9lcy1ub3QtaGF2ZS1zYWIiLCBoYXNT
QUIpOworICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKIAogICAg
IC8vIE9wZW5lZSBzaG91bGQgbm90IGhhdmUgYW4gb3BlbmVyIG9yIGEgbmFtZS4KICAgICBmaW5p
c2hlZFJ1bm5pbmdTY3JpcHQgPSBmYWxzZTsKQEAgLTczMjAsODcgKzczNDksMjM1IEBAIHN0YXRp
YyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29u
c3QgY2hhciogZGVzdGluYXRpCiAgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7
CiAgICAgfV07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdT
Y3JpcHQpOworICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFtjcmVhdGVk
V2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJzZWxmLmNyb3NzT3JpZ2luSXNvbGF0ZWQgPyAn
aXNvbGF0ZWQnIDogJ25vdC1pc29sYXRlZCciIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJl
c3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKmNyb3NzT3JpZ2luSXNv
bGF0ZWQgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlmIChkZXN0aW5hdGlvblNob3Vs
ZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCkKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImlz
b2xhdGVkIiwgY3Jvc3NPcmlnaW5Jc29sYXRlZCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IEVYUEVDVF9XS19TVFJFUShAIm5vdC1pc29sYXRlZCIsIGNyb3NzT3JpZ2luSXNvbGF0ZWQpOwor
ICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKKyAgICBmaW5pc2hl
ZFJ1bm5pbmdTY3JpcHQgPSBmYWxzZTsKKyAgICBbY3JlYXRlZFdlYlZpZXcgZXZhbHVhdGVKYXZh
U2NyaXB0OkAic2VsZi5TaGFyZWRBcnJheUJ1ZmZlciA/ICdoYXMtc2FiJyA6ICdkb2VzLW5vdC1o
YXZlLXNhYiciIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJy
b3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKmhhc1NBQiA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAg
ICAgICAgaWYgKGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkKQorICAgICAg
ICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiaGFzLXNhYiIsIGhhc1NBQik7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImRvZXMtbm90LWhhdmUtc2FiIiwgaGFzU0FC
KTsKKyAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7CiAKICAgICBj
cmVhdGVkV2ViVmlldyA9IG51bGxwdHI7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4y
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInNhbWUtb3Jp
Z2luIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51
bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCit7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAi
dW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpblRvQ09PUFNhbWVPcmlnaW40KQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25l
IiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NP
T1BBbmRDT0VQU2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxw
dHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBu
dWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW4zKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKwor
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1l
T3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJl
cXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxv
dy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVw
MikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNh
bWVPcmlnaW5BbGxvd1BvcHVwMykKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIs
ICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luQWxsb3dQb3B1cCkKK3sKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJyZXF1aXJlLWNv
cnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJzYW1lLW9yaWdpbiIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJz
YW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKK3sKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJz
YW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKK3sKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJz
YW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09F
UFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30K
KworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBT
YW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKK3sKKyAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNl
IHRoZSBkZXN0aW5hdGlvbiBpcyBtaXNzaW5nIENPRVAuCisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKK3sKKyAgICAvLyBTaG91bGQg
c3dhcCBiZWNhdXNlIHRoZSBzb3VyY2UgaXMgbWlzc2luZyBDT0VQLgorICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVp
cmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3Jp
Z2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKIHsKICAg
ICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2ZSBD
T09QPXNhbWUtb3JpZ2luLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKwor
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1l
T3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCit7CisgICAgLy8gV2Ug
ZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1l
LW9yaWdpbiBhbmQgQ09FUD1yZXF1aXJlLWNvcnAuCisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUt
Y29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
bldpdGhvdXRDT09QV2l0aFJlZGlyZWN0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
bnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxw
dHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09P
UFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25l
IiwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2Fm
ZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKK3sK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCit7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAi
dW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwg
bnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25l
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNh
bWVPcmlnaW40KQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwg
InVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1l
T3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJl
cXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdp
bikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJzYW1lLW9y
aWdpbiIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51
bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFu
ZENPRVBTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5k
Q09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVx
dWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBu
dWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIs
IG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykK
K3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIs
ICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1Bv
cHVwNCkKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1w
b3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwog
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNWE2NmQxOTM5NWE3ODllMGE2MjA4
ODY3ZGEzOTQwZmRlYjU4ZTAzNy4uOTJjYzczODhjNDhlNWJlMGQyMWFmNzIzYTMwODUxMDllMjBh
NTAzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIw
MjEtMDgtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBFbmFi
bGUgU2hhcmVkQXJyYXlCdWZmZXIgc3VwcG9ydCB3aGVuIENPT1AvQ09FUCBoZWFkZXJzIGFyZSB1
c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk1
NTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgyMzkxOTQ1PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUgYSBmZXcgd2ViLXBsYXRm
b3JtLXRlc3RzIG5vdyB0aGF0IHdpbmRvdy5jcm9zc09yaWdpbklzb2xhdGVkIHByb3Blcmx5IHJl
dHVybnMKKyAgICAgICAgdHJ1ZSB3aGVuIENPT1ArQ09FUCBhcmUgdXNlZC4KKworICAgICAgICBO
b3RlIHRoYXQgU2hhcmVkQXJyYXlCdWZmZXIgYXJlIGFscmVhZHkgZm9yY2VmdWxseSBlbmFibGVk
IGJ5IHJ1bi13ZWJraXQtdGVzdHMucHkgd2hlbiBydW5uaW5nCisgICAgICAgIHRoZSBsYXlvdXQg
dGVzdHMsIHdoaWNoIGlzIHdoeSB0aGVyZSBhcmUgbm90IG1vcmUgbGF5b3V0IHRlc3QgcmVzdWx0
cyBjaGFuZ2VzLiBBdCBzb21lIHBvaW50LAorICAgICAgICB3ZSBzaG91bGQgc3RvcCBmb3JjZWZ1
bGx5IGVuYWJsaW5nIFNoYXJlZEFycmF5QnVmZmVyIHdoZW4gcnVubmluZyB3ZWItcGxhdGZvcm0t
dGVzdHMgYXQgbGVhc3QsCisgICAgICAgIHNpbmNlIFdQVCB0ZXN0cyBhbHJlYWR5IG1ha2Ugc3Vy
ZSB0byB1c2UgQ09PUCtDT0VQIHdoZW4gdGVzdGluZyBTaGFyZWRBcnJheUJ1ZmZlci4KKworICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvc2VyaWFsaXplLXNoYXJlZGFycmF5
YnVmZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9jcm9zcy1vcmlnaW4taXNv
bGF0ZWQtcGVybWlzc2lvbi5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgIE5vdGUgdGhhdCBz
b21lIHN1YnRlc3RzIGFyZSBmYWlsaW5nIGJlY2F1c2Ugd2UgZG9uJ3Qgc3VwcG9ydCB0aGUgUGVy
bWlzc2lvbnMtUG9saWN5IEhUVFAgaGVhZGVyOgorICAgICAgICAtIGh0dHBzOi8vdzNjLmdpdGh1
Yi5pby93ZWJhcHBzZWMtcGVybWlzc2lvbnMtcG9saWN5LworCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC5odHRwcy1leHBl
Y3RlZC50eHQ6CisKIDIwMjEtMDgtMjcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29t
PgogCiAgICAgICAgIFtDU1MgQ2FzY2FkZSBMYXllcnNdIEluaXRpYWwgc3VwcG9ydApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvc2VyaWFsaXplLXNoYXJlZGFycmF5YnVmZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9z
ZXJpYWxpemUtc2hhcmVkYXJyYXlidWZmZXItdGhyb3dzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRl
eCBhY2MwNDY0NjAzYjEwY2QwOWJkMTdmMDRiMmVmNmRjNDg0MzVkMjM1Li42ZDBiYjY2ZmFmMWM0
YTk2ZjBhYmRiYTk3Zjk2MTVmNmY5ZjMzNzRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJy
YXlidWZmZXItdGhyb3dzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJy
YXlidWZmZXItdGhyb3dzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDUgQEAKIAotRkFJ
TCBJbmRleGVkREI6IEF0dGVtcHRpbmcgdG8gc2VyaWFsaXplIGEgU2hhcmVkQXJyYXlCdWZmZXIg
c2hvdWxkIHRocm93IGFzc2VydF90cnVlOiBUaGUgcGFnZSBpcyBzZXJ2ZWQgd2l0aCBDT09QIGFu
ZCBDT0VQLCBpdCBzaG91bGQgYmUgY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkLiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQorRkFJTCBJbmRleGVkREI6IEF0dGVtcHRpbmcgdG8gc2VyaWFsaXplIGEgU2hh
cmVkQXJyYXlCdWZmZXIgc2hvdWxkIHRocm93IGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAi
KCkgPT4geworICAgICAgICAgICAgcnEgPSBvYmpTdG9yZS5wdXQoe3NhYjogc2FifSwgJ2tleScp
OworICAgICAgICB9IiB0aHJldyBvYmplY3QgIkRhdGFFcnJvcjogRmFpbGVkIHRvIHN0b3JlIHJl
Y29yZCBpbiBhbiBJREJPYmplY3RTdG9yZTogVGhlIG9iamVjdCBzdG9yZSB1c2VzIGluLWxpbmUg
a2V5cyBhbmQgdGhlIGtleSBwYXJhbWV0ZXIgd2FzIHByb3ZpZGVkLiIgdGhhdCBpcyBub3QgYSBE
T01FeGNlcHRpb24gRGF0YUNsb25lRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAw
LCBleHBlY3RlZCAyNQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9jcm9zcy1v
cmlnaW4taXNvbGF0ZWQtcGVybWlzc2lvbi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVk
ZGVyLXBvbGljeS9jcm9zcy1vcmlnaW4taXNvbGF0ZWQtcGVybWlzc2lvbi5odHRwcy1leHBlY3Rl
ZC50eHQKaW5kZXggM2I3NzY2MTMzODk0MDdlZGM0MzgyZDhiODJlNmY3YjBkOWYyZTcyYy4uY2U3
MDkwNDI2ODUyMjA4Y2E1OTEwYzEzZTUzNzVhMjdmMzkxZWYxYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1l
bWJlZGRlci1wb2xpY3kvY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkLXBlcm1pc3Npb24uaHR0cHMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdpbi1pc29sYXRl
ZC1wZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMiBAQAogCi1GQUlM
IGZyYW1lOiBvcmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5l
ZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6
IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKiBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBz
Oi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gc2VsZiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0
cnVlIGJ1dCBnb3QgZmFsc2UKLVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0
Ojk0NDMsIHZhbHVlID0gKFwpCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAu
MTo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZAotUEFTUyBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly8x
MjcuMC4wLjE6OTQ0MywgdmFsdWUgPSAqCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEy
Ny4wLjAuMTo5NDQzLCB2YWx1ZSA9IHNlbGYKLVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8v
MTI3LjAuMC4xOjk0NDMsIHZhbHVlID0gKFwpCitQQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczov
L2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZAorUEFTUyBmcmFtZTogb3JpZ2luID0g
aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MywgdmFsdWUgPSAqCitQQVNTIGZyYW1lOiBvcmlnaW4gPSBo
dHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHNlbGYKK0ZBSUwgZnJhbWU6IG9yaWdpbiA9
IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly8xMjcu
MC4wLjE6OTQ0MywgdmFsdWUgPSB1bmRlZmluZWQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFs
c2UgYnV0IGdvdCB0cnVlCitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5
NDQzLCB2YWx1ZSA9ICogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVl
CitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHNl
bGYgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitGQUlMIGZyYW1l
OiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IChcKSBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKIEZBSUwgZGVkaWNhdGVkIHdvcmtlcjog
c2NoZW1lID0gaHR0cHMsIHZhbHVlID0gdW5kZWZpbmVkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
IHRydWUgYnV0IGdvdCBmYWxzZQogRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBodHRw
cywgdmFsdWUgPSAqIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQog
RkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBodHRwcywgdmFsdWUgPSBzZWxmIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1v
cGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5
L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGI0MzljZGM5NzM1NmZkOTI1MTAwNDcxOWM5
YWRhNGI0NGU0ZDY3YjEuLmRkYzhmYzMxODYxZmQ2NzE5ZjQ3NGU2OWU4NDIxNDYxM2E3MDNiOGYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb2VwLmh0dHBzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jv
c3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTcsNSAr
Nyw1IEBAIFBBU1MgU2FtZS1vcmlnaW4gcG9wdXAgd2l0aCBjb29wIHVuc2FmZS1ub25lIHdpdGhv
dXQgY29lcAogUEFTUyBoaXN0b3JpY2FsOiAic2FtZS1zaXRlIiBwb3B1cCB3aXRoIGNvb3AgdW5z
YWZlLW5vbmUgd2l0aG91dCBjb2VwCiBQQVNTIFNhbWUtb3JpZ2luIHBvcHVwIHdpdGhvdXQgY29l
cAogUEFTUyBoaXN0b3JpY2FsOiAic2FtZS1zaXRlIiBwb3B1cCB3aXRob3V0IGNvZXAKLUZBSUwg
Qm9udXM6IHdpbmRvdy5jcm9zc09yaWdpbklzb2xhdGVkIGFzc2VydF90cnVlOiBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQorUEFTUyBCb251czogd2luZG93LmNyb3NzT3JpZ2luSXNvbGF0ZWQKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436676</attachid>
            <date>2021-08-27 14:43:30 -0700</date>
            <delta_ts>2021-08-27 17:00:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229559-20210827144329.patch</filename>
            <type>text/plain</type>
            <size>92249</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU1MDU2MDRjYmIyNGUy
ZWQ1MGJkZmNiMTI3MGE0NmE1OTI0YWE1OS4uN2JkMjM2MWU2Y2VjNWIwMDc3ZThjZGU0MmE5ZDg0
ZTMwYzJiNGNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA4LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIFNoYXJlZEFycmF5
QnVmZmVyIHN1cHBvcnQgd2hlbiBDT09QL0NPRVAgaGVhZGVycyBhcmUgdXNlZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NTU5CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84MjM5MTk0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNYWtlIHN1cmUgd2luZG93LmNyb3NzT3JpZ2luSXNvbGF0ZWQgcmV0
dXJucyB0cnVlIHdoZW4gQ09PUD1zYW1lLW9yaWdpbiBhbmQKKyAgICAgICAgQ09FUD1yZXF1aXJl
LWNvcnAgYXJlIHVzZWQuIEFsc28gbWFrZSBzdXJlIHRoYXQgY3Jvc3Mtb3JpZ2luLWlzb2xhdGVz
IHBhZ2VzCisgICAgICAgIGFyZSBhbGxvd2VkIHRvIHVzZSBTaGFyZWRBcnJheUJ1ZmZlci4KKwor
ICAgICAgICBDaGFuZ2UgaXMgY292ZXJlZCBieSByZWJhc2VsaW5lZCBsYXlvdXQgdGVzdHMgYW5k
IG5ldyBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6dG9OZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAg
ICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0NvbnRl
bnRQb2xpY3kpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlclR5
cGVzLmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93Ojpjcm9zc09yaWdpbklzb2xhdGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0RP
TVdpbmRvdy5pZGw6CisKIDIwMjEtMDgtMjcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtDU1MgQ2FzY2FkZSBMYXllcnNdIEluaXRpYWwgc3VwcG9ydApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBlM2ZkMjI5MjdmZGJjNjk3MDc3ZGM4M2VlNTc2NzE3YzIyYzA2OWJkLi43Y2E3YzZk
YjJkNDQwMzljZGRmZGY3M2I1YzgxOTY0ZmNlYzg5NWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1
IEBACisyMDIxLTA4LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgRW5hYmxlIFNoYXJlZEFycmF5QnVmZmVyIHN1cHBvcnQgd2hlbiBDT09QL0NPRVAgaGVhZGVy
cyBhcmUgdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5NTU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjM5MTk0NT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHN1cmUgd2luZG93LmNy
b3NzT3JpZ2luSXNvbGF0ZWQgcmV0dXJucyB0cnVlIHdoZW4gQ09PUD1zYW1lLW9yaWdpbiBhbmQK
KyAgICAgICAgQ09FUD1yZXF1aXJlLWNvcnAgYXJlIHVzZWQuIEFsc28gbWFrZSBzdXJlIHRoYXQg
Y3Jvc3Mtb3JpZ2luLWlzb2xhdGVzIHBhZ2VzCisgICAgICAgIGFyZSBhbGxvd2VkIHRvIHVzZSBT
aGFyZWRBcnJheUJ1ZmZlci4KKworICAgICAgICBXaGVuIHRoZSBXZWJQcm9jZXNzIGRldGVybWlu
ZXMgaXQgbmVlZHMgdG8gc3dpdGNoIGJyb3dzaW5nIGNvbnRleHQgZ3JvdXAgaXQKKyAgICAgICAg
bm93IHNlbmRzIGEgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaDo6WWVzV2l0aG91dENy
b3NzT3JpZ2luSXNvbGF0aW9uIC8KKyAgICAgICAgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaDo6WWVzV2l0aENyb3NzT3JpZ2luSXNvbGF0aW9uIGVudW0gdmFsdWUgdG8KKyAgICAgICAg
dGhlIFVJUHJvY2VzcyB3aXRoIHRoZSBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSBJUEMgaW5zdGVh
ZCBvZiBhIHNpbXBsZQorICAgICAgICBib29sZWFuLiBXZSBzZW5kIFllc1dpdGhvdXRDcm9zc09y
aWdpbklzb2xhdGlvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uCisgICAgICAgIGRlc3RpbmF0aW9uIHdp
bGwgYmUgY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkIGR1ZSB0byBDT09QPXNhbWUtb3JpZ2luIGFuZAor
ICAgICAgICBDT0VQPXJlcXVpcmUtY29ycC4gSW4gdGhlIFVJUHJvY2Vzcywgd2hlbiBZZXNXaXRo
Q3Jvc3NPcmlnaW5Jc29sYXRpb24gaXMKKyAgICAgICAgcmVjZWl2ZWQsIHdlIHRha2UgY2FyZSBv
ZiBsYXVuY2hpbmcgYSBmcmVzaCBXZWJQcm9jZXNzIChuZXZlciByZWN5Y2xpbmcgYW4KKyAgICAg
ICAgZXhpc3RpbmcgV2ViUHJvY2VzcykgYW5kIHdlIG1ha2UgdGhpcyBXZWJQcm9jZXNzIGFzIGNy
b3NzLW9yaWdpbi1pc29sYXRlZC4KKyAgICAgICAgV2hlbiBhIHByb2Nlc3MgaXMgY3Jvc3Mtb3Jp
Z2luLWlzb2xhdGVkLCB3ZSBwYXNzIGl0IGEgWFBDIGZsYWcgb24gbGF1bmNoCisgICAgICAgIHRv
IGFsbG93IHRoZSBwcm9jZXNzIHRvIHVzZSBTaGFyZWRBcnJheUJ1ZmZlci4gV2UgdXNlIGFuIFhQ
QyBmbGFnIGJlY2F1c2UKKyAgICAgICAgSlNDIE9wdGlvbnMgbmVlZCB0byBiZSBzZXQgYmVmb3Jl
IEpTQzo6aW5pdGlhbGl6ZSgpIGlzIGNhbGxlZCwgd2hpY2ggb2NjdXJzCisgICAgICAgIGR1cmlu
ZyBYUEMgc2VydmljZSBpbml0aWFsaXphdGlvbi4gV2hlbiBhIFdlYlByb2Nlc3MgaXMgbWFya2Vk
IGFzCisgICAgICAgIGNyb3NzLW9yaWdpbi1pc29sYXRlZCwgd2UgbWFrZSBzdXJlIHRvIG5ldmVy
IGNhY2hlIGl0IHNvIGl0IGNhbm5vdCBiZQorICAgICAgICByZWN5Y2xlZCBmb3IgYSBuZXcgbmF2
aWdhdGlvbiAoZ2l2ZW4gdGhhdCBpdCBoYXMgc3BlY2lhbCBwZXJtaXNzaW9uIHRvIHVzZQorICAg
ICAgICBTaGFyZWRBcnJheUJ1ZmZlcikuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAqIFNoYXJlZC9F
bnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6WFBDU2VydmljZUluaXRpYWxpemVyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmg6CisgICAgICAgIChXZWJLaXQ6OlBy
b2Nlc3NMYXVuY2hlcjo6Q2xpZW50OjpzaG91bGRFbmFibGVTaGFyZWRBcnJheUJ1ZmZlciBjb25z
dCk6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMu
bW06CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3VzcGVuZGVk
UGFnZVByb3h5OjpmaW5kUmV1c2FibGVTdXNwZW5kZWRQYWdlUHJvY2Vzcyk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVXZWJQYWdlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZUZvclNlcnZpY2VXb3JrZXJzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNhbkJlQWRkZWRUb1dlYlByb2Nlc3NDYWNoZSBj
b25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmlzQ3Jvc3NPcmlnaW5Jc29sYXRlZCBjb25zdCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKIDIwMjEtMDgtMjcgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbV0syXSBSZXVzZSB0aGUgc2FtZSBuZXR3b3JrIGxv
YWQgd2hlbiBwcm9jZXNzLXN3YXBwaW5nIG9uIHJlc291cmNlIHJlc3BvbnNlIGR1ZSB0byBDT09Q
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNDVhNTQ4NmUwNTgwNWQ5N2JjMWU0OGI0
NGY5M2RhMzAzMjhhNmExZC4uYWUyNTkxMDk5YTYyZDFhOGVkN2ZlZWRkZmM2ZWZkZjZmZmNjMjU2
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA4
LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIFNo
YXJlZEFycmF5QnVmZmVyIHN1cHBvcnQgd2hlbiBDT09QL0NPRVAgaGVhZGVycyBhcmUgdXNlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NTU5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjM5MTk0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZSk6CisKIDIwMjEtMDgtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2FwcGluZyBiYXNlZCBvbiBD
cm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCmluZGV4IGUyODE1MTAyOThhOGM3MzY0MWRjNDA0OTU2OTdhMmRmNDVhNTEzY2EuLjlj
OTZkNWNkMWM2MzNmN2Q2YzcyMDExZWE3ODIwNTQyMDY1OGI5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wOC0yNyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBTaGFyZWRBcnJheUJ1ZmZlciBzdXBw
b3J0IHdoZW4gQ09PUC9DT0VQIGhlYWRlcnMgYXJlIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTU1OQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vODIzOTE5NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAg
IChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAy
MS0wOC0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJd
IEltcGxlbWVudCBwcm9jZXNzLXN3YXBwaW5nIGJhc2VkIG9uIENyb3NzLU9yaWdpbi1PcGVuZXIt
UG9saWN5IEhUVFAgaGVhZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5jcHAKaW5kZXggYmFlOTExMjJmM2QwMmFjYWYxZjczNjk5YmQzYjY5ZWNhMTQ5MDZh
My4uZDMwMTlkNDhkZjMxNjJkOGQxZGY5ZDMwZmNkZmFlNTI2MDExYzg5NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcApAQCAtODEsNiArODEsOCBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAorc3Rh
dGljIGJvb2wgZ2xvYmFsSXNDcm9zc09yaWdpbklzb2xhdGVkIHsgZmFsc2UgfTsKKwogc3RhdGlj
IExvY2sgYWxsU2NyaXB0RXhlY3V0aW9uQ29udGV4dHNNYXBMb2NrOwogc3RhdGljIEhhc2hNYXA8
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
PiYgYWxsU2NyaXB0RXhlY3V0aW9uQ29udGV4dHNNYXAoKSBXVEZfUkVRVUlSRVNfTE9DSyhhbGxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0c01hcExvY2spCiB7CkBAIC02MjMsNiArNjI1LDE2IEBAIFNl
cnZpY2VXb3JrZXJDb250YWluZXIqIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZVNlcnZp
Y2VXb3JrZXJDb250YWluZXIoKQogCiAjZW5kaWYKIAordm9pZCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjptYXJrQXNDcm9zc09yaWdpbklzb2xhdGVkKCkKK3sKKyAgICBnbG9iYWxJc0Nyb3NzT3Jp
Z2luSXNvbGF0ZWQgPSB0cnVlOworfQorCitib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6Omlz
Q3Jvc3NPcmlnaW5Jc29sYXRlZCgpCit7CisgICAgcmV0dXJuIGdsb2JhbElzQ3Jvc3NPcmlnaW5J
c29sYXRlZDsKK30KKwogYm9vbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0VGFza1RvKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFRhc2smJiB0YXNrKQog
ewogICAgIExvY2tlciBsb2NrZXIgeyBhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcExvY2sg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IGQ0
YmI4ZTE5YWU3OGY3ZTgxYTZjYjYxZmI2ZTU1MjNjMTA0YzRkZGUuLjI2NWIzNDgwNjU0YTZhMDNk
NTAxY2VlZWY3Y2I4OGY2MzY4NWJhZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaApAQCAtMTcyLDYgKzE3Miw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHN0ZDo6dW5pcXVlX3B0cjxGb250TG9hZFJlcXVlc3Q+IGZvbnRMb2FkUmVxdWVzdChTdHJpbmcm
IHVybCwgYm9vbCBpc1NWRywgYm9vbCBpc0luaXRpYXRpbmdFbGVtZW50SW5Vc2VyQWdlbnRTaGFk
b3dUcmVlLCBMb2FkZWRGcm9tT3BhcXVlU291cmNlKTsKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5M
b2FkaW5nRm9udFNvb24oRm9udExvYWRSZXF1ZXN0JikgeyB9CiAKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgdm9pZCBtYXJrQXNDcm9zc09yaWdpbklzb2xhdGVkKCk7CisgICAgc3RhdGljIGJv
b2wgaXNDcm9zc09yaWdpbklzb2xhdGVkKCk7CisKICAgICB2b2lkIHJlZigpIHsgcmVmU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAgICAgdm9pZCBkZXJlZigpIHsgZGVyZWZTY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5j
cHAKaW5kZXggZjYxYTRjZGFlMjVkZjlmYWNmNzgzOTdkNzIyOGNmNDMwYTc3MGM2ZS4uYzI4ZTU3
OGVlMDdkNDBiNDA2MWQ0ZTdkMGZhM2RjYjNlNTBkZGMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC05NDgsNiArOTQ4LDE1IEBAIHZvaWQgRG9jdW1lbnRM
b2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdCBS
ZXNvdXJjZVJlCiAgICAgcmVzcG9uc2VSZWNlaXZlZChyZXNwb25zZSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOwogfQogCitzdGF0aWMgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCB0b05lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2goY29uc3Qgc3RkOjpvcHRpb25hbDxD
cm9zc09yaWdpbk9wZW5lclBvbGljeUVuZm9yY2VtZW50UmVzdWx0PiYgY3VycmVudENvb3BFbmZv
cmNlbWVudFJlc3VsdCkKK3sKKyAgICBpZiAoIWN1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQg
fHwgIWN1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQtPm5lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2gpCisgICAgICAgIHJldHVybiBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
OjpObzsKKyAgICBpZiAoY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdC0+Y3Jvc3NPcmlnaW5P
cGVuZXJQb2xpY3kudmFsdWUgPT0gQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1ZTo6U2FtZU9y
aWdpblBsdXNDT0VQKQorICAgICAgICByZXR1cm4gTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaDo6WWVzV2l0aENyb3NzT3JpZ2luSXNvbGF0aW9uOworICAgIHJldHVybiBOZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoOjpZZXNXaXRob3V0Q3Jvc3NPcmlnaW5Jc29sYXRpb247Cit9
CisKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBBU1NFUlQocmVzcG9uc2UuY2VydGlmaWNhdGVJbmZvKCkpOwpAQCAt
MTA0OCw3ICsxMDU3LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGkKICAgICBpZiAobWFpblJl
c291cmNlTG9hZGVyKQogICAgICAgICBtYWluUmVzb3VyY2VMb2FkZXItPm1hcmtJbkFzeW5jUmVz
cG9uc2VQb2xpY3lDaGVjaygpOwogICAgIGF1dG8gcmVxdWVzdElkZW50aWZpZXIgPSBQb2xpY3lD
aGVja0lkZW50aWZpZXI6OmNyZWF0ZSgpOwotICAgIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRH
cm91cFN3aXRjaCA9IG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdCAmJiBtX2N1cnJlbnRD
b29wRW5mb3JjZW1lbnRSZXN1bHQtPm5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g7Cisg
ICAgYXV0byBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoID0gdG9OZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoKG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdCk7CiAgICAg
ZnJhbWVMb2FkZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5KG1fcmVzcG9uc2UsIHJlcXVlc3RJZGVu
dGlmaWVyLCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtYWluUmVzb3VyY2VMb2FkZXIgPSBXVEZNb3ZlKG1haW5S
ZXNvdXJjZUxvYWRlciksCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyID0gY29tcGxldGlvbkhh
bmRsZXJDYWxsZXIucmVsZWFzZSgpLCByZXF1ZXN0SWRlbnRpZmllcl0gKFBvbGljeUFjdGlvbiBw
b2xpY3ksIFBvbGljeUNoZWNrSWRlbnRpZmllciByZXNwb25zZUlkZW50aWZpZXIpIG11dGFibGUg
ewogICAgICAgICBSRUxFQVNFX0FTU0VSVChyZXNwb25zZUlkZW50aWZpZXIuaXNWYWxpZEZvcihy
ZXF1ZXN0SWRlbnRpZmllcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApp
bmRleCA5NjRlMmRkMTIwNzAzMzFhNjVjYTM0MWFjNzBlNGIyODc0MjAwYTBkLi4yNmM5NjYzOWFm
YWUyNDRjYTAwMDVjZDY4NmQwOTI0ZWMyMGU1MTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcApAQCAtODE2LDcgKzgxNiw3IEBAIHZvaWQgRW1wdHlGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hTaG93KCkKIHsKIH0KIAotdm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYsIGJvb2wsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikKK3ZvaWQgRW1wdHlGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmLCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGlj
eUZ1bmN0aW9uJiYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFt
ZUxvYWRlckNsaWVudC5oCmluZGV4IDEyMGE0YTUyMGJkMWYxMmQ3M2QxNGY2MmVlMGVlNDBiOTg4
NGVhYWIuLjNjYmIzMTBhMmUyYjFhNTlkNTM1NjVmMTE4MzA3YzNhMzdlOTEwMTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtOTYsNyAr
OTYsNyBAQCBwcml2YXRlOgogICAgIEZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYsIE5ld0ZyYW1lT3BlbmVyUG9saWN5KSBmaW5hbDsKICAgICB2b2lkIGRp
c3BhdGNoU2hvdygpIGZpbmFsOwogCi0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJl
c3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlv
biYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGb3Jt
U3RhdGUqLCBjb25zdCBTdHJpbmcmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5
RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIEZvcm1TdGF0ZSos
IFBvbGljeURlY2lzaW9uTW9kZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1
bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDdhYTc2YWM2ZDFlYmVkMDEzZTYw
Yjc3OTY1NDk2ZGI5ZWMzYTk5ZjAuLjZiMDIzNjFhMWI1NjhkMmU0NWQyNDg3MDQ5NzcwZTU4NzQ2
Yjg3YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtNDEzLDcgKzQx
Myw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCiAg
ICAgfQogfQogCi12b2lkIEZyYW1lTG9hZGVyOjpjaGVja0NvbnRlbnRQb2xpY3koY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVy
LCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIENvbnRlbnRQb2xpY3lEZWNp
c2lvbkZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0NvbnRlbnRQ
b2xpY3koY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFBvbGljeUNoZWNrSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIG5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIENvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYg
ZnVuY3Rpb24pCiB7CiAgICAgaWYgKCFhY3RpdmVEb2N1bWVudExvYWRlcigpKSB7CiAgICAgICAg
IC8vIExvYWQgd2FzIGNhbmNlbGxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRl
eCBlNTZjMDhmNzAzNmE1ZGZiNzMzYzJlNWY1Y2VlY2Q4ODQyMmFmNTE5Li43OTg5OGE2NGE0YjZi
ODEyY2NjZTkyZmQwNmM2MDEyMzA0N2IyN2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaApAQCAtMjIwLDcgKzIyMCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RGVmZXJzTG9h
ZGluZyhib29sKTsKIAotICAgIHZvaWQgY2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJik7CisgICAgdm9p
ZCBjaGVja0NvbnRlbnRQb2xpY3koY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIFBvbGljeUNoZWNr
SWRlbnRpZmllciwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGlj
eURlY2lzaW9uRnVuY3Rpb24mJik7CiAKICAgICB2b2lkIGRpZEV4cGxpY2l0T3BlbigpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDM5YmI0MDU0MDlj
NDE3NDc4NWE5MzcyMjgzMDAxODYzYzBhODc3NWQuLjI2ODQzMWE1ZDk1NWMxZWUzMTNmMDIyM2Y3
MDJkOWYxZTRkNTUwMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVu
dC5oCkBAIC0xOTAsNyArMTkwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgRnJhbWUqIGRpc3Bh
dGNoQ3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgTmV3RnJhbWVPcGVuZXJQb2xp
Y3kpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hTaG93KCkgPSAwOwogCi0gICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4
dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
LCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1l
LCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29u
c3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIEZvcm1TdGF0ZSosIFBvbGljeURlY2lzaW9u
TW9kZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAppbmRleCBjNTE1YmFlNGQyMThiMzUyZGZkMjI1MGRh
YjUwODRjNTQzZWI4ODc5Li5jZGQwMTA0MTA2NTk2NzNjNzMyYzliOTNkNzBlNGRmYWU2MDY0NDc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKQEAgLTE2Nyw2ICsx
NjcsMTIgQEAgZW51bSBjbGFzcyBVbmxvYWRFdmVudFBvbGljeSB7CiAgICAgVW5sb2FkQW5kUGFn
ZUhpZGUKIH07CiAKK2VudW0gY2xhc3MgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCA6
IHVpbnQ4X3QgeworICAgIE5vLAorICAgIFllc1dpdGhvdXRDcm9zc09yaWdpbklzb2xhdGlvbiwK
KyAgICBZZXNXaXRoQ3Jvc3NPcmlnaW5Jc29sYXRpb24sCit9OworCiAvLyBQYXNzZWQgdG8gRnJh
bWVMb2FkZXI6OnVybFNlbGVjdGVkKCkgYW5kIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVJZkph
dmFTY3JpcHRVUkwoKQogLy8gdG8gY29udHJvbCB3aGV0aGVyLCBpbiB0aGUgY2FzZSBvZiBhIEph
dmFTY3JpcHQgVVJMLCBleGVjdXRlSWZKYXZhU2NyaXB0VVJMKCkgc2hvdWxkCiAvLyByZXBsYWNl
IHRoZSBkb2N1bWVudC4gSXQgaXMgYSBGSVhNRSB0byBlbGltaW5hdGUgdGhpcyBleHRyYSBwYXJh
bWV0ZXIgZnJvbQpAQCAtMjc2LDYgKzI4MiwxNSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6OlBvbGljeUFjdGlvbj4gewogICAgID47CiB9OwogCit0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g+
IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpOZWVk
c0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLAorICAgICAgICBXZWJDb3JlOjpOZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoOjpObywKKyAgICAgICAgV2ViQ29yZTo6TmVlZHNCcm93c2lu
Z0NvbnRleHRHcm91cFN3aXRjaDo6WWVzV2l0aG91dENyb3NzT3JpZ2luSXNvbGF0aW9uLAorICAg
ICAgICBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoOjpZZXNXaXRoQ3Jv
c3NPcmlnaW5Jc29sYXRpb24KKyAgICA+OworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5PiB7CiAgICAgdXNpbmcg
dmFsdWVzID0gRW51bVZhbHVlczwKICAgICAgICAgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA5YTMyNTVhNjlkMjkx
NjJhMzc2NWZjNDQxMTAwZWIzNDMwNWFhYmE2Li5iZGRkNjc1OWQyNTU2NTYxNTE5NTI5YmU5OGM2
MzEyNThjZWUyMmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xOTIzLDkgKzE5
MjMsOCBAQCBib29sIERPTVdpbmRvdzo6aXNTZWN1cmVDb250ZXh0KCkgY29uc3QKIAogYm9vbCBE
T01XaW5kb3c6OmNyb3NzT3JpZ2luSXNvbGF0ZWQoKSBjb25zdAogewotICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnRlZCB0aGlzLiBUaGlzIHNob3VsZCByZXR1cm4gdHJ1ZSBpZiBDT09QL0NPRVAgYXJl
IHVzZWQgYW5kIHRoZSBwYWdlIGlzIGFsbG93ZWQgdG8gdXNlIEFQSXMKLSAgICAvLyB0aGF0IHJl
cXVpcmUgY3Jvc3Mtb3JpZ2luIGlzb2xhdGlvbiAoZS5nLiBTaGFyZWRBcnJheUJ1ZmZlcikuCi0g
ICAgcmV0dXJuIGZhbHNlOworICAgIEFTU0VSVCghU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6aXND
cm9zc09yaWdpbklzb2xhdGVkKCkgfHwgIWRvY3VtZW50KCkgfHwgZG9jdW1lbnQoKS0+dG9wRG9j
dW1lbnQoKS5jcm9zc09yaWdpbk9wZW5lclBvbGljeSgpLnZhbHVlID09IENyb3NzT3JpZ2luT3Bl
bmVyUG9saWN5VmFsdWU6OlNhbWVPcmlnaW5QbHVzQ09FUCk7CisgICAgcmV0dXJuIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OmlzQ3Jvc3NPcmlnaW5Jc29sYXRlZCgpOwogfQogCiBzdGF0aWMgdm9p
ZCBkaWRBZGRTdG9yYWdlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cmIHdpbmRvdykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmlkbAppbmRleCA0MGY4NzQ3YjFkYWYzZTE0OTA2NTBkMzFmOTY1ZTFkY2Zh
ZTFmNTlhLi4xYmMxMzAxY2ZhMGNmOWJiNDI0ZDVjZjIxNGMwZWJkODQ1MDBmM2FiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC03OSw4ICs3OSw2IEBACiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIE5hdmlnYXRvciBuYXZpZ2F0b3I7CiAgICAgLy8gRklYTUU6IFRoaXMgaXMgc3BlY2lm
aWVkIHRvIGJlIFtTZWN1cmVDb250ZXh0XQogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01BcHBs
aWNhdGlvbkNhY2hlIGFwcGxpY2F0aW9uQ2FjaGU7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCAn
b3JpZ2luSXNvbGF0ZWQnCi0gICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gb3JpZ2lu
SXNvbGF0ZWQ7CiAKICAgICAvLyB1c2VyIHByb21wdHMKICAgICB1bmRlZmluZWQgYWxlcnQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggZjE4
NGMyNDg4ZjVmOTRiZDdlMGM3OGIyOTgyMzJmMjk4Nzc0MWFlNy4uYzI3ZThkZmFjOGMzNmNkNzMw
YTJkMmRjMDk3ZGQ3NjAxYjA3MDVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5jcHAKQEAgLTU4NSw5ICs1ODUsNyBAQCB2b2lkIFdvcmtlckdsb2JhbFNj
b3BlOjpjbGVhckRlY29kZWRTY3JpcHREYXRhKCkKIAogYm9vbCBXb3JrZXJHbG9iYWxTY29wZTo6
Y3Jvc3NPcmlnaW5Jc29sYXRlZCgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudGVk
IHRoaXMuIFRoaXMgc2hvdWxkIHJldHVybiB0cnVlIGlmIENPT1AvQ09FUCBhcmUgdXNlZCBhbmQg
dGhlIHBhZ2UgaXMgYWxsb3dlZCB0byB1c2UgQVBJcwotICAgIC8vIHRoYXQgcmVxdWlyZSBjcm9z
cy1vcmlnaW4gaXNvbGF0aW9uIChlLmcuIFNoYXJlZEFycmF5QnVmZmVyKS4KLSAgICByZXR1cm4g
ZmFsc2U7CisgICAgcmV0dXJuIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmlzQ3Jvc3NPcmlnaW5J
c29sYXRlZCgpOwogfQogCiB2b2lkIFdvcmtlckdsb2JhbFNjb3BlOjp1cGRhdGVTb3VyY2VQcm92
aWRlckJ1ZmZlcnMoY29uc3QgU2NyaXB0QnVmZmVyJiBtYWluU2NyaXB0LCBjb25zdCBIYXNoTWFw
PFVSTCwgU2NyaXB0QnVmZmVyPiYgaW1wb3J0ZWRTY3JpcHRzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZmIyMzQ3ZDVmODljODUxMGZkNzA1YjQyNWE0ZWM1
MjQ1ODRjZTU3YS4uMmYxM2Y0YmY3YWE5YjEyMmU4OTFjMDE2ZjljY2Y5NDBiZTUwZDZjOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC03MTksNiArNzE5LDcg
QEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpNZWRpYUVu
Z2luZVN1cHBvcnRQYXJhbWV0ZXJzJzogWyc8V2ViQ29yZS9NZWRpYVBsYXllci5oPiddLAogICAg
ICAgICAnV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5Jzog
Wyc8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6TW91c2VFdmVudFBvbGljeSc6IFsnPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4nXSwK
KyAgICAgICAgJ1dlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gnOiBbJzxX
ZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok5ldHdvcmtU
cmFuc2FjdGlvbkluZm9ybWF0aW9uJzogWyc8V2ViQ29yZS9OZXR3b3JrTG9hZEluZm9ybWF0aW9u
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YSc6IFsnPFdlYkNv
cmUvUGFzdGVib2FyZC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6UGFzdGVib2FyZEltYWdlJzog
Wyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5
UG9pbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2Ev
WFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCmluZGV4IDkyZTE0ZTRlZGY3MTliMWVj
MDJkZmQ4NTQxODI5NDQyMjNjYzI2YTUuLjBhODEyMWFlNzUwMDUwYjM3MDcxMzI4MTI5YzA3NDY3
NGEzNTk1ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGls
aXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENT
ZXJ2aWNlRW50cnlQb2ludC5oCkBAIC05Miw2ICs5MiwxMSBAQCB2b2lkIFhQQ1NlcnZpY2VJbml0
aWFsaXplcihPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uLCB4cGNfb2Jq
ZWN0XwogICAgICAgICAgICAgSlNDOjpDb25maWc6OmNvbmZpZ3VyZUZvclRlc3RpbmcoKTsKICAg
ICAgICAgaWYgKHhwY19kaWN0aW9uYXJ5X2dldF9ib29sKGluaXRpYWxpemVyTWVzc2FnZSwgImRp
c2FibGUtaml0IikpCiAgICAgICAgICAgICBKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6OnNldEpJ
VEVuYWJsZWQoZmFsc2UpOworICAgICAgICBpZiAoeHBjX2RpY3Rpb25hcnlfZ2V0X2Jvb2woaW5p
dGlhbGl6ZXJNZXNzYWdlLCAiZW5hYmxlLXNoYXJlZC1hcnJheS1idWZmZXIiKSkgeworICAgICAg
ICAgICAgSlNDOjpPcHRpb25zOjppbml0aWFsaXplKCk7CisgICAgICAgICAgICBKU0M6Ok9wdGlv
bnM6OkFsbG93VW5maW5hbGl6ZWRBY2Nlc3NTY29wZSBzY29wZTsKKyAgICAgICAgICAgIEpTQzo6
T3B0aW9uczo6dXNlU2hhcmVkQXJyYXlCdWZmZXIoKSA9IHRydWU7CisgICAgICAgIH0KICAgICB9
CiAKICAgICBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZVR5cGUgZGVsZWdhdGUoV1RGTW92
ZShjb25uZWN0aW9uKSwgaW5pdGlhbGl6ZXJNZXNzYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggYWZmYjU4
YjI5NzQ0ODI5MTE3ZDE3ZDFlMmE2MTQ3ZTIxYmY4YjZhMS4uMjdjYzFlMzZiYTM5M2Q0MGFkZjRh
ZjkyMzYxOTVkMWE2NGYzYzA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTEyMiw2ICsxMjIsNyBAQCB2b2lk
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtZW1vcnlDYWNoZURpc2FibGVkOwogICAgIGVuY29k
ZXIgPDwgYXR0clN0eWxlRW5hYmxlZDsKICAgICBlbmNvZGVyIDw8IHNob3VsZFRocm93RXhjZXB0
aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uOworICAgIGVuY29kZXIgPDwgaXNDcm9z
c09yaWdpbklzb2xhdGVkOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgZW5j
b2RlciA8PCBoYXNJbWFnZVNlcnZpY2VzOwpAQCAtMzg5LDYgKzM5MCw4IEBAIGJvb2wgV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2Vi
UHJvY2Vzc0NyZWF0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBhcmFtZXRlcnMuc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVj
bGFyYXRpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLmlzQ3Jvc3NPcmlnaW5Jc29sYXRlZCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocGFyYW1ldGVycy5oYXNJbWFnZVNlcnZpY2VzKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBkYzZiMjI5N2QyZjhh
ZDlhODI1MWYyMjgyMmQ5ZGFjZDhlYzg5MTZmLi45Yjk4NDA0ODY1ZGYzNDAyNWU4YzEzNjQ0ZTIw
MmI1MDhlOWUzNzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xMzUsNiArMTM1LDcgQEAgc3RydWN0IFdlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wgbWVtb3J5Q2FjaGVEaXNhYmxlZCB7IGZh
bHNlIH07CiAgICAgYm9vbCBhdHRyU3R5bGVFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIHNo
b3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uIHsgdHJ1ZSB9
OworICAgIGJvb2wgaXNDcm9zc09yaWdpbklzb2xhdGVkIHsgZmFsc2UgfTsgLy8gQ3Jvc3Mtb3Jp
Z2luIGlzb2xhdGlvbiB2aWEgQ09PUCtDT0VQIGhlYWRlcnMuCiAKICNpZiBFTkFCTEUoU0VSVklD
RV9DT05UUk9MUykKICAgICBib29sIGhhc0ltYWdlU2VydmljZXMgeyBmYWxzZSB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRl
eCAxMDgxYmEyYTViZmMzNGI5ZmI3M2FmODg1MTI1M2U3OGVhYWViM2M4Li5kMzBmNmQ0OWIwOTJm
Nzk0MTc1ODU2ODUyMWEwNmFhMzBkMmJkYmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaApAQCAtNjEsNiArNjEsNyBAQCBwdWJs
aWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5j
aGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSA9IDA7CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRDb25maWd1cmVKU0NGb3JUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICAgICAgdmlydHVhbCBib29sIGlzSklURW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KKyAgICAgICAgdmlydHVhbCBib29sIHNob3VsZEVuYWJsZVNoYXJlZEFycmF5QnVmZmVy
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAg
dmlydHVhbCBSZWZQdHI8WFBDRXZlbnRIYW5kbGVyPiB4cGNFdmVudEhhbmRsZXIoKSBjb25zdCB7
IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IGY3Nzcz
ZmU2ZGQwMjkyZDJjMzljY2ZmZGMwOGI1MzY5ZTA1MjBlNTIuLmRhYzMxYzNkOWY2NmEwOGIwZTBk
MDY1NmFmZTY3YTViZjg4YWEzYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtMjA1LDYgKzIw
NSw4IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKICAgICAgICAgICAg
IHhwY19kaWN0aW9uYXJ5X3NldF9ib29sKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJjb25maWd1
cmUtanNjLWZvci10ZXN0aW5nIiwgdHJ1ZSk7CiAgICAgICAgIGlmICghbV9jbGllbnQtPmlzSklU
RW5hYmxlZCgpKQogICAgICAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X2Jvb2woYm9vdHN0cmFw
TWVzc2FnZS5nZXQoKSwgImRpc2FibGUtaml0IiwgdHJ1ZSk7CisgICAgICAgIGlmIChtX2NsaWVu
dC0+c2hvdWxkRW5hYmxlU2hhcmVkQXJyYXlCdWZmZXIoKSkKKyAgICAgICAgICAgIHhwY19kaWN0
aW9uYXJ5X3NldF9ib29sKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJlbmFibGUtc2hhcmVkLWFy
cmF5LWJ1ZmZlciIsIHRydWUpOwogICAgIH0KIAogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJp
bmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgIm1lc3NhZ2UtbmFtZSIsICJib290c3RyYXAiKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApp
bmRleCA3NWE2NWM0MzM3MDY1NDc4MDBlNjIwYWQwNWY0NTZjMzYwNDFlZmYzLi4yNjE4YTRiODI2
NDE5MGJhNWM3NTY3YzY0MDI1Yzc2Y2QzODgyMDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCkBAIC0zMzAsNyArMzMwLDcgQEAgdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFz
eW5jKEZyYW1lSWRlbnRpZmllcgogICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uQXN5bmNTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1l
SUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3Zl
KG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgV1RGTW92ZShvcmlnaW5hdGluZ0ZyYW1lSW5mbyksIG9y
aWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1v
dmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgbGlz
dGVuZXJJRCk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
clJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJ
bmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1F
VHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJ
bmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50
NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEm
JiBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2Fu
U2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0Fs
bG93ZWRCeUluamVjdGVkQnVuZGxlLCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIG5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEp
CiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lv
bmFsUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQ
cm94eS5oCmluZGV4IDBhYmVhOWRhNmJiZDIwMTE0ZmY1NGMxYjhkNzFjYWZkYmY3MjM3NjIuLjY0
YTAxOGVkNGI4YzRkYzVkODYxNTdiNjlhM2EyODQ2YzNmOThjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtMTI1LDcgKzEyNSw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBzZW5kTWVzc2FnZShVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYm
LCBPcHRpb25TZXQ8SVBDOjpTZW5kT3B0aW9uPiwgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8Q29t
cGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkRlY29kZXIqKT4sIHVpbnQ2NF90Pj4mJikgZmluYWw7
CiAKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYs
IEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxXZWJQ
YWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxp
c3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5
cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5q
ZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0
X3QgbGlzdGVuZXJJRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0
IFVzZXJEYXRhJik7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1F
VHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJ
bmplY3RlZEJ1bmRsZSwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwg
dWludDY0X3QgbGlzdGVuZXJJRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIs
IGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwm
Jik7CiAgICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRh
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcApp
bmRleCAzYjY4MWU1ZTkxYmJmZTUwOTNlZTg3YzhmNTdmNDlkMmFkYWFhZTQ5Li4yMjE5NzI5NThh
YzA2MTEzODJiN2IyZjdlMzM4NWVlMzA5ZjZmZDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgUmVmUHRyPFdl
YlByb2Nlc3NQcm94eT4gU3VzcGVuZGVkUGFnZVByb3h5OjpmaW5kUmV1c2FibGVTdXNwZW5kZWRQ
YWdlUHJvY2VzcyhXZWIKIHsKICAgICBmb3IgKGF1dG8qIHN1c3BlbmRlZFBhZ2UgOiBhbGxTdXNw
ZW5kZWRQYWdlcygpKSB7CiAgICAgICAgIGF1dG8mIHByb2Nlc3MgPSBzdXNwZW5kZWRQYWdlLT5w
cm9jZXNzKCk7Ci0gICAgICAgIGlmICgmcHJvY2Vzcy5wcm9jZXNzUG9vbCgpID09ICZwcm9jZXNz
UG9vbCAmJiBwcm9jZXNzLnJlZ2lzdHJhYmxlRG9tYWluKCkgPT0gcmVnaXN0cmFibGVEb21haW4g
JiYgJnByb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpID09ICZkYXRhU3RvcmUpCisgICAgICAgIGlm
ICgmcHJvY2Vzcy5wcm9jZXNzUG9vbCgpID09ICZwcm9jZXNzUG9vbCAmJiBwcm9jZXNzLnJlZ2lz
dHJhYmxlRG9tYWluKCkgPT0gcmVnaXN0cmFibGVEb21haW4gJiYgJnByb2Nlc3Mud2Vic2l0ZURh
dGFTdG9yZSgpID09ICZkYXRhU3RvcmUgJiYgIXByb2Nlc3MuaXNDcm9zc09yaWdpbklzb2xhdGVk
KCkpCiAgICAgICAgICAgICByZXR1cm4gJnByb2Nlc3M7CiAgICAgfQogICAgIHJldHVybiBudWxs
cHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNjg5OWUy
ODkyNzc1Yjg0YTdlNWMwN2ZmNTlkMzExYjdkYmZlNTI5ZS4uZmEyNmE4ZjljY2Y2ZmM3NWM5NWYz
MjM0NjgyYzJhNzkzMmZlY2U0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCkBAIC01NjE5LDEyICs1NjE5LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lCiAK
IHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVudGlm
aWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29s
IGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwKLSAgICBi
b29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0
R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCB1aW50NjRf
dCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCisgICAgYm9vbCB3YXNBbGxv
d2VkQnlJbmplY3RlZEJ1bmRsZSwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCBuZWVk
c0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRl
bnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQog
ewogICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCks
IG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZpZXIsIG5h
dmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRB
dHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBuZWVkc0Jyb3dzaW5nQ29udGV4
dEdyb3VwU3dpdGNoLCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgbGlzdGVuZXJJRCwgdXNl
ckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQ
YWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZv
LCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0
dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVudGlm
aWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5T
aG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxs
b3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggbmVl
ZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElk
ZW50aWZpZXIsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
IHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBA
IC01NjQ4LDE5ICs1NjQ4LDIxIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAgICAgIH0p
OwogCiAgICAgICAgIGF1dG8gd2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2VzcyA9IFdpbGxDb250
aW51ZUxvYWRJbk5ld1Byb2Nlc3M6Ok5vOwotICAgICAgICBpZiAocG9saWN5QWN0aW9uID09IFBv
bGljeUFjdGlvbjo6VXNlICYmIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggJiYgbmF2
aWdhdGlvbikgewotICAgICAgICAgICAgUmVnaXN0cmFibGVEb21haW4gcmVzcG9uc2VEb21haW4g
eyBuYXZpZ2F0aW9uUmVzcG9uc2UtPnJlc3BvbnNlKCkudXJsKCkgfTsKLSAgICAgICAgICAgIC8v
IEF2b2lkIHByb2Nlc3Mtc3dhcHBpbmcgaW4gY2FzZXMgd2hlcmUgdGhlIHByb2Nlc3Mgb25seSBj
b250YWlucyBhIHNpbmdsZSBwYWdlIGFuZCBpcyBvcmlnaW4tY2xlYW4uCi0gICAgICAgICAgICBp
ZiAocHJvY2Vzcy0+cGFnZUNvdW50KCkgPiAxIHx8IChwcm9jZXNzLT5vcHRpb25hbFJlZ2lzdHJh
YmxlRG9tYWluKCkgJiYgKnByb2Nlc3MtPm9wdGlvbmFsUmVnaXN0cmFibGVEb21haW4oKSAhPSBy
ZXNwb25zZURvbWFpbikpIHsKLSAgICAgICAgICAgICAgICBXRUJQQUdFUFJPWFlfUkVMRUFTRV9M
T0coUHJvY2Vzc1N3YXBwaW5nLCAiZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQ6IFByb2Nl
c3Mtc3dhcHBpbmcgZHVlIHRvIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Iik7Ci0gICAgICAg
ICAgICAgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkucHJlcGFyZUxvYWRG
b3JXZWJQcm9jZXNzVHJhbnNmZXIocHJvY2Vzcy0+Y29yZVByb2Nlc3NJZGVudGlmaWVyKCksIG1h
aW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUo
cHJvdGVjdGVkVGhpcyksIHJlc3BvbnNlRG9tYWluID0gV1RGTW92ZShyZXNwb25zZURvbWFpbiks
IG5hdmlnYXRpb24sIG5hdmlnYXRpb25SZXNwb25zZSA9IFdURk1vdmUobmF2aWdhdGlvblJlc3Bv
bnNlKSwgc2VuZGVyID0gV1RGTW92ZShzZW5kZXIpXShhdXRvIGV4aXN0aW5nTmV0d29ya1Jlc291
cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgICAg
IGF1dG8gcHJvY2Vzc0Zvck5hdmlnYXRpb24gPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkucHJv
Y2Vzc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHdlYnNpdGVEYXRhU3RvcmUoKSwgdGhpcywgcmVzcG9u
c2VEb21haW4pOwotICAgICAgICAgICAgICAgICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1By
b2Nlc3MoKm5hdmlnYXRpb24sIG51bGxwdHIsIFdURk1vdmUocHJvY2Vzc0Zvck5hdmlnYXRpb24p
LCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OjpObywgU2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkOjpZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24sIG51bGxwdHIsIGV4aXN0aW5n
TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSk7Ci0KLSAgICAgICAgICAgICAg
ICAgICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb246Oklnbm9yZSwgbmF2aWdh
dGlvbi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3Zl
KHNlbmRlciksIHsgfSwgV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6WWVzKTsKLSAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Cisg
ICAgICAgIGlmIChwb2xpY3lBY3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYgbmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCAhPSBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
OjpObyAmJiBuYXZpZ2F0aW9uKSB7CisgICAgICAgICAgICBXRUJQQUdFUFJPWFlfUkVMRUFTRV9M
T0coUHJvY2Vzc1N3YXBwaW5nLCAiZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQ6IFByb2Nl
c3Mtc3dhcHBpbmcgZHVlIHRvIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Iik7CisgICAgICAg
ICAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5wcmVwYXJlTG9hZEZvcldl
YlByb2Nlc3NUcmFuc2Zlcihwcm9jZXNzLT5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSwgbWFpblJl
c291cmNlTG9hZElkZW50aWZpZXIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90
ZWN0ZWRUaGlzKSwgbmF2aWdhdGlvbiwgbmF2aWdhdGlvblJlc3BvbnNlID0gV1RGTW92ZShuYXZp
Z2F0aW9uUmVzcG9uc2UpLCBzZW5kZXIgPSBXVEZNb3ZlKHNlbmRlciksIG5lZWRzQnJvd3NpbmdD
b250ZXh0R3JvdXBTd2l0Y2hdKGF1dG8gZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRp
ZmllclRvUmVzdW1lKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBSZWZQdHI8V2ViUHJvY2Vz
c1Byb3h5PiBwcm9jZXNzRm9yTmF2aWdhdGlvbjsKKyAgICAgICAgICAgICAgICBpZiAobmVlZHNC
cm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCA9PSBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dp
dGNoOjpZZXNXaXRoQ3Jvc3NPcmlnaW5Jc29sYXRpb24pCisgICAgICAgICAgICAgICAgICAgIHBy
b2Nlc3NGb3JOYXZpZ2F0aW9uID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmNyZWF0ZU5ld1dl
YlByb2Nlc3MoJndlYnNpdGVEYXRhU3RvcmUoKSwgV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1l
ZDo6Tm8sIFdlYlByb2Nlc3NQcm94eTo6SXNDcm9zc09yaWdpbklzb2xhdGVkOjpZZXMpOworICAg
ICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBSZWdpc3RyYWJsZURvbWFp
biByZXNwb25zZURvbWFpbiB7IG5hdmlnYXRpb25SZXNwb25zZS0+cmVzcG9uc2UoKS51cmwoKSB9
OworICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRm9yTmF2aWdhdGlvbiA9IG1fcHJvY2Vzcy0+
cHJvY2Vzc1Bvb2woKS5wcm9jZXNzRm9yUmVnaXN0cmFibGVEb21haW4od2Vic2l0ZURhdGFTdG9y
ZSgpLCB0aGlzLCByZXNwb25zZURvbWFpbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcygqbmF2aWdhdGlvbiwgbnVsbHB0
ciwgcHJvY2Vzc0Zvck5hdmlnYXRpb24ucmVsZWFzZU5vbk51bGwoKSwgUHJvY2Vzc1N3YXBSZXF1
ZXN0ZWRCeUNsaWVudDo6Tm8sIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJS
ZXNwb25zZVBvbGljeURlY2lzaW9uLCBudWxscHRyLCBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxv
YWRJZGVudGlmaWVyVG9SZXN1bWUpOworCisgICAgICAgICAgICAgICAgcmVjZWl2ZWRQb2xpY3lE
ZWNpc2lvbihQb2xpY3lBY3Rpb246Oklnbm9yZSwgbmF2aWdhdGlvbi5nZXQoKSwgbnVsbHB0ciwg
V1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKHNlbmRlciksIHsgfSwgV2lsbENv
bnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6WWVzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICByZWNlaXZlZFBvbGljeURl
Y2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShu
YXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKHNlbmRlciksIHsgfSwgd2lsbENvbnRpbnVlTG9h
ZEluTmV3UHJvY2Vzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IGZmZjg1YjU1MWFmMDM2OTEwZTQxMmVhZDcxMmJlY2MxM2M5MWJmMjYuLjExNTM4Y2EzNmQ1YmMz
YTlmYmYzZDI3YWFmZGYwOWM3NTZhZmRiOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC0xNzQyLDcgKzE3NDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWROYXZp
Z2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25z
dCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAg
ICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIFVSTCYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3lu
Y1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYmLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm8sIHN0ZDo6b3B0aW9u
YWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50
NjRfdCBsaXN0ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dN
SU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2Vk
QnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1
aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwg
Y29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dN
SU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2Vk
QnlJbmplY3RlZEJ1bmRsZSwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFVSTFNjaGVt
ZVRhc2tQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQVBJOjpO
YXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1F
VHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6
Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwg
c3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8
V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSwgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7
CiAgICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6
Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQsIHN0ZDo6b3B0
aW9uYWw8TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXI+IGV4aXN0aW5nTmV0d29ya1Jlc291
cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSA9IHN0ZDo6bnVsbG9wdCk7CkBAIC0yMDYxLDcgKzIw
NjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9u
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJl
c3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKLSAgICAgICAg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0
cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVy
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgICAgICBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUs
IGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdD
b250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCB1
aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgdW5hYmxlVG9J
bXBsZW1lbnRQb2xpY3koV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGJlZ2luU2FmZUJyb3dz
aW5nQ2hlY2soY29uc3QgVVJMJiwgYm9vbCwgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5Jik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA4MTk2YjExOWE4ZjAyZTdhMDA2MDQwODUwMjhlOTFhZTIzMTg2NTE5Li4wNThiZDk1
ZmRlMzY2NDBjYmJhMGI2NDI4Y2IxNjIzZGI0YTE0M2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMDcsNyArMTA3LDcgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAgIyBQb2xpY3kgbWVzc2Fn
ZXMKLSAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJpbmcgZG93
bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVl
ZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElk
ZW50aWZpZXIsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEp
CisgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgU3RyaW5nIGRvd25s
b2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBlbnVtOnVpbnQ4
X3QgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCBuZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwg
dWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRp
b25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJh
bWVJbmZvRGF0YSwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXI+
IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1
ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVy
ZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3Bv
bnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogICAg
IERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9E
YXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNr
SWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0
aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJ
bmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpX
ZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkgLT4g
KHN0cnVjdCBXZWJLaXQ6OlBvbGljeURlY2lzaW9uIFBvbGljeURlY2lzaW9uKSBTeW5jaHJvbm91
cwogICAgIERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHN0cnVj
dCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIGZyYW1lTmFtZSwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAxZjgzZDQwMzI0OWMxZDc4MzZjZDJjNDRm
MmQ4NzZkYzkzMzA0MTMxLi5iMzEzZjQ1MTAzNDZjZTA3YjE1MDQxMTI5MGJiNWVkZWQ2NzcxMGZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC01OTYs
NyArNTk2LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4
dGVuc2lvbnMoKQogICAgIHBsYXRmb3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMo
KTsKIH0KIAotUmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dl
YlByb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdG9yZSwgV2ViUHJvY2Vzc1By
b3h5OjpJc1ByZXdhcm1lZCBpc1ByZXdhcm1lZCkKK1JlZjxXZWJQcm9jZXNzUHJveHk+IFdlYlBy
b2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqIHdlYnNpdGVE
YXRhU3RvcmUsIFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQgaXNQcmV3YXJtZWQsIFdlYlBy
b2Nlc3NQcm94eTo6SXNDcm9zc09yaWdpbklzb2xhdGVkIGlzQ3Jvc3NPcmlnaW5Jc29sYXRlZCkK
IHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBtX3RjY1ByZWZlcmVuY2VFbmFibGVkID0gZG9l
c0FwcEhhdmVJVFBFbmFibGVkKCk7CkBAIC02MDQsNyArNjA0LDcgQEAgUmVmPFdlYlByb2Nlc3NQ
cm94eT4gV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoV2Vic2l0ZURhdGFTdG9y
ZSogd2Vic2kKICAgICAgICAgd2Vic2l0ZURhdGFTdG9yZS0+c2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQobV90Y2NQcmVmZXJlbmNlRW5hYmxlZCk7CiAjZW5kaWYKIAotICAgIGF1dG8g
cHJvY2Vzc1Byb3h5ID0gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoKnRoaXMsIHdlYnNpdGVEYXRh
U3RvcmUsIGlzUHJld2FybWVkKTsKKyAgICBhdXRvIHByb2Nlc3NQcm94eSA9IFdlYlByb2Nlc3NQ
cm94eTo6Y3JlYXRlKCp0aGlzLCB3ZWJzaXRlRGF0YVN0b3JlLCBpc1ByZXdhcm1lZCwgaXNDcm9z
c09yaWdpbklzb2xhdGVkKTsKICAgICBpbml0aWFsaXplTmV3V2ViUHJvY2Vzcyhwcm9jZXNzUHJv
eHksIHdlYnNpdGVEYXRhU3RvcmUsIGlzUHJld2FybWVkKTsKICAgICBtX3Byb2Nlc3Nlcy5hcHBl
bmQocHJvY2Vzc1Byb3h5LmNvcHlSZWYoKSk7CiAKQEAgLTgwMyw2ICs4MDMsNyBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjppbml0aWFsaXplTmV3V2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmIHBy
b2Nlc3MsIFdlYnNpdGVEYQogICAgIHBhcmFtZXRlcnMubWVtb3J5Q2FjaGVEaXNhYmxlZCA9IG1f
bWVtb3J5Q2FjaGVEaXNhYmxlZDsKICAgICBwYXJhbWV0ZXJzLmF0dHJTdHlsZUVuYWJsZWQgPSBt
X2NvbmZpZ3VyYXRpb24tPmF0dHJTdHlsZUVuYWJsZWQoKTsKICAgICBwYXJhbWV0ZXJzLnNob3Vs
ZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uID0gbV9jb25maWd1
cmF0aW9uLT5zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlv
bigpOworICAgIHBhcmFtZXRlcnMuaXNDcm9zc09yaWdpbklzb2xhdGVkID0gcHJvY2Vzcy5pc0Ny
b3NzT3JpZ2luSXNvbGF0ZWQoKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAg
IGF1dG8mIHNlcnZpY2VDb250cm9sbGVyID0gU2VydmljZXNDb250cm9sbGVyOjpzaW5nbGV0b24o
KTsKQEAgLTEwNTEsNyArMTA1Miw3IEBAIFJlZjxXZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQb29s
OjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFJlZjxBUEk6CiAgICAgICAg
IC8vIEluIHRoZSBjb21tb24gY2FzZSwgd2UgZGVsYXkgcHJvY2VzcyBsYXVuY2ggdW50aWwgc29t
ZXRoaW5nIGlzIGFjdHVhbGx5IGxvYWRlZCBpbiB0aGUgcGFnZS4KICAgICAgICAgcHJvY2VzcyA9
IGR1bW15UHJvY2Vzc1Byb3h5KHBhZ2VDb25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCkt
PnNlc3Npb25JRCgpKTsKICAgICAgICAgaWYgKCFwcm9jZXNzKSB7Ci0gICAgICAgICAgICBwcm9j
ZXNzID0gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoKnRoaXMsIHBhZ2VDb25maWd1cmF0aW9uLT53
ZWJzaXRlRGF0YVN0b3JlKCksIFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQ6Ok5vLCBXZWJQ
cm9jZXNzUHJveHk6OlNob3VsZExhdW5jaFByb2Nlc3M6Ok5vKTsKKyAgICAgICAgICAgIHByb2Nl
c3MgPSBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZSgqdGhpcywgcGFnZUNvbmZpZ3VyYXRpb24tPndl
YnNpdGVEYXRhU3RvcmUoKSwgV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1lZDo6Tm8sIFdlYlBy
b2Nlc3NQcm94eTo6SXNDcm9zc09yaWdpbklzb2xhdGVkOjpObywgV2ViUHJvY2Vzc1Byb3h5OjpT
aG91bGRMYXVuY2hQcm9jZXNzOjpObyk7CiAgICAgICAgICAgICBtX2R1bW15UHJvY2Vzc1Byb3hp
ZXMuYWRkKHBhZ2VDb25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCktPnNlc3Npb25JRCgp
LCBtYWtlV2Vha1B0cigqcHJvY2VzcykpOwogICAgICAgICAgICAgbV9wcm9jZXNzZXMuYXBwZW5k
KCpwcm9jZXNzKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmgKaW5kZXggMDUzNTlhN2RkNDExMDU4MTE4N2QwZjA5N2U1YWZkNjI3MzU1Y2E4YS4uNjNm
YWZmOWFkOTQ2MGU2NTMwMjIxNDdiMjViOWIxNzllYjc0ZjkxOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC01MTQsNiArNTE0LDggQEAgcHVibGljOgogICAg
IHN0YXRpYyBTdHJpbmcgY29udGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5KCk7CiAjZW5kaWYKIAor
ICAgIFJlZjxXZWJQcm9jZXNzUHJveHk+IGNyZWF0ZU5ld1dlYlByb2Nlc3MoV2Vic2l0ZURhdGFT
dG9yZSosIFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQgPSBXZWJQcm9jZXNzUHJveHk6Oklz
UHJld2FybWVkOjpObywgV2ViUHJvY2Vzc1Byb3h5OjpJc0Nyb3NzT3JpZ2luSXNvbGF0ZWQgPSBX
ZWJQcm9jZXNzUHJveHk6OklzQ3Jvc3NPcmlnaW5Jc29sYXRlZDo6Tm8pOworCiBwcml2YXRlOgog
ICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAKQEAgLTUyNCw3ICs1MjYsNiBAQCBwcml2
YXRlOgogCiAgICAgUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gdHJ5VGFrZVByZXdhcm1lZFByb2Nl
c3MoV2Vic2l0ZURhdGFTdG9yZSYpOwogCi0gICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gY3JlYXRl
TmV3V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiwgV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdh
cm1lZCA9IFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQ6Ok5vKTsKICAgICB2b2lkIGluaXRp
YWxpemVOZXdXZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYsIFdlYnNpdGVEYXRhU3RvcmUqLCBX
ZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkID0gV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1l
ZDo6Tm8pOwogCiAgICAgdm9pZCBoYW5kbGVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZU5hbWUsIGNvbnN0IFVzZXJEYXRhJiBtZXNzYWdlQm9keSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBkOGU2YzczYWE2
ZTlmNTc3YmZiNTdkMmEzMTNiOGNkNmYyNWQyYmI5Li45MGJkNDcxODJjMDZiYThhOTE4NDZmMDdj
YmExYTYzNWU3MzA2NWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKQEAgLTE0Nyw5ICsxNDcsOSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Zm9yV2Vi
UGFnZXNXaXRoT3JpZ2luKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU2VjdQogICAg
IH0KIH0KIAotUmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoV2Vi
UHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0
b3JlLCBJc1ByZXdhcm1lZCBpc1ByZXdhcm1lZCwgU2hvdWxkTGF1bmNoUHJvY2VzcyBzaG91bGRM
YXVuY2hQcm9jZXNzKQorUmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVh
dGUoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRl
RGF0YVN0b3JlLCBJc1ByZXdhcm1lZCBpc1ByZXdhcm1lZCwgSXNDcm9zc09yaWdpbklzb2xhdGVk
IGlzQ3Jvc3NPcmlnaW5Jc29sYXRlZCwgU2hvdWxkTGF1bmNoUHJvY2VzcyBzaG91bGRMYXVuY2hQ
cm9jZXNzKQogewotICAgIGF1dG8gcHJveHkgPSBhZG9wdFJlZigqbmV3IFdlYlByb2Nlc3NQcm94
eShwcm9jZXNzUG9vbCwgd2Vic2l0ZURhdGFTdG9yZSwgaXNQcmV3YXJtZWQpKTsKKyAgICBhdXRv
IHByb3h5ID0gYWRvcHRSZWYoKm5ldyBXZWJQcm9jZXNzUHJveHkocHJvY2Vzc1Bvb2wsIHdlYnNp
dGVEYXRhU3RvcmUsIGlzUHJld2FybWVkLCBpc0Nyb3NzT3JpZ2luSXNvbGF0ZWQpKTsKICAgICBp
ZiAoc2hvdWxkTGF1bmNoUHJvY2VzcyA9PSBTaG91bGRMYXVuY2hQcm9jZXNzOjpZZXMpCiAgICAg
ICAgIHByb3h5LT5jb25uZWN0KCk7CiAgICAgcmV0dXJuIHByb3h5OwpAQCAtMTU4LDcgKzE1OCw3
IEBAIFJlZjxXZWJQcm9jZXNzUHJveHk+IFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlKFdlYlByb2Nl
c3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQog
UmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVGb3JTZXJ2aWNlV29y
a2VycyhXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFJlZ2lzdHJhYmxlRG9tYWluJiYgcmVn
aXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhU3RvcmUmIHdlYnNpdGVEYXRhU3RvcmUpCiB7Ci0g
ICAgYXV0byBwcm94eSA9IGFkb3B0UmVmKCpuZXcgV2ViUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29s
LCAmd2Vic2l0ZURhdGFTdG9yZSwgSXNQcmV3YXJtZWQ6Ok5vKSk7CisgICAgYXV0byBwcm94eSA9
IGFkb3B0UmVmKCpuZXcgV2ViUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLCAmd2Vic2l0ZURhdGFT
dG9yZSwgSXNQcmV3YXJtZWQ6Ok5vLCBJc0Nyb3NzT3JpZ2luSXNvbGF0ZWQ6Ok5vKSk7CiAgICAg
cHJveHktPm1fcmVnaXN0cmFibGVEb21haW4gPSBXVEZNb3ZlKHJlZ2lzdHJhYmxlRG9tYWluKTsK
ICAgICBwcm94eS0+ZW5hYmxlU2VydmljZVdvcmtlcnMocHJvY2Vzc1Bvb2wudXNlckNvbnRlbnRD
b250cm9sbGVySWRlbnRpZmllckZvclNlcnZpY2VXb3JrZXJzKCkpOwogICAgIHByb3h5LT5jb25u
ZWN0KCk7CkBAIC0xOTQsNyArMTk0LDcgQEAgcHJpdmF0ZToKIH07CiAjZW5kaWYKIAotV2ViUHJv
Y2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBX
ZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3JlLCBJc1ByZXdhcm1lZCBpc1ByZXdhcm1l
ZCkKK1dlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9j
ZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdG9yZSwgSXNQcmV3YXJtZWQg
aXNQcmV3YXJtZWQsIElzQ3Jvc3NPcmlnaW5Jc29sYXRlZCBpc0Nyb3NzT3JpZ2luSXNvbGF0ZWQp
CiAgICAgOiBBdXhpbGlhcnlQcm9jZXNzUHJveHkocHJvY2Vzc1Bvb2wuYWx3YXlzUnVuc0F0QmFj
a2dyb3VuZFByaW9yaXR5KCkpCiAgICAgLCBtX2JhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVy
KCp0aGlzKQogICAgICwgbV9wcm9jZXNzUG9vbChwcm9jZXNzUG9vbCwgaXNQcmV3YXJtZWQgPT0g
SXNQcmV3YXJtZWQ6OlllcyA/IElzV2Vhazo6WWVzIDogSXNXZWFrOjpObykKQEAgLTIxMSw2ICsy
MTEsNyBAQCBXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYg
cHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqCiAgICAgLCBtX3VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkobWFrZVVuaXF1ZTxVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5PihtYWtl
VW5pcXVlUmVmPFVJUHJveHlGb3JDYXB0dXJlPigqdGhpcykpKQogI2VuZGlmCiAgICAgLCBtX2lz
UHJld2FybWVkKGlzUHJld2FybWVkID09IElzUHJld2FybWVkOjpZZXMpCisgICAgLCBtX2lzQ3Jv
c3NPcmlnaW5Jc29sYXRlZChpc0Nyb3NzT3JpZ2luSXNvbGF0ZWQgPT0gSXNDcm9zc09yaWdpbklz
b2xhdGVkOjpZZXMpCiAgICAgLCBtX3NodXRkb3duUHJldmVudGluZ1Njb3BlQ291bnRlcihbdGhp
c10oUmVmQ291bnRlckV2ZW50IGV2ZW50KSB7IGlmIChldmVudCA9PSBSZWZDb3VudGVyRXZlbnQ6
OkRlY3JlbWVudCkgbWF5YmVTaHV0RG93bigpOyB9KQogewogICAgIFJFTEVBU0VfQVNTRVJUKGlz
TWFpblRocmVhZE9yQ2hlY2tEaXNhYmxlZCgpKTsKQEAgLTExNDYsNiArMTE0NywxMSBAQCBib29s
IFdlYlByb2Nlc3NQcm94eTo6Y2FuQmVBZGRlZFRvV2ViUHJvY2Vzc0NhY2hlKCkgY29uc3QKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAorICAgIGlmIChtX2lzQ3Jvc3NPcmlnaW5Jc29s
YXRlZCkgeworICAgICAgICBXRUJQUk9DRVNTUFJPWFlfUkVMRUFTRV9MT0coUHJvY2VzcywgImNh
bkJlQWRkZWRUb1dlYlByb2Nlc3NDYWNoZTogTm90IGFkZGluZyB0byBwcm9jZXNzIGNhY2hlIGJl
Y2F1c2UgdGhlIHByb2Nlc3MgaXMgY3Jvc3Mtb3JpZ2luIGlzb2xhdGVkIik7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisKICAgICBpZiAoV2ViS2l0Ojppc0luc3BlY3RvclByb2Nlc3NQ
b29sKHByb2Nlc3NQb29sKCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggYTQwZTY5ZGZhNTIyZGVkZWJhZmRi
NWZjNmI5ZTcxZmNiOWI0YjA1OS4uNjZkNTRlNDhkZWNlOTk1YmE1ZjBlMjE4YTA0YzhkZGVmM2E4
NjJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTEz
Myw5ICsxMzMsMTAgQEAgcHVibGljOgogICAgICAgICBZZXMKICAgICB9OwogCisgICAgZW51bSBj
bGFzcyBJc0Nyb3NzT3JpZ2luSXNvbGF0ZWQgOiBib29sIHsgTm8sIFllcyB9OwogICAgIGVudW0g
Y2xhc3MgU2hvdWxkTGF1bmNoUHJvY2VzcyA6IGJvb2wgeyBObywgWWVzIH07CiAKLSAgICBzdGF0
aWMgUmVmPFdlYlByb2Nlc3NQcm94eT4gY3JlYXRlKFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURh
dGFTdG9yZSosIElzUHJld2FybWVkLCBTaG91bGRMYXVuY2hQcm9jZXNzID0gU2hvdWxkTGF1bmNo
UHJvY2Vzczo6WWVzKTsKKyAgICBzdGF0aWMgUmVmPFdlYlByb2Nlc3NQcm94eT4gY3JlYXRlKFdl
YlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVkLCBJc0Nyb3NzT3Jp
Z2luSXNvbGF0ZWQgPSBJc0Nyb3NzT3JpZ2luSXNvbGF0ZWQ6Ok5vLCBTaG91bGRMYXVuY2hQcm9j
ZXNzID0gU2hvdWxkTGF1bmNoUHJvY2Vzczo6WWVzKTsKICAgICBzdGF0aWMgUmVmPFdlYlByb2Nl
c3NQcm94eT4gY3JlYXRlRm9yU2VydmljZVdvcmtlcnMoV2ViUHJvY2Vzc1Bvb2wmLCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiYmLCBXZWJzaXRlRGF0YVN0b3JlJik7CiAKICAgICB+V2ViUHJv
Y2Vzc1Byb3h5KCk7CkBAIC00MTksOCArNDIwLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENh
cHRpb25MYW5ndWFnZShjb25zdCBTdHJpbmcmKTsKICNlbmRpZgogCisgICAgYm9vbCBpc0Nyb3Nz
T3JpZ2luSXNvbGF0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQ3Jvc3NPcmlnaW5Jc29sYXRlZDsg
fQorCiBwcm90ZWN0ZWQ6Ci0gICAgV2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vi
c2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVkKTsKKyAgICBXZWJQcm9jZXNzUHJveHkoV2ViUHJv
Y2Vzc1Bvb2wmLCBXZWJzaXRlRGF0YVN0b3JlKiwgSXNQcmV3YXJtZWQsIElzQ3Jvc3NPcmlnaW5J
c29sYXRlZCk7CiAKICAgICAvLyBBdXhpbGlhcnlQcm9jZXNzUHJveHkKICAgICBBU0NJSUxpdGVy
YWwgcHJvY2Vzc05hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiV2ViQ29udGVudCJfczsgfQpA
QCAtNDQwLDYgKzQ0Myw3IEBAIHByb3RlY3RlZDoKIAogICAgIGJvb2wgc2hvdWxkQ29uZmlndXJl
SlNDRm9yVGVzdGluZygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaXNKSVRFbmFibGVkKCkgY29u
c3QgZmluYWw7CisgICAgYm9vbCBzaG91bGRFbmFibGVTaGFyZWRBcnJheUJ1ZmZlcigpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1faXNDcm9zc09yaWdpbklzb2xhdGVkOyB9CiAKICAgICB2b2lkIHZh
bGlkYXRlRnJlZXplclN0YXR1cygpOwogCkBAIC02MjAsNiArNjI0LDcgQEAgcHJpdmF0ZToKIAog
ICAgIGJvb2wgbV9oYXNDb21taXR0ZWRBbnlQcm92aXNpb25hbExvYWRzIHsgZmFsc2UgfTsKICAg
ICBib29sIG1faXNQcmV3YXJtZWQ7CisgICAgYm9vbCBtX2lzQ3Jvc3NPcmlnaW5Jc29sYXRlZCB7
IGZhbHNlIH07CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBib29sIG1faGFz
SXNzdWVkQXR0YWNobWVudEVsZW1lbnRSZWxhdGVkU2FuZGJveEV4dGVuc2lvbnMgeyBmYWxzZSB9
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBjMDM2MDlkM2Fi
OTI0MWJiODEyYTMzNDA5OTgyNDVlZDU4OTBhNjdjLi4wYzNhMzFlMjg3ZGRiZTkzMzZkYjI4NDE5
ZGIzOTU0NjA0NjU0OTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTgx
Nyw3ICs4MTcsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQog
ICAgIHdlYlBhZ2UtPnNob3coKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwg
Ym9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9u
JiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBv
bGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBOZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1l
UG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBhdXRvKiB3ZWJQYWdlID0gbV9mcmFt
ZS0+cGFnZSgpOwogICAgIGlmICghd2ViUGFnZSkgewpAQCAtODM4LDcgKzgzOCw3IEBAIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29u
c3QgUmVzb3VyY2VSZXNwb25zCiAgICAgV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uIHBvbGljeSA9
IHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlUG9saWN5Q2xpZW50KCkuZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2Uod2ViUGFnZSwgbV9mcmFtZS5wdHIoKSwgcmVzcG9uc2UsIHJlcXVlc3QsIHVzZXJEYXRh
KTsKICAgICAvLyBJZiBhIGJyb3dzaW5nIGNvbnRleHQgc3dpdGNoIGlzIHJlcXVlc3RlZCwgd2Ug
c3RpbGwgbmVlZCB0byBzZW5kIHRoZSBJUEMgdG8gdGhlIFVJUHJvY2VzcyBpbiBvcmRlciB0byBw
cm9jZXNzLXN3YXAgaWYgbmVjZXNzYXJ5LCBldmVuIHRob3VnaCB0aGUKICAgICAvLyBpbmplY3Rl
ZCBidW5kbGUgaGFzIGFscmVhZHkgaGFuZGxlZCB0aGUgcG9saWN5IGRlY2lzaW9uLgotICAgIGlm
IChwb2xpY3kgPT0gV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uVXNlICYmICFuZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoKSB7CisgICAgaWYgKHBvbGljeSA9PSBXS0J1bmRsZVBhZ2VQb2xp
Y3lBY3Rpb25Vc2UgJiYgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCA9PSBOZWVkc0Jy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoOjpObykgewogICAgICAgICBXRUJGUkFNRUxPQURFUkNM
SUVOVF9SRUxFQVNFX0xPRyhOZXR3b3JrLCAiZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZTogY29udGludWluZyBiZWNhdXNlIGluamVjdGVkIGJ1bmRsZSBzYXlzIHNvIik7CiAgICAgICAg
IGZ1bmN0aW9uKFBvbGljeUFjdGlvbjo6VXNlLCBpZGVudGlmaWVyKTsKICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA5NjY2ZDY3Zjg2MjA4ZDliNmM2NGY0
MTFkYmQ2M2JmMDE1OTBhNzExLi41MWQ2YzEyMzhmMjg0Mzc3YTQ3YjRmOTkwYzE5OWE1ZmI1Nzgy
NWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTI5LDcgKzEyOSw3IEBAIHBy
aXZhdGU6CiAgICAgV2ViQ29yZTo6RnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBXZWJD
b3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgV2ViQ29yZTo6TmV3RnJhbWVPcGVuZXJQb2xpY3kpIGZp
bmFsOwogICAgIHZvaWQgZGlzcGF0Y2hTaG93KCkgZmluYWw7CiAgICAgCi0gICAgdm9pZCBkaXNw
YXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsK
ICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdl
YkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZp
bmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNv
bnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNl
LCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYm
KSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMjcyYjU0N2ZlZDM1OWZjZDI3ZTZiYmRm
NzY1OTE0YzNhYjkzYmI4OS4uNjJkMmQxNDMzOTA5N2JkZDQ2YjU2MGRmNGM3M2JmNDRlYTZhZDY4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTI5LDYgKzEy
OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NldHRpbmdzLmg+CkBAIC01MjMsNiArNTI0LDkgQEAgdm9pZCBXZWJQcm9jZXNzOjpp
bml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1l
dGVycykKICAgICAKICAgICBjb21tb25WTSgpLnNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNo
b3VsZFRocm93KHBhcmFtZXRlcnMuc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFu
dFJlZGVjbGFyYXRpb24pOwogCisgICAgaWYgKHBhcmFtZXRlcnMuaXNDcm9zc09yaWdpbklzb2xh
dGVkKQorICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjptYXJrQXNDcm9zc09yaWdpbklz
b2xhdGVkKCk7CisKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICBzZXRFbmFibGVk
U2VydmljZXMocGFyYW1ldGVycy5oYXNJbWFnZVNlcnZpY2VzLCBwYXJhbWV0ZXJzLmhhc1NlbGVj
dGlvblNlcnZpY2VzLCBwYXJhbWV0ZXJzLmhhc1JpY2hDb250ZW50U2VydmljZXMpOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAwNTE2MjcwMDlhNjZlMTI0YWE5NjM2Mzc4
NGE2ZDc0Y2ViMDQzYmY4Li40YzQ3ZDQyNmVhYzk2ZTNjNWRiNWI5OWZiZTIxZDBjOGM1M2M1ODA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEyNyw3ICsxMjcsNyBAQCBwcml2YXRl
OgogICAgIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgV2ViQ29yZTo6
TmF2aWdhdGlvbkFjdGlvbiYsIFdlYkNvcmU6Ok5ld0ZyYW1lT3BlbmVyUG9saWN5KSBmaW5hbDsK
ICAgICB2b2lkIGRpc3BhdGNoU2hvdygpIGZpbmFsOwogCi0gICAgdm9pZCBkaXNwYXRjaERlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwg
V2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5h
dmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3Jl
OjpGb3JtU3RhdGUqLCBjb25zdCBXVEY6OlN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7
CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3Qg
V2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIFdl
YkNvcmU6OkZvcm1TdGF0ZSosIFdlYkNvcmU6OlBvbGljeURlY2lzaW9uTW9kZSwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZp
bmFsOwogICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQubW0KaW5kZXggMGNmYmVlZTA0NDdkMmUyODU3NzIyZmUwYTY2NDE1MTk0MDliMmFm
Yi4uYWFkZjRlNzAwNGMzOTdmZDZhZmMxZWNmZDBlYzgzZDM3NGY5MzA1ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQubW0KQEAgLTg1NSw3ICs4NTUsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaFNob3coKQogICAgIFtbd2ViVmlldyBfVUlEZWxlZ2F0ZUZvcndhcmRl
cl0gd2ViVmlld1Nob3c6d2ViVmlld107CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQ
b2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwg
V2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQ
b2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQogewogICAgIFdlYlZpZXcgKndlYlZpZXcgPSBnZXRX
ZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
aW5kZXggYzVhZmExMzM3ZGI0ZTJmYjY3Y2VlNDBmMTA0NWYxYzY5NmFjMjdmNy4uYWYxYzAyOWFh
ZTUzMzhkMWY0YzRmYWQ2MDBmMGI5MzhjOGY2NDlkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcApAQCAtNTE5LDcgKzUxOSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoU2hvdygpCiAgICAgICAgIHVpLT53ZWJWaWV3U2hvdyh3ZWJWaWV3KTsKIH0KIAotdm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGlj
eUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdy
b3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAgV2ViVmll
dyogd2ViVmlldyA9IG1fd2ViRnJhbWUtPndlYlZpZXcoKTsKICAgICBGcmFtZSogY29yZUZyYW1l
ID0gY29yZShtX3dlYkZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDYxNDY1
YzExZmMyNTU3MzI0ODIxNTgxMjU5MjUxOWM1YTYxMWFmZDIuLjU0NTRmYmJkYjM1OTQ5MTM5NWQ1
MWFlMjM4Y2NiMjM3NDg3OGZjZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtOTEs
NyArOTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWQoKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUoT3B0aW9uU2V0
PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4pIG92ZXJyaWRlOwogCi0gICAgdm9pZCBkaXNwYXRj
aERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKKyAgICB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlk
ZTsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0
IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBjb25zdCBXVEY6OlN0cmluZyYgZnJhbWVOYW1lLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rp
b24mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGly
ZWN0UmVzcG9uc2UsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIFdlYkNvcmU6OlBvbGljeURlY2lzaW9u
TW9kZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGlj
eUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA2ZWIwOWU1ODFkZGVmNTg4ODNkM2FjYmVmMDBkNzIwZDRlMDlkMWRmLi5iMTE5NTBjNjg2NDQ5
N2IzZTYxNDlhYTAwOTFmMzg3Yzc1OTE1ZGYwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMDgtMjcgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgU2hhcmVkQXJyYXlC
dWZmZXIgc3VwcG9ydCB3aGVuIENPT1AvQ09FUCBoZWFkZXJzIGFyZSB1c2VkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk1NTkKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzgyMzkxOTQ1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4gU2hhcmVkQXJyYXlCdWZmZXIg
c3VwcG9ydCBpcyBjdXJyZW50bHkgZm9yY2VmdWxseSBlbmFibGVkIGJ5CisgICAgICAgIHJ1bi13
ZWJraXQtdGVzdHMucHkgc28gaXQgd291bGQgbm90IGJlIHByYWN0aWNhbCB0byB3cml0ZSBsYXlv
dXQgdGVzdHMgZm9yIHRoaXMgYXQKKyAgICAgICAgdGhlIG1vbWVudC4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06
CisgICAgICAgICgtW1BTT05TY2hlbWUgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6dG9EYXRhOndp
dGhDT09QVmFsdWU6d2l0aENPRVBWYWx1ZTpdKToKKyAgICAgICAgKC1bUFNPTlNjaGVtZSB3ZWJW
aWV3OnN0YXJ0VVJMU2NoZW1lVGFzazpdKToKKwogMjAyMS0wOC0yNyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEV4dGVuZCBBUEkgdGVzdCBjb3ZlcmFnZSB0byBt
YWtlIHN1cmUgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZCBpcyBub3QgY2FsbGVkIHVwb24gQ09PUCBw
cm9jZXNzIHN3YXAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IGE2M2Y3NDE5
ZGRkY2I5MmNiMjMzMmJjNjlmMDEyNTQ1ZmZmODFkZjUuLmM2MzMxNjc4NTg1MDczZGRlYmRmNDQy
NmQyMDNkZmIxZDU2YmI3MjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAt
MjUxLDEzICsyNTEsMTQgQEAgQGludGVyZmFjZSBQU09OU2NoZW1lIDogTlNPYmplY3QgPFdLVVJM
U2NoZW1lSGFuZGxlcj4gewogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IF9yZWRpcmVjdHM7
CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJldGFpblB0cjxOU0RhdGE+PiBfZGF0YU1hcHBpbmdzOwog
ICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IF9jb29wVmFsdWVzOworICAgIEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+IF9jb2VwVmFsdWVzOwogICAgIEhhc2hTZXQ8aWQgPFdLVVJMU2NoZW1lVGFz
az4+IF9ydW5uaW5nVGFza3M7CiAgICAgYm9vbCBfc2hvdWxkUmVzcG9uZEFzeW5jaHJvbm91c2x5
OwogfQogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQnl0ZXM6KGNvbnN0IGNoYXIqKWJ5dGVzOwog
LSAodm9pZClhZGRSZWRpcmVjdEZyb21VUkxTdHJpbmc6KE5TU3RyaW5nICopc291cmNlVVJMU3Ry
aW5nIHRvVVJMU3RyaW5nOihOU1N0cmluZyAqKWRlc3RpbmF0aW9uVVJMU3RyaW5nOwogLSAodm9p
ZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihj
b25zdCBjaGFyKilkYXRhOwotLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJp
bmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhIHdpdGhDT09QVmFsdWU6KGNv
bnN0IGNoYXIqKWNvb3BWYWx1ZTsKKy0gKHZvaWQpYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6KE5T
U3RyaW5nICopdXJsU3RyaW5nIHRvRGF0YTooY29uc3QgY2hhciopZGF0YSB3aXRoQ09PUFZhbHVl
Oihjb25zdCBjaGFyKiljb29wVmFsdWUgd2l0aENPRVBWYWx1ZTooY29uc3QgY2hhciopY29lcFZh
bHVlOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gUFNPTlNjaGVtZQpAQCAtMjc5LDExICsyODAs
MTMgQEAgLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJp
bmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhCiAgICAgX2RhdGFNYXBwaW5ncy5zZXQodXJsU3Ry
aW5nLCBbTlNEYXRhIGRhdGFXaXRoQnl0ZXNOb0NvcHk6KHZvaWQqKWRhdGEgbGVuZ3RoOnN0cmxl
bihkYXRhKSBmcmVlV2hlbkRvbmU6Tk9dKTsKIH0KIAotLSAodm9pZClhZGRNYXBwaW5nRnJvbVVS
TFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhIHdp
dGhDT09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1ZQorLSAodm9pZClhZGRNYXBwaW5nRnJv
bVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRh
IHdpdGhDT09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1ZSB3aXRoQ09FUFZhbHVlOihjb25z
dCBjaGFyKiljb2VwVmFsdWUKIHsKICAgICBbc2VsZiBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzp1
cmxTdHJpbmcgdG9EYXRhOmRhdGFdOwogICAgIGlmIChjb29wVmFsdWUpCiAgICAgICAgIF9jb29w
VmFsdWVzLmFkZCh1cmxTdHJpbmcsIGNvb3BWYWx1ZSk7CisgICAgaWYgKGNvZXBWYWx1ZSkKKyAg
ICAgICAgX2NvZXBWYWx1ZXMuYWRkKHVybFN0cmluZywgY29lcFZhbHVlKTsKIH0KIAogLSAodm9p
ZClzZXRTaG91bGRSZXNwb25kQXN5bmNocm9ub3VzbHk6KEJPT0wpdmFsdWUKQEAgLTMyNyw2ICsz
MzAsOSBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RhcnRVUkxTY2hl
bWVUYXNrOihpZCA8V0tVUkxTY2hlbWVUYXNrPil0YQogICAgICAgICBhdXRvIGNvb3BWYWx1ZSA9
IF9jb29wVmFsdWVzLmdldChbZmluYWxVUkwgYWJzb2x1dGVTdHJpbmddKTsKICAgICAgICAgaWYg
KCFjb29wVmFsdWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgW2hlYWRlckRpY3Rpb25hcnkgc2V0
T2JqZWN0OihOU1N0cmluZyAqKWNvb3BWYWx1ZSBmb3JLZXk6QCJDcm9zcy1PcmlnaW4tT3BlbmVy
LVBvbGljeSJdOworICAgICAgICBhdXRvIGNvZXBWYWx1ZSA9IF9jb2VwVmFsdWVzLmdldChbZmlu
YWxVUkwgYWJzb2x1dGVTdHJpbmddKTsKKyAgICAgICAgaWYgKCFjb2VwVmFsdWUuaXNFbXB0eSgp
KQorICAgICAgICAgICAgW2hlYWRlckRpY3Rpb25hcnkgc2V0T2JqZWN0OihOU1N0cmluZyAqKWNv
ZXBWYWx1ZSBmb3JLZXk6QCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il07CiAKICAgICAg
ICAgYXV0byByZXNwb25zZSA9IGFkb3B0TlMoW1tOU0hUVFBVUkxSZXNwb25zZSBhbGxvY10gaW5p
dFdpdGhVUkw6ZmluYWxVUkwuZ2V0KCkgc3RhdHVzQ29kZToyMDAgSFRUUFZlcnNpb246QCJIVFRQ
LzEuMSIgaGVhZGVyRmllbGRzOmhlYWRlckRpY3Rpb25hcnldKTsKICAgICAgICAgW3Rhc2sgZGlk
UmVjZWl2ZVJlc3BvbnNlOnJlc3BvbnNlLmdldCgpXTsKQEAgLTcxOTEsMzYgKzcxOTcsMzkgQEAg
d2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBlbnVtIGNsYXNzIElzU2FtZU9yaWdpbiA6
IGJvb2wgeyBObywgWWVzIH07CiBlbnVtIGNsYXNzIERvU2VydmVyU2lkZVJlZGlyZWN0IDogYm9v
bCB7IE5vLCBZZXMgfTsKLXN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3Qg
Y2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT09QLCBJc1NhbWVPcmln
aW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVj
dCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQorc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0VQLCBjb25z
dCBjaGFyKiBkZXN0aW5hdGlvbkNPT1AsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09FUCwgSXNT
YW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRl
UmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKIHsKICAgICBhdXRvIHByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKICAgICBhdXRv
IHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENv
bmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYm9vbCBz
b3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09QICYmICFzdHJjbXAo
c291cmNlQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgc291cmNlQ09FUCAmJiAhc3RyY21wKHNvdXJj
ZUNPRVAsICJyZXF1aXJlLWNvcnAiKTsKKyAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9z
c09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QICYmICFzdHJjbXAoZGVzdGluYXRpb25D
T09QLCAic2FtZS1vcmlnaW4iKSAmJiBkZXN0aW5hdGlvbkNPRVAgJiYgIXN0cmNtcChkZXN0aW5h
dGlvbkNPRVAsICJyZXF1aXJlLWNvcnAiKTsKKyAgICBFWFBFQ1RfVFJVRShzb3VyY2VTaG91bGRC
ZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPT0gZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNv
bGF0ZWQgfHwgZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMpOwogCiAgICAgYXV0byB3ZWJW
aWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nl
c3NQb29sLmdldCgpXTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgZm9yIChfV0tF
eHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50
YWxGZWF0dXJlc10pIHsKLSAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6
QCJDcm9zc09yaWdpbk9wZW5lclBvbGljeUVuYWJsZWQiXSkgeworICAgICAgICBpZiAoW2ZlYXR1
cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5RW5hYmxlZCJd
KQorICAgICAgICAgICAgW1t3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVu
YWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgIGVsc2Ug
aWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJDcm9zc09yaWdpbkVtYmVkZGVyUG9s
aWN5RW5hYmxlZCJdKQogICAgICAgICAgICAgW1t3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQogICAgIH0KIAogICAgIGF1dG8gaGFuZGxlciA9
IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CiAgICAgaWYgKGlzU2FtZU9yaWdp
biA9PSBJc1NhbWVPcmlnaW46OlllcykgewotICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJv
bVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp3aW5k
b3dPcGVuU2FtZU9yaWdpbkNPT1BUZXN0Qnl0ZXMgd2l0aENPT1BWYWx1ZTpzb3VyY2VDT09QXTsK
KyAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3Lndl
YmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlblNhbWVPcmlnaW5DT09QVGVzdEJ5
dGVzIHdpdGhDT09QVmFsdWU6c291cmNlQ09PUCB3aXRoQ09FUFZhbHVlOnNvdXJjZUNPRVBdOwog
ICAgICAgICBpZiAoZG9TZXJ2ZXJTaWRlUmVkaXJlY3QgPT0gRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
OlllcykgewogICAgICAgICAgICAgW2hhbmRsZXIgYWRkUmVkaXJlY3RGcm9tVVJMU3RyaW5nOkAi
cHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLmh0bWwiIHRvVVJMU3RyaW5nOkAicHNvbjovL3d3
dy53ZWJraXQub3JnL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiXTsKLSAgICAgICAgICAgIFto
YW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3Bv
cHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVz
dGluYXRpb25DT09QXTsKKyAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3Ry
aW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiIHRv
RGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QIHdpdGhDT0VQVmFsdWU6
ZGVzdGluYXRpb25DT0VQXTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBbaGFuZGxlciBh
ZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9wb3B1cC5odG1s
IiB0b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9uQ09PUF07CisgICAgICAg
ICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0
Lm9yZy9wb3B1cC5odG1sIiB0b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9u
Q09PUCB3aXRoQ09FUFZhbHVlOmRlc3RpbmF0aW9uQ09FUF07CiAgICAgfSBlbHNlIHsKLSAgICAg
ICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5v
cmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlbkNyb3NzT3JpZ2luQ09PUFRlc3RCeXRlcyB3
aXRoQ09PUFZhbHVlOnNvdXJjZUNPT1BdOworICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJv
bVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp3aW5k
b3dPcGVuQ3Jvc3NPcmlnaW5DT09QVGVzdEJ5dGVzIHdpdGhDT09QVmFsdWU6c291cmNlQ09PUCB3
aXRoQ09FUFZhbHVlOnNvdXJjZUNPRVBdOwogICAgICAgICBpZiAoZG9TZXJ2ZXJTaWRlUmVkaXJl
Y3QgPT0gRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcykgewogICAgICAgICAgICAgW2hhbmRsZXIg
YWRkUmVkaXJlY3RGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAuaHRt
bCIgdG9VUkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC1hZnRlci1yZWRpcmVj
dC5odG1sIl07Ci0gICAgICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpA
InBzb246Ly93d3cuYXBwbGUuY29tL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiIHRvRGF0YToi
cG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QXTsKKyAgICAgICAgICAgIFtoYW5k
bGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAt
YWZ0ZXItcmVkaXJlY3QuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5h
dGlvbkNPT1Agd2l0aENPRVBWYWx1ZTpkZXN0aW5hdGlvbkNPRVBdOwogICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3
dy5hcHBsZS5jb20vcG9wdXAuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0
aW5hdGlvbkNPT1BdOworICAgICAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJp
bmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC5odG1sIiB0b0RhdGE6InBvcHVwIiB3aXRo
Q09PUFZhbHVlOmRlc3RpbmF0aW9uQ09PUCB3aXRoQ09FUFZhbHVlOmRlc3RpbmF0aW9uQ09FUF07
CiAgICAgfQogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhh
bmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwogCkBAIC03MjkwLDYgKzcyOTksMjYg
QEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VD
T09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGkKICAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0
ID0gdHJ1ZTsKICAgICB9XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVk
UnVubmluZ1NjcmlwdCk7CisgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7CisgICAg
W3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic2VsZi5jcm9zc09yaWdpbklzb2xhdGVkID8g
J2lzb2xhdGVkJyA6ICdub3QtaXNvbGF0ZWQnIiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCBy
ZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIE5TU3RyaW5nICpjcm9zc09yaWdpbklz
b2xhdGVkID0gKE5TU3RyaW5nICopcmVzdWx0OworICAgICAgICBpZiAoc291cmNlU2hvdWxkQmVD
cm9zc09yaWdpbklzb2xhdGVkKQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiaXNvbGF0
ZWQiLCBjcm9zc09yaWdpbklzb2xhdGVkKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgRVhQ
RUNUX1dLX1NUUkVRKEAibm90LWlzb2xhdGVkIiwgY3Jvc3NPcmlnaW5Jc29sYXRlZCk7CisgICAg
ICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQpOworICAgIGZpbmlzaGVkUnVu
bmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInNl
bGYuU2hhcmVkQXJyYXlCdWZmZXIgPyAnaGFzLXNhYicgOiAnZG9lcy1ub3QtaGF2ZS1zYWInIiBj
b21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAg
ICAgIE5TU3RyaW5nICpoYXNTQUIgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlmIChz
b3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQpCisgICAgICAgICAgICBFWFBFQ1RfV0tf
U1RSRVEoQCJoYXMtc2FiIiwgaGFzU0FCKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgRVhQ
RUNUX1dLX1NUUkVRKEAiZG9lcy1ub3QtaGF2ZS1zYWIiLCBoYXNTQUIpOworICAgICAgICBmaW5p
c2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKIAogICAgIC8vIE9wZW5lZSBzaG91bGQg
bm90IGhhdmUgYW4gb3BlbmVyIG9yIGEgbmFtZS4KICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQg
PSBmYWxzZTsKQEAgLTczMjAsODcgKzczNDksMjM1IEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRp
CiAgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CiAgICAgfV07CiAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQpOworICAgIGZpbmlz
aGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUph
dmFTY3JpcHQ6QCJzZWxmLmNyb3NzT3JpZ2luSXNvbGF0ZWQgPyAnaXNvbGF0ZWQnIDogJ25vdC1p
c29sYXRlZCciIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJy
b3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKmNyb3NzT3JpZ2luSXNvbGF0ZWQgPSAoTlNTdHJpbmcg
KilyZXN1bHQ7CisgICAgICAgIGlmIChkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29s
YXRlZCkKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImlzb2xhdGVkIiwgY3Jvc3NPcmln
aW5Jc29sYXRlZCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShA
Im5vdC1pc29sYXRlZCIsIGNyb3NzT3JpZ2luSXNvbGF0ZWQpOworICAgICAgICBmaW5pc2hlZFJ1
bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKKyAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSBm
YWxzZTsKKyAgICBbY3JlYXRlZFdlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic2VsZi5TaGFy
ZWRBcnJheUJ1ZmZlciA/ICdoYXMtc2FiJyA6ICdkb2VzLW5vdC1oYXZlLXNhYiciIGNvbXBsZXRp
b25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNT
dHJpbmcgKmhhc1NBQiA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYgKGRlc3RpbmF0
aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkKQorICAgICAgICAgICAgRVhQRUNUX1dLX1NU
UkVRKEAiaGFzLXNhYiIsIGhhc1NBQik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEVYUEVD
VF9XS19TVFJFUShAImRvZXMtbm90LWhhdmUtc2FiIiwgaGFzU0FCKTsKKyAgICAgICAgZmluaXNo
ZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7CiAKICAgICBjcmVhdGVkV2ViVmlldyA9IG51
bGxwdHI7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09Q
U2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxs
cHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdp
biIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
dW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVP
cmlnaW40KQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInVu
c2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdp
bikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09Q
U2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQor
eworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25l
IiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQoreworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxw
dHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIs
IG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVw
MykKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxv
d1BvcHVwNCkKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxv
dy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFu
ZENPRVBTYW1lT3JpZ2luQWxsb3dQb3B1cCkKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJzYW1lLW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNh
ZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCit7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwg
InNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2Ft
ZU9yaWdpbikKK3sKKyAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBkZXN0aW5hdGlvbiBp
cyBtaXNzaW5nIENPRVAuCisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NP
T1BBbmRDT0VQU2FtZU9yaWdpbikKK3sKKyAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBz
b3VyY2UgaXMgbWlzc2luZyBDT0VQLgorICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luVG9DT09QU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKIHsKICAgICAvLyBXZSBleHBlY3QgYSBz
d2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2ZSBDT09QPXNhbWUtb3JpZ2luLgot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInNhbWUtb3JpZ2luIiwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRy
LCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09F
UFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCit7CisgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNh
dXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbiBhbmQgQ09FUD1y
ZXF1aXJlLWNvcnAuCisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAi
cmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbldpdGhvdXRDT09QV2l0aFJl
ZGlyZWN0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6
Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVz
LCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChu
dWxscHRyLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChu
dWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwg
InNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKK3sKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUt
bm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2lu
VG9DT09QU2FtZU9yaWdpbjQpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZl
LW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUEFuZENP
RVBTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVs
bHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0ciwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwor
fQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW4zKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW40KQoreworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQoreworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxw
dHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJzYW1lLW9yaWdpbiIsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdp
biIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQor
eworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29y
cCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NP
T1BTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9D
T09QQW5kQ09FUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUt
bm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jv
c3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKK3sKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1
bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKK3sKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9u
ZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKaW5kZXggNWE2NmQxOTM5NWE3ODllMGE2MjA4ODY3ZGEzOTQwZmRlYjU4ZTAz
Ny4uOTJjYzczODhjNDhlNWJlMGQyMWFmNzIzYTMwODUxMDllMjBhNTAzNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjEtMDgtMjcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgU2hhcmVkQXJyYXlCdWZm
ZXIgc3VwcG9ydCB3aGVuIENPT1AvQ09FUCBoZWFkZXJzIGFyZSB1c2VkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk1NTkKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzgyMzkxOTQ1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlYmFzZWxpbmUgYSBmZXcgd2ViLXBsYXRmb3JtLXRlc3RzIG5vdyB0aGF0
IHdpbmRvdy5jcm9zc09yaWdpbklzb2xhdGVkIHByb3Blcmx5IHJldHVybnMKKyAgICAgICAgdHJ1
ZSB3aGVuIENPT1ArQ09FUCBhcmUgdXNlZC4KKworICAgICAgICBOb3RlIHRoYXQgU2hhcmVkQXJy
YXlCdWZmZXIgYXJlIGFscmVhZHkgZm9yY2VmdWxseSBlbmFibGVkIGJ5IHJ1bi13ZWJraXQtdGVz
dHMucHkgd2hlbiBydW5uaW5nCisgICAgICAgIHRoZSBsYXlvdXQgdGVzdHMsIHdoaWNoIGlzIHdo
eSB0aGVyZSBhcmUgbm90IG1vcmUgbGF5b3V0IHRlc3QgcmVzdWx0cyBjaGFuZ2VzLiBBdCBzb21l
IHBvaW50LAorICAgICAgICB3ZSBzaG91bGQgc3RvcCBmb3JjZWZ1bGx5IGVuYWJsaW5nIFNoYXJl
ZEFycmF5QnVmZmVyIHdoZW4gcnVubmluZyB3ZWItcGxhdGZvcm0tdGVzdHMgYXQgbGVhc3QsCisg
ICAgICAgIHNpbmNlIFdQVCB0ZXN0cyBhbHJlYWR5IG1ha2Ugc3VyZSB0byB1c2UgQ09PUCtDT0VQ
IHdoZW4gdGVzdGluZyBTaGFyZWRBcnJheUJ1ZmZlci4KKworICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvc2VyaWFsaXplLXNoYXJlZGFycmF5YnVmZmVyLXRocm93cy5odHRw
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mt
b3JpZ2luLWVtYmVkZGVyLXBvbGljeS9jcm9zcy1vcmlnaW4taXNvbGF0ZWQtcGVybWlzc2lvbi5o
dHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgIE5vdGUgdGhhdCBzb21lIHN1YnRlc3RzIGFyZSBm
YWlsaW5nIGJlY2F1c2Ugd2UgZG9uJ3Qgc3VwcG9ydCB0aGUgUGVybWlzc2lvbnMtUG9saWN5IEhU
VFAgaGVhZGVyOgorICAgICAgICAtIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJhcHBzZWMtcGVy
bWlzc2lvbnMtcG9saWN5LworCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jv
c3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIwMjEt
MDgtMjcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtDU1Mg
Q2FzY2FkZSBMYXllcnNdIEluaXRpYWwgc3VwcG9ydApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvc2VyaWFsaXplLXNoYXJl
ZGFycmF5YnVmZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJy
YXlidWZmZXItdGhyb3dzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBhY2MwNDY0NjAzYjEwY2Qw
OWJkMTdmMDRiMmVmNmRjNDg0MzVkMjM1Li42ZDBiYjY2ZmFmMWM0YTk2ZjBhYmRiYTk3Zjk2MTVm
NmY5ZjMzNzRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJyYXlidWZmZXItdGhyb3dzLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJyYXlidWZmZXItdGhyb3dzLmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDUgQEAKIAotRkFJTCBJbmRleGVkREI6IEF0dGVt
cHRpbmcgdG8gc2VyaWFsaXplIGEgU2hhcmVkQXJyYXlCdWZmZXIgc2hvdWxkIHRocm93IGFzc2Vy
dF90cnVlOiBUaGUgcGFnZSBpcyBzZXJ2ZWQgd2l0aCBDT09QIGFuZCBDT0VQLCBpdCBzaG91bGQg
YmUgY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBJ
bmRleGVkREI6IEF0dGVtcHRpbmcgdG8gc2VyaWFsaXplIGEgU2hhcmVkQXJyYXlCdWZmZXIgc2hv
dWxkIHRocm93IGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4geworICAgICAgICAg
ICAgcnEgPSBvYmpTdG9yZS5wdXQoe3NhYjogc2FifSwgJ2tleScpOworICAgICAgICB9IiB0aHJl
dyBvYmplY3QgIkRhdGFFcnJvcjogRmFpbGVkIHRvIHN0b3JlIHJlY29yZCBpbiBhbiBJREJPYmpl
Y3RTdG9yZTogVGhlIG9iamVjdCBzdG9yZSB1c2VzIGluLWxpbmUga2V5cyBhbmQgdGhlIGtleSBw
YXJhbWV0ZXIgd2FzIHByb3ZpZGVkLiIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gRGF0YUNs
b25lRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAwLCBleHBlY3RlZCAyNQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9jcm9zcy1vcmlnaW4taXNvbGF0ZWQtcGVy
bWlzc2lvbi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9jcm9zcy1v
cmlnaW4taXNvbGF0ZWQtcGVybWlzc2lvbi5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggM2I3NzY2
MTMzODk0MDdlZGM0MzgyZDhiODJlNmY3YjBkOWYyZTcyYy4uZTYwZTQyYmZiMTBlODg3YTBiOGJk
MzVmNzRiZmY4NjJkMGI2OTQ2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvY3Jv
c3Mtb3JpZ2luLWlzb2xhdGVkLXBlcm1pc3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmln
aW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMSwyNCArMSwyNCBAQAogCi1GQUlMIGZyYW1lOiBvcmlnaW4gPSBo
dHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1
dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMs
IHZhbHVlID0gc2VsZiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UK
LVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKFwp
Ci1QQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHVu
ZGVmaW5lZAotUEFTUyBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFs
dWUgPSAqCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1
ZSA9IHNlbGYKLVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMsIHZh
bHVlID0gKFwpCi1GQUlMIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGh0dHBzLCB2YWx1ZSA9
IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZB
SUwgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gaHR0cHMsIHZhbHVlID0gKiBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZGVkaWNhdGVkIHdvcmtlcjog
c2NoZW1lID0gaHR0cHMsIHZhbHVlID0gc2VsZiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVl
IGJ1dCBnb3QgZmFsc2UKLVBBU1MgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gaHR0cHMsIHZh
bHVlID0gKFwpCi1QQVNTIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGRhdGEsIHZhbHVlID0g
dW5kZWZpbmVkCi1QQVNTIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGRhdGEsIHZhbHVlID0g
KgotUEFTUyBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBkYXRhLCB2YWx1ZSA9IHNlbGYKLVBB
U1MgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gZGF0YSwgdmFsdWUgPSAoXCkKLUZBSUwgZGVk
aWNhdGVkIHdvcmtlcjogc2NoZW1lID0gYmxvYiwgdmFsdWUgPSB1bmRlZmluZWQgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlCi1GQUlMIGRlZGljYXRlZCB3b3JrZXI6
IHNjaGVtZSA9IGJsb2IsIHZhbHVlID0gKiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1
dCBnb3QgZmFsc2UKLUZBSUwgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gYmxvYiwgdmFsdWUg
PSBzZWxmIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQotUEFTUyBk
ZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBibG9iLCB2YWx1ZSA9IChcKQorUEFTUyBmcmFtZTog
b3JpZ2luID0gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MywgdmFsdWUgPSB1bmRlZmluZWQKK1BBU1Mg
ZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKgorUEFTUyBm
cmFtZTogb3JpZ2luID0gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MywgdmFsdWUgPSBzZWxmCitGQUlM
IGZyYW1lOiBvcmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IChcKSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKK0ZBSUwgZnJhbWU6IG9yaWdp
biA9IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMsIHZhbHVlID0gdW5kZWZpbmVkIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0
cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSAqIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZh
bHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly8xMjcuMC4wLjE6
OTQ0MywgdmFsdWUgPSBzZWxmIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3Qg
dHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUg
PSAoXCkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitQQVNTIGRl
ZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGh0dHBzLCB2YWx1ZSA9IHVuZGVmaW5lZAorUEFTUyBk
ZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBodHRwcywgdmFsdWUgPSAqCitQQVNTIGRlZGljYXRl
ZCB3b3JrZXI6IHNjaGVtZSA9IGh0dHBzLCB2YWx1ZSA9IHNlbGYKK0ZBSUwgZGVkaWNhdGVkIHdv
cmtlcjogc2NoZW1lID0gaHR0cHMsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
IGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBkYXRh
LCB2YWx1ZSA9IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290
IHRydWUKK0ZBSUwgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gZGF0YSwgdmFsdWUgPSAqIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBkZWRpY2F0ZWQg
d29ya2VyOiBzY2hlbWUgPSBkYXRhLCB2YWx1ZSA9IHNlbGYgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitGQUlMIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGRh
dGEsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1
ZQorUEFTUyBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBibG9iLCB2YWx1ZSA9IHVuZGVmaW5l
ZAorUEFTUyBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBibG9iLCB2YWx1ZSA9ICoKK1BBU1Mg
ZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gYmxvYiwgdmFsdWUgPSBzZWxmCitGQUlMIGRlZGlj
YXRlZCB3b3JrZXI6IHNjaGVtZSA9IGJsb2IsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQogRkFJTCBzaGFyZWQgd29ya2VyOiB3aXRoQ29vcENv
ZXAgPSBmYWxzZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKIEZBSUwgc2hhcmVk
IHdvcmtlcjogd2l0aENvb3BDb2VwID0gdHJ1ZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRX
b3JrZXIKIEZBSUwgc2VydmljZSB3b3JrZXI6IHdpdGhDb29wQ29lcCA9IGZhbHNlIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkIChib29sZWFuKSBmYWxzZSBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVm
aW5lZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Ny
b3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGI0
MzljZGM5NzM1NmZkOTI1MTAwNDcxOWM5YWRhNGI0NGU0ZDY3YjEuLmRkYzhmYzMxODYxZmQ2NzE5
ZjQ3NGU2OWU4NDIxNDYxM2E3MDNiOGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9j
b2VwLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTcsNSArNyw1IEBAIFBBU1MgU2FtZS1vcmlnaW4gcG9wdXAgd2l0
aCBjb29wIHVuc2FmZS1ub25lIHdpdGhvdXQgY29lcAogUEFTUyBoaXN0b3JpY2FsOiAic2FtZS1z
aXRlIiBwb3B1cCB3aXRoIGNvb3AgdW5zYWZlLW5vbmUgd2l0aG91dCBjb2VwCiBQQVNTIFNhbWUt
b3JpZ2luIHBvcHVwIHdpdGhvdXQgY29lcAogUEFTUyBoaXN0b3JpY2FsOiAic2FtZS1zaXRlIiBw
b3B1cCB3aXRob3V0IGNvZXAKLUZBSUwgQm9udXM6IHdpbmRvdy5jcm9zc09yaWdpbklzb2xhdGVk
IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBCb251czogd2luZG93
LmNyb3NzT3JpZ2luSXNvbGF0ZWQKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436694</attachid>
            <date>2021-08-27 17:00:10 -0700</date>
            <delta_ts>2021-08-30 08:09:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229559-20210827170009.patch</filename>
            <type>text/plain</type>
            <size>92975</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU1MDU2MDRjYmIyNGUy
ZWQ1MGJkZmNiMTI3MGE0NmE1OTI0YWE1OS4uN2JkMjM2MWU2Y2VjNWIwMDc3ZThjZGU0MmE5ZDg0
ZTMwYzJiNGNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA4LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIFNoYXJlZEFycmF5
QnVmZmVyIHN1cHBvcnQgd2hlbiBDT09QL0NPRVAgaGVhZGVycyBhcmUgdXNlZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NTU5CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84MjM5MTk0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNYWtlIHN1cmUgd2luZG93LmNyb3NzT3JpZ2luSXNvbGF0ZWQgcmV0
dXJucyB0cnVlIHdoZW4gQ09PUD1zYW1lLW9yaWdpbiBhbmQKKyAgICAgICAgQ09FUD1yZXF1aXJl
LWNvcnAgYXJlIHVzZWQuIEFsc28gbWFrZSBzdXJlIHRoYXQgY3Jvc3Mtb3JpZ2luLWlzb2xhdGVz
IHBhZ2VzCisgICAgICAgIGFyZSBhbGxvd2VkIHRvIHVzZSBTaGFyZWRBcnJheUJ1ZmZlci4KKwor
ICAgICAgICBDaGFuZ2UgaXMgY292ZXJlZCBieSByZWJhc2VsaW5lZCBsYXlvdXQgdGVzdHMgYW5k
IG5ldyBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6dG9OZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAg
ICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0NvbnRl
bnRQb2xpY3kpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlclR5
cGVzLmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93Ojpjcm9zc09yaWdpbklzb2xhdGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0RP
TVdpbmRvdy5pZGw6CisKIDIwMjEtMDgtMjcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtDU1MgQ2FzY2FkZSBMYXllcnNdIEluaXRpYWwgc3VwcG9ydApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBlM2ZkMjI5MjdmZGJjNjk3MDc3ZGM4M2VlNTc2NzE3YzIyYzA2OWJkLi43Y2E3YzZk
YjJkNDQwMzljZGRmZGY3M2I1YzgxOTY0ZmNlYzg5NWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1
IEBACisyMDIxLTA4LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgRW5hYmxlIFNoYXJlZEFycmF5QnVmZmVyIHN1cHBvcnQgd2hlbiBDT09QL0NPRVAgaGVhZGVy
cyBhcmUgdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5NTU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjM5MTk0NT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHN1cmUgd2luZG93LmNy
b3NzT3JpZ2luSXNvbGF0ZWQgcmV0dXJucyB0cnVlIHdoZW4gQ09PUD1zYW1lLW9yaWdpbiBhbmQK
KyAgICAgICAgQ09FUD1yZXF1aXJlLWNvcnAgYXJlIHVzZWQuIEFsc28gbWFrZSBzdXJlIHRoYXQg
Y3Jvc3Mtb3JpZ2luLWlzb2xhdGVzIHBhZ2VzCisgICAgICAgIGFyZSBhbGxvd2VkIHRvIHVzZSBT
aGFyZWRBcnJheUJ1ZmZlci4KKworICAgICAgICBXaGVuIHRoZSBXZWJQcm9jZXNzIGRldGVybWlu
ZXMgaXQgbmVlZHMgdG8gc3dpdGNoIGJyb3dzaW5nIGNvbnRleHQgZ3JvdXAgaXQKKyAgICAgICAg
bm93IHNlbmRzIGEgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaDo6WWVzV2l0aG91dENy
b3NzT3JpZ2luSXNvbGF0aW9uIC8KKyAgICAgICAgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaDo6WWVzV2l0aENyb3NzT3JpZ2luSXNvbGF0aW9uIGVudW0gdmFsdWUgdG8KKyAgICAgICAg
dGhlIFVJUHJvY2VzcyB3aXRoIHRoZSBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSBJUEMgaW5zdGVh
ZCBvZiBhIHNpbXBsZQorICAgICAgICBib29sZWFuLiBXZSBzZW5kIFllc1dpdGhvdXRDcm9zc09y
aWdpbklzb2xhdGlvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uCisgICAgICAgIGRlc3RpbmF0aW9uIHdp
bGwgYmUgY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkIGR1ZSB0byBDT09QPXNhbWUtb3JpZ2luIGFuZAor
ICAgICAgICBDT0VQPXJlcXVpcmUtY29ycC4gSW4gdGhlIFVJUHJvY2Vzcywgd2hlbiBZZXNXaXRo
Q3Jvc3NPcmlnaW5Jc29sYXRpb24gaXMKKyAgICAgICAgcmVjZWl2ZWQsIHdlIHRha2UgY2FyZSBv
ZiBsYXVuY2hpbmcgYSBmcmVzaCBXZWJQcm9jZXNzIChuZXZlciByZWN5Y2xpbmcgYW4KKyAgICAg
ICAgZXhpc3RpbmcgV2ViUHJvY2VzcykgYW5kIHdlIG1ha2UgdGhpcyBXZWJQcm9jZXNzIGFzIGNy
b3NzLW9yaWdpbi1pc29sYXRlZC4KKyAgICAgICAgV2hlbiBhIHByb2Nlc3MgaXMgY3Jvc3Mtb3Jp
Z2luLWlzb2xhdGVkLCB3ZSBwYXNzIGl0IGEgWFBDIGZsYWcgb24gbGF1bmNoCisgICAgICAgIHRv
IGFsbG93IHRoZSBwcm9jZXNzIHRvIHVzZSBTaGFyZWRBcnJheUJ1ZmZlci4gV2UgdXNlIGFuIFhQ
QyBmbGFnIGJlY2F1c2UKKyAgICAgICAgSlNDIE9wdGlvbnMgbmVlZCB0byBiZSBzZXQgYmVmb3Jl
IEpTQzo6aW5pdGlhbGl6ZSgpIGlzIGNhbGxlZCwgd2hpY2ggb2NjdXJzCisgICAgICAgIGR1cmlu
ZyBYUEMgc2VydmljZSBpbml0aWFsaXphdGlvbi4gV2hlbiBhIFdlYlByb2Nlc3MgaXMgbWFya2Vk
IGFzCisgICAgICAgIGNyb3NzLW9yaWdpbi1pc29sYXRlZCwgd2UgbWFrZSBzdXJlIHRvIG5ldmVy
IGNhY2hlIGl0IHNvIGl0IGNhbm5vdCBiZQorICAgICAgICByZWN5Y2xlZCBmb3IgYSBuZXcgbmF2
aWdhdGlvbiAoZ2l2ZW4gdGhhdCBpdCBoYXMgc3BlY2lhbCBwZXJtaXNzaW9uIHRvIHVzZQorICAg
ICAgICBTaGFyZWRBcnJheUJ1ZmZlcikuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAqIFNoYXJlZC9F
bnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6WFBDU2VydmljZUluaXRpYWxpemVyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmg6CisgICAgICAgIChXZWJLaXQ6OlBy
b2Nlc3NMYXVuY2hlcjo6Q2xpZW50OjpzaG91bGRFbmFibGVTaGFyZWRBcnJheUJ1ZmZlciBjb25z
dCk6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMu
bW06CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3VzcGVuZGVk
UGFnZVByb3h5OjpmaW5kUmV1c2FibGVTdXNwZW5kZWRQYWdlUHJvY2Vzcyk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVXZWJQYWdlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZUZvclNlcnZpY2VXb3JrZXJzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNhbkJlQWRkZWRUb1dlYlByb2Nlc3NDYWNoZSBj
b25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmlzQ3Jvc3NPcmlnaW5Jc29sYXRlZCBjb25zdCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKIDIwMjEtMDgtMjcgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbV0syXSBSZXVzZSB0aGUgc2FtZSBuZXR3b3JrIGxv
YWQgd2hlbiBwcm9jZXNzLXN3YXBwaW5nIG9uIHJlc291cmNlIHJlc3BvbnNlIGR1ZSB0byBDT09Q
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNDVhNTQ4NmUwNTgwNWQ5N2JjMWU0OGI0
NGY5M2RhMzAzMjhhNmExZC4uYWUyNTkxMDk5YTYyZDFhOGVkN2ZlZWRkZmM2ZWZkZjZmZmNjMjU2
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA4
LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIFNo
YXJlZEFycmF5QnVmZmVyIHN1cHBvcnQgd2hlbiBDT09QL0NPRVAgaGVhZGVycyBhcmUgdXNlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NTU5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjM5MTk0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZSk6CisKIDIwMjEtMDgtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2FwcGluZyBiYXNlZCBvbiBD
cm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCmluZGV4IGUyODE1MTAyOThhOGM3MzY0MWRjNDA0OTU2OTdhMmRmNDVhNTEzY2EuLjlj
OTZkNWNkMWM2MzNmN2Q2YzcyMDExZWE3ODIwNTQyMDY1OGI5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wOC0yNyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBTaGFyZWRBcnJheUJ1ZmZlciBzdXBw
b3J0IHdoZW4gQ09PUC9DT0VQIGhlYWRlcnMgYXJlIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTU1OQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vODIzOTE5NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAg
IChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAy
MS0wOC0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJd
IEltcGxlbWVudCBwcm9jZXNzLXN3YXBwaW5nIGJhc2VkIG9uIENyb3NzLU9yaWdpbi1PcGVuZXIt
UG9saWN5IEhUVFAgaGVhZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5jcHAKaW5kZXggYmFlOTExMjJmM2QwMmFjYWYxZjczNjk5YmQzYjY5ZWNhMTQ5MDZh
My4uZDMwMTlkNDhkZjMxNjJkOGQxZGY5ZDMwZmNkZmFlNTI2MDExYzg5NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcApAQCAtODEsNiArODEsOCBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAorc3Rh
dGljIGJvb2wgZ2xvYmFsSXNDcm9zc09yaWdpbklzb2xhdGVkIHsgZmFsc2UgfTsKKwogc3RhdGlj
IExvY2sgYWxsU2NyaXB0RXhlY3V0aW9uQ29udGV4dHNNYXBMb2NrOwogc3RhdGljIEhhc2hNYXA8
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
PiYgYWxsU2NyaXB0RXhlY3V0aW9uQ29udGV4dHNNYXAoKSBXVEZfUkVRVUlSRVNfTE9DSyhhbGxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0c01hcExvY2spCiB7CkBAIC02MjMsNiArNjI1LDE2IEBAIFNl
cnZpY2VXb3JrZXJDb250YWluZXIqIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZVNlcnZp
Y2VXb3JrZXJDb250YWluZXIoKQogCiAjZW5kaWYKIAordm9pZCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjptYXJrQXNDcm9zc09yaWdpbklzb2xhdGVkKCkKK3sKKyAgICBnbG9iYWxJc0Nyb3NzT3Jp
Z2luSXNvbGF0ZWQgPSB0cnVlOworfQorCitib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6Omlz
Q3Jvc3NPcmlnaW5Jc29sYXRlZCgpCit7CisgICAgcmV0dXJuIGdsb2JhbElzQ3Jvc3NPcmlnaW5J
c29sYXRlZDsKK30KKwogYm9vbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0VGFza1RvKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFRhc2smJiB0YXNrKQog
ewogICAgIExvY2tlciBsb2NrZXIgeyBhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcExvY2sg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IGQ0
YmI4ZTE5YWU3OGY3ZTgxYTZjYjYxZmI2ZTU1MjNjMTA0YzRkZGUuLjI2NWIzNDgwNjU0YTZhMDNk
NTAxY2VlZWY3Y2I4OGY2MzY4NWJhZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaApAQCAtMTcyLDYgKzE3Miw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHN0ZDo6dW5pcXVlX3B0cjxGb250TG9hZFJlcXVlc3Q+IGZvbnRMb2FkUmVxdWVzdChTdHJpbmcm
IHVybCwgYm9vbCBpc1NWRywgYm9vbCBpc0luaXRpYXRpbmdFbGVtZW50SW5Vc2VyQWdlbnRTaGFk
b3dUcmVlLCBMb2FkZWRGcm9tT3BhcXVlU291cmNlKTsKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5M
b2FkaW5nRm9udFNvb24oRm9udExvYWRSZXF1ZXN0JikgeyB9CiAKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgdm9pZCBtYXJrQXNDcm9zc09yaWdpbklzb2xhdGVkKCk7CisgICAgc3RhdGljIGJv
b2wgaXNDcm9zc09yaWdpbklzb2xhdGVkKCk7CisKICAgICB2b2lkIHJlZigpIHsgcmVmU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAgICAgdm9pZCBkZXJlZigpIHsgZGVyZWZTY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5j
cHAKaW5kZXggZjYxYTRjZGFlMjVkZjlmYWNmNzgzOTdkNzIyOGNmNDMwYTc3MGM2ZS4uYzI4ZTU3
OGVlMDdkNDBiNDA2MWQ0ZTdkMGZhM2RjYjNlNTBkZGMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC05NDgsNiArOTQ4LDE1IEBAIHZvaWQgRG9jdW1lbnRM
b2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdCBS
ZXNvdXJjZVJlCiAgICAgcmVzcG9uc2VSZWNlaXZlZChyZXNwb25zZSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOwogfQogCitzdGF0aWMgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCB0b05lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2goY29uc3Qgc3RkOjpvcHRpb25hbDxD
cm9zc09yaWdpbk9wZW5lclBvbGljeUVuZm9yY2VtZW50UmVzdWx0PiYgY3VycmVudENvb3BFbmZv
cmNlbWVudFJlc3VsdCkKK3sKKyAgICBpZiAoIWN1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQg
fHwgIWN1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQtPm5lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2gpCisgICAgICAgIHJldHVybiBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
OjpObzsKKyAgICBpZiAoY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdC0+Y3Jvc3NPcmlnaW5P
cGVuZXJQb2xpY3kudmFsdWUgPT0gQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1ZTo6U2FtZU9y
aWdpblBsdXNDT0VQKQorICAgICAgICByZXR1cm4gTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaDo6WWVzV2l0aENyb3NzT3JpZ2luSXNvbGF0aW9uOworICAgIHJldHVybiBOZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoOjpZZXNXaXRob3V0Q3Jvc3NPcmlnaW5Jc29sYXRpb247Cit9
CisKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBBU1NFUlQocmVzcG9uc2UuY2VydGlmaWNhdGVJbmZvKCkpOwpAQCAt
MTA0OCw3ICsxMDU3LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGkKICAgICBpZiAobWFpblJl
c291cmNlTG9hZGVyKQogICAgICAgICBtYWluUmVzb3VyY2VMb2FkZXItPm1hcmtJbkFzeW5jUmVz
cG9uc2VQb2xpY3lDaGVjaygpOwogICAgIGF1dG8gcmVxdWVzdElkZW50aWZpZXIgPSBQb2xpY3lD
aGVja0lkZW50aWZpZXI6OmNyZWF0ZSgpOwotICAgIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRH
cm91cFN3aXRjaCA9IG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdCAmJiBtX2N1cnJlbnRD
b29wRW5mb3JjZW1lbnRSZXN1bHQtPm5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g7Cisg
ICAgYXV0byBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoID0gdG9OZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoKG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdCk7CiAgICAg
ZnJhbWVMb2FkZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5KG1fcmVzcG9uc2UsIHJlcXVlc3RJZGVu
dGlmaWVyLCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtYWluUmVzb3VyY2VMb2FkZXIgPSBXVEZNb3ZlKG1haW5S
ZXNvdXJjZUxvYWRlciksCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyID0gY29tcGxldGlvbkhh
bmRsZXJDYWxsZXIucmVsZWFzZSgpLCByZXF1ZXN0SWRlbnRpZmllcl0gKFBvbGljeUFjdGlvbiBw
b2xpY3ksIFBvbGljeUNoZWNrSWRlbnRpZmllciByZXNwb25zZUlkZW50aWZpZXIpIG11dGFibGUg
ewogICAgICAgICBSRUxFQVNFX0FTU0VSVChyZXNwb25zZUlkZW50aWZpZXIuaXNWYWxpZEZvcihy
ZXF1ZXN0SWRlbnRpZmllcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApp
bmRleCA5NjRlMmRkMTIwNzAzMzFhNjVjYTM0MWFjNzBlNGIyODc0MjAwYTBkLi4yNmM5NjYzOWFm
YWUyNDRjYTAwMDVjZDY4NmQwOTI0ZWMyMGU1MTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcApAQCAtODE2LDcgKzgxNiw3IEBAIHZvaWQgRW1wdHlGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hTaG93KCkKIHsKIH0KIAotdm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYsIGJvb2wsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikKK3ZvaWQgRW1wdHlGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmLCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGlj
eUZ1bmN0aW9uJiYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFt
ZUxvYWRlckNsaWVudC5oCmluZGV4IDEyMGE0YTUyMGJkMWYxMmQ3M2QxNGY2MmVlMGVlNDBiOTg4
NGVhYWIuLjNjYmIzMTBhMmUyYjFhNTlkNTM1NjVmMTE4MzA3YzNhMzdlOTEwMTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtOTYsNyAr
OTYsNyBAQCBwcml2YXRlOgogICAgIEZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYsIE5ld0ZyYW1lT3BlbmVyUG9saWN5KSBmaW5hbDsKICAgICB2b2lkIGRp
c3BhdGNoU2hvdygpIGZpbmFsOwogCi0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJl
c3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlv
biYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGb3Jt
U3RhdGUqLCBjb25zdCBTdHJpbmcmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5
RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIEZvcm1TdGF0ZSos
IFBvbGljeURlY2lzaW9uTW9kZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1
bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDdhYTc2YWM2ZDFlYmVkMDEzZTYw
Yjc3OTY1NDk2ZGI5ZWMzYTk5ZjAuLjZiMDIzNjFhMWI1NjhkMmU0NWQyNDg3MDQ5NzcwZTU4NzQ2
Yjg3YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtNDEzLDcgKzQx
Myw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCiAg
ICAgfQogfQogCi12b2lkIEZyYW1lTG9hZGVyOjpjaGVja0NvbnRlbnRQb2xpY3koY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVy
LCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIENvbnRlbnRQb2xpY3lEZWNp
c2lvbkZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0NvbnRlbnRQ
b2xpY3koY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFBvbGljeUNoZWNrSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIG5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIENvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYg
ZnVuY3Rpb24pCiB7CiAgICAgaWYgKCFhY3RpdmVEb2N1bWVudExvYWRlcigpKSB7CiAgICAgICAg
IC8vIExvYWQgd2FzIGNhbmNlbGxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRl
eCBlNTZjMDhmNzAzNmE1ZGZiNzMzYzJlNWY1Y2VlY2Q4ODQyMmFmNTE5Li43OTg5OGE2NGE0YjZi
ODEyY2NjZTkyZmQwNmM2MDEyMzA0N2IyN2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaApAQCAtMjIwLDcgKzIyMCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RGVmZXJzTG9h
ZGluZyhib29sKTsKIAotICAgIHZvaWQgY2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJik7CisgICAgdm9p
ZCBjaGVja0NvbnRlbnRQb2xpY3koY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIFBvbGljeUNoZWNr
SWRlbnRpZmllciwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGlj
eURlY2lzaW9uRnVuY3Rpb24mJik7CiAKICAgICB2b2lkIGRpZEV4cGxpY2l0T3BlbigpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDM5YmI0MDU0MDlj
NDE3NDc4NWE5MzcyMjgzMDAxODYzYzBhODc3NWQuLjI2ODQzMWE1ZDk1NWMxZWUzMTNmMDIyM2Y3
MDJkOWYxZTRkNTUwMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVu
dC5oCkBAIC0xOTAsNyArMTkwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgRnJhbWUqIGRpc3Bh
dGNoQ3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgTmV3RnJhbWVPcGVuZXJQb2xp
Y3kpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hTaG93KCkgPSAwOwogCi0gICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4
dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
LCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1l
LCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29u
c3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIEZvcm1TdGF0ZSosIFBvbGljeURlY2lzaW9u
TW9kZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAppbmRleCBjNTE1YmFlNGQyMThiMzUyZGZkMjI1MGRh
YjUwODRjNTQzZWI4ODc5Li5jZGQwMTA0MTA2NTk2NzNjNzMyYzliOTNkNzBlNGRmYWU2MDY0NDc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKQEAgLTE2Nyw2ICsx
NjcsMTIgQEAgZW51bSBjbGFzcyBVbmxvYWRFdmVudFBvbGljeSB7CiAgICAgVW5sb2FkQW5kUGFn
ZUhpZGUKIH07CiAKK2VudW0gY2xhc3MgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCA6
IHVpbnQ4X3QgeworICAgIE5vLAorICAgIFllc1dpdGhvdXRDcm9zc09yaWdpbklzb2xhdGlvbiwK
KyAgICBZZXNXaXRoQ3Jvc3NPcmlnaW5Jc29sYXRpb24sCit9OworCiAvLyBQYXNzZWQgdG8gRnJh
bWVMb2FkZXI6OnVybFNlbGVjdGVkKCkgYW5kIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVJZkph
dmFTY3JpcHRVUkwoKQogLy8gdG8gY29udHJvbCB3aGV0aGVyLCBpbiB0aGUgY2FzZSBvZiBhIEph
dmFTY3JpcHQgVVJMLCBleGVjdXRlSWZKYXZhU2NyaXB0VVJMKCkgc2hvdWxkCiAvLyByZXBsYWNl
IHRoZSBkb2N1bWVudC4gSXQgaXMgYSBGSVhNRSB0byBlbGltaW5hdGUgdGhpcyBleHRyYSBwYXJh
bWV0ZXIgZnJvbQpAQCAtMjc2LDYgKzI4MiwxNSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6OlBvbGljeUFjdGlvbj4gewogICAgID47CiB9OwogCit0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g+
IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpOZWVk
c0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLAorICAgICAgICBXZWJDb3JlOjpOZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoOjpObywKKyAgICAgICAgV2ViQ29yZTo6TmVlZHNCcm93c2lu
Z0NvbnRleHRHcm91cFN3aXRjaDo6WWVzV2l0aG91dENyb3NzT3JpZ2luSXNvbGF0aW9uLAorICAg
ICAgICBXZWJDb3JlOjpOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoOjpZZXNXaXRoQ3Jv
c3NPcmlnaW5Jc29sYXRpb24KKyAgICA+OworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5PiB7CiAgICAgdXNpbmcg
dmFsdWVzID0gRW51bVZhbHVlczwKICAgICAgICAgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA5YTMyNTVhNjlkMjkx
NjJhMzc2NWZjNDQxMTAwZWIzNDMwNWFhYmE2Li5iZGRkNjc1OWQyNTU2NTYxNTE5NTI5YmU5OGM2
MzEyNThjZWUyMmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xOTIzLDkgKzE5
MjMsOCBAQCBib29sIERPTVdpbmRvdzo6aXNTZWN1cmVDb250ZXh0KCkgY29uc3QKIAogYm9vbCBE
T01XaW5kb3c6OmNyb3NzT3JpZ2luSXNvbGF0ZWQoKSBjb25zdAogewotICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnRlZCB0aGlzLiBUaGlzIHNob3VsZCByZXR1cm4gdHJ1ZSBpZiBDT09QL0NPRVAgYXJl
IHVzZWQgYW5kIHRoZSBwYWdlIGlzIGFsbG93ZWQgdG8gdXNlIEFQSXMKLSAgICAvLyB0aGF0IHJl
cXVpcmUgY3Jvc3Mtb3JpZ2luIGlzb2xhdGlvbiAoZS5nLiBTaGFyZWRBcnJheUJ1ZmZlcikuCi0g
ICAgcmV0dXJuIGZhbHNlOworICAgIEFTU0VSVCghU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6aXND
cm9zc09yaWdpbklzb2xhdGVkKCkgfHwgIWRvY3VtZW50KCkgfHwgZG9jdW1lbnQoKS0+dG9wRG9j
dW1lbnQoKS5jcm9zc09yaWdpbk9wZW5lclBvbGljeSgpLnZhbHVlID09IENyb3NzT3JpZ2luT3Bl
bmVyUG9saWN5VmFsdWU6OlNhbWVPcmlnaW5QbHVzQ09FUCk7CisgICAgcmV0dXJuIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OmlzQ3Jvc3NPcmlnaW5Jc29sYXRlZCgpOwogfQogCiBzdGF0aWMgdm9p
ZCBkaWRBZGRTdG9yYWdlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cmIHdpbmRvdykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmlkbAppbmRleCA0MGY4NzQ3YjFkYWYzZTE0OTA2NTBkMzFmOTY1ZTFkY2Zh
ZTFmNTlhLi4xYmMxMzAxY2ZhMGNmOWJiNDI0ZDVjZjIxNGMwZWJkODQ1MDBmM2FiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC03OSw4ICs3OSw2IEBACiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIE5hdmlnYXRvciBuYXZpZ2F0b3I7CiAgICAgLy8gRklYTUU6IFRoaXMgaXMgc3BlY2lm
aWVkIHRvIGJlIFtTZWN1cmVDb250ZXh0XQogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01BcHBs
aWNhdGlvbkNhY2hlIGFwcGxpY2F0aW9uQ2FjaGU7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCAn
b3JpZ2luSXNvbGF0ZWQnCi0gICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gb3JpZ2lu
SXNvbGF0ZWQ7CiAKICAgICAvLyB1c2VyIHByb21wdHMKICAgICB1bmRlZmluZWQgYWxlcnQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggZjE4
NGMyNDg4ZjVmOTRiZDdlMGM3OGIyOTgyMzJmMjk4Nzc0MWFlNy4uYzI3ZThkZmFjOGMzNmNkNzMw
YTJkMmRjMDk3ZGQ3NjAxYjA3MDVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5jcHAKQEAgLTU4NSw5ICs1ODUsNyBAQCB2b2lkIFdvcmtlckdsb2JhbFNj
b3BlOjpjbGVhckRlY29kZWRTY3JpcHREYXRhKCkKIAogYm9vbCBXb3JrZXJHbG9iYWxTY29wZTo6
Y3Jvc3NPcmlnaW5Jc29sYXRlZCgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudGVk
IHRoaXMuIFRoaXMgc2hvdWxkIHJldHVybiB0cnVlIGlmIENPT1AvQ09FUCBhcmUgdXNlZCBhbmQg
dGhlIHBhZ2UgaXMgYWxsb3dlZCB0byB1c2UgQVBJcwotICAgIC8vIHRoYXQgcmVxdWlyZSBjcm9z
cy1vcmlnaW4gaXNvbGF0aW9uIChlLmcuIFNoYXJlZEFycmF5QnVmZmVyKS4KLSAgICByZXR1cm4g
ZmFsc2U7CisgICAgcmV0dXJuIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmlzQ3Jvc3NPcmlnaW5J
c29sYXRlZCgpOwogfQogCiB2b2lkIFdvcmtlckdsb2JhbFNjb3BlOjp1cGRhdGVTb3VyY2VQcm92
aWRlckJ1ZmZlcnMoY29uc3QgU2NyaXB0QnVmZmVyJiBtYWluU2NyaXB0LCBjb25zdCBIYXNoTWFw
PFVSTCwgU2NyaXB0QnVmZmVyPiYgaW1wb3J0ZWRTY3JpcHRzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZmIyMzQ3ZDVmODljODUxMGZkNzA1YjQyNWE0ZWM1
MjQ1ODRjZTU3YS4uMmYxM2Y0YmY3YWE5YjEyMmU4OTFjMDE2ZjljY2Y5NDBiZTUwZDZjOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC03MTksNiArNzE5LDcg
QEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpNZWRpYUVu
Z2luZVN1cHBvcnRQYXJhbWV0ZXJzJzogWyc8V2ViQ29yZS9NZWRpYVBsYXllci5oPiddLAogICAg
ICAgICAnV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5Jzog
Wyc8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6TW91c2VFdmVudFBvbGljeSc6IFsnPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4nXSwK
KyAgICAgICAgJ1dlYkNvcmU6Ok5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gnOiBbJzxX
ZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok5ldHdvcmtU
cmFuc2FjdGlvbkluZm9ybWF0aW9uJzogWyc8V2ViQ29yZS9OZXR3b3JrTG9hZEluZm9ybWF0aW9u
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YSc6IFsnPFdlYkNv
cmUvUGFzdGVib2FyZC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6UGFzdGVib2FyZEltYWdlJzog
Wyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5
UG9pbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2Ev
WFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCmluZGV4IDkyZTE0ZTRlZGY3MTliMWVj
MDJkZmQ4NTQxODI5NDQyMjNjYzI2YTUuLjBhODEyMWFlNzUwMDUwYjM3MDcxMzI4MTI5YzA3NDY3
NGEzNTk1ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGls
aXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENT
ZXJ2aWNlRW50cnlQb2ludC5oCkBAIC05Miw2ICs5MiwxMSBAQCB2b2lkIFhQQ1NlcnZpY2VJbml0
aWFsaXplcihPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uLCB4cGNfb2Jq
ZWN0XwogICAgICAgICAgICAgSlNDOjpDb25maWc6OmNvbmZpZ3VyZUZvclRlc3RpbmcoKTsKICAg
ICAgICAgaWYgKHhwY19kaWN0aW9uYXJ5X2dldF9ib29sKGluaXRpYWxpemVyTWVzc2FnZSwgImRp
c2FibGUtaml0IikpCiAgICAgICAgICAgICBKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6OnNldEpJ
VEVuYWJsZWQoZmFsc2UpOworICAgICAgICBpZiAoeHBjX2RpY3Rpb25hcnlfZ2V0X2Jvb2woaW5p
dGlhbGl6ZXJNZXNzYWdlLCAiZW5hYmxlLXNoYXJlZC1hcnJheS1idWZmZXIiKSkgeworICAgICAg
ICAgICAgSlNDOjpPcHRpb25zOjppbml0aWFsaXplKCk7CisgICAgICAgICAgICBKU0M6Ok9wdGlv
bnM6OkFsbG93VW5maW5hbGl6ZWRBY2Nlc3NTY29wZSBzY29wZTsKKyAgICAgICAgICAgIEpTQzo6
T3B0aW9uczo6dXNlU2hhcmVkQXJyYXlCdWZmZXIoKSA9IHRydWU7CisgICAgICAgIH0KICAgICB9
CiAKICAgICBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZVR5cGUgZGVsZWdhdGUoV1RGTW92
ZShjb25uZWN0aW9uKSwgaW5pdGlhbGl6ZXJNZXNzYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggYWZmYjU4
YjI5NzQ0ODI5MTE3ZDE3ZDFlMmE2MTQ3ZTIxYmY4YjZhMS4uMjdjYzFlMzZiYTM5M2Q0MGFkZjRh
ZjkyMzYxOTVkMWE2NGYzYzA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTEyMiw2ICsxMjIsNyBAQCB2b2lk
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtZW1vcnlDYWNoZURpc2FibGVkOwogICAgIGVuY29k
ZXIgPDwgYXR0clN0eWxlRW5hYmxlZDsKICAgICBlbmNvZGVyIDw8IHNob3VsZFRocm93RXhjZXB0
aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uOworICAgIGVuY29kZXIgPDwgaXNDcm9z
c09yaWdpbklzb2xhdGVkOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgZW5j
b2RlciA8PCBoYXNJbWFnZVNlcnZpY2VzOwpAQCAtMzg5LDYgKzM5MCw4IEBAIGJvb2wgV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2Vi
UHJvY2Vzc0NyZWF0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBhcmFtZXRlcnMuc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVj
bGFyYXRpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLmlzQ3Jvc3NPcmlnaW5Jc29sYXRlZCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocGFyYW1ldGVycy5oYXNJbWFnZVNlcnZpY2VzKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBkYzZiMjI5N2QyZjhh
ZDlhODI1MWYyMjgyMmQ5ZGFjZDhlYzg5MTZmLi45Yjk4NDA0ODY1ZGYzNDAyNWU4YzEzNjQ0ZTIw
MmI1MDhlOWUzNzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xMzUsNiArMTM1LDcgQEAgc3RydWN0IFdlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wgbWVtb3J5Q2FjaGVEaXNhYmxlZCB7IGZh
bHNlIH07CiAgICAgYm9vbCBhdHRyU3R5bGVFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIHNo
b3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uIHsgdHJ1ZSB9
OworICAgIGJvb2wgaXNDcm9zc09yaWdpbklzb2xhdGVkIHsgZmFsc2UgfTsgLy8gQ3Jvc3Mtb3Jp
Z2luIGlzb2xhdGlvbiB2aWEgQ09PUCtDT0VQIGhlYWRlcnMuCiAKICNpZiBFTkFCTEUoU0VSVklD
RV9DT05UUk9MUykKICAgICBib29sIGhhc0ltYWdlU2VydmljZXMgeyBmYWxzZSB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRl
eCAxMDgxYmEyYTViZmMzNGI5ZmI3M2FmODg1MTI1M2U3OGVhYWViM2M4Li5kMzBmNmQ0OWIwOTJm
Nzk0MTc1ODU2ODUyMWEwNmFhMzBkMmJkYmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaApAQCAtNjEsNiArNjEsNyBAQCBwdWJs
aWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5j
aGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSA9IDA7CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRDb25maWd1cmVKU0NGb3JUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICAgICAgdmlydHVhbCBib29sIGlzSklURW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KKyAgICAgICAgdmlydHVhbCBib29sIHNob3VsZEVuYWJsZVNoYXJlZEFycmF5QnVmZmVy
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAg
dmlydHVhbCBSZWZQdHI8WFBDRXZlbnRIYW5kbGVyPiB4cGNFdmVudEhhbmRsZXIoKSBjb25zdCB7
IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IGY3Nzcz
ZmU2ZGQwMjkyZDJjMzljY2ZmZGMwOGI1MzY5ZTA1MjBlNTIuLmRhYzMxYzNkOWY2NmEwOGIwZTBk
MDY1NmFmZTY3YTViZjg4YWEzYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtMjA1LDYgKzIw
NSw4IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKICAgICAgICAgICAg
IHhwY19kaWN0aW9uYXJ5X3NldF9ib29sKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJjb25maWd1
cmUtanNjLWZvci10ZXN0aW5nIiwgdHJ1ZSk7CiAgICAgICAgIGlmICghbV9jbGllbnQtPmlzSklU
RW5hYmxlZCgpKQogICAgICAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X2Jvb2woYm9vdHN0cmFw
TWVzc2FnZS5nZXQoKSwgImRpc2FibGUtaml0IiwgdHJ1ZSk7CisgICAgICAgIGlmIChtX2NsaWVu
dC0+c2hvdWxkRW5hYmxlU2hhcmVkQXJyYXlCdWZmZXIoKSkKKyAgICAgICAgICAgIHhwY19kaWN0
aW9uYXJ5X3NldF9ib29sKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJlbmFibGUtc2hhcmVkLWFy
cmF5LWJ1ZmZlciIsIHRydWUpOwogICAgIH0KIAogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJp
bmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgIm1lc3NhZ2UtbmFtZSIsICJib290c3RyYXAiKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApp
bmRleCA3NWE2NWM0MzM3MDY1NDc4MDBlNjIwYWQwNWY0NTZjMzYwNDFlZmYzLi4yNjE4YTRiODI2
NDE5MGJhNWM3NTY3YzY0MDI1Yzc2Y2QzODgyMDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCkBAIC0zMzAsNyArMzMwLDcgQEAgdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFz
eW5jKEZyYW1lSWRlbnRpZmllcgogICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uQXN5bmNTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1l
SUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3Zl
KG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgV1RGTW92ZShvcmlnaW5hdGluZ0ZyYW1lSW5mbyksIG9y
aWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1v
dmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgbGlz
dGVuZXJJRCk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
clJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJ
bmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1F
VHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJ
bmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50
NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEm
JiBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2Fu
U2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0Fs
bG93ZWRCeUluamVjdGVkQnVuZGxlLCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoIG5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEp
CiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lv
bmFsUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQ
cm94eS5oCmluZGV4IDBhYmVhOWRhNmJiZDIwMTE0ZmY1NGMxYjhkNzFjYWZkYmY3MjM3NjIuLjY0
YTAxOGVkNGI4YzRkYzVkODYxNTdiNjlhM2EyODQ2YzNmOThjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtMTI1LDcgKzEyNSw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBzZW5kTWVzc2FnZShVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYm
LCBPcHRpb25TZXQ8SVBDOjpTZW5kT3B0aW9uPiwgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8Q29t
cGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkRlY29kZXIqKT4sIHVpbnQ2NF90Pj4mJikgZmluYWw7
CiAKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYs
IEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxXZWJQ
YWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxp
c3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5
cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5q
ZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0
X3QgbGlzdGVuZXJJRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0
IFVzZXJEYXRhJik7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1F
VHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJ
bmplY3RlZEJ1bmRsZSwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwg
dWludDY0X3QgbGlzdGVuZXJJRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIs
IGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwm
Jik7CiAgICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRh
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcApp
bmRleCAzYjY4MWU1ZTkxYmJmZTUwOTNlZTg3YzhmNTdmNDlkMmFkYWFhZTQ5Li4yMjE5NzI5NThh
YzA2MTEzODJiN2IyZjdlMzM4NWVlMzA5ZjZmZDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgUmVmUHRyPFdl
YlByb2Nlc3NQcm94eT4gU3VzcGVuZGVkUGFnZVByb3h5OjpmaW5kUmV1c2FibGVTdXNwZW5kZWRQ
YWdlUHJvY2VzcyhXZWIKIHsKICAgICBmb3IgKGF1dG8qIHN1c3BlbmRlZFBhZ2UgOiBhbGxTdXNw
ZW5kZWRQYWdlcygpKSB7CiAgICAgICAgIGF1dG8mIHByb2Nlc3MgPSBzdXNwZW5kZWRQYWdlLT5w
cm9jZXNzKCk7Ci0gICAgICAgIGlmICgmcHJvY2Vzcy5wcm9jZXNzUG9vbCgpID09ICZwcm9jZXNz
UG9vbCAmJiBwcm9jZXNzLnJlZ2lzdHJhYmxlRG9tYWluKCkgPT0gcmVnaXN0cmFibGVEb21haW4g
JiYgJnByb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpID09ICZkYXRhU3RvcmUpCisgICAgICAgIGlm
ICgmcHJvY2Vzcy5wcm9jZXNzUG9vbCgpID09ICZwcm9jZXNzUG9vbCAmJiBwcm9jZXNzLnJlZ2lz
dHJhYmxlRG9tYWluKCkgPT0gcmVnaXN0cmFibGVEb21haW4gJiYgJnByb2Nlc3Mud2Vic2l0ZURh
dGFTdG9yZSgpID09ICZkYXRhU3RvcmUgJiYgIXByb2Nlc3MuaXNDcm9zc09yaWdpbklzb2xhdGVk
KCkpCiAgICAgICAgICAgICByZXR1cm4gJnByb2Nlc3M7CiAgICAgfQogICAgIHJldHVybiBudWxs
cHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNjg5OWUy
ODkyNzc1Yjg0YTdlNWMwN2ZmNTlkMzExYjdkYmZlNTI5ZS4uZmEyNmE4ZjljY2Y2ZmM3NWM5NWYz
MjM0NjgyYzJhNzkzMmZlY2U0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCkBAIC01NjE5LDEyICs1NjE5LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lCiAK
IHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVudGlm
aWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29s
IGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwKLSAgICBi
b29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0
R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCB1aW50NjRf
dCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCisgICAgYm9vbCB3YXNBbGxv
d2VkQnlJbmplY3RlZEJ1bmRsZSwgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCBuZWVk
c0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRl
bnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQog
ewogICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCks
IG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZpZXIsIG5h
dmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRB
dHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBuZWVkc0Jyb3dzaW5nQ29udGV4
dEdyb3VwU3dpdGNoLCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgbGlzdGVuZXJJRCwgdXNl
ckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQ
YWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZv
LCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0
dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVudGlm
aWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5T
aG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxs
b3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggbmVl
ZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElk
ZW50aWZpZXIsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
IHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBA
IC01NjQ4LDE5ICs1NjQ4LDIxIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAgICAgIH0p
OwogCiAgICAgICAgIGF1dG8gd2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2VzcyA9IFdpbGxDb250
aW51ZUxvYWRJbk5ld1Byb2Nlc3M6Ok5vOwotICAgICAgICBpZiAocG9saWN5QWN0aW9uID09IFBv
bGljeUFjdGlvbjo6VXNlICYmIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggJiYgbmF2
aWdhdGlvbikgewotICAgICAgICAgICAgUmVnaXN0cmFibGVEb21haW4gcmVzcG9uc2VEb21haW4g
eyBuYXZpZ2F0aW9uUmVzcG9uc2UtPnJlc3BvbnNlKCkudXJsKCkgfTsKLSAgICAgICAgICAgIC8v
IEF2b2lkIHByb2Nlc3Mtc3dhcHBpbmcgaW4gY2FzZXMgd2hlcmUgdGhlIHByb2Nlc3Mgb25seSBj
b250YWlucyBhIHNpbmdsZSBwYWdlIGFuZCBpcyBvcmlnaW4tY2xlYW4uCi0gICAgICAgICAgICBp
ZiAocHJvY2Vzcy0+cGFnZUNvdW50KCkgPiAxIHx8IChwcm9jZXNzLT5vcHRpb25hbFJlZ2lzdHJh
YmxlRG9tYWluKCkgJiYgKnByb2Nlc3MtPm9wdGlvbmFsUmVnaXN0cmFibGVEb21haW4oKSAhPSBy
ZXNwb25zZURvbWFpbikpIHsKLSAgICAgICAgICAgICAgICBXRUJQQUdFUFJPWFlfUkVMRUFTRV9M
T0coUHJvY2Vzc1N3YXBwaW5nLCAiZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQ6IFByb2Nl
c3Mtc3dhcHBpbmcgZHVlIHRvIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Iik7Ci0gICAgICAg
ICAgICAgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkucHJlcGFyZUxvYWRG
b3JXZWJQcm9jZXNzVHJhbnNmZXIocHJvY2Vzcy0+Y29yZVByb2Nlc3NJZGVudGlmaWVyKCksIG1h
aW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUo
cHJvdGVjdGVkVGhpcyksIHJlc3BvbnNlRG9tYWluID0gV1RGTW92ZShyZXNwb25zZURvbWFpbiks
IG5hdmlnYXRpb24sIG5hdmlnYXRpb25SZXNwb25zZSA9IFdURk1vdmUobmF2aWdhdGlvblJlc3Bv
bnNlKSwgc2VuZGVyID0gV1RGTW92ZShzZW5kZXIpXShhdXRvIGV4aXN0aW5nTmV0d29ya1Jlc291
cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgICAg
IGF1dG8gcHJvY2Vzc0Zvck5hdmlnYXRpb24gPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkucHJv
Y2Vzc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHdlYnNpdGVEYXRhU3RvcmUoKSwgdGhpcywgcmVzcG9u
c2VEb21haW4pOwotICAgICAgICAgICAgICAgICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1By
b2Nlc3MoKm5hdmlnYXRpb24sIG51bGxwdHIsIFdURk1vdmUocHJvY2Vzc0Zvck5hdmlnYXRpb24p
LCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OjpObywgU2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkOjpZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24sIG51bGxwdHIsIGV4aXN0aW5n
TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSk7Ci0KLSAgICAgICAgICAgICAg
ICAgICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb246Oklnbm9yZSwgbmF2aWdh
dGlvbi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3Zl
KHNlbmRlciksIHsgfSwgV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6WWVzKTsKLSAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Cisg
ICAgICAgIGlmIChwb2xpY3lBY3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYgbmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCAhPSBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
OjpObyAmJiBuYXZpZ2F0aW9uKSB7CisgICAgICAgICAgICBXRUJQQUdFUFJPWFlfUkVMRUFTRV9M
T0coUHJvY2Vzc1N3YXBwaW5nLCAiZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQ6IFByb2Nl
c3Mtc3dhcHBpbmcgZHVlIHRvIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Iik7CisgICAgICAg
ICAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5wcmVwYXJlTG9hZEZvcldl
YlByb2Nlc3NUcmFuc2Zlcihwcm9jZXNzLT5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSwgbWFpblJl
c291cmNlTG9hZElkZW50aWZpZXIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90
ZWN0ZWRUaGlzKSwgbmF2aWdhdGlvbiwgbmF2aWdhdGlvblJlc3BvbnNlID0gV1RGTW92ZShuYXZp
Z2F0aW9uUmVzcG9uc2UpLCBzZW5kZXIgPSBXVEZNb3ZlKHNlbmRlciksIG5lZWRzQnJvd3NpbmdD
b250ZXh0R3JvdXBTd2l0Y2hdKGF1dG8gZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRp
ZmllclRvUmVzdW1lKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBSZWZQdHI8V2ViUHJvY2Vz
c1Byb3h5PiBwcm9jZXNzRm9yTmF2aWdhdGlvbjsKKyAgICAgICAgICAgICAgICBpZiAobmVlZHNC
cm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCA9PSBOZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dp
dGNoOjpZZXNXaXRoQ3Jvc3NPcmlnaW5Jc29sYXRpb24pCisgICAgICAgICAgICAgICAgICAgIHBy
b2Nlc3NGb3JOYXZpZ2F0aW9uID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmNyZWF0ZU5ld1dl
YlByb2Nlc3MoJndlYnNpdGVEYXRhU3RvcmUoKSwgV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1l
ZDo6Tm8sIFdlYlByb2Nlc3NQcm94eTo6SXNDcm9zc09yaWdpbklzb2xhdGVkOjpZZXMpOworICAg
ICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBSZWdpc3RyYWJsZURvbWFp
biByZXNwb25zZURvbWFpbiB7IG5hdmlnYXRpb25SZXNwb25zZS0+cmVzcG9uc2UoKS51cmwoKSB9
OworICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRm9yTmF2aWdhdGlvbiA9IG1fcHJvY2Vzcy0+
cHJvY2Vzc1Bvb2woKS5wcm9jZXNzRm9yUmVnaXN0cmFibGVEb21haW4od2Vic2l0ZURhdGFTdG9y
ZSgpLCB0aGlzLCByZXNwb25zZURvbWFpbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcygqbmF2aWdhdGlvbiwgbnVsbHB0
ciwgcHJvY2Vzc0Zvck5hdmlnYXRpb24ucmVsZWFzZU5vbk51bGwoKSwgUHJvY2Vzc1N3YXBSZXF1
ZXN0ZWRCeUNsaWVudDo6Tm8sIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJS
ZXNwb25zZVBvbGljeURlY2lzaW9uLCBudWxscHRyLCBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxv
YWRJZGVudGlmaWVyVG9SZXN1bWUpOworCisgICAgICAgICAgICAgICAgcmVjZWl2ZWRQb2xpY3lE
ZWNpc2lvbihQb2xpY3lBY3Rpb246Oklnbm9yZSwgbmF2aWdhdGlvbi5nZXQoKSwgbnVsbHB0ciwg
V1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKHNlbmRlciksIHsgfSwgV2lsbENv
bnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6WWVzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICByZWNlaXZlZFBvbGljeURl
Y2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShu
YXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKHNlbmRlciksIHsgfSwgd2lsbENvbnRpbnVlTG9h
ZEluTmV3UHJvY2Vzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IGZmZjg1YjU1MWFmMDM2OTEwZTQxMmVhZDcxMmJlY2MxM2M5MWJmMjYuLjExNTM4Y2EzNmQ1YmMz
YTlmYmYzZDI3YWFmZGYwOWM3NTZhZmRiOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC0xNzQyLDcgKzE3NDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWROYXZp
Z2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25z
dCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAg
ICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIFVSTCYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3lu
Y1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYmLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm8sIHN0ZDo6b3B0aW9u
YWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50
NjRfdCBsaXN0ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dN
SU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2Vk
QnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1
aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwg
Y29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dN
SU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2Vk
QnlJbmplY3RlZEJ1bmRsZSwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFVSTFNjaGVt
ZVRhc2tQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQVBJOjpO
YXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1F
VHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6
Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwg
c3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8
V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSwgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7
CiAgICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6
Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQsIHN0ZDo6b3B0
aW9uYWw8TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXI+IGV4aXN0aW5nTmV0d29ya1Jlc291
cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSA9IHN0ZDo6bnVsbG9wdCk7CkBAIC0yMDYxLDcgKzIw
NjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9u
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJl
c3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKLSAgICAgICAg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0
cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVy
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgICAgICBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUs
IGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIFdlYkNvcmU6Ok5lZWRzQnJvd3NpbmdD
b250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCB1
aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgdW5hYmxlVG9J
bXBsZW1lbnRQb2xpY3koV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGJlZ2luU2FmZUJyb3dz
aW5nQ2hlY2soY29uc3QgVVJMJiwgYm9vbCwgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5Jik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA4MTk2YjExOWE4ZjAyZTdhMDA2MDQwODUwMjhlOTFhZTIzMTg2NTE5Li4wNThiZDk1
ZmRlMzY2NDBjYmJhMGI2NDI4Y2IxNjIzZGI0YTE0M2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMDcsNyArMTA3LDcgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAgIyBQb2xpY3kgbWVzc2Fn
ZXMKLSAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJpbmcgZG93
bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVl
ZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElk
ZW50aWZpZXIsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEp
CisgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgU3RyaW5nIGRvd25s
b2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBlbnVtOnVpbnQ4
X3QgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCBuZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwg
dWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRp
b25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJh
bWVJbmZvRGF0YSwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXI+
IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1
ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVy
ZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3Bv
bnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogICAg
IERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9E
YXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNr
SWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0
aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJ
bmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpX
ZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkgLT4g
KHN0cnVjdCBXZWJLaXQ6OlBvbGljeURlY2lzaW9uIFBvbGljeURlY2lzaW9uKSBTeW5jaHJvbm91
cwogICAgIERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHN0cnVj
dCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIGZyYW1lTmFtZSwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAxZjgzZDQwMzI0OWMxZDc4MzZjZDJjNDRm
MmQ4NzZkYzkzMzA0MTMxLi5iMzEzZjQ1MTAzNDZjZTA3YjE1MDQxMTI5MGJiNWVkZWQ2NzcxMGZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC01OTYs
NyArNTk2LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4
dGVuc2lvbnMoKQogICAgIHBsYXRmb3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMo
KTsKIH0KIAotUmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dl
YlByb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdG9yZSwgV2ViUHJvY2Vzc1By
b3h5OjpJc1ByZXdhcm1lZCBpc1ByZXdhcm1lZCkKK1JlZjxXZWJQcm9jZXNzUHJveHk+IFdlYlBy
b2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqIHdlYnNpdGVE
YXRhU3RvcmUsIFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQgaXNQcmV3YXJtZWQsIFdlYlBy
b2Nlc3NQcm94eTo6SXNDcm9zc09yaWdpbklzb2xhdGVkIGlzQ3Jvc3NPcmlnaW5Jc29sYXRlZCkK
IHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBtX3RjY1ByZWZlcmVuY2VFbmFibGVkID0gZG9l
c0FwcEhhdmVJVFBFbmFibGVkKCk7CkBAIC02MDQsNyArNjA0LDcgQEAgUmVmPFdlYlByb2Nlc3NQ
cm94eT4gV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoV2Vic2l0ZURhdGFTdG9y
ZSogd2Vic2kKICAgICAgICAgd2Vic2l0ZURhdGFTdG9yZS0+c2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQobV90Y2NQcmVmZXJlbmNlRW5hYmxlZCk7CiAjZW5kaWYKIAotICAgIGF1dG8g
cHJvY2Vzc1Byb3h5ID0gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoKnRoaXMsIHdlYnNpdGVEYXRh
U3RvcmUsIGlzUHJld2FybWVkKTsKKyAgICBhdXRvIHByb2Nlc3NQcm94eSA9IFdlYlByb2Nlc3NQ
cm94eTo6Y3JlYXRlKCp0aGlzLCB3ZWJzaXRlRGF0YVN0b3JlLCBpc1ByZXdhcm1lZCwgaXNDcm9z
c09yaWdpbklzb2xhdGVkKTsKICAgICBpbml0aWFsaXplTmV3V2ViUHJvY2Vzcyhwcm9jZXNzUHJv
eHksIHdlYnNpdGVEYXRhU3RvcmUsIGlzUHJld2FybWVkKTsKICAgICBtX3Byb2Nlc3Nlcy5hcHBl
bmQocHJvY2Vzc1Byb3h5LmNvcHlSZWYoKSk7CiAKQEAgLTgwMyw2ICs4MDMsNyBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjppbml0aWFsaXplTmV3V2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmIHBy
b2Nlc3MsIFdlYnNpdGVEYQogICAgIHBhcmFtZXRlcnMubWVtb3J5Q2FjaGVEaXNhYmxlZCA9IG1f
bWVtb3J5Q2FjaGVEaXNhYmxlZDsKICAgICBwYXJhbWV0ZXJzLmF0dHJTdHlsZUVuYWJsZWQgPSBt
X2NvbmZpZ3VyYXRpb24tPmF0dHJTdHlsZUVuYWJsZWQoKTsKICAgICBwYXJhbWV0ZXJzLnNob3Vs
ZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uID0gbV9jb25maWd1
cmF0aW9uLT5zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlv
bigpOworICAgIHBhcmFtZXRlcnMuaXNDcm9zc09yaWdpbklzb2xhdGVkID0gcHJvY2Vzcy5pc0Ny
b3NzT3JpZ2luSXNvbGF0ZWQoKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAg
IGF1dG8mIHNlcnZpY2VDb250cm9sbGVyID0gU2VydmljZXNDb250cm9sbGVyOjpzaW5nbGV0b24o
KTsKQEAgLTEwNTEsNyArMTA1Miw3IEBAIFJlZjxXZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQb29s
OjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFJlZjxBUEk6CiAgICAgICAg
IC8vIEluIHRoZSBjb21tb24gY2FzZSwgd2UgZGVsYXkgcHJvY2VzcyBsYXVuY2ggdW50aWwgc29t
ZXRoaW5nIGlzIGFjdHVhbGx5IGxvYWRlZCBpbiB0aGUgcGFnZS4KICAgICAgICAgcHJvY2VzcyA9
IGR1bW15UHJvY2Vzc1Byb3h5KHBhZ2VDb25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCkt
PnNlc3Npb25JRCgpKTsKICAgICAgICAgaWYgKCFwcm9jZXNzKSB7Ci0gICAgICAgICAgICBwcm9j
ZXNzID0gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoKnRoaXMsIHBhZ2VDb25maWd1cmF0aW9uLT53
ZWJzaXRlRGF0YVN0b3JlKCksIFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQ6Ok5vLCBXZWJQ
cm9jZXNzUHJveHk6OlNob3VsZExhdW5jaFByb2Nlc3M6Ok5vKTsKKyAgICAgICAgICAgIHByb2Nl
c3MgPSBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZSgqdGhpcywgcGFnZUNvbmZpZ3VyYXRpb24tPndl
YnNpdGVEYXRhU3RvcmUoKSwgV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1lZDo6Tm8sIFdlYlBy
b2Nlc3NQcm94eTo6SXNDcm9zc09yaWdpbklzb2xhdGVkOjpObywgV2ViUHJvY2Vzc1Byb3h5OjpT
aG91bGRMYXVuY2hQcm9jZXNzOjpObyk7CiAgICAgICAgICAgICBtX2R1bW15UHJvY2Vzc1Byb3hp
ZXMuYWRkKHBhZ2VDb25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCktPnNlc3Npb25JRCgp
LCBtYWtlV2Vha1B0cigqcHJvY2VzcykpOwogICAgICAgICAgICAgbV9wcm9jZXNzZXMuYXBwZW5k
KCpwcm9jZXNzKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmgKaW5kZXggMDUzNTlhN2RkNDExMDU4MTE4N2QwZjA5N2U1YWZkNjI3MzU1Y2E4YS4uNjNm
YWZmOWFkOTQ2MGU2NTMwMjIxNDdiMjViOWIxNzllYjc0ZjkxOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC01MTQsNiArNTE0LDggQEAgcHVibGljOgogICAg
IHN0YXRpYyBTdHJpbmcgY29udGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5KCk7CiAjZW5kaWYKIAor
ICAgIFJlZjxXZWJQcm9jZXNzUHJveHk+IGNyZWF0ZU5ld1dlYlByb2Nlc3MoV2Vic2l0ZURhdGFT
dG9yZSosIFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQgPSBXZWJQcm9jZXNzUHJveHk6Oklz
UHJld2FybWVkOjpObywgV2ViUHJvY2Vzc1Byb3h5OjpJc0Nyb3NzT3JpZ2luSXNvbGF0ZWQgPSBX
ZWJQcm9jZXNzUHJveHk6OklzQ3Jvc3NPcmlnaW5Jc29sYXRlZDo6Tm8pOworCiBwcml2YXRlOgog
ICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAKQEAgLTUyNCw3ICs1MjYsNiBAQCBwcml2
YXRlOgogCiAgICAgUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gdHJ5VGFrZVByZXdhcm1lZFByb2Nl
c3MoV2Vic2l0ZURhdGFTdG9yZSYpOwogCi0gICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gY3JlYXRl
TmV3V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiwgV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdh
cm1lZCA9IFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQ6Ok5vKTsKICAgICB2b2lkIGluaXRp
YWxpemVOZXdXZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYsIFdlYnNpdGVEYXRhU3RvcmUqLCBX
ZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkID0gV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1l
ZDo6Tm8pOwogCiAgICAgdm9pZCBoYW5kbGVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZU5hbWUsIGNvbnN0IFVzZXJEYXRhJiBtZXNzYWdlQm9keSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBkOGU2YzczYWE2
ZTlmNTc3YmZiNTdkMmEzMTNiOGNkNmYyNWQyYmI5Li45MGJkNDcxODJjMDZiYThhOTE4NDZmMDdj
YmExYTYzNWU3MzA2NWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKQEAgLTE0Nyw5ICsxNDcsOSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Zm9yV2Vi
UGFnZXNXaXRoT3JpZ2luKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU2VjdQogICAg
IH0KIH0KIAotUmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoV2Vi
UHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0
b3JlLCBJc1ByZXdhcm1lZCBpc1ByZXdhcm1lZCwgU2hvdWxkTGF1bmNoUHJvY2VzcyBzaG91bGRM
YXVuY2hQcm9jZXNzKQorUmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVh
dGUoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRl
RGF0YVN0b3JlLCBJc1ByZXdhcm1lZCBpc1ByZXdhcm1lZCwgSXNDcm9zc09yaWdpbklzb2xhdGVk
IGlzQ3Jvc3NPcmlnaW5Jc29sYXRlZCwgU2hvdWxkTGF1bmNoUHJvY2VzcyBzaG91bGRMYXVuY2hQ
cm9jZXNzKQogewotICAgIGF1dG8gcHJveHkgPSBhZG9wdFJlZigqbmV3IFdlYlByb2Nlc3NQcm94
eShwcm9jZXNzUG9vbCwgd2Vic2l0ZURhdGFTdG9yZSwgaXNQcmV3YXJtZWQpKTsKKyAgICBhdXRv
IHByb3h5ID0gYWRvcHRSZWYoKm5ldyBXZWJQcm9jZXNzUHJveHkocHJvY2Vzc1Bvb2wsIHdlYnNp
dGVEYXRhU3RvcmUsIGlzUHJld2FybWVkLCBpc0Nyb3NzT3JpZ2luSXNvbGF0ZWQpKTsKICAgICBp
ZiAoc2hvdWxkTGF1bmNoUHJvY2VzcyA9PSBTaG91bGRMYXVuY2hQcm9jZXNzOjpZZXMpCiAgICAg
ICAgIHByb3h5LT5jb25uZWN0KCk7CiAgICAgcmV0dXJuIHByb3h5OwpAQCAtMTU4LDcgKzE1OCw3
IEBAIFJlZjxXZWJQcm9jZXNzUHJveHk+IFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlKFdlYlByb2Nl
c3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQog
UmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVGb3JTZXJ2aWNlV29y
a2VycyhXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFJlZ2lzdHJhYmxlRG9tYWluJiYgcmVn
aXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhU3RvcmUmIHdlYnNpdGVEYXRhU3RvcmUpCiB7Ci0g
ICAgYXV0byBwcm94eSA9IGFkb3B0UmVmKCpuZXcgV2ViUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29s
LCAmd2Vic2l0ZURhdGFTdG9yZSwgSXNQcmV3YXJtZWQ6Ok5vKSk7CisgICAgYXV0byBwcm94eSA9
IGFkb3B0UmVmKCpuZXcgV2ViUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLCAmd2Vic2l0ZURhdGFT
dG9yZSwgSXNQcmV3YXJtZWQ6Ok5vLCBJc0Nyb3NzT3JpZ2luSXNvbGF0ZWQ6Ok5vKSk7CiAgICAg
cHJveHktPm1fcmVnaXN0cmFibGVEb21haW4gPSBXVEZNb3ZlKHJlZ2lzdHJhYmxlRG9tYWluKTsK
ICAgICBwcm94eS0+ZW5hYmxlU2VydmljZVdvcmtlcnMocHJvY2Vzc1Bvb2wudXNlckNvbnRlbnRD
b250cm9sbGVySWRlbnRpZmllckZvclNlcnZpY2VXb3JrZXJzKCkpOwogICAgIHByb3h5LT5jb25u
ZWN0KCk7CkBAIC0xOTQsNyArMTk0LDcgQEAgcHJpdmF0ZToKIH07CiAjZW5kaWYKIAotV2ViUHJv
Y2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBX
ZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3JlLCBJc1ByZXdhcm1lZCBpc1ByZXdhcm1l
ZCkKK1dlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9j
ZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdG9yZSwgSXNQcmV3YXJtZWQg
aXNQcmV3YXJtZWQsIElzQ3Jvc3NPcmlnaW5Jc29sYXRlZCBpc0Nyb3NzT3JpZ2luSXNvbGF0ZWQp
CiAgICAgOiBBdXhpbGlhcnlQcm9jZXNzUHJveHkocHJvY2Vzc1Bvb2wuYWx3YXlzUnVuc0F0QmFj
a2dyb3VuZFByaW9yaXR5KCkpCiAgICAgLCBtX2JhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVy
KCp0aGlzKQogICAgICwgbV9wcm9jZXNzUG9vbChwcm9jZXNzUG9vbCwgaXNQcmV3YXJtZWQgPT0g
SXNQcmV3YXJtZWQ6OlllcyA/IElzV2Vhazo6WWVzIDogSXNXZWFrOjpObykKQEAgLTIxMSw2ICsy
MTEsNyBAQCBXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYg
cHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqCiAgICAgLCBtX3VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkobWFrZVVuaXF1ZTxVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5PihtYWtl
VW5pcXVlUmVmPFVJUHJveHlGb3JDYXB0dXJlPigqdGhpcykpKQogI2VuZGlmCiAgICAgLCBtX2lz
UHJld2FybWVkKGlzUHJld2FybWVkID09IElzUHJld2FybWVkOjpZZXMpCisgICAgLCBtX2lzQ3Jv
c3NPcmlnaW5Jc29sYXRlZChpc0Nyb3NzT3JpZ2luSXNvbGF0ZWQgPT0gSXNDcm9zc09yaWdpbklz
b2xhdGVkOjpZZXMpCiAgICAgLCBtX3NodXRkb3duUHJldmVudGluZ1Njb3BlQ291bnRlcihbdGhp
c10oUmVmQ291bnRlckV2ZW50IGV2ZW50KSB7IGlmIChldmVudCA9PSBSZWZDb3VudGVyRXZlbnQ6
OkRlY3JlbWVudCkgbWF5YmVTaHV0RG93bigpOyB9KQogewogICAgIFJFTEVBU0VfQVNTRVJUKGlz
TWFpblRocmVhZE9yQ2hlY2tEaXNhYmxlZCgpKTsKQEAgLTExNDYsNiArMTE0NywxMSBAQCBib29s
IFdlYlByb2Nlc3NQcm94eTo6Y2FuQmVBZGRlZFRvV2ViUHJvY2Vzc0NhY2hlKCkgY29uc3QKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAorICAgIGlmIChtX2lzQ3Jvc3NPcmlnaW5Jc29s
YXRlZCkgeworICAgICAgICBXRUJQUk9DRVNTUFJPWFlfUkVMRUFTRV9MT0coUHJvY2VzcywgImNh
bkJlQWRkZWRUb1dlYlByb2Nlc3NDYWNoZTogTm90IGFkZGluZyB0byBwcm9jZXNzIGNhY2hlIGJl
Y2F1c2UgdGhlIHByb2Nlc3MgaXMgY3Jvc3Mtb3JpZ2luIGlzb2xhdGVkIik7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisKICAgICBpZiAoV2ViS2l0Ojppc0luc3BlY3RvclByb2Nlc3NQ
b29sKHByb2Nlc3NQb29sKCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggYTQwZTY5ZGZhNTIyZGVkZWJhZmRi
NWZjNmI5ZTcxZmNiOWI0YjA1OS4uNjZkNTRlNDhkZWNlOTk1YmE1ZjBlMjE4YTA0YzhkZGVmM2E4
NjJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTEz
Myw5ICsxMzMsMTAgQEAgcHVibGljOgogICAgICAgICBZZXMKICAgICB9OwogCisgICAgZW51bSBj
bGFzcyBJc0Nyb3NzT3JpZ2luSXNvbGF0ZWQgOiBib29sIHsgTm8sIFllcyB9OwogICAgIGVudW0g
Y2xhc3MgU2hvdWxkTGF1bmNoUHJvY2VzcyA6IGJvb2wgeyBObywgWWVzIH07CiAKLSAgICBzdGF0
aWMgUmVmPFdlYlByb2Nlc3NQcm94eT4gY3JlYXRlKFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURh
dGFTdG9yZSosIElzUHJld2FybWVkLCBTaG91bGRMYXVuY2hQcm9jZXNzID0gU2hvdWxkTGF1bmNo
UHJvY2Vzczo6WWVzKTsKKyAgICBzdGF0aWMgUmVmPFdlYlByb2Nlc3NQcm94eT4gY3JlYXRlKFdl
YlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVkLCBJc0Nyb3NzT3Jp
Z2luSXNvbGF0ZWQgPSBJc0Nyb3NzT3JpZ2luSXNvbGF0ZWQ6Ok5vLCBTaG91bGRMYXVuY2hQcm9j
ZXNzID0gU2hvdWxkTGF1bmNoUHJvY2Vzczo6WWVzKTsKICAgICBzdGF0aWMgUmVmPFdlYlByb2Nl
c3NQcm94eT4gY3JlYXRlRm9yU2VydmljZVdvcmtlcnMoV2ViUHJvY2Vzc1Bvb2wmLCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiYmLCBXZWJzaXRlRGF0YVN0b3JlJik7CiAKICAgICB+V2ViUHJv
Y2Vzc1Byb3h5KCk7CkBAIC00MTksOCArNDIwLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENh
cHRpb25MYW5ndWFnZShjb25zdCBTdHJpbmcmKTsKICNlbmRpZgogCisgICAgYm9vbCBpc0Nyb3Nz
T3JpZ2luSXNvbGF0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQ3Jvc3NPcmlnaW5Jc29sYXRlZDsg
fQorCiBwcm90ZWN0ZWQ6Ci0gICAgV2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vi
c2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVkKTsKKyAgICBXZWJQcm9jZXNzUHJveHkoV2ViUHJv
Y2Vzc1Bvb2wmLCBXZWJzaXRlRGF0YVN0b3JlKiwgSXNQcmV3YXJtZWQsIElzQ3Jvc3NPcmlnaW5J
c29sYXRlZCk7CiAKICAgICAvLyBBdXhpbGlhcnlQcm9jZXNzUHJveHkKICAgICBBU0NJSUxpdGVy
YWwgcHJvY2Vzc05hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiV2ViQ29udGVudCJfczsgfQpA
QCAtNDQwLDYgKzQ0Myw3IEBAIHByb3RlY3RlZDoKIAogICAgIGJvb2wgc2hvdWxkQ29uZmlndXJl
SlNDRm9yVGVzdGluZygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaXNKSVRFbmFibGVkKCkgY29u
c3QgZmluYWw7CisgICAgYm9vbCBzaG91bGRFbmFibGVTaGFyZWRBcnJheUJ1ZmZlcigpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1faXNDcm9zc09yaWdpbklzb2xhdGVkOyB9CiAKICAgICB2b2lkIHZh
bGlkYXRlRnJlZXplclN0YXR1cygpOwogCkBAIC02MjAsNiArNjI0LDcgQEAgcHJpdmF0ZToKIAog
ICAgIGJvb2wgbV9oYXNDb21taXR0ZWRBbnlQcm92aXNpb25hbExvYWRzIHsgZmFsc2UgfTsKICAg
ICBib29sIG1faXNQcmV3YXJtZWQ7CisgICAgYm9vbCBtX2lzQ3Jvc3NPcmlnaW5Jc29sYXRlZCB7
IGZhbHNlIH07CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBib29sIG1faGFz
SXNzdWVkQXR0YWNobWVudEVsZW1lbnRSZWxhdGVkU2FuZGJveEV4dGVuc2lvbnMgeyBmYWxzZSB9
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBjMDM2MDlkM2Fi
OTI0MWJiODEyYTMzNDA5OTgyNDVlZDU4OTBhNjdjLi4wYzNhMzFlMjg3ZGRiZTkzMzZkYjI4NDE5
ZGIzOTU0NjA0NjU0OTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTgx
Nyw3ICs4MTcsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQog
ICAgIHdlYlBhZ2UtPnNob3coKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwg
Ym9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9u
JiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBv
bGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBOZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1l
UG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBhdXRvKiB3ZWJQYWdlID0gbV9mcmFt
ZS0+cGFnZSgpOwogICAgIGlmICghd2ViUGFnZSkgewpAQCAtODM4LDcgKzgzOCw3IEBAIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29u
c3QgUmVzb3VyY2VSZXNwb25zCiAgICAgV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uIHBvbGljeSA9
IHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlUG9saWN5Q2xpZW50KCkuZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2Uod2ViUGFnZSwgbV9mcmFtZS5wdHIoKSwgcmVzcG9uc2UsIHJlcXVlc3QsIHVzZXJEYXRh
KTsKICAgICAvLyBJZiBhIGJyb3dzaW5nIGNvbnRleHQgc3dpdGNoIGlzIHJlcXVlc3RlZCwgd2Ug
c3RpbGwgbmVlZCB0byBzZW5kIHRoZSBJUEMgdG8gdGhlIFVJUHJvY2VzcyBpbiBvcmRlciB0byBw
cm9jZXNzLXN3YXAgaWYgbmVjZXNzYXJ5LCBldmVuIHRob3VnaCB0aGUKICAgICAvLyBpbmplY3Rl
ZCBidW5kbGUgaGFzIGFscmVhZHkgaGFuZGxlZCB0aGUgcG9saWN5IGRlY2lzaW9uLgotICAgIGlm
IChwb2xpY3kgPT0gV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uVXNlICYmICFuZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoKSB7CisgICAgaWYgKHBvbGljeSA9PSBXS0J1bmRsZVBhZ2VQb2xp
Y3lBY3Rpb25Vc2UgJiYgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCA9PSBOZWVkc0Jy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoOjpObykgewogICAgICAgICBXRUJGUkFNRUxPQURFUkNM
SUVOVF9SRUxFQVNFX0xPRyhOZXR3b3JrLCAiZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZTogY29udGludWluZyBiZWNhdXNlIGluamVjdGVkIGJ1bmRsZSBzYXlzIHNvIik7CiAgICAgICAg
IGZ1bmN0aW9uKFBvbGljeUFjdGlvbjo6VXNlLCBpZGVudGlmaWVyKTsKICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA5NjY2ZDY3Zjg2MjA4ZDliNmM2NGY0
MTFkYmQ2M2JmMDE1OTBhNzExLi41MWQ2YzEyMzhmMjg0Mzc3YTQ3YjRmOTkwYzE5OWE1ZmI1Nzgy
NWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTI5LDcgKzEyOSw3IEBAIHBy
aXZhdGU6CiAgICAgV2ViQ29yZTo6RnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBXZWJD
b3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgV2ViQ29yZTo6TmV3RnJhbWVPcGVuZXJQb2xpY3kpIGZp
bmFsOwogICAgIHZvaWQgZGlzcGF0Y2hTaG93KCkgZmluYWw7CiAgICAgCi0gICAgdm9pZCBkaXNw
YXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsK
ICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdl
YkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZp
bmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNv
bnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNl
LCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYm
KSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMjcyYjU0N2ZlZDM1OWZjZDI3ZTZiYmRm
NzY1OTE0YzNhYjkzYmI4OS4uNjJkMmQxNDMzOTA5N2JkZDQ2YjU2MGRmNGM3M2JmNDRlYTZhZDY4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTI5LDYgKzEy
OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NldHRpbmdzLmg+CkBAIC01MjMsNiArNTI0LDkgQEAgdm9pZCBXZWJQcm9jZXNzOjpp
bml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1l
dGVycykKICAgICAKICAgICBjb21tb25WTSgpLnNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNo
b3VsZFRocm93KHBhcmFtZXRlcnMuc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFu
dFJlZGVjbGFyYXRpb24pOwogCisgICAgaWYgKHBhcmFtZXRlcnMuaXNDcm9zc09yaWdpbklzb2xh
dGVkKQorICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjptYXJrQXNDcm9zc09yaWdpbklz
b2xhdGVkKCk7CisKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICBzZXRFbmFibGVk
U2VydmljZXMocGFyYW1ldGVycy5oYXNJbWFnZVNlcnZpY2VzLCBwYXJhbWV0ZXJzLmhhc1NlbGVj
dGlvblNlcnZpY2VzLCBwYXJhbWV0ZXJzLmhhc1JpY2hDb250ZW50U2VydmljZXMpOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAwNTE2MjcwMDlhNjZlMTI0YWE5NjM2Mzc4
NGE2ZDc0Y2ViMDQzYmY4Li40YzQ3ZDQyNmVhYzk2ZTNjNWRiNWI5OWZiZTIxZDBjOGM1M2M1ODA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEyNyw3ICsxMjcsNyBAQCBwcml2YXRl
OgogICAgIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgV2ViQ29yZTo6
TmF2aWdhdGlvbkFjdGlvbiYsIFdlYkNvcmU6Ok5ld0ZyYW1lT3BlbmVyUG9saWN5KSBmaW5hbDsK
ICAgICB2b2lkIGRpc3BhdGNoU2hvdygpIGZpbmFsOwogCi0gICAgdm9pZCBkaXNwYXRjaERlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwg
V2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5h
dmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3Jl
OjpGb3JtU3RhdGUqLCBjb25zdCBXVEY6OlN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7
CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3Qg
V2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIFdl
YkNvcmU6OkZvcm1TdGF0ZSosIFdlYkNvcmU6OlBvbGljeURlY2lzaW9uTW9kZSwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZp
bmFsOwogICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQubW0KaW5kZXggMGNmYmVlZTA0NDdkMmUyODU3NzIyZmUwYTY2NDE1MTk0MDliMmFm
Yi4uYWFkZjRlNzAwNGMzOTdmZDZhZmMxZWNmZDBlYzgzZDM3NGY5MzA1ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQubW0KQEAgLTg1NSw3ICs4NTUsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaFNob3coKQogICAgIFtbd2ViVmlldyBfVUlEZWxlZ2F0ZUZvcndhcmRl
cl0gd2ViVmlld1Nob3c6d2ViVmlld107CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQ
b2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwg
V2ViQ29yZTo6TmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQ
b2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQogewogICAgIFdlYlZpZXcgKndlYlZpZXcgPSBnZXRX
ZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
aW5kZXggYzVhZmExMzM3ZGI0ZTJmYjY3Y2VlNDBmMTA0NWYxYzY5NmFjMjdmNy4uYWYxYzAyOWFh
ZTUzMzhkMWY0YzRmYWQ2MDBmMGI5MzhjOGY2NDlkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcApAQCAtNTE5LDcgKzUxOSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoU2hvdygpCiAgICAgICAgIHVpLT53ZWJWaWV3U2hvdyh3ZWJWaWV3KTsKIH0KIAotdm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGlj
eUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBOZWVkc0Jyb3dzaW5nQ29udGV4dEdy
b3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAgV2ViVmll
dyogd2ViVmlldyA9IG1fd2ViRnJhbWUtPndlYlZpZXcoKTsKICAgICBGcmFtZSogY29yZUZyYW1l
ID0gY29yZShtX3dlYkZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDYxNDY1
YzExZmMyNTU3MzI0ODIxNTgxMjU5MjUxOWM1YTYxMWFmZDIuLjU0NTRmYmJkYjM1OTQ5MTM5NWQ1
MWFlMjM4Y2NiMjM3NDg3OGZjZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtOTEs
NyArOTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWQoKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUoT3B0aW9uU2V0
PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4pIG92ZXJyaWRlOwogCi0gICAgdm9pZCBkaXNwYXRj
aERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKKyAgICB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlk
ZTsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0
IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBjb25zdCBXVEY6OlN0cmluZyYgZnJhbWVOYW1lLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rp
b24mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGly
ZWN0UmVzcG9uc2UsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIFdlYkNvcmU6OlBvbGljeURlY2lzaW9u
TW9kZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGlj
eUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA2ZWIwOWU1ODFkZGVmNTg4ODNkM2FjYmVmMDBkNzIwZDRlMDlkMWRmLi5iMTE5NTBjNjg2NDQ5
N2IzZTYxNDlhYTAwOTFmMzg3Yzc1OTE1ZGYwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMDgtMjcgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgU2hhcmVkQXJyYXlC
dWZmZXIgc3VwcG9ydCB3aGVuIENPT1AvQ09FUCBoZWFkZXJzIGFyZSB1c2VkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk1NTkKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzgyMzkxOTQ1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4gU2hhcmVkQXJyYXlCdWZmZXIg
c3VwcG9ydCBpcyBjdXJyZW50bHkgZm9yY2VmdWxseSBlbmFibGVkIGJ5CisgICAgICAgIHJ1bi13
ZWJraXQtdGVzdHMucHkgc28gaXQgd291bGQgbm90IGJlIHByYWN0aWNhbCB0byB3cml0ZSBsYXlv
dXQgdGVzdHMgZm9yIHRoaXMgYXQKKyAgICAgICAgdGhlIG1vbWVudC4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06
CisgICAgICAgICgtW1BTT05TY2hlbWUgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6dG9EYXRhOndp
dGhDT09QVmFsdWU6d2l0aENPRVBWYWx1ZTpdKToKKyAgICAgICAgKC1bUFNPTlNjaGVtZSB3ZWJW
aWV3OnN0YXJ0VVJMU2NoZW1lVGFzazpdKToKKwogMjAyMS0wOC0yNyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEV4dGVuZCBBUEkgdGVzdCBjb3ZlcmFnZSB0byBt
YWtlIHN1cmUgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZCBpcyBub3QgY2FsbGVkIHVwb24gQ09PUCBw
cm9jZXNzIHN3YXAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IGE2M2Y3NDE5
ZGRkY2I5MmNiMjMzMmJjNjlmMDEyNTQ1ZmZmODFkZjUuLmM2MzMxNjc4NTg1MDczZGRlYmRmNDQy
NmQyMDNkZmIxZDU2YmI3MjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAt
MjUxLDEzICsyNTEsMTQgQEAgQGludGVyZmFjZSBQU09OU2NoZW1lIDogTlNPYmplY3QgPFdLVVJM
U2NoZW1lSGFuZGxlcj4gewogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IF9yZWRpcmVjdHM7
CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJldGFpblB0cjxOU0RhdGE+PiBfZGF0YU1hcHBpbmdzOwog
ICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IF9jb29wVmFsdWVzOworICAgIEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+IF9jb2VwVmFsdWVzOwogICAgIEhhc2hTZXQ8aWQgPFdLVVJMU2NoZW1lVGFz
az4+IF9ydW5uaW5nVGFza3M7CiAgICAgYm9vbCBfc2hvdWxkUmVzcG9uZEFzeW5jaHJvbm91c2x5
OwogfQogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQnl0ZXM6KGNvbnN0IGNoYXIqKWJ5dGVzOwog
LSAodm9pZClhZGRSZWRpcmVjdEZyb21VUkxTdHJpbmc6KE5TU3RyaW5nICopc291cmNlVVJMU3Ry
aW5nIHRvVVJMU3RyaW5nOihOU1N0cmluZyAqKWRlc3RpbmF0aW9uVVJMU3RyaW5nOwogLSAodm9p
ZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihj
b25zdCBjaGFyKilkYXRhOwotLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJp
bmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhIHdpdGhDT09QVmFsdWU6KGNv
bnN0IGNoYXIqKWNvb3BWYWx1ZTsKKy0gKHZvaWQpYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6KE5T
U3RyaW5nICopdXJsU3RyaW5nIHRvRGF0YTooY29uc3QgY2hhciopZGF0YSB3aXRoQ09PUFZhbHVl
Oihjb25zdCBjaGFyKiljb29wVmFsdWUgd2l0aENPRVBWYWx1ZTooY29uc3QgY2hhciopY29lcFZh
bHVlOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gUFNPTlNjaGVtZQpAQCAtMjc5LDExICsyODAs
MTMgQEAgLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJp
bmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhCiAgICAgX2RhdGFNYXBwaW5ncy5zZXQodXJsU3Ry
aW5nLCBbTlNEYXRhIGRhdGFXaXRoQnl0ZXNOb0NvcHk6KHZvaWQqKWRhdGEgbGVuZ3RoOnN0cmxl
bihkYXRhKSBmcmVlV2hlbkRvbmU6Tk9dKTsKIH0KIAotLSAodm9pZClhZGRNYXBwaW5nRnJvbVVS
TFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhIHdp
dGhDT09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1ZQorLSAodm9pZClhZGRNYXBwaW5nRnJv
bVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRh
IHdpdGhDT09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1ZSB3aXRoQ09FUFZhbHVlOihjb25z
dCBjaGFyKiljb2VwVmFsdWUKIHsKICAgICBbc2VsZiBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzp1
cmxTdHJpbmcgdG9EYXRhOmRhdGFdOwogICAgIGlmIChjb29wVmFsdWUpCiAgICAgICAgIF9jb29w
VmFsdWVzLmFkZCh1cmxTdHJpbmcsIGNvb3BWYWx1ZSk7CisgICAgaWYgKGNvZXBWYWx1ZSkKKyAg
ICAgICAgX2NvZXBWYWx1ZXMuYWRkKHVybFN0cmluZywgY29lcFZhbHVlKTsKIH0KIAogLSAodm9p
ZClzZXRTaG91bGRSZXNwb25kQXN5bmNocm9ub3VzbHk6KEJPT0wpdmFsdWUKQEAgLTMyNyw2ICsz
MzAsOSBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RhcnRVUkxTY2hl
bWVUYXNrOihpZCA8V0tVUkxTY2hlbWVUYXNrPil0YQogICAgICAgICBhdXRvIGNvb3BWYWx1ZSA9
IF9jb29wVmFsdWVzLmdldChbZmluYWxVUkwgYWJzb2x1dGVTdHJpbmddKTsKICAgICAgICAgaWYg
KCFjb29wVmFsdWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgW2hlYWRlckRpY3Rpb25hcnkgc2V0
T2JqZWN0OihOU1N0cmluZyAqKWNvb3BWYWx1ZSBmb3JLZXk6QCJDcm9zcy1PcmlnaW4tT3BlbmVy
LVBvbGljeSJdOworICAgICAgICBhdXRvIGNvZXBWYWx1ZSA9IF9jb2VwVmFsdWVzLmdldChbZmlu
YWxVUkwgYWJzb2x1dGVTdHJpbmddKTsKKyAgICAgICAgaWYgKCFjb2VwVmFsdWUuaXNFbXB0eSgp
KQorICAgICAgICAgICAgW2hlYWRlckRpY3Rpb25hcnkgc2V0T2JqZWN0OihOU1N0cmluZyAqKWNv
ZXBWYWx1ZSBmb3JLZXk6QCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il07CiAKICAgICAg
ICAgYXV0byByZXNwb25zZSA9IGFkb3B0TlMoW1tOU0hUVFBVUkxSZXNwb25zZSBhbGxvY10gaW5p
dFdpdGhVUkw6ZmluYWxVUkwuZ2V0KCkgc3RhdHVzQ29kZToyMDAgSFRUUFZlcnNpb246QCJIVFRQ
LzEuMSIgaGVhZGVyRmllbGRzOmhlYWRlckRpY3Rpb25hcnldKTsKICAgICAgICAgW3Rhc2sgZGlk
UmVjZWl2ZVJlc3BvbnNlOnJlc3BvbnNlLmdldCgpXTsKQEAgLTcxOTEsMzYgKzcxOTcsMzkgQEAg
d2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBlbnVtIGNsYXNzIElzU2FtZU9yaWdpbiA6
IGJvb2wgeyBObywgWWVzIH07CiBlbnVtIGNsYXNzIERvU2VydmVyU2lkZVJlZGlyZWN0IDogYm9v
bCB7IE5vLCBZZXMgfTsKLXN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3Qg
Y2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT09QLCBJc1NhbWVPcmln
aW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVj
dCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQorc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0VQLCBjb25z
dCBjaGFyKiBkZXN0aW5hdGlvbkNPT1AsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09FUCwgSXNT
YW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRl
UmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKIHsKICAgICBhdXRvIHByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKICAgICBhdXRv
IHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENv
bmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYm9vbCBz
b3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09QICYmICFzdHJjbXAo
c291cmNlQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgc291cmNlQ09FUCAmJiAhc3RyY21wKHNvdXJj
ZUNPRVAsICJyZXF1aXJlLWNvcnAiKTsKKyAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9z
c09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QICYmICFzdHJjbXAoZGVzdGluYXRpb25D
T09QLCAic2FtZS1vcmlnaW4iKSAmJiBkZXN0aW5hdGlvbkNPRVAgJiYgIXN0cmNtcChkZXN0aW5h
dGlvbkNPRVAsICJyZXF1aXJlLWNvcnAiKTsKKyAgICBFWFBFQ1RfVFJVRShzb3VyY2VTaG91bGRC
ZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPT0gZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNv
bGF0ZWQgfHwgZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMpOwogCiAgICAgYXV0byB3ZWJW
aWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nl
c3NQb29sLmdldCgpXTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgZm9yIChfV0tF
eHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50
YWxGZWF0dXJlc10pIHsKLSAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6
QCJDcm9zc09yaWdpbk9wZW5lclBvbGljeUVuYWJsZWQiXSkgeworICAgICAgICBpZiAoW2ZlYXR1
cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5RW5hYmxlZCJd
KQorICAgICAgICAgICAgW1t3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVu
YWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgIGVsc2Ug
aWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJDcm9zc09yaWdpbkVtYmVkZGVyUG9s
aWN5RW5hYmxlZCJdKQogICAgICAgICAgICAgW1t3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQogICAgIH0KIAogICAgIGF1dG8gaGFuZGxlciA9
IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CiAgICAgaWYgKGlzU2FtZU9yaWdp
biA9PSBJc1NhbWVPcmlnaW46OlllcykgewotICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJv
bVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp3aW5k
b3dPcGVuU2FtZU9yaWdpbkNPT1BUZXN0Qnl0ZXMgd2l0aENPT1BWYWx1ZTpzb3VyY2VDT09QXTsK
KyAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3Lndl
YmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlblNhbWVPcmlnaW5DT09QVGVzdEJ5
dGVzIHdpdGhDT09QVmFsdWU6c291cmNlQ09PUCB3aXRoQ09FUFZhbHVlOnNvdXJjZUNPRVBdOwog
ICAgICAgICBpZiAoZG9TZXJ2ZXJTaWRlUmVkaXJlY3QgPT0gRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
OlllcykgewogICAgICAgICAgICAgW2hhbmRsZXIgYWRkUmVkaXJlY3RGcm9tVVJMU3RyaW5nOkAi
cHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLmh0bWwiIHRvVVJMU3RyaW5nOkAicHNvbjovL3d3
dy53ZWJraXQub3JnL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiXTsKLSAgICAgICAgICAgIFto
YW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3Bv
cHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVz
dGluYXRpb25DT09QXTsKKyAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3Ry
aW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiIHRv
RGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QIHdpdGhDT0VQVmFsdWU6
ZGVzdGluYXRpb25DT0VQXTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBbaGFuZGxlciBh
ZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9wb3B1cC5odG1s
IiB0b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9uQ09PUF07CisgICAgICAg
ICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0
Lm9yZy9wb3B1cC5odG1sIiB0b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9u
Q09PUCB3aXRoQ09FUFZhbHVlOmRlc3RpbmF0aW9uQ09FUF07CiAgICAgfSBlbHNlIHsKLSAgICAg
ICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5v
cmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlbkNyb3NzT3JpZ2luQ09PUFRlc3RCeXRlcyB3
aXRoQ09PUFZhbHVlOnNvdXJjZUNPT1BdOworICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJv
bVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp3aW5k
b3dPcGVuQ3Jvc3NPcmlnaW5DT09QVGVzdEJ5dGVzIHdpdGhDT09QVmFsdWU6c291cmNlQ09PUCB3
aXRoQ09FUFZhbHVlOnNvdXJjZUNPRVBdOwogICAgICAgICBpZiAoZG9TZXJ2ZXJTaWRlUmVkaXJl
Y3QgPT0gRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcykgewogICAgICAgICAgICAgW2hhbmRsZXIg
YWRkUmVkaXJlY3RGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAuaHRt
bCIgdG9VUkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC1hZnRlci1yZWRpcmVj
dC5odG1sIl07Ci0gICAgICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpA
InBzb246Ly93d3cuYXBwbGUuY29tL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiIHRvRGF0YToi
cG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QXTsKKyAgICAgICAgICAgIFtoYW5k
bGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAt
YWZ0ZXItcmVkaXJlY3QuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5h
dGlvbkNPT1Agd2l0aENPRVBWYWx1ZTpkZXN0aW5hdGlvbkNPRVBdOwogICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3
dy5hcHBsZS5jb20vcG9wdXAuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0
aW5hdGlvbkNPT1BdOworICAgICAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJp
bmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC5odG1sIiB0b0RhdGE6InBvcHVwIiB3aXRo
Q09PUFZhbHVlOmRlc3RpbmF0aW9uQ09PUCB3aXRoQ09FUFZhbHVlOmRlc3RpbmF0aW9uQ09FUF07
CiAgICAgfQogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhh
bmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwogCkBAIC03MjkwLDYgKzcyOTksMjYg
QEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VD
T09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGkKICAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0
ID0gdHJ1ZTsKICAgICB9XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVk
UnVubmluZ1NjcmlwdCk7CisgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7CisgICAg
W3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic2VsZi5jcm9zc09yaWdpbklzb2xhdGVkID8g
J2lzb2xhdGVkJyA6ICdub3QtaXNvbGF0ZWQnIiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCBy
ZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIE5TU3RyaW5nICpjcm9zc09yaWdpbklz
b2xhdGVkID0gKE5TU3RyaW5nICopcmVzdWx0OworICAgICAgICBpZiAoc291cmNlU2hvdWxkQmVD
cm9zc09yaWdpbklzb2xhdGVkKQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiaXNvbGF0
ZWQiLCBjcm9zc09yaWdpbklzb2xhdGVkKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgRVhQ
RUNUX1dLX1NUUkVRKEAibm90LWlzb2xhdGVkIiwgY3Jvc3NPcmlnaW5Jc29sYXRlZCk7CisgICAg
ICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQpOworICAgIGZpbmlzaGVkUnVu
bmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInNl
bGYuU2hhcmVkQXJyYXlCdWZmZXIgPyAnaGFzLXNhYicgOiAnZG9lcy1ub3QtaGF2ZS1zYWInIiBj
b21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAg
ICAgIE5TU3RyaW5nICpoYXNTQUIgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlmIChz
b3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQpCisgICAgICAgICAgICBFWFBFQ1RfV0tf
U1RSRVEoQCJoYXMtc2FiIiwgaGFzU0FCKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgRVhQ
RUNUX1dLX1NUUkVRKEAiZG9lcy1ub3QtaGF2ZS1zYWIiLCBoYXNTQUIpOworICAgICAgICBmaW5p
c2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKIAogICAgIC8vIE9wZW5lZSBzaG91bGQg
bm90IGhhdmUgYW4gb3BlbmVyIG9yIGEgbmFtZS4KICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQg
PSBmYWxzZTsKQEAgLTczMjAsODcgKzczNDksMjM1IEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRp
CiAgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CiAgICAgfV07CiAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQpOworICAgIGZpbmlz
aGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUph
dmFTY3JpcHQ6QCJzZWxmLmNyb3NzT3JpZ2luSXNvbGF0ZWQgPyAnaXNvbGF0ZWQnIDogJ25vdC1p
c29sYXRlZCciIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJy
b3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKmNyb3NzT3JpZ2luSXNvbGF0ZWQgPSAoTlNTdHJpbmcg
KilyZXN1bHQ7CisgICAgICAgIGlmIChkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29s
YXRlZCkKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImlzb2xhdGVkIiwgY3Jvc3NPcmln
aW5Jc29sYXRlZCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShA
Im5vdC1pc29sYXRlZCIsIGNyb3NzT3JpZ2luSXNvbGF0ZWQpOworICAgICAgICBmaW5pc2hlZFJ1
bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKKyAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSBm
YWxzZTsKKyAgICBbY3JlYXRlZFdlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic2VsZi5TaGFy
ZWRBcnJheUJ1ZmZlciA/ICdoYXMtc2FiJyA6ICdkb2VzLW5vdC1oYXZlLXNhYiciIGNvbXBsZXRp
b25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNT
dHJpbmcgKmhhc1NBQiA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYgKGRlc3RpbmF0
aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkKQorICAgICAgICAgICAgRVhQRUNUX1dLX1NU
UkVRKEAiaGFzLXNhYiIsIGhhc1NBQik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEVYUEVD
VF9XS19TVFJFUShAImRvZXMtbm90LWhhdmUtc2FiIiwgaGFzU0FCKTsKKyAgICAgICAgZmluaXNo
ZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7CiAKICAgICBjcmVhdGVkV2ViVmlldyA9IG51
bGxwdHI7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09Q
U2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxs
cHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdp
biIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
dW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVP
cmlnaW40KQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInVu
c2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdp
bikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09Q
U2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQor
eworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25l
IiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQoreworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxw
dHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIs
IG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVw
MykKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxv
d1BvcHVwNCkKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxv
dy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFu
ZENPRVBTYW1lT3JpZ2luQWxsb3dQb3B1cCkKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJzYW1lLW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNh
ZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCit7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwg
InNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2Ft
ZU9yaWdpbikKK3sKKyAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBkZXN0aW5hdGlvbiBp
cyBtaXNzaW5nIENPRVAuCisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NP
T1BBbmRDT0VQU2FtZU9yaWdpbikKK3sKKyAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBz
b3VyY2UgaXMgbWlzc2luZyBDT0VQLgorICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luVG9DT09QU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKIHsKICAgICAvLyBXZSBleHBlY3QgYSBz
d2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2ZSBDT09QPXNhbWUtb3JpZ2luLgot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInNhbWUtb3JpZ2luIiwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRy
LCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09F
UFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCit7CisgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNh
dXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbiBhbmQgQ09FUD1y
ZXF1aXJlLWNvcnAuCisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAi
cmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbldpdGhvdXRDT09QV2l0aFJl
ZGlyZWN0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6
Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVz
LCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChu
dWxscHRyLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChu
dWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwg
InNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKK3sKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUt
bm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2lu
VG9DT09QU2FtZU9yaWdpbjQpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZl
LW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUEFuZENP
RVBTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVs
bHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0ciwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwor
fQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW4zKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW40KQoreworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQoreworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxw
dHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJzYW1lLW9yaWdpbiIsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdp
biIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQor
eworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29y
cCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NP
T1BTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9D
T09QQW5kQ09FUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUt
bm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jv
c3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKK3sKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1
bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKK3sKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9u
ZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKaW5kZXggNWE2NmQxOTM5NWE3ODllMGE2MjA4ODY3ZGEzOTQwZmRlYjU4ZTAz
Ny4uOTJjYzczODhjNDhlNWJlMGQyMWFmNzIzYTMwODUxMDllMjBhNTAzNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjEtMDgtMjcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgU2hhcmVkQXJyYXlCdWZm
ZXIgc3VwcG9ydCB3aGVuIENPT1AvQ09FUCBoZWFkZXJzIGFyZSB1c2VkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk1NTkKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzgyMzkxOTQ1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlYmFzZWxpbmUgYSBmZXcgd2ViLXBsYXRmb3JtLXRlc3RzIG5vdyB0aGF0
IHdpbmRvdy5jcm9zc09yaWdpbklzb2xhdGVkIHByb3Blcmx5IHJldHVybnMKKyAgICAgICAgdHJ1
ZSB3aGVuIENPT1ArQ09FUCBhcmUgdXNlZC4KKworICAgICAgICBOb3RlIHRoYXQgU2hhcmVkQXJy
YXlCdWZmZXIgYXJlIGFscmVhZHkgZm9yY2VmdWxseSBlbmFibGVkIGJ5IHJ1bi13ZWJraXQtdGVz
dHMucHkgd2hlbiBydW5uaW5nCisgICAgICAgIHRoZSBsYXlvdXQgdGVzdHMsIHdoaWNoIGlzIHdo
eSB0aGVyZSBhcmUgbm90IG1vcmUgbGF5b3V0IHRlc3QgcmVzdWx0cyBjaGFuZ2VzLiBBdCBzb21l
IHBvaW50LAorICAgICAgICB3ZSBzaG91bGQgc3RvcCBmb3JjZWZ1bGx5IGVuYWJsaW5nIFNoYXJl
ZEFycmF5QnVmZmVyIHdoZW4gcnVubmluZyB3ZWItcGxhdGZvcm0tdGVzdHMgYXQgbGVhc3QsCisg
ICAgICAgIHNpbmNlIFdQVCB0ZXN0cyBhbHJlYWR5IG1ha2Ugc3VyZSB0byB1c2UgQ09PUCtDT0VQ
IHdoZW4gdGVzdGluZyBTaGFyZWRBcnJheUJ1ZmZlci4KKworICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvc2VyaWFsaXplLXNoYXJlZGFycmF5YnVmZmVyLXRocm93cy5odHRw
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mt
b3JpZ2luLWVtYmVkZGVyLXBvbGljeS9jcm9zcy1vcmlnaW4taXNvbGF0ZWQtcGVybWlzc2lvbi5o
dHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgIE5vdGUgdGhhdCBzb21lIHN1YnRlc3RzIGFyZSBm
YWlsaW5nIGJlY2F1c2Ugd2UgZG9uJ3Qgc3VwcG9ydCB0aGUgUGVybWlzc2lvbnMtUG9saWN5IEhU
VFAgaGVhZGVyOgorICAgICAgICAtIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJhcHBzZWMtcGVy
bWlzc2lvbnMtcG9saWN5LworCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jv
c3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIwMjEt
MDgtMjcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtDU1Mg
Q2FzY2FkZSBMYXllcnNdIEluaXRpYWwgc3VwcG9ydApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvc2VyaWFsaXplLXNoYXJl
ZGFycmF5YnVmZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJy
YXlidWZmZXItdGhyb3dzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBhY2MwNDY0NjAzYjEwY2Qw
OWJkMTdmMDRiMmVmNmRjNDg0MzVkMjM1Li42ZDBiYjY2ZmFmMWM0YTk2ZjBhYmRiYTk3Zjk2MTVm
NmY5ZjMzNzRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJyYXlidWZmZXItdGhyb3dzLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJyYXlidWZmZXItdGhyb3dzLmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDUgQEAKIAotRkFJTCBJbmRleGVkREI6IEF0dGVt
cHRpbmcgdG8gc2VyaWFsaXplIGEgU2hhcmVkQXJyYXlCdWZmZXIgc2hvdWxkIHRocm93IGFzc2Vy
dF90cnVlOiBUaGUgcGFnZSBpcyBzZXJ2ZWQgd2l0aCBDT09QIGFuZCBDT0VQLCBpdCBzaG91bGQg
YmUgY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBJ
bmRleGVkREI6IEF0dGVtcHRpbmcgdG8gc2VyaWFsaXplIGEgU2hhcmVkQXJyYXlCdWZmZXIgc2hv
dWxkIHRocm93IGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4geworICAgICAgICAg
ICAgcnEgPSBvYmpTdG9yZS5wdXQoe3NhYjogc2FifSwgJ2tleScpOworICAgICAgICB9IiB0aHJl
dyBvYmplY3QgIkRhdGFFcnJvcjogRmFpbGVkIHRvIHN0b3JlIHJlY29yZCBpbiBhbiBJREJPYmpl
Y3RTdG9yZTogVGhlIG9iamVjdCBzdG9yZSB1c2VzIGluLWxpbmUga2V5cyBhbmQgdGhlIGtleSBw
YXJhbWV0ZXIgd2FzIHByb3ZpZGVkLiIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gRGF0YUNs
b25lRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAwLCBleHBlY3RlZCAyNQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9jcm9zcy1vcmlnaW4taXNvbGF0ZWQtcGVy
bWlzc2lvbi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9jcm9zcy1v
cmlnaW4taXNvbGF0ZWQtcGVybWlzc2lvbi5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggM2I3NzY2
MTMzODk0MDdlZGM0MzgyZDhiODJlNmY3YjBkOWYyZTcyYy4uZTYwZTQyYmZiMTBlODg3YTBiOGJk
MzVmNzRiZmY4NjJkMGI2OTQ2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvY3Jv
c3Mtb3JpZ2luLWlzb2xhdGVkLXBlcm1pc3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmln
aW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMSwyNCArMSwyNCBAQAogCi1GQUlMIGZyYW1lOiBvcmlnaW4gPSBo
dHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1
dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMs
IHZhbHVlID0gc2VsZiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UK
LVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKFwp
Ci1QQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHVu
ZGVmaW5lZAotUEFTUyBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFs
dWUgPSAqCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1
ZSA9IHNlbGYKLVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMsIHZh
bHVlID0gKFwpCi1GQUlMIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGh0dHBzLCB2YWx1ZSA9
IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZB
SUwgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gaHR0cHMsIHZhbHVlID0gKiBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZGVkaWNhdGVkIHdvcmtlcjog
c2NoZW1lID0gaHR0cHMsIHZhbHVlID0gc2VsZiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVl
IGJ1dCBnb3QgZmFsc2UKLVBBU1MgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gaHR0cHMsIHZh
bHVlID0gKFwpCi1QQVNTIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGRhdGEsIHZhbHVlID0g
dW5kZWZpbmVkCi1QQVNTIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGRhdGEsIHZhbHVlID0g
KgotUEFTUyBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBkYXRhLCB2YWx1ZSA9IHNlbGYKLVBB
U1MgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gZGF0YSwgdmFsdWUgPSAoXCkKLUZBSUwgZGVk
aWNhdGVkIHdvcmtlcjogc2NoZW1lID0gYmxvYiwgdmFsdWUgPSB1bmRlZmluZWQgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlCi1GQUlMIGRlZGljYXRlZCB3b3JrZXI6
IHNjaGVtZSA9IGJsb2IsIHZhbHVlID0gKiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1
dCBnb3QgZmFsc2UKLUZBSUwgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gYmxvYiwgdmFsdWUg
PSBzZWxmIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQotUEFTUyBk
ZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBibG9iLCB2YWx1ZSA9IChcKQorUEFTUyBmcmFtZTog
b3JpZ2luID0gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MywgdmFsdWUgPSB1bmRlZmluZWQKK1BBU1Mg
ZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKgorUEFTUyBm
cmFtZTogb3JpZ2luID0gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MywgdmFsdWUgPSBzZWxmCitGQUlM
IGZyYW1lOiBvcmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IChcKSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKK0ZBSUwgZnJhbWU6IG9yaWdp
biA9IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMsIHZhbHVlID0gdW5kZWZpbmVkIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0
cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSAqIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZh
bHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly8xMjcuMC4wLjE6
OTQ0MywgdmFsdWUgPSBzZWxmIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3Qg
dHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUg
PSAoXCkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitQQVNTIGRl
ZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGh0dHBzLCB2YWx1ZSA9IHVuZGVmaW5lZAorUEFTUyBk
ZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBodHRwcywgdmFsdWUgPSAqCitQQVNTIGRlZGljYXRl
ZCB3b3JrZXI6IHNjaGVtZSA9IGh0dHBzLCB2YWx1ZSA9IHNlbGYKK0ZBSUwgZGVkaWNhdGVkIHdv
cmtlcjogc2NoZW1lID0gaHR0cHMsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
IGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBkYXRh
LCB2YWx1ZSA9IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290
IHRydWUKK0ZBSUwgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gZGF0YSwgdmFsdWUgPSAqIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBkZWRpY2F0ZWQg
d29ya2VyOiBzY2hlbWUgPSBkYXRhLCB2YWx1ZSA9IHNlbGYgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitGQUlMIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGRh
dGEsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1
ZQorUEFTUyBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBibG9iLCB2YWx1ZSA9IHVuZGVmaW5l
ZAorUEFTUyBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBibG9iLCB2YWx1ZSA9ICoKK1BBU1Mg
ZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gYmxvYiwgdmFsdWUgPSBzZWxmCitGQUlMIGRlZGlj
YXRlZCB3b3JrZXI6IHNjaGVtZSA9IGJsb2IsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQogRkFJTCBzaGFyZWQgd29ya2VyOiB3aXRoQ29vcENv
ZXAgPSBmYWxzZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKIEZBSUwgc2hhcmVk
IHdvcmtlcjogd2l0aENvb3BDb2VwID0gdHJ1ZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRX
b3JrZXIKIEZBSUwgc2VydmljZSB3b3JrZXI6IHdpdGhDb29wQ29lcCA9IGZhbHNlIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkIChib29sZWFuKSBmYWxzZSBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVm
aW5lZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Ny
b3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGI0
MzljZGM5NzM1NmZkOTI1MTAwNDcxOWM5YWRhNGI0NGU0ZDY3YjEuLmRkYzhmYzMxODYxZmQ2NzE5
ZjQ3NGU2OWU4NDIxNDYxM2E3MDNiOGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9j
b2VwLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTcsNSArNyw1IEBAIFBBU1MgU2FtZS1vcmlnaW4gcG9wdXAgd2l0
aCBjb29wIHVuc2FmZS1ub25lIHdpdGhvdXQgY29lcAogUEFTUyBoaXN0b3JpY2FsOiAic2FtZS1z
aXRlIiBwb3B1cCB3aXRoIGNvb3AgdW5zYWZlLW5vbmUgd2l0aG91dCBjb2VwCiBQQVNTIFNhbWUt
b3JpZ2luIHBvcHVwIHdpdGhvdXQgY29lcAogUEFTUyBoaXN0b3JpY2FsOiAic2FtZS1zaXRlIiBw
b3B1cCB3aXRob3V0IGNvZXAKLUZBSUwgQm9udXM6IHdpbmRvdy5jcm9zc09yaWdpbklzb2xhdGVk
IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBCb251czogd2luZG93
LmNyb3NzT3JpZ2luSXNvbGF0ZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zZXJpYWxp
emUtc2hhcmVkYXJyYXlidWZmZXItdGhyb3dzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvc2VyaWFsaXplLXNoYXJlZGFycmF5YnVmZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYWNjMDQ2NDYwM2IxMGNkMDliZDE3ZjA0YjJlZjZkYzQ4NDM1ZDIzNQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvc2VyaWFsaXplLXNoYXJlZGFycmF5YnVm
ZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK0ZBSUwgSW5k
ZXhlZERCOiBBdHRlbXB0aW5nIHRvIHNlcmlhbGl6ZSBhIFNoYXJlZEFycmF5QnVmZmVyIHNob3Vs
ZCB0aHJvdyBhc3NlcnRfdHJ1ZTogVGhlIHBhZ2UgaXMgc2VydmVkIHdpdGggQ09PUCBhbmQgQ09F
UCwgaXQgc2hvdWxkIGJlIGNyb3NzLW9yaWdpbi1pc29sYXRlZC4gZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436772</attachid>
            <date>2021-08-30 08:09:48 -0700</date>
            <delta_ts>2021-08-31 13:21:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229559-20210830080947.patch</filename>
            <type>text/plain</type>
            <size>104276</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU1MDU2MDRjYmIyNGUy
ZWQ1MGJkZmNiMTI3MGE0NmE1OTI0YWE1OS4uN2JkMjM2MWU2Y2VjNWIwMDc3ZThjZGU0MmE5ZDg0
ZTMwYzJiNGNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA4LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIFNoYXJlZEFycmF5
QnVmZmVyIHN1cHBvcnQgd2hlbiBDT09QL0NPRVAgaGVhZGVycyBhcmUgdXNlZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NTU5CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84MjM5MTk0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNYWtlIHN1cmUgd2luZG93LmNyb3NzT3JpZ2luSXNvbGF0ZWQgcmV0
dXJucyB0cnVlIHdoZW4gQ09PUD1zYW1lLW9yaWdpbiBhbmQKKyAgICAgICAgQ09FUD1yZXF1aXJl
LWNvcnAgYXJlIHVzZWQuIEFsc28gbWFrZSBzdXJlIHRoYXQgY3Jvc3Mtb3JpZ2luLWlzb2xhdGVz
IHBhZ2VzCisgICAgICAgIGFyZSBhbGxvd2VkIHRvIHVzZSBTaGFyZWRBcnJheUJ1ZmZlci4KKwor
ICAgICAgICBDaGFuZ2UgaXMgY292ZXJlZCBieSByZWJhc2VsaW5lZCBsYXlvdXQgdGVzdHMgYW5k
IG5ldyBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6dG9OZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAg
ICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0NvbnRl
bnRQb2xpY3kpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlclR5
cGVzLmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93Ojpjcm9zc09yaWdpbklzb2xhdGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0RP
TVdpbmRvdy5pZGw6CisKIDIwMjEtMDgtMjcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtDU1MgQ2FzY2FkZSBMYXllcnNdIEluaXRpYWwgc3VwcG9ydApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBlM2ZkMjI5MjdmZGJjNjk3MDc3ZGM4M2VlNTc2NzE3YzIyYzA2OWJkLi43Y2E3YzZk
YjJkNDQwMzljZGRmZGY3M2I1YzgxOTY0ZmNlYzg5NWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1
IEBACisyMDIxLTA4LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgRW5hYmxlIFNoYXJlZEFycmF5QnVmZmVyIHN1cHBvcnQgd2hlbiBDT09QL0NPRVAgaGVhZGVy
cyBhcmUgdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5NTU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjM5MTk0NT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHN1cmUgd2luZG93LmNy
b3NzT3JpZ2luSXNvbGF0ZWQgcmV0dXJucyB0cnVlIHdoZW4gQ09PUD1zYW1lLW9yaWdpbiBhbmQK
KyAgICAgICAgQ09FUD1yZXF1aXJlLWNvcnAgYXJlIHVzZWQuIEFsc28gbWFrZSBzdXJlIHRoYXQg
Y3Jvc3Mtb3JpZ2luLWlzb2xhdGVzIHBhZ2VzCisgICAgICAgIGFyZSBhbGxvd2VkIHRvIHVzZSBT
aGFyZWRBcnJheUJ1ZmZlci4KKworICAgICAgICBXaGVuIHRoZSBXZWJQcm9jZXNzIGRldGVybWlu
ZXMgaXQgbmVlZHMgdG8gc3dpdGNoIGJyb3dzaW5nIGNvbnRleHQgZ3JvdXAgaXQKKyAgICAgICAg
bm93IHNlbmRzIGEgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaDo6WWVzV2l0aG91dENy
b3NzT3JpZ2luSXNvbGF0aW9uIC8KKyAgICAgICAgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaDo6WWVzV2l0aENyb3NzT3JpZ2luSXNvbGF0aW9uIGVudW0gdmFsdWUgdG8KKyAgICAgICAg
dGhlIFVJUHJvY2VzcyB3aXRoIHRoZSBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSBJUEMgaW5zdGVh
ZCBvZiBhIHNpbXBsZQorICAgICAgICBib29sZWFuLiBXZSBzZW5kIFllc1dpdGhvdXRDcm9zc09y
aWdpbklzb2xhdGlvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uCisgICAgICAgIGRlc3RpbmF0aW9uIHdp
bGwgYmUgY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkIGR1ZSB0byBDT09QPXNhbWUtb3JpZ2luIGFuZAor
ICAgICAgICBDT0VQPXJlcXVpcmUtY29ycC4gSW4gdGhlIFVJUHJvY2Vzcywgd2hlbiBZZXNXaXRo
Q3Jvc3NPcmlnaW5Jc29sYXRpb24gaXMKKyAgICAgICAgcmVjZWl2ZWQsIHdlIHRha2UgY2FyZSBv
ZiBsYXVuY2hpbmcgYSBmcmVzaCBXZWJQcm9jZXNzIChuZXZlciByZWN5Y2xpbmcgYW4KKyAgICAg
ICAgZXhpc3RpbmcgV2ViUHJvY2VzcykgYW5kIHdlIG1ha2UgdGhpcyBXZWJQcm9jZXNzIGFzIGNy
b3NzLW9yaWdpbi1pc29sYXRlZC4KKyAgICAgICAgV2hlbiBhIHByb2Nlc3MgaXMgY3Jvc3Mtb3Jp
Z2luLWlzb2xhdGVkLCB3ZSBwYXNzIGl0IGEgWFBDIGZsYWcgb24gbGF1bmNoCisgICAgICAgIHRv
IGFsbG93IHRoZSBwcm9jZXNzIHRvIHVzZSBTaGFyZWRBcnJheUJ1ZmZlci4gV2UgdXNlIGFuIFhQ
QyBmbGFnIGJlY2F1c2UKKyAgICAgICAgSlNDIE9wdGlvbnMgbmVlZCB0byBiZSBzZXQgYmVmb3Jl
IEpTQzo6aW5pdGlhbGl6ZSgpIGlzIGNhbGxlZCwgd2hpY2ggb2NjdXJzCisgICAgICAgIGR1cmlu
ZyBYUEMgc2VydmljZSBpbml0aWFsaXphdGlvbi4gV2hlbiBhIFdlYlByb2Nlc3MgaXMgbWFya2Vk
IGFzCisgICAgICAgIGNyb3NzLW9yaWdpbi1pc29sYXRlZCwgd2UgbWFrZSBzdXJlIHRvIG5ldmVy
IGNhY2hlIGl0IHNvIGl0IGNhbm5vdCBiZQorICAgICAgICByZWN5Y2xlZCBmb3IgYSBuZXcgbmF2
aWdhdGlvbiAoZ2l2ZW4gdGhhdCBpdCBoYXMgc3BlY2lhbCBwZXJtaXNzaW9uIHRvIHVzZQorICAg
ICAgICBTaGFyZWRBcnJheUJ1ZmZlcikuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAqIFNoYXJlZC9F
bnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6WFBDU2VydmljZUluaXRpYWxpemVyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmg6CisgICAgICAgIChXZWJLaXQ6OlBy
b2Nlc3NMYXVuY2hlcjo6Q2xpZW50OjpzaG91bGRFbmFibGVTaGFyZWRBcnJheUJ1ZmZlciBjb25z
dCk6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMu
bW06CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3VzcGVuZGVk
UGFnZVByb3h5OjpmaW5kUmV1c2FibGVTdXNwZW5kZWRQYWdlUHJvY2Vzcyk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVXZWJQYWdlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZUZvclNlcnZpY2VXb3JrZXJzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNhbkJlQWRkZWRUb1dlYlByb2Nlc3NDYWNoZSBj
b25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmlzQ3Jvc3NPcmlnaW5Jc29sYXRlZCBjb25zdCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKIDIwMjEtMDgtMjcgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbV0syXSBSZXVzZSB0aGUgc2FtZSBuZXR3b3JrIGxv
YWQgd2hlbiBwcm9jZXNzLXN3YXBwaW5nIG9uIHJlc291cmNlIHJlc3BvbnNlIGR1ZSB0byBDT09Q
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNDVhNTQ4NmUwNTgwNWQ5N2JjMWU0OGI0
NGY5M2RhMzAzMjhhNmExZC4uYWUyNTkxMDk5YTYyZDFhOGVkN2ZlZWRkZmM2ZWZkZjZmZmNjMjU2
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA4
LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIFNo
YXJlZEFycmF5QnVmZmVyIHN1cHBvcnQgd2hlbiBDT09QL0NPRVAgaGVhZGVycyBhcmUgdXNlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NTU5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjM5MTk0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZSk6CisKIDIwMjEtMDgtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2FwcGluZyBiYXNlZCBvbiBD
cm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCmluZGV4IGUyODE1MTAyOThhOGM3MzY0MWRjNDA0OTU2OTdhMmRmNDVhNTEzY2EuLjlj
OTZkNWNkMWM2MzNmN2Q2YzcyMDExZWE3ODIwNTQyMDY1OGI5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wOC0yNyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBTaGFyZWRBcnJheUJ1ZmZlciBzdXBw
b3J0IHdoZW4gQ09PUC9DT0VQIGhlYWRlcnMgYXJlIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTU1OQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vODIzOTE5NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAg
IChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAy
MS0wOC0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJd
IEltcGxlbWVudCBwcm9jZXNzLXN3YXBwaW5nIGJhc2VkIG9uIENyb3NzLU9yaWdpbi1PcGVuZXIt
UG9saWN5IEhUVFAgaGVhZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBlYjA3YjgwYzk5MzNkNjlh
OGMzNjMxOTE4Yzc1ZGJlNGUzN2E5MmI4Li45ODI5ZTdjZjU5OTJkY2QxN2IxYzBiMzZiYjM4Mjdl
ZDE3MTNhODBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQyOCw2ICs0MjgsNyBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgZG9tL0NvbW1lbnQuaAogICAgIGRv
bS9Db250YWluZXJOb2RlLmgKICAgICBkb20vQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaAor
ICAgIGRvbS9Dcm9zc09yaWdpbk1vZGUuaAogICAgIGRvbS9DdXN0b21FbGVtZW50UmVhY3Rpb25R
dWV1ZS5oCiAgICAgZG9tL0RPTUV4Y2VwdGlvbi5oCiAgICAgZG9tL0RPTUhpZ2hSZXNUaW1lU3Rh
bXAuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGQwYWEwZThkMmI5YjkxMDczYjk4M2E2OGNmNTlmN2U2NmEyYTUzNzUuLjQ1YzU4
OGQ5MjE2NGIyYTIyMmQ4OTI5ODU0NWYxODQxMTM0YTIyMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyOTIsNiArMTI5Miw3
IEBACiAJCTQ2NzMwMjAyMUM0RUZFNzgwMEJDQjM1NyAvKiBJZ25vcmVPcGVuc0R1cmluZ1VubG9h
ZENvdW50SW5jcmVtZW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2NzMwMjAxMUM0RUZFNjYwMEJDQjM1NyAvKiBJZ25vcmVPcGVuc0R1cmluZ1Vu
bG9hZENvdW50SW5jcmVtZW50ZXIuaCAqLzsgfTsKIAkJNDY4MkQyMDAxRjc5NzgzMDAwQzg2M0RC
IC8qIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NjgyRDFGRjFGNzk3ODIzMDBDODYzREIgLyogU3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0NjgzNDRFMDFFRERGQUFBMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODM0NERFMUVEREZB
NUYwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTQ2ODhFRTNDMjZERDI2MTAwMDJBRjVDNCAvKiBDcm9zc09y
aWdpbk1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2ODhFRTNBMjZERDI2MEMwMDJBRjVDNCAvKiBDcm9zc09yaWdpbk1vZGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjlDQ0NGRTI2OUQwMjFD
MDA2RTAzMTQgLyogQnJvYWRjYXN0Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDY5Q0NDRkMyNjlEMDIwMjAwNkUwMzE0IC8qIEJyb2FkY2Fz
dENoYW5uZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk0NkFBQUEzRDI1RDM2MzIwMDBCQUY0MkYgLyogQXVkaW9GaWxlUmVhZGVyQ29jb2EuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QUFBQTNBMjVE
MzYzMTQwMEJBRjQyRiAvKiBBdWRpb0ZpbGVSZWFkZXJDb2NvYS5oICovOyB9OwogCQk0NkI2M0Y2
QzFDNkU4RDE5MDAyRTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCNjNGNkIxQzZFOENERjAwMkU5MTRC
IC8qIEpTRXZlbnRUYXJnZXRDdXN0b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtODMxNSw2ICs4MzE2LDcgQEAKIAkJNDY4MzQ0REMxRURERkE1
RjAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBET01SZWN0TGlzdC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2ODM0NEREMUVEREZBNUYwMEI3Nzk1QiAvKiBET01S
ZWN0TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01SZWN0TGlzdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2ODM0NERFMUVEREZBNUYwMEI3Nzk1QiAvKiBET01SZWN0
TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBET01SZWN0TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0Njg4RUUzQTI2REQyNjBDMDAyQUY1QzQgLyogQ3Jvc3NPcmlnaW5Nb2RlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENyb3NzT3JpZ2luTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NjhCOEJERTI1Q0M4NDkzMDBGNjc4MjIgLyogSlNCYXNlQXVkaW9Db250ZXh0Q3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmFzZUF1ZGlvQ29udGV4dEN1c3RvbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2OUNDQ0ZBMjY5RDAyMDIwMDZFMDMxNCAv
KiBCcm9hZGNhc3RDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJyb2FkY2FzdENoYW5u
ZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjlDQ0NGQzI2OUQwMjAyMDA2
RTAzMTQgLyogQnJvYWRjYXN0Q2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCcm9hZGNhc3RDaGFu
bmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTc5Niw2ICsyOTc5OCw3IEBA
CiAJCQkJRTFBMTQ3MDcxMTEwMkIxNTAwRUVDMEYzIC8qIENvbnRhaW5lck5vZGVBbGdvcml0aG1z
LmggKi8sCiAJCQkJOTc2MjdCOEIxNEZCM0NFRTAwMkNEQ0ExIC8qIENvbnRleHREZXN0cnVjdGlv
bk9ic2VydmVyLmNwcCAqLywKIAkJCQk5NzYyN0I4QzE0RkIzQ0VFMDAyQ0RDQTEgLyogQ29udGV4
dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCAqLywKKwkJCQk0Njg4RUUzQTI2REQyNjBDMDAyQUY1QzQg
LyogQ3Jvc3NPcmlnaW5Nb2RlLmggKi8sCiAJCQkJN0NGNTcwQzYyNDkyQkQ0OTAwOEVCMzNDIC8q
IEN1cnJlbnRTY3JpcHRJbmNyZW1lbnRlci5oICovLAogCQkJCTlCNTZDOUE5MUM4OTMyOUEwMEM0
NTZERiAvKiBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5jcHAgKi8sCiAJCQkJOUI1NkM5QTgx
Qzg5MzEyODAwQzQ1NkRGIC8qIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmggKi8sCkBAIC0z
MTQyNCw2ICszMTQyNyw3IEBACiAJCQkJMkQ0ODFGMDIxNDZCNUM1NTAwQUE3ODM0IC8qIENyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUM0MTYxMjBGNjU2MkZE
MDA5MkQyRkIgLyogQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0NjcyQUE5ODI2QjA5NDMzMDBFNkVDMzggLyogQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDY4OEVFM0MyNkREMjYxMDAwMkFGNUM0IC8qIENyb3NzT3Jp
Z2luTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY3MkFBOTkyNkIwOTQzRjAwRTZFQzM4IC8q
IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUFCRTY3QjFE
MDU4MERCMDA2RDg2MkQgLyogQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMUM0MTVEQTBGNjU1RDZGMDA5MkQyRkIgLyogQ3Jvc3NPcmlnaW5QcmVmbGln
aHRSZXN1bHRDYWNoZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ3Jvc3NPcmlnaW5Nb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3Jvc3NPcmlnaW5N
b2RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjcxMGFmNjljZDFhMTIxNGM1OTViYTdiOTNmZjE3ZmNjOGZkZjZl
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Dcm9zc09yaWdpbk1vZGUu
aApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIENy
b3NzLU9yaWdpbiBpc29sYXRpb24gdmlhIENPT1ArQ09FUCBoZWFkZXJzLgorZW51bSBjbGFzcyBD
cm9zc09yaWdpbk1vZGUgOiBib29sIHsgU2hhcmVkLCBJc29sYXRlZCB9OworCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggYmFlOTExMjJm
M2QwMmFjYWYxZjczNjk5YmQzYjY5ZWNhMTQ5MDZhMy4uYzg3ZmVjNWMyMDJkZjczMDBmY2IwNmY5
ODhmMmU0NTNiNzY5ZGQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcApAQCAtODEsNiArODEsOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogdXNp
bmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAorc3RhdGljIENyb3NzT3JpZ2luTW9kZSBnbG9iYWxD
cm9zc09yaWdpbk1vZGUgeyBDcm9zc09yaWdpbk1vZGU6OlNoYXJlZCB9OworCiBzdGF0aWMgTG9j
ayBhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcExvY2s7CiBzdGF0aWMgSGFzaE1hcDxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCo+JiBh
bGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcCgpIFdURl9SRVFVSVJFU19MT0NLKGFsbFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRzTWFwTG9jaykKIHsKQEAgLTYyMyw2ICs2MjUsMTYgQEAgU2Vydmlj
ZVdvcmtlckNvbnRhaW5lciogU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZW5zdXJlU2VydmljZVdv
cmtlckNvbnRhaW5lcigpCiAKICNlbmRpZgogCit2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OnNldENyb3NzT3JpZ2luTW9kZShDcm9zc09yaWdpbk1vZGUgY3Jvc3NPcmlnaW5Nb2RlKQorewor
ICAgIGdsb2JhbENyb3NzT3JpZ2luTW9kZSA9IGNyb3NzT3JpZ2luTW9kZTsKK30KKworQ3Jvc3NP
cmlnaW5Nb2RlIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmNyb3NzT3JpZ2luTW9kZSgpCit7Cisg
ICAgcmV0dXJuIGdsb2JhbENyb3NzT3JpZ2luTW9kZTsKK30KKwogYm9vbCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0Ojpwb3N0VGFza1RvKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFRhc2smJiB0YXNrKQogewogICAgIExvY2tlciBsb2NrZXIgeyBhbGxTY3JpcHRF
eGVjdXRpb25Db250ZXh0c01hcExvY2sgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oCmluZGV4IGQ0YmI4ZTE5YWU3OGY3ZTgxYTZjYjYxZmI2ZTU1MjNjMTA0
YzRkZGUuLmY3YjRjMDY2MTkwMDY4ZmY5MzZmNDc2MTE4YzA3M2RkOGVkZWUwMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMjgsNiArMjgsNyBA
QAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRl
ICJDcm9zc09yaWdpbk1vZGUuaCIKICNpbmNsdWRlICJET01UaW1lci5oIgogI2luY2x1ZGUgIlJU
Q0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJSZXNvdXJj
ZUxvYWRlck9wdGlvbnMuaCIKQEAgLTE3Miw2ICsxNzMsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udExvYWRSZXF1ZXN0PiBmb250TG9hZFJlcXVlc3QoU3RyaW5n
JiB1cmwsIGJvb2wgaXNTVkcsIGJvb2wgaXNJbml0aWF0aW5nRWxlbWVudEluVXNlckFnZW50U2hh
ZG93VHJlZSwgTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSk7CiAgICAgdmlydHVhbCB2b2lkIGJlZ2lu
TG9hZGluZ0ZvbnRTb29uKEZvbnRMb2FkUmVxdWVzdCYpIHsgfQogCisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIHZvaWQgc2V0Q3Jvc3NPcmlnaW5Nb2RlKENyb3NzT3JpZ2luTW9kZSk7CisgICAg
c3RhdGljIENyb3NzT3JpZ2luTW9kZSBjcm9zc09yaWdpbk1vZGUoKTsKKwogICAgIHZvaWQgcmVm
KCkgeyByZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KICAgICB2b2lkIGRlcmVmKCkgeyBk
ZXJlZlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcAppbmRleCBmNjFhNGNkYWUyNWRmOWZhY2Y3ODM5N2Q3MjI4Y2Y0MzBh
NzcwYzZlLi4zNGViYmZmMWM1ZDYyZjU3NTQ1YTI3NjFmZjFhYmNlNzc1NTNkNDE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTk0OCw2ICs5NDgsMTUgQEAg
dm9pZCBEb2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSYgcmVz
b3VyY2UsIGNvbnN0IFJlc291cmNlUmUKICAgICByZXNwb25zZVJlY2VpdmVkKHJlc3BvbnNlLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3N0YXRpYyBCcm93c2luZ0NvbnRleHRH
cm91cCB0b0Jyb3dzaW5nQ29udGV4dEdyb3VwKGNvbnN0IHN0ZDo6b3B0aW9uYWw8Q3Jvc3NPcmln
aW5PcGVuZXJQb2xpY3lFbmZvcmNlbWVudFJlc3VsdD4mIGN1cnJlbnRDb29wRW5mb3JjZW1lbnRS
ZXN1bHQpCit7CisgICAgaWYgKCFjdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0IHx8ICFjdXJy
ZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0LT5uZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
KQorICAgICAgICByZXR1cm4gQnJvd3NpbmdDb250ZXh0R3JvdXA6OlN0YXlJbkdyb3VwOworICAg
IGlmIChjdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0LT5jcm9zc09yaWdpbk9wZW5lclBvbGlj
eS52YWx1ZSA9PSBDcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpTYW1lT3JpZ2luUGx1c0NP
RVApCisgICAgICAgIHJldHVybiBCcm93c2luZ0NvbnRleHRHcm91cDo6TmV3SXNvbGF0ZWRHcm91
cDsKKyAgICByZXR1cm4gQnJvd3NpbmdDb250ZXh0R3JvdXA6Ok5ld1NoYXJlZEdyb3VwOworfQor
CiB2b2lkIERvY3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgQVNTRVJUKHJlc3BvbnNlLmNlcnRpZmljYXRlSW5mbygpKTsKQEAgLTEw
NDgsOCArMTA1Nyw4IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpCiAgICAgaWYgKG1haW5SZXNv
dXJjZUxvYWRlcikKICAgICAgICAgbWFpblJlc291cmNlTG9hZGVyLT5tYXJrSW5Bc3luY1Jlc3Bv
bnNlUG9saWN5Q2hlY2soKTsKICAgICBhdXRvIHJlcXVlc3RJZGVudGlmaWVyID0gUG9saWN5Q2hl
Y2tJZGVudGlmaWVyOjpjcmVhdGUoKTsKLSAgICBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2ggPSBtX2N1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQgJiYgbV9jdXJyZW50Q29v
cEVuZm9yY2VtZW50UmVzdWx0LT5uZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoOwotICAg
IGZyYW1lTG9hZGVyKCktPmNoZWNrQ29udGVudFBvbGljeShtX3Jlc3BvbnNlLCByZXF1ZXN0SWRl
bnRpZmllciwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbWFpblJlc291cmNlTG9hZGVyID0gV1RGTW92ZShtYWlu
UmVzb3VyY2VMb2FkZXIpLAorICAgIGF1dG8gYnJvd3NpbmdDb250ZXh0R3JvdXAgPSB0b0Jyb3dz
aW5nQ29udGV4dEdyb3VwKG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdCk7CisgICAgZnJh
bWVMb2FkZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5KG1fcmVzcG9uc2UsIHJlcXVlc3RJZGVudGlm
aWVyLCBicm93c2luZ0NvbnRleHRHcm91cCwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgbWFpblJlc291cmNlTG9hZGVyID0gV1RGTW92ZShtYWluUmVzb3VyY2VMb2FkZXIp
LAogICAgICAgICBjb21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJl
bGVhc2UoKSwgcmVxdWVzdElkZW50aWZpZXJdIChQb2xpY3lBY3Rpb24gcG9saWN5LCBQb2xpY3lD
aGVja0lkZW50aWZpZXIgcmVzcG9uc2VJZGVudGlmaWVyKSBtdXRhYmxlIHsKICAgICAgICAgUkVM
RUFTRV9BU1NFUlQocmVzcG9uc2VJZGVudGlmaWVyLmlzVmFsaWRGb3IocmVxdWVzdElkZW50aWZp
ZXIpKTsKICAgICAgICAgY29udGludWVBZnRlckNvbnRlbnRQb2xpY3kocG9saWN5KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggOTY0ZTJkZDEyMDcwMzMxYTY1Y2Ez
NDFhYzcwZTRiMjg3NDIwMGEwZC4uMDkzMzRjYTNiZjE1YTc3NWI0NDJkMjM0YjE1MGUwMzg4M2Jj
NGRhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTgxNiw3ICs4
MTYsNyBAQCB2b2lkIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygpCiB7CiB9
CiAKLXZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sLCBGcmFtZVBvbGljeUZ1
bmN0aW9uJiYpCit2b2lkIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgQnJvd3NpbmdDb250
ZXh0R3JvdXAsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMTIwYTRhNTIwYmQxZjEy
ZDczZDE0ZjYyZWUwZWU0MGI5ODg0ZWFhYi4uMjAyNWRhYTIxMzllYmU1YjA0MmIyYzFmZmYxZDM0
NWNlMTIxYWI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVM
b2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRl
ckNsaWVudC5oCkBAIC05Niw3ICs5Niw3IEBAIHByaXZhdGU6CiAgICAgRnJhbWUqIGRpc3BhdGNo
Q3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgTmV3RnJhbWVPcGVuZXJQb2xpY3kp
IGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hTaG93KCkgZmluYWw7CiAKLSAgICB2b2lkIGRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwg
Ym9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9u
JiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBCcm93c2luZ0NvbnRleHRHcm91cCwgRnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3
V2luZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZy
YW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIEZv
cm1TdGF0ZSosIFBvbGljeURlY2lzaW9uTW9kZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFt
ZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDdhYTc2YWM2ZDFl
YmVkMDEzZTYwYjc3OTY1NDk2ZGI5ZWMzYTk5ZjAuLmNlNTdiZDQ1ODc0ZTUwOWZhYzRjNDU2NmVk
ZGE3YjM4OTEzNDEyZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAt
NDEzLDcgKzQxMyw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBk
ZWZlcnMpCiAgICAgfQogfQogCi12b2lkIEZyYW1lTG9hZGVyOjpjaGVja0NvbnRlbnRQb2xpY3ko
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFBvbGljeUNoZWNrSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIENvbnRlbnRQ
b2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIEZyYW1lTG9hZGVyOjpjaGVj
a0NvbnRlbnRQb2xpY3koY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFBvbGljeUNo
ZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBCcm93c2luZ0NvbnRleHRHcm91cCBicm93c2luZ0Nv
bnRleHRHcm91cCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKIHsK
ICAgICBpZiAoIWFjdGl2ZURvY3VtZW50TG9hZGVyKCkpIHsKICAgICAgICAgLy8gTG9hZCB3YXMg
Y2FuY2VsbGVkCkBAIC00MjIsNyArNDIyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tDb250
ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBQb2xpY3lDaGUKICAg
ICB9CiAKICAgICAvLyBGSVhNRTogVmFsaWRhdGUgdGhlIHBvbGljeSBjaGVjayBpZGVudGlmaWVy
LgotICAgIGNsaWVudCgpLmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2Us
IGFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnJlcXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9j
dW1lbnRMb2FkZXIoKS0+ZG93bmxvYWRBdHRyaWJ1dGUoKSwgbmVlZHNCcm93c2luZ0NvbnRleHRH
cm91cFN3aXRjaCwgV1RGTW92ZShmdW5jdGlvbikpOworICAgIGNsaWVudCgpLmRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnJl
cXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+ZG93bmxvYWRBdHRy
aWJ1dGUoKSwgYnJvd3NpbmdDb250ZXh0R3JvdXAsIFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIAog
dm9pZCBGcmFtZUxvYWRlcjo6Y2hhbmdlTG9jYXRpb24oY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgcGFzc2VkVGFyZ2V0LCBFdmVudCogdHJpZ2dlcmluZ0V2ZW50LCBjb25zdCBSZWZlcnJl
clBvbGljeSYgcmVmZXJyZXJQb2xpY3ksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgc3RkOjpvcHRpb25hbDxOZXdGcmFtZU9wZW5lclBv
bGljeT4gb3BlbmVyUG9saWN5LCBjb25zdCBBdG9tU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwg
Y29uc3QgU3lzdGVtUHJldmlld0luZm8mIHN5c3RlbVByZXZpZXdJbmZvLCBzdGQ6Om9wdGlvbmFs
PFByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmIHByaXZhdGVDbGlja01lYXN1cmVtZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCBlNTZjMDhmNzAzNmE1ZGZiNzMzYzJlNWY1
Y2VlY2Q4ODQyMmFmNTE5Li4yZTU4MDQ2ODcxMTFiYTQ3NDA2YjM5NGEyY2JiYzZjYjE2YjNiMmUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMjIwLDcgKzIyMCw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKTsKIAotICAgIHZvaWQgY2hl
Y2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBQb2xpY3lDaGVja0lkZW50
aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGlj
eURlY2lzaW9uRnVuY3Rpb24mJik7CisgICAgdm9pZCBjaGVja0NvbnRlbnRQb2xpY3koY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgQnJvd3NpbmdDb250ZXh0
R3JvdXAsIENvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYpOwogCiAgICAgdm9pZCBkaWRF
eHBsaWNpdE9wZW4oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQu
aAppbmRleCAzOWJiNDA1NDA5YzQxNzQ3ODVhOTM3MjI4MzAwMTg2M2MwYTg3NzVkLi5jN2Q3OGI3
YjFkNGNmZmI1YjQ0MDlmNjAxNGI2MzRlNWM4ZWVhMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTkwLDcgKzE5MCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIEZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYs
IE5ld0ZyYW1lT3BlbmVyUG9saWN5KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoU2hv
dygpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xp
Y3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wg
bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNr
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgQnJvd3NpbmdDb250
ZXh0R3JvdXAsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiBm
cmFtZU5hbWUsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgRm9ybVN0YXRlKiwgUG9saWN5
RGVjaXNpb25Nb2RlLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24m
JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCmluZGV4IGM1MTViYWU0ZDIxOGIzNTJk
ZmQyMjUwZGFiNTA4NGM1NDNlYjg4NzkuLjY2MzU5NzNiNzg4YWQ1YWU2ODY4YjgxZTJlZTVkNDNj
ZjkxMjllMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5
cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaApAQCAt
MTY3LDYgKzE2NywxMiBAQCBlbnVtIGNsYXNzIFVubG9hZEV2ZW50UG9saWN5IHsKICAgICBVbmxv
YWRBbmRQYWdlSGlkZQogfTsKIAorZW51bSBjbGFzcyBCcm93c2luZ0NvbnRleHRHcm91cCA6IHVp
bnQ4X3QgeworICAgIFN0YXlJbkdyb3VwLAorICAgIE5ld1NoYXJlZEdyb3VwLAorICAgIE5ld0lz
b2xhdGVkR3JvdXAsCit9OworCiAvLyBQYXNzZWQgdG8gRnJhbWVMb2FkZXI6OnVybFNlbGVjdGVk
KCkgYW5kIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVJZkphdmFTY3JpcHRVUkwoKQogLy8gdG8g
Y29udHJvbCB3aGV0aGVyLCBpbiB0aGUgY2FzZSBvZiBhIEphdmFTY3JpcHQgVVJMLCBleGVjdXRl
SWZKYXZhU2NyaXB0VVJMKCkgc2hvdWxkCiAvLyByZXBsYWNlIHRoZSBkb2N1bWVudC4gSXQgaXMg
YSBGSVhNRSB0byBlbGltaW5hdGUgdGhpcyBleHRyYSBwYXJhbWV0ZXIgZnJvbQpAQCAtMjc2LDYg
KzI4MiwxNSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBvbGljeUFj
dGlvbj4gewogICAgID47CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNv
cmU6OkJyb3dzaW5nQ29udGV4dEdyb3VwPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVl
czwKKyAgICAgICAgV2ViQ29yZTo6QnJvd3NpbmdDb250ZXh0R3JvdXAsCisgICAgICAgIFdlYkNv
cmU6OkJyb3dzaW5nQ29udGV4dEdyb3VwOjpTdGF5SW5Hcm91cCwKKyAgICAgICAgV2ViQ29yZTo6
QnJvd3NpbmdDb250ZXh0R3JvdXA6Ok5ld1NoYXJlZEdyb3VwLAorICAgICAgICBXZWJDb3JlOjpC
cm93c2luZ0NvbnRleHRHcm91cDo6TmV3SXNvbGF0ZWRHcm91cAorICAgID47Cit9OworCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgICAgICBXZWJDb3Jl
OjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CmluZGV4IDlhMzI1NWE2OWQyOTE2MmEzNzY1ZmM0NDExMDBlYjM0MzA1YWFiYTYuLmEyOWExMThm
OGY4ZTQyYjc5Njg4NjU5YWRjNWM0OWVkMDA1Mzg1ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAKQEAgLTE5MjMsOSArMTkyMyw4IEBAIGJvb2wgRE9NV2luZG93Ojppc1NlY3VyZUNvbnRl
eHQoKSBjb25zdAogCiBib29sIERPTVdpbmRvdzo6Y3Jvc3NPcmlnaW5Jc29sYXRlZCgpIGNvbnN0
CiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudGVkIHRoaXMuIFRoaXMgc2hvdWxkIHJldHVybiB0
cnVlIGlmIENPT1AvQ09FUCBhcmUgdXNlZCBhbmQgdGhlIHBhZ2UgaXMgYWxsb3dlZCB0byB1c2Ug
QVBJcwotICAgIC8vIHRoYXQgcmVxdWlyZSBjcm9zcy1vcmlnaW4gaXNvbGF0aW9uIChlLmcuIFNo
YXJlZEFycmF5QnVmZmVyKS4KLSAgICByZXR1cm4gZmFsc2U7CisgICAgQVNTRVJUKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OmNyb3NzT3JpZ2luTW9kZSgpID09IENyb3NzT3JpZ2luTW9kZTo6U2hh
cmVkIHx8ICFkb2N1bWVudCgpIHx8IGRvY3VtZW50KCktPnRvcERvY3VtZW50KCkuY3Jvc3NPcmln
aW5PcGVuZXJQb2xpY3koKS52YWx1ZSA9PSBDcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpT
YW1lT3JpZ2luUGx1c0NPRVApOworICAgIHJldHVybiBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpj
cm9zc09yaWdpbk1vZGUoKSA9PSBDcm9zc09yaWdpbk1vZGU6Oklzb2xhdGVkOwogfQogCiBzdGF0
aWMgdm9pZCBkaWRBZGRTdG9yYWdlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cmIHdpbmRvdykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCA0MGY4NzQ3YjFkYWYzZTE0OTA2NTBkMzFmOTY1
ZTFkY2ZhZTFmNTlhLi4xYmMxMzAxY2ZhMGNmOWJiNDI0ZDVjZjIxNGMwZWJkODQ1MDBmM2FiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC03OSw4ICs3OSw2IEBACiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIE5hdmlnYXRvciBuYXZpZ2F0b3I7CiAgICAgLy8gRklYTUU6IFRoaXMgaXMg
c3BlY2lmaWVkIHRvIGJlIFtTZWN1cmVDb250ZXh0XQogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01BcHBsaWNhdGlvbkNhY2hlIGFwcGxpY2F0aW9uQ2FjaGU7Ci0gICAgLy8gRklYTUU6IEltcGxl
bWVudCAnb3JpZ2luSXNvbGF0ZWQnCi0gICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
b3JpZ2luSXNvbGF0ZWQ7CiAKICAgICAvLyB1c2VyIHByb21wdHMKICAgICB1bmRlZmluZWQgYWxl
cnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5k
ZXggZjE4NGMyNDg4ZjVmOTRiZDdlMGM3OGIyOTgyMzJmMjk4Nzc0MWFlNy4uYmFiN2U3NDRhYTEy
NWNmYzIwMTczMDcwOGY3ZmE3N2I2NWU5Mjc4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTU4NSw5ICs1ODUsNyBAQCB2b2lkIFdvcmtlckds
b2JhbFNjb3BlOjpjbGVhckRlY29kZWRTY3JpcHREYXRhKCkKIAogYm9vbCBXb3JrZXJHbG9iYWxT
Y29wZTo6Y3Jvc3NPcmlnaW5Jc29sYXRlZCgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IEltcGxl
bWVudGVkIHRoaXMuIFRoaXMgc2hvdWxkIHJldHVybiB0cnVlIGlmIENPT1AvQ09FUCBhcmUgdXNl
ZCBhbmQgdGhlIHBhZ2UgaXMgYWxsb3dlZCB0byB1c2UgQVBJcwotICAgIC8vIHRoYXQgcmVxdWly
ZSBjcm9zcy1vcmlnaW4gaXNvbGF0aW9uIChlLmcuIFNoYXJlZEFycmF5QnVmZmVyKS4KLSAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmNyb3NzT3Jp
Z2luTW9kZSgpID09IENyb3NzT3JpZ2luTW9kZTo6SXNvbGF0ZWQ7CiB9CiAKIHZvaWQgV29ya2Vy
R2xvYmFsU2NvcGU6OnVwZGF0ZVNvdXJjZVByb3ZpZGVyQnVmZmVycyhjb25zdCBTY3JpcHRCdWZm
ZXImIG1haW5TY3JpcHQsIGNvbnN0IEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+JiBpbXBvcnRl
ZFNjcmlwdHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBm
YjIzNDdkNWY4OWM4NTEwZmQ3MDViNDI1YTRlYzUyNDU4NGNlNTdhLi44MzYzMTk0YjQ5NjI2MjA2
MmZjYjQxMDAxMDczNjc5ODQwOTc0MWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKQEAgLTY4Nyw2ICs2ODcsNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBl
KToKICAgICAgICAgJ1N0cmluZyc6IFsnPHd0Zi90ZXh0L1dURlN0cmluZy5oPiddLAogICAgICAg
ICAnUEFMOjpTZXNzaW9uSUQnOiBbJzxwYWwvU2Vzc2lvbklELmg+J10sCiAgICAgICAgICdXZWJD
b3JlOjpBdXRvcGxheUV2ZW50RmxhZ3MnOiBbJzxXZWJDb3JlL0F1dG9wbGF5RXZlbnQuaD4nXSwK
KyAgICAgICAgJ1dlYkNvcmU6OkJyb3dzaW5nQ29udGV4dEdyb3VwJzogWyc8V2ViQ29yZS9GcmFt
ZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpDcmVhdGVOZXdHcm91cEZvckhp
Z2hsaWdodCc6IFsnPFdlYkNvcmUvQXBwSGlnaGxpZ2h0Lmg+J10sCiAgICAgICAgICdXZWJDb3Jl
OjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlJzogWyc8V2ViQ29yZS9ET01QYXN0ZUFjY2Vzcy5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlJzogWyc8V2ViQ29yZS9D
b2xvclNwYWNlLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBv
aW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9Y
UENTZXJ2aWNlRW50cnlQb2ludC5oCmluZGV4IDkyZTE0ZTRlZGY3MTliMWVjMDJkZmQ4NTQxODI5
NDQyMjNjYzI2YTUuLjBhODEyMWFlNzUwMDUwYjM3MDcxMzI4MTI5YzA3NDY3NGEzNTk1ZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2Ev
WFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQ
b2ludC5oCkBAIC05Miw2ICs5MiwxMSBAQCB2b2lkIFhQQ1NlcnZpY2VJbml0aWFsaXplcihPU09i
amVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uLCB4cGNfb2JqZWN0XwogICAgICAg
ICAgICAgSlNDOjpDb25maWc6OmNvbmZpZ3VyZUZvclRlc3RpbmcoKTsKICAgICAgICAgaWYgKHhw
Y19kaWN0aW9uYXJ5X2dldF9ib29sKGluaXRpYWxpemVyTWVzc2FnZSwgImRpc2FibGUtaml0Iikp
CiAgICAgICAgICAgICBKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6OnNldEpJVEVuYWJsZWQoZmFs
c2UpOworICAgICAgICBpZiAoeHBjX2RpY3Rpb25hcnlfZ2V0X2Jvb2woaW5pdGlhbGl6ZXJNZXNz
YWdlLCAiZW5hYmxlLXNoYXJlZC1hcnJheS1idWZmZXIiKSkgeworICAgICAgICAgICAgSlNDOjpP
cHRpb25zOjppbml0aWFsaXplKCk7CisgICAgICAgICAgICBKU0M6Ok9wdGlvbnM6OkFsbG93VW5m
aW5hbGl6ZWRBY2Nlc3NTY29wZSBzY29wZTsKKyAgICAgICAgICAgIEpTQzo6T3B0aW9uczo6dXNl
U2hhcmVkQXJyYXlCdWZmZXIoKSA9IHRydWU7CisgICAgICAgIH0KICAgICB9CiAKICAgICBYUENT
ZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZVR5cGUgZGVsZWdhdGUoV1RGTW92ZShjb25uZWN0aW9u
KSwgaW5pdGlhbGl6ZXJNZXNzYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggYWZmYjU4YjI5NzQ0ODI5MTE3
ZDE3ZDFlMmE2MTQ3ZTIxYmY4YjZhMS4uNTg1N2EwNmQwZjc1NjE1YTYzZDA1MzlkNzIyM2NhN2M3
MWJjN2RhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTEyMiw2ICsxMjIsNyBAQCB2b2lkIFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAg
ICAgZW5jb2RlciA8PCBtZW1vcnlDYWNoZURpc2FibGVkOwogICAgIGVuY29kZXIgPDwgYXR0clN0
eWxlRW5hYmxlZDsKICAgICBlbmNvZGVyIDw8IHNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFs
Q29uc3RhbnRSZWRlY2xhcmF0aW9uOworICAgIGVuY29kZXIgPDwgY3Jvc3NPcmlnaW5Nb2RlOwog
CiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgZW5jb2RlciA8PCBoYXNJbWFnZVNl
cnZpY2VzOwpAQCAtMzg5LDYgKzM5MCw4IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hv
dWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24pKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmNyb3Nz
T3JpZ2luTW9kZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIEVOQUJMRShTRVJWSUNF
X0NPTlRST0xTKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5oYXNJbWFnZVNl
cnZpY2VzKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaAppbmRleCBkYzZiMjI5N2QyZjhhZDlhODI1MWYyMjgyMmQ5ZGFjZDhlYzg5
MTZmLi4xNTNmNTA1YTMyMzk5MGI2ODQ5NDBlZGM0ZmIyMDVjYTliMDc1ZTNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgogI2luY2x1ZGUg
IlVzZXJEYXRhLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL0Nyb3NzT3JpZ2luTW9kZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL1Byb2Nlc3NJRC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KQEAgLTEzNSw2ICsxMzYsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyB7CiAgICAgYm9vbCBtZW1vcnlDYWNoZURpc2FibGVkIHsgZmFsc2UgfTsKICAgICBib29s
IGF0dHJTdHlsZUVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgc2hvdWxkVGhyb3dFeGNlcHRp
b25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24geyB0cnVlIH07CisgICAgV2ViQ29yZTo6
Q3Jvc3NPcmlnaW5Nb2RlIGNyb3NzT3JpZ2luTW9kZSB7IGZhbHNlIH07IC8vIENyb3NzLW9yaWdp
biBpc29sYXRpb24gdmlhIENPT1ArQ09FUCBoZWFkZXJzLgogCiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
Q09OVFJPTFMpCiAgICAgYm9vbCBoYXNJbWFnZVNlcnZpY2VzIHsgZmFsc2UgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKaW5kZXgg
MTA4MWJhMmE1YmZjMzRiOWZiNzNhZjg4NTEyNTNlNzhlYWFlYjNjOC4uZDMwZjZkNDliMDkyZjc5
NDE3NTg1Njg1MjFhMDZhYTMwZDJiZGJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKQEAgLTYxLDYgKzYxLDcgQEAgcHVibGlj
OgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hl
ciosIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcikgPSAwOwogICAgICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkQ29uZmlndXJlSlNDRm9yVGVzdGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0pJVEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CisgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRFbmFibGVTaGFyZWRBcnJheUJ1ZmZlcigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIHZp
cnR1YWwgUmVmUHRyPFhQQ0V2ZW50SGFuZGxlcj4geHBjRXZlbnRIYW5kbGVyKCkgY29uc3QgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRleCBmNzc3M2Zl
NmRkMDI5MmQyYzM5Y2NmZmRjMDhiNTM2OWUwNTIwZTUyLi5kYWMzMWMzZDlmNjZhMDhiMGUwZDA2
NTZhZmU2N2E1YmY4OGFhM2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9M
YXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTIwNSw2ICsyMDUs
OCBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgICAgICAgICB4
cGNfZGljdGlvbmFyeV9zZXRfYm9vbChib290c3RyYXBNZXNzYWdlLmdldCgpLCAiY29uZmlndXJl
LWpzYy1mb3ItdGVzdGluZyIsIHRydWUpOwogICAgICAgICBpZiAoIW1fY2xpZW50LT5pc0pJVEVu
YWJsZWQoKSkKICAgICAgICAgICAgIHhwY19kaWN0aW9uYXJ5X3NldF9ib29sKGJvb3RzdHJhcE1l
c3NhZ2UuZ2V0KCksICJkaXNhYmxlLWppdCIsIHRydWUpOworICAgICAgICBpZiAobV9jbGllbnQt
PnNob3VsZEVuYWJsZVNoYXJlZEFycmF5QnVmZmVyKCkpCisgICAgICAgICAgICB4cGNfZGljdGlv
bmFyeV9zZXRfYm9vbChib290c3RyYXBNZXNzYWdlLmdldCgpLCAiZW5hYmxlLXNoYXJlZC1hcnJh
eS1idWZmZXIiLCB0cnVlKTsKICAgICB9CiAKICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5n
KGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJtZXNzYWdlLW5hbWUiLCAiYm9vdHN0cmFwIik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5k
ZXggNzVhNjVjNDMzNzA2NTQ3ODAwZTYyMGFkMDVmNDU2YzM2MDQxZWZmMy4uMjY4OTRiMDdjY2Ey
ZTA0YWZmZmQwMmE0MmY1MjBkNGYxN2Q3NjYzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApAQCAtMzMwLDEyICszMzAsMTIgQEAgdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFz
eW5jKEZyYW1lSWRlbnRpZmllcgogICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uQXN5bmNTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1l
SUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3Zl
KG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgV1RGTW92ZShvcmlnaW5hdGluZ0ZyYW1lSW5mbyksIG9y
aWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1v
dmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgbGlz
dGVuZXJJRCk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
clJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJ
bmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1F
VHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJ
bmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50
NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEm
JiBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2Fu
U2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0Fs
bG93ZWRCeUluamVjdGVkQnVuZGxlLCBCcm93c2luZ0NvbnRleHRHcm91cCBicm93c2luZ0NvbnRl
eHRHcm91cCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIXZhbGlkYXRl
SW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9w
YWdlLmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1f
d2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZpZXIsIG5hdmln
YXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRy
aWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdy
b3VwU3dpdGNoLCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgbGlzdGVuZXJJRCwgdXNlckRh
dGEpOworICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3Mu
Y29weVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVu
dGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUs
IGRvd25sb2FkQXR0cmlidXRlLCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYnJvd3NpbmdD
b250ZXh0R3JvdXAsIG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBsaXN0ZW5lcklELCB1c2Vy
RGF0YSk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJS
ZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0
aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAppbmRleCAwYWJlYTlkYTZiYmQy
MDExNGZmNTRjMWI4ZDcxY2FmZGJmNzIzNzYyLi5kZGMwZThjOWU1NWNhNDdkNDhkZjcxNjM2YzNk
ODgwOWU4NTQ0NzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNp
b25hbFBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFs
UGFnZVByb3h5LmgKQEAgLTEyNSw3ICsxMjUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgc2VuZE1l
c3NhZ2UoVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mJiwgT3B0aW9uU2V0PElQQzo6U2VuZE9wdGlv
bj4sIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpE
ZWNvZGVyKik+LCB1aW50NjRfdD4+JiYpIGZpbmFsOwogCiAgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUlu
Zm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRp
bmdGcmFtZUluZm8sIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2lu
YXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1
ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYm
IHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25z
ZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0
YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2Fk
QXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIHVpbnQ2NF90IG1h
aW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9E
YXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxv
YWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIFdlYkNvcmU6OkJy
b3dzaW5nQ29udGV4dEdyb3VwLCB1aW50NjRfdCBsaXN0ZW5lcklELCB1aW50NjRfdCBtYWluUmVz
b3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRpZENoYW5n
ZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKICAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVj
dChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlv
blVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZFJlY2Vp
dmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiwgY29uc3QgVXNlckRhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNw
ZW5kZWRQYWdlUHJveHkuY3BwCmluZGV4IDNiNjgxZTVlOTFiYmZlNTA5M2VlODdjOGY1N2Y0OWQy
YWRhYWFlNDkuLjcyZjU1OGY3ZjA2NzUxMTU2NGJlYjFiYTVkYmY1ZmFmYmZlYmNjZTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcApAQCAtNTQs
NyArNTQsNyBAQCBSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiBTdXNwZW5kZWRQYWdlUHJveHk6OmZp
bmRSZXVzYWJsZVN1c3BlbmRlZFBhZ2VQcm9jZXNzKFdlYgogewogICAgIGZvciAoYXV0byogc3Vz
cGVuZGVkUGFnZSA6IGFsbFN1c3BlbmRlZFBhZ2VzKCkpIHsKICAgICAgICAgYXV0byYgcHJvY2Vz
cyA9IHN1c3BlbmRlZFBhZ2UtPnByb2Nlc3MoKTsKLSAgICAgICAgaWYgKCZwcm9jZXNzLnByb2Nl
c3NQb29sKCkgPT0gJnByb2Nlc3NQb29sICYmIHByb2Nlc3MucmVnaXN0cmFibGVEb21haW4oKSA9
PSByZWdpc3RyYWJsZURvbWFpbiAmJiAmcHJvY2Vzcy53ZWJzaXRlRGF0YVN0b3JlKCkgPT0gJmRh
dGFTdG9yZSkKKyAgICAgICAgaWYgKCZwcm9jZXNzLnByb2Nlc3NQb29sKCkgPT0gJnByb2Nlc3NQ
b29sICYmIHByb2Nlc3MucmVnaXN0cmFibGVEb21haW4oKSA9PSByZWdpc3RyYWJsZURvbWFpbiAm
JiAmcHJvY2Vzcy53ZWJzaXRlRGF0YVN0b3JlKCkgPT0gJmRhdGFTdG9yZSAmJiBwcm9jZXNzLmNy
b3NzT3JpZ2luTW9kZSgpICE9IENyb3NzT3JpZ2luTW9kZTo6SXNvbGF0ZWQpCiAgICAgICAgICAg
ICByZXR1cm4gJnByb2Nlc3M7CiAgICAgfQogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNjg5OWUyODkyNzc1Yjg0YTdlNWMw
N2ZmNTlkMzExYjdkYmZlNTI5ZS4uYjIwYTJlNGJiNTc0OWNiZjVlMmIzOGU2MTBhMTJhZWUyODgy
Yzk3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01NjE5
LDEyICs1NjE5LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5k
b3dBY3Rpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lCiAKIHZvaWQgV2ViUGFnZVBy
b3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJh
bWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIs
CiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlw
ZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwKLSAgICBib29sIHdhc0FsbG93ZWRC
eUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVp
bnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCB1aW50NjRfdCBsaXN0ZW5lcklELCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCisgICAgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1
bmRsZSwgQnJvd3NpbmdDb250ZXh0R3JvdXAgYnJvd3NpbmdDb250ZXh0R3JvdXAsIHVpbnQ2NF90
IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQo
bV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVJ
bmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hv
d01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUs
IG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIG1haW5SZXNvdXJjZUxvYWRJZGVudGlm
aWVyLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CisgICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VT
aGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUo
ZnJhbWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwg
Y2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRC
dW5kbGUsIGJyb3dzaW5nQ29udGV4dEdyb3VwLCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwg
bGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdl
SWRlbnRpZmllciB3ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9E
YXRhJiYgZnJhbWVJbmZvLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3Ry
aW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwg
Ym9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBtYWluUmVzb3Vy
Y2VMb2FkSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlE
LCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9s
aWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1
dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIEJyb3dzaW5nQ29udGV4dEdyb3Vw
IGJyb3dzaW5nQ29udGV4dEdyb3VwLCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAg
IFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTU2Mzcs
NyArNTYzNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNo
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAgUmVmUHRyPEFQSTo6TmF2
aWdhdGlvbj4gbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25JRCA/IG1fbmF2aWdhdGlvblN0YXRlLT5u
YXZpZ2F0aW9uKG5hdmlnYXRpb25JRCkgOiBudWxscHRyOwogICAgIGF1dG8gbmF2aWdhdGlvblJl
c3BvbnNlID0gQVBJOjpOYXZpZ2F0aW9uUmVzcG9uc2U6OmNyZWF0ZShBUEk6OkZyYW1lSW5mbzo6
Y3JlYXRlKFdURk1vdmUoZnJhbWVJbmZvKSwgdGhpcykuZ2V0KCksIHJlcXVlc3QsIHJlc3BvbnNl
LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlKTsKIAotICAgIGF1dG8gbGlzdGVu
ZXIgPSBtYWtlUmVmKGZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgd2ViUGFnZUlELCBmcmFtZUlELCBuZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoLCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgaWRlbnRp
ZmllciwgbGlzdGVuZXJJRCwgbmF2aWdhdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbiksCisgICAg
YXV0byBsaXN0ZW5lciA9IG1ha2VSZWYoZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB3ZWJQYWdlSUQsIGZyYW1lSUQs
IGJyb3dzaW5nQ29udGV4dEdyb3VwLCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgaWRlbnRp
ZmllciwgbGlzdGVuZXJJRCwgbmF2aWdhdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbiksCiAgICAg
ICAgIHByb2Nlc3MsIG5hdmlnYXRpb25SZXNwb25zZV0gKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rp
b24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBw
cm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWZQdHI8U2FmZUJyb3dzaW5nV2FybmluZz4m
JiBzYWZlQnJvd3NpbmdXYXJuaW5nLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5k
RG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKSBtdXRhYmxlIHsKICAgICAgICAg
Ly8gRklYTUU6IEFzc2VydCB0aGUgQVBJOjpXZWJzaXRlUG9saWNpZXMqIGlzIG51bGxwdHIgaGVy
ZSBvbmNlIGNsaWVudHMgb2YgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlV2l0aFBvbGljaWVzIGdv
IGF3YXkuCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGll
bnQgPT0gUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDo6Tm8pOwpAQCAtNTY0OCwxOSArNTY0
OCwyMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLAogICAgICAgICB9KTsKIAogICAgICAgICBh
dXRvIHdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3MgPSBXaWxsQ29udGludWVMb2FkSW5OZXdQ
cm9jZXNzOjpObzsKLSAgICAgICAgaWYgKHBvbGljeUFjdGlvbiA9PSBQb2xpY3lBY3Rpb246OlVz
ZSAmJiBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoICYmIG5hdmlnYXRpb24pIHsKLSAg
ICAgICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlc3BvbnNlRG9tYWluIHsgbmF2aWdhdGlvblJl
c3BvbnNlLT5yZXNwb25zZSgpLnVybCgpIH07Ci0gICAgICAgICAgICAvLyBBdm9pZCBwcm9jZXNz
LXN3YXBwaW5nIGluIGNhc2VzIHdoZXJlIHRoZSBwcm9jZXNzIG9ubHkgY29udGFpbnMgYSBzaW5n
bGUgcGFnZSBhbmQgaXMgb3JpZ2luLWNsZWFuLgotICAgICAgICAgICAgaWYgKHByb2Nlc3MtPnBh
Z2VDb3VudCgpID4gMSB8fCAocHJvY2Vzcy0+b3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbigpICYm
ICpwcm9jZXNzLT5vcHRpb25hbFJlZ2lzdHJhYmxlRG9tYWluKCkgIT0gcmVzcG9uc2VEb21haW4p
KSB7Ci0gICAgICAgICAgICAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HKFByb2Nlc3NTd2Fw
cGluZywgImRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkOiBQcm9jZXNzLXN3YXBwaW5nIGR1
ZSB0byBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSIpOwotICAgICAgICAgICAgICAgIHdlYnNp
dGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnByZXBhcmVMb2FkRm9yV2ViUHJvY2Vzc1Ry
YW5zZmVyKHByb2Nlc3MtPmNvcmVQcm9jZXNzSWRlbnRpZmllcigpLCBtYWluUmVzb3VyY2VMb2Fk
SWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMp
LCByZXNwb25zZURvbWFpbiA9IFdURk1vdmUocmVzcG9uc2VEb21haW4pLCBuYXZpZ2F0aW9uLCBu
YXZpZ2F0aW9uUmVzcG9uc2UgPSBXVEZNb3ZlKG5hdmlnYXRpb25SZXNwb25zZSksIHNlbmRlciA9
IFdURk1vdmUoc2VuZGVyKV0oYXV0byBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlm
aWVyVG9SZXN1bWUpIG11dGFibGUgewotICAgICAgICAgICAgICAgICAgICBhdXRvIHByb2Nlc3NG
b3JOYXZpZ2F0aW9uID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLnByb2Nlc3NGb3JSZWdpc3Ry
YWJsZURvbWFpbih3ZWJzaXRlRGF0YVN0b3JlKCksIHRoaXMsIHJlc3BvbnNlRG9tYWluKTsKLSAg
ICAgICAgICAgICAgICAgICAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKCpuYXZpZ2F0
aW9uLCBudWxscHRyLCBXVEZNb3ZlKHByb2Nlc3NGb3JOYXZpZ2F0aW9uKSwgUHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudDo6Tm8sIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0
ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uLCBudWxscHRyLCBleGlzdGluZ05ldHdvcmtSZXNvdXJj
ZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUpOwotCi0gICAgICAgICAgICAgICAgICAgIHJlY2VpdmVk
UG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uOjpJZ25vcmUsIG5hdmlnYXRpb24uZ2V0KCksIG51
bGxwdHIsIFdURk1vdmUobmF2aWdhdGlvblJlc3BvbnNlKSwgV1RGTW92ZShzZW5kZXIpLCB7IH0s
IFdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3M6Olllcyk7Ci0gICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQorICAgICAgICBpZiAocG9s
aWN5QWN0aW9uID09IFBvbGljeUFjdGlvbjo6VXNlICYmIGJyb3dzaW5nQ29udGV4dEdyb3VwICE9
IEJyb3dzaW5nQ29udGV4dEdyb3VwOjpTdGF5SW5Hcm91cCAmJiBuYXZpZ2F0aW9uKSB7CisgICAg
ICAgICAgICBXRUJQQUdFUFJPWFlfUkVMRUFTRV9MT0coUHJvY2Vzc1N3YXBwaW5nLCAiZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQ6IFByb2Nlc3Mtc3dhcHBpbmcgZHVlIHRvIENyb3NzLU9y
aWdpbi1PcGVuZXItUG9saWN5Iik7CisgICAgICAgICAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0
d29ya1Byb2Nlc3MoKS5wcmVwYXJlTG9hZEZvcldlYlByb2Nlc3NUcmFuc2Zlcihwcm9jZXNzLT5j
b3JlUHJvY2Vzc0lkZW50aWZpZXIoKSwgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgbmF2aWdhdGlvbiwgbmF2
aWdhdGlvblJlc3BvbnNlID0gV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBzZW5kZXIgPSBX
VEZNb3ZlKHNlbmRlciksIGJyb3dzaW5nQ29udGV4dEdyb3VwXShhdXRvIGV4aXN0aW5nTmV0d29y
a1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSkgbXV0YWJsZSB7CisgICAgICAgICAgICAg
ICAgUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gcHJvY2Vzc0Zvck5hdmlnYXRpb247CisgICAgICAg
ICAgICAgICAgaWYgKGJyb3dzaW5nQ29udGV4dEdyb3VwID09IEJyb3dzaW5nQ29udGV4dEdyb3Vw
OjpOZXdJc29sYXRlZEdyb3VwKQorICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRm9yTmF2aWdh
dGlvbiA9IG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5jcmVhdGVOZXdXZWJQcm9jZXNzKCZ3ZWJz
aXRlRGF0YVN0b3JlKCksIFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQ6Ok5vLCBDcm9zc09y
aWdpbk1vZGU6Oklzb2xhdGVkKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgQVNTRVJUKGJyb3dzaW5nQ29udGV4dEdyb3VwID09IEJyb3dzaW5nQ29udGV4dEdy
b3VwOjpOZXdTaGFyZWRHcm91cCk7CisgICAgICAgICAgICAgICAgICAgIFJlZ2lzdHJhYmxlRG9t
YWluIHJlc3BvbnNlRG9tYWluIHsgbmF2aWdhdGlvblJlc3BvbnNlLT5yZXNwb25zZSgpLnVybCgp
IH07CisgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NGb3JOYXZpZ2F0aW9uID0gbV9wcm9jZXNz
LT5wcm9jZXNzUG9vbCgpLnByb2Nlc3NGb3JSZWdpc3RyYWJsZURvbWFpbih3ZWJzaXRlRGF0YVN0
b3JlKCksIHRoaXMsIHJlc3BvbnNlRG9tYWluKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKCpuYXZpZ2F0aW9uLCBudWxs
cHRyLCBwcm9jZXNzRm9yTmF2aWdhdGlvbi5yZWxlYXNlTm9uTnVsbCgpLCBQcm9jZXNzU3dhcFJl
cXVlc3RlZEJ5Q2xpZW50OjpObywgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRl
clJlc3BvbnNlUG9saWN5RGVjaXNpb24sIG51bGxwdHIsIGV4aXN0aW5nTmV0d29ya1Jlc291cmNl
TG9hZElkZW50aWZpZXJUb1Jlc3VtZSk7CisKKyAgICAgICAgICAgICAgICByZWNlaXZlZFBvbGlj
eURlY2lzaW9uKFBvbGljeUFjdGlvbjo6SWdub3JlLCBuYXZpZ2F0aW9uLmdldCgpLCBudWxscHRy
LCBXVEZNb3ZlKG5hdmlnYXRpb25SZXNwb25zZSksIFdURk1vdmUoc2VuZGVyKSwgeyB9LCBXaWxs
Q29udGludWVMb2FkSW5OZXdQcm9jZXNzOjpZZXMpOworICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHJlY2VpdmVkUG9saWN5
RGVjaXNpb24ocG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLmdldCgpLCBudWxscHRyLCBXVEZNb3Zl
KG5hdmlnYXRpb25SZXNwb25zZSksIFdURk1vdmUoc2VuZGVyKSwgeyB9LCB3aWxsQ29udGludWVM
b2FkSW5OZXdQcm9jZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5k
ZXggZmZmODViNTUxYWYwMzY5MTBlNDEyZWFkNzEyYmVjYzEzYzkxYmYyNi4uZGYzODFhN2EzMDc1
M2RhMzc5ZWU5YTYzYjIzNTQ2NjZjOTYwMjFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKQEAgLTE3NDIsNyArMTc0Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZE5h
dmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNv
bnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwog
ICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgVVJMJiYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFz
eW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRp
b25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVp
bnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hv
d01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93
ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gs
IHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCB1aW50NjRfdCBsaXN0ZW5lcklE
LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hv
d01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93
ZWRCeUluamVjdGVkQnVuZGxlLCBXZWJDb3JlOjpCcm93c2luZ0NvbnRleHRHcm91cCwgdWludDY0
X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0
IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFVSTFNjaGVtZVRhc2tQYXJh
bWV0ZXJzJiYpOwogICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQVBJOjpOYXZpZ2F0aW9u
JiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29u
c3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCog
dXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRp
b25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBv
bGljaWVzRGF0YT4mJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgV2Vi
Q29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CiAgICAgdm9p
ZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJ
OjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQs
IHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFs
PFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQsIHN0ZDo6b3B0aW9uYWw8TmV0
d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXI+IGV4aXN0aW5nTmV0d29ya1Jlc291cmNlTG9hZElk
ZW50aWZpZXJUb1Jlc3VtZSA9IHN0ZDo6bnVsbG9wdCk7CkBAIC0yMDYxLDcgKzIwNjEsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJ
RCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKLSAgICAgICAgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBi
b29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0
R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCB1aW50NjRf
dCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgICAgICBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBj
YW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2Fz
QWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIFdlYkNvcmU6OkJyb3dzaW5nQ29udGV4dEdyb3VwLCB1
aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwg
Y29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIHVuYWJsZVRvSW1wbGVtZW50UG9saWN5KFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0
IFVzZXJEYXRhJik7CiAgICAgdm9pZCBiZWdpblNhZmVCcm93c2luZ0NoZWNrKGNvbnN0IFVSTCYs
IGJvb2wsIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eSYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggODE5NmIxMTlhOGYw
MmU3YTAwNjA0MDg1MDI4ZTkxYWUyMzE4NjUxOS4uYjdhMWFmY2M5MWVjNWEzMTc5NGM4MjZmODJh
N2MzNzAwNzE5YTllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtMTA3LDcgKzEwNyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQ
cm94eSB7CiAjZW5kaWYKIAogICAgICMgUG9saWN5IG1lc3NhZ2VzCi0gICAgRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJL
aXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1
ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgU3RyaW5nIGRvd25sb2FkQXR0cmlidXRlLCBib29s
IHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2gsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERlY2lkZVBvbGljeUZv
clJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0
OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
IHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3
YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgZW51bTp1aW50OF90IFdlYkNvcmU6OkJyb3dzaW5n
Q29udGV4dEdyb3VwIGJyb3dzaW5nQ29udGV4dEdyb3VwLCB1aW50NjRfdCBtYWluUmVzb3VyY2VM
b2FkSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2Vy
RGF0YSkKICAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJh
bWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rp
b25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRh
IG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQ
cm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50NjRfdCBs
aXN0ZW5lcklEKQogICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBzdHJ1Y3QgV2Vi
S2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3Qg
V2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0
IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHN0ZDo6b3B0
aW9uYWw8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0
YSB1c2VyRGF0YSkgLT4gKHN0cnVjdCBXZWJLaXQ6OlBvbGljeURlY2lzaW9uIFBvbGljeURlY2lz
aW9uKSBTeW5jaHJvbm91cwogICAgIERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0
YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lk
ZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25B
Y3Rpb25EYXRhLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIGZyYW1l
TmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAxZjgzZDQwMzI0
OWMxZDc4MzZjZDJjNDRmMmQ4NzZkYzkzMzA0MTMxLi5mY2E5ZGU2MTA3ZWJmN2NmNWZhMTViYjY1
YzQ0YjNiZDRhNjY1ZWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCkBAIC01OTYsNyArNTk2LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVzb2x2ZVBh
dGhzRm9yU2FuZGJveEV4dGVuc2lvbnMoKQogICAgIHBsYXRmb3JtUmVzb2x2ZVBhdGhzRm9yU2Fu
ZGJveEV4dGVuc2lvbnMoKTsKIH0KIAotUmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Bv
b2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdG9y
ZSwgV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1lZCBpc1ByZXdhcm1lZCkKK1JlZjxXZWJQcm9j
ZXNzUHJveHk+IFdlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRh
U3RvcmUqIHdlYnNpdGVEYXRhU3RvcmUsIFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQgaXNQ
cmV3YXJtZWQsIENyb3NzT3JpZ2luTW9kZSBjcm9zc09yaWdpbk1vZGUpCiB7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgbV90Y2NQcmVmZXJlbmNlRW5hYmxlZCA9IGRvZXNBcHBIYXZlSVRQRW5h
YmxlZCgpOwpAQCAtNjA0LDcgKzYwNCw3IEBAIFJlZjxXZWJQcm9jZXNzUHJveHk+IFdlYlByb2Nl
c3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqIHdlYnNpCiAgICAg
ICAgIHdlYnNpdGVEYXRhU3RvcmUtPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKG1f
dGNjUHJlZmVyZW5jZUVuYWJsZWQpOwogI2VuZGlmCiAKLSAgICBhdXRvIHByb2Nlc3NQcm94eSA9
IFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlKCp0aGlzLCB3ZWJzaXRlRGF0YVN0b3JlLCBpc1ByZXdh
cm1lZCk7CisgICAgYXV0byBwcm9jZXNzUHJveHkgPSBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZSgq
dGhpcywgd2Vic2l0ZURhdGFTdG9yZSwgaXNQcmV3YXJtZWQsIGNyb3NzT3JpZ2luTW9kZSk7CiAg
ICAgaW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3MocHJvY2Vzc1Byb3h5LCB3ZWJzaXRlRGF0YVN0b3Jl
LCBpc1ByZXdhcm1lZCk7CiAgICAgbV9wcm9jZXNzZXMuYXBwZW5kKHByb2Nlc3NQcm94eS5jb3B5
UmVmKCkpOwogCkBAIC04MDMsNiArODAzLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6aW5pdGlh
bGl6ZU5ld1dlYlByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBXZWJzaXRlRGEKICAg
ICBwYXJhbWV0ZXJzLm1lbW9yeUNhY2hlRGlzYWJsZWQgPSBtX21lbW9yeUNhY2hlRGlzYWJsZWQ7
CiAgICAgcGFyYW1ldGVycy5hdHRyU3R5bGVFbmFibGVkID0gbV9jb25maWd1cmF0aW9uLT5hdHRy
U3R5bGVFbmFibGVkKCk7CiAgICAgcGFyYW1ldGVycy5zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckds
b2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbiA9IG1fY29uZmlndXJhdGlvbi0+c2hvdWxkVGhyb3dF
eGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24oKTsKKyAgICBwYXJhbWV0ZXJz
LmNyb3NzT3JpZ2luTW9kZSA9IHByb2Nlc3MuY3Jvc3NPcmlnaW5Nb2RlKCk7CiAKICNpZiBFTkFC
TEUoU0VSVklDRV9DT05UUk9MUykKICAgICBhdXRvJiBzZXJ2aWNlQ29udHJvbGxlciA9IFNlcnZp
Y2VzQ29udHJvbGxlcjo6c2luZ2xldG9uKCk7CkBAIC0xMDUxLDcgKzEwNTIsNyBAQCBSZWY8V2Vi
UGFnZVByb3h5PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50JiBwYWdl
Q2xpZW50LCBSZWY8QVBJOgogICAgICAgICAvLyBJbiB0aGUgY29tbW9uIGNhc2UsIHdlIGRlbGF5
IHByb2Nlc3MgbGF1bmNoIHVudGlsIHNvbWV0aGluZyBpcyBhY3R1YWxseSBsb2FkZWQgaW4gdGhl
IHBhZ2UuCiAgICAgICAgIHByb2Nlc3MgPSBkdW1teVByb2Nlc3NQcm94eShwYWdlQ29uZmlndXJh
dGlvbi0+d2Vic2l0ZURhdGFTdG9yZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAgICAgIGlmICghcHJv
Y2VzcykgewotICAgICAgICAgICAgcHJvY2VzcyA9IFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlKCp0
aGlzLCBwYWdlQ29uZmlndXJhdGlvbi0+d2Vic2l0ZURhdGFTdG9yZSgpLCBXZWJQcm9jZXNzUHJv
eHk6OklzUHJld2FybWVkOjpObywgV2ViUHJvY2Vzc1Byb3h5OjpTaG91bGRMYXVuY2hQcm9jZXNz
OjpObyk7CisgICAgICAgICAgICBwcm9jZXNzID0gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoKnRo
aXMsIHBhZ2VDb25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCksIFdlYlByb2Nlc3NQcm94
eTo6SXNQcmV3YXJtZWQ6Ok5vLCBDcm9zc09yaWdpbk1vZGU6OlNoYXJlZCwgV2ViUHJvY2Vzc1By
b3h5OjpTaG91bGRMYXVuY2hQcm9jZXNzOjpObyk7CiAgICAgICAgICAgICBtX2R1bW15UHJvY2Vz
c1Byb3hpZXMuYWRkKHBhZ2VDb25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCktPnNlc3Np
b25JRCgpLCBtYWtlV2Vha1B0cigqcHJvY2VzcykpOwogICAgICAgICAgICAgbV9wcm9jZXNzZXMu
YXBwZW5kKCpwcm9jZXNzKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmgKaW5kZXggMDUzNTlhN2RkNDExMDU4MTE4N2QwZjA5N2U1YWZkNjI3MzU1Y2E4
YS4uMDVjZjUzNDY4OWU1YWIzOWFkOTZjYmEyNWZkMzM2YjVmMjQxMjVkMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC01MTQsNiArNTE0LDggQEAgcHVibGlj
OgogICAgIHN0YXRpYyBTdHJpbmcgY29udGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5KCk7CiAjZW5k
aWYKIAorICAgIFJlZjxXZWJQcm9jZXNzUHJveHk+IGNyZWF0ZU5ld1dlYlByb2Nlc3MoV2Vic2l0
ZURhdGFTdG9yZSosIFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQgPSBXZWJQcm9jZXNzUHJv
eHk6OklzUHJld2FybWVkOjpObywgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5Nb2RlID0gV2ViQ29yZTo6
Q3Jvc3NPcmlnaW5Nb2RlOjpTaGFyZWQpOworCiBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1J
bml0aWFsaXplKCk7CiAKQEAgLTUyNCw3ICs1MjYsNiBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRy
PFdlYlByb2Nlc3NQcm94eT4gdHJ5VGFrZVByZXdhcm1lZFByb2Nlc3MoV2Vic2l0ZURhdGFTdG9y
ZSYpOwogCi0gICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gY3JlYXRlTmV3V2ViUHJvY2VzcyhXZWJz
aXRlRGF0YVN0b3JlKiwgV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1lZCA9IFdlYlByb2Nlc3NQ
cm94eTo6SXNQcmV3YXJtZWQ6Ok5vKTsKICAgICB2b2lkIGluaXRpYWxpemVOZXdXZWJQcm9jZXNz
KFdlYlByb2Nlc3NQcm94eSYsIFdlYnNpdGVEYXRhU3RvcmUqLCBXZWJQcm9jZXNzUHJveHk6Oklz
UHJld2FybWVkID0gV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1lZDo6Tm8pOwogCiAgICAgdm9p
ZCBoYW5kbGVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5h
bWUsIGNvbnN0IFVzZXJEYXRhJiBtZXNzYWdlQm9keSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBkOGU2YzczYWE2ZTlmNTc3YmZiNTdkMmEzMTNi
OGNkNmYyNWQyYmI5Li40M2Q5ZDQ5MThiMTQ5YTgxNTVmNzQ0MDNmZDk2NWRjZWUyZjRlZTNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE0Nyw5
ICsxNDcsOSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Zm9yV2ViUGFnZXNXaXRoT3JpZ2luKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU2VjdQogICAgIH0KIH0KIAotUmVmPFdlYlBy
b2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nl
c3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3JlLCBJc1ByZXdhcm1lZCBp
c1ByZXdhcm1lZCwgU2hvdWxkTGF1bmNoUHJvY2VzcyBzaG91bGRMYXVuY2hQcm9jZXNzKQorUmVm
PFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wm
IHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3JlLCBJc1ByZXdh
cm1lZCBpc1ByZXdhcm1lZCwgQ3Jvc3NPcmlnaW5Nb2RlIGNyb3NzT3JpZ2luTW9kZSwgU2hvdWxk
TGF1bmNoUHJvY2VzcyBzaG91bGRMYXVuY2hQcm9jZXNzKQogewotICAgIGF1dG8gcHJveHkgPSBh
ZG9wdFJlZigqbmV3IFdlYlByb2Nlc3NQcm94eShwcm9jZXNzUG9vbCwgd2Vic2l0ZURhdGFTdG9y
ZSwgaXNQcmV3YXJtZWQpKTsKKyAgICBhdXRvIHByb3h5ID0gYWRvcHRSZWYoKm5ldyBXZWJQcm9j
ZXNzUHJveHkocHJvY2Vzc1Bvb2wsIHdlYnNpdGVEYXRhU3RvcmUsIGlzUHJld2FybWVkLCBjcm9z
c09yaWdpbk1vZGUpKTsKICAgICBpZiAoc2hvdWxkTGF1bmNoUHJvY2VzcyA9PSBTaG91bGRMYXVu
Y2hQcm9jZXNzOjpZZXMpCiAgICAgICAgIHByb3h5LT5jb25uZWN0KCk7CiAgICAgcmV0dXJuIHBy
b3h5OwpAQCAtMTU4LDcgKzE1OCw3IEBAIFJlZjxXZWJQcm9jZXNzUHJveHk+IFdlYlByb2Nlc3NQ
cm94eTo6Y3JlYXRlKFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0CiAjaWYgRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQogUmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Byb3h5
OjpjcmVhdGVGb3JTZXJ2aWNlV29ya2VycyhXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFJl
Z2lzdHJhYmxlRG9tYWluJiYgcmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhU3RvcmUmIHdl
YnNpdGVEYXRhU3RvcmUpCiB7Ci0gICAgYXV0byBwcm94eSA9IGFkb3B0UmVmKCpuZXcgV2ViUHJv
Y2Vzc1Byb3h5KHByb2Nlc3NQb29sLCAmd2Vic2l0ZURhdGFTdG9yZSwgSXNQcmV3YXJtZWQ6Ok5v
KSk7CisgICAgYXV0byBwcm94eSA9IGFkb3B0UmVmKCpuZXcgV2ViUHJvY2Vzc1Byb3h5KHByb2Nl
c3NQb29sLCAmd2Vic2l0ZURhdGFTdG9yZSwgSXNQcmV3YXJtZWQ6Ok5vLCBDcm9zc09yaWdpbk1v
ZGU6OlNoYXJlZCkpOwogICAgIHByb3h5LT5tX3JlZ2lzdHJhYmxlRG9tYWluID0gV1RGTW92ZShy
ZWdpc3RyYWJsZURvbWFpbik7CiAgICAgcHJveHktPmVuYWJsZVNlcnZpY2VXb3JrZXJzKHByb2Nl
c3NQb29sLnVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXJGb3JTZXJ2aWNlV29ya2Vycygp
KTsKICAgICBwcm94eS0+Y29ubmVjdCgpOwpAQCAtMTk0LDcgKzE5NCw3IEBAIHByaXZhdGU6CiB9
OwogI2VuZGlmCiAKLVdlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQ
b29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdG9yZSwgSXNQ
cmV3YXJtZWQgaXNQcmV3YXJtZWQpCitXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShX
ZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqIHdlYnNpdGVEYXRh
U3RvcmUsIElzUHJld2FybWVkIGlzUHJld2FybWVkLCBDcm9zc09yaWdpbk1vZGUgY3Jvc3NPcmln
aW5Nb2RlKQogICAgIDogQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLmFsd2F5c1J1
bnNBdEJhY2tncm91bmRQcmlvcml0eSgpKQogICAgICwgbV9iYWNrZ3JvdW5kUmVzcG9uc2l2ZW5l
c3NUaW1lcigqdGhpcykKICAgICAsIG1fcHJvY2Vzc1Bvb2wocHJvY2Vzc1Bvb2wsIGlzUHJld2Fy
bWVkID09IElzUHJld2FybWVkOjpZZXMgPyBJc1dlYWs6OlllcyA6IElzV2Vhazo6Tm8pCkBAIC0y
MTEsNiArMjExLDcgQEAgV2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkoV2ViUHJvY2Vz
c1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKgogICAgICwgbV91c2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5KG1ha2VVbmlxdWU8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eT4obWFrZVVuaXF1ZVJlZjxVSVByb3h5Rm9yQ2FwdHVyZT4oKnRoaXMpKSkKICNlbmRpZgogICAg
ICwgbV9pc1ByZXdhcm1lZChpc1ByZXdhcm1lZCA9PSBJc1ByZXdhcm1lZDo6WWVzKQorICAgICwg
bV9jcm9zc09yaWdpbk1vZGUoY3Jvc3NPcmlnaW5Nb2RlKQogICAgICwgbV9zaHV0ZG93blByZXZl
bnRpbmdTY29wZUNvdW50ZXIoW3RoaXNdKFJlZkNvdW50ZXJFdmVudCBldmVudCkgeyBpZiAoZXZl
bnQgPT0gUmVmQ291bnRlckV2ZW50OjpEZWNyZW1lbnQpIG1heWJlU2h1dERvd24oKTsgfSkKIHsK
ICAgICBSRUxFQVNFX0FTU0VSVChpc01haW5UaHJlYWRPckNoZWNrRGlzYWJsZWQoKSk7CkBAIC0x
MTQ2LDYgKzExNDcsMTEgQEAgYm9vbCBXZWJQcm9jZXNzUHJveHk6OmNhbkJlQWRkZWRUb1dlYlBy
b2Nlc3NDYWNoZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyAgICBp
ZiAobV9jcm9zc09yaWdpbk1vZGUgPT0gQ3Jvc3NPcmlnaW5Nb2RlOjpJc29sYXRlZCkgeworICAg
ICAgICBXRUJQUk9DRVNTUFJPWFlfUkVMRUFTRV9MT0coUHJvY2VzcywgImNhbkJlQWRkZWRUb1dl
YlByb2Nlc3NDYWNoZTogTm90IGFkZGluZyB0byBwcm9jZXNzIGNhY2hlIGJlY2F1c2UgdGhlIHBy
b2Nlc3MgaXMgY3Jvc3Mtb3JpZ2luIGlzb2xhdGVkIik7CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisKICAgICBpZiAoV2ViS2l0Ojppc0luc3BlY3RvclByb2Nlc3NQb29sKHByb2Nlc3NQ
b29sKCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggYTQwZTY5ZGZhNTIyZGVkZWJhZmRiNWZjNmI5ZTcxZmNi
OWI0YjA1OS4uOWRjNzI4NDkwNGNlYWVmMGUwNDRlZjVkMjYyZjQ4ZWU5YTQ5MDRiNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTQ0LDYgKzQ0LDcgQEAK
ICNpbmNsdWRlICJXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUGFn
ZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzUmVw
bGllcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NPcmlnaW5Nb2RlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUHJvZHVj
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CkBAIC0xMzUsNyArMTM2
LDcgQEAgcHVibGljOgogCiAgICAgZW51bSBjbGFzcyBTaG91bGRMYXVuY2hQcm9jZXNzIDogYm9v
bCB7IE5vLCBZZXMgfTsKIAotICAgIHN0YXRpYyBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBjcmVhdGUo
V2ViUHJvY2Vzc1Bvb2wmLCBXZWJzaXRlRGF0YVN0b3JlKiwgSXNQcmV3YXJtZWQsIFNob3VsZExh
dW5jaFByb2Nlc3MgPSBTaG91bGRMYXVuY2hQcm9jZXNzOjpZZXMpOworICAgIHN0YXRpYyBSZWY8
V2ViUHJvY2Vzc1Byb3h5PiBjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wmLCBXZWJzaXRlRGF0YVN0b3Jl
KiwgSXNQcmV3YXJtZWQsIFdlYkNvcmU6OkNyb3NzT3JpZ2luTW9kZSA9IFdlYkNvcmU6OkNyb3Nz
T3JpZ2luTW9kZTo6U2hhcmVkLCBTaG91bGRMYXVuY2hQcm9jZXNzID0gU2hvdWxkTGF1bmNoUHJv
Y2Vzczo6WWVzKTsKICAgICBzdGF0aWMgUmVmPFdlYlByb2Nlc3NQcm94eT4gY3JlYXRlRm9yU2Vy
dmljZVdvcmtlcnMoV2ViUHJvY2Vzc1Bvb2wmLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYm
LCBXZWJzaXRlRGF0YVN0b3JlJik7CiAKICAgICB+V2ViUHJvY2Vzc1Byb3h5KCk7CkBAIC00MTks
OCArNDIwLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENhcHRpb25MYW5ndWFnZShjb25zdCBT
dHJpbmcmKTsKICNlbmRpZgogCisgICAgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5Nb2RlIGNyb3NzT3Jp
Z2luTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3Jvc3NPcmlnaW5Nb2RlOyB9CisKIHByb3RlY3Rl
ZDoKLSAgICBXZWJQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmLCBXZWJzaXRlRGF0YVN0b3Jl
KiwgSXNQcmV3YXJtZWQpOworICAgIFdlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdl
YnNpdGVEYXRhU3RvcmUqLCBJc1ByZXdhcm1lZCwgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5Nb2RlKTsK
IAogICAgIC8vIEF1eGlsaWFyeVByb2Nlc3NQcm94eQogICAgIEFTQ0lJTGl0ZXJhbCBwcm9jZXNz
TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJXZWJDb250ZW50Il9zOyB9CkBAIC00NDAsNiAr
NDQzLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCBzaG91bGRDb25maWd1cmVKU0NGb3JUZXN0
aW5nKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc0pJVEVuYWJsZWQoKSBjb25zdCBmaW5hbDsK
KyAgICBib29sIHNob3VsZEVuYWJsZVNoYXJlZEFycmF5QnVmZmVyKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9jcm9zc09yaWdpbk1vZGUgPT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5Nb2RlOjpJc29s
YXRlZDsgfQogCiAgICAgdm9pZCB2YWxpZGF0ZUZyZWV6ZXJTdGF0dXMoKTsKIApAQCAtNjIwLDYg
KzYyNCw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1faGFzQ29tbWl0dGVkQW55UHJvdmlzaW9u
YWxMb2FkcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzUHJld2FybWVkOworICAgIFdlYkNvcmU6
OkNyb3NzT3JpZ2luTW9kZSBtX2Nyb3NzT3JpZ2luTW9kZSB7IFdlYkNvcmU6OkNyb3NzT3JpZ2lu
TW9kZTo6U2hhcmVkIH07CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBib29s
IG1faGFzSXNzdWVkQXR0YWNobWVudEVsZW1lbnRSZWxhdGVkU2FuZGJveEV4dGVuc2lvbnMgeyBm
YWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBjMDM2
MDlkM2FiOTI0MWJiODEyYTMzNDA5OTgyNDVlZDU4OTBhNjdjLi42ZDRlMTJlODI1NzBkM2E4MmVh
NTIxMzA2ZWU4M2NjOGZjNDM0OGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
QEAgLTgxNyw3ICs4MTcsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNo
b3coKQogICAgIHdlYlBhZ2UtPnNob3coKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJp
YnV0ZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1
bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBCcm93c2lu
Z0NvbnRleHRHcm91cCBicm93c2luZ0NvbnRleHRHcm91cCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYm
IGZ1bmN0aW9uKQogewogICAgIGF1dG8qIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CiAgICAg
aWYgKCF3ZWJQYWdlKSB7CkBAIC04MzgsNyArODM4LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3Bv
bnMKICAgICBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb24gcG9saWN5ID0gd2ViUGFnZS0+aW5qZWN0
ZWRCdW5kbGVQb2xpY3lDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh3ZWJQYWdlLCBt
X2ZyYW1lLnB0cigpLCByZXNwb25zZSwgcmVxdWVzdCwgdXNlckRhdGEpOwogICAgIC8vIElmIGEg
YnJvd3NpbmcgY29udGV4dCBzd2l0Y2ggaXMgcmVxdWVzdGVkLCB3ZSBzdGlsbCBuZWVkIHRvIHNl
bmQgdGhlIElQQyB0byB0aGUgVUlQcm9jZXNzIGluIG9yZGVyIHRvIHByb2Nlc3Mtc3dhcCBpZiBu
ZWNlc3NhcnksIGV2ZW4gdGhvdWdoIHRoZQogICAgIC8vIGluamVjdGVkIGJ1bmRsZSBoYXMgYWxy
ZWFkeSBoYW5kbGVkIHRoZSBwb2xpY3kgZGVjaXNpb24uCi0gICAgaWYgKHBvbGljeSA9PSBXS0J1
bmRsZVBhZ2VQb2xpY3lBY3Rpb25Vc2UgJiYgIW5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0
Y2gpIHsKKyAgICBpZiAocG9saWN5ID09IFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvblVzZSAmJiBi
cm93c2luZ0NvbnRleHRHcm91cCA9PSBCcm93c2luZ0NvbnRleHRHcm91cDo6U3RheUluR3JvdXAp
IHsKICAgICAgICAgV0VCRlJBTUVMT0FERVJDTElFTlRfUkVMRUFTRV9MT0coTmV0d29yaywgImRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2U6IGNvbnRpbnVpbmcgYmVjYXVzZSBpbmplY3Rl
ZCBidW5kbGUgc2F5cyBzbyIpOwogICAgICAgICBmdW5jdGlvbihQb2xpY3lBY3Rpb246OlVzZSwg
aWRlbnRpZmllcik7CiAgICAgICAgIHJldHVybjsKQEAgLTg1NSw3ICs4NTUsNyBAQCB2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0
IFJlc291cmNlUmVzcG9ucwogICAgIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUgPSBw
b2xpY3kgPT0gV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uVXNlOwogICAgIGF1dG8gcHJvdGVjdG9y
ID0gbV9mcmFtZS5jb3B5UmVmKCk7CiAgICAgdWludDY0X3QgbGlzdGVuZXJJRCA9IG1fZnJhbWUt
PnNldFVwUG9saWN5TGlzdGVuZXIoaWRlbnRpZmllciwgV1RGTW92ZShmdW5jdGlvbiksIFdlYkZy
YW1lOjpGb3JOYXZpZ2F0aW9uQWN0aW9uOjpObyk7Ci0gICAgaWYgKCF3ZWJQYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvclJlc3BvbnNlKG1fZnJhbWUtPmZy
YW1lSUQoKSwgbV9mcmFtZS0+aW5mbygpLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3Bv
bnNlLCByZXF1ZXN0LCBjYW5TaG93UmVzcG9uc2UsIGRvd25sb2FkQXR0cmlidXRlLCB3YXNBbGxv
d2VkQnlJbmplY3RlZEJ1bmRsZSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgbWFp
blJlc291cmNlTG9hZElkZW50aWZpZXIsIGxpc3RlbmVySUQsIFVzZXJEYXRhKFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkpLmdl
dCgpKSkpKSB7CisgICAgaWYgKCF3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRlY2lkZVBvbGljeUZvclJlc3BvbnNlKG1fZnJhbWUtPmZyYW1lSUQoKSwgbV9mcmFtZS0+aW5m
bygpLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93
UmVzcG9uc2UsIGRvd25sb2FkQXR0cmlidXRlLCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwg
YnJvd3NpbmdDb250ZXh0R3JvdXAsIG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBsaXN0ZW5l
cklELCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9I
YW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKSkgewogICAgICAgICBXRUJGUkFNRUxPQURF
UkNMSUVOVF9SRUxFQVNFX0xPRyhOZXR3b3JrLCAiZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNw
b25zZTogaWdub3JpbmcgYmVjYXVzZSBXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlIGZhaWxlZCIpOwogICAgICAgICBtX2ZyYW1lLT5kaWRSZWNlaXZlUG9saWN5RGVjaXNpb24o
bGlzdGVuZXJJRCwgUG9saWN5RGVjaXNpb24geyBpZGVudGlmaWVyLCBzdGQ6Om51bGxvcHQsIFBv
bGljeUFjdGlvbjo6SWdub3JlLCAwLCB7IH0sIHsgfSB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oCmluZGV4IDk2NjZkNjdmODYyMDhkOWI2YzY0ZjQxMWRiZDYzYmYwMTU5MGE3
MTEuLjBlYjIzNTYzMDE4OTA2ZTIwZjhmMzc4ZGEzNTZiNjcxY2I0NzI5MTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMjksNyArMTI5LDcgQEAgcHJpdmF0ZToKICAgICBXZWJD
b3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25B
Y3Rpb24mLCBXZWJDb3JlOjpOZXdGcmFtZU9wZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBk
aXNwYXRjaFNob3coKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpCcm93c2luZ0NvbnRleHRHcm91cCwgV2ViQ29yZTo6
RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBjb25z
dCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rp
b24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJD
b3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwg
V2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbFBv
bGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
aW5kZXggMjcyYjU0N2ZlZDM1OWZjZDI3ZTZiYmRmNzY1OTE0YzNhYjkzYmI4OS4uN2QxMmFjYmEx
YmJhNGFkOTIxNzcwOGEyYTcwZjkxM2Q2OTVlZWY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcApAQCAtMTI5LDYgKzEyOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lQXBwbGlj
YXRpb25DaGVja3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CkBAIC01MjMs
NiArNTI0LDggQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAKICAgICBjb21tb25WTSgp
LnNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZFRocm93KHBhcmFtZXRlcnMuc2hvdWxk
VGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24pOwogCisgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6c2V0Q3Jvc3NPcmlnaW5Nb2RlKHBhcmFtZXRlcnMuY3Jvc3NP
cmlnaW5Nb2RlKTsKKwogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIHNldEVuYWJs
ZWRTZXJ2aWNlcyhwYXJhbWV0ZXJzLmhhc0ltYWdlU2VydmljZXMsIHBhcmFtZXRlcnMuaGFzU2Vs
ZWN0aW9uU2VydmljZXMsIHBhcmFtZXRlcnMuaGFzUmljaENvbnRlbnRTZXJ2aWNlcyk7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDA1MTYyNzAwOWE2NmUxMjRhYTk2MzYz
Nzg0YTZkNzRjZWIwNDNiZjguLmMzOGQ3ZmU2YWRmNmQyMDBlYjE3NGY0NDk0ZDFlNjUwNjRhOGNh
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTI3LDcgKzEyNyw3IEBAIHByaXZh
dGU6CiAgICAgV2ViQ29yZTo6RnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uJiwgV2ViQ29yZTo6TmV3RnJhbWVPcGVuZXJQb2xpY3kpIGZpbmFs
OwogICAgIHZvaWQgZGlzcGF0Y2hTaG93KCkgZmluYWw7CiAKLSAgICB2b2lkIGRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
LCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpCcm93c2luZ0NvbnRleHRHcm91cCwg
V2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25B
Y3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGb3JtU3Rh
dGUqLCBjb25zdCBXVEY6OlN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9p
ZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6
TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIFdlYkNvcmU6OkZv
cm1TdGF0ZSosIFdlYkNvcmU6OlBvbGljeURlY2lzaW9uTW9kZSwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAg
IHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KaW5kZXggMGNmYmVlZTA0NDdkMmUyODU3NzIyZmUwYTY2NDE1MTk0MDliMmFmYi4uMTcyNzM0
MTlhMzk2MTRjNTY1Mjc0MTliMjgwYzY0NjRmYzRmZTc5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQubW0KQEAgLTg1NSw3ICs4NTUsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaFNob3coKQogICAgIFtbd2ViVmlldyBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmll
d1Nob3c6d2ViVmlld107CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wg
bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5j
dGlvbiYmIGZ1bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6
QnJvd3NpbmdDb250ZXh0R3JvdXAsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5j
dGlvbikKIHsKICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gZ2V0V2ViVmlldyhtX3dlYkZyYW1lLmdl
dCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGM1YWZhMTMzN2RiNGUy
ZmI2N2NlZTQwZjEwNDVmMWM2OTZhYzI3ZjcuLjZkZmI0YjJmY2IxNjA5Y2Q3MzBmOWY3MWNiNjM5
OWRkNWFkOWQ0OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTUxOSw3ICs1
MTksNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogICAgICAg
ICB1aS0+d2ViVmlld1Nob3cod2ViVmlldyk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNC
cm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9u
KQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNw
b25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiwgQnJvd3NpbmdDb250ZXh0R3JvdXAsIEZyYW1lUG9saWN5RnVuY3Rpb24m
JiBmdW5jdGlvbikKIHsKICAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gbV93ZWJGcmFtZS0+d2ViVmll
dygpOwogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKG1fd2ViRnJhbWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmgKaW5kZXggNjE0NjVjMTFmYzI1NTczMjQ4MjE1ODEyNTkyNTE5YzVhNjEx
YWZkMi4uNjg4NjFiYjc3MWUxYTFkOGZhYTk2ZmYyYTFkMmMzNzJkMWVmMzgzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
c3BhdGNoRGlkRmluaXNoTG9hZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWFj
aExheW91dE1pbGVzdG9uZShPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPikgb3Zl
cnJpZGU7CiAKLSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBu
ZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0
aW9uJiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
LCBXZWJDb3JlOjpCcm93c2luZ0NvbnRleHRHcm91cCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5j
dGlvbiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2lu
ZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBjb25zdCBXVEY6OlN0cmlu
ZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZy
YW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIFdlYkNvcmU6
OlBvbGljeURlY2lzaW9uTW9kZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogICAgIHZvaWQgY2FuY2VsUG9s
aWN5Q2hlY2soKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA2ZWIwOWU1ODFkZGVmNTg4ODNkM2FjYmVmMDBkNzIwZDRlMDlkMWRm
Li5iMTE5NTBjNjg2NDQ5N2IzZTYxNDlhYTAwOTFmMzg3Yzc1OTE1ZGYwIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MjEtMDgtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBFbmFi
bGUgU2hhcmVkQXJyYXlCdWZmZXIgc3VwcG9ydCB3aGVuIENPT1AvQ09FUCBoZWFkZXJzIGFyZSB1
c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk1
NTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgyMzkxOTQ1PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4gU2hh
cmVkQXJyYXlCdWZmZXIgc3VwcG9ydCBpcyBjdXJyZW50bHkgZm9yY2VmdWxseSBlbmFibGVkIGJ5
CisgICAgICAgIHJ1bi13ZWJraXQtdGVzdHMucHkgc28gaXQgd291bGQgbm90IGJlIHByYWN0aWNh
bCB0byB3cml0ZSBsYXlvdXQgdGVzdHMgZm9yIHRoaXMgYXQKKyAgICAgICAgdGhlIG1vbWVudC4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBP
bk5hdmlnYXRpb24ubW06CisgICAgICAgICgtW1BTT05TY2hlbWUgYWRkTWFwcGluZ0Zyb21VUkxT
dHJpbmc6dG9EYXRhOndpdGhDT09QVmFsdWU6d2l0aENPRVBWYWx1ZTpdKToKKyAgICAgICAgKC1b
UFNPTlNjaGVtZSB3ZWJWaWV3OnN0YXJ0VVJMU2NoZW1lVGFzazpdKToKKwogMjAyMS0wOC0yNyAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEV4dGVuZCBBUEkgdGVz
dCBjb3ZlcmFnZSB0byBtYWtlIHN1cmUgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZCBpcyBub3QgY2Fs
bGVkIHVwb24gQ09PUCBwcm9jZXNzIHN3YXAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1t
CmluZGV4IGE2M2Y3NDE5ZGRkY2I5MmNiMjMzMmJjNjlmMDEyNTQ1ZmZmODFkZjUuLmM2MzMxNjc4
NTg1MDczZGRlYmRmNDQyNmQyMDNkZmIxZDU2YmI3MjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2
aWdhdGlvbi5tbQpAQCAtMjUxLDEzICsyNTEsMTQgQEAgQGludGVyZmFjZSBQU09OU2NoZW1lIDog
TlNPYmplY3QgPFdLVVJMU2NoZW1lSGFuZGxlcj4gewogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJp
bmc+IF9yZWRpcmVjdHM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJldGFpblB0cjxOU0RhdGE+PiBf
ZGF0YU1hcHBpbmdzOwogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IF9jb29wVmFsdWVzOwor
ICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IF9jb2VwVmFsdWVzOwogICAgIEhhc2hTZXQ8aWQg
PFdLVVJMU2NoZW1lVGFzaz4+IF9ydW5uaW5nVGFza3M7CiAgICAgYm9vbCBfc2hvdWxkUmVzcG9u
ZEFzeW5jaHJvbm91c2x5OwogfQogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQnl0ZXM6KGNvbnN0
IGNoYXIqKWJ5dGVzOwogLSAodm9pZClhZGRSZWRpcmVjdEZyb21VUkxTdHJpbmc6KE5TU3RyaW5n
ICopc291cmNlVVJMU3RyaW5nIHRvVVJMU3RyaW5nOihOU1N0cmluZyAqKWRlc3RpbmF0aW9uVVJM
U3RyaW5nOwogLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxT
dHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhOwotLSAodm9pZClhZGRNYXBwaW5nRnJvbVVS
TFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhIHdp
dGhDT09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1ZTsKKy0gKHZvaWQpYWRkTWFwcGluZ0Zy
b21VUkxTdHJpbmc6KE5TU3RyaW5nICopdXJsU3RyaW5nIHRvRGF0YTooY29uc3QgY2hhciopZGF0
YSB3aXRoQ09PUFZhbHVlOihjb25zdCBjaGFyKiljb29wVmFsdWUgd2l0aENPRVBWYWx1ZTooY29u
c3QgY2hhciopY29lcFZhbHVlOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gUFNPTlNjaGVtZQpA
QCAtMjc5LDExICsyODAsMTMgQEAgLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNT
dHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhCiAgICAgX2RhdGFNYXBw
aW5ncy5zZXQodXJsU3RyaW5nLCBbTlNEYXRhIGRhdGFXaXRoQnl0ZXNOb0NvcHk6KHZvaWQqKWRh
dGEgbGVuZ3RoOnN0cmxlbihkYXRhKSBmcmVlV2hlbkRvbmU6Tk9dKTsKIH0KIAotLSAodm9pZClh
ZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25z
dCBjaGFyKilkYXRhIHdpdGhDT09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1ZQorLSAodm9p
ZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihj
b25zdCBjaGFyKilkYXRhIHdpdGhDT09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1ZSB3aXRo
Q09FUFZhbHVlOihjb25zdCBjaGFyKiljb2VwVmFsdWUKIHsKICAgICBbc2VsZiBhZGRNYXBwaW5n
RnJvbVVSTFN0cmluZzp1cmxTdHJpbmcgdG9EYXRhOmRhdGFdOwogICAgIGlmIChjb29wVmFsdWUp
CiAgICAgICAgIF9jb29wVmFsdWVzLmFkZCh1cmxTdHJpbmcsIGNvb3BWYWx1ZSk7CisgICAgaWYg
KGNvZXBWYWx1ZSkKKyAgICAgICAgX2NvZXBWYWx1ZXMuYWRkKHVybFN0cmluZywgY29lcFZhbHVl
KTsKIH0KIAogLSAodm9pZClzZXRTaG91bGRSZXNwb25kQXN5bmNocm9ub3VzbHk6KEJPT0wpdmFs
dWUKQEAgLTMyNyw2ICszMzAsOSBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgc3RhcnRVUkxTY2hlbWVUYXNrOihpZCA8V0tVUkxTY2hlbWVUYXNrPil0YQogICAgICAgICBh
dXRvIGNvb3BWYWx1ZSA9IF9jb29wVmFsdWVzLmdldChbZmluYWxVUkwgYWJzb2x1dGVTdHJpbmdd
KTsKICAgICAgICAgaWYgKCFjb29wVmFsdWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgW2hlYWRl
ckRpY3Rpb25hcnkgc2V0T2JqZWN0OihOU1N0cmluZyAqKWNvb3BWYWx1ZSBmb3JLZXk6QCJDcm9z
cy1PcmlnaW4tT3BlbmVyLVBvbGljeSJdOworICAgICAgICBhdXRvIGNvZXBWYWx1ZSA9IF9jb2Vw
VmFsdWVzLmdldChbZmluYWxVUkwgYWJzb2x1dGVTdHJpbmddKTsKKyAgICAgICAgaWYgKCFjb2Vw
VmFsdWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgW2hlYWRlckRpY3Rpb25hcnkgc2V0T2JqZWN0
OihOU1N0cmluZyAqKWNvZXBWYWx1ZSBmb3JLZXk6QCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9s
aWN5Il07CiAKICAgICAgICAgYXV0byByZXNwb25zZSA9IGFkb3B0TlMoW1tOU0hUVFBVUkxSZXNw
b25zZSBhbGxvY10gaW5pdFdpdGhVUkw6ZmluYWxVUkwuZ2V0KCkgc3RhdHVzQ29kZToyMDAgSFRU
UFZlcnNpb246QCJIVFRQLzEuMSIgaGVhZGVyRmllbGRzOmhlYWRlckRpY3Rpb25hcnldKTsKICAg
ICAgICAgW3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOnJlc3BvbnNlLmdldCgpXTsKQEAgLTcxOTEs
MzYgKzcxOTcsMzkgQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogCiBlbnVtIGNsYXNz
IElzU2FtZU9yaWdpbiA6IGJvb2wgeyBObywgWWVzIH07CiBlbnVtIGNsYXNzIERvU2VydmVyU2lk
ZVJlZGlyZWN0IDogYm9vbCB7IE5vLCBZZXMgfTsKLXN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25D
T09QLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1Nl
cnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQorc3RhdGljIHZvaWQgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBz
b3VyY2VDT0VQLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPT1AsIGNvbnN0IGNoYXIqIGRlc3Rp
bmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKIHsKICAgICBh
dXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24oKTsKICAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxs
b2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgp
XSk7CisgICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VD
T09QICYmICFzdHJjbXAoc291cmNlQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgc291cmNlQ09FUCAm
JiAhc3RyY21wKHNvdXJjZUNPRVAsICJyZXF1aXJlLWNvcnAiKTsKKyAgICBib29sIGRlc3RpbmF0
aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QICYmICFzdHJj
bXAoZGVzdGluYXRpb25DT09QLCAic2FtZS1vcmlnaW4iKSAmJiBkZXN0aW5hdGlvbkNPRVAgJiYg
IXN0cmNtcChkZXN0aW5hdGlvbkNPRVAsICJyZXF1aXJlLWNvcnAiKTsKKyAgICBFWFBFQ1RfVFJV
RShzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPT0gZGVzdGluYXRpb25TaG91bGRC
ZUNyb3NzT3JpZ2luSXNvbGF0ZWQgfHwgZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMpOwog
CiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFBy
b2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7
CiAgICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVu
Y2VzIF9leHBlcmltZW50YWxGZWF0dXJlc10pIHsKLSAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBp
c0VxdWFsVG9TdHJpbmc6QCJDcm9zc09yaWdpbk9wZW5lclBvbGljeUVuYWJsZWQiXSkgeworICAg
ICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIkNyb3NzT3JpZ2luT3BlbmVy
UG9saWN5RW5hYmxlZCJdKQorICAgICAgICAgICAgW1t3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07
CisgICAgICAgIGVsc2UgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJDcm9zc09y
aWdpbkVtYmVkZGVyUG9saWN5RW5hYmxlZCJdKQogICAgICAgICAgICAgW1t3ZWJWaWV3Q29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6ZmVhdHVyZV07Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQogICAgIH0KIAogICAg
IGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CiAgICAg
aWYgKGlzU2FtZU9yaWdpbiA9PSBJc1NhbWVPcmlnaW46OlllcykgewotICAgICAgICBbaGFuZGxl
ciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0
bWwiIHRvRGF0YTp3aW5kb3dPcGVuU2FtZU9yaWdpbkNPT1BUZXN0Qnl0ZXMgd2l0aENPT1BWYWx1
ZTpzb3VyY2VDT09QXTsKKyAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6
QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlblNhbWVP
cmlnaW5DT09QVGVzdEJ5dGVzIHdpdGhDT09QVmFsdWU6c291cmNlQ09PUCB3aXRoQ09FUFZhbHVl
OnNvdXJjZUNPRVBdOwogICAgICAgICBpZiAoZG9TZXJ2ZXJTaWRlUmVkaXJlY3QgPT0gRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6OlllcykgewogICAgICAgICAgICAgW2hhbmRsZXIgYWRkUmVkaXJlY3RG
cm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLmh0bWwiIHRvVVJMU3Ry
aW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiXTsK
LSAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3
dy53ZWJraXQub3JnL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiIHRvRGF0YToicG9wdXAiIHdp
dGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QXTsKKyAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1h
cHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLWFmdGVyLXJl
ZGlyZWN0Lmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09Q
IHdpdGhDT0VQVmFsdWU6ZGVzdGluYXRpb25DT0VQXTsKICAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0
Lm9yZy9wb3B1cC5odG1sIiB0b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9u
Q09PUF07CisgICAgICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBz
b246Ly93d3cud2Via2l0Lm9yZy9wb3B1cC5odG1sIiB0b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZh
bHVlOmRlc3RpbmF0aW9uQ09PUCB3aXRoQ09FUFZhbHVlOmRlc3RpbmF0aW9uQ09FUF07CiAgICAg
fSBlbHNlIHsKLSAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29u
Oi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlbkNyb3NzT3JpZ2lu
Q09PUFRlc3RCeXRlcyB3aXRoQ09PUFZhbHVlOnNvdXJjZUNPT1BdOworICAgICAgICBbaGFuZGxl
ciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0
bWwiIHRvRGF0YTp3aW5kb3dPcGVuQ3Jvc3NPcmlnaW5DT09QVGVzdEJ5dGVzIHdpdGhDT09QVmFs
dWU6c291cmNlQ09PUCB3aXRoQ09FUFZhbHVlOnNvdXJjZUNPRVBdOwogICAgICAgICBpZiAoZG9T
ZXJ2ZXJTaWRlUmVkaXJlY3QgPT0gRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcykgewogICAgICAg
ICAgICAgW2hhbmRsZXIgYWRkUmVkaXJlY3RGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBs
ZS5jb20vcG9wdXAuaHRtbCIgdG9VUkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1
cC1hZnRlci1yZWRpcmVjdC5odG1sIl07Ci0gICAgICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5n
RnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL3BvcHVwLWFmdGVyLXJlZGlyZWN0
Lmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QXTsKKyAg
ICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5h
cHBsZS5jb20vcG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENP
T1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1Agd2l0aENPRVBWYWx1ZTpkZXN0aW5hdGlvbkNPRVBdOwog
ICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3Ry
aW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0
aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1BdOworICAgICAgICAgICAgW2hhbmRsZXIgYWRkTWFw
cGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC5odG1sIiB0b0Rh
dGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9uQ09PUCB3aXRoQ09FUFZhbHVlOmRl
c3RpbmF0aW9uQ09FUF07CiAgICAgfQogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxT
Y2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwogCkBAIC03
MjkwLDYgKzcyOTksMjYgQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25z
dCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGkKICAgICAgICAgZmluaXNo
ZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKICAgICB9XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7CisgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0
ID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic2VsZi5jcm9zc09y
aWdpbklzb2xhdGVkID8gJ2lzb2xhdGVkJyA6ICdub3QtaXNvbGF0ZWQnIiBjb21wbGV0aW9uSGFu
ZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIE5TU3RyaW5n
ICpjcm9zc09yaWdpbklzb2xhdGVkID0gKE5TU3RyaW5nICopcmVzdWx0OworICAgICAgICBpZiAo
c291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkKQorICAgICAgICAgICAgRVhQRUNUX1dL
X1NUUkVRKEAiaXNvbGF0ZWQiLCBjcm9zc09yaWdpbklzb2xhdGVkKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAibm90LWlzb2xhdGVkIiwgY3Jvc3NPcmlnaW5J
c29sYXRlZCk7CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CisgICAgfV07
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQpOwor
ICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRl
SmF2YVNjcmlwdDpAInNlbGYuU2hhcmVkQXJyYXlCdWZmZXIgPyAnaGFzLXNhYicgOiAnZG9lcy1u
b3QtaGF2ZS1zYWInIiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJyb3Ig
KmVycm9yKSB7CisgICAgICAgIE5TU3RyaW5nICpoYXNTQUIgPSAoTlNTdHJpbmcgKilyZXN1bHQ7
CisgICAgICAgIGlmIChzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQpCisgICAgICAg
ICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJoYXMtc2FiIiwgaGFzU0FCKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiZG9lcy1ub3QtaGF2ZS1zYWIiLCBoYXNTQUIp
OworICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKIAogICAgIC8v
IE9wZW5lZSBzaG91bGQgbm90IGhhdmUgYW4gb3BlbmVyIG9yIGEgbmFtZS4KICAgICBmaW5pc2hl
ZFJ1bm5pbmdTY3JpcHQgPSBmYWxzZTsKQEAgLTczMjAsODcgKzczNDksMjM1IEBAIHN0YXRpYyB2
b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3Qg
Y2hhciogZGVzdGluYXRpCiAgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CiAg
ICAgfV07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3Jp
cHQpOworICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFtjcmVhdGVkV2Vi
VmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJzZWxmLmNyb3NzT3JpZ2luSXNvbGF0ZWQgPyAnaXNv
bGF0ZWQnIDogJ25vdC1pc29sYXRlZCciIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3Vs
dCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKmNyb3NzT3JpZ2luSXNvbGF0
ZWQgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlmIChkZXN0aW5hdGlvblNob3VsZEJl
Q3Jvc3NPcmlnaW5Jc29sYXRlZCkKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImlzb2xh
dGVkIiwgY3Jvc3NPcmlnaW5Jc29sYXRlZCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEVY
UEVDVF9XS19TVFJFUShAIm5vdC1pc29sYXRlZCIsIGNyb3NzT3JpZ2luSXNvbGF0ZWQpOworICAg
ICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKKyAgICBmaW5pc2hlZFJ1
bm5pbmdTY3JpcHQgPSBmYWxzZTsKKyAgICBbY3JlYXRlZFdlYlZpZXcgZXZhbHVhdGVKYXZhU2Ny
aXB0OkAic2VsZi5TaGFyZWRBcnJheUJ1ZmZlciA/ICdoYXMtc2FiJyA6ICdkb2VzLW5vdC1oYXZl
LXNhYiciIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3Ip
IHsKKyAgICAgICAgTlNTdHJpbmcgKmhhc1NBQiA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAg
ICAgaWYgKGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkKQorICAgICAgICAg
ICAgRVhQRUNUX1dLX1NUUkVRKEAiaGFzLXNhYiIsIGhhc1NBQik7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImRvZXMtbm90LWhhdmUtc2FiIiwgaGFzU0FCKTsK
KyAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7CiAKICAgICBjcmVh
dGVkV2ViVmlldyA9IG51bGxwdHI7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2lu
IiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxw
dHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCit7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5z
YWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpblRvQ09PUFNhbWVPcmlnaW40KQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BB
bmRDT0VQU2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIs
IG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxs
cHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW4zKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3Jp
Z2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVp
cmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1w
b3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIs
ICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
K30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5BbGxvd1BvcHVwMykKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1
bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luQWxsb3dQb3B1cCkKK3sKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJyZXF1aXJlLWNvcnAi
LCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJzYW1lLW9yaWdpbiIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKK3sKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKK3sKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1l
LW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNh
bWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAi
cmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKwor
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1l
T3JpZ2luVG9DT09QU2FtZU9yaWdpbikKK3sKKyAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRo
ZSBkZXN0aW5hdGlvbiBpcyBtaXNzaW5nIENPRVAuCisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKK3sKKyAgICAvLyBTaG91bGQgc3dh
cCBiZWNhdXNlIHRoZSBzb3VyY2UgaXMgbWlzc2luZyBDT0VQLgorICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUt
Y29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2lu
RnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKIHsKICAgICAv
LyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2ZSBDT09Q
PXNhbWUtb3JpZ2luLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwg
InNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZ
ZXMsIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3Jp
Z2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCit7CisgICAgLy8gV2UgZXhw
ZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9y
aWdpbiBhbmQgQ09FUD1yZXF1aXJlLWNvcnAuCisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29y
cCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbldp
dGhvdXRDT09QV2l0aFJlZGlyZWN0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVs
bHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZ
ZXMsIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIs
IG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdChudWxscHRyLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNh
bWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwg
InNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1u
b25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKK3sKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9y
aWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCit7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5z
YWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVs
bHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwor
fQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW40KQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3Jp
Z2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVp
cmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJzYW1lLW9yaWdp
biIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENP
RVBTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9
CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09F
UFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWly
ZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBudWxs
cHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51
bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKK3sK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1
bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVw
NCkKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNWE2NmQxOTM5NWE3ODllMGE2MjA4ODY3
ZGEzOTQwZmRlYjU4ZTAzNy4uOTJjYzczODhjNDhlNWJlMGQyMWFmNzIzYTMwODUxMDllMjBhNTAz
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjEt
MDgtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUg
U2hhcmVkQXJyYXlCdWZmZXIgc3VwcG9ydCB3aGVuIENPT1AvQ09FUCBoZWFkZXJzIGFyZSB1c2Vk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk1NTkK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgyMzkxOTQ1PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUgYSBmZXcgd2ViLXBsYXRmb3Jt
LXRlc3RzIG5vdyB0aGF0IHdpbmRvdy5jcm9zc09yaWdpbklzb2xhdGVkIHByb3Blcmx5IHJldHVy
bnMKKyAgICAgICAgdHJ1ZSB3aGVuIENPT1ArQ09FUCBhcmUgdXNlZC4KKworICAgICAgICBOb3Rl
IHRoYXQgU2hhcmVkQXJyYXlCdWZmZXIgYXJlIGFscmVhZHkgZm9yY2VmdWxseSBlbmFibGVkIGJ5
IHJ1bi13ZWJraXQtdGVzdHMucHkgd2hlbiBydW5uaW5nCisgICAgICAgIHRoZSBsYXlvdXQgdGVz
dHMsIHdoaWNoIGlzIHdoeSB0aGVyZSBhcmUgbm90IG1vcmUgbGF5b3V0IHRlc3QgcmVzdWx0cyBj
aGFuZ2VzLiBBdCBzb21lIHBvaW50LAorICAgICAgICB3ZSBzaG91bGQgc3RvcCBmb3JjZWZ1bGx5
IGVuYWJsaW5nIFNoYXJlZEFycmF5QnVmZmVyIHdoZW4gcnVubmluZyB3ZWItcGxhdGZvcm0tdGVz
dHMgYXQgbGVhc3QsCisgICAgICAgIHNpbmNlIFdQVCB0ZXN0cyBhbHJlYWR5IG1ha2Ugc3VyZSB0
byB1c2UgQ09PUCtDT0VQIHdoZW4gdGVzdGluZyBTaGFyZWRBcnJheUJ1ZmZlci4KKworICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvc2VyaWFsaXplLXNoYXJlZGFycmF5YnVm
ZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9jcm9zcy1vcmlnaW4taXNvbGF0
ZWQtcGVybWlzc2lvbi5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgIE5vdGUgdGhhdCBzb21l
IHN1YnRlc3RzIGFyZSBmYWlsaW5nIGJlY2F1c2Ugd2UgZG9uJ3Qgc3VwcG9ydCB0aGUgUGVybWlz
c2lvbnMtUG9saWN5IEhUVFAgaGVhZGVyOgorICAgICAgICAtIGh0dHBzOi8vdzNjLmdpdGh1Yi5p
by93ZWJhcHBzZWMtcGVybWlzc2lvbnMtcG9saWN5LworCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC5odHRwcy1leHBlY3Rl
ZC50eHQ6CisKIDIwMjEtMDgtMjcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgog
CiAgICAgICAgIFtDU1MgQ2FzY2FkZSBMYXllcnNdIEluaXRpYWwgc3VwcG9ydApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
c2VyaWFsaXplLXNoYXJlZGFycmF5YnVmZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zZXJp
YWxpemUtc2hhcmVkYXJyYXlidWZmZXItdGhyb3dzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBh
Y2MwNDY0NjAzYjEwY2QwOWJkMTdmMDRiMmVmNmRjNDg0MzVkMjM1Li42ZDBiYjY2ZmFmMWM0YTk2
ZjBhYmRiYTk3Zjk2MTVmNmY5ZjMzNzRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJyYXli
dWZmZXItdGhyb3dzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJyYXli
dWZmZXItdGhyb3dzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDUgQEAKIAotRkFJTCBJ
bmRleGVkREI6IEF0dGVtcHRpbmcgdG8gc2VyaWFsaXplIGEgU2hhcmVkQXJyYXlCdWZmZXIgc2hv
dWxkIHRocm93IGFzc2VydF90cnVlOiBUaGUgcGFnZSBpcyBzZXJ2ZWQgd2l0aCBDT09QIGFuZCBD
T0VQLCBpdCBzaG91bGQgYmUgY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkLiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorRkFJTCBJbmRleGVkREI6IEF0dGVtcHRpbmcgdG8gc2VyaWFsaXplIGEgU2hhcmVk
QXJyYXlCdWZmZXIgc2hvdWxkIHRocm93IGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkg
PT4geworICAgICAgICAgICAgcnEgPSBvYmpTdG9yZS5wdXQoe3NhYjogc2FifSwgJ2tleScpOwor
ICAgICAgICB9IiB0aHJldyBvYmplY3QgIkRhdGFFcnJvcjogRmFpbGVkIHRvIHN0b3JlIHJlY29y
ZCBpbiBhbiBJREJPYmplY3RTdG9yZTogVGhlIG9iamVjdCBzdG9yZSB1c2VzIGluLWxpbmUga2V5
cyBhbmQgdGhlIGtleSBwYXJhbWV0ZXIgd2FzIHByb3ZpZGVkLiIgdGhhdCBpcyBub3QgYSBET01F
eGNlcHRpb24gRGF0YUNsb25lRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAwLCBl
eHBlY3RlZCAyNQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9jcm9zcy1vcmln
aW4taXNvbGF0ZWQtcGVybWlzc2lvbi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVy
LXBvbGljeS9jcm9zcy1vcmlnaW4taXNvbGF0ZWQtcGVybWlzc2lvbi5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggM2I3NzY2MTMzODk0MDdlZGM0MzgyZDhiODJlNmY3YjBkOWYyZTcyYy4uZTYwZTQy
YmZiMTBlODg3YTBiOGJkMzVmNzRiZmY4NjJkMGI2OTQ2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJl
ZGRlci1wb2xpY3kvY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkLXBlcm1pc3Npb24uaHR0cHMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1w
ZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwyNCArMSwyNCBAQAogCi1GQUlMIGZy
YW1lOiBvcmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZCBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6IG9y
aWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gc2VsZiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVl
IGJ1dCBnb3QgZmFsc2UKLVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0
NDMsIHZhbHVlID0gKFwpCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5
NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZAotUEFTUyBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly8xMjcu
MC4wLjE6OTQ0MywgdmFsdWUgPSAqCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4w
LjAuMTo5NDQzLCB2YWx1ZSA9IHNlbGYKLVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vMTI3
LjAuMC4xOjk0NDMsIHZhbHVlID0gKFwpCi1GQUlMIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9
IGh0dHBzLCB2YWx1ZSA9IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1
dCBnb3QgZmFsc2UKLUZBSUwgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gaHR0cHMsIHZhbHVl
ID0gKiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZGVk
aWNhdGVkIHdvcmtlcjogc2NoZW1lID0gaHR0cHMsIHZhbHVlID0gc2VsZiBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLVBBU1MgZGVkaWNhdGVkIHdvcmtlcjogc2No
ZW1lID0gaHR0cHMsIHZhbHVlID0gKFwpCi1QQVNTIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9
IGRhdGEsIHZhbHVlID0gdW5kZWZpbmVkCi1QQVNTIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9
IGRhdGEsIHZhbHVlID0gKgotUEFTUyBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBkYXRhLCB2
YWx1ZSA9IHNlbGYKLVBBU1MgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gZGF0YSwgdmFsdWUg
PSAoXCkKLUZBSUwgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gYmxvYiwgdmFsdWUgPSB1bmRl
ZmluZWQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlCi1GQUlMIGRl
ZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGJsb2IsIHZhbHVlID0gKiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1l
ID0gYmxvYiwgdmFsdWUgPSBzZWxmIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdv
dCBmYWxzZQotUEFTUyBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBibG9iLCB2YWx1ZSA9IChc
KQorUEFTUyBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MywgdmFsdWUgPSB1
bmRlZmluZWQKK1BBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZh
bHVlID0gKgorUEFTUyBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MywgdmFs
dWUgPSBzZWxmCitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2
YWx1ZSA9IChcKSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKK0ZB
SUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMsIHZhbHVlID0gdW5kZWZp
bmVkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBmcmFt
ZTogb3JpZ2luID0gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSAqIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0
cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSBzZWxmIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
IGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly8xMjcuMC4w
LjE6OTQ0MywgdmFsdWUgPSAoXCkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0IGdv
dCB0cnVlCitQQVNTIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGh0dHBzLCB2YWx1ZSA9IHVu
ZGVmaW5lZAorUEFTUyBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBodHRwcywgdmFsdWUgPSAq
CitQQVNTIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGh0dHBzLCB2YWx1ZSA9IHNlbGYKK0ZB
SUwgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gaHR0cHMsIHZhbHVlID0gKFwpIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBkZWRpY2F0ZWQgd29ya2Vy
OiBzY2hlbWUgPSBkYXRhLCB2YWx1ZSA9IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCBmYWxzZSBidXQgZ290IHRydWUKK0ZBSUwgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gZGF0
YSwgdmFsdWUgPSAqIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQor
RkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBkYXRhLCB2YWx1ZSA9IHNlbGYgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitGQUlMIGRlZGljYXRlZCB3b3Jr
ZXI6IHNjaGVtZSA9IGRhdGEsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZh
bHNlIGJ1dCBnb3QgdHJ1ZQorUEFTUyBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBibG9iLCB2
YWx1ZSA9IHVuZGVmaW5lZAorUEFTUyBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBibG9iLCB2
YWx1ZSA9ICoKK1BBU1MgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gYmxvYiwgdmFsdWUgPSBz
ZWxmCitGQUlMIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGJsb2IsIHZhbHVlID0gKFwpIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQogRkFJTCBzaGFyZWQgd29y
a2VyOiB3aXRoQ29vcENvZXAgPSBmYWxzZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3Jr
ZXIKIEZBSUwgc2hhcmVkIHdvcmtlcjogd2l0aENvb3BDb2VwID0gdHJ1ZSBDYW4ndCBmaW5kIHZh
cmlhYmxlOiBTaGFyZWRXb3JrZXIKIEZBSUwgc2VydmljZSB3b3JrZXI6IHdpdGhDb29wQ29lcCA9
IGZhbHNlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChib29sZWFuKSBmYWxzZSBidXQgZ290ICh1
bmRlZmluZWQpIHVuZGVmaW5lZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAu
aHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0
ZWQudHh0CmluZGV4IGI0MzljZGM5NzM1NmZkOTI1MTAwNDcxOWM5YWRhNGI0NGU0ZDY3YjEuLmRk
YzhmYzMxODYxZmQ2NzE5ZjQ3NGU2OWU4NDIxNDYxM2E3MDNiOGYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4t
b3BlbmVyLXBvbGljeS9jb2VwLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1w
b2xpY3kvY29lcC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTcsNSArNyw1IEBAIFBBU1MgU2FtZS1v
cmlnaW4gcG9wdXAgd2l0aCBjb29wIHVuc2FmZS1ub25lIHdpdGhvdXQgY29lcAogUEFTUyBoaXN0
b3JpY2FsOiAic2FtZS1zaXRlIiBwb3B1cCB3aXRoIGNvb3AgdW5zYWZlLW5vbmUgd2l0aG91dCBj
b2VwCiBQQVNTIFNhbWUtb3JpZ2luIHBvcHVwIHdpdGhvdXQgY29lcAogUEFTUyBoaXN0b3JpY2Fs
OiAic2FtZS1zaXRlIiBwb3B1cCB3aXRob3V0IGNvZXAKLUZBSUwgQm9udXM6IHdpbmRvdy5jcm9z
c09yaWdpbklzb2xhdGVkIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFT
UyBCb251czogd2luZG93LmNyb3NzT3JpZ2luSXNvbGF0ZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJyYXlidWZmZXItdGhyb3dzLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvc2VyaWFsaXplLXNoYXJlZGFycmF5YnVmZmVyLXRocm93cy5o
dHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWNjMDQ2NDYwM2IxMGNkMDliZDE3ZjA0YjJl
ZjZkYzQ4NDM1ZDIzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvc2VyaWFsaXpl
LXNoYXJlZGFycmF5YnVmZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK0ZBSUwgSW5kZXhlZERCOiBBdHRlbXB0aW5nIHRvIHNlcmlhbGl6ZSBhIFNoYXJlZEFy
cmF5QnVmZmVyIHNob3VsZCB0aHJvdyBhc3NlcnRfdHJ1ZTogVGhlIHBhZ2UgaXMgc2VydmVkIHdp
dGggQ09PUCBhbmQgQ09FUCwgaXQgc2hvdWxkIGJlIGNyb3NzLW9yaWdpbi1pc29sYXRlZC4gZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436934</attachid>
            <date>2021-08-31 13:21:55 -0700</date>
            <delta_ts>2021-08-31 16:01:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229559-20210831132154.patch</filename>
            <type>text/plain</type>
            <size>105011</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODY1ODRlM2U5ZjEwOTY5
YWI0YjdlZDRkYzY3NzkwMGJhN2Y1MWI3Yi4uNTAxM2FkMzQ0YzFkMmIyNTUwNTMwZTNiNDM1N2M2
MTgwOWM2NjM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA4LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIFNoYXJlZEFycmF5
QnVmZmVyIHN1cHBvcnQgd2hlbiBDT09QL0NPRVAgaGVhZGVycyBhcmUgdXNlZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NTU5CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84MjM5MTk0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNYWtlIHN1cmUgd2luZG93LmNyb3NzT3JpZ2luSXNvbGF0ZWQgcmV0
dXJucyB0cnVlIHdoZW4gQ09PUD1zYW1lLW9yaWdpbiBhbmQKKyAgICAgICAgQ09FUD1yZXF1aXJl
LWNvcnAgYXJlIHVzZWQuIEFsc28gbWFrZSBzdXJlIHRoYXQgY3Jvc3Mtb3JpZ2luLWlzb2xhdGVz
IHBhZ2VzCisgICAgICAgIGFyZSBhbGxvd2VkIHRvIHVzZSBTaGFyZWRBcnJheUJ1ZmZlci4KKwor
ICAgICAgICBDaGFuZ2UgaXMgY292ZXJlZCBieSByZWJhc2VsaW5lZCBsYXlvdXQgdGVzdHMgYW5k
IG5ldyBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6dG9OZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAg
ICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0NvbnRl
bnRQb2xpY3kpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlclR5
cGVzLmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93Ojpjcm9zc09yaWdpbklzb2xhdGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0RP
TVdpbmRvdy5pZGw6CisKIDIwMjEtMDgtMzEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNzI5MDApOiB3cHQuZnlpIGxvYWRpbmcgcGVy
Zm9ybWFuY2UgaXMgdmVyeSBzbG93IChyZWdyZXNzZWQsIGFuZCBzbG93ZXIgdGhhbiBvdGhlciBi
cm93c2VycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggMzJhYjg3N2Y4YWE4N2FiMjU0YmU2N2RjZmMwMGVlMDY0NjIx
Nzg0OS4uZTliZmNlNzBkNWQ3MTUyNmNkYmE1MTA3Y2VjZTNhY2UzZmI1OTM3ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw2NSBAQAorMjAyMS0wOC0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIEVuYWJsZSBTaGFyZWRBcnJheUJ1ZmZlciBzdXBwb3J0IHdoZW4gQ09P
UC9DT0VQIGhlYWRlcnMgYXJlIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyOTU1OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIzOTE5NDU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBz
dXJlIHdpbmRvdy5jcm9zc09yaWdpbklzb2xhdGVkIHJldHVybnMgdHJ1ZSB3aGVuIENPT1A9c2Ft
ZS1vcmlnaW4gYW5kCisgICAgICAgIENPRVA9cmVxdWlyZS1jb3JwIGFyZSB1c2VkLiBBbHNvIG1h
a2Ugc3VyZSB0aGF0IGNyb3NzLW9yaWdpbi1pc29sYXRlcyBwYWdlcworICAgICAgICBhcmUgYWxs
b3dlZCB0byB1c2UgU2hhcmVkQXJyYXlCdWZmZXIuCisKKyAgICAgICAgV2hlbiB0aGUgV2ViUHJv
Y2VzcyBkZXRlcm1pbmVzIGl0IG5lZWRzIHRvIHN3aXRjaCBicm93c2luZyBjb250ZXh0IGdyb3Vw
IGl0CisgICAgICAgIG5vdyBzZW5kcyBhIE5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2g6
Olllc1dpdGhvdXRDcm9zc09yaWdpbklzb2xhdGlvbiAvCisgICAgICAgIE5lZWRzQnJvd3NpbmdD
b250ZXh0R3JvdXBTd2l0Y2g6Olllc1dpdGhDcm9zc09yaWdpbklzb2xhdGlvbiBlbnVtIHZhbHVl
IHRvCisgICAgICAgIHRoZSBVSVByb2Nlc3Mgd2l0aCB0aGUgRGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UgSVBDIGluc3RlYWQgb2YgYSBzaW1wbGUKKyAgICAgICAgYm9vbGVhbi4gV2Ugc2VuZCBZZXNX
aXRob3V0Q3Jvc3NPcmlnaW5Jc29sYXRpb24gd2hlbiB0aGUgbmF2aWdhdGlvbgorICAgICAgICBk
ZXN0aW5hdGlvbiB3aWxsIGJlIGNyb3NzLW9yaWdpbi1pc29sYXRlZCBkdWUgdG8gQ09PUD1zYW1l
LW9yaWdpbiBhbmQKKyAgICAgICAgQ09FUD1yZXF1aXJlLWNvcnAuIEluIHRoZSBVSVByb2Nlc3Ms
IHdoZW4gWWVzV2l0aENyb3NzT3JpZ2luSXNvbGF0aW9uIGlzCisgICAgICAgIHJlY2VpdmVkLCB3
ZSB0YWtlIGNhcmUgb2YgbGF1bmNoaW5nIGEgZnJlc2ggV2ViUHJvY2VzcyAobmV2ZXIgcmVjeWNs
aW5nIGFuCisgICAgICAgIGV4aXN0aW5nIFdlYlByb2Nlc3MpIGFuZCB3ZSBtYWtlIHRoaXMgV2Vi
UHJvY2VzcyBhcyBjcm9zcy1vcmlnaW4taXNvbGF0ZWQuCisgICAgICAgIFdoZW4gYSBwcm9jZXNz
IGlzIGNyb3NzLW9yaWdpbi1pc29sYXRlZCwgd2UgcGFzcyBpdCBhIFhQQyBmbGFnIG9uIGxhdW5j
aAorICAgICAgICB0byBhbGxvdyB0aGUgcHJvY2VzcyB0byB1c2UgU2hhcmVkQXJyYXlCdWZmZXIu
IFdlIHVzZSBhbiBYUEMgZmxhZyBiZWNhdXNlCisgICAgICAgIEpTQyBPcHRpb25zIG5lZWQgdG8g
YmUgc2V0IGJlZm9yZSBKU0M6OmluaXRpYWxpemUoKSBpcyBjYWxsZWQsIHdoaWNoIG9jY3Vycwor
ICAgICAgICBkdXJpbmcgWFBDIHNlcnZpY2UgaW5pdGlhbGl6YXRpb24uIFdoZW4gYSBXZWJQcm9j
ZXNzIGlzIG1hcmtlZCBhcworICAgICAgICBjcm9zcy1vcmlnaW4taXNvbGF0ZWQsIHdlIG1ha2Ug
c3VyZSB0byBuZXZlciBjYWNoZSBpdCBzbyBpdCBjYW5ub3QgYmUKKyAgICAgICAgcmVjeWNsZWQg
Zm9yIGEgbmV3IG5hdmlnYXRpb24gKGdpdmVuIHRoYXQgaXQgaGFzIHNwZWNpYWwgcGVybWlzc2lv
biB0byB1c2UKKyAgICAgICAgU2hhcmVkQXJyYXlCdWZmZXIpLgorCisgICAgICAgICogU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90eXBlKToKKyAgICAg
ICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZp
Y2VFbnRyeVBvaW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlhQQ1NlcnZpY2VJbml0aWFsaXplcik6
CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OkNsaWVudDo6c2hvdWxkRW5hYmxlU2hhcmVkQXJy
YXlCdWZmZXIgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vz
c0xhdW5jaGVyTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5j
aFByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlN1c3BlbmRlZFBhZ2VQcm94eTo6ZmluZFJldXNhYmxlU3VzcGVuZGVkUGFnZVByb2Nlc3Mp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3Mp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVGb3JTZXJ2aWNl
V29ya2Vycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1By
b3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpjYW5CZUFkZGVkVG9XZWJQ
cm9jZXNzQ2FjaGUgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojppc0Nyb3NzT3JpZ2luSXNvbGF0
ZWQgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDIxLTA4LTMxICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0g
QXNzZXJ0aW9uIGluIHN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKaW5kZXggOTJjMTA4MzJlM2JkMTlkYjk3ZDIyMzY3NzY0NDlhNmZhNjgyYzMz
OC4uOTE4ZjY2YjNhMWMzMGMwOTQxYTIwZjI3M2ZlNGZmNTAzMzJkMTBiYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA4LTI3ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIFNoYXJlZEFycmF5QnVmZmVy
IHN1cHBvcnQgd2hlbiBDT09QL0NPRVAgaGVhZGVycyBhcmUgdXNlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NTU5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS84MjM5MTk0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisK
IDIwMjEtMDgtMjYgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEN1
dCBkb3duIG9uIHVzZSBvZiBDRkdldFR5cGVJRCwgdXNpbmcgZHluYW1pY19jZl9jYXN0IGluc3Rl
YWQ7IHJlbGF0ZWQgc3RyZWFtbGluaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXgg
NzJlODU2MjEyZjI1NDc3NTJiZTM3MTQzNmE0NmEzYTk3Mzc1MGExZC4uZDdjZDlkNmU5NmIyMTAx
YzYyNzczNWU1NzQ0OWZhMDAwNDQ4ZGZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDIxLTA4LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgRW5hYmxlIFNoYXJlZEFycmF5QnVmZmVyIHN1cHBvcnQgd2hlbiBDT09Q
L0NPRVAgaGVhZGVycyBhcmUgdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI5NTU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjM5MTk0NT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDIxLTA4LTMwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdHVicyBmb3IgUGVy
bWlzc2lvbnMgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBmNjhkYzdlNGFlZWUwOWM0MjU4OTFl
ZjZjZGVmZDkxNDUwNTUxMWQyLi4zNDUxY2JlYTkzZWZhNjJiNmNiNjE2MTI2NjhlODI3OGQ3NTIz
NjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQzNCw2ICs0MzQsNyBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgZG9tL0NvbW1lbnQuaAogICAgIGRvbS9Db250
YWluZXJOb2RlLmgKICAgICBkb20vQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaAorICAgIGRv
bS9Dcm9zc09yaWdpbk1vZGUuaAogICAgIGRvbS9DdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5o
CiAgICAgZG9tL0RPTUV4Y2VwdGlvbi5oCiAgICAgZG9tL0RPTUhpZ2hSZXNUaW1lU3RhbXAuaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDhmMWMzZDNhZWZiMDc2YmNiYjcwMjBhNTUxZTVlMjlmYTRlYzA2NDYuLjcwMjYxMDMyNWEz
MzZmNTEzZmMyMTI2NGZhMDE3NzMzOGY0ZDg4ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyOTQsNiArMTI5NCw3IEBACiAJ
CTQ2NzMwMjAyMUM0RUZFNzgwMEJDQjM1NyAvKiBJZ25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50
SW5jcmVtZW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2NzMwMjAxMUM0RUZFNjYwMEJDQjM1NyAvKiBJZ25vcmVPcGVuc0R1cmluZ1VubG9hZENv
dW50SW5jcmVtZW50ZXIuaCAqLzsgfTsKIAkJNDY4MkQyMDAxRjc5NzgzMDAwQzg2M0RCIC8qIFN0
b3JlZENyZWRlbnRpYWxzUG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NjgyRDFGRjFGNzk3ODIzMDBDODYzREIgLyogU3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk0NjgzNDRFMDFFRERGQUFBMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODM0NERFMUVEREZBNUYwMEI3
Nzk1QiAvKiBET01SZWN0TGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTQ2ODhFRTNDMjZERDI2MTAwMDJBRjVDNCAvKiBDcm9zc09yaWdpbk1v
ZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODhF
RTNBMjZERDI2MEMwMDJBRjVDNCAvKiBDcm9zc09yaWdpbk1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjlDQ0NGRTI2OUQwMjFDMDA2RTAz
MTQgLyogQnJvYWRjYXN0Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDY5Q0NDRkMyNjlEMDIwMjAwNkUwMzE0IC8qIEJyb2FkY2FzdENoYW5u
ZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0
NkFBQUEzRDI1RDM2MzIwMDBCQUY0MkYgLyogQXVkaW9GaWxlUmVhZGVyQ29jb2EuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QUFBQTNBMjVEMzYzMTQw
MEJBRjQyRiAvKiBBdWRpb0ZpbGVSZWFkZXJDb2NvYS5oICovOyB9OwogCQk0NkI2M0Y2QzFDNkU4
RDE5MDAyRTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCNjNGNkIxQzZFOENERjAwMkU5MTRCIC8qIEpT
RXZlbnRUYXJnZXRDdXN0b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtODMzNSw2ICs4MzM2LDcgQEAKIAkJNDY4MzQ0REMxRURERkE1RjAwQjc3
OTVCIC8qIERPTVJlY3RMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBET01SZWN0TGlzdC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ2ODM0NEREMUVEREZBNUYwMEI3Nzk1QiAvKiBET01SZWN0TGlz
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01SZWN0TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ2ODM0NERFMUVEREZBNUYwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBET01SZWN0TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0Njg4RUUzQTI2REQyNjBDMDAyQUY1QzQgLyogQ3Jvc3NPcmlnaW5Nb2RlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENyb3NzT3JpZ2luTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NjhCOEJERTI1Q0M4NDkzMDBGNjc4MjIgLyogSlNCYXNlQXVkaW9Db250ZXh0Q3VzdG9tLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmFzZUF1ZGlvQ29udGV4dEN1c3RvbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2OUNDQ0ZBMjY5RDAyMDIwMDZFMDMxNCAvKiBCcm9h
ZGNhc3RDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJyb2FkY2FzdENoYW5uZWwuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjlDQ0NGQzI2OUQwMjAyMDA2RTAzMTQg
LyogQnJvYWRjYXN0Q2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCcm9hZGNhc3RDaGFubmVsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTg3MSw2ICsyOTg3Myw3IEBACiAJCQkJ
RTFBMTQ3MDcxMTEwMkIxNTAwRUVDMEYzIC8qIENvbnRhaW5lck5vZGVBbGdvcml0aG1zLmggKi8s
CiAJCQkJOTc2MjdCOEIxNEZCM0NFRTAwMkNEQ0ExIC8qIENvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyLmNwcCAqLywKIAkJCQk5NzYyN0I4QzE0RkIzQ0VFMDAyQ0RDQTEgLyogQ29udGV4dERlc3Ry
dWN0aW9uT2JzZXJ2ZXIuaCAqLywKKwkJCQk0Njg4RUUzQTI2REQyNjBDMDAyQUY1QzQgLyogQ3Jv
c3NPcmlnaW5Nb2RlLmggKi8sCiAJCQkJN0NGNTcwQzYyNDkyQkQ0OTAwOEVCMzNDIC8qIEN1cnJl
bnRTY3JpcHRJbmNyZW1lbnRlci5oICovLAogCQkJCTlCNTZDOUE5MUM4OTMyOUEwMEM0NTZERiAv
KiBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5jcHAgKi8sCiAJCQkJOUI1NkM5QTgxQzg5MzEy
ODAwQzQ1NkRGIC8qIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmggKi8sCkBAIC0zMTQ5OSw2
ICszMTUwMiw3IEBACiAJCQkJMkQ0ODFGMDIxNDZCNUM1NTAwQUE3ODM0IC8qIENyb3NzZmFkZUdl
bmVyYXRlZEltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUM0MTYxMjBGNjU2MkZEMDA5MkQy
RkIgLyogQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmggaW4gSGVhZGVycyAqLywKIAkJCQk0Njcy
QUE5ODI2QjA5NDMzMDBFNkVDMzggLyogQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDY4OEVFM0MyNkREMjYxMDAwMkFGNUM0IC8qIENyb3NzT3JpZ2luTW9k
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY3MkFBOTkyNkIwOTQzRjAwRTZFQzM4IC8qIENyb3Nz
T3JpZ2luT3BlbmVyUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUFCRTY3QjFEMDU4MERC
MDA2RDg2MkQgLyogQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMUM0MTVEQTBGNjU1RDZGMDA5MkQyRkIgLyogQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1
bHRDYWNoZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Q3Jvc3NPcmlnaW5Nb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3Jvc3NPcmlnaW5Nb2RlLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjcxMGFmNjljZDFhMTIxNGM1OTViYTdiOTNmZjE3ZmNjOGZkZjZlNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Dcm9zc09yaWdpbk1vZGUuaApAQCAt
MCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgor
ICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIENyb3NzLU9y
aWdpbiBpc29sYXRpb24gdmlhIENPT1ArQ09FUCBoZWFkZXJzLgorZW51bSBjbGFzcyBDcm9zc09y
aWdpbk1vZGUgOiBib29sIHsgU2hhcmVkLCBJc29sYXRlZCB9OworCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggYmFlOTExMjJmM2QwMmFj
YWYxZjczNjk5YmQzYjY5ZWNhMTQ5MDZhMy4uYjdkNjRkMjcyZWQxYmY4YmI5NzMzNTU4OTc3MmEx
YmUxOTA4N2Q5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmNwcApAQCAtODEsNiArODEsOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFt
ZXNwYWNlIEluc3BlY3RvcjsKIAorc3RhdGljIHN0ZDo6YXRvbWljPENyb3NzT3JpZ2luTW9kZT4g
Z2xvYmFsQ3Jvc3NPcmlnaW5Nb2RlIHsgQ3Jvc3NPcmlnaW5Nb2RlOjpTaGFyZWQgfTsKKwogc3Rh
dGljIExvY2sgYWxsU2NyaXB0RXhlY3V0aW9uQ29udGV4dHNNYXBMb2NrOwogc3RhdGljIEhhc2hN
YXA8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqPiYgYWxsU2NyaXB0RXhlY3V0aW9uQ29udGV4dHNNYXAoKSBXVEZfUkVRVUlSRVNfTE9DSyhh
bGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcExvY2spCiB7CkBAIC02MjMsNiArNjI1LDE2IEBA
IFNlcnZpY2VXb3JrZXJDb250YWluZXIqIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZVNl
cnZpY2VXb3JrZXJDb250YWluZXIoKQogCiAjZW5kaWYKIAordm9pZCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpzZXRDcm9zc09yaWdpbk1vZGUoQ3Jvc3NPcmlnaW5Nb2RlIGNyb3NzT3JpZ2luTW9k
ZSkKK3sKKyAgICBnbG9iYWxDcm9zc09yaWdpbk1vZGUgPSBjcm9zc09yaWdpbk1vZGU7Cit9CisK
K0Nyb3NzT3JpZ2luTW9kZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpjcm9zc09yaWdpbk1vZGUo
KQoreworICAgIHJldHVybiBnbG9iYWxDcm9zc09yaWdpbk1vZGU7Cit9CisKIGJvb2wgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciBpZGVudGlmaWVyLCBUYXNrJiYgdGFzaykKIHsKICAgICBMb2NrZXIgbG9ja2VyIHsgYWxs
U2NyaXB0RXhlY3V0aW9uQ29udGV4dHNNYXBMb2NrIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaAppbmRleCAxZWNiYzEzNzliOWE1YTY4NzY4NTYyZGU4MDZh
NjNiNmQ1ZmMwMWQxLi45MGJlNDIxNDM4MmJmZDI0OTljNTU0MDQ5N2E2MmY1ODUwNzEyZjM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTI4LDYg
KzI4LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisj
aW5jbHVkZSAiQ3Jvc3NPcmlnaW5Nb2RlLmgiCiAjaW5jbHVkZSAiRE9NVGltZXIuaCIKICNpbmNs
dWRlICJQZXJtaXNzaW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVt
b3RlSGFuZGxlckNvbm5lY3Rpb24uaCIKQEAgLTE3NCw2ICsxNzUsOSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udExvYWRSZXF1ZXN0PiBmb250TG9hZFJlcXVlc3Qo
U3RyaW5nJiB1cmwsIGJvb2wgaXNTVkcsIGJvb2wgaXNJbml0aWF0aW5nRWxlbWVudEluVXNlckFn
ZW50U2hhZG93VHJlZSwgTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZSk7CiAgICAgdmlydHVhbCB2b2lk
IGJlZ2luTG9hZGluZ0ZvbnRTb29uKEZvbnRMb2FkUmVxdWVzdCYpIHsgfQogCisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0Q3Jvc3NPcmlnaW5Nb2RlKENyb3NzT3JpZ2luTW9kZSk7
CisgICAgc3RhdGljIENyb3NzT3JpZ2luTW9kZSBjcm9zc09yaWdpbk1vZGUoKTsKKwogICAgIHZv
aWQgcmVmKCkgeyByZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KICAgICB2b2lkIGRlcmVm
KCkgeyBkZXJlZlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCBlMjMwNGFiMGViYTlhMjYxOGY4MjQ1NmQyZWRk
ZjMyMjQ1OTI5MThmLi5hNjAxMTQ3MzI4MzhkMmVmZTJmMGI3MTBjMzliZTMwNWM3ZGFhN2NmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTk0OCw2ICs5NDgs
MTUgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJj
ZSYgcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmUKICAgICByZXNwb25zZVJlY2VpdmVkKHJlc3Bv
bnNlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3N0YXRpYyBCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaERlY2lzaW9uIHRvQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNp
c2lvbihjb25zdCBzdGQ6Om9wdGlvbmFsPENyb3NzT3JpZ2luT3BlbmVyUG9saWN5RW5mb3JjZW1l
bnRSZXN1bHQ+JiBjdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0KQoreworICAgIGlmICghY3Vy
cmVudENvb3BFbmZvcmNlbWVudFJlc3VsdCB8fCAhY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3Vs
dC0+bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCkKKyAgICAgICAgcmV0dXJuIEJyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb246OlN0YXlJbkdyb3VwOworICAgIGlmIChjdXJy
ZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0LT5jcm9zc09yaWdpbk9wZW5lclBvbGljeS52YWx1ZSA9
PSBDcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpTYW1lT3JpZ2luUGx1c0NPRVApCisgICAg
ICAgIHJldHVybiBCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lzaW9uOjpOZXdJc29sYXRl
ZEdyb3VwOworICAgIHJldHVybiBCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lzaW9uOjpO
ZXdTaGFyZWRHcm91cDsKK30KKwogdm9pZCBEb2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZl
ZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChyZXNwb25zZS5jZXJ0aWZp
Y2F0ZUluZm8oKSk7CkBAIC0xMDQ4LDggKzEwNTcsOCBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpy
ZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0
aQogICAgIGlmIChtYWluUmVzb3VyY2VMb2FkZXIpCiAgICAgICAgIG1haW5SZXNvdXJjZUxvYWRl
ci0+bWFya0luQXN5bmNSZXNwb25zZVBvbGljeUNoZWNrKCk7CiAgICAgYXV0byByZXF1ZXN0SWRl
bnRpZmllciA9IFBvbGljeUNoZWNrSWRlbnRpZmllcjo6Y3JlYXRlKCk7Ci0gICAgYm9vbCBuZWVk
c0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoID0gbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVz
dWx0ICYmIG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaDsKLSAgICBmcmFtZUxvYWRlcigpLT5jaGVja0NvbnRlbnRQb2xpY3kobV9y
ZXNwb25zZSwgcmVxdWVzdElkZW50aWZpZXIsIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0
Y2gsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1haW5SZXNvdXJjZUxv
YWRlciA9IFdURk1vdmUobWFpblJlc291cmNlTG9hZGVyKSwKKyAgICBhdXRvIGJyb3dzaW5nQ29u
dGV4dEdyb3VwU3dpdGNoRGVjaXNpb24gPSB0b0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVj
aXNpb24obV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0KTsKKyAgICBmcmFtZUxvYWRlcigp
LT5jaGVja0NvbnRlbnRQb2xpY3kobV9yZXNwb25zZSwgcmVxdWVzdElkZW50aWZpZXIsIGJyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24sIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIG1haW5SZXNvdXJjZUxvYWRlciA9IFdURk1vdmUobWFpblJlc291cmNlTG9h
ZGVyKSwKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxl
ci5yZWxlYXNlKCksIHJlcXVlc3RJZGVudGlmaWVyXSAoUG9saWN5QWN0aW9uIHBvbGljeSwgUG9s
aWN5Q2hlY2tJZGVudGlmaWVyIHJlc3BvbnNlSWRlbnRpZmllcikgbXV0YWJsZSB7CiAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKHJlc3BvbnNlSWRlbnRpZmllci5pc1ZhbGlkRm9yKHJlcXVlc3RJZGVu
dGlmaWVyKSk7CiAgICAgICAgIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KHBvbGljeSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDU1Y2M0NmUyNTkxODQ2OWYz
MWQ1NmMwNDk2ZTQzZGQ1NWVjZmQ1ZDEuLmI3MjdiY2I2OTNjNDQzNGZmZDllNDYyYmJiODczNDkz
ODg1YTM2M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC04MTcs
NyArODE3LDcgQEAgdm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQog
ewogfQogCi12b2lkIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCwgRnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKQordm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIEJyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24sIEZyYW1lUG9saWN5RnVuY3Rpb24mJikKIHsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKaW5k
ZXggMTIwYTRhNTIwYmQxZjEyZDczZDE0ZjYyZWUwZWU0MGI5ODg0ZWFhYi4uZGM1MWQ1ZTM1OTJm
OTZjMGUzMGQzZDZiYWVjYTI0NGMwNmYxOTI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBAIC05Niw3ICs5Niw3IEBAIHByaXZhdGU6CiAg
ICAgRnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgTmV3
RnJhbWVPcGVuZXJQb2xpY3kpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hTaG93KCkgZmluYWw7
CiAKLSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBG
cmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaERlY2lzaW9uLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAg
IHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdh
dGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0
cmluZyYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5h
bDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNpb25N
b2RlLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7
CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKaW5kZXggZTE0NDAyMmU4MGY1YzRkZTRhN2IwMGZlZTAyYmEwNDkyMTRj
NWZmMC4uNjBhNmI0MTRhMDc5Nzc2YmJiNmQ1Y2U4ZGMyMGU3OTRlNTM5ZjYzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC00MTMsNyArNDEzLDcgQEAgdm9pZCBGcmFt
ZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKICAgICB9CiB9CiAKLXZvaWQg
RnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBm
dW5jdGlvbikKK3ZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIs
IEJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24gYnJvd3NpbmdDb250ZXh0R3JvdXBT
d2l0Y2hEZWNpc2lvbiwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikK
IHsKICAgICBpZiAoIWFjdGl2ZURvY3VtZW50TG9hZGVyKCkpIHsKICAgICAgICAgLy8gTG9hZCB3
YXMgY2FuY2VsbGVkCkBAIC00MjIsNyArNDIyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tD
b250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBQb2xpY3lDaGUK
ICAgICB9CiAKICAgICAvLyBGSVhNRTogVmFsaWRhdGUgdGhlIHBvbGljeSBjaGVjayBpZGVudGlm
aWVyLgotICAgIGNsaWVudCgpLmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9u
c2UsIGFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnJlcXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZl
RG9jdW1lbnRMb2FkZXIoKS0+ZG93bmxvYWRBdHRyaWJ1dGUoKSwgbmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaCwgV1RGTW92ZShmdW5jdGlvbikpOworICAgIGNsaWVudCgpLmRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFjdGl2ZURvY3VtZW50TG9hZGVyKCkt
PnJlcXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+ZG93bmxvYWRB
dHRyaWJ1dGUoKSwgYnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiwgV1RGTW92ZShm
dW5jdGlvbikpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpjaGFuZ2VMb2NhdGlvbihjb25zdCBV
UkwmIHVybCwgY29uc3QgU3RyaW5nJiBwYXNzZWRUYXJnZXQsIEV2ZW50KiB0cmlnZ2VyaW5nRXZl
bnQsIGNvbnN0IFJlZmVycmVyUG9saWN5JiByZWZlcnJlclBvbGljeSwgU2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBzdGQ6Om9wdGlvbmFs
PE5ld0ZyYW1lT3BlbmVyUG9saWN5PiBvcGVuZXJQb2xpY3ksIGNvbnN0IEF0b21TdHJpbmcmIGRv
d25sb2FkQXR0cmlidXRlLCBjb25zdCBTeXN0ZW1QcmV2aWV3SW5mbyYgc3lzdGVtUHJldmlld0lu
Zm8sIHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGU1NmMwOGY3
MDM2YTVkZmI3MzNjMmU1ZjVjZWVjZDg4NDIyYWY1MTkuLmY3NTI0MTBhODlmNTkyNzAxYzg0MWE0
MmQ0YWJlNDRhZDc4OTIzMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0y
MjAsNyArMjIwLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKGJvb2wp
OwogCi0gICAgdm9pZCBjaGVja0NvbnRlbnRQb2xpY3koY29uc3QgUmVzb3VyY2VSZXNwb25zZSYs
IFBvbGljeUNoZWNrSWRlbnRpZmllciwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dp
dGNoLCBDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiYmKTsKKyAgICB2b2lkIGNoZWNrQ29u
dGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgUG9saWN5Q2hlY2tJZGVudGlmaWVy
LCBCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lzaW9uLCBDb250ZW50UG9saWN5RGVjaXNp
b25GdW5jdGlvbiYmKTsKIAogICAgIHZvaWQgZGlkRXhwbGljaXRPcGVuKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMzliYjQwNTQwOWM0MTc0Nzg1
YTkzNzIyODMwMDE4NjNjMGE4Nzc1ZC4uNzdiY2MzZGM1Mzg5MDk1NmJhMDFlNzMxNWQ3NGZkNjhj
MjMwYTI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAg
LTE5MCw3ICsxOTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBGcmFtZSogZGlzcGF0Y2hDcmVh
dGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBOZXdGcmFtZU9wZW5lclBvbGljeSkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFNob3coKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBT
d2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
ZG93bmxvYWRBdHRyaWJ1dGUsIEJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24sIEZy
YW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lk
ZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIFBv
bGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBO
YXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNpb25Nb2Rl
LCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJUeXBlcy5oCmluZGV4IGM1MTViYWU0ZDIxOGIzNTJkZmQyMjUwZGFiNTA4
NGM1NDNlYjg4NzkuLjNhM2U0ZmY4MWU1Mzc0OTNlZDI0Y2E2N2JkZTQyZDRjMWU2NTY1MzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaApAQCAtMTY3LDYgKzE2Nywx
MiBAQCBlbnVtIGNsYXNzIFVubG9hZEV2ZW50UG9saWN5IHsKICAgICBVbmxvYWRBbmRQYWdlSGlk
ZQogfTsKIAorZW51bSBjbGFzcyBCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lzaW9uIDog
dWludDhfdCB7CisgICAgU3RheUluR3JvdXAsCisgICAgTmV3U2hhcmVkR3JvdXAsCisgICAgTmV3
SXNvbGF0ZWRHcm91cCwKK307CisKIC8vIFBhc3NlZCB0byBGcmFtZUxvYWRlcjo6dXJsU2VsZWN0
ZWQoKSBhbmQgU2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZUlmSmF2YVNjcmlwdFVSTCgpCiAvLyB0
byBjb250cm9sIHdoZXRoZXIsIGluIHRoZSBjYXNlIG9mIGEgSmF2YVNjcmlwdCBVUkwsIGV4ZWN1
dGVJZkphdmFTY3JpcHRVUkwoKSBzaG91bGQKIC8vIHJlcGxhY2UgdGhlIGRvY3VtZW50LiBJdCBp
cyBhIEZJWE1FIHRvIGVsaW1pbmF0ZSB0aGlzIGV4dHJhIHBhcmFtZXRlciBmcm9tCkBAIC0yNzYs
NiArMjgyLDE1IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UG9saWN5
QWN0aW9uPiB7CiAgICAgPjsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2Vi
Q29yZTo6QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbj4geworICAgIHVzaW5nIHZh
bHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkJyb3dzaW5nQ29udGV4dEdyb3Vw
U3dpdGNoRGVjaXNpb24sCisgICAgICAgIFdlYkNvcmU6OkJyb3dzaW5nQ29udGV4dEdyb3VwU3dp
dGNoRGVjaXNpb246OlN0YXlJbkdyb3VwLAorICAgICAgICBXZWJDb3JlOjpCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaERlY2lzaW9uOjpOZXdTaGFyZWRHcm91cCwKKyAgICAgICAgV2ViQ29yZTo6
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbjo6TmV3SXNvbGF0ZWRHcm91cAorICAg
ID47Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3k+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAog
ICAgICAgICBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCmluZGV4IGNjMzk4MWIzMjc0M2M4YTcyMDZlZGMzNjM3NTE0NWI2MzZl
MDUxMDIuLjZjYThhZjNiYmQzZDA3Yzg5NmU5N2IyNDFiYWVjYmJhOTU3ODQ3YTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE5MjQsOSArMTkyNCw4IEBAIGJvb2wgRE9NV2luZG93
Ojppc1NlY3VyZUNvbnRleHQoKSBjb25zdAogCiBib29sIERPTVdpbmRvdzo6Y3Jvc3NPcmlnaW5J
c29sYXRlZCgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudGVkIHRoaXMuIFRoaXMg
c2hvdWxkIHJldHVybiB0cnVlIGlmIENPT1AvQ09FUCBhcmUgdXNlZCBhbmQgdGhlIHBhZ2UgaXMg
YWxsb3dlZCB0byB1c2UgQVBJcwotICAgIC8vIHRoYXQgcmVxdWlyZSBjcm9zcy1vcmlnaW4gaXNv
bGF0aW9uIChlLmcuIFNoYXJlZEFycmF5QnVmZmVyKS4KLSAgICByZXR1cm4gZmFsc2U7CisgICAg
QVNTRVJUKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmNyb3NzT3JpZ2luTW9kZSgpID09IENyb3Nz
T3JpZ2luTW9kZTo6U2hhcmVkIHx8ICFkb2N1bWVudCgpIHx8IGRvY3VtZW50KCktPnRvcERvY3Vt
ZW50KCkuY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3koKS52YWx1ZSA9PSBDcm9zc09yaWdpbk9wZW5l
clBvbGljeVZhbHVlOjpTYW1lT3JpZ2luUGx1c0NPRVApOworICAgIHJldHVybiBTY3JpcHRFeGVj
dXRpb25Db250ZXh0Ojpjcm9zc09yaWdpbk1vZGUoKSA9PSBDcm9zc09yaWdpbk1vZGU6Oklzb2xh
dGVkOwogfQogCiBzdGF0aWMgdm9pZCBkaWRBZGRTdG9yYWdlRXZlbnRMaXN0ZW5lcihET01XaW5k
b3cmIHdpbmRvdykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCA4NTg2ZWRkMDAwZTEx
ODg1N2Y2Y2JmMjk1NzgwM2RmN2YwY2VlNjk2Li5kYjlhNTlkZjY2NWY4ZDc5NDkzNjIyNDg4M2Ex
ZjNkMTBiYzM4OTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC03OSw4ICs3OSw2
IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5hdmlnYXRvciBuYXZpZ2F0b3I7CiAgICAgLy8g
RklYTUU6IFRoaXMgaXMgc3BlY2lmaWVkIHRvIGJlIFtTZWN1cmVDb250ZXh0XQogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01BcHBsaWNhdGlvbkNhY2hlIGFwcGxpY2F0aW9uQ2FjaGU7Ci0gICAg
Ly8gRklYTUU6IEltcGxlbWVudCAnb3JpZ2luSXNvbGF0ZWQnCi0gICAgLy8gcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gb3JpZ2luSXNvbGF0ZWQ7CiAKICAgICAvLyB1c2VyIHByb21wdHMKICAg
ICB1bmRlZmluZWQgYWxlcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5jcHAKaW5kZXggYWFlYmNkNDQ4YzQxYjgxZTFjZTVjYTI1YjU1ZmNkYTc1YjM0NmM1
Zi4uOWRmOTljNjZiNzg3NTNjZmY2MmY5NTgzZGZhM2RlYjA0OGY5ZjhmYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTU4Niw5ICs1ODYsNyBA
QCB2b2lkIFdvcmtlckdsb2JhbFNjb3BlOjpjbGVhckRlY29kZWRTY3JpcHREYXRhKCkKIAogYm9v
bCBXb3JrZXJHbG9iYWxTY29wZTo6Y3Jvc3NPcmlnaW5Jc29sYXRlZCgpIGNvbnN0CiB7Ci0gICAg
Ly8gRklYTUU6IEltcGxlbWVudGVkIHRoaXMuIFRoaXMgc2hvdWxkIHJldHVybiB0cnVlIGlmIENP
T1AvQ09FUCBhcmUgdXNlZCBhbmQgdGhlIHBhZ2UgaXMgYWxsb3dlZCB0byB1c2UgQVBJcwotICAg
IC8vIHRoYXQgcmVxdWlyZSBjcm9zcy1vcmlnaW4gaXNvbGF0aW9uIChlLmcuIFNoYXJlZEFycmF5
QnVmZmVyKS4KLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OmNyb3NzT3JpZ2luTW9kZSgpID09IENyb3NzT3JpZ2luTW9kZTo6SXNvbGF0ZWQ7CiB9
CiAKIHZvaWQgV29ya2VyR2xvYmFsU2NvcGU6OnVwZGF0ZVNvdXJjZVByb3ZpZGVyQnVmZmVycyhj
b25zdCBTY3JpcHRCdWZmZXImIG1haW5TY3JpcHQsIGNvbnN0IEhhc2hNYXA8VVJMLCBTY3JpcHRC
dWZmZXI+JiBpbXBvcnRlZFNjcmlwdHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQppbmRleCBiZTdkYWVlZGZjZWU1YTJlZDljMWYyMjJmMjFjY2ViZWZkMzc2YzI4Li5l
NzI2M2UxMmViZDljNjQ0ZDkzMjVjODE1YzFiODY4NTYxMTkxMDA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTY4Nyw2ICs2ODcsNyBAQCBkZWYgaGVhZGVy
c19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1N0cmluZyc6IFsnPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPiddLAogICAgICAgICAnUEFMOjpTZXNzaW9uSUQnOiBbJzxwYWwvU2Vzc2lvbklELmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3MnOiBbJzxXZWJDb3JlL0F1dG9w
bGF5RXZlbnQuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkJyb3dzaW5nQ29udGV4dEdyb3VwU3dp
dGNoRGVjaXNpb24nOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAgICAgICAg
J1dlYkNvcmU6OkNyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0JzogWyc8V2ViQ29yZS9BcHBIaWdo
bGlnaHQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UnOiBb
JzxXZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEZXN0aW5h
dGlvbkNvbG9yU3BhY2UnOiBbJzxXZWJDb3JlL0NvbG9yU3BhY2UuaD4nXSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2Vydmlj
ZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2lu
dFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgKaW5kZXgg
OTJlMTRlNGVkZjcxOWIxZWMwMmRmZDg1NDE4Mjk0NDIyM2NjMjZhNS4uMGE4MTIxYWU3NTAwNTBi
MzcwNzEzMjgxMjljMDc0Njc0YTM1OTVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBv
aW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2Nv
YS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgKQEAgLTkyLDYgKzkyLDExIEBAIHZv
aWQgWFBDU2VydmljZUluaXRpYWxpemVyKE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+IGNv
bm5lY3Rpb24sIHhwY19vYmplY3RfCiAgICAgICAgICAgICBKU0M6OkNvbmZpZzo6Y29uZmlndXJl
Rm9yVGVzdGluZygpOwogICAgICAgICBpZiAoeHBjX2RpY3Rpb25hcnlfZ2V0X2Jvb2woaW5pdGlh
bGl6ZXJNZXNzYWdlLCAiZGlzYWJsZS1qaXQiKSkKICAgICAgICAgICAgIEpTQzo6RXhlY3V0YWJs
ZUFsbG9jYXRvcjo6c2V0SklURW5hYmxlZChmYWxzZSk7CisgICAgICAgIGlmICh4cGNfZGljdGlv
bmFyeV9nZXRfYm9vbChpbml0aWFsaXplck1lc3NhZ2UsICJlbmFibGUtc2hhcmVkLWFycmF5LWJ1
ZmZlciIpKSB7CisgICAgICAgICAgICBKU0M6Ok9wdGlvbnM6OmluaXRpYWxpemUoKTsKKyAgICAg
ICAgICAgIEpTQzo6T3B0aW9uczo6QWxsb3dVbmZpbmFsaXplZEFjY2Vzc1Njb3BlIHNjb3BlOwor
ICAgICAgICAgICAgSlNDOjpPcHRpb25zOjp1c2VTaGFyZWRBcnJheUJ1ZmZlcigpID0gdHJ1ZTsK
KyAgICAgICAgfQogICAgIH0KIAogICAgIFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlVHlw
ZSBkZWxlZ2F0ZShXVEZNb3ZlKGNvbm5lY3Rpb24pLCBpbml0aWFsaXplck1lc3NhZ2UpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcAppbmRleCBhZmZiNThiMjk3NDQ4MjkxMTdkMTdkMWUyYTYxNDdlMjFiZjhiNmExLi41ODU3
YTA2ZDBmNzU2MTVhNjNkMDUzOWQ3MjIzY2E3YzcxYmM3ZGExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMTIy
LDYgKzEyMiw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQ
Qzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1lbW9yeUNhY2hlRGlz
YWJsZWQ7CiAgICAgZW5jb2RlciA8PCBhdHRyU3R5bGVFbmFibGVkOwogICAgIGVuY29kZXIgPDwg
c2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb247CisgICAg
ZW5jb2RlciA8PCBjcm9zc09yaWdpbk1vZGU7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9M
UykKICAgICBlbmNvZGVyIDw8IGhhc0ltYWdlU2VydmljZXM7CkBAIC0zODksNiArMzkwLDggQEAg
Ym9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBk
ZWNvZGVyLCBXZWJQcm9jZXNzQ3JlYXQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENv
bnN0YW50UmVkZWNsYXJhdGlvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuY3Jvc3NPcmlnaW5Nb2RlKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwYXJhbWV0ZXJzLmhhc0ltYWdlU2VydmljZXMpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGRjNmIyMjk3
ZDJmOGFkOWE4MjUxZjIyODIyZDlkYWNkOGVjODkxNmYuLjUyYzM2ZmUxNjExN2U5ZWUwMDc1Yzkx
ZWFmN2NkOWJiNzNhNjhlZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJU
ZXh0Q2hlY2tlclN0YXRlLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NPcmln
aW5Nb2RlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vz
c0lELmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgpAQCAtMTM1LDYgKzEzNiw3IEBAIHN0
cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29sIG1lbW9yeUNhY2hl
RGlzYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgYXR0clN0eWxlRW5hYmxlZCB7IGZhbHNlIH07
CiAgICAgYm9vbCBzaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJh
dGlvbiB7IHRydWUgfTsKKyAgICBXZWJDb3JlOjpDcm9zc09yaWdpbk1vZGUgY3Jvc3NPcmlnaW5N
b2RlIHsgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5Nb2RlOjpTaGFyZWQgfTsgLy8gQ3Jvc3Mtb3JpZ2lu
IGlzb2xhdGlvbiB2aWEgQ09PUCtDT0VQIGhlYWRlcnMuCiAKICNpZiBFTkFCTEUoU0VSVklDRV9D
T05UUk9MUykKICAgICBib29sIGhhc0ltYWdlU2VydmljZXMgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRleCAx
MDgxYmEyYTViZmMzNGI5ZmI3M2FmODg1MTI1M2U3OGVhYWViM2M4Li5kMzBmNmQ0OWIwOTJmNzk0
MTc1ODU2ODUyMWEwNmFhMzBkMmJkYmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaApAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVy
KiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRDb25maWd1cmVKU0NGb3JUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICAgICAgdmlydHVhbCBib29sIGlzSklURW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KKyAgICAgICAgdmlydHVhbCBib29sIHNob3VsZEVuYWJsZVNoYXJlZEFycmF5QnVmZmVyKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAgdmly
dHVhbCBSZWZQdHI8WFBDRXZlbnRIYW5kbGVyPiB4cGNFdmVudEhhbmRsZXIoKSBjb25zdCB7IHJl
dHVybiBudWxscHRyOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IGY3NzczZmU2
ZGQwMjkyZDJjMzljY2ZmZGMwOGI1MzY5ZTA1MjBlNTIuLmRhYzMxYzNkOWY2NmEwOGIwZTBkMDY1
NmFmZTY3YTViZjg4YWEzYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xh
dW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtMjA1LDYgKzIwNSw4
IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKICAgICAgICAgICAgIHhw
Y19kaWN0aW9uYXJ5X3NldF9ib29sKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJjb25maWd1cmUt
anNjLWZvci10ZXN0aW5nIiwgdHJ1ZSk7CiAgICAgICAgIGlmICghbV9jbGllbnQtPmlzSklURW5h
YmxlZCgpKQogICAgICAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X2Jvb2woYm9vdHN0cmFwTWVz
c2FnZS5nZXQoKSwgImRpc2FibGUtaml0IiwgdHJ1ZSk7CisgICAgICAgIGlmIChtX2NsaWVudC0+
c2hvdWxkRW5hYmxlU2hhcmVkQXJyYXlCdWZmZXIoKSkKKyAgICAgICAgICAgIHhwY19kaWN0aW9u
YXJ5X3NldF9ib29sKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJlbmFibGUtc2hhcmVkLWFycmF5
LWJ1ZmZlciIsIHRydWUpOwogICAgIH0KIAogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmco
Ym9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgIm1lc3NhZ2UtbmFtZSIsICJib290c3RyYXAiKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAppbmRl
eCA3NWE2NWM0MzM3MDY1NDc4MDBlNjIwYWQwNWY0NTZjMzYwNDFlZmYzLi4zM2U0NDk4NWMwOTMx
M2Q4MWE4MmZhNmIyZDU4YTU4YWY2ODk2NWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCkBAIC0zMzAsMTIgKzMzMCwxMiBAQCB2b2lk
IFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5
bmMoRnJhbWVJZGVudGlmaWVyCiAgICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25Bc3luY1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJ
RCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUo
bmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBXVEZNb3ZlKG9yaWdpbmF0aW5nRnJhbWVJbmZvKSwgb3Jp
Z2luYXRpbmdQYWdlSUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92
ZShyZXF1ZXN0Qm9keSksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBsaXN0
ZW5lcklEKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUlu
Zm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVU
eXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUlu
amVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2
NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYm
IGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5T
aG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxs
b3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIEJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24g
YnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiwgdWludDY0X3QgbWFpblJlc291cmNl
TG9hZElkZW50aWZpZXIsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2Vy
RGF0YSkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZy
YW1lSW5mbyksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNh
blNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVu
ZGxlLCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBtYWluUmVzb3VyY2VMb2FkSWRl
bnRpZmllciwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOworICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lG
b3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJ
RCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNl
LCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCB3YXNBbGxvd2Vk
QnlJbmplY3RlZEJ1bmRsZSwgYnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiwgbWFp
blJlc291cmNlTG9hZElkZW50aWZpZXIsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKIH0KIAogdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0
cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5n
LCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5oCmluZGV4IDBhYmVhOWRhNmJiZDIwMTE0ZmY1NGMxYjhkNzFj
YWZkYmY3MjM3NjIuLmQ3OGMzOGUwMDUyMGQ4Yzg0MGUzNzExMjliMmU0NTRlYjg5YWE2MDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAt
MTI1LDcgKzEyNSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzZW5kTWVzc2FnZShVbmlxdWVSZWY8
SVBDOjpFbmNvZGVyPiYmLCBPcHRpb25TZXQ8SVBDOjpTZW5kT3B0aW9uPiwgc3RkOjpvcHRpb25h
bDxzdGQ6OnBhaXI8Q29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkRlY29kZXIqKT4sIHVpbnQ2
NF90Pj4mJikgZmluYWw7CiAKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRp
b25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywgc3Rk
OjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0
YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9v
bCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wg
d2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElk
ZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBi
b29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9v
bCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgV2ViQ29yZTo6QnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2hEZWNpc2lvbiwgdWludDY0X3QgbGlzdGVuZXJJRCwgdWludDY0X3QgbWFpblJlc291
cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkaWRDaGFuZ2VQ
cm92aXNpb25hbFVSTEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBVUkwmJik7CiAgICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3Qo
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25V
UkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYsIGNvbnN0IFVzZXJEYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVu
ZGVkUGFnZVByb3h5LmNwcAppbmRleCAzYjY4MWU1ZTkxYmJmZTUwOTNlZTg3YzhmNTdmNDlkMmFk
YWFhZTQ5Li43MmY1NThmN2YwNjc1MTE1NjRiZWIxYmE1ZGJmNWZhZmJmZWJjY2U1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAKQEAgLTU0LDcg
KzU0LDcgQEAgUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gU3VzcGVuZGVkUGFnZVByb3h5OjpmaW5k
UmV1c2FibGVTdXNwZW5kZWRQYWdlUHJvY2VzcyhXZWIKIHsKICAgICBmb3IgKGF1dG8qIHN1c3Bl
bmRlZFBhZ2UgOiBhbGxTdXNwZW5kZWRQYWdlcygpKSB7CiAgICAgICAgIGF1dG8mIHByb2Nlc3Mg
PSBzdXNwZW5kZWRQYWdlLT5wcm9jZXNzKCk7Ci0gICAgICAgIGlmICgmcHJvY2Vzcy5wcm9jZXNz
UG9vbCgpID09ICZwcm9jZXNzUG9vbCAmJiBwcm9jZXNzLnJlZ2lzdHJhYmxlRG9tYWluKCkgPT0g
cmVnaXN0cmFibGVEb21haW4gJiYgJnByb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpID09ICZkYXRh
U3RvcmUpCisgICAgICAgIGlmICgmcHJvY2Vzcy5wcm9jZXNzUG9vbCgpID09ICZwcm9jZXNzUG9v
bCAmJiBwcm9jZXNzLnJlZ2lzdHJhYmxlRG9tYWluKCkgPT0gcmVnaXN0cmFibGVEb21haW4gJiYg
JnByb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpID09ICZkYXRhU3RvcmUgJiYgcHJvY2Vzcy5jcm9z
c09yaWdpbk1vZGUoKSAhPSBDcm9zc09yaWdpbk1vZGU6Oklzb2xhdGVkKQogICAgICAgICAgICAg
cmV0dXJuICZwcm9jZXNzOwogICAgIH0KICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDQxZTgyNjZmNzE3ZDI0ZjNiZTQ0YjVh
MmQ3Zjc0NWM5M2MxYTFiYTkuLjlkM2JjNDIzNDhkMjM0MmE5OTMyNjk0NGE3OTU1YWI4ZmI3YTdl
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTYxOSwx
MiArNTYxOSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93
QWN0aW9uKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZQogCiB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1l
SW5mb0RhdGEmJiBmcmFtZUluZm8sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAog
ICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUs
IGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsCi0gICAgYm9vbCB3YXNBbGxvd2VkQnlJ
bmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50
NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQorICAgIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5k
bGUsIEJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24gYnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2hEZWNpc2lvbiwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIHVp
bnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICBkZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJ
RCwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQs
IHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCB3
YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCwgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKKyAg
ICBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dl
YlBhZ2VJRCwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0
aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmli
dXRlLCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0
Y2hEZWNpc2lvbiwgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIGxpc3RlbmVySUQsIHVzZXJE
YXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFn
ZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywg
UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRy
aWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2lu
Z0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFBvbGljeUNoZWNrSWRlbnRpZmll
ciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hv
d01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93
ZWRCeUluamVjdGVkQnVuZGxlLCBCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lzaW9uIGJy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24sIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxv
YWRJZGVudGlmaWVyLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRh
dGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsK
IApAQCAtNTYzNyw3ICs1NjM3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
clJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywKICAgICBSZWZQ
dHI8QVBJOjpOYXZpZ2F0aW9uPiBuYXZpZ2F0aW9uID0gbmF2aWdhdGlvbklEID8gbV9uYXZpZ2F0
aW9uU3RhdGUtPm5hdmlnYXRpb24obmF2aWdhdGlvbklEKSA6IG51bGxwdHI7CiAgICAgYXV0byBu
YXZpZ2F0aW9uUmVzcG9uc2UgPSBBUEk6Ok5hdmlnYXRpb25SZXNwb25zZTo6Y3JlYXRlKEFQSTo6
RnJhbWVJbmZvOjpjcmVhdGUoV1RGTW92ZShmcmFtZUluZm8pLCB0aGlzKS5nZXQoKSwgcmVxdWVz
dCwgcmVzcG9uc2UsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUpOwogCi0gICAg
YXV0byBsaXN0ZW5lciA9IG1ha2VSZWYoZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB3ZWJQYWdlSUQsIGZyYW1lSUQs
IG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIG1haW5SZXNvdXJjZUxvYWRJZGVudGlm
aWVyLCBpZGVudGlmaWVyLCBsaXN0ZW5lcklELCBuYXZpZ2F0aW9uID0gV1RGTW92ZShuYXZpZ2F0
aW9uKSwKKyAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFtZS0+c2V0VXBQb2xpY3lMaXN0
ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHdlYlBhZ2VJ
RCwgZnJhbWVJRCwgYnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiwgbWFpblJlc291
cmNlTG9hZElkZW50aWZpZXIsIGlkZW50aWZpZXIsIGxpc3RlbmVySUQsIG5hdmlnYXRpb24gPSBX
VEZNb3ZlKG5hdmlnYXRpb24pLAogICAgICAgICBwcm9jZXNzLCBuYXZpZ2F0aW9uUmVzcG9uc2Vd
IChQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBBUEk6OldlYnNpdGVQb2xpY2llcyosIFByb2Nl
c3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVm
UHRyPFNhZmVCcm93c2luZ1dhcm5pbmc+JiYgc2FmZUJyb3dzaW5nV2FybmluZywgc3RkOjpvcHRp
b25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERv
bWFpbikgbXV0YWJsZSB7CiAgICAgICAgIC8vIEZJWE1FOiBBc3NlcnQgdGhlIEFQSTo6V2Vic2l0
ZVBvbGljaWVzKiBpcyBudWxscHRyIGhlcmUgb25jZSBjbGllbnRzIG9mIFdLRnJhbWVQb2xpY3lM
aXN0ZW5lclVzZVdpdGhQb2xpY2llcyBnbyBhd2F5LgogICAgICAgICBSRUxFQVNFX0FTU0VSVChw
cm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50ID09IFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGll
bnQ6Ok5vKTsKQEAgLTU2NDgsMTkgKzU2NDgsMjIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywK
ICAgICAgICAgfSk7CiAKICAgICAgICAgYXV0byB3aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNz
ID0gV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6Tm87Ci0gICAgICAgIGlmIChwb2xpY3lB
Y3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaCAmJiBuYXZpZ2F0aW9uKSB7Ci0gICAgICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZXNw
b25zZURvbWFpbiB7IG5hdmlnYXRpb25SZXNwb25zZS0+cmVzcG9uc2UoKS51cmwoKSB9OwotICAg
ICAgICAgICAgLy8gQXZvaWQgcHJvY2Vzcy1zd2FwcGluZyBpbiBjYXNlcyB3aGVyZSB0aGUgcHJv
Y2VzcyBvbmx5IGNvbnRhaW5zIGEgc2luZ2xlIHBhZ2UgYW5kIGlzIG9yaWdpbi1jbGVhbi4KLSAg
ICAgICAgICAgIGlmIChwcm9jZXNzLT5wYWdlQ291bnQoKSA+IDEgfHwgKHByb2Nlc3MtPm9wdGlv
bmFsUmVnaXN0cmFibGVEb21haW4oKSAmJiAqcHJvY2Vzcy0+b3B0aW9uYWxSZWdpc3RyYWJsZURv
bWFpbigpICE9IHJlc3BvbnNlRG9tYWluKSkgewotICAgICAgICAgICAgICAgIFdFQlBBR0VQUk9Y
WV9SRUxFQVNFX0xPRyhQcm9jZXNzU3dhcHBpbmcsICJkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNo
YXJlZDogUHJvY2Vzcy1zd2FwcGluZyBkdWUgdG8gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3ki
KTsKLSAgICAgICAgICAgICAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5w
cmVwYXJlTG9hZEZvcldlYlByb2Nlc3NUcmFuc2Zlcihwcm9jZXNzLT5jb3JlUHJvY2Vzc0lkZW50
aWZpZXIoKSwgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgcmVzcG9uc2VEb21haW4gPSBXVEZNb3ZlKHJlc3Bv
bnNlRG9tYWluKSwgbmF2aWdhdGlvbiwgbmF2aWdhdGlvblJlc3BvbnNlID0gV1RGTW92ZShuYXZp
Z2F0aW9uUmVzcG9uc2UpLCBzZW5kZXIgPSBXVEZNb3ZlKHNlbmRlcildKGF1dG8gZXhpc3RpbmdO
ZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lKSBtdXRhYmxlIHsKLSAgICAgICAg
ICAgICAgICAgICAgYXV0byBwcm9jZXNzRm9yTmF2aWdhdGlvbiA9IG1fcHJvY2Vzcy0+cHJvY2Vz
c1Bvb2woKS5wcm9jZXNzRm9yUmVnaXN0cmFibGVEb21haW4od2Vic2l0ZURhdGFTdG9yZSgpLCB0
aGlzLCByZXNwb25zZURvbWFpbik7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlTmF2aWdh
dGlvbkluTmV3UHJvY2VzcygqbmF2aWdhdGlvbiwgbnVsbHB0ciwgV1RGTW92ZShwcm9jZXNzRm9y
TmF2aWdhdGlvbiksIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5vLCBTaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lvbiwgbnVsbHB0
ciwgZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lKTsKLQotICAg
ICAgICAgICAgICAgICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlvbjo6SWdu
b3JlLCBuYXZpZ2F0aW9uLmdldCgpLCBudWxscHRyLCBXVEZNb3ZlKG5hdmlnYXRpb25SZXNwb25z
ZSksIFdURk1vdmUoc2VuZGVyKSwgeyB9LCBXaWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzOjpZ
ZXMpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgIH0KKyAgICAgICAgaWYgKHBvbGljeUFjdGlvbiA9PSBQb2xpY3lBY3Rpb246OlVzZSAm
JiBicm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lzaW9uICE9IEJyb3dzaW5nQ29udGV4dEdy
b3VwU3dpdGNoRGVjaXNpb246OlN0YXlJbkdyb3VwICYmIG5hdmlnYXRpb24pIHsKKyAgICAgICAg
ICAgIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3dhcHBpbmcsICJkZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZVNoYXJlZDogUHJvY2Vzcy1zd2FwcGluZyBkdWUgdG8gQ3Jvc3MtT3JpZ2lu
LU9wZW5lci1Qb2xpY3kiKTsKKyAgICAgICAgICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3Jr
UHJvY2VzcygpLnByZXBhcmVMb2FkRm9yV2ViUHJvY2Vzc1RyYW5zZmVyKHByb2Nlc3MtPmNvcmVQ
cm9jZXNzSWRlbnRpZmllcigpLCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBuYXZpZ2F0aW9uLCBuYXZpZ2F0
aW9uUmVzcG9uc2UgPSBXVEZNb3ZlKG5hdmlnYXRpb25SZXNwb25zZSksIHNlbmRlciA9IFdURk1v
dmUoc2VuZGVyKSwgYnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbl0oYXV0byBleGlz
dGluZ05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUpIG11dGFibGUgeworICAg
ICAgICAgICAgICAgIFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHByb2Nlc3NGb3JOYXZpZ2F0aW9u
OworICAgICAgICAgICAgICAgIGlmIChicm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lzaW9u
ID09IEJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb246Ok5ld0lzb2xhdGVkR3JvdXAp
CisgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NGb3JOYXZpZ2F0aW9uID0gbV9wcm9jZXNzLT5w
cm9jZXNzUG9vbCgpLmNyZWF0ZU5ld1dlYlByb2Nlc3MoJndlYnNpdGVEYXRhU3RvcmUoKSwgV2Vi
UHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1lZDo6Tm8sIENyb3NzT3JpZ2luTW9kZTo6SXNvbGF0ZWQp
OworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoYnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiA9PSBCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaERlY2lzaW9uOjpOZXdTaGFyZWRHcm91cCk7CisgICAgICAgICAgICAgICAgICAgIFJlZ2lz
dHJhYmxlRG9tYWluIHJlc3BvbnNlRG9tYWluIHsgbmF2aWdhdGlvblJlc3BvbnNlLT5yZXNwb25z
ZSgpLnVybCgpIH07CisgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NGb3JOYXZpZ2F0aW9uID0g
bV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLnByb2Nlc3NGb3JSZWdpc3RyYWJsZURvbWFpbih3ZWJz
aXRlRGF0YVN0b3JlKCksIHRoaXMsIHJlc3BvbnNlRG9tYWluKTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKCpuYXZpZ2F0
aW9uLCBudWxscHRyLCBwcm9jZXNzRm9yTmF2aWdhdGlvbi5yZWxlYXNlTm9uTnVsbCgpLCBQcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OjpObywgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
OjpZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24sIG51bGxwdHIsIGV4aXN0aW5nTmV0d29y
a1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSk7CisKKyAgICAgICAgICAgICAgICByZWNl
aXZlZFBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlvbjo6SWdub3JlLCBuYXZpZ2F0aW9uLmdldCgp
LCBudWxscHRyLCBXVEZNb3ZlKG5hdmlnYXRpb25SZXNwb25zZSksIFdURk1vdmUoc2VuZGVyKSwg
eyB9LCBXaWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzOjpZZXMpOworICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHJlY2Vp
dmVkUG9saWN5RGVjaXNpb24ocG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLmdldCgpLCBudWxscHRy
LCBXVEZNb3ZlKG5hdmlnYXRpb25SZXNwb25zZSksIFdURk1vdmUoc2VuZGVyKSwgeyB9LCB3aWxs
Q29udGludWVMb2FkSW5OZXdQcm9jZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggZjI0YzAzMDczMWNhN2QzYTIzOTgwOTc1MzdmMGM3M2Q0NGMxY2NiMC4uOTQ3
NDdmMDExNmI4MTMwN2NiZmI4Mzc4NjQ1ZDM3YjU4NmI4ODBjNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE3NDMsNyArMTc0Myw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIpOwogICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgVVJMJiYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmln
YXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywg
c3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHks
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2Vy
RGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJv
b2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29s
IHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2gsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJv
b2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29s
IHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBXZWJDb3JlOjpCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaERlY2lzaW9uLCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWlu
dDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIHN0YXJ0VVJMU2No
ZW1lVGFza1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBsb2FkRGF0YVdpdGhO
YXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25z
dCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcm
IGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwg
c3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBXZWJDb3JlOjpTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5LCBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3Rv
cnlWaXNpYmlsaXR5KTsKICAgICB2b2lkIGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIEFQSTo6TmF2
aWdhdGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3Vu
ZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IHN0ZDo6bnVs
bG9wdCwgc3RkOjpvcHRpb25hbDxOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllcj4gZXhpc3Rp
bmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lID0gc3RkOjpudWxsb3B0KTsK
QEAgLTIwNjIsNyArMjA2Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JO
ZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwK
ICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVO
YW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9E
YXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELAotICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmlu
ZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJv
b2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbWFpblJlc291cmNl
TG9hZElkZW50aWZpZXIsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7Cisg
ICAgICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3du
bG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgV2ViQ29yZTo6
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiwgdWludDY0X3QgbWFpblJlc291cmNl
TG9hZElkZW50aWZpZXIsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAg
ICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZv
aWQgYmVnaW5TYWZlQnJvd3NpbmdDaGVjayhjb25zdCBVUkwmLCBib29sLCBXZWJGcmFtZVBvbGlj
eUxpc3RlbmVyUHJveHkmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDYwZTFkNmVkZmY2YjJkNWI0ODdmNWEyNTMxMzI5OWRh
ZDc2MzNjYzEuLmZjNTVlNzY1OWE4OTIwOTgwZmQ0MjEyOWFjM2YwZGFjNzViYmI5MTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAg
LTEwNyw3ICsxMDcsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICAg
ICAjIFBvbGljeSBtZXNzYWdlcwotICAgIERlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZy
YW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRp
ZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJl
c3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlN
RVR5cGUsIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3Rl
ZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBt
YWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFt
ZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZp
ZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNw
b25zZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVU
eXBlLCBTdHJpbmcgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRC
dW5kbGUsIGVudW06dWludDhfdCBXZWJDb3JlOjpCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERl
Y2lzaW9uIGJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24sIHVpbnQ2NF90IG1haW5S
ZXNvdXJjZUxvYWRJZGVudGlmaWVyLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJE
YXRhIHVzZXJEYXRhKQogICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZv
RGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVj
a0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdh
dGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1l
SW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6
V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1
ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEsIHVp
bnQ2NF90IGxpc3RlbmVySUQpCiAgICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5
bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIHN0
cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRh
LCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwg
c3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5n
UGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0
Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKSAtPiAoc3RydWN0IFdlYktpdDo6UG9saWN5RGVjaXNpb24gUG9s
aWN5RGVjaXNpb24pIFN5bmNocm9ub3VzCiAgICAgRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFt
ZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGlj
eUNoZWNrSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2
aWdhdGlvbkFjdGlvbkRhdGEsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJp
bmcgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJE
YXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDFm
ODNkNDAzMjQ5YzFkNzgzNmNkMmM0NGYyZDg3NmRjOTMzMDQxMzEuLmZjYTlkZTYxMDdlYmY3Y2Y1
ZmExNWJiNjVjNDRiM2JkNGE2NjVlZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpy
ZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucygpCiAgICAgcGxhdGZvcm1SZXNvbHZlUGF0
aHNGb3JTYW5kYm94RXh0ZW5zaW9ucygpOwogfQogCi1SZWY8V2ViUHJvY2Vzc1Byb3h5PiBXZWJQ
cm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRl
RGF0YVN0b3JlLCBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkIGlzUHJld2FybWVkKQorUmVm
PFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoV2Vi
c2l0ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdG9yZSwgV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdh
cm1lZCBpc1ByZXdhcm1lZCwgQ3Jvc3NPcmlnaW5Nb2RlIGNyb3NzT3JpZ2luTW9kZSkKIHsKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICBtX3RjY1ByZWZlcmVuY2VFbmFibGVkID0gZG9lc0FwcEhh
dmVJVFBFbmFibGVkKCk7CkBAIC02MDQsNyArNjA0LDcgQEAgUmVmPFdlYlByb2Nlc3NQcm94eT4g
V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSogd2Vi
c2kKICAgICAgICAgd2Vic2l0ZURhdGFTdG9yZS0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Vu
YWJsZWQobV90Y2NQcmVmZXJlbmNlRW5hYmxlZCk7CiAjZW5kaWYKIAotICAgIGF1dG8gcHJvY2Vz
c1Byb3h5ID0gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoKnRoaXMsIHdlYnNpdGVEYXRhU3RvcmUs
IGlzUHJld2FybWVkKTsKKyAgICBhdXRvIHByb2Nlc3NQcm94eSA9IFdlYlByb2Nlc3NQcm94eTo6
Y3JlYXRlKCp0aGlzLCB3ZWJzaXRlRGF0YVN0b3JlLCBpc1ByZXdhcm1lZCwgY3Jvc3NPcmlnaW5N
b2RlKTsKICAgICBpbml0aWFsaXplTmV3V2ViUHJvY2Vzcyhwcm9jZXNzUHJveHksIHdlYnNpdGVE
YXRhU3RvcmUsIGlzUHJld2FybWVkKTsKICAgICBtX3Byb2Nlc3Nlcy5hcHBlbmQocHJvY2Vzc1By
b3h5LmNvcHlSZWYoKSk7CiAKQEAgLTgwMyw2ICs4MDMsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29s
Ojppbml0aWFsaXplTmV3V2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFdlYnNp
dGVEYQogICAgIHBhcmFtZXRlcnMubWVtb3J5Q2FjaGVEaXNhYmxlZCA9IG1fbWVtb3J5Q2FjaGVE
aXNhYmxlZDsKICAgICBwYXJhbWV0ZXJzLmF0dHJTdHlsZUVuYWJsZWQgPSBtX2NvbmZpZ3VyYXRp
b24tPmF0dHJTdHlsZUVuYWJsZWQoKTsKICAgICBwYXJhbWV0ZXJzLnNob3VsZFRocm93RXhjZXB0
aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uID0gbV9jb25maWd1cmF0aW9uLT5zaG91
bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbigpOworICAgIHBh
cmFtZXRlcnMuY3Jvc3NPcmlnaW5Nb2RlID0gcHJvY2Vzcy5jcm9zc09yaWdpbk1vZGUoKTsKIAog
I2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIGF1dG8mIHNlcnZpY2VDb250cm9sbGVy
ID0gU2VydmljZXNDb250cm9sbGVyOjpzaW5nbGV0b24oKTsKQEAgLTEwNTEsNyArMTA1Miw3IEBA
IFJlZjxXZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQb29sOjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGll
bnQmIHBhZ2VDbGllbnQsIFJlZjxBUEk6CiAgICAgICAgIC8vIEluIHRoZSBjb21tb24gY2FzZSwg
d2UgZGVsYXkgcHJvY2VzcyBsYXVuY2ggdW50aWwgc29tZXRoaW5nIGlzIGFjdHVhbGx5IGxvYWRl
ZCBpbiB0aGUgcGFnZS4KICAgICAgICAgcHJvY2VzcyA9IGR1bW15UHJvY2Vzc1Byb3h5KHBhZ2VD
b25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCktPnNlc3Npb25JRCgpKTsKICAgICAgICAg
aWYgKCFwcm9jZXNzKSB7Ci0gICAgICAgICAgICBwcm9jZXNzID0gV2ViUHJvY2Vzc1Byb3h5Ojpj
cmVhdGUoKnRoaXMsIHBhZ2VDb25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCksIFdlYlBy
b2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQ6Ok5vLCBXZWJQcm9jZXNzUHJveHk6OlNob3VsZExhdW5j
aFByb2Nlc3M6Ok5vKTsKKyAgICAgICAgICAgIHByb2Nlc3MgPSBXZWJQcm9jZXNzUHJveHk6OmNy
ZWF0ZSgqdGhpcywgcGFnZUNvbmZpZ3VyYXRpb24tPndlYnNpdGVEYXRhU3RvcmUoKSwgV2ViUHJv
Y2Vzc1Byb3h5OjpJc1ByZXdhcm1lZDo6Tm8sIENyb3NzT3JpZ2luTW9kZTo6U2hhcmVkLCBXZWJQ
cm9jZXNzUHJveHk6OlNob3VsZExhdW5jaFByb2Nlc3M6Ok5vKTsKICAgICAgICAgICAgIG1fZHVt
bXlQcm9jZXNzUHJveGllcy5hZGQocGFnZUNvbmZpZ3VyYXRpb24tPndlYnNpdGVEYXRhU3RvcmUo
KS0+c2Vzc2lvbklEKCksIG1ha2VXZWFrUHRyKCpwcm9jZXNzKSk7CiAgICAgICAgICAgICBtX3By
b2Nlc3Nlcy5hcHBlbmQoKnByb2Nlc3MpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAwNTM1OWE3ZGQ0MTEwNTgxMTg3ZDBmMDk3ZTVhZmQ2
MjczNTVjYThhLi4wNWNmNTM0Njg5ZTVhYjM5YWQ5NmNiYTI1ZmQzMzZiNWYyNDEyNWQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTUxNCw2ICs1MTQsOCBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyBjb250YWluZXJUZW1wb3JhcnlEaXJlY3Rvcnko
KTsKICNlbmRpZgogCisgICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gY3JlYXRlTmV3V2ViUHJvY2Vz
cyhXZWJzaXRlRGF0YVN0b3JlKiwgV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1lZCA9IFdlYlBy
b2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQ6Ok5vLCBXZWJDb3JlOjpDcm9zc09yaWdpbk1vZGUgPSBX
ZWJDb3JlOjpDcm9zc09yaWdpbk1vZGU6OlNoYXJlZCk7CisKIHByaXZhdGU6CiAgICAgdm9pZCBw
bGF0Zm9ybUluaXRpYWxpemUoKTsKIApAQCAtNTI0LDcgKzUyNiw2IEBAIHByaXZhdGU6CiAKICAg
ICBSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiB0cnlUYWtlUHJld2FybWVkUHJvY2VzcyhXZWJzaXRl
RGF0YVN0b3JlJik7CiAKLSAgICBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBjcmVhdGVOZXdXZWJQcm9j
ZXNzKFdlYnNpdGVEYXRhU3RvcmUqLCBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkID0gV2Vi
UHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1lZDo6Tm8pOwogICAgIHZvaWQgaW5pdGlhbGl6ZU5ld1dl
YlByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiwgV2Vic2l0ZURhdGFTdG9yZSosIFdlYlByb2Nlc3NQ
cm94eTo6SXNQcmV3YXJtZWQgPSBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkOjpObyk7CiAK
ICAgICB2b2lkIGhhbmRsZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlTmFtZSwgY29uc3QgVXNlckRhdGEmIG1lc3NhZ2VCb2R5KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQ4ZTZjNzNhYTZlOWY1NzdiZmI1
N2QyYTMxM2I4Y2Q2ZjI1ZDJiYjkuLjQzZDlkNDkxOGIxNDlhODE1NWY3NDQwM2ZkOTY1ZGNlZTJm
NGVlM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApA
QCAtMTQ3LDkgKzE0Nyw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpmb3JXZWJQYWdlc1dpdGhP
cmlnaW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTZWN1CiAgICAgfQogfQogCi1S
ZWY8V2ViUHJvY2Vzc1Byb3h5PiBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZShXZWJQcm9jZXNzUG9v
bCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqIHdlYnNpdGVEYXRhU3RvcmUsIElzUHJl
d2FybWVkIGlzUHJld2FybWVkLCBTaG91bGRMYXVuY2hQcm9jZXNzIHNob3VsZExhdW5jaFByb2Nl
c3MpCitSZWY8V2ViUHJvY2Vzc1Byb3h5PiBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZShXZWJQcm9j
ZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqIHdlYnNpdGVEYXRhU3RvcmUs
IElzUHJld2FybWVkIGlzUHJld2FybWVkLCBDcm9zc09yaWdpbk1vZGUgY3Jvc3NPcmlnaW5Nb2Rl
LCBTaG91bGRMYXVuY2hQcm9jZXNzIHNob3VsZExhdW5jaFByb2Nlc3MpCiB7Ci0gICAgYXV0byBw
cm94eSA9IGFkb3B0UmVmKCpuZXcgV2ViUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLCB3ZWJzaXRl
RGF0YVN0b3JlLCBpc1ByZXdhcm1lZCkpOworICAgIGF1dG8gcHJveHkgPSBhZG9wdFJlZigqbmV3
IFdlYlByb2Nlc3NQcm94eShwcm9jZXNzUG9vbCwgd2Vic2l0ZURhdGFTdG9yZSwgaXNQcmV3YXJt
ZWQsIGNyb3NzT3JpZ2luTW9kZSkpOwogICAgIGlmIChzaG91bGRMYXVuY2hQcm9jZXNzID09IFNo
b3VsZExhdW5jaFByb2Nlc3M6OlllcykKICAgICAgICAgcHJveHktPmNvbm5lY3QoKTsKICAgICBy
ZXR1cm4gcHJveHk7CkBAIC0xNTgsNyArMTU4LDcgQEAgUmVmPFdlYlByb2Nlc3NQcm94eT4gV2Vi
UHJvY2Vzc1Byb3h5OjpjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXQK
ICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBXZWJQcm9j
ZXNzUHJveHk6OmNyZWF0ZUZvclNlcnZpY2VXb3JrZXJzKFdlYlByb2Nlc3NQb29sJiBwcm9jZXNz
UG9vbCwgUmVnaXN0cmFibGVEb21haW4mJiByZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFT
dG9yZSYgd2Vic2l0ZURhdGFTdG9yZSkKIHsKLSAgICBhdXRvIHByb3h5ID0gYWRvcHRSZWYoKm5l
dyBXZWJQcm9jZXNzUHJveHkocHJvY2Vzc1Bvb2wsICZ3ZWJzaXRlRGF0YVN0b3JlLCBJc1ByZXdh
cm1lZDo6Tm8pKTsKKyAgICBhdXRvIHByb3h5ID0gYWRvcHRSZWYoKm5ldyBXZWJQcm9jZXNzUHJv
eHkocHJvY2Vzc1Bvb2wsICZ3ZWJzaXRlRGF0YVN0b3JlLCBJc1ByZXdhcm1lZDo6Tm8sIENyb3Nz
T3JpZ2luTW9kZTo6U2hhcmVkKSk7CiAgICAgcHJveHktPm1fcmVnaXN0cmFibGVEb21haW4gPSBX
VEZNb3ZlKHJlZ2lzdHJhYmxlRG9tYWluKTsKICAgICBwcm94eS0+ZW5hYmxlU2VydmljZVdvcmtl
cnMocHJvY2Vzc1Bvb2wudXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllckZvclNlcnZpY2VX
b3JrZXJzKCkpOwogICAgIHByb3h5LT5jb25uZWN0KCk7CkBAIC0xOTQsNyArMTk0LDcgQEAgcHJp
dmF0ZToKIH07CiAjZW5kaWYKIAotV2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkoV2Vi
UHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0
b3JlLCBJc1ByZXdhcm1lZCBpc1ByZXdhcm1lZCkKK1dlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vz
c1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9yZSogd2Vi
c2l0ZURhdGFTdG9yZSwgSXNQcmV3YXJtZWQgaXNQcmV3YXJtZWQsIENyb3NzT3JpZ2luTW9kZSBj
cm9zc09yaWdpbk1vZGUpCiAgICAgOiBBdXhpbGlhcnlQcm9jZXNzUHJveHkocHJvY2Vzc1Bvb2wu
YWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5KCkpCiAgICAgLCBtX2JhY2tncm91bmRSZXNw
b25zaXZlbmVzc1RpbWVyKCp0aGlzKQogICAgICwgbV9wcm9jZXNzUG9vbChwcm9jZXNzUG9vbCwg
aXNQcmV3YXJtZWQgPT0gSXNQcmV3YXJtZWQ6OlllcyA/IElzV2Vhazo6WWVzIDogSXNXZWFrOjpO
bykKQEAgLTIxMSw2ICsyMTEsNyBAQCBXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShX
ZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqCiAgICAgLCBtX3Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkobWFrZVVuaXF1ZTxVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5PihtYWtlVW5pcXVlUmVmPFVJUHJveHlGb3JDYXB0dXJlPigqdGhpcykpKQogI2Vu
ZGlmCiAgICAgLCBtX2lzUHJld2FybWVkKGlzUHJld2FybWVkID09IElzUHJld2FybWVkOjpZZXMp
CisgICAgLCBtX2Nyb3NzT3JpZ2luTW9kZShjcm9zc09yaWdpbk1vZGUpCiAgICAgLCBtX3NodXRk
b3duUHJldmVudGluZ1Njb3BlQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50IGV2ZW50KSB7
IGlmIChldmVudCA9PSBSZWZDb3VudGVyRXZlbnQ6OkRlY3JlbWVudCkgbWF5YmVTaHV0RG93bigp
OyB9KQogewogICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZE9yQ2hlY2tEaXNhYmxlZCgp
KTsKQEAgLTExNDYsNiArMTE0NywxMSBAQCBib29sIFdlYlByb2Nlc3NQcm94eTo6Y2FuQmVBZGRl
ZFRvV2ViUHJvY2Vzc0NhY2hlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
IAorICAgIGlmIChtX2Nyb3NzT3JpZ2luTW9kZSA9PSBDcm9zc09yaWdpbk1vZGU6Oklzb2xhdGVk
KSB7CisgICAgICAgIFdFQlBST0NFU1NQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzLCAiY2FuQmVB
ZGRlZFRvV2ViUHJvY2Vzc0NhY2hlOiBOb3QgYWRkaW5nIHRvIHByb2Nlc3MgY2FjaGUgYmVjYXVz
ZSB0aGUgcHJvY2VzcyBpcyBjcm9zcy1vcmlnaW4gaXNvbGF0ZWQiKTsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKwogICAgIGlmIChXZWJLaXQ6OmlzSW5zcGVjdG9yUHJvY2Vzc1Bvb2wo
cHJvY2Vzc1Bvb2woKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBhNDBlNjlkZmE1MjJkZWRlYmFmZGI1ZmM2
YjllNzFmY2I5YjRiMDU5Li45ZGM3Mjg0OTA0Y2VhZWYwZTA0NGVmNWQyNjJmNDhlZTlhNDkwNGI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNDQsNiAr
NDQsNyBAQAogI2luY2x1ZGUgIldlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRl
ICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVz
c2FnZXNSZXBsaWVzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc09yaWdpbk1vZGUuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVk
aWFQcm9kdWNlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KQEAgLTEz
NSw3ICsxMzYsNyBAQCBwdWJsaWM6CiAKICAgICBlbnVtIGNsYXNzIFNob3VsZExhdW5jaFByb2Nl
c3MgOiBib29sIHsgTm8sIFllcyB9OwogCi0gICAgc3RhdGljIFJlZjxXZWJQcm9jZXNzUHJveHk+
IGNyZWF0ZShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3RvcmUqLCBJc1ByZXdhcm1lZCwg
U2hvdWxkTGF1bmNoUHJvY2VzcyA9IFNob3VsZExhdW5jaFByb2Nlc3M6Olllcyk7CisgICAgc3Rh
dGljIFJlZjxXZWJQcm9jZXNzUHJveHk+IGNyZWF0ZShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVE
YXRhU3RvcmUqLCBJc1ByZXdhcm1lZCwgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5Nb2RlID0gV2ViQ29y
ZTo6Q3Jvc3NPcmlnaW5Nb2RlOjpTaGFyZWQsIFNob3VsZExhdW5jaFByb2Nlc3MgPSBTaG91bGRM
YXVuY2hQcm9jZXNzOjpZZXMpOwogICAgIHN0YXRpYyBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBjcmVh
dGVGb3JTZXJ2aWNlV29ya2VycyhXZWJQcm9jZXNzUG9vbCYsIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluJiYsIFdlYnNpdGVEYXRhU3RvcmUmKTsKIAogICAgIH5XZWJQcm9jZXNzUHJveHkoKTsK
QEAgLTQxOSw4ICs0MjAsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2FwdGlvbkxhbmd1YWdl
KGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiAKKyAgICBXZWJDb3JlOjpDcm9zc09yaWdpbk1vZGUg
Y3Jvc3NPcmlnaW5Nb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jcm9zc09yaWdpbk1vZGU7IH0KKwog
cHJvdGVjdGVkOgotICAgIFdlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVE
YXRhU3RvcmUqLCBJc1ByZXdhcm1lZCk7CisgICAgV2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQ
b29sJiwgV2Vic2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVkLCBXZWJDb3JlOjpDcm9zc09yaWdp
bk1vZGUpOwogCiAgICAgLy8gQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5CiAgICAgQVNDSUlMaXRlcmFs
IHByb2Nlc3NOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIldlYkNvbnRlbnQiX3M7IH0KQEAg
LTQ0MCw2ICs0NDMsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBib29sIHNob3VsZENvbmZpZ3VyZUpT
Q0ZvclRlc3RpbmcoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzSklURW5hYmxlZCgpIGNvbnN0
IGZpbmFsOworICAgIGJvb2wgc2hvdWxkRW5hYmxlU2hhcmVkQXJyYXlCdWZmZXIoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2Nyb3NzT3JpZ2luTW9kZSA9PSBXZWJDb3JlOjpDcm9zc09yaWdpbk1v
ZGU6Oklzb2xhdGVkOyB9CiAKICAgICB2b2lkIHZhbGlkYXRlRnJlZXplclN0YXR1cygpOwogCkBA
IC02MjAsNiArNjI0LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9oYXNDb21taXR0ZWRBbnlQ
cm92aXNpb25hbExvYWRzIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNQcmV3YXJtZWQ7CisgICAg
V2ViQ29yZTo6Q3Jvc3NPcmlnaW5Nb2RlIG1fY3Jvc3NPcmlnaW5Nb2RlIHsgV2ViQ29yZTo6Q3Jv
c3NPcmlnaW5Nb2RlOjpTaGFyZWQgfTsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQog
ICAgIGJvb2wgbV9oYXNJc3N1ZWRBdHRhY2htZW50RWxlbWVudFJlbGF0ZWRTYW5kYm94RXh0ZW5z
aW9ucyB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmlu
ZGV4IGMwMzYwOWQzYWI5MjQxYmI4MTJhMzM0MDk5ODI0NWVkNTg5MGE2N2MuLmQ3MjliYWNiNTg5
MDc2YWNiYjIwMWI5MjhiNzJhNjFiNWViZjFiNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcApAQCAtODE3LDcgKzgxNyw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoU2hvdygpCiAgICAgd2ViUGFnZS0+c2hvdygpOwogfQogCi12b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvd25s
b2FkQXR0cmlidXRlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1l
UG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUs
IEJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24gYnJvd3NpbmdDb250ZXh0R3JvdXBT
d2l0Y2hEZWNpc2lvbiwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQogewogICAgIGF1
dG8qIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCF3ZWJQYWdlKSB7CkBAIC04
MzgsNyArODM4LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnMKICAgICBXS0J1bmRsZVBhZ2VQ
b2xpY3lBY3Rpb24gcG9saWN5ID0gd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVQb2xpY3lDbGllbnQo
KS5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh3ZWJQYWdlLCBtX2ZyYW1lLnB0cigpLCByZXNwb25z
ZSwgcmVxdWVzdCwgdXNlckRhdGEpOwogICAgIC8vIElmIGEgYnJvd3NpbmcgY29udGV4dCBzd2l0
Y2ggaXMgcmVxdWVzdGVkLCB3ZSBzdGlsbCBuZWVkIHRvIHNlbmQgdGhlIElQQyB0byB0aGUgVUlQ
cm9jZXNzIGluIG9yZGVyIHRvIHByb2Nlc3Mtc3dhcCBpZiBuZWNlc3NhcnksIGV2ZW4gdGhvdWdo
IHRoZQogICAgIC8vIGluamVjdGVkIGJ1bmRsZSBoYXMgYWxyZWFkeSBoYW5kbGVkIHRoZSBwb2xp
Y3kgZGVjaXNpb24uCi0gICAgaWYgKHBvbGljeSA9PSBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb25V
c2UgJiYgIW5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gpIHsKKyAgICBpZiAocG9saWN5
ID09IFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvblVzZSAmJiBicm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaERlY2lzaW9uID09IEJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb246OlN0YXlJ
bkdyb3VwKSB7CiAgICAgICAgIFdFQkZSQU1FTE9BREVSQ0xJRU5UX1JFTEVBU0VfTE9HKE5ldHdv
cmssICJkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlOiBjb250aW51aW5nIGJlY2F1c2Ug
aW5qZWN0ZWQgYnVuZGxlIHNheXMgc28iKTsKICAgICAgICAgZnVuY3Rpb24oUG9saWN5QWN0aW9u
OjpVc2UsIGlkZW50aWZpZXIpOwogICAgICAgICByZXR1cm47CkBAIC04NTUsNyArODU1LDcgQEAg
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZShjb25zdCBSZXNvdXJjZVJlc3BvbnMKICAgICBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVu
ZGxlID0gcG9saWN5ID09IFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvblVzZTsKICAgICBhdXRvIHBy
b3RlY3RvciA9IG1fZnJhbWUuY29weVJlZigpOwogICAgIHVpbnQ2NF90IGxpc3RlbmVySUQgPSBt
X2ZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyKGlkZW50aWZpZXIsIFdURk1vdmUoZnVuY3Rpb24p
LCBXZWJGcmFtZTo6Rm9yTmF2aWdhdGlvbkFjdGlvbjo6Tm8pOwotICAgIGlmICghd2ViUGFnZS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShtX2Zy
YW1lLT5mcmFtZUlEKCksIG1fZnJhbWUtPmluZm8oKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklE
LCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd1Jlc3BvbnNlLCBkb3dubG9hZEF0dHJpYnV0ZSwg
d2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0
Y2gsIG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBsaXN0ZW5lcklELCBVc2VyRGF0YShXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdl
dCgpKS5nZXQoKSkpKSkgeworICAgIGlmICghd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShtX2ZyYW1lLT5mcmFtZUlEKCksIG1fZnJh
bWUtPmluZm8oKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwg
Y2FuU2hvd1Jlc3BvbnNlLCBkb3dubG9hZEF0dHJpYnV0ZSwgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRC
dW5kbGUsIGJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24sIG1haW5SZXNvdXJjZUxv
YWRJZGVudGlmaWVyLCBsaXN0ZW5lcklELCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKSkgewog
ICAgICAgICBXRUJGUkFNRUxPQURFUkNMSUVOVF9SRUxFQVNFX0xPRyhOZXR3b3JrLCAiZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZTogaWdub3JpbmcgYmVjYXVzZSBXZWJQYWdlUHJveHk6
OkRlY2lkZVBvbGljeUZvclJlc3BvbnNlIGZhaWxlZCIpOwogICAgICAgICBtX2ZyYW1lLT5kaWRS
ZWNlaXZlUG9saWN5RGVjaXNpb24obGlzdGVuZXJJRCwgUG9saWN5RGVjaXNpb24geyBpZGVudGlm
aWVyLCBzdGQ6Om51bGxvcHQsIFBvbGljeUFjdGlvbjo6SWdub3JlLCAwLCB7IH0sIHsgfSB9KTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDk2NjZkNjdmODYyMDhkOWI2
YzY0ZjQxMWRiZDYzYmYwMTU5MGE3MTEuLmY2MTJiOTczYWNhNTk1ODhkODUzYWQ5YmJmOGNjYjNl
NjZkNjcyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMjksNyArMTI5LDcg
QEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0
IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBXZWJDb3JlOjpOZXdGcmFtZU9wZW5lclBvbGlj
eSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKICAgICAKLSAgICB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4
dEdyb3VwU3dpdGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAg
IHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaERlY2lzaW9uLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYp
IGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24o
Y29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rp
b24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0
UmVzcG9uc2UsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIFdlYkNvcmU6OlBvbGljeURlY2lzaW9uTW9k
ZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1
bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAyNzJiNTQ3ZmVkMzU5ZmNk
MjdlNmJiZGY3NjU5MTRjM2FiOTNiYjg5Li43ZDEyYWNiYTFiYmE0YWQ5MjE3NzA4YTJhNzBmOTEz
ZDY5NWVlZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0x
MjksNiArMTI5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZFN0YXRpc3RpY3Mu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmln
aW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAgLTUyMyw2ICs1MjQsOCBAQCB2b2lkIFdlYlBy
b2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
JiBwYXJhbWV0ZXJzKQogICAgIAogICAgIGNvbW1vblZNKCkuc2V0R2xvYmFsQ29uc3RSZWRlY2xh
cmF0aW9uU2hvdWxkVGhyb3cocGFyYW1ldGVycy5zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2Jh
bENvbnN0YW50UmVkZWNsYXJhdGlvbik7CiAKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpz
ZXRDcm9zc09yaWdpbk1vZGUocGFyYW1ldGVycy5jcm9zc09yaWdpbk1vZGUpOworCiAjaWYgRU5B
QkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgc2V0RW5hYmxlZFNlcnZpY2VzKHBhcmFtZXRlcnMu
aGFzSW1hZ2VTZXJ2aWNlcywgcGFyYW1ldGVycy5oYXNTZWxlY3Rpb25TZXJ2aWNlcywgcGFyYW1l
dGVycy5oYXNSaWNoQ29udGVudFNlcnZpY2VzKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKaW5kZXggMDUxNjI3MDA5YTY2ZTEyNGFhOTYzNjM3ODRhNmQ3NGNlYjA0M2JmOC4uM2My
NDgxMzFlNWRiODE5YWMyM2I2ZjE4ZjI4ZjliYjEyMWY0YmJjMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCkBAIC0xMjcsNyArMTI3LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFt
ZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBX
ZWJDb3JlOjpOZXdGcmFtZU9wZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNo
b3coKSBmaW5hbDsKIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBi
b29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5
RnVuY3Rpb24mJikgZmluYWw7CisgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYsIFdlYkNvcmU6OkJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24sIFdlYkNvcmU6
OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBv
bGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgY29u
c3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
LCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRp
b25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUq
LCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGNh
bmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4
IDBjZmJlZWUwNDQ3ZDJlMjg1NzcyMmZlMGE2NjQxNTE5NDA5YjJhZmIuLmZiYWVhOGVhNjg2OGRh
ODEyNGMwMTEyYjUwYjJjZDQ1NWU3MTVmNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
CkBAIC04NTUsNyArODU1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hT
aG93KCkKICAgICBbW3dlYlZpZXcgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXdTaG93Ondl
YlZpZXddOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBv
bGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJiBm
dW5jdGlvbikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OkJyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24sIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24m
JiBmdW5jdGlvbikKIHsKICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gZ2V0V2ViVmlldyhtX3dlYkZy
YW1lLmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGM1YWZhMTMz
N2RiNGUyZmI2N2NlZTQwZjEwNDVmMWM2OTZhYzI3ZjcuLjI4OTUzZDZmNmRiNDNhMWIzNjY0Mjky
ZDM2N2U2YjdlMDZjMDY0OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTUx
OSw3ICs1MTksNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQog
ICAgICAgICB1aS0+d2ViVmlld1Nob3cod2ViVmlldyk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wg
bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1
bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiwgQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiwg
RnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQogewogICAgIFdlYlZpZXcqIHdlYlZpZXcg
PSBtX3dlYkZyYW1lLT53ZWJWaWV3KCk7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUobV93
ZWJGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA2MTQ2NWMxMWZjMjU1NzMy
NDgyMTU4MTI1OTI1MTljNWE2MTFhZmQyLi5lYjdmMjMzY2Y0ZjJkNDNkZTE3NzZlMmIwZDM2MmZh
YzJkZWFkNDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTkxLDcgKzkxLDcgQEAg
cHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkaXNwYXRjaERpZFJlYWNoTGF5b3V0TWlsZXN0b25lKE9wdGlvblNldDxXZWJDb3JlOjpM
YXlvdXRNaWxlc3RvbmU+KSBvdmVycmlkZTsKIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNv
cmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaERl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OkJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
RGVjaXNpb24sIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2Vi
Q29yZTo6Rm9ybVN0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92
ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
KGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3Bv
bnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlv
biYmKSBvdmVycmlkZTsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTkzNTBm
MDZlNzNiMTIxNTVmZDU4NjU4ODAwYjRjNzcwOGM4YzI5NC4uN2MwZGQ5YTZiNTJhMjBkODRkNmM5
NTRiYzExZjUzZjIyZjE0ZTE5OSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA4LTI3ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIFNoYXJlZEFycmF5QnVmZmVyIHN1
cHBvcnQgd2hlbiBDT09QL0NPRVAgaGVhZGVycyBhcmUgdXNlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NTU5CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS84MjM5MTk0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UuIFNoYXJlZEFycmF5QnVmZmVyIHN1cHBvcnQg
aXMgY3VycmVudGx5IGZvcmNlZnVsbHkgZW5hYmxlZCBieQorICAgICAgICBydW4td2Via2l0LXRl
c3RzLnB5IHNvIGl0IHdvdWxkIG5vdCBiZSBwcmFjdGljYWwgdG8gd3JpdGUgbGF5b3V0IHRlc3Rz
IGZvciB0aGlzIGF0CisgICAgICAgIHRoZSBtb21lbnQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAgICAg
ICAoLVtQU09OU2NoZW1lIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOnRvRGF0YTp3aXRoQ09PUFZh
bHVlOndpdGhDT0VQVmFsdWU6XSk6CisgICAgICAgICgtW1BTT05TY2hlbWUgd2ViVmlldzpzdGFy
dFVSTFNjaGVtZVRhc2s6XSk6CisKIDIwMjEtMDgtMzEgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRh
cmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtjb250cmlidXRvcnMuanNvbl0gUmVwbGFjZSBjbGFz
cz1ib3Qgd2l0aCBzdGF0dXM9Ym90CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRl
eCBhNjNmNzQxOWRkZGNiOTJjYjIzMzJiYzY5ZjAxMjU0NWZmZjgxZGY1Li5jNjMzMTY3ODU4NTA3
M2RkZWJkZjQ0MjZkMjAzZGZiMWQ1NmJiNzIyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRp
b24ubW0KQEAgLTI1MSwxMyArMjUxLDE0IEBAIEBpbnRlcmZhY2UgUFNPTlNjaGVtZSA6IE5TT2Jq
ZWN0IDxXS1VSTFNjaGVtZUhhbmRsZXI+IHsKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBf
cmVkaXJlY3RzOwogICAgIEhhc2hNYXA8U3RyaW5nLCBSZXRhaW5QdHI8TlNEYXRhPj4gX2RhdGFN
YXBwaW5nczsKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBfY29vcFZhbHVlczsKKyAgICBI
YXNoTWFwPFN0cmluZywgU3RyaW5nPiBfY29lcFZhbHVlczsKICAgICBIYXNoU2V0PGlkIDxXS1VS
TFNjaGVtZVRhc2s+PiBfcnVubmluZ1Rhc2tzOwogICAgIGJvb2wgX3Nob3VsZFJlc3BvbmRBc3lu
Y2hyb25vdXNseTsKIH0KIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEJ5dGVzOihjb25zdCBjaGFy
KilieXRlczsKIC0gKHZvaWQpYWRkUmVkaXJlY3RGcm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXNv
dXJjZVVSTFN0cmluZyB0b1VSTFN0cmluZzooTlNTdHJpbmcgKilkZXN0aW5hdGlvblVSTFN0cmlu
ZzsKIC0gKHZvaWQpYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6KE5TU3RyaW5nICopdXJsU3RyaW5n
IHRvRGF0YTooY29uc3QgY2hhciopZGF0YTsKLS0gKHZvaWQpYWRkTWFwcGluZ0Zyb21VUkxTdHJp
bmc6KE5TU3RyaW5nICopdXJsU3RyaW5nIHRvRGF0YTooY29uc3QgY2hhciopZGF0YSB3aXRoQ09P
UFZhbHVlOihjb25zdCBjaGFyKiljb29wVmFsdWU7CistICh2b2lkKWFkZE1hcHBpbmdGcm9tVVJM
U3RyaW5nOihOU1N0cmluZyAqKXVybFN0cmluZyB0b0RhdGE6KGNvbnN0IGNoYXIqKWRhdGEgd2l0
aENPT1BWYWx1ZTooY29uc3QgY2hhciopY29vcFZhbHVlIHdpdGhDT0VQVmFsdWU6KGNvbnN0IGNo
YXIqKWNvZXBWYWx1ZTsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFBTT05TY2hlbWUKQEAgLTI3
OSwxMSArMjgwLDEzIEBAIC0gKHZvaWQpYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6KE5TU3RyaW5n
ICopdXJsU3RyaW5nIHRvRGF0YTooY29uc3QgY2hhciopZGF0YQogICAgIF9kYXRhTWFwcGluZ3Mu
c2V0KHVybFN0cmluZywgW05TRGF0YSBkYXRhV2l0aEJ5dGVzTm9Db3B5Oih2b2lkKilkYXRhIGxl
bmd0aDpzdHJsZW4oZGF0YSkgZnJlZVdoZW5Eb25lOk5PXSk7CiB9CiAKLS0gKHZvaWQpYWRkTWFw
cGluZ0Zyb21VUkxTdHJpbmc6KE5TU3RyaW5nICopdXJsU3RyaW5nIHRvRGF0YTooY29uc3QgY2hh
ciopZGF0YSB3aXRoQ09PUFZhbHVlOihjb25zdCBjaGFyKiljb29wVmFsdWUKKy0gKHZvaWQpYWRk
TWFwcGluZ0Zyb21VUkxTdHJpbmc6KE5TU3RyaW5nICopdXJsU3RyaW5nIHRvRGF0YTooY29uc3Qg
Y2hhciopZGF0YSB3aXRoQ09PUFZhbHVlOihjb25zdCBjaGFyKiljb29wVmFsdWUgd2l0aENPRVBW
YWx1ZTooY29uc3QgY2hhciopY29lcFZhbHVlCiB7CiAgICAgW3NlbGYgYWRkTWFwcGluZ0Zyb21V
UkxTdHJpbmc6dXJsU3RyaW5nIHRvRGF0YTpkYXRhXTsKICAgICBpZiAoY29vcFZhbHVlKQogICAg
ICAgICBfY29vcFZhbHVlcy5hZGQodXJsU3RyaW5nLCBjb29wVmFsdWUpOworICAgIGlmIChjb2Vw
VmFsdWUpCisgICAgICAgIF9jb2VwVmFsdWVzLmFkZCh1cmxTdHJpbmcsIGNvZXBWYWx1ZSk7CiB9
CiAKIC0gKHZvaWQpc2V0U2hvdWxkUmVzcG9uZEFzeW5jaHJvbm91c2x5OihCT09MKXZhbHVlCkBA
IC0zMjcsNiArMzMwLDkgQEAgLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHN0
YXJ0VVJMU2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4pdGEKICAgICAgICAgYXV0byBj
b29wVmFsdWUgPSBfY29vcFZhbHVlcy5nZXQoW2ZpbmFsVVJMIGFic29sdXRlU3RyaW5nXSk7CiAg
ICAgICAgIGlmICghY29vcFZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIFtoZWFkZXJEaWN0
aW9uYXJ5IHNldE9iamVjdDooTlNTdHJpbmcgKiljb29wVmFsdWUgZm9yS2V5OkAiQ3Jvc3MtT3Jp
Z2luLU9wZW5lci1Qb2xpY3kiXTsKKyAgICAgICAgYXV0byBjb2VwVmFsdWUgPSBfY29lcFZhbHVl
cy5nZXQoW2ZpbmFsVVJMIGFic29sdXRlU3RyaW5nXSk7CisgICAgICAgIGlmICghY29lcFZhbHVl
LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIFtoZWFkZXJEaWN0aW9uYXJ5IHNldE9iamVjdDooTlNT
dHJpbmcgKiljb2VwVmFsdWUgZm9yS2V5OkAiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJd
OwogCiAgICAgICAgIGF1dG8gcmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNIVFRQVVJMUmVzcG9uc2Ug
YWxsb2NdIGluaXRXaXRoVVJMOmZpbmFsVVJMLmdldCgpIHN0YXR1c0NvZGU6MjAwIEhUVFBWZXJz
aW9uOkAiSFRUUC8xLjEiIGhlYWRlckZpZWxkczpoZWFkZXJEaWN0aW9uYXJ5XSk7CiAgICAgICAg
IFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTpyZXNwb25zZS5nZXQoKV07CkBAIC03MTkxLDM2ICs3
MTk3LDM5IEBAIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogZW51bSBjbGFzcyBJc1Nh
bWVPcmlnaW4gOiBib29sIHsgTm8sIFllcyB9OwogZW51bSBjbGFzcyBEb1NlcnZlclNpZGVSZWRp
cmVjdCA6IGJvb2wgeyBObywgWWVzIH07Ci1zdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09PUCwg
SXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJT
aWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKK3N0YXRpYyB2b2lkIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNl
Q09FUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlv
bkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRv
U2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCiB7CiAgICAgYXV0byBw
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBwc29uUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCk7
CiAgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBf
aW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pOwor
ICAgIGJvb2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gc291cmNlQ09PUCAm
JiAhc3RyY21wKHNvdXJjZUNPT1AsICJzYW1lLW9yaWdpbiIpICYmIHNvdXJjZUNPRVAgJiYgIXN0
cmNtcChzb3VyY2VDT0VQLCAicmVxdWlyZS1jb3JwIik7CisgICAgYm9vbCBkZXN0aW5hdGlvblNo
b3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IGRlc3RpbmF0aW9uQ09PUCAmJiAhc3RyY21wKGRl
c3RpbmF0aW9uQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgZGVzdGluYXRpb25DT0VQICYmICFzdHJj
bXAoZGVzdGluYXRpb25DT0VQLCAicmVxdWlyZS1jb3JwIik7CisgICAgRVhQRUNUX1RSVUUoc291
cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID09IGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9z
c09yaWdpbklzb2xhdGVkIHx8IGV4cGVjdFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVzKTsKIAogICAg
IGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNz
UG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwogICAg
IGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBf
ZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7Ci0gICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVh
bFRvU3RyaW5nOkAiQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lFbmFibGVkIl0pIHsKKyAgICAgICAg
aWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJDcm9zc09yaWdpbk9wZW5lclBvbGlj
eUVuYWJsZWQiXSkKKyAgICAgICAgICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAg
ICAgICBlbHNlIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiQ3Jvc3NPcmlnaW5F
bWJlZGRlclBvbGljeUVuYWJsZWQiXSkKICAgICAgICAgICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZl
YXR1cmVdOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KICAgICB9CiAKICAgICBhdXRv
IGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIGlmIChp
c1NhbWVPcmlnaW4gPT0gSXNTYW1lT3JpZ2luOjpZZXMpIHsKLSAgICAgICAgW2hhbmRsZXIgYWRk
TWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0
b0RhdGE6d2luZG93T3BlblNhbWVPcmlnaW5DT09QVGVzdEJ5dGVzIHdpdGhDT09QVmFsdWU6c291
cmNlQ09PUF07CisgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNv
bjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOndpbmRvd09wZW5TYW1lT3JpZ2lu
Q09PUFRlc3RCeXRlcyB3aXRoQ09PUFZhbHVlOnNvdXJjZUNPT1Agd2l0aENPRVBWYWx1ZTpzb3Vy
Y2VDT0VQXTsKICAgICAgICAgaWYgKGRvU2VydmVyU2lkZVJlZGlyZWN0ID09IERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpZZXMpIHsKICAgICAgICAgICAgIFtoYW5kbGVyIGFkZFJlZGlyZWN0RnJvbVVS
TFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9wb3B1cC5odG1sIiB0b1VSTFN0cmluZzpA
InBzb246Ly93d3cud2Via2l0Lm9yZy9wb3B1cC1hZnRlci1yZWRpcmVjdC5odG1sIl07Ci0gICAg
ICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Vi
a2l0Lm9yZy9wb3B1cC1hZnRlci1yZWRpcmVjdC5odG1sIiB0b0RhdGE6InBvcHVwIiB3aXRoQ09P
UFZhbHVlOmRlc3RpbmF0aW9uQ09PUF07CisgICAgICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5n
RnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9wb3B1cC1hZnRlci1yZWRpcmVj
dC5odG1sIiB0b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9uQ09PUCB3aXRo
Q09FUFZhbHVlOmRlc3RpbmF0aW9uQ09FUF07CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
W2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcv
cG9wdXAuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1Bd
OworICAgICAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8v
d3d3LndlYmtpdC5vcmcvcG9wdXAuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpk
ZXN0aW5hdGlvbkNPT1Agd2l0aENPRVBWYWx1ZTpkZXN0aW5hdGlvbkNPRVBdOwogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3
dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOndpbmRvd09wZW5Dcm9zc09yaWdpbkNPT1BU
ZXN0Qnl0ZXMgd2l0aENPT1BWYWx1ZTpzb3VyY2VDT09QXTsKKyAgICAgICAgW2hhbmRsZXIgYWRk
TWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0
b0RhdGE6d2luZG93T3BlbkNyb3NzT3JpZ2luQ09PUFRlc3RCeXRlcyB3aXRoQ09PUFZhbHVlOnNv
dXJjZUNPT1Agd2l0aENPRVBWYWx1ZTpzb3VyY2VDT0VQXTsKICAgICAgICAgaWYgKGRvU2VydmVy
U2lkZVJlZGlyZWN0ID09IERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMpIHsKICAgICAgICAgICAg
IFtoYW5kbGVyIGFkZFJlZGlyZWN0RnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29t
L3BvcHVwLmh0bWwiIHRvVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAtYWZ0
ZXItcmVkaXJlY3QuaHRtbCJdOwotICAgICAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21V
UkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC1hZnRlci1yZWRpcmVjdC5odG1s
IiB0b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9uQ09PUF07CisgICAgICAg
ICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUu
Y29tL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFs
dWU6ZGVzdGluYXRpb25DT09QIHdpdGhDT0VQVmFsdWU6ZGVzdGluYXRpb25DT0VQXTsKICAgICAg
ICAgfSBlbHNlCi0gICAgICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpA
InBzb246Ly93d3cuYXBwbGUuY29tL3BvcHVwLmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09Q
VmFsdWU6ZGVzdGluYXRpb25DT09QXTsKKyAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdG
cm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAuaHRtbCIgdG9EYXRhOiJw
b3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1Agd2l0aENPRVBWYWx1ZTpkZXN0aW5h
dGlvbkNPRVBdOwogICAgIH0KICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1l
SGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKIApAQCAtNzI5MCw2
ICs3Mjk5LDI2IEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hh
ciogc291cmNlQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRpCiAgICAgICAgIGZpbmlzaGVkUnVu
bmluZ1NjcmlwdCA9IHRydWU7CiAgICAgfV07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQpOworICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZh
bHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInNlbGYuY3Jvc3NPcmlnaW5J
c29sYXRlZCA/ICdpc29sYXRlZCcgOiAnbm90LWlzb2xhdGVkJyIgY29tcGxldGlvbkhhbmRsZXI6
IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAqY3Jv
c3NPcmlnaW5Jc29sYXRlZCA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYgKHNvdXJj
ZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCkKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJF
UShAImlzb2xhdGVkIiwgY3Jvc3NPcmlnaW5Jc29sYXRlZCk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIEVYUEVDVF9XS19TVFJFUShAIm5vdC1pc29sYXRlZCIsIGNyb3NzT3JpZ2luSXNvbGF0
ZWQpOworICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKKyAgICBm
aW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFT
Y3JpcHQ6QCJzZWxmLlNoYXJlZEFycmF5QnVmZmVyID8gJ2hhcy1zYWInIDogJ2RvZXMtbm90LWhh
dmUtc2FiJyIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJv
cikgeworICAgICAgICBOU1N0cmluZyAqaGFzU0FCID0gKE5TU3RyaW5nICopcmVzdWx0OworICAg
ICAgICBpZiAoc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkKQorICAgICAgICAgICAg
RVhQRUNUX1dLX1NUUkVRKEAiaGFzLXNhYiIsIGhhc1NBQik7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIEVYUEVDVF9XS19TVFJFUShAImRvZXMtbm90LWhhdmUtc2FiIiwgaGFzU0FCKTsKKyAg
ICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7CiAKICAgICAvLyBPcGVu
ZWUgc2hvdWxkIG5vdCBoYXZlIGFuIG9wZW5lciBvciBhIG5hbWUuCiAgICAgZmluaXNoZWRSdW5u
aW5nU2NyaXB0ID0gZmFsc2U7CkBAIC03MzIwLDg3ICs3MzQ5LDIzNSBAQCBzdGF0aWMgdm9pZCBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIq
IGRlc3RpbmF0aQogICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOwogICAgIH1d
OwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsK
KyAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSBmYWxzZTsKKyAgICBbY3JlYXRlZFdlYlZpZXcg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAic2VsZi5jcm9zc09yaWdpbklzb2xhdGVkID8gJ2lzb2xhdGVk
JyA6ICdub3QtaXNvbGF0ZWQnIiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQsIE5T
RXJyb3IgKmVycm9yKSB7CisgICAgICAgIE5TU3RyaW5nICpjcm9zc09yaWdpbklzb2xhdGVkID0g
KE5TU3RyaW5nICopcmVzdWx0OworICAgICAgICBpZiAoZGVzdGluYXRpb25TaG91bGRCZUNyb3Nz
T3JpZ2luSXNvbGF0ZWQpCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJpc29sYXRlZCIs
IGNyb3NzT3JpZ2luSXNvbGF0ZWQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBFWFBFQ1Rf
V0tfU1RSRVEoQCJub3QtaXNvbGF0ZWQiLCBjcm9zc09yaWdpbklzb2xhdGVkKTsKKyAgICAgICAg
ZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7CisgICAgZmluaXNoZWRSdW5uaW5n
U2NyaXB0ID0gZmFsc2U7CisgICAgW2NyZWF0ZWRXZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpA
InNlbGYuU2hhcmVkQXJyYXlCdWZmZXIgPyAnaGFzLXNhYicgOiAnZG9lcy1ub3QtaGF2ZS1zYWIn
IiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7Cisg
ICAgICAgIE5TU3RyaW5nICpoYXNTQUIgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlm
IChkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCkKKyAgICAgICAgICAgIEVY
UEVDVF9XS19TVFJFUShAImhhcy1zYWIiLCBoYXNTQUIpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJkb2VzLW5vdC1oYXZlLXNhYiIsIGhhc1NBQik7CisgICAg
ICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQpOwogCiAgICAgY3JlYXRlZFdl
YlZpZXcgPSBudWxscHRyOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxs
cHRyLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVs
bHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQoreworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1u
b25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5U
b0NPT1BTYW1lT3JpZ2luNCkKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUt
bm9uZSIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QQW5kQ09F
UFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxs
cHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0ciwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luMykKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1
bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikK
K3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNv
cnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAi
LCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5z
YWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cit9CisK
K1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
QWxsb3dQb3B1cDMpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luQWxsb3dQb3B1cDQpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZl
LW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2lu
RnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbkFsbG93UG9wdXApCit7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAicmVxdWlyZS1jb3JwIiwgbnVs
bHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmln
aW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCit7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmln
aW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCit7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmln
aW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3Jp
Z2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVp
cmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdp
blRvQ09PUFNhbWVPcmlnaW4pCit7CisgICAgLy8gU2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgZGVz
dGluYXRpb24gaXMgbWlzc2luZyBDT0VQLgorICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCit7CisgICAgLy8gU2hvdWxkIHN3YXAgYmVj
YXVzZSB0aGUgc291cmNlIGlzIG1pc3NpbmcgQ09FUC4KKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAi
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2Ug
ZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1l
LW9yaWdpbi4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJzYW1l
LW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRv
Q09PUEFuZENPRVBTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQoreworICAgIC8vIFdlIGV4cGVjdCBh
IHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4g
YW5kIENPRVA9cmVxdWlyZS1jb3JwLgorICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6
WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5XaXRob3V0
Q09PUFdpdGhSZWRpcmVjdCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBF
eHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxs
cHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QobnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3Jp
Z2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJzYW1l
LW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIs
IG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCit7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4i
LCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdD
cm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW40KQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1u
b25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5U
b0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51
bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdp
bikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIs
IG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luMykKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKwor
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
NCkKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUt
bm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikK
K3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNv
cnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAic2FtZS1vcmlnaW4iLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2Ft
ZU9yaWdpbikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJy
ZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1l
T3JpZ2luVG9DT09QU2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29y
cCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdp
bkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRy
LCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCit7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZl
LW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDQpCit7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAi
dW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGM5ZDUxNDFmYTc3NWExMDJjY2FmMzNjMGQ4MjE2
ZmRmZGRhOWJiNzEuLmMzOTk2MmUyZjA1ZmJhNWRhMmZjM2RiNWVlZjdjMjY0OWQ1NWE1ODMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA4LTI3
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIFNoYXJl
ZEFycmF5QnVmZmVyIHN1cHBvcnQgd2hlbiBDT09QL0NPRVAgaGVhZGVycyBhcmUgdXNlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NTU5CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS84MjM5MTk0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2VsaW5lIGEgZmV3IHdlYi1wbGF0Zm9ybS10ZXN0
cyBub3cgdGhhdCB3aW5kb3cuY3Jvc3NPcmlnaW5Jc29sYXRlZCBwcm9wZXJseSByZXR1cm5zCisg
ICAgICAgIHRydWUgd2hlbiBDT09QK0NPRVAgYXJlIHVzZWQuCisKKyAgICAgICAgTm90ZSB0aGF0
IFNoYXJlZEFycmF5QnVmZmVyIGFyZSBhbHJlYWR5IGZvcmNlZnVsbHkgZW5hYmxlZCBieSBydW4t
d2Via2l0LXRlc3RzLnB5IHdoZW4gcnVubmluZworICAgICAgICB0aGUgbGF5b3V0IHRlc3RzLCB3
aGljaCBpcyB3aHkgdGhlcmUgYXJlIG5vdCBtb3JlIGxheW91dCB0ZXN0IHJlc3VsdHMgY2hhbmdl
cy4gQXQgc29tZSBwb2ludCwKKyAgICAgICAgd2Ugc2hvdWxkIHN0b3AgZm9yY2VmdWxseSBlbmFi
bGluZyBTaGFyZWRBcnJheUJ1ZmZlciB3aGVuIHJ1bm5pbmcgd2ViLXBsYXRmb3JtLXRlc3RzIGF0
IGxlYXN0LAorICAgICAgICBzaW5jZSBXUFQgdGVzdHMgYWxyZWFkeSBtYWtlIHN1cmUgdG8gdXNl
IENPT1ArQ09FUCB3aGVuIHRlc3RpbmcgU2hhcmVkQXJyYXlCdWZmZXIuCisKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3NlcmlhbGl6ZS1zaGFyZWRhcnJheWJ1ZmZlci10
aHJvd3MuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkLXBl
cm1pc3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICBOb3RlIHRoYXQgc29tZSBzdWJ0
ZXN0cyBhcmUgZmFpbGluZyBiZWNhdXNlIHdlIGRvbid0IHN1cHBvcnQgdGhlIFBlcm1pc3Npb25z
LVBvbGljeSBIVFRQIGhlYWRlcjoKKyAgICAgICAgLSBodHRwczovL3czYy5naXRodWIuaW8vd2Vi
YXBwc2VjLXBlcm1pc3Npb25zLXBvbGljeS8KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0
OgorCiAyMDIxLTA4LTMxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJlc3luYyB3ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvc2VyaWFs
aXplLXNoYXJlZGFycmF5YnVmZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zZXJpYWxpemUt
c2hhcmVkYXJyYXlidWZmZXItdGhyb3dzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBhY2MwNDY0
NjAzYjEwY2QwOWJkMTdmMDRiMmVmNmRjNDg0MzVkMjM1Li42ZDBiYjY2ZmFmMWM0YTk2ZjBhYmRi
YTk3Zjk2MTVmNmY5ZjMzNzRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJyYXlidWZmZXIt
dGhyb3dzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJyYXlidWZmZXIt
dGhyb3dzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDUgQEAKIAotRkFJTCBJbmRleGVk
REI6IEF0dGVtcHRpbmcgdG8gc2VyaWFsaXplIGEgU2hhcmVkQXJyYXlCdWZmZXIgc2hvdWxkIHRo
cm93IGFzc2VydF90cnVlOiBUaGUgcGFnZSBpcyBzZXJ2ZWQgd2l0aCBDT09QIGFuZCBDT0VQLCBp
dCBzaG91bGQgYmUgY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQorRkFJTCBJbmRleGVkREI6IEF0dGVtcHRpbmcgdG8gc2VyaWFsaXplIGEgU2hhcmVkQXJyYXlC
dWZmZXIgc2hvdWxkIHRocm93IGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4gewor
ICAgICAgICAgICAgcnEgPSBvYmpTdG9yZS5wdXQoe3NhYjogc2FifSwgJ2tleScpOworICAgICAg
ICB9IiB0aHJldyBvYmplY3QgIkRhdGFFcnJvcjogRmFpbGVkIHRvIHN0b3JlIHJlY29yZCBpbiBh
biBJREJPYmplY3RTdG9yZTogVGhlIG9iamVjdCBzdG9yZSB1c2VzIGluLWxpbmUga2V5cyBhbmQg
dGhlIGtleSBwYXJhbWV0ZXIgd2FzIHByb3ZpZGVkLiIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRp
b24gRGF0YUNsb25lRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAwLCBleHBlY3Rl
ZCAyNQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9jcm9zcy1vcmlnaW4taXNv
bGF0ZWQtcGVybWlzc2lvbi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGlj
eS9jcm9zcy1vcmlnaW4taXNvbGF0ZWQtcGVybWlzc2lvbi5odHRwcy1leHBlY3RlZC50eHQKaW5k
ZXggM2I3NzY2MTMzODk0MDdlZGM0MzgyZDhiODJlNmY3YjBkOWYyZTcyYy4uZTYwZTQyYmZiMTBl
ODg3YTBiOGJkMzVmNzRiZmY4NjJkMGI2OTQ2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1w
b2xpY3kvY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkLXBlcm1pc3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
cm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNz
aW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwyNCArMSwyNCBAQAogCi1GQUlMIGZyYW1lOiBv
cmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZCBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6IG9yaWdpbiA9
IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKiBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxo
b3N0Ojk0NDMsIHZhbHVlID0gc2VsZiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBn
b3QgZmFsc2UKLVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZh
bHVlID0gKFwpCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2
YWx1ZSA9IHVuZGVmaW5lZAotUEFTUyBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly8xMjcuMC4wLjE6
OTQ0MywgdmFsdWUgPSAqCi1QQVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5
NDQzLCB2YWx1ZSA9IHNlbGYKLVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vMTI3LjAuMC4x
Ojk0NDMsIHZhbHVlID0gKFwpCi1GQUlMIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGh0dHBz
LCB2YWx1ZSA9IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3Qg
ZmFsc2UKLUZBSUwgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gaHR0cHMsIHZhbHVlID0gKiBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZGVkaWNhdGVk
IHdvcmtlcjogc2NoZW1lID0gaHR0cHMsIHZhbHVlID0gc2VsZiBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLVBBU1MgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0g
aHR0cHMsIHZhbHVlID0gKFwpCi1QQVNTIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGRhdGEs
IHZhbHVlID0gdW5kZWZpbmVkCi1QQVNTIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGRhdGEs
IHZhbHVlID0gKgotUEFTUyBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBkYXRhLCB2YWx1ZSA9
IHNlbGYKLVBBU1MgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gZGF0YSwgdmFsdWUgPSAoXCkK
LUZBSUwgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gYmxvYiwgdmFsdWUgPSB1bmRlZmluZWQg
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlCi1GQUlMIGRlZGljYXRl
ZCB3b3JrZXI6IHNjaGVtZSA9IGJsb2IsIHZhbHVlID0gKiBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gYmxv
YiwgdmFsdWUgPSBzZWxmIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxz
ZQotUEFTUyBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBibG9iLCB2YWx1ZSA9IChcKQorUEFT
UyBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MywgdmFsdWUgPSB1bmRlZmlu
ZWQKK1BBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0g
KgorUEFTUyBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MywgdmFsdWUgPSBz
ZWxmCitGQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9
IChcKSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKK0ZBSUwgZnJh
bWU6IG9yaWdpbiA9IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMsIHZhbHVlID0gdW5kZWZpbmVkIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBmcmFtZTogb3Jp
Z2luID0gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSAqIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly8x
MjcuMC4wLjE6OTQ0MywgdmFsdWUgPSBzZWxmIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNl
IGJ1dCBnb3QgdHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0
MywgdmFsdWUgPSAoXCkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVl
CitQQVNTIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGh0dHBzLCB2YWx1ZSA9IHVuZGVmaW5l
ZAorUEFTUyBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBodHRwcywgdmFsdWUgPSAqCitQQVNT
IGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGh0dHBzLCB2YWx1ZSA9IHNlbGYKK0ZBSUwgZGVk
aWNhdGVkIHdvcmtlcjogc2NoZW1lID0gaHR0cHMsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hl
bWUgPSBkYXRhLCB2YWx1ZSA9IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxz
ZSBidXQgZ290IHRydWUKK0ZBSUwgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gZGF0YSwgdmFs
dWUgPSAqIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBk
ZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBkYXRhLCB2YWx1ZSA9IHNlbGYgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitGQUlMIGRlZGljYXRlZCB3b3JrZXI6IHNj
aGVtZSA9IGRhdGEsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1
dCBnb3QgdHJ1ZQorUEFTUyBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBibG9iLCB2YWx1ZSA9
IHVuZGVmaW5lZAorUEFTUyBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBibG9iLCB2YWx1ZSA9
ICoKK1BBU1MgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gYmxvYiwgdmFsdWUgPSBzZWxmCitG
QUlMIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGJsb2IsIHZhbHVlID0gKFwpIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQogRkFJTCBzaGFyZWQgd29ya2VyOiB3
aXRoQ29vcENvZXAgPSBmYWxzZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKIEZB
SUwgc2hhcmVkIHdvcmtlcjogd2l0aENvb3BDb2VwID0gdHJ1ZSBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBTaGFyZWRXb3JrZXIKIEZBSUwgc2VydmljZSB3b3JrZXI6IHdpdGhDb29wQ29lcCA9IGZhbHNl
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChib29sZWFuKSBmYWxzZSBidXQgZ290ICh1bmRlZmlu
ZWQpIHVuZGVmaW5lZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0
CmluZGV4IGI0MzljZGM5NzM1NmZkOTI1MTAwNDcxOWM5YWRhNGI0NGU0ZDY3YjEuLmRkYzhmYzMx
ODYxZmQ2NzE5ZjQ3NGU2OWU4NDIxNDYxM2E3MDNiOGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVy
LXBvbGljeS9jb2VwLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kv
Y29lcC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTcsNSArNyw1IEBAIFBBU1MgU2FtZS1vcmlnaW4g
cG9wdXAgd2l0aCBjb29wIHVuc2FmZS1ub25lIHdpdGhvdXQgY29lcAogUEFTUyBoaXN0b3JpY2Fs
OiAic2FtZS1zaXRlIiBwb3B1cCB3aXRoIGNvb3AgdW5zYWZlLW5vbmUgd2l0aG91dCBjb2VwCiBQ
QVNTIFNhbWUtb3JpZ2luIHBvcHVwIHdpdGhvdXQgY29lcAogUEFTUyBoaXN0b3JpY2FsOiAic2Ft
ZS1zaXRlIiBwb3B1cCB3aXRob3V0IGNvZXAKLUZBSUwgQm9udXM6IHdpbmRvdy5jcm9zc09yaWdp
bklzb2xhdGVkIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBCb251
czogd2luZG93LmNyb3NzT3JpZ2luSXNvbGF0ZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9zZXJpYWxpemUtc2hhcmVkYXJyYXlidWZmZXItdGhyb3dzLmh0dHBzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvc2VyaWFsaXplLXNoYXJlZGFycmF5YnVmZmVyLXRocm93cy5odHRwcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWNjMDQ2NDYwM2IxMGNkMDliZDE3ZjA0YjJlZjZkYzQ4
NDM1ZDIzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvc2VyaWFsaXplLXNoYXJl
ZGFycmF5YnVmZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K0ZBSUwgSW5kZXhlZERCOiBBdHRlbXB0aW5nIHRvIHNlcmlhbGl6ZSBhIFNoYXJlZEFycmF5QnVm
ZmVyIHNob3VsZCB0aHJvdyBhc3NlcnRfdHJ1ZTogVGhlIHBhZ2UgaXMgc2VydmVkIHdpdGggQ09P
UCBhbmQgQ09FUCwgaXQgc2hvdWxkIGJlIGNyb3NzLW9yaWdpbi1pc29sYXRlZC4gZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436957</attachid>
            <date>2021-08-31 16:01:19 -0700</date>
            <delta_ts>2021-08-31 16:53:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229559-20210831160118.patch</filename>
            <type>text/plain</type>
            <size>105278</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxODIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQzMTFhYjQwNzcxMDc0
ZWI4MzkyNWY1YzhhY2NiMjEyZjhjNmExMi4uZGM0MzBiMzVmNWM2NWMwYzlkMDQ5ODQxNjA5OGEz
N2UzMzRlM2NiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA4LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIFNoYXJlZEFycmF5
QnVmZmVyIHN1cHBvcnQgd2hlbiBDT09QL0NPRVAgaGVhZGVycyBhcmUgdXNlZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NTU5CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84MjM5MTk0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlz
dGVuc2VuLgorCisgICAgICAgIE1ha2Ugc3VyZSB3aW5kb3cuY3Jvc3NPcmlnaW5Jc29sYXRlZCBy
ZXR1cm5zIHRydWUgd2hlbiBDT09QPXNhbWUtb3JpZ2luIGFuZAorICAgICAgICBDT0VQPXJlcXVp
cmUtY29ycCBhcmUgdXNlZC4gQWxzbyBtYWtlIHN1cmUgdGhhdCBjcm9zcy1vcmlnaW4taXNvbGF0
ZXMgcGFnZXMKKyAgICAgICAgYXJlIGFsbG93ZWQgdG8gdXNlIFNoYXJlZEFycmF5QnVmZmVyLgor
CisgICAgICAgIENoYW5nZSBpcyBjb3ZlcmVkIGJ5IHJlYmFzZWxpbmVkIGxheW91dCB0ZXN0cyBh
bmQgbmV3IEFQSSB0ZXN0cy4KKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjp0b05lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gpOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAg
ICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAg
ICAgICogbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIv
RnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrQ29u
dGVudFBvbGljeSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgICog
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
VHlwZXMuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpET01XaW5kb3c6OmNyb3NzT3JpZ2luSXNvbGF0ZWQgY29uc3QpOgorICAgICAgICAqIHBhZ2Uv
RE9NV2luZG93LmlkbDoKKwogMjAyMS0wOC0zMSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxl
LmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjgxNzcxKTogQVNTRVJUSU9OIEZBSUxFRDog
IW1fZGVsZXRpb25IYXNCZWd1biB1bmRlciBXZWJDb3JlOjpQZXJtaXNzaW9uczo6flBlcm1pc3Np
b25zKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggYTlmOTc0MDBlZTMxOTIyNzFkMWQ2NDYxMjdiYmJhZmYyZDE5ZDQ1
Ni4uNmY5NGYyYTMwNzExZGM4NDYxZjJkODU4MzQ3MGNlOTM2YjZmMjBkOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw2NSBAQAorMjAyMS0wOC0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIEVuYWJsZSBTaGFyZWRBcnJheUJ1ZmZlciBzdXBwb3J0IHdoZW4gQ09PUC9D
T0VQIGhlYWRlcnMgYXJlIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyOTU1OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIzOTE5NDU+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBNYWtlIHN1
cmUgd2luZG93LmNyb3NzT3JpZ2luSXNvbGF0ZWQgcmV0dXJucyB0cnVlIHdoZW4gQ09PUD1zYW1l
LW9yaWdpbiBhbmQKKyAgICAgICAgQ09FUD1yZXF1aXJlLWNvcnAgYXJlIHVzZWQuIEFsc28gbWFr
ZSBzdXJlIHRoYXQgY3Jvc3Mtb3JpZ2luLWlzb2xhdGVzIHBhZ2VzCisgICAgICAgIGFyZSBhbGxv
d2VkIHRvIHVzZSBTaGFyZWRBcnJheUJ1ZmZlci4KKworICAgICAgICBXaGVuIHRoZSBXZWJQcm9j
ZXNzIGRldGVybWluZXMgaXQgbmVlZHMgdG8gc3dpdGNoIGJyb3dzaW5nIGNvbnRleHQgZ3JvdXAg
aXQKKyAgICAgICAgbm93IHNlbmRzIGEgTmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaDo6
WWVzV2l0aG91dENyb3NzT3JpZ2luSXNvbGF0aW9uIC8KKyAgICAgICAgTmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaDo6WWVzV2l0aENyb3NzT3JpZ2luSXNvbGF0aW9uIGVudW0gdmFsdWUg
dG8KKyAgICAgICAgdGhlIFVJUHJvY2VzcyB3aXRoIHRoZSBEZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZSBJUEMgaW5zdGVhZCBvZiBhIHNpbXBsZQorICAgICAgICBib29sZWFuLiBXZSBzZW5kIFllc1dp
dGhvdXRDcm9zc09yaWdpbklzb2xhdGlvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uCisgICAgICAgIGRl
c3RpbmF0aW9uIHdpbGwgYmUgY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkIGR1ZSB0byBDT09QPXNhbWUt
b3JpZ2luIGFuZAorICAgICAgICBDT0VQPXJlcXVpcmUtY29ycC4gSW4gdGhlIFVJUHJvY2Vzcywg
d2hlbiBZZXNXaXRoQ3Jvc3NPcmlnaW5Jc29sYXRpb24gaXMKKyAgICAgICAgcmVjZWl2ZWQsIHdl
IHRha2UgY2FyZSBvZiBsYXVuY2hpbmcgYSBmcmVzaCBXZWJQcm9jZXNzIChuZXZlciByZWN5Y2xp
bmcgYW4KKyAgICAgICAgZXhpc3RpbmcgV2ViUHJvY2VzcykgYW5kIHdlIG1ha2UgdGhpcyBXZWJQ
cm9jZXNzIGFzIGNyb3NzLW9yaWdpbi1pc29sYXRlZC4KKyAgICAgICAgV2hlbiBhIHByb2Nlc3Mg
aXMgY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkLCB3ZSBwYXNzIGl0IGEgWFBDIGZsYWcgb24gbGF1bmNo
CisgICAgICAgIHRvIGFsbG93IHRoZSBwcm9jZXNzIHRvIHVzZSBTaGFyZWRBcnJheUJ1ZmZlci4g
V2UgdXNlIGFuIFhQQyBmbGFnIGJlY2F1c2UKKyAgICAgICAgSlNDIE9wdGlvbnMgbmVlZCB0byBi
ZSBzZXQgYmVmb3JlIEpTQzo6aW5pdGlhbGl6ZSgpIGlzIGNhbGxlZCwgd2hpY2ggb2NjdXJzCisg
ICAgICAgIGR1cmluZyBYUEMgc2VydmljZSBpbml0aWFsaXphdGlvbi4gV2hlbiBhIFdlYlByb2Nl
c3MgaXMgbWFya2VkIGFzCisgICAgICAgIGNyb3NzLW9yaWdpbi1pc29sYXRlZCwgd2UgbWFrZSBz
dXJlIHRvIG5ldmVyIGNhY2hlIGl0IHNvIGl0IGNhbm5vdCBiZQorICAgICAgICByZWN5Y2xlZCBm
b3IgYSBuZXcgbmF2aWdhdGlvbiAoZ2l2ZW4gdGhhdCBpdCBoYXMgc3BlY2lhbCBwZXJtaXNzaW9u
IHRvIHVzZQorICAgICAgICBTaGFyZWRBcnJheUJ1ZmZlcikuCisKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAg
ICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2Vydmlj
ZUVudHJ5UG9pbnQuaDoKKyAgICAgICAgKFdlYktpdDo6WFBDU2VydmljZUluaXRpYWxpemVyKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmg6CisgICAgICAg
IChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50OjpzaG91bGRFbmFibGVTaGFyZWRBcnJh
eUJ1ZmZlciBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNz
TGF1bmNoZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNo
UHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJl
c3BvbnNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6U3VzcGVuZGVkUGFnZVByb3h5OjpmaW5kUmV1c2FibGVTdXNwZW5kZWRQYWdlUHJvY2Vzcyk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVXZWJQYWdlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpjcmVh
dGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZUZvclNlcnZpY2VX
b3JrZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNhbkJlQWRkZWRUb1dlYlBy
b2Nlc3NDYWNoZSBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmlzQ3Jvc3NPcmlnaW5Jc29sYXRl
ZCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKIDIwMjEtMDgtMzEgIFNpaHVp
IExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI4MTc3
MSk6IEFTU0VSVElPTiBGQUlMRUQ6ICFtX2RlbGV0aW9uSGFzQmVndW4gdW5kZXIgV2ViQ29yZTo6
UGVybWlzc2lvbnM6On5QZXJtaXNzaW9ucygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5k
ZXggZTRlOGE0Y2ZjMmU4NTdlODgzYWY3NzUxY2I1MjNmNTU3ZDdjMTY4OS4uNWM3MGRhZWNjN2Jk
OGM4ZjNlYTBkZDhhMWMwNmU5MDk5ZjBhNGViNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA4LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgRW5hYmxlIFNoYXJlZEFycmF5QnVmZmVyIHN1cHBvcnQgd2hlbiBD
T09QL0NPRVAgaGVhZGVycyBhcmUgdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NTU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjM5MTk0
NT4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKwogMjAyMS0wOC0zMSAg
U2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChy
MjgxNzcxKTogQVNTRVJUSU9OIEZBSUxFRDogIW1fZGVsZXRpb25IYXNCZWd1biB1bmRlciBXZWJD
b3JlOjpQZXJtaXNzaW9uczo6flBlcm1pc3Npb25zKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZwppbmRleCBiMzkxNTE2ZmI0YzViMjEyNmU3ZTRiNjkyMzU1MTM0NDg5NmY5YmRhLi4yMmM3NjJi
ZWNkM2RiNjRlZjUzZjY3MjAxYTAxZTY3ZjU4ZjRlMzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDgtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgU2hhcmVkQXJyYXlCdWZmZXIgc3VwcG9ydCB3
aGVuIENPT1AvQ09FUCBoZWFkZXJzIGFyZSB1c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk1NTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgy
MzkxOTQ1PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAyMS0w
OC0zMSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OIChyMjgxNzcxKTogQVNTRVJUSU9OIEZBSUxFRDogIW1fZGVsZXRpb25IYXNCZWd1biB1bmRl
ciBXZWJDb3JlOjpQZXJtaXNzaW9uczo6flBlcm1pc3Npb25zKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmlu
ZGV4IGY2OGRjN2U0YWVlZTA5YzQyNTg5MWVmNmNkZWZkOTE0NTA1NTExZDIuLjM0NTFjYmVhOTNl
ZmE2MmI2Y2I2MTYxMjY2OGU4Mjc4ZDc1MjM2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtNDM0
LDYgKzQzNCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBk
b20vQ29tbWVudC5oCiAgICAgZG9tL0NvbnRhaW5lck5vZGUuaAogICAgIGRvbS9Db250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlci5oCisgICAgZG9tL0Nyb3NzT3JpZ2luTW9kZS5oCiAgICAgZG9tL0N1
c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmgKICAgICBkb20vRE9NRXhjZXB0aW9uLmgKICAgICBk
b20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGYxYzNkM2FlZmIwNzZiY2JiNzAyMGE1NTFl
NWUyOWZhNGVjMDY0Ni4uNzAyNjEwMzI1YTMzNmY1MTNmYzIxMjY0ZmEwMTc3MzM4ZjRkODhkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTI5NCw2ICsxMjk0LDcgQEAKIAkJNDY3MzAyMDIxQzRFRkU3ODAwQkNCMzU3IC8qIEln
bm9yZU9wZW5zRHVyaW5nVW5sb2FkQ291bnRJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY3MzAyMDExQzRFRkU2NjAwQkNCMzU3IC8q
IElnbm9yZU9wZW5zRHVyaW5nVW5sb2FkQ291bnRJbmNyZW1lbnRlci5oICovOyB9OwogCQk0Njgy
RDIwMDFGNzk3ODMwMDBDODYzREIgLyogU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODJEMUZGMUY3OTc4MjMw
MEM4NjNEQiAvKiBTdG9yZWRDcmVkZW50aWFsc1BvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2ODM0NEUwMUVEREZBQUEwMEI3Nzk1QiAv
KiBET01SZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDY4MzQ0REUxRURERkE1RjAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDY4OEVFM0MyNkREMjYx
MDAwMkFGNUM0IC8qIENyb3NzT3JpZ2luTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDY4OEVFM0EyNkREMjYwQzAwMkFGNUM0IC8qIENyb3NzT3Jp
Z2luTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTQ2OUNDQ0ZFMjY5RDAyMUMwMDZFMDMxNCAvKiBCcm9hZGNhc3RDaGFubmVsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjlDQ0NGQzI2OUQwMjAy
MDA2RTAzMTQgLyogQnJvYWRjYXN0Q2hhbm5lbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2QUFBQTNEMjVEMzYzMjAwMEJBRjQyRiAvKiBBdWRp
b0ZpbGVSZWFkZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDZBQUFBM0EyNUQzNjMxNDAwQkFGNDJGIC8qIEF1ZGlvRmlsZVJlYWRlckNvY29h
LmggKi87IH07CiAJCTQ2QjYzRjZDMUM2RThEMTkwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3Vz
dG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI2
M0Y2QjFDNkU4Q0RGMDAyRTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04MzM1LDYgKzgzMzYsNyBA
QAogCQk0NjgzNDREQzFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERP
TVJlY3RMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY4MzQ0REQxRURE
RkE1RjAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVJl
Y3RMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY4MzQ0REUxRURERkE1
RjAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVJlY3RMaXN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2ODhFRTNBMjZERDI2MEMwMDJBRjVDNCAv
KiBDcm9zc09yaWdpbk1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3Jvc3NPcmlnaW5Nb2RlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2OEI4QkRFMjVDQzg0OTMwMEY2NzgyMiAvKiBK
U0Jhc2VBdWRpb0NvbnRleHRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNCYXNlQXVk
aW9Db250ZXh0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY5Q0ND
RkEyNjlEMDIwMjAwNkUwMzE0IC8qIEJyb2FkY2FzdENoYW5uZWwuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQnJvYWRjYXN0Q2hhbm5lbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ2OUNDQ0ZDMjY5RDAyMDIwMDZFMDMxNCAvKiBCcm9hZGNhc3RDaGFubmVsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEJyb2FkY2FzdENoYW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTI5ODcxLDYgKzI5ODczLDcgQEAKIAkJCQlFMUExNDcwNzExMTAyQjE1MDBFRUMwRjMgLyogQ29u
dGFpbmVyTm9kZUFsZ29yaXRobXMuaCAqLywKIAkJCQk5NzYyN0I4QjE0RkIzQ0VFMDAyQ0RDQTEg
LyogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwICovLAogCQkJCTk3NjI3QjhDMTRGQjND
RUUwMDJDRENBMSAvKiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oICovLAorCQkJCTQ2ODhF
RTNBMjZERDI2MEMwMDJBRjVDNCAvKiBDcm9zc09yaWdpbk1vZGUuaCAqLywKIAkJCQk3Q0Y1NzBD
NjI0OTJCRDQ5MDA4RUIzM0MgLyogQ3VycmVudFNjcmlwdEluY3JlbWVudGVyLmggKi8sCiAJCQkJ
OUI1NkM5QTkxQzg5MzI5QTAwQzQ1NkRGIC8qIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmNw
cCAqLywKIAkJCQk5QjU2QzlBODFDODkzMTI4MDBDNDU2REYgLyogQ3VzdG9tRWxlbWVudFJlYWN0
aW9uUXVldWUuaCAqLywKQEAgLTMxNDk5LDYgKzMxNTAyLDcgQEAKIAkJCQkyRDQ4MUYwMjE0NkI1
QzU1MDBBQTc4MzQgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCUUxQzQxNjEyMEY2NTYyRkQwMDkyRDJGQiAvKiBDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQ2NzJBQTk4MjZCMDk0MzMwMEU2RUMzOCAvKiBDcm9zc09y
aWdpbkVtYmVkZGVyUG9saWN5LmggaW4gSGVhZGVycyAqLywKKwkJCQk0Njg4RUUzQzI2REQyNjEw
MDAyQUY1QzQgLyogQ3Jvc3NPcmlnaW5Nb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjcyQUE5
OTI2QjA5NDNGMDBFNkVDMzggLyogQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxQUJFNjdCMUQwNTgwREIwMDZEODYyRCAvKiBDcm9zc09yaWdpblByZWZsaWdo
dENoZWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzQxNURBMEY2NTVENkYwMDkyRDJGQiAv
KiBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Dcm9zc09yaWdpbk1vZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Dcm9zc09yaWdpbk1vZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNzEwYWY2OWNkMWExMjE0YzU5
NWJhN2I5M2ZmMTdmY2M4ZmRmNmU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0Nyb3NzT3JpZ2luTW9kZS5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworLy8gQ3Jvc3MtT3JpZ2luIGlzb2xhdGlvbiB2aWEgQ09PUCtDT0VQIGhl
YWRlcnMuCitlbnVtIGNsYXNzIENyb3NzT3JpZ2luTW9kZSA6IGJvb2wgeyBTaGFyZWQsIElzb2xh
dGVkIH07CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmNwcAppbmRleCBiYWU5MTEyMmYzZDAyYWNhZjFmNzM2OTliZDNiNjllY2ExNDkwNmEzLi5iN2Q2
NGQyNzJlZDFiZjhiYjk3MzM1NTg5NzcyYTFiZTE5MDg3ZDk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCkBAIC04MSw2ICs4MSw4IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCitzdGF0aWMgc3Rk
OjphdG9taWM8Q3Jvc3NPcmlnaW5Nb2RlPiBnbG9iYWxDcm9zc09yaWdpbk1vZGUgeyBDcm9zc09y
aWdpbk1vZGU6OlNoYXJlZCB9OworCiBzdGF0aWMgTG9jayBhbGxTY3JpcHRFeGVjdXRpb25Db250
ZXh0c01hcExvY2s7CiBzdGF0aWMgSGFzaE1hcDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCo+JiBhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0
c01hcCgpIFdURl9SRVFVSVJFU19MT0NLKGFsbFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzTWFwTG9j
aykKIHsKQEAgLTYyMyw2ICs2MjUsMTYgQEAgU2VydmljZVdvcmtlckNvbnRhaW5lciogU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDo6ZW5zdXJlU2VydmljZVdvcmtlckNvbnRhaW5lcigpCiAKICNlbmRp
ZgogCit2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnNldENyb3NzT3JpZ2luTW9kZShDcm9z
c09yaWdpbk1vZGUgY3Jvc3NPcmlnaW5Nb2RlKQoreworICAgIGdsb2JhbENyb3NzT3JpZ2luTW9k
ZSA9IGNyb3NzT3JpZ2luTW9kZTsKK30KKworQ3Jvc3NPcmlnaW5Nb2RlIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ6OmNyb3NzT3JpZ2luTW9kZSgpCit7CisgICAgcmV0dXJuIGdsb2JhbENyb3NzT3Jp
Z2luTW9kZTsKK30KKwogYm9vbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0VGFza1RvKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFRhc2smJiB0YXNrKQog
ewogICAgIExvY2tlciBsb2NrZXIgeyBhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcExvY2sg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDFl
Y2JjMTM3OWI5YTVhNjg3Njg1NjJkZTgwNmE2M2I2ZDVmYzAxZDEuLjkwYmU0MjE0MzgyYmZkMjQ5
OWM1NTQwNDk3YTYyZjU4NTA3MTJmMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaApAQCAtMjgsNiArMjgsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNs
dWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJDcm9zc09yaWdpbk1vZGUuaCIKICNp
bmNsdWRlICJET01UaW1lci5oIgogI2luY2x1ZGUgIlBlcm1pc3Npb25Db250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbi5oIgpAQCAtMTc0
LDYgKzE3NSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxGb250TG9h
ZFJlcXVlc3Q+IGZvbnRMb2FkUmVxdWVzdChTdHJpbmcmIHVybCwgYm9vbCBpc1NWRywgYm9vbCBp
c0luaXRpYXRpbmdFbGVtZW50SW5Vc2VyQWdlbnRTaGFkb3dUcmVlLCBMb2FkZWRGcm9tT3BhcXVl
U291cmNlKTsKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5Mb2FkaW5nRm9udFNvb24oRm9udExvYWRS
ZXF1ZXN0JikgeyB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRDcm9zc09y
aWdpbk1vZGUoQ3Jvc3NPcmlnaW5Nb2RlKTsKKyAgICBzdGF0aWMgQ3Jvc3NPcmlnaW5Nb2RlIGNy
b3NzT3JpZ2luTW9kZSgpOworCiAgICAgdm9pZCByZWYoKSB7IHJlZlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsgfQogICAgIHZvaWQgZGVyZWYoKSB7IGRlcmVmU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGUy
MzA0YWIwZWJhOWEyNjE4ZjgyNDU2ZDJlZGRmMzIyNDU5MjkxOGYuLmE2MDExNDczMjgzOGQyZWZl
MmYwYjcxMGMzOWJlMzA1YzdkYWE3Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcApAQCAtOTQ4LDYgKzk0OCwxNSBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpyZXNw
b25zZVJlY2VpdmVkKENhY2hlZFJlc291cmNlJiByZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZQog
ICAgIHJlc3BvbnNlUmVjZWl2ZWQocmVzcG9uc2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKIH0KIAorc3RhdGljIEJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24gdG9Ccm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lzaW9uKGNvbnN0IHN0ZDo6b3B0aW9uYWw8Q3Jvc3NP
cmlnaW5PcGVuZXJQb2xpY3lFbmZvcmNlbWVudFJlc3VsdD4mIGN1cnJlbnRDb29wRW5mb3JjZW1l
bnRSZXN1bHQpCit7CisgICAgaWYgKCFjdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0IHx8ICFj
dXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0LT5uZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dp
dGNoKQorICAgICAgICByZXR1cm4gQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbjo6
U3RheUluR3JvdXA7CisgICAgaWYgKGN1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQtPmNyb3Nz
T3JpZ2luT3BlbmVyUG9saWN5LnZhbHVlID09IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWU6
OlNhbWVPcmlnaW5QbHVzQ09FUCkKKyAgICAgICAgcmV0dXJuIEJyb3dzaW5nQ29udGV4dEdyb3Vw
U3dpdGNoRGVjaXNpb246Ok5ld0lzb2xhdGVkR3JvdXA7CisgICAgcmV0dXJuIEJyb3dzaW5nQ29u
dGV4dEdyb3VwU3dpdGNoRGVjaXNpb246Ok5ld1NoYXJlZEdyb3VwOworfQorCiB2b2lkIERvY3Vt
ZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgQVNTRVJUKHJlc3BvbnNlLmNlcnRpZmljYXRlSW5mbygpKTsKQEAgLTEwNDgsOCArMTA1Nyw4
IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpCiAgICAgaWYgKG1haW5SZXNvdXJjZUxvYWRlcikK
ICAgICAgICAgbWFpblJlc291cmNlTG9hZGVyLT5tYXJrSW5Bc3luY1Jlc3BvbnNlUG9saWN5Q2hl
Y2soKTsKICAgICBhdXRvIHJlcXVlc3RJZGVudGlmaWVyID0gUG9saWN5Q2hlY2tJZGVudGlmaWVy
OjpjcmVhdGUoKTsKLSAgICBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggPSBt
X2N1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQgJiYgbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50
UmVzdWx0LT5uZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoOwotICAgIGZyYW1lTG9hZGVy
KCktPmNoZWNrQ29udGVudFBvbGljeShtX3Jlc3BvbnNlLCByZXF1ZXN0SWRlbnRpZmllciwgbmVl
ZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgbWFpblJlc291cmNlTG9hZGVyID0gV1RGTW92ZShtYWluUmVzb3VyY2VMb2Fk
ZXIpLAorICAgIGF1dG8gYnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiA9IHRvQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbihtX2N1cnJlbnRDb29wRW5mb3JjZW1lbnRS
ZXN1bHQpOworICAgIGZyYW1lTG9hZGVyKCktPmNoZWNrQ29udGVudFBvbGljeShtX3Jlc3BvbnNl
LCByZXF1ZXN0SWRlbnRpZmllciwgYnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiwg
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbWFpblJlc291cmNlTG9hZGVy
ID0gV1RGTW92ZShtYWluUmVzb3VyY2VMb2FkZXIpLAogICAgICAgICBjb21wbGV0aW9uSGFuZGxl
ciA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJlbGVhc2UoKSwgcmVxdWVzdElkZW50aWZpZXJd
IChQb2xpY3lBY3Rpb24gcG9saWN5LCBQb2xpY3lDaGVja0lkZW50aWZpZXIgcmVzcG9uc2VJZGVu
dGlmaWVyKSBtdXRhYmxlIHsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQocmVzcG9uc2VJZGVudGlm
aWVyLmlzVmFsaWRGb3IocmVxdWVzdElkZW50aWZpZXIpKTsKICAgICAgICAgY29udGludWVBZnRl
ckNvbnRlbnRQb2xpY3kocG9saWN5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5j
cHAKaW5kZXggYTNlYmM5NDU5M2RkN2IwYzM4MWFlMDE3ZTI5ZGE2M2U0OGZlOTQyZS4uZDQxOGM2
NWE4MzNiYWQ0ZGRmMzk2NzM0ZDk3NWYxYTg3M2M2NDM0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5jcHAKQEAgLTgxNyw3ICs4MTcsNyBAQCB2b2lkIEVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygpCiB7CiB9CiAKLXZvaWQgRW1wdHlGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmLCBib29sLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpCit2b2lkIEVtcHR5RnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiwgQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiwgRnJh
bWVQb2xpY3lGdW5jdGlvbiYmKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5RnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAxMjBhNGE1MjBiZDFmMTJkNzNkMTRmNjJlZTBl
ZTQwYjk4ODRlYWFiLi5kYzUxZDVlMzU5MmY5NmMwZTMwZDNkNmJhZWNhMjQ0YzA2ZjE5MjU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKQEAg
LTk2LDcgKzk2LDcgQEAgcHJpdmF0ZToKICAgICBGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNv
bnN0IE5hdmlnYXRpb25BY3Rpb24mLCBOZXdGcmFtZU9wZW5lclBvbGljeSkgZmluYWw7CiAgICAg
dm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7Cisg
ICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYsIEJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24sIEZyYW1lUG9s
aWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5l
d1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBG
cmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBG
b3JtU3RhdGUqLCBQb2xpY3lEZWNpc2lvbk1vZGUsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJh
bWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBmODFkNzE4ZTBh
ZDMwYmU5M2NlYzk0NTk5ZjVkMDVmZWU4ZDRhZWNhLi4zOGU2YjY3MTQwNjUzNzMxMzQzNGY1NjY0
NmM5MTVhMDVjNDJkYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAg
LTQxMyw3ICs0MTMsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wg
ZGVmZXJzKQogICAgIH0KIH0KIAotdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tDb250ZW50UG9saWN5
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBQb2xpY3lDaGVja0lkZW50aWZpZXIg
aWRlbnRpZmllciwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBDb250ZW50
UG9saWN5RGVjaXNpb25GdW5jdGlvbiYmIGZ1bmN0aW9uKQordm9pZCBGcmFtZUxvYWRlcjo6Y2hl
Y2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBQb2xpY3lD
aGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNp
c2lvbiBicm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lzaW9uLCBDb250ZW50UG9saWN5RGVj
aXNpb25GdW5jdGlvbiYmIGZ1bmN0aW9uKQogewogICAgIGlmICghYWN0aXZlRG9jdW1lbnRMb2Fk
ZXIoKSkgewogICAgICAgICAvLyBMb2FkIHdhcyBjYW5jZWxsZWQKQEAgLTQyMiw3ICs0MjIsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0NvbnRlbnRQb2xpY3koY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIFBvbGljeUNoZQogICAgIH0KIAogICAgIC8vIEZJWE1FOiBWYWxpZGF0
ZSB0aGUgcG9saWN5IGNoZWNrIGlkZW50aWZpZXIuCi0gICAgY2xpZW50KCkuZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShyZXNwb25zZSwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+cmVx
dWVzdCgpLCBpZGVudGlmaWVyLCBhY3RpdmVEb2N1bWVudExvYWRlcigpLT5kb3dubG9hZEF0dHJp
YnV0ZSgpLCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXVEZNb3ZlKGZ1bmN0aW9u
KSk7CisgICAgY2xpZW50KCkuZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShyZXNwb25z
ZSwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+cmVxdWVzdCgpLCBpZGVudGlmaWVyLCBhY3RpdmVE
b2N1bWVudExvYWRlcigpLT5kb3dubG9hZEF0dHJpYnV0ZSgpLCBicm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaERlY2lzaW9uLCBXVEZNb3ZlKGZ1bmN0aW9uKSk7CiB9CiAKIHZvaWQgRnJhbWVMb2Fk
ZXI6OmNoYW5nZUxvY2F0aW9uKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHBhc3NlZFRh
cmdldCwgRXZlbnQqIHRyaWdnZXJpbmdFdmVudCwgY29uc3QgUmVmZXJyZXJQb2xpY3kmIHJlZmVy
cmVyUG9saWN5LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3ksIHN0ZDo6b3B0aW9uYWw8TmV3RnJhbWVPcGVuZXJQb2xpY3k+IG9wZW5lclBv
bGljeSwgY29uc3QgQXRvbVN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGNvbnN0IFN5c3RlbVBy
ZXZpZXdJbmZvJiBzeXN0ZW1QcmV2aWV3SW5mbywgc3RkOjpvcHRpb25hbDxQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudD4mJiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmgKaW5kZXggZTU2YzA4ZjcwMzZhNWRmYjczM2MyZTVmNWNlZWNkODg0MjJhZjUx
OS4uZjc1MjQxMGE4OWY1OTI3MDFjODQxYTQyZDRhYmU0NGFkNzg5MjMxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTIyMCw3ICsyMjAsNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCk7CiAKLSAgICB2b2lkIGNoZWNrQ29udGVudFBvbGlj
eShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBib29sIG5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIENvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0
aW9uJiYpOworICAgIHZvaWQgY2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVj
aXNpb24sIENvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYpOwogCiAgICAgdm9pZCBkaWRF
eHBsaWNpdE9wZW4oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQu
aAppbmRleCAzOWJiNDA1NDA5YzQxNzQ3ODVhOTM3MjI4MzAwMTg2M2MwYTg3NzVkLi43N2JjYzNk
YzUzODkwOTU2YmEwMWU3MzE1ZDc0ZmQ2OGMyMzBhMjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTkwLDcgKzE5MCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIEZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYs
IE5ld0ZyYW1lT3BlbmVyUG9saWN5KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoU2hv
dygpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xp
Y3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wg
bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNr
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0
IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGb3JtU3RhdGUqLCBj
b25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGlj
eUZ1bmN0aW9uJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBGb3Jt
U3RhdGUqLCBQb2xpY3lEZWNpc2lvbk1vZGUsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQ
b2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbFBvbGljeUNoZWNr
KCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlw
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKaW5kZXggYzUx
NWJhZTRkMjE4YjM1MmRmZDIyNTBkYWI1MDg0YzU0M2ViODg3OS4uM2EzZTRmZjgxZTUzNzQ5M2Vk
MjRjYTY3YmRlNDJkNGMxZTY1NjUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXJUeXBlcy5oCkBAIC0xNjcsNiArMTY3LDEyIEBAIGVudW0gY2xhc3MgVW5sb2FkRXZlbnRQb2xp
Y3kgewogICAgIFVubG9hZEFuZFBhZ2VIaWRlCiB9OwogCitlbnVtIGNsYXNzIEJyb3dzaW5nQ29u
dGV4dEdyb3VwU3dpdGNoRGVjaXNpb24gOiB1aW50OF90IHsKKyAgICBTdGF5SW5Hcm91cCwKKyAg
ICBOZXdTaGFyZWRHcm91cCwKKyAgICBOZXdJc29sYXRlZEdyb3VwLAorfTsKKwogLy8gUGFzc2Vk
IHRvIEZyYW1lTG9hZGVyOjp1cmxTZWxlY3RlZCgpIGFuZCBTY3JpcHRDb250cm9sbGVyOjpleGVj
dXRlSWZKYXZhU2NyaXB0VVJMKCkKIC8vIHRvIGNvbnRyb2wgd2hldGhlciwgaW4gdGhlIGNhc2Ug
b2YgYSBKYXZhU2NyaXB0IFVSTCwgZXhlY3V0ZUlmSmF2YVNjcmlwdFVSTCgpIHNob3VsZAogLy8g
cmVwbGFjZSB0aGUgZG9jdW1lbnQuIEl0IGlzIGEgRklYTUUgdG8gZWxpbWluYXRlIHRoaXMgZXh0
cmEgcGFyYW1ldGVyIGZyb20KQEAgLTI3Niw2ICsyODIsMTUgQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxXZWJDb3JlOjpQb2xpY3lBY3Rpb24+IHsKICAgICA+OwogfTsKIAordGVtcGxh
dGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aERlY2lzaW9uPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2Vi
Q29yZTo6QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiwKKyAgICAgICAgV2ViQ29y
ZTo6QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbjo6U3RheUluR3JvdXAsCisgICAg
ICAgIFdlYkNvcmU6OkJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb246Ok5ld1NoYXJl
ZEdyb3VwLAorICAgICAgICBXZWJDb3JlOjpCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lz
aW9uOjpOZXdJc29sYXRlZEdyb3VwCisgICAgPjsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8V2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeT4gewogICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3ksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggY2MzOTgxYjMy
NzQzYzhhNzIwNmVkYzM2Mzc1MTQ1YjYzNmUwNTEwMi4uNmNhOGFmM2JiZDNkMDdjODk2ZTk3YjI0
MWJhZWNiYmE5NTc4NDdhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTkyNCw5
ICsxOTI0LDggQEAgYm9vbCBET01XaW5kb3c6OmlzU2VjdXJlQ29udGV4dCgpIGNvbnN0CiAKIGJv
b2wgRE9NV2luZG93Ojpjcm9zc09yaWdpbklzb2xhdGVkKCkgY29uc3QKIHsKLSAgICAvLyBGSVhN
RTogSW1wbGVtZW50ZWQgdGhpcy4gVGhpcyBzaG91bGQgcmV0dXJuIHRydWUgaWYgQ09PUC9DT0VQ
IGFyZSB1c2VkIGFuZCB0aGUgcGFnZSBpcyBhbGxvd2VkIHRvIHVzZSBBUElzCi0gICAgLy8gdGhh
dCByZXF1aXJlIGNyb3NzLW9yaWdpbiBpc29sYXRpb24gKGUuZy4gU2hhcmVkQXJyYXlCdWZmZXIp
LgotICAgIHJldHVybiBmYWxzZTsKKyAgICBBU1NFUlQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
Y3Jvc3NPcmlnaW5Nb2RlKCkgPT0gQ3Jvc3NPcmlnaW5Nb2RlOjpTaGFyZWQgfHwgIWRvY3VtZW50
KCkgfHwgZG9jdW1lbnQoKS0+dG9wRG9jdW1lbnQoKS5jcm9zc09yaWdpbk9wZW5lclBvbGljeSgp
LnZhbHVlID09IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWU6OlNhbWVPcmlnaW5QbHVzQ09F
UCk7CisgICAgcmV0dXJuIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmNyb3NzT3JpZ2luTW9kZSgp
ID09IENyb3NzT3JpZ2luTW9kZTo6SXNvbGF0ZWQ7CiB9CiAKIHN0YXRpYyB2b2lkIGRpZEFkZFN0
b3JhZ2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyYgd2luZG93KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaWRsCmluZGV4IDg1ODZlZGQwMDBlMTE4ODU3ZjZjYmYyOTU3ODAzZGY3ZjBjZWU2OTYuLmRi
OWE1OWRmNjY1ZjhkNzk0OTM2MjI0ODgzYTFmM2QxMGJjMzg5MjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5pZGwKQEAgLTc5LDggKzc5LDYgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTmF2
aWdhdG9yIG5hdmlnYXRvcjsKICAgICAvLyBGSVhNRTogVGhpcyBpcyBzcGVjaWZpZWQgdG8gYmUg
W1NlY3VyZUNvbnRleHRdCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTUFwcGxpY2F0aW9uQ2Fj
aGUgYXBwbGljYXRpb25DYWNoZTsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50ICdvcmlnaW5Jc29s
YXRlZCcKLSAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBvcmlnaW5Jc29sYXRlZDsK
IAogICAgIC8vIHVzZXIgcHJvbXB0cwogICAgIHVuZGVmaW5lZCBhbGVydCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCBhYWViY2Q0NDhjNDFi
ODFlMWNlNWNhMjViNTVmY2RhNzViMzQ2YzVmLi45ZGY5OWM2NmI3ODc1M2NmZjYyZjk1ODNkZmEz
ZGViMDQ4ZjlmOGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlLmNwcApAQCAtNTg2LDkgKzU4Niw3IEBAIHZvaWQgV29ya2VyR2xvYmFsU2NvcGU6OmNsZWFy
RGVjb2RlZFNjcmlwdERhdGEoKQogCiBib29sIFdvcmtlckdsb2JhbFNjb3BlOjpjcm9zc09yaWdp
bklzb2xhdGVkKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50ZWQgdGhpcy4gVGhp
cyBzaG91bGQgcmV0dXJuIHRydWUgaWYgQ09PUC9DT0VQIGFyZSB1c2VkIGFuZCB0aGUgcGFnZSBp
cyBhbGxvd2VkIHRvIHVzZSBBUElzCi0gICAgLy8gdGhhdCByZXF1aXJlIGNyb3NzLW9yaWdpbiBp
c29sYXRpb24gKGUuZy4gU2hhcmVkQXJyYXlCdWZmZXIpLgotICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6Y3Jvc3NPcmlnaW5Nb2RlKCkgPT0gQ3Jv
c3NPcmlnaW5Nb2RlOjpJc29sYXRlZDsKIH0KIAogdm9pZCBXb3JrZXJHbG9iYWxTY29wZTo6dXBk
YXRlU291cmNlUHJvdmlkZXJCdWZmZXJzKGNvbnN0IFNjcmlwdEJ1ZmZlciYgbWFpblNjcmlwdCwg
Y29uc3QgSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mIGltcG9ydGVkU2NyaXB0cykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGJlN2RhZWVkZmNlZTVhMmVk
OWMxZjIyMmYyMWNjZWJlZmQzNzZjMjguLmU3MjYzZTEyZWJkOWM2NDRkOTMyNWM4MTVjMWI4Njg1
NjExOTEwMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAt
Njg3LDYgKzY4Nyw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnU3Ry
aW5nJzogWyc8d3RmL3RleHQvV1RGU3RyaW5nLmg+J10sCiAgICAgICAgICdQQUw6OlNlc3Npb25J
RCc6IFsnPHBhbC9TZXNzaW9uSUQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkF1dG9wbGF5RXZl
bnRGbGFncyc6IFsnPFdlYkNvcmUvQXV0b3BsYXlFdmVudC5oPiddLAorICAgICAgICAnV2ViQ29y
ZTo6QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbic6IFsnPFdlYkNvcmUvRnJhbWVM
b2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6Q3JlYXRlTmV3R3JvdXBGb3JIaWdo
bGlnaHQnOiBbJzxXZWJDb3JlL0FwcEhpZ2hsaWdodC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6
RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSc6IFsnPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4nXSwK
ICAgICAgICAgJ1dlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSc6IFsnPFdlYkNvcmUvQ29s
b3JTcGFjZS5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2lu
dFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBD
U2VydmljZUVudHJ5UG9pbnQuaAppbmRleCA5MmUxNGU0ZWRmNzE5YjFlYzAyZGZkODU0MTgyOTQ0
MjIzY2MyNmE1Li4wYTgxMjFhZTc1MDA1MGIzNzA3MTMyODEyOWMwNzQ2NzRhMzU5NWYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQ
Q1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9p
bnQuaApAQCAtOTIsNiArOTIsMTEgQEAgdm9pZCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXIoT1NPYmpl
Y3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gY29ubmVjdGlvbiwgeHBjX29iamVjdF8KICAgICAgICAg
ICAgIEpTQzo6Q29uZmlnOjpjb25maWd1cmVGb3JUZXN0aW5nKCk7CiAgICAgICAgIGlmICh4cGNf
ZGljdGlvbmFyeV9nZXRfYm9vbChpbml0aWFsaXplck1lc3NhZ2UsICJkaXNhYmxlLWppdCIpKQog
ICAgICAgICAgICAgSlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjpzZXRKSVRFbmFibGVkKGZhbHNl
KTsKKyAgICAgICAgaWYgKHhwY19kaWN0aW9uYXJ5X2dldF9ib29sKGluaXRpYWxpemVyTWVzc2Fn
ZSwgImVuYWJsZS1zaGFyZWQtYXJyYXktYnVmZmVyIikpIHsKKyAgICAgICAgICAgIEpTQzo6T3B0
aW9uczo6aW5pdGlhbGl6ZSgpOworICAgICAgICAgICAgSlNDOjpPcHRpb25zOjpBbGxvd1VuZmlu
YWxpemVkQWNjZXNzU2NvcGUgc2NvcGU7CisgICAgICAgICAgICBKU0M6Ok9wdGlvbnM6OnVzZVNo
YXJlZEFycmF5QnVmZmVyKCkgPSB0cnVlOworICAgICAgICB9CiAgICAgfQogCiAgICAgWFBDU2Vy
dmljZUluaXRpYWxpemVyRGVsZWdhdGVUeXBlIGRlbGVnYXRlKFdURk1vdmUoY29ubmVjdGlvbiks
IGluaXRpYWxpemVyTWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGFmZmI1OGIyOTc0NDgyOTExN2Qx
N2QxZTJhNjE0N2UyMWJmOGI2YTEuLjU4NTdhMDZkMGY3NTYxNWE2M2QwNTM5ZDcyMjNjYTdjNzFi
YzdkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCkBAIC0xMjIsNiArMTIyLDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAg
IGVuY29kZXIgPDwgbWVtb3J5Q2FjaGVEaXNhYmxlZDsKICAgICBlbmNvZGVyIDw8IGF0dHJTdHls
ZUVuYWJsZWQ7CiAgICAgZW5jb2RlciA8PCBzaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENv
bnN0YW50UmVkZWNsYXJhdGlvbjsKKyAgICBlbmNvZGVyIDw8IGNyb3NzT3JpZ2luTW9kZTsKIAog
I2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIGVuY29kZXIgPDwgaGFzSW1hZ2VTZXJ2
aWNlczsKQEAgLTM4OSw2ICszOTAsOCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNob3Vs
ZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5jcm9zc09y
aWdpbk1vZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9D
T05UUk9MUykKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuaGFzSW1hZ2VTZXJ2
aWNlcykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKaW5kZXggZGM2YjIyOTdkMmY4YWQ5YTgyNTFmMjI4MjJkOWRhY2Q4ZWM4OTE2
Zi4uNTJjMzZmZTE2MTE3ZTllZTAwNzVjOTFlYWY3Y2Q5YmI3M2E2OGVmNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKICNpbmNsdWRlICJV
c2VyRGF0YS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9Dcm9zc09yaWdpbk1vZGUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzSUQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRy
Lmg+CkBAIC0xMzUsNiArMTM2LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMgewogICAgIGJvb2wgbWVtb3J5Q2FjaGVEaXNhYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBh
dHRyU3R5bGVFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIHNob3VsZFRocm93RXhjZXB0aW9u
Rm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uIHsgdHJ1ZSB9OworICAgIFdlYkNvcmU6OkNy
b3NzT3JpZ2luTW9kZSBjcm9zc09yaWdpbk1vZGUgeyBXZWJDb3JlOjpDcm9zc09yaWdpbk1vZGU6
OlNoYXJlZCB9OyAvLyBDcm9zcy1vcmlnaW4gaXNvbGF0aW9uIHZpYSBDT09QK0NPRVAgaGVhZGVy
cy4KIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIGJvb2wgaGFzSW1hZ2VTZXJ2
aWNlcyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVy
L1Byb2Nlc3NMYXVuY2hlci5oCmluZGV4IDEwODFiYTJhNWJmYzM0YjlmYjczYWY4ODUxMjUzZTc4
ZWFhZWIzYzguLmQzMGY2ZDQ5YjA5MmY3OTQxNzU4NTY4NTIxYTA2YWEzMGQyYmRiZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5o
CkBAIC02MSw2ICs2MSw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlz
aExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIp
ID0gMDsKICAgICAgICAgdmlydHVhbCBib29sIHNob3VsZENvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmco
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNKSVRFbmFi
bGVkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
RW5hYmxlU2hhcmVkQXJyYXlCdWZmZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgICAgICB2aXJ0dWFsIFJlZlB0cjxYUENFdmVudEhhbmRsZXI+IHhw
Y0V2ZW50SGFuZGxlcigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hl
ck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1
bmNoZXJNYWMubW0KaW5kZXggZjc3NzNmZTZkZDAyOTJkMmMzOWNjZmZkYzA4YjUzNjllMDUyMGU1
Mi4uZGFjMzFjM2Q5ZjY2YTA4YjBlMGQwNjU2YWZlNjdhNWJmODhhYTNhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5j
aGVyTWFjLm1tCkBAIC0yMDUsNiArMjA1LDggQEAgdm9pZCBQcm9jZXNzTGF1bmNoZXI6OmxhdW5j
aFByb2Nlc3MoKQogICAgICAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X2Jvb2woYm9vdHN0cmFw
TWVzc2FnZS5nZXQoKSwgImNvbmZpZ3VyZS1qc2MtZm9yLXRlc3RpbmciLCB0cnVlKTsKICAgICAg
ICAgaWYgKCFtX2NsaWVudC0+aXNKSVRFbmFibGVkKCkpCiAgICAgICAgICAgICB4cGNfZGljdGlv
bmFyeV9zZXRfYm9vbChib290c3RyYXBNZXNzYWdlLmdldCgpLCAiZGlzYWJsZS1qaXQiLCB0cnVl
KTsKKyAgICAgICAgaWYgKG1fY2xpZW50LT5zaG91bGRFbmFibGVTaGFyZWRBcnJheUJ1ZmZlcigp
KQorICAgICAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X2Jvb2woYm9vdHN0cmFwTWVzc2FnZS5n
ZXQoKSwgImVuYWJsZS1zaGFyZWQtYXJyYXktYnVmZmVyIiwgdHJ1ZSk7CiAgICAgfQogCiAgICAg
eHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhib290c3RyYXBNZXNzYWdlLmdldCgpLCAibWVzc2Fn
ZS1uYW1lIiwgImJvb3RzdHJhcCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
dmlzaW9uYWxQYWdlUHJveHkuY3BwCmluZGV4IDU5MmI4M2U0MWZjNDFkNjhhYzAxYzM2YTZmMzE3
ZWFjMzkwY2YyYzIuLjNkYmFiYjFjNzEzYWI5ODI2MTBhYWNiODY4NzcxNDE1NzdlZjhjN2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAK
QEAgLTMzMCwxMiArMzMwLDEyIEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhGcmFtZUlkZW50aWZpZXIKICAgICBtX3BhZ2Uu
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5
UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZp
ZXIsIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIFdURk1vdmUo
b3JpZ2luYXRpbmdGcmFtZUluZm8pLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0
LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVj
dFJlc3BvbnNlKSwgdXNlckRhdGEsIGxpc3RlbmVySUQpOwogfQogCi12b2lkIFByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRy
aWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2lu
Z0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3du
bG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgQnJvd3NpbmdD
b250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiBicm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lz
aW9uLCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVu
ZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1
dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BhZ2Uu
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQ
YWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlv
bklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0
ZSwgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBT
d2l0Y2gsIG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7
CisgICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5
UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZp
ZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93
bmxvYWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBicm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaERlY2lzaW9uLCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgbGlzdGVu
ZXJJRCwgdXNlckRhdGEpOwogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJm
b3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKaW5kZXggMGFi
ZWE5ZGE2YmJkMjAxMTRmZjU0YzFiOGQ3MWNhZmRiZjcyMzc2Mi4uZDc4YzM4ZTAwNTIwZDhjODQw
ZTM3MTEyOWIyZTQ1NGViODlhYTYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5oCkBAIC0xMjUsNyArMTI1LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIHNlbmRNZXNzYWdlKFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiYsIE9wdGlvblNldDxJUEM6
OlNlbmRPcHRpb24+LCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKElQQzo6RGVjb2RlciopPiwgdWludDY0X3Q+PiYmKSBmaW5hbDsKIAogICAgIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYm
IG9yaWdpbmF0aW5nRnJhbWVJbmZvLCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZp
ZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9y
aWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFS
ZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGly
ZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZy
YW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5n
JiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9v
bCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCB1
aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmKTsKKyAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
RnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJp
bmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBX
ZWJDb3JlOjpCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lzaW9uLCB1aW50NjRfdCBsaXN0
ZW5lcklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgVXNlckRh
dGEmKTsKICAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKICAgICB2b2lk
IGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywg
Y29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCmluZGV4IDNiNjgxZTVl
OTFiYmZlNTA5M2VlODdjOGY1N2Y0OWQyYWRhYWFlNDkuLjcyZjU1OGY3ZjA2NzUxMTU2NGJlYjFi
YTVkYmY1ZmFmYmZlYmNjZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1
c3BlbmRlZFBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVu
ZGVkUGFnZVByb3h5LmNwcApAQCAtNTQsNyArNTQsNyBAQCBSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5
PiBTdXNwZW5kZWRQYWdlUHJveHk6OmZpbmRSZXVzYWJsZVN1c3BlbmRlZFBhZ2VQcm9jZXNzKFdl
YgogewogICAgIGZvciAoYXV0byogc3VzcGVuZGVkUGFnZSA6IGFsbFN1c3BlbmRlZFBhZ2VzKCkp
IHsKICAgICAgICAgYXV0byYgcHJvY2VzcyA9IHN1c3BlbmRlZFBhZ2UtPnByb2Nlc3MoKTsKLSAg
ICAgICAgaWYgKCZwcm9jZXNzLnByb2Nlc3NQb29sKCkgPT0gJnByb2Nlc3NQb29sICYmIHByb2Nl
c3MucmVnaXN0cmFibGVEb21haW4oKSA9PSByZWdpc3RyYWJsZURvbWFpbiAmJiAmcHJvY2Vzcy53
ZWJzaXRlRGF0YVN0b3JlKCkgPT0gJmRhdGFTdG9yZSkKKyAgICAgICAgaWYgKCZwcm9jZXNzLnBy
b2Nlc3NQb29sKCkgPT0gJnByb2Nlc3NQb29sICYmIHByb2Nlc3MucmVnaXN0cmFibGVEb21haW4o
KSA9PSByZWdpc3RyYWJsZURvbWFpbiAmJiAmcHJvY2Vzcy53ZWJzaXRlRGF0YVN0b3JlKCkgPT0g
JmRhdGFTdG9yZSAmJiBwcm9jZXNzLmNyb3NzT3JpZ2luTW9kZSgpICE9IENyb3NzT3JpZ2luTW9k
ZTo6SXNvbGF0ZWQpCiAgICAgICAgICAgICByZXR1cm4gJnByb2Nlc3M7CiAgICAgfQogICAgIHJl
dHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggZDQ3NDhmZDcwMzNmOWJiNDc1ZjcwMjAxMjI4MzE3YjA0ZmNhOWVhZS4uYzMzY2ZlNDRkNjEy
MjhkODA0ZTQzMjUyNTllZTEzNWMyZDc5NzkzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC01NjIwLDEyICs1NjIwLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IEZyYW1lCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hl
Y2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0
ZSwKLSAgICBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVy
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCisgICAgYm9v
bCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hE
ZWNpc2lvbiBicm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lzaW9uLCB1aW50NjRfdCBtYWlu
UmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQogewotICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJv
Y2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyks
IGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1F
VHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBuZWVk
c0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwg
bGlzdGVuZXJJRCwgdXNlckRhdGEpOworICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVk
KG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1l
SW5mbyksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNo
b3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxl
LCBicm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lzaW9uLCBtYWluUmVzb3VyY2VMb2FkSWRl
bnRpZmllciwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBG
cmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwg
Y29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3Rl
ZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBt
YWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIg
d2ViUGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1l
SW5mbywgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxv
YWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIEJyb3dzaW5nQ29u
dGV4dEdyb3VwU3dpdGNoRGVjaXNpb24gYnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lv
biwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9y
IHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC01NjM4LDcgKzU2MzgsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBwcm9jZXNzLAogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb24g
PSBuYXZpZ2F0aW9uSUQgPyBtX25hdmlnYXRpb25TdGF0ZS0+bmF2aWdhdGlvbihuYXZpZ2F0aW9u
SUQpIDogbnVsbHB0cjsKICAgICBhdXRvIG5hdmlnYXRpb25SZXNwb25zZSA9IEFQSTo6TmF2aWdh
dGlvblJlc3BvbnNlOjpjcmVhdGUoQVBJOjpGcmFtZUluZm86OmNyZWF0ZShXVEZNb3ZlKGZyYW1l
SW5mbyksIHRoaXMpLmdldCgpLCByZXF1ZXN0LCByZXNwb25zZSwgY2FuU2hvd01JTUVUeXBlLCBk
b3dubG9hZEF0dHJpYnV0ZSk7CiAKLSAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFtZS0+
c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIHdlYlBhZ2VJRCwgZnJhbWVJRCwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCwgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIGlkZW50aWZpZXIsIGxpc3RlbmVySUQsIG5h
dmlnYXRpb24gPSBXVEZNb3ZlKG5hdmlnYXRpb24pLAorICAgIGF1dG8gbGlzdGVuZXIgPSBtYWtl
UmVmKGZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgd2ViUGFnZUlELCBmcmFtZUlELCBicm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaERlY2lzaW9uLCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgaWRlbnRpZmllciwg
bGlzdGVuZXJJRCwgbmF2aWdhdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbiksCiAgICAgICAgIHBy
b2Nlc3MsIG5hdmlnYXRpb25SZXNwb25zZV0gKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEFQ
STo6V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNz
U3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWZQdHI8U2FmZUJyb3dzaW5nV2FybmluZz4mJiBzYWZl
QnJvd3NpbmdXYXJuaW5nLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWlu
PiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKSBtdXRhYmxlIHsKICAgICAgICAgLy8gRklY
TUU6IEFzc2VydCB0aGUgQVBJOjpXZWJzaXRlUG9saWNpZXMqIGlzIG51bGxwdHIgaGVyZSBvbmNl
IGNsaWVudHMgb2YgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlV2l0aFBvbGljaWVzIGdvIGF3YXku
CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgPT0g
UHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDo6Tm8pOwpAQCAtNTY0OSwxOSArNTY0OSwyMiBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLAogICAgICAgICB9KTsKIAogICAgICAgICBhdXRvIHdp
bGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3MgPSBXaWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNz
OjpObzsKLSAgICAgICAgaWYgKHBvbGljeUFjdGlvbiA9PSBQb2xpY3lBY3Rpb246OlVzZSAmJiBu
ZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoICYmIG5hdmlnYXRpb24pIHsKLSAgICAgICAg
ICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlc3BvbnNlRG9tYWluIHsgbmF2aWdhdGlvblJlc3BvbnNl
LT5yZXNwb25zZSgpLnVybCgpIH07Ci0gICAgICAgICAgICAvLyBBdm9pZCBwcm9jZXNzLXN3YXBw
aW5nIGluIGNhc2VzIHdoZXJlIHRoZSBwcm9jZXNzIG9ubHkgY29udGFpbnMgYSBzaW5nbGUgcGFn
ZSBhbmQgaXMgb3JpZ2luLWNsZWFuLgotICAgICAgICAgICAgaWYgKHByb2Nlc3MtPnBhZ2VDb3Vu
dCgpID4gMSB8fCAocHJvY2Vzcy0+b3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbigpICYmICpwcm9j
ZXNzLT5vcHRpb25hbFJlZ2lzdHJhYmxlRG9tYWluKCkgIT0gcmVzcG9uc2VEb21haW4pKSB7Ci0g
ICAgICAgICAgICAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HKFByb2Nlc3NTd2FwcGluZywg
ImRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkOiBQcm9jZXNzLXN3YXBwaW5nIGR1ZSB0byBD
cm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSIpOwotICAgICAgICAgICAgICAgIHdlYnNpdGVEYXRh
U3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnByZXBhcmVMb2FkRm9yV2ViUHJvY2Vzc1RyYW5zZmVy
KHByb2Nlc3MtPmNvcmVQcm9jZXNzSWRlbnRpZmllcigpLCBtYWluUmVzb3VyY2VMb2FkSWRlbnRp
ZmllciwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCByZXNw
b25zZURvbWFpbiA9IFdURk1vdmUocmVzcG9uc2VEb21haW4pLCBuYXZpZ2F0aW9uLCBuYXZpZ2F0
aW9uUmVzcG9uc2UgPSBXVEZNb3ZlKG5hdmlnYXRpb25SZXNwb25zZSksIHNlbmRlciA9IFdURk1v
dmUoc2VuZGVyKV0oYXV0byBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9S
ZXN1bWUpIG11dGFibGUgewotICAgICAgICAgICAgICAgICAgICBhdXRvIHByb2Nlc3NGb3JOYXZp
Z2F0aW9uID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLnByb2Nlc3NGb3JSZWdpc3RyYWJsZURv
bWFpbih3ZWJzaXRlRGF0YVN0b3JlKCksIHRoaXMsIHJlc3BvbnNlRG9tYWluKTsKLSAgICAgICAg
ICAgICAgICAgICAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKCpuYXZpZ2F0aW9uLCBu
dWxscHRyLCBXVEZNb3ZlKHByb2Nlc3NGb3JOYXZpZ2F0aW9uKSwgUHJvY2Vzc1N3YXBSZXF1ZXN0
ZWRCeUNsaWVudDo6Tm8sIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJSZXNw
b25zZVBvbGljeURlY2lzaW9uLCBudWxscHRyLCBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyVG9SZXN1bWUpOwotCi0gICAgICAgICAgICAgICAgICAgIHJlY2VpdmVkUG9saWN5
RGVjaXNpb24oUG9saWN5QWN0aW9uOjpJZ25vcmUsIG5hdmlnYXRpb24uZ2V0KCksIG51bGxwdHIs
IFdURk1vdmUobmF2aWdhdGlvblJlc3BvbnNlKSwgV1RGTW92ZShzZW5kZXIpLCB7IH0sIFdpbGxD
b250aW51ZUxvYWRJbk5ld1Byb2Nlc3M6Olllcyk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQorICAgICAgICBpZiAocG9saWN5QWN0
aW9uID09IFBvbGljeUFjdGlvbjo6VXNlICYmIGJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVj
aXNpb24gIT0gQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbjo6U3RheUluR3JvdXAg
JiYgbmF2aWdhdGlvbikgeworICAgICAgICAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HKFBy
b2Nlc3NTd2FwcGluZywgImRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkOiBQcm9jZXNzLXN3
YXBwaW5nIGR1ZSB0byBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSwgbmV3UHJvY2Vzc0lzQ3Jv
c3NPcmlnaW5Jc29sYXRlZD0lZCIsIGJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24g
PT0gQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbjo6TmV3SXNvbGF0ZWRHcm91cCk7
CisgICAgICAgICAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5wcmVwYXJl
TG9hZEZvcldlYlByb2Nlc3NUcmFuc2Zlcihwcm9jZXNzLT5jb3JlUHJvY2Vzc0lkZW50aWZpZXIo
KSwgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RG
TW92ZShwcm90ZWN0ZWRUaGlzKSwgbmF2aWdhdGlvbiwgbmF2aWdhdGlvblJlc3BvbnNlID0gV1RG
TW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBzZW5kZXIgPSBXVEZNb3ZlKHNlbmRlciksIGJyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb25dKGF1dG8gZXhpc3RpbmdOZXR3b3JrUmVzb3Vy
Y2VMb2FkSWRlbnRpZmllclRvUmVzdW1lKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBSZWZQ
dHI8V2ViUHJvY2Vzc1Byb3h5PiBwcm9jZXNzRm9yTmF2aWdhdGlvbjsKKyAgICAgICAgICAgICAg
ICBpZiAoYnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiA9PSBCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaERlY2lzaW9uOjpOZXdJc29sYXRlZEdyb3VwKQorICAgICAgICAgICAgICAg
ICAgICBwcm9jZXNzRm9yTmF2aWdhdGlvbiA9IG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5jcmVh
dGVOZXdXZWJQcm9jZXNzKCZ3ZWJzaXRlRGF0YVN0b3JlKCksIFdlYlByb2Nlc3NQcm94eTo6SXNQ
cmV3YXJtZWQ6Ok5vLCBDcm9zc09yaWdpbk1vZGU6Oklzb2xhdGVkKTsKKyAgICAgICAgICAgICAg
ICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGJyb3dzaW5nQ29udGV4dEdyb3Vw
U3dpdGNoRGVjaXNpb24gPT0gQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbjo6TmV3
U2hhcmVkR3JvdXApOworICAgICAgICAgICAgICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZXNw
b25zZURvbWFpbiB7IG5hdmlnYXRpb25SZXNwb25zZS0+cmVzcG9uc2UoKS51cmwoKSB9OworICAg
ICAgICAgICAgICAgICAgICBwcm9jZXNzRm9yTmF2aWdhdGlvbiA9IG1fcHJvY2Vzcy0+cHJvY2Vz
c1Bvb2woKS5wcm9jZXNzRm9yUmVnaXN0cmFibGVEb21haW4od2Vic2l0ZURhdGFTdG9yZSgpLCB0
aGlzLCByZXNwb25zZURvbWFpbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcygqbmF2aWdhdGlvbiwgbnVsbHB0ciwgcHJv
Y2Vzc0Zvck5hdmlnYXRpb24ucmVsZWFzZU5vbk51bGwoKSwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRC
eUNsaWVudDo6Tm8sIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJSZXNwb25z
ZVBvbGljeURlY2lzaW9uLCBudWxscHRyLCBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxvYWRJZGVu
dGlmaWVyVG9SZXN1bWUpOworCisgICAgICAgICAgICAgICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lv
bihQb2xpY3lBY3Rpb246Oklnbm9yZSwgbmF2aWdhdGlvbi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92
ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKHNlbmRlciksIHsgfSwgV2lsbENvbnRpbnVl
TG9hZEluTmV3UHJvY2Vzczo6WWVzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9u
KHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0
aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKHNlbmRlciksIHsgfSwgd2lsbENvbnRpbnVlTG9hZEluTmV3
UHJvY2Vzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDU0ZTIw
MmFlZDA5MjRjM2RjY2QyOWZkMDkxYTkxZDdhOGY0MTlhOTUuLmUyYjlkMWI2M2FkYTI2MmUwNWRk
MTdkMjk1MzQ5MmFhYzk5N2E3ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCkBAIC0xNzQzLDcgKzE3NDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWROYXZpZ2F0ZVdp
dGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJO
YXZpZ2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lk
IGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVS
TCYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYm
LCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm8sIHN0ZDo6b3B0aW9uYWw8V2Vi
UGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRfdCBs
aXN0ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlw
ZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmpl
Y3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRf
dCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3Qg
VXNlckRhdGEmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlw
ZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmpl
Y3RlZEJ1bmRsZSwgV2ViQ29yZTo6QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiwg
dWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIHVpbnQ2NF90IGxpc3RlbmVySUQs
IGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFVSTFNjaGVtZVRh
c2tQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQVBJOjpOYXZp
Z2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlw
ZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9i
amVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3Rk
OjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vi
c2l0ZVBvbGljaWVzRGF0YT4mJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSwgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CiAg
ICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9w
dGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQsIHN0ZDo6b3B0aW9u
YWw8TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXI+IGV4aXN0aW5nTmV0d29ya1Jlc291cmNl
TG9hZElkZW50aWZpZXJUb1Jlc3VtZSA9IHN0ZDo6bnVsbG9wdCk7CkBAIC0yMDY0LDcgKzIwNjQs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlz
dGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKLSAgICAgICAgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmli
dXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdD
b250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCB1
aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgICAgICBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Ym9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJv
b2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIFdlYkNvcmU6OkJyb3dzaW5nQ29udGV4dEdy
b3VwU3dpdGNoRGVjaXNpb24sIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCB1
aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgdW5hYmxlVG9J
bXBsZW1lbnRQb2xpY3koV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGJlZ2luU2FmZUJyb3dz
aW5nQ2hlY2soY29uc3QgVVJMJiwgYm9vbCwgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5Jik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA2MGUxZDZlZGZmNmIyZDViNDg3ZjVhMjUzMTMyOTlkYWQ3NjMzY2MxLi5mYzU1ZTc2
NTlhODkyMDk4MGZkNDIxMjlhYzNmMGRhYzc1YmJiOTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMDcsNyArMTA3LDcgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAgIyBQb2xpY3kgbWVzc2Fn
ZXMKLSAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJpbmcgZG93
bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVl
ZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElk
ZW50aWZpZXIsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEp
CisgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgU3RyaW5nIGRvd25s
b2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBlbnVtOnVpbnQ4
X3QgV2ViQ29yZTo6QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiBicm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaERlY2lzaW9uLCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRp
ZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAg
ICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5h
dmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0
aW5nRnJhbWVJbmZvRGF0YSwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50
aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2lu
YWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVj
dFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklE
KQogICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBzdHJ1Y3QgV2ViS2l0OjpGcmFt
ZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGlj
eUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpO
YXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6
RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHN0ZDo6b3B0aW9uYWw8V2Vi
S2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0
YSkgLT4gKHN0cnVjdCBXZWJLaXQ6OlBvbGljeURlY2lzaW9uIFBvbGljeURlY2lzaW9uKSBTeW5j
aHJvbm91cwogICAgIERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUlu
Zm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIs
IHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRh
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIGZyYW1lTmFtZSwgdWlu
dDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAxZjgzZDQwMzI0OWMxZDc4MzZj
ZDJjNDRmMmQ4NzZkYzkzMzA0MTMxLi5mY2E5ZGU2MTA3ZWJmN2NmNWZhMTViYjY1YzQ0YjNiZDRh
NjY1ZWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBA
IC01OTYsNyArNTk2LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVzb2x2ZVBhdGhzRm9yU2Fu
ZGJveEV4dGVuc2lvbnMoKQogICAgIHBsYXRmb3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVu
c2lvbnMoKTsKIH0KIAotUmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0
ZU5ld1dlYlByb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdG9yZSwgV2ViUHJv
Y2Vzc1Byb3h5OjpJc1ByZXdhcm1lZCBpc1ByZXdhcm1lZCkKK1JlZjxXZWJQcm9jZXNzUHJveHk+
IFdlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqIHdl
YnNpdGVEYXRhU3RvcmUsIFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQgaXNQcmV3YXJtZWQs
IENyb3NzT3JpZ2luTW9kZSBjcm9zc09yaWdpbk1vZGUpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgbV90Y2NQcmVmZXJlbmNlRW5hYmxlZCA9IGRvZXNBcHBIYXZlSVRQRW5hYmxlZCgpOwpA
QCAtNjA0LDcgKzYwNCw3IEBAIFJlZjxXZWJQcm9jZXNzUHJveHk+IFdlYlByb2Nlc3NQb29sOjpj
cmVhdGVOZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqIHdlYnNpCiAgICAgICAgIHdlYnNp
dGVEYXRhU3RvcmUtPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKG1fdGNjUHJlZmVy
ZW5jZUVuYWJsZWQpOwogI2VuZGlmCiAKLSAgICBhdXRvIHByb2Nlc3NQcm94eSA9IFdlYlByb2Nl
c3NQcm94eTo6Y3JlYXRlKCp0aGlzLCB3ZWJzaXRlRGF0YVN0b3JlLCBpc1ByZXdhcm1lZCk7Cisg
ICAgYXV0byBwcm9jZXNzUHJveHkgPSBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZSgqdGhpcywgd2Vi
c2l0ZURhdGFTdG9yZSwgaXNQcmV3YXJtZWQsIGNyb3NzT3JpZ2luTW9kZSk7CiAgICAgaW5pdGlh
bGl6ZU5ld1dlYlByb2Nlc3MocHJvY2Vzc1Byb3h5LCB3ZWJzaXRlRGF0YVN0b3JlLCBpc1ByZXdh
cm1lZCk7CiAgICAgbV9wcm9jZXNzZXMuYXBwZW5kKHByb2Nlc3NQcm94eS5jb3B5UmVmKCkpOwog
CkBAIC04MDMsNiArODAzLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6ZU5ld1dl
YlByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBXZWJzaXRlRGEKICAgICBwYXJhbWV0
ZXJzLm1lbW9yeUNhY2hlRGlzYWJsZWQgPSBtX21lbW9yeUNhY2hlRGlzYWJsZWQ7CiAgICAgcGFy
YW1ldGVycy5hdHRyU3R5bGVFbmFibGVkID0gbV9jb25maWd1cmF0aW9uLT5hdHRyU3R5bGVFbmFi
bGVkKCk7CiAgICAgcGFyYW1ldGVycy5zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0
YW50UmVkZWNsYXJhdGlvbiA9IG1fY29uZmlndXJhdGlvbi0+c2hvdWxkVGhyb3dFeGNlcHRpb25G
b3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24oKTsKKyAgICBwYXJhbWV0ZXJzLmNyb3NzT3Jp
Z2luTW9kZSA9IHByb2Nlc3MuY3Jvc3NPcmlnaW5Nb2RlKCk7CiAKICNpZiBFTkFCTEUoU0VSVklD
RV9DT05UUk9MUykKICAgICBhdXRvJiBzZXJ2aWNlQ29udHJvbGxlciA9IFNlcnZpY2VzQ29udHJv
bGxlcjo6c2luZ2xldG9uKCk7CkBAIC0xMDUxLDcgKzEwNTIsNyBAQCBSZWY8V2ViUGFnZVByb3h5
PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBS
ZWY8QVBJOgogICAgICAgICAvLyBJbiB0aGUgY29tbW9uIGNhc2UsIHdlIGRlbGF5IHByb2Nlc3Mg
bGF1bmNoIHVudGlsIHNvbWV0aGluZyBpcyBhY3R1YWxseSBsb2FkZWQgaW4gdGhlIHBhZ2UuCiAg
ICAgICAgIHByb2Nlc3MgPSBkdW1teVByb2Nlc3NQcm94eShwYWdlQ29uZmlndXJhdGlvbi0+d2Vi
c2l0ZURhdGFTdG9yZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAgICAgIGlmICghcHJvY2Vzcykgewot
ICAgICAgICAgICAgcHJvY2VzcyA9IFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlKCp0aGlzLCBwYWdl
Q29uZmlndXJhdGlvbi0+d2Vic2l0ZURhdGFTdG9yZSgpLCBXZWJQcm9jZXNzUHJveHk6OklzUHJl
d2FybWVkOjpObywgV2ViUHJvY2Vzc1Byb3h5OjpTaG91bGRMYXVuY2hQcm9jZXNzOjpObyk7Cisg
ICAgICAgICAgICBwcm9jZXNzID0gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoKnRoaXMsIHBhZ2VD
b25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCksIFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3
YXJtZWQ6Ok5vLCBDcm9zc09yaWdpbk1vZGU6OlNoYXJlZCwgV2ViUHJvY2Vzc1Byb3h5OjpTaG91
bGRMYXVuY2hQcm9jZXNzOjpObyk7CiAgICAgICAgICAgICBtX2R1bW15UHJvY2Vzc1Byb3hpZXMu
YWRkKHBhZ2VDb25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCktPnNlc3Npb25JRCgpLCBt
YWtlV2Vha1B0cigqcHJvY2VzcykpOwogICAgICAgICAgICAgbV9wcm9jZXNzZXMuYXBwZW5kKCpw
cm9jZXNzKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmgKaW5kZXggMDUzNTlhN2RkNDExMDU4MTE4N2QwZjA5N2U1YWZkNjI3MzU1Y2E4YS4uMDVjZjUz
NDY4OWU1YWIzOWFkOTZjYmEyNWZkMzM2YjVmMjQxMjVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC01MTQsNiArNTE0LDggQEAgcHVibGljOgogICAgIHN0
YXRpYyBTdHJpbmcgY29udGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5KCk7CiAjZW5kaWYKIAorICAg
IFJlZjxXZWJQcm9jZXNzUHJveHk+IGNyZWF0ZU5ld1dlYlByb2Nlc3MoV2Vic2l0ZURhdGFTdG9y
ZSosIFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQgPSBXZWJQcm9jZXNzUHJveHk6OklzUHJl
d2FybWVkOjpObywgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5Nb2RlID0gV2ViQ29yZTo6Q3Jvc3NPcmln
aW5Nb2RlOjpTaGFyZWQpOworCiBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXpl
KCk7CiAKQEAgLTUyNCw3ICs1MjYsNiBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPFdlYlByb2Nl
c3NQcm94eT4gdHJ5VGFrZVByZXdhcm1lZFByb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSYpOwogCi0g
ICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gY3JlYXRlTmV3V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0
b3JlKiwgV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1lZCA9IFdlYlByb2Nlc3NQcm94eTo6SXNQ
cmV3YXJtZWQ6Ok5vKTsKICAgICB2b2lkIGluaXRpYWxpemVOZXdXZWJQcm9jZXNzKFdlYlByb2Nl
c3NQcm94eSYsIFdlYnNpdGVEYXRhU3RvcmUqLCBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVk
ID0gV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1lZDo6Tm8pOwogCiAgICAgdm9pZCBoYW5kbGVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIGNvbnN0
IFVzZXJEYXRhJiBtZXNzYWdlQm9keSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcAppbmRleCBkOGU2YzczYWE2ZTlmNTc3YmZiNTdkMmEzMTNiOGNkNmYyNWQy
YmI5Li40M2Q5ZDQ5MThiMTQ5YTgxNTVmNzQ0MDNmZDk2NWRjZWUyZjRlZTNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE0Nyw5ICsxNDcsOSBA
QCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Zm9yV2ViUGFnZXNXaXRoT3JpZ2luKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgY29uc3QgU2VjdQogICAgIH0KIH0KIAotUmVmPFdlYlByb2Nlc3NQcm94
eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBX
ZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3JlLCBJc1ByZXdhcm1lZCBpc1ByZXdhcm1l
ZCwgU2hvdWxkTGF1bmNoUHJvY2VzcyBzaG91bGRMYXVuY2hQcm9jZXNzKQorUmVmPFdlYlByb2Nl
c3NQcm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQ
b29sLCBXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3JlLCBJc1ByZXdhcm1lZCBpc1By
ZXdhcm1lZCwgQ3Jvc3NPcmlnaW5Nb2RlIGNyb3NzT3JpZ2luTW9kZSwgU2hvdWxkTGF1bmNoUHJv
Y2VzcyBzaG91bGRMYXVuY2hQcm9jZXNzKQogewotICAgIGF1dG8gcHJveHkgPSBhZG9wdFJlZigq
bmV3IFdlYlByb2Nlc3NQcm94eShwcm9jZXNzUG9vbCwgd2Vic2l0ZURhdGFTdG9yZSwgaXNQcmV3
YXJtZWQpKTsKKyAgICBhdXRvIHByb3h5ID0gYWRvcHRSZWYoKm5ldyBXZWJQcm9jZXNzUHJveHko
cHJvY2Vzc1Bvb2wsIHdlYnNpdGVEYXRhU3RvcmUsIGlzUHJld2FybWVkLCBjcm9zc09yaWdpbk1v
ZGUpKTsKICAgICBpZiAoc2hvdWxkTGF1bmNoUHJvY2VzcyA9PSBTaG91bGRMYXVuY2hQcm9jZXNz
OjpZZXMpCiAgICAgICAgIHByb3h5LT5jb25uZWN0KCk7CiAgICAgcmV0dXJuIHByb3h5OwpAQCAt
MTU4LDcgKzE1OCw3IEBAIFJlZjxXZWJQcm9jZXNzUHJveHk+IFdlYlByb2Nlc3NQcm94eTo6Y3Jl
YXRlKFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0CiAjaWYgRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQogUmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVG
b3JTZXJ2aWNlV29ya2VycyhXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFJlZ2lzdHJhYmxl
RG9tYWluJiYgcmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhU3RvcmUmIHdlYnNpdGVEYXRh
U3RvcmUpCiB7Ci0gICAgYXV0byBwcm94eSA9IGFkb3B0UmVmKCpuZXcgV2ViUHJvY2Vzc1Byb3h5
KHByb2Nlc3NQb29sLCAmd2Vic2l0ZURhdGFTdG9yZSwgSXNQcmV3YXJtZWQ6Ok5vKSk7CisgICAg
YXV0byBwcm94eSA9IGFkb3B0UmVmKCpuZXcgV2ViUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLCAm
d2Vic2l0ZURhdGFTdG9yZSwgSXNQcmV3YXJtZWQ6Ok5vLCBDcm9zc09yaWdpbk1vZGU6OlNoYXJl
ZCkpOwogICAgIHByb3h5LT5tX3JlZ2lzdHJhYmxlRG9tYWluID0gV1RGTW92ZShyZWdpc3RyYWJs
ZURvbWFpbik7CiAgICAgcHJveHktPmVuYWJsZVNlcnZpY2VXb3JrZXJzKHByb2Nlc3NQb29sLnVz
ZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXJGb3JTZXJ2aWNlV29ya2VycygpKTsKICAgICBw
cm94eS0+Y29ubmVjdCgpOwpAQCAtMTk0LDcgKzE5NCw3IEBAIHByaXZhdGU6CiB9OwogI2VuZGlm
CiAKLVdlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9j
ZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdG9yZSwgSXNQcmV3YXJtZWQg
aXNQcmV3YXJtZWQpCitXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNz
UG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqIHdlYnNpdGVEYXRhU3RvcmUsIElz
UHJld2FybWVkIGlzUHJld2FybWVkLCBDcm9zc09yaWdpbk1vZGUgY3Jvc3NPcmlnaW5Nb2RlKQog
ICAgIDogQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLmFsd2F5c1J1bnNBdEJhY2tn
cm91bmRQcmlvcml0eSgpKQogICAgICwgbV9iYWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NUaW1lcigq
dGhpcykKICAgICAsIG1fcHJvY2Vzc1Bvb2wocHJvY2Vzc1Bvb2wsIGlzUHJld2FybWVkID09IElz
UHJld2FybWVkOjpZZXMgPyBJc1dlYWs6OlllcyA6IElzV2Vhazo6Tm8pCkBAIC0yMTEsNiArMjEx
LDcgQEAgV2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHBy
b2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKgogICAgICwgbV91c2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5KG1ha2VVbmlxdWU8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eT4obWFrZVVu
aXF1ZVJlZjxVSVByb3h5Rm9yQ2FwdHVyZT4oKnRoaXMpKSkKICNlbmRpZgogICAgICwgbV9pc1By
ZXdhcm1lZChpc1ByZXdhcm1lZCA9PSBJc1ByZXdhcm1lZDo6WWVzKQorICAgICwgbV9jcm9zc09y
aWdpbk1vZGUoY3Jvc3NPcmlnaW5Nb2RlKQogICAgICwgbV9zaHV0ZG93blByZXZlbnRpbmdTY29w
ZUNvdW50ZXIoW3RoaXNdKFJlZkNvdW50ZXJFdmVudCBldmVudCkgeyBpZiAoZXZlbnQgPT0gUmVm
Q291bnRlckV2ZW50OjpEZWNyZW1lbnQpIG1heWJlU2h1dERvd24oKTsgfSkKIHsKICAgICBSRUxF
QVNFX0FTU0VSVChpc01haW5UaHJlYWRPckNoZWNrRGlzYWJsZWQoKSk7CkBAIC0xMTQ2LDYgKzEx
NDcsMTEgQEAgYm9vbCBXZWJQcm9jZXNzUHJveHk6OmNhbkJlQWRkZWRUb1dlYlByb2Nlc3NDYWNo
ZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyAgICBpZiAobV9jcm9z
c09yaWdpbk1vZGUgPT0gQ3Jvc3NPcmlnaW5Nb2RlOjpJc29sYXRlZCkgeworICAgICAgICBXRUJQ
Uk9DRVNTUFJPWFlfUkVMRUFTRV9MT0coUHJvY2VzcywgImNhbkJlQWRkZWRUb1dlYlByb2Nlc3ND
YWNoZTogTm90IGFkZGluZyB0byBwcm9jZXNzIGNhY2hlIGJlY2F1c2UgdGhlIHByb2Nlc3MgaXMg
Y3Jvc3Mtb3JpZ2luIGlzb2xhdGVkIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisK
ICAgICBpZiAoV2ViS2l0Ojppc0luc3BlY3RvclByb2Nlc3NQb29sKHByb2Nlc3NQb29sKCkpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKaW5kZXggYTQwZTY5ZGZhNTIyZGVkZWJhZmRiNWZjNmI5ZTcxZmNiOWI0YjA1OS4u
OWRjNzI4NDkwNGNlYWVmMGUwNDRlZjVkMjYyZjQ4ZWU5YTQ5MDRiNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRl
ICJXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRl
bnRpZmllci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzUmVwbGllcy5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NPcmlnaW5Nb2RlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CkBAIC0xMzUsNyArMTM2LDcgQEAgcHVi
bGljOgogCiAgICAgZW51bSBjbGFzcyBTaG91bGRMYXVuY2hQcm9jZXNzIDogYm9vbCB7IE5vLCBZ
ZXMgfTsKIAotICAgIHN0YXRpYyBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBjcmVhdGUoV2ViUHJvY2Vz
c1Bvb2wmLCBXZWJzaXRlRGF0YVN0b3JlKiwgSXNQcmV3YXJtZWQsIFNob3VsZExhdW5jaFByb2Nl
c3MgPSBTaG91bGRMYXVuY2hQcm9jZXNzOjpZZXMpOworICAgIHN0YXRpYyBSZWY8V2ViUHJvY2Vz
c1Byb3h5PiBjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wmLCBXZWJzaXRlRGF0YVN0b3JlKiwgSXNQcmV3
YXJtZWQsIFdlYkNvcmU6OkNyb3NzT3JpZ2luTW9kZSA9IFdlYkNvcmU6OkNyb3NzT3JpZ2luTW9k
ZTo6U2hhcmVkLCBTaG91bGRMYXVuY2hQcm9jZXNzID0gU2hvdWxkTGF1bmNoUHJvY2Vzczo6WWVz
KTsKICAgICBzdGF0aWMgUmVmPFdlYlByb2Nlc3NQcm94eT4gY3JlYXRlRm9yU2VydmljZVdvcmtl
cnMoV2ViUHJvY2Vzc1Bvb2wmLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmLCBXZWJzaXRl
RGF0YVN0b3JlJik7CiAKICAgICB+V2ViUHJvY2Vzc1Byb3h5KCk7CkBAIC00MTksOCArNDIwLDEw
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENhcHRpb25MYW5ndWFnZShjb25zdCBTdHJpbmcmKTsK
ICNlbmRpZgogCisgICAgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5Nb2RlIGNyb3NzT3JpZ2luTW9kZSgp
IGNvbnN0IHsgcmV0dXJuIG1fY3Jvc3NPcmlnaW5Nb2RlOyB9CisKIHByb3RlY3RlZDoKLSAgICBX
ZWJQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmLCBXZWJzaXRlRGF0YVN0b3JlKiwgSXNQcmV3
YXJtZWQpOworICAgIFdlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRh
U3RvcmUqLCBJc1ByZXdhcm1lZCwgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5Nb2RlKTsKIAogICAgIC8v
IEF1eGlsaWFyeVByb2Nlc3NQcm94eQogICAgIEFTQ0lJTGl0ZXJhbCBwcm9jZXNzTmFtZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJXZWJDb250ZW50Il9zOyB9CkBAIC00NDAsNiArNDQzLDcgQEAg
cHJvdGVjdGVkOgogCiAgICAgYm9vbCBzaG91bGRDb25maWd1cmVKU0NGb3JUZXN0aW5nKCkgY29u
c3QgZmluYWw7CiAgICAgYm9vbCBpc0pJVEVuYWJsZWQoKSBjb25zdCBmaW5hbDsKKyAgICBib29s
IHNob3VsZEVuYWJsZVNoYXJlZEFycmF5QnVmZmVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9j
cm9zc09yaWdpbk1vZGUgPT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5Nb2RlOjpJc29sYXRlZDsgfQog
CiAgICAgdm9pZCB2YWxpZGF0ZUZyZWV6ZXJTdGF0dXMoKTsKIApAQCAtNjIwLDYgKzYyNCw3IEBA
IHByaXZhdGU6CiAKICAgICBib29sIG1faGFzQ29tbWl0dGVkQW55UHJvdmlzaW9uYWxMb2FkcyB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzUHJld2FybWVkOworICAgIFdlYkNvcmU6OkNyb3NzT3Jp
Z2luTW9kZSBtX2Nyb3NzT3JpZ2luTW9kZSB7IFdlYkNvcmU6OkNyb3NzT3JpZ2luTW9kZTo6U2hh
cmVkIH07CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBib29sIG1faGFzSXNz
dWVkQXR0YWNobWVudEVsZW1lbnRSZWxhdGVkU2FuZGJveEV4dGVuc2lvbnMgeyBmYWxzZSB9Owog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBjMDM2MDlkM2FiOTI0
MWJiODEyYTMzNDA5OTgyNDVlZDU4OTBhNjdjLi5kNzI5YmFjYjU4OTA3NmFjYmIyMDFiOTI4Yjcy
YTYxYjVlYmYxYjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTgxNyw3
ICs4MTcsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogICAg
IHdlYlBhZ2UtPnNob3coKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9v
bCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYg
ZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBCcm93c2luZ0NvbnRleHRH
cm91cFN3aXRjaERlY2lzaW9uIGJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24sIEZy
YW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBhdXRvKiB3ZWJQYWdlID0gbV9m
cmFtZS0+cGFnZSgpOwogICAgIGlmICghd2ViUGFnZSkgewpAQCAtODM4LDcgKzgzOCw3IEBAIHZv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
Y29uc3QgUmVzb3VyY2VSZXNwb25zCiAgICAgV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uIHBvbGlj
eSA9IHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlUG9saWN5Q2xpZW50KCkuZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2Uod2ViUGFnZSwgbV9mcmFtZS5wdHIoKSwgcmVzcG9uc2UsIHJlcXVlc3QsIHVzZXJE
YXRhKTsKICAgICAvLyBJZiBhIGJyb3dzaW5nIGNvbnRleHQgc3dpdGNoIGlzIHJlcXVlc3RlZCwg
d2Ugc3RpbGwgbmVlZCB0byBzZW5kIHRoZSBJUEMgdG8gdGhlIFVJUHJvY2VzcyBpbiBvcmRlciB0
byBwcm9jZXNzLXN3YXAgaWYgbmVjZXNzYXJ5LCBldmVuIHRob3VnaCB0aGUKICAgICAvLyBpbmpl
Y3RlZCBidW5kbGUgaGFzIGFscmVhZHkgaGFuZGxlZCB0aGUgcG9saWN5IGRlY2lzaW9uLgotICAg
IGlmIChwb2xpY3kgPT0gV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uVXNlICYmICFuZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoKSB7CisgICAgaWYgKHBvbGljeSA9PSBXS0J1bmRsZVBhZ2VQ
b2xpY3lBY3Rpb25Vc2UgJiYgYnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiA9PSBC
cm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lzaW9uOjpTdGF5SW5Hcm91cCkgewogICAgICAg
ICBXRUJGUkFNRUxPQURFUkNMSUVOVF9SRUxFQVNFX0xPRyhOZXR3b3JrLCAiZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZTogY29udGludWluZyBiZWNhdXNlIGluamVjdGVkIGJ1bmRsZSBz
YXlzIHNvIik7CiAgICAgICAgIGZ1bmN0aW9uKFBvbGljeUFjdGlvbjo6VXNlLCBpZGVudGlmaWVy
KTsKICAgICAgICAgcmV0dXJuOwpAQCAtODU1LDcgKzg1NSw3IEBAIHZvaWQgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VS
ZXNwb25zCiAgICAgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSA9IHBvbGljeSA9PSBX
S0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb25Vc2U7CiAgICAgYXV0byBwcm90ZWN0b3IgPSBtX2ZyYW1l
LmNvcHlSZWYoKTsKICAgICB1aW50NjRfdCBsaXN0ZW5lcklEID0gbV9mcmFtZS0+c2V0VXBQb2xp
Y3lMaXN0ZW5lcihpZGVudGlmaWVyLCBXVEZNb3ZlKGZ1bmN0aW9uKSwgV2ViRnJhbWU6OkZvck5h
dmlnYXRpb25BY3Rpb246Ok5vKTsKLSAgICBpZiAoIXdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UobV9mcmFtZS0+ZnJhbWVJRCgpLCBt
X2ZyYW1lLT5pbmZvKCksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVl
c3QsIGNhblNob3dSZXNwb25zZSwgZG93bmxvYWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVj
dGVkQnVuZGxlLCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBtYWluUmVzb3VyY2VM
b2FkSWRlbnRpZmllciwgbGlzdGVuZXJJRCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSkpIHsK
KyAgICBpZiAoIXdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2UobV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCksIGlkZW50
aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dSZXNwb25zZSwg
ZG93bmxvYWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBicm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaERlY2lzaW9uLCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgbGlz
dGVuZXJJRCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0
c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSkpIHsKICAgICAgICAgV0VCRlJBTUVM
T0FERVJDTElFTlRfUkVMRUFTRV9MT0coTmV0d29yaywgImRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2U6IGlnbm9yaW5nIGJlY2F1c2UgV2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZSBmYWlsZWQiKTsKICAgICAgICAgbV9mcmFtZS0+ZGlkUmVjZWl2ZVBvbGljeURlY2lz
aW9uKGxpc3RlbmVySUQsIFBvbGljeURlY2lzaW9uIHsgaWRlbnRpZmllciwgc3RkOjpudWxsb3B0
LCBQb2xpY3lBY3Rpb246Oklnbm9yZSwgMCwgeyB9LCB7IH0gfSk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaAppbmRleCA5NjY2ZDY3Zjg2MjA4ZDliNmM2NGY0MTFkYmQ2M2JmMDE1
OTBhNzExLi5mNjEyYjk3M2FjYTU5NTg4ZDg1M2FkOWJiZjhjY2IzZTY2ZDY3MmJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTI5LDcgKzEyOSw3IEBAIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6RnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBXZWJDb3JlOjpOYXZpZ2F0
aW9uQWN0aW9uJiwgV2ViQ29yZTo6TmV3RnJhbWVPcGVuZXJQb2xpY3kpIGZpbmFsOwogICAgIHZv
aWQgZGlzcGF0Y2hTaG93KCkgZmluYWw7CiAgICAgCi0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBv
bGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV2Vi
Q29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2hE
ZWNpc2lvbiwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5h
dmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3Jl
OjpGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAg
IHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNv
cmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3Jl
OjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsK
ICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMjcyYjU0N2ZlZDM1OWZjZDI3ZTZiYmRmNzY1OTE0YzNh
YjkzYmI4OS4uN2QxMmFjYmExYmJhNGFkOTIxNzcwOGEyYTcwZjkxM2Q2OTVlZWY2YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTI5LDYgKzEyOSw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nl
dHRpbmdzLmg+CkBAIC01MjMsNiArNTI0LDggQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXpl
V2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAg
ICAKICAgICBjb21tb25WTSgpLnNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZFRocm93
KHBhcmFtZXRlcnMuc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFy
YXRpb24pOwogCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6c2V0Q3Jvc3NPcmlnaW5Nb2Rl
KHBhcmFtZXRlcnMuY3Jvc3NPcmlnaW5Nb2RlKTsKKwogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRS
T0xTKQogICAgIHNldEVuYWJsZWRTZXJ2aWNlcyhwYXJhbWV0ZXJzLmhhc0ltYWdlU2VydmljZXMs
IHBhcmFtZXRlcnMuaGFzU2VsZWN0aW9uU2VydmljZXMsIHBhcmFtZXRlcnMuaGFzUmljaENvbnRl
bnRTZXJ2aWNlcyk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDA1MTYy
NzAwOWE2NmUxMjRhYTk2MzYzNzg0YTZkNzRjZWIwNDNiZjguLjNjMjQ4MTMxZTVkYjgxOWFjMjNi
NmYxOGYyOGY5YmIxMjFmNGJiYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTI3
LDcgKzEyNyw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6RnJhbWUqIGRpc3BhdGNoQ3JlYXRl
UGFnZShjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgV2ViQ29yZTo6TmV3RnJhbWVP
cGVuZXJQb2xpY3kpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hTaG93KCkgZmluYWw7CiAKLSAg
ICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFs
OworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lzaW9uLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0
aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dB
Y3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIGNvbnN0IFdURjo6U3RyaW5nJiBm
cmFtZU5hbWUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQ
b2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYgcmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgV2ViQ29yZTo6UG9saWN5
RGVjaXNpb25Nb2RlLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZy
YW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygp
IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCAwY2ZiZWVlMDQ0N2QyZTI4
NTc3MjJmZTBhNjY0MTUxOTQwOWIyYWZiLi5mYmFlYThlYTY4NjhkYTgxMjRjMDExMmI1MGIyY2Q0
NTVlNzE1ZjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtODU1LDcgKzg1NSw3
IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygpCiAgICAgW1t3ZWJW
aWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3U2hvdzp3ZWJWaWV3XTsKIH0KIAotdm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIg
aWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3Vw
U3dpdGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aERlY2lzaW9uLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAg
ICAgV2ViVmlldyAqd2ViVmlldyA9IGdldFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBjNWFmYTEzMzdkYjRlMmZiNjdjZWU0MGYx
MDQ1ZjFjNjk2YWMyN2Y3Li4yODk1M2Q2ZjZkYjQzYTFiMzY2NDI5MmQzNjdlNmI3ZTA2YzA2NDhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC01MTksNyArNTE5LDcgQEAgdm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hTaG93KCkKICAgICAgICAgdWktPndlYlZp
ZXdTaG93KHdlYlZpZXcpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYsIEJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24sIEZyYW1lUG9saWN5RnVuY3Rp
b24mJiBmdW5jdGlvbikKIHsKICAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gbV93ZWJGcmFtZS0+d2Vi
VmlldygpOwogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKG1fd2ViRnJhbWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNjE0NjVjMTFmYzI1NTczMjQ4MjE1ODEyNTkyNTE5YzVh
NjExYWZkMi4uZWI3ZjIzM2NmNGYyZDQzZGUxNzc2ZTJiMGQzNjJmYWMyZGVhZDQ0MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGRpc3BhdGNoRGlkRmluaXNoTG9hZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRS
ZWFjaExheW91dE1pbGVzdG9uZShPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPikg
b3ZlcnJpZGU7CiAKLSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9v
bCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1
bmN0aW9uJiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNw
b25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmLCBXZWJDb3JlOjpCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lzaW9uLCBXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlv
biYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSos
IGNvbnN0IFdURjo6U3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKICAgICB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpO
YXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9y
bVN0YXRlKiwgV2ViQ29yZTo6UG9saWN5RGVjaXNpb25Nb2RlLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDlhNGIwMmQzYWYwMWQ5NmZjZjBkM2Uw
NDAzOTA3NzFiZDUzNDE3YmMuLmZkYzAxZTBhOTEwODRjYzU2YzI4ZjEwYTg5Yjg2YTdmZmNlMzEw
NTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOSBAQAorMjAyMS0wOC0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIEVuYWJsZSBTaGFyZWRBcnJheUJ1ZmZlciBzdXBwb3J0IHdoZW4gQ09PUC9D
T0VQIGhlYWRlcnMgYXJlIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyOTU1OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIzOTE5NDU+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBBZGQgQVBJ
IHRlc3QgY292ZXJhZ2UuIFNoYXJlZEFycmF5QnVmZmVyIHN1cHBvcnQgaXMgY3VycmVudGx5IGZv
cmNlZnVsbHkgZW5hYmxlZCBieQorICAgICAgICBydW4td2Via2l0LXRlc3RzLnB5IHNvIGl0IHdv
dWxkIG5vdCBiZSBwcmFjdGljYWwgdG8gd3JpdGUgbGF5b3V0IHRlc3RzIGZvciB0aGlzIGF0Cisg
ICAgICAgIHRoZSBtb21lbnQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAgICAgICAoLVtQU09OU2NoZW1l
IGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOnRvRGF0YTp3aXRoQ09PUFZhbHVlOndpdGhDT0VQVmFs
dWU6XSk6CisgICAgICAgICgtW1BTT05TY2hlbWUgd2ViVmlldzpzdGFydFVSTFNjaGVtZVRhc2s6
XSk6CisKIDIwMjEtMDgtMzEgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgog
CiAgICAgICAgIFtnaXQtd2Via2l0XSBBdXRvbWF0aWMgcmViYXNpbmcgb3IgcHVsbC1yZXF1ZXN0
cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9j
ZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggYTYzZjc0MTlkZGRjYjkyY2Iy
MzMyYmM2OWYwMTI1NDVmZmY4MWRmNS4uYzYzMzE2Nzg1ODUwNzNkZGViZGY0NDI2ZDIwM2RmYjFk
NTZiYjcyMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC0yNTEsMTMgKzI1
MSwxNCBAQCBAaW50ZXJmYWNlIFBTT05TY2hlbWUgOiBOU09iamVjdCA8V0tVUkxTY2hlbWVIYW5k
bGVyPiB7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gX3JlZGlyZWN0czsKICAgICBIYXNo
TWFwPFN0cmluZywgUmV0YWluUHRyPE5TRGF0YT4+IF9kYXRhTWFwcGluZ3M7CiAgICAgSGFzaE1h
cDxTdHJpbmcsIFN0cmluZz4gX2Nvb3BWYWx1ZXM7CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmlu
Zz4gX2NvZXBWYWx1ZXM7CiAgICAgSGFzaFNldDxpZCA8V0tVUkxTY2hlbWVUYXNrPj4gX3J1bm5p
bmdUYXNrczsKICAgICBib29sIF9zaG91bGRSZXNwb25kQXN5bmNocm9ub3VzbHk7CiB9CiAtIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhCeXRlczooY29uc3QgY2hhciopYnl0ZXM7CiAtICh2b2lkKWFk
ZFJlZGlyZWN0RnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKilzb3VyY2VVUkxTdHJpbmcgdG9VUkxT
dHJpbmc6KE5TU3RyaW5nICopZGVzdGluYXRpb25VUkxTdHJpbmc7CiAtICh2b2lkKWFkZE1hcHBp
bmdGcm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXVybFN0cmluZyB0b0RhdGE6KGNvbnN0IGNoYXIq
KWRhdGE7Ci0tICh2b2lkKWFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXVybFN0
cmluZyB0b0RhdGE6KGNvbnN0IGNoYXIqKWRhdGEgd2l0aENPT1BWYWx1ZTooY29uc3QgY2hhciop
Y29vcFZhbHVlOworLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1
cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhIHdpdGhDT09QVmFsdWU6KGNvbnN0IGNo
YXIqKWNvb3BWYWx1ZSB3aXRoQ09FUFZhbHVlOihjb25zdCBjaGFyKiljb2VwVmFsdWU7CiBAZW5k
CiAKIEBpbXBsZW1lbnRhdGlvbiBQU09OU2NoZW1lCkBAIC0yNzksMTEgKzI4MCwxMyBAQCAtICh2
b2lkKWFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXVybFN0cmluZyB0b0RhdGE6
KGNvbnN0IGNoYXIqKWRhdGEKICAgICBfZGF0YU1hcHBpbmdzLnNldCh1cmxTdHJpbmcsIFtOU0Rh
dGEgZGF0YVdpdGhCeXRlc05vQ29weToodm9pZCopZGF0YSBsZW5ndGg6c3RybGVuKGRhdGEpIGZy
ZWVXaGVuRG9uZTpOT10pOwogfQogCi0tICh2b2lkKWFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOihO
U1N0cmluZyAqKXVybFN0cmluZyB0b0RhdGE6KGNvbnN0IGNoYXIqKWRhdGEgd2l0aENPT1BWYWx1
ZTooY29uc3QgY2hhciopY29vcFZhbHVlCistICh2b2lkKWFkZE1hcHBpbmdGcm9tVVJMU3RyaW5n
OihOU1N0cmluZyAqKXVybFN0cmluZyB0b0RhdGE6KGNvbnN0IGNoYXIqKWRhdGEgd2l0aENPT1BW
YWx1ZTooY29uc3QgY2hhciopY29vcFZhbHVlIHdpdGhDT0VQVmFsdWU6KGNvbnN0IGNoYXIqKWNv
ZXBWYWx1ZQogewogICAgIFtzZWxmIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOnVybFN0cmluZyB0
b0RhdGE6ZGF0YV07CiAgICAgaWYgKGNvb3BWYWx1ZSkKICAgICAgICAgX2Nvb3BWYWx1ZXMuYWRk
KHVybFN0cmluZywgY29vcFZhbHVlKTsKKyAgICBpZiAoY29lcFZhbHVlKQorICAgICAgICBfY29l
cFZhbHVlcy5hZGQodXJsU3RyaW5nLCBjb2VwVmFsdWUpOwogfQogCiAtICh2b2lkKXNldFNob3Vs
ZFJlc3BvbmRBc3luY2hyb25vdXNseTooQk9PTCl2YWx1ZQpAQCAtMzI3LDYgKzMzMCw5IEBAIC0g
KHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdGFydFVSTFNjaGVtZVRhc2s6KGlk
IDxXS1VSTFNjaGVtZVRhc2s+KXRhCiAgICAgICAgIGF1dG8gY29vcFZhbHVlID0gX2Nvb3BWYWx1
ZXMuZ2V0KFtmaW5hbFVSTCBhYnNvbHV0ZVN0cmluZ10pOwogICAgICAgICBpZiAoIWNvb3BWYWx1
ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBbaGVhZGVyRGljdGlvbmFyeSBzZXRPYmplY3Q6KE5T
U3RyaW5nICopY29vcFZhbHVlIGZvcktleTpAIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il07
CisgICAgICAgIGF1dG8gY29lcFZhbHVlID0gX2NvZXBWYWx1ZXMuZ2V0KFtmaW5hbFVSTCBhYnNv
bHV0ZVN0cmluZ10pOworICAgICAgICBpZiAoIWNvZXBWYWx1ZS5pc0VtcHR5KCkpCisgICAgICAg
ICAgICBbaGVhZGVyRGljdGlvbmFyeSBzZXRPYmplY3Q6KE5TU3RyaW5nICopY29lcFZhbHVlIGZv
cktleTpAIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiXTsKIAogICAgICAgICBhdXRvIHJl
c3BvbnNlID0gYWRvcHROUyhbW05TSFRUUFVSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDpm
aW5hbFVSTC5nZXQoKSBzdGF0dXNDb2RlOjIwMCBIVFRQVmVyc2lvbjpAIkhUVFAvMS4xIiBoZWFk
ZXJGaWVsZHM6aGVhZGVyRGljdGlvbmFyeV0pOwogICAgICAgICBbdGFzayBkaWRSZWNlaXZlUmVz
cG9uc2U6cmVzcG9uc2UuZ2V0KCldOwpAQCAtNzE5MSwzNiArNzE5NywzOSBAQCB3aW5kb3cub25s
b2FkID0gZnVuY3Rpb24oKSB7CiAKIGVudW0gY2xhc3MgSXNTYW1lT3JpZ2luIDogYm9vbCB7IE5v
LCBZZXMgfTsKIGVudW0gY2xhc3MgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgOiBib29sIHsgTm8sIFll
cyB9Owotc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3Vy
Y2VDT09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPT1AsIElzU2FtZU9yaWdpbiBpc1NhbWVP
cmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RT
d2FwIGV4cGVjdFN3YXApCitzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0
IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRVAsIGNvbnN0IGNoYXIqIGRl
c3RpbmF0aW9uQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT0VQLCBJc1NhbWVPcmlnaW4g
aXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwg
RXhwZWN0U3dhcCBleHBlY3RTd2FwKQogewogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwogICAgIGF1dG8gcHJvY2Vzc1Bv
b2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlv
bjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBib29sIHNvdXJjZVNob3Vs
ZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgJiYgIXN0cmNtcChzb3VyY2VDT09Q
LCAic2FtZS1vcmlnaW4iKSAmJiBzb3VyY2VDT0VQICYmICFzdHJjbXAoc291cmNlQ09FUCwgInJl
cXVpcmUtY29ycCIpOworICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNv
bGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPT1AsICJzYW1l
LW9yaWdpbiIpICYmIGRlc3RpbmF0aW9uQ09FUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9uQ09FUCwg
InJlcXVpcmUtY29ycCIpOworICAgIEVYUEVDVF9UUlVFKHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmln
aW5Jc29sYXRlZCA9PSBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCB8fCBl
eHBlY3RTd2FwID09IEV4cGVjdFN3YXA6Olllcyk7CiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1
cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
ICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0
KCldOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBmb3IgKF9XS0V4cGVyaW1lbnRh
bEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVz
XSkgewotICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIkNyb3NzT3Jp
Z2luT3BlbmVyUG9saWN5RW5hYmxlZCJdKSB7CisgICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNF
cXVhbFRvU3RyaW5nOkAiQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lFbmFibGVkIl0pCisgICAgICAg
ICAgICBbW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMg
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKKyAgICAgICAgZWxzZSBpZiAoW2ZlYXR1
cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lFbmFibGVk
Il0pCiAgICAgICAgICAgICBbW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0
RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICB9CiAgICAgfQogCiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhb
W1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBpZiAoaXNTYW1lT3JpZ2luID09IElzU2Ft
ZU9yaWdpbjo6WWVzKSB7Ci0gICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5n
OkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOndpbmRvd09wZW5TYW1l
T3JpZ2luQ09PUFRlc3RCeXRlcyB3aXRoQ09PUFZhbHVlOnNvdXJjZUNPT1BdOworICAgICAgICBb
aGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuU2FtZU9yaWdpbkNPT1BUZXN0Qnl0ZXMgd2l0aENP
T1BWYWx1ZTpzb3VyY2VDT09QIHdpdGhDT0VQVmFsdWU6c291cmNlQ09FUF07CiAgICAgICAgIGlm
IChkb1NlcnZlclNpZGVSZWRpcmVjdCA9PSBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzKSB7CiAg
ICAgICAgICAgICBbaGFuZGxlciBhZGRSZWRpcmVjdEZyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3
LndlYmtpdC5vcmcvcG9wdXAuaHRtbCIgdG9VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5v
cmcvcG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCJdOwotICAgICAgICAgICAgW2hhbmRsZXIgYWRk
TWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvcG9wdXAtYWZ0ZXIt
cmVkaXJlY3QuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNP
T1BdOworICAgICAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29u
Oi8vd3d3LndlYmtpdC5vcmcvcG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCIgdG9EYXRhOiJwb3B1
cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1Agd2l0aENPRVBWYWx1ZTpkZXN0aW5hdGlv
bkNPRVBdOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdG
cm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLmh0bWwiIHRvRGF0YToi
cG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QXTsKKyAgICAgICAgICAgIFtoYW5k
bGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVw
Lmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QIHdpdGhD
T0VQVmFsdWU6ZGVzdGluYXRpb25DT0VQXTsKICAgICB9IGVsc2UgewotICAgICAgICBbaGFuZGxl
ciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0
bWwiIHRvRGF0YTp3aW5kb3dPcGVuQ3Jvc3NPcmlnaW5DT09QVGVzdEJ5dGVzIHdpdGhDT09QVmFs
dWU6c291cmNlQ09PUF07CisgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5n
OkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOndpbmRvd09wZW5Dcm9z
c09yaWdpbkNPT1BUZXN0Qnl0ZXMgd2l0aENPT1BWYWx1ZTpzb3VyY2VDT09QIHdpdGhDT0VQVmFs
dWU6c291cmNlQ09FUF07CiAgICAgICAgIGlmIChkb1NlcnZlclNpZGVSZWRpcmVjdCA9PSBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6WWVzKSB7CiAgICAgICAgICAgICBbaGFuZGxlciBhZGRSZWRpcmVj
dEZyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC5odG1sIiB0b1VSTFN0
cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiXTsK
LSAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3
dy5hcHBsZS5jb20vcG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0
aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1BdOworICAgICAgICAgICAgW2hhbmRsZXIgYWRkTWFw
cGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC1hZnRlci1yZWRp
cmVjdC5odG1sIiB0b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9uQ09PUCB3
aXRoQ09FUFZhbHVlOmRlc3RpbmF0aW9uQ09FUF07CiAgICAgICAgIH0gZWxzZQotICAgICAgICAg
ICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNv
bS9wb3B1cC5odG1sIiB0b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9uQ09P
UF07CisgICAgICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246
Ly93d3cuYXBwbGUuY29tL3BvcHVwLmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6
ZGVzdGluYXRpb25DT09QIHdpdGhDT0VQVmFsdWU6ZGVzdGluYXRpb25DT0VQXTsKICAgICB9CiAg
ICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQo
KSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CiAKQEAgLTcyOTAsNiArNzI5OSwyNiBAQCBzdGF0aWMg
dm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0
IGNoYXIqIGRlc3RpbmF0aQogICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOwog
ICAgIH1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2Ny
aXB0KTsKKyAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBl
dmFsdWF0ZUphdmFTY3JpcHQ6QCJzZWxmLmNyb3NzT3JpZ2luSXNvbGF0ZWQgPyAnaXNvbGF0ZWQn
IDogJ25vdC1pc29sYXRlZCciIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNF
cnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKmNyb3NzT3JpZ2luSXNvbGF0ZWQgPSAo
TlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlmIChzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2lu
SXNvbGF0ZWQpCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJpc29sYXRlZCIsIGNyb3Nz
T3JpZ2luSXNvbGF0ZWQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RS
RVEoQCJub3QtaXNvbGF0ZWQiLCBjcm9zc09yaWdpbklzb2xhdGVkKTsKKyAgICAgICAgZmluaXNo
ZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7CisgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0
ID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic2VsZi5TaGFyZWRB
cnJheUJ1ZmZlciA/ICdoYXMtc2FiJyA6ICdkb2VzLW5vdC1oYXZlLXNhYiciIGNvbXBsZXRpb25I
YW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJp
bmcgKmhhc1NBQiA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYgKHNvdXJjZVNob3Vs
ZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCkKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImhh
cy1zYWIiLCBoYXNTQUIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RS
RVEoQCJkb2VzLW5vdC1oYXZlLXNhYiIsIGhhc1NBQik7CisgICAgICAgIGZpbmlzaGVkUnVubmlu
Z1NjcmlwdCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZm
aW5pc2hlZFJ1bm5pbmdTY3JpcHQpOwogCiAgICAgLy8gT3BlbmVlIHNob3VsZCBub3QgaGF2ZSBh
biBvcGVuZXIgb3IgYSBuYW1lLgogICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOwpA
QCAtNzMyMCw4NyArNzM0OSwyMzUgQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGkKICAgICAgICAg
ZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKICAgICB9XTsKICAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7CisgICAgZmluaXNoZWRSdW5uaW5n
U2NyaXB0ID0gZmFsc2U7CisgICAgW2NyZWF0ZWRXZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpA
InNlbGYuY3Jvc3NPcmlnaW5Jc29sYXRlZCA/ICdpc29sYXRlZCcgOiAnbm90LWlzb2xhdGVkJyIg
Y29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAg
ICAgICBOU1N0cmluZyAqY3Jvc3NPcmlnaW5Jc29sYXRlZCA9IChOU1N0cmluZyAqKXJlc3VsdDsK
KyAgICAgICAgaWYgKGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkKQorICAg
ICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiaXNvbGF0ZWQiLCBjcm9zc09yaWdpbklzb2xhdGVk
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAibm90LWlzb2xh
dGVkIiwgY3Jvc3NPcmlnaW5Jc29sYXRlZCk7CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1Njcmlw
dCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hl
ZFJ1bm5pbmdTY3JpcHQpOworICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAg
IFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJzZWxmLlNoYXJlZEFycmF5QnVm
ZmVyID8gJ2hhcy1zYWInIDogJ2RvZXMtbm90LWhhdmUtc2FiJyIgY29tcGxldGlvbkhhbmRsZXI6
IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAqaGFz
U0FCID0gKE5TU3RyaW5nICopcmVzdWx0OworICAgICAgICBpZiAoZGVzdGluYXRpb25TaG91bGRC
ZUNyb3NzT3JpZ2luSXNvbGF0ZWQpCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJoYXMt
c2FiIiwgaGFzU0FCKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVR
KEAiZG9lcy1ub3QtaGF2ZS1zYWIiLCBoYXNTQUIpOworICAgICAgICBmaW5pc2hlZFJ1bm5pbmdT
Y3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmlu
aXNoZWRSdW5uaW5nU2NyaXB0KTsKIAogICAgIGNyZWF0ZWRXZWJWaWV3ID0gbnVsbHB0cjsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2lu
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgInNhbWUtb3JpZ2luIiwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NP
T1BTYW1lT3JpZ2luMykKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9u
ZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCit7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUi
LCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQoreworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwg
InJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
MikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUt
bm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCit7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZl
LW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
bkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0
ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQoreworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2Fm
ZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQor
eworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwg
InVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVP
cmlnaW5BbGxvd1BvcHVwKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luLWFsbG93LXBvcHVwIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwor
fQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9y
aWdpblRvQ09PUFNhbWVPcmlnaW4yKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwor
fQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9y
aWdpblRvQ09PUFNhbWVPcmlnaW4zKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09Q
QW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmln
aW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQor
eworICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1c2UgdGhlIGRlc3RpbmF0aW9uIGlzIG1pc3Npbmcg
Q09FUC4KKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJl
LWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBT
YW1lT3JpZ2luKQoreworICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1c2UgdGhlIHNvdXJjZSBpcyBt
aXNzaW5nIENPRVAuCisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BT
YW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVz
ZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4uCi0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9y
aWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdp
bldpdGhSZWRpcmVjdCkKK3sKKyAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJl
ZGlyZWN0IGRvZXNuJ3QgaGF2ZSBDT09QPXNhbWUtb3JpZ2luIGFuZCBDT0VQPXJlcXVpcmUtY29y
cC4KKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNv
cnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luV2l0aG91dENPT1BXaXRoUmVkaXJlY3QpCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6Tm8pOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3
YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9D
T09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsICJz
YW1lLW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51
bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmln
aW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luNCkKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1
bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmln
aW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2Ft
ZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09Q
U2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCit7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUi
LCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjQpCit7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUi
LCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdD
cm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIiwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9t
Q09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCit7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUt
b3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUFNhbWVPcmln
aW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWly
ZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQ
U2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIs
IG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93
UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ct
cG9wdXAiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5B
bGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZy
b21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25l
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQoreworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2Fm
ZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZwppbmRleCBjOWQ1MTQxZmE3NzVhMTAyY2NhZjMzYzBkODIxNmZkZmRkYTliYjcxLi5hOTMyZGRj
MTgyZmYzOWJiY2E1MjBmYmE5ZDRkMTMwNGQ3OTUxODIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMS0wOC0yNyAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBTaGFyZWRBcnJheUJ1ZmZlciBzdXBwb3J0
IHdoZW4gQ09PUC9DT0VQIGhlYWRlcnMgYXJlIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTU1OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
ODIzOTE5NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAg
ICAgICBSZWJhc2VsaW5lIGEgZmV3IHdlYi1wbGF0Zm9ybS10ZXN0cyBub3cgdGhhdCB3aW5kb3cu
Y3Jvc3NPcmlnaW5Jc29sYXRlZCBwcm9wZXJseSByZXR1cm5zCisgICAgICAgIHRydWUgd2hlbiBD
T09QK0NPRVAgYXJlIHVzZWQuCisKKyAgICAgICAgTm90ZSB0aGF0IFNoYXJlZEFycmF5QnVmZmVy
IGFyZSBhbHJlYWR5IGZvcmNlZnVsbHkgZW5hYmxlZCBieSBydW4td2Via2l0LXRlc3RzLnB5IHdo
ZW4gcnVubmluZworICAgICAgICB0aGUgbGF5b3V0IHRlc3RzLCB3aGljaCBpcyB3aHkgdGhlcmUg
YXJlIG5vdCBtb3JlIGxheW91dCB0ZXN0IHJlc3VsdHMgY2hhbmdlcy4gQXQgc29tZSBwb2ludCwK
KyAgICAgICAgd2Ugc2hvdWxkIHN0b3AgZm9yY2VmdWxseSBlbmFibGluZyBTaGFyZWRBcnJheUJ1
ZmZlciB3aGVuIHJ1bm5pbmcgd2ViLXBsYXRmb3JtLXRlc3RzIGF0IGxlYXN0LAorICAgICAgICBz
aW5jZSBXUFQgdGVzdHMgYWxyZWFkeSBtYWtlIHN1cmUgdG8gdXNlIENPT1ArQ09FUCB3aGVuIHRl
c3RpbmcgU2hhcmVkQXJyYXlCdWZmZXIuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL3NlcmlhbGl6ZS1zaGFyZWRhcnJheWJ1ZmZlci10aHJvd3MuaHR0cHMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1l
bWJlZGRlci1wb2xpY3kvY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkLXBlcm1pc3Npb24uaHR0cHMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICBOb3RlIHRoYXQgc29tZSBzdWJ0ZXN0cyBhcmUgZmFpbGluZyBi
ZWNhdXNlIHdlIGRvbid0IHN1cHBvcnQgdGhlIFBlcm1pc3Npb25zLVBvbGljeSBIVFRQIGhlYWRl
cjoKKyAgICAgICAgLSBodHRwczovL3czYy5naXRodWIuaW8vd2ViYXBwc2VjLXBlcm1pc3Npb25z
LXBvbGljeS8KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdp
bi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0OgorCiAyMDIxLTA4LTMxICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlc3luYyB3ZWItcGxh
dGZvcm0tdGVzdHMvc2hhZG93LWRvbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvc2VyaWFsaXplLXNoYXJlZGFycmF5YnVm
ZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJyYXlidWZmZXIt
dGhyb3dzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBhY2MwNDY0NjAzYjEwY2QwOWJkMTdmMDRi
MmVmNmRjNDg0MzVkMjM1Li42ZDBiYjY2ZmFmMWM0YTk2ZjBhYmRiYTk3Zjk2MTVmNmY5ZjMzNzRh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJyYXlidWZmZXItdGhyb3dzLmh0dHBzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVkYXJyYXlidWZmZXItdGhyb3dzLmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMSwzICsxLDUgQEAKIAotRkFJTCBJbmRleGVkREI6IEF0dGVtcHRpbmcgdG8g
c2VyaWFsaXplIGEgU2hhcmVkQXJyYXlCdWZmZXIgc2hvdWxkIHRocm93IGFzc2VydF90cnVlOiBU
aGUgcGFnZSBpcyBzZXJ2ZWQgd2l0aCBDT09QIGFuZCBDT0VQLCBpdCBzaG91bGQgYmUgY3Jvc3Mt
b3JpZ2luLWlzb2xhdGVkLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBJbmRleGVkREI6
IEF0dGVtcHRpbmcgdG8gc2VyaWFsaXplIGEgU2hhcmVkQXJyYXlCdWZmZXIgc2hvdWxkIHRocm93
IGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4geworICAgICAgICAgICAgcnEgPSBv
YmpTdG9yZS5wdXQoe3NhYjogc2FifSwgJ2tleScpOworICAgICAgICB9IiB0aHJldyBvYmplY3Qg
IkRhdGFFcnJvcjogRmFpbGVkIHRvIHN0b3JlIHJlY29yZCBpbiBhbiBJREJPYmplY3RTdG9yZTog
VGhlIG9iamVjdCBzdG9yZSB1c2VzIGluLWxpbmUga2V5cyBhbmQgdGhlIGtleSBwYXJhbWV0ZXIg
d2FzIHByb3ZpZGVkLiIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gRGF0YUNsb25lRXJyb3I6
IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAwLCBleHBlY3RlZCAyNQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mt
b3JpZ2luLWVtYmVkZGVyLXBvbGljeS9jcm9zcy1vcmlnaW4taXNvbGF0ZWQtcGVybWlzc2lvbi5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9jcm9zcy1vcmlnaW4taXNv
bGF0ZWQtcGVybWlzc2lvbi5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggM2I3NzY2MTMzODk0MDdl
ZGM0MzgyZDhiODJlNmY3YjBkOWYyZTcyYy4uZTYwZTQyYmZiMTBlODg3YTBiOGJkMzVmNzRiZmY4
NjJkMGI2OTQ2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvY3Jvc3Mtb3JpZ2lu
LWlzb2xhdGVkLXBlcm1pc3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRk
ZXItcG9saWN5L2Nyb3NzLW9yaWdpbi1pc29sYXRlZC1wZXJtaXNzaW9uLmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtMSwyNCArMSwyNCBAQAogCi1GQUlMIGZyYW1lOiBvcmlnaW4gPSBodHRwczovL2xv
Y2FsaG9zdDo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0
cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0
Ojk0NDMsIHZhbHVlID0gKiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFs
c2UKLUZBSUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0g
c2VsZiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLVBBU1MgZnJh
bWU6IG9yaWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKFwpCi1QQVNTIGZy
YW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHVuZGVmaW5lZAot
UEFTUyBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSAqCi1Q
QVNTIGZyYW1lOiBvcmlnaW4gPSBodHRwczovLzEyNy4wLjAuMTo5NDQzLCB2YWx1ZSA9IHNlbGYK
LVBBU1MgZnJhbWU6IG9yaWdpbiA9IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMsIHZhbHVlID0gKFwp
Ci1GQUlMIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGh0dHBzLCB2YWx1ZSA9IHVuZGVmaW5l
ZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZGVkaWNh
dGVkIHdvcmtlcjogc2NoZW1lID0gaHR0cHMsIHZhbHVlID0gKiBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0g
aHR0cHMsIHZhbHVlID0gc2VsZiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3Qg
ZmFsc2UKLVBBU1MgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gaHR0cHMsIHZhbHVlID0gKFwp
Ci1QQVNTIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGRhdGEsIHZhbHVlID0gdW5kZWZpbmVk
Ci1QQVNTIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGRhdGEsIHZhbHVlID0gKgotUEFTUyBk
ZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBkYXRhLCB2YWx1ZSA9IHNlbGYKLVBBU1MgZGVkaWNh
dGVkIHdvcmtlcjogc2NoZW1lID0gZGF0YSwgdmFsdWUgPSAoXCkKLUZBSUwgZGVkaWNhdGVkIHdv
cmtlcjogc2NoZW1lID0gYmxvYiwgdmFsdWUgPSB1bmRlZmluZWQgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlCi1GQUlMIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9
IGJsb2IsIHZhbHVlID0gKiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFs
c2UKLUZBSUwgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gYmxvYiwgdmFsdWUgPSBzZWxmIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQotUEFTUyBkZWRpY2F0ZWQg
d29ya2VyOiBzY2hlbWUgPSBibG9iLCB2YWx1ZSA9IChcKQorUEFTUyBmcmFtZTogb3JpZ2luID0g
aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MywgdmFsdWUgPSB1bmRlZmluZWQKK1BBU1MgZnJhbWU6IG9y
aWdpbiA9IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMsIHZhbHVlID0gKgorUEFTUyBmcmFtZTogb3Jp
Z2luID0gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MywgdmFsdWUgPSBzZWxmCitGQUlMIGZyYW1lOiBv
cmlnaW4gPSBodHRwczovL2xvY2FsaG9zdDo5NDQzLCB2YWx1ZSA9IChcKSBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKK0ZBSUwgZnJhbWU6IG9yaWdpbiA9IGh0dHBz
Oi8vMTI3LjAuMC4xOjk0NDMsIHZhbHVlID0gdW5kZWZpbmVkIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly8xMjcu
MC4wLjE6OTQ0MywgdmFsdWUgPSAqIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBn
b3QgdHJ1ZQorRkFJTCBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFs
dWUgPSBzZWxmIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJ
TCBmcmFtZTogb3JpZ2luID0gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0MywgdmFsdWUgPSAoXCkgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCitQQVNTIGRlZGljYXRlZCB3
b3JrZXI6IHNjaGVtZSA9IGh0dHBzLCB2YWx1ZSA9IHVuZGVmaW5lZAorUEFTUyBkZWRpY2F0ZWQg
d29ya2VyOiBzY2hlbWUgPSBodHRwcywgdmFsdWUgPSAqCitQQVNTIGRlZGljYXRlZCB3b3JrZXI6
IHNjaGVtZSA9IGh0dHBzLCB2YWx1ZSA9IHNlbGYKK0ZBSUwgZGVkaWNhdGVkIHdvcmtlcjogc2No
ZW1lID0gaHR0cHMsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1
dCBnb3QgdHJ1ZQorRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBkYXRhLCB2YWx1ZSA9
IHVuZGVmaW5lZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKK0ZB
SUwgZGVkaWNhdGVkIHdvcmtlcjogc2NoZW1lID0gZGF0YSwgdmFsdWUgPSAqIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorRkFJTCBkZWRpY2F0ZWQgd29ya2VyOiBz
Y2hlbWUgPSBkYXRhLCB2YWx1ZSA9IHNlbGYgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZmFsc2Ug
YnV0IGdvdCB0cnVlCitGQUlMIGRlZGljYXRlZCB3b3JrZXI6IHNjaGVtZSA9IGRhdGEsIHZhbHVl
ID0gKFwpIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQorUEFTUyBk
ZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBibG9iLCB2YWx1ZSA9IHVuZGVmaW5lZAorUEFTUyBk
ZWRpY2F0ZWQgd29ya2VyOiBzY2hlbWUgPSBibG9iLCB2YWx1ZSA9ICoKK1BBU1MgZGVkaWNhdGVk
IHdvcmtlcjogc2NoZW1lID0gYmxvYiwgdmFsdWUgPSBzZWxmCitGQUlMIGRlZGljYXRlZCB3b3Jr
ZXI6IHNjaGVtZSA9IGJsb2IsIHZhbHVlID0gKFwpIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZh
bHNlIGJ1dCBnb3QgdHJ1ZQogRkFJTCBzaGFyZWQgd29ya2VyOiB3aXRoQ29vcENvZXAgPSBmYWxz
ZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKIEZBSUwgc2hhcmVkIHdvcmtlcjog
d2l0aENvb3BDb2VwID0gdHJ1ZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKIEZB
SUwgc2VydmljZSB3b3JrZXI6IHdpdGhDb29wQ29lcCA9IGZhbHNlIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkIChib29sZWFuKSBmYWxzZSBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdp
bi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGI0MzljZGM5NzM1
NmZkOTI1MTAwNDcxOWM5YWRhNGI0NGU0ZDY3YjEuLmRkYzhmYzMxODYxZmQ2NzE5ZjQ3NGU2OWU4
NDIxNDYxM2E3MDNiOGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb2VwLmh0dHBz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTcsNSArNyw1IEBAIFBBU1MgU2FtZS1vcmlnaW4gcG9wdXAgd2l0aCBjb29wIHVu
c2FmZS1ub25lIHdpdGhvdXQgY29lcAogUEFTUyBoaXN0b3JpY2FsOiAic2FtZS1zaXRlIiBwb3B1
cCB3aXRoIGNvb3AgdW5zYWZlLW5vbmUgd2l0aG91dCBjb2VwCiBQQVNTIFNhbWUtb3JpZ2luIHBv
cHVwIHdpdGhvdXQgY29lcAogUEFTUyBoaXN0b3JpY2FsOiAic2FtZS1zaXRlIiBwb3B1cCB3aXRo
b3V0IGNvZXAKLUZBSUwgQm9udXM6IHdpbmRvdy5jcm9zc09yaWdpbklzb2xhdGVkIGFzc2VydF90
cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBCb251czogd2luZG93LmNyb3NzT3Jp
Z2luSXNvbGF0ZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9zZXJpYWxpemUtc2hhcmVk
YXJyYXlidWZmZXItdGhyb3dzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvc2Vy
aWFsaXplLXNoYXJlZGFycmF5YnVmZmVyLXRocm93cy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYWNjMDQ2NDYwM2IxMGNkMDliZDE3ZjA0YjJlZjZkYzQ4NDM1ZDIzNQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvc2VyaWFsaXplLXNoYXJlZGFycmF5YnVmZmVyLXRocm93
cy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK0ZBSUwgSW5kZXhlZERCOiBB
dHRlbXB0aW5nIHRvIHNlcmlhbGl6ZSBhIFNoYXJlZEFycmF5QnVmZmVyIHNob3VsZCB0aHJvdyBh
c3NlcnRfdHJ1ZTogVGhlIHBhZ2UgaXMgc2VydmVkIHdpdGggQ09PUCBhbmQgQ09FUCwgaXQgc2hv
dWxkIGJlIGNyb3NzLW9yaWdpbi1pc29sYXRlZC4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>