<?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>218730</bug_id>
          
          <creation_ts>2020-11-09 16:35:40 -0800</creation_ts>
          <short_desc>PCM: Change from ad-click-attribution to private-click-measurement (in all forms, including .well-known URL)</short_desc>
          <delta_ts>2020-11-12 10:07:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=218833</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=218840</see_also>
          <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>218786</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>bburg</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1705938</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-11-09 16:35:40 -0800</bug_when>
    <thetext>We should change WebKit to use the official name of the proposed standard Private Click Measurement https://github.com/privacycg/private-click-measurement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705939</commentid>
    <comment_count>1</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-11-09 16:36:00 -0800</bug_when>
    <thetext>&lt;rdar://problem/71094296&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705944</commentid>
    <comment_count>2</comment_count>
      <attachid>413646</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-11-09 16:50:46 -0800</bug_when>
    <thetext>Created attachment 413646
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705945</commentid>
    <comment_count>3</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-11-09 16:51:32 -0800</bug_when>
    <thetext>Sorry about the size of this patch. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705946</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-11-09 16:52:03 -0800</bug_when>
    <thetext>This patch modifies the inspector protocol. Please ensure that any frontend changes appropriately use feature checks for new protocol features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705949</commentid>
    <comment_count>5</comment_count>
      <attachid>413646</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-11-09 17:24:12 -0800</bug_when>
    <thetext>Comment on attachment 413646
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:20016
&gt; -        Web Inspector: provide a way for inspector to turn on/off ITP debug mode and AdClickAttribution debug mode
&gt; +        Web Inspector: provide a way for inspector to turn on/off ITP debug mode and PrivateClickMeasurement debug mode

I don&apos;t think we should modify old ChangeLog entries

&gt; Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:101
&gt; -localizedStrings[&quot;Ad Click Attribution Debug Mode&quot;] = &quot;Ad Click Attribution Debug Mode&quot;;
&gt; +localizedStrings[&quot;Private Click Measurement Debug Mode&quot;] = &quot;Private Click Measurement Debug Mode&quot;;

This should be sorted alphabetically, so please move it down below.

Alternatively, you can just run this command to regenerate this entire file from all the `WI.UIString` calls inside `Source/WebInspectorUI/UserInterface/` :)
```
    $ Tools/Scripts/extract-localizable-js-strings --utf8 Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js Source/WebInspectorUI/UserInterface
```

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:-2347
&gt; -                    {name: WI.UIString(&quot;Ad Click Attribution Debug Mode&quot;), setting: InspectorBackend.Enum.Page.Setting.AdClickAttributionDebugModeEnabled, value: true},

We&apos;ll actually want to keep this entry for when inspecting older iOS devices (see below for explanation).

I believe this code properly handles when `InspectorBackend.Enum.Page.Setting.*` does not exist, which prevents anything from being shown, so I think you could just do something like this:
```
    {name: WI.UIString(&quot;ITP Debug Mode&quot;), setting: InspectorBackend.Enum.Page.Setting.ITPDebugModeEnabled, value: true},

    // COMPATIBILITY (iOS 14.0): `Page.Setting.AdClickAttributionDebugModeEnabled` was renamed to `Page.Setting.PrivateClickMeasurementDebugModeEnabled`.
    {name: WI.UIString(&quot;Private Click Measurement Debug Mode&quot;), setting: InspectorBackend.Enum.Page.Setting.PrivateClickMeasurementDebugModeEnabled, value: true},
    {name: WI.UIString(&quot;Ad Click Attribution Debug Mode&quot;), setting: InspectorBackend.Enum.Page.Setting.AdClickAttributionDebugModeEnabled, value: true},
```
and at runtime only one of the two will appear.

A simple way to test this is to do a local build with your changes and confirm that:
 1. inspecting an older iOS device only shows &quot;Ad Click Attribution Debug Mode&quot; in the [device settings menu](https://webkit.org/web-inspector/device-settings/).
 2. inspecting any page using your local build (on the same machine, not an iOS device) shows &quot;Private Click Measurement Debug Mode&quot; in the [device settings menu](https://webkit.org/web-inspector/device-settings/).  Note that you may have to enable Web Inspector&apos;s debug mode (⌥⇧⌘D) and then re-open Web Inspector in order to see the [device settings menu](https://webkit.org/web-inspector/device-settings/).

&gt; Source/WebInspectorUI/UserInterface/Models/ConsoleMessage.js:-116
&gt; -    AdClickAttribution: &quot;ad-click-attribution&quot;,

ditto
```
    ITPDebug: &quot;itp-debug&quot;,
    PrivateClickMeasurement: &quot;private-click-measurement&quot;,
    Other: &quot;other&quot;,

    // COMPATIBILITY (iOS 14.0): `Console.ChannelSource.AdClickAttribution` was renamed to `Console.ChannelSource.PrivateClickMeasurement`.
    AdClickAttribution: &quot;ad-click-attribution&quot;,
```

&gt; Source/WebInspectorUI/UserInterface/Models/IssueMessage.js:-72
&gt; -        case WI.ConsoleMessage.MessageSource.AdClickAttribution:

ditto
```
    case WI.ConsoleMessage.MessageSource.ITPDebug:
    case WI.ConsoleMessage.MessageSource.PrivateClickMeasurement:
    case WI.ConsoleMessage.MessageSource.AdClickAttribution: // COMPATIBILITY (iOS 14.0): `Console.ChannelSource.AdClickAttribution` was renamed to `Console.ChannelSource.PrivateClickMeasurement`.
    case WI.ConsoleMessage.MessageSource.Other:
```

&gt; Source/WebInspectorUI/UserInterface/Protocol/Legacy/14.0/InspectorBackendCommands.js:154
&gt; -InspectorBackend.registerEnum(&quot;Console.ChannelSource&quot;, {XML: &quot;xml&quot;, JavaScript: &quot;javascript&quot;, Network: &quot;network&quot;, ConsoleAPI: &quot;console-api&quot;, Storage: &quot;storage&quot;, Appcache: &quot;appcache&quot;, Rendering: &quot;rendering&quot;, CSS: &quot;css&quot;, Security: &quot;security&quot;, ContentBlocker: &quot;content-blocker&quot;, Media: &quot;media&quot;, MediaSource: &quot;mediasource&quot;, WebRTC: &quot;webrtc&quot;, ITPDebug: &quot;itp-debug&quot;, AdClickAttribution: &quot;ad-click-attribution&quot;, Other: &quot;other&quot;});
&gt; +InspectorBackend.registerEnum(&quot;Console.ChannelSource&quot;, {XML: &quot;xml&quot;, JavaScript: &quot;javascript&quot;, Network: &quot;network&quot;, ConsoleAPI: &quot;console-api&quot;, Storage: &quot;storage&quot;, Appcache: &quot;appcache&quot;, Rendering: &quot;rendering&quot;, CSS: &quot;css&quot;, Security: &quot;security&quot;, ContentBlocker: &quot;content-blocker&quot;, Media: &quot;media&quot;, MediaSource: &quot;mediasource&quot;, WebRTC: &quot;webrtc&quot;, ITPDebug: &quot;itp-debug&quot;, PrivateClickMeasurement: &quot;private-click-measurement&quot;, Other: &quot;other&quot;});

We actually almost never want to change anything inside `Source/WebInspectorUI/UserInterface/Protocol/Legacy/` (and `Source/WebInspectorUI/Versions/`, but you didn&apos;t touch that so it&apos;s OK) as those files are used by the Web Inspector frontend to determine the capabilities of older devices when they&apos;re remotely inspected.

As an example, when Web Inspector used to inspect content using a local build of WebKit, the `InspectorBackendCommands.js` that&apos;s used is the one that&apos;s built with WebKit: &lt;build&gt;/&lt;configuration&gt;/DerivedSources/JavaScriptCore/inspector/InspectorBackendCommands.js (which is later copied into `WebInspectorUI.framework`).  The default behavior is to just use the backend commands built with WebKit.  When inspecting an older device, however, Web Inspector uses the closest (rounded down, so 13.2 becomes 13.0 when choosing between 13.0 and 13.4) backends commands file for that device&apos;s iOS version.

This is what allows the Web Inspector frontend to be updated without having to worry about breaking inspecting older devices, as the capabilities of those devices are frozen in stone in these files.  As such, we&apos;ll unfortunately need to leave this file as-is and have compatibility checks for `PrivateClickMeasurement` vs `AdClickAttribution` in various spots (see above).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705950</commentid>
    <comment_count>6</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-11-09 17:28:26 -0800</bug_when>
    <thetext>(In reply to Devin Rousso from comment #5)
&gt; Comment on attachment 413646 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=413646&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:20016
&gt; &gt; -        Web Inspector: provide a way for inspector to turn on/off ITP debug mode and AdClickAttribution debug mode
&gt; &gt; +        Web Inspector: provide a way for inspector to turn on/off ITP debug mode and PrivateClickMeasurement debug mode
&gt; 
&gt; I don&apos;t think we should modify old ChangeLog entries

Agreed! That&apos;s a find+replace mistake. Good catch.

&gt; &gt; Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:101
&gt; &gt; -localizedStrings[&quot;Ad Click Attribution Debug Mode&quot;] = &quot;Ad Click Attribution Debug Mode&quot;;
&gt; &gt; +localizedStrings[&quot;Private Click Measurement Debug Mode&quot;] = &quot;Private Click Measurement Debug Mode&quot;;
&gt; 
&gt; This should be sorted alphabetically, so please move it down below.

Will do.

&gt; Alternatively, you can just run this command to regenerate this entire file
&gt; from all the `WI.UIString` calls inside
&gt; `Source/WebInspectorUI/UserInterface/` :)
&gt; ```
&gt;     $ Tools/Scripts/extract-localizable-js-strings --utf8
&gt; Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js
&gt; Source/WebInspectorUI/UserInterface
&gt; ```
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Base/Main.js:-2347
&gt; &gt; -                    {name: WI.UIString(&quot;Ad Click Attribution Debug Mode&quot;), setting: InspectorBackend.Enum.Page.Setting.AdClickAttributionDebugModeEnabled, value: true},
&gt; 
&gt; We&apos;ll actually want to keep this entry for when inspecting older iOS devices
&gt; (see below for explanation).
&gt; 
&gt; I believe this code properly handles when
&gt; `InspectorBackend.Enum.Page.Setting.*` does not exist, which prevents
&gt; anything from being shown, so I think you could just do something like this:
&gt; ```
&gt;     {name: WI.UIString(&quot;ITP Debug Mode&quot;), setting:
&gt; InspectorBackend.Enum.Page.Setting.ITPDebugModeEnabled, value: true},
&gt; 
&gt;     // COMPATIBILITY (iOS 14.0):
&gt; `Page.Setting.AdClickAttributionDebugModeEnabled` was renamed to
&gt; `Page.Setting.PrivateClickMeasurementDebugModeEnabled`.
&gt;     {name: WI.UIString(&quot;Private Click Measurement Debug Mode&quot;), setting:
&gt; InspectorBackend.Enum.Page.Setting.PrivateClickMeasurementDebugModeEnabled,
&gt; value: true},
&gt;     {name: WI.UIString(&quot;Ad Click Attribution Debug Mode&quot;), setting:
&gt; InspectorBackend.Enum.Page.Setting.AdClickAttributionDebugModeEnabled,
&gt; value: true},
&gt; ```
&gt; and at runtime only one of the two will appear.

OK, will fix.

&gt; A simple way to test this is to do a local build with your changes and
&gt; confirm that:
&gt;  1. inspecting an older iOS device only shows &quot;Ad Click Attribution Debug
&gt; Mode&quot; in the [device settings
&gt; menu](https://webkit.org/web-inspector/device-settings/).
&gt;  2. inspecting any page using your local build (on the same machine, not an
&gt; iOS device) shows &quot;Private Click Measurement Debug Mode&quot; in the [device
&gt; settings menu](https://webkit.org/web-inspector/device-settings/).  Note
&gt; that you may have to enable Web Inspector&apos;s debug mode (⌥⇧⌘D) and then
&gt; re-open Web Inspector in order to see the [device settings
&gt; menu](https://webkit.org/web-inspector/device-settings/).

I&apos;m not too worried about this since Ad Click Attribution is an experimental feature that has always been off by default. Devices with the old naming will never have it on by default. I just don&apos;t want anything to crash for old stuff.

&gt; &gt; Source/WebInspectorUI/UserInterface/Models/ConsoleMessage.js:-116
&gt; &gt; -    AdClickAttribution: &quot;ad-click-attribution&quot;,
&gt; 
&gt; ditto
&gt; ```
&gt;     ITPDebug: &quot;itp-debug&quot;,
&gt;     PrivateClickMeasurement: &quot;private-click-measurement&quot;,
&gt;     Other: &quot;other&quot;,
&gt; 
&gt;     // COMPATIBILITY (iOS 14.0): `Console.ChannelSource.AdClickAttribution`
&gt; was renamed to `Console.ChannelSource.PrivateClickMeasurement`.
&gt;     AdClickAttribution: &quot;ad-click-attribution&quot;,
&gt; ```
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Models/IssueMessage.js:-72
&gt; &gt; -        case WI.ConsoleMessage.MessageSource.AdClickAttribution:
&gt; 
&gt; ditto
&gt; ```
&gt;     case WI.ConsoleMessage.MessageSource.ITPDebug:
&gt;     case WI.ConsoleMessage.MessageSource.PrivateClickMeasurement:
&gt;     case WI.ConsoleMessage.MessageSource.AdClickAttribution: //
&gt; COMPATIBILITY (iOS 14.0): `Console.ChannelSource.AdClickAttribution` was
&gt; renamed to `Console.ChannelSource.PrivateClickMeasurement`.
&gt;     case WI.ConsoleMessage.MessageSource.Other:
&gt; ```
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Protocol/Legacy/14.0/InspectorBackendCommands.js:154
&gt; &gt; -InspectorBackend.registerEnum(&quot;Console.ChannelSource&quot;, {XML: &quot;xml&quot;, JavaScript: &quot;javascript&quot;, Network: &quot;network&quot;, ConsoleAPI: &quot;console-api&quot;, Storage: &quot;storage&quot;, Appcache: &quot;appcache&quot;, Rendering: &quot;rendering&quot;, CSS: &quot;css&quot;, Security: &quot;security&quot;, ContentBlocker: &quot;content-blocker&quot;, Media: &quot;media&quot;, MediaSource: &quot;mediasource&quot;, WebRTC: &quot;webrtc&quot;, ITPDebug: &quot;itp-debug&quot;, AdClickAttribution: &quot;ad-click-attribution&quot;, Other: &quot;other&quot;});
&gt; &gt; +InspectorBackend.registerEnum(&quot;Console.ChannelSource&quot;, {XML: &quot;xml&quot;, JavaScript: &quot;javascript&quot;, Network: &quot;network&quot;, ConsoleAPI: &quot;console-api&quot;, Storage: &quot;storage&quot;, Appcache: &quot;appcache&quot;, Rendering: &quot;rendering&quot;, CSS: &quot;css&quot;, Security: &quot;security&quot;, ContentBlocker: &quot;content-blocker&quot;, Media: &quot;media&quot;, MediaSource: &quot;mediasource&quot;, WebRTC: &quot;webrtc&quot;, ITPDebug: &quot;itp-debug&quot;, PrivateClickMeasurement: &quot;private-click-measurement&quot;, Other: &quot;other&quot;});
&gt; 
&gt; We actually almost never want to change anything inside
&gt; `Source/WebInspectorUI/UserInterface/Protocol/Legacy/` (and
&gt; `Source/WebInspectorUI/Versions/`, but you didn&apos;t touch that so it&apos;s OK) as
&gt; those files are used by the Web Inspector frontend to determine the
&gt; capabilities of older devices when they&apos;re remotely inspected.
&gt; 
&gt; As an example, when Web Inspector used to inspect content using a local
&gt; build of WebKit, the `InspectorBackendCommands.js` that&apos;s used is the one
&gt; that&apos;s built with WebKit:
&gt; &lt;build&gt;/&lt;configuration&gt;/DerivedSources/JavaScriptCore/inspector/
&gt; InspectorBackendCommands.js (which is later copied into
&gt; `WebInspectorUI.framework`).  The default behavior is to just use the
&gt; backend commands built with WebKit.  When inspecting an older device,
&gt; however, Web Inspector uses the closest (rounded down, so 13.2 becomes 13.0
&gt; when choosing between 13.0 and 13.4) backends commands file for that
&gt; device&apos;s iOS version.
&gt; 
&gt; This is what allows the Web Inspector frontend to be updated without having
&gt; to worry about breaking inspecting older devices, as the capabilities of
&gt; those devices are frozen in stone in these files.  As such, we&apos;ll
&gt; unfortunately need to leave this file as-is and have compatibility checks
&gt; for `PrivateClickMeasurement` vs `AdClickAttribution` in various spots (see
&gt; above).

Thanks for looking and explaining, Devin!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706237</commentid>
    <comment_count>7</comment_count>
      <attachid>413745</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-11-10 15:00:05 -0800</bug_when>
    <thetext>Created attachment 413745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706238</commentid>
    <comment_count>8</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-11-10 15:00:26 -0800</bug_when>
    <thetext>I hope I&apos;ve now addressed all your comments, Devin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706240</commentid>
    <comment_count>9</comment_count>
      <attachid>413745</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-11-10 15:07:08 -0800</bug_when>
    <thetext>Comment on attachment 413745
Patch

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

r=me with a few remaining fixes

&gt; Source/JavaScriptCore/ChangeLog:20023
&gt; -         - `AdClickAttributionDebugModeEnabled`
&gt; +         - `PrivateClickMeasurementDebugModeEnabled`

I don&apos;t think we should modify old ChangeLog entries

&gt; Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:-101
&gt; -localizedStrings[&quot;Ad Click Attribution Debug Mode&quot;] = &quot;Ad Click Attribution Debug Mode&quot;;

this shouldn&apos;t be removed since it&apos;s still used in `Source/WebInspectorUI/UserInterface/Base/Main.js`

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:2349
&gt; +                    {name: WI.UIString(&quot;Ad Click Attribution Debug Mode&quot;), setting: InspectorBackend.Enum.Page.Setting.AdClickAttributionDebugModeEnabled, value: true},                ],

Style: the `],` should be on a separate line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706257</commentid>
    <comment_count>10</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-11-10 15:46:16 -0800</bug_when>
    <thetext>(In reply to Devin Rousso from comment #9)
&gt; Comment on attachment 413745 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=413745&amp;action=review
&gt; 
&gt; r=me with a few remaining fixes
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:20023
&gt; &gt; -         - `AdClickAttributionDebugModeEnabled`
&gt; &gt; +         - `PrivateClickMeasurementDebugModeEnabled`
&gt; 
&gt; I don&apos;t think we should modify old ChangeLog entries

I&apos;m positive I fixed this. Maybe this is another instance? Regardless, will fix.

&gt; &gt; Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:-101
&gt; &gt; -localizedStrings[&quot;Ad Click Attribution Debug Mode&quot;] = &quot;Ad Click Attribution Debug Mode&quot;;
&gt; 
&gt; this shouldn&apos;t be removed since it&apos;s still used in
&gt; `Source/WebInspectorUI/UserInterface/Base/Main.js`

Will fix.

&gt; &gt; Source/WebInspectorUI/UserInterface/Base/Main.js:2349
&gt; &gt; +                    {name: WI.UIString(&quot;Ad Click Attribution Debug Mode&quot;), setting: InspectorBackend.Enum.Page.Setting.AdClickAttributionDebugModeEnabled, value: true},                ],
&gt; 
&gt; Style: the `],` should be on a separate line

Will fix.

Thanks, Devin!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706260</commentid>
    <comment_count>11</comment_count>
      <attachid>413751</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-11-10 15:52:13 -0800</bug_when>
    <thetext>Created attachment 413751
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706282</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-10 16:33:54 -0800</bug_when>
    <thetext>Committed r269660: &lt;https://trac.webkit.org/changeset/269660&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413751.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706330</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-11-10 20:48:22 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 218786</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706626</commentid>
    <comment_count>14</comment_count>
      <attachid>413868</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-11-11 14:32:55 -0800</bug_when>
    <thetext>Created attachment 413868
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706646</commentid>
    <comment_count>15</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-11-11 15:42:12 -0800</bug_when>
    <thetext>The failed inspector test on mac-wk2 looks like a flaky test: https://results.webkit.org/?suite=layout-tests&amp;test=http%2Ftests%2Finspector%2Fnetwork%2Fresource-timing.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706680</commentid>
    <comment_count>16</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-11-11 16:53:54 -0800</bug_when>
    <thetext>I asked Devin Rousso about the InspectorPageAgent.cpp build errors on the win bot earlier and he said:
&quot;For some reason the windows bot sometimes lags when dealing with changes in the Web Inspector protocol JSON files. Usually clicking &apos;Retry failed builds&apos; does the trick. I can tell you tho that your changes are almost definitely not gonna cause a problem, especially since it builds fine on other platforms.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706696</commentid>
    <comment_count>17</comment_count>
      <attachid>413868</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-11-11 17:23:47 -0800</bug_when>
    <thetext>Comment on attachment 413868
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:37
&gt;  WK_EXTERN NSString * const _WKWebsiteDataTypeAdClickAttributions WK_API_AVAILABLE(macos(10.15), ios(13.0));

We should deprecate this now or soonish.  Deprecating now would require ignoring deprecation warnings in Safari before landing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706699</commentid>
    <comment_count>18</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-11-11 17:29:46 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #17)
&gt; Comment on attachment 413868 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=413868&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:37
&gt; &gt;  WK_EXTERN NSString * const _WKWebsiteDataTypeAdClickAttributions WK_API_AVAILABLE(macos(10.15), ios(13.0));
&gt; 
&gt; We should deprecate this now or soonish.  Deprecating now would require
&gt; ignoring deprecation warnings in Safari before landing this.

Agreed. I just filed https://bugs.webkit.org/show_bug.cgi?id=218833 to track it.

Thanks, Alex!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706700</commentid>
    <comment_count>19</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-11-11 17:33:16 -0800</bug_when>
    <thetext>I asked Devin about the layout test crash in inspector/console/webcore-logging.html and he does not think it&apos;s related. He said &quot;The stack involves InspectorFrontendAPIDispatcher. Brian Burg has been working on that lately.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706701</commentid>
    <comment_count>20</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-11-11 17:37:33 -0800</bug_when>
    <thetext>The Windows bot is now complaining about privateClickMeasurementEnabled which should be generated into WebCore::Settings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706723</commentid>
    <comment_count>21</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-11 18:04:54 -0800</bug_when>
    <thetext>Committed r269712: &lt;https://trac.webkit.org/changeset/269712&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413868.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706737</commentid>
    <comment_count>22</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-11-11 19:37:27 -0800</bug_when>
    <thetext>I have pinged Brian Burg about the inspector test crasher.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706747</commentid>
    <comment_count>23</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-11-11 20:09:50 -0800</bug_when>
    <thetext>(In reply to John Wilander from comment #22)
&gt; I have pinged Brian Burg about the inspector test crasher.

A fix is being tracked here: https://bugs.webkit.org/show_bug.cgi?id=218840

Thanks for the heads up! WebKitLegacy is truly weird.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413646</attachid>
            <date>2020-11-09 16:50:46 -0800</date>
            <delta_ts>2020-11-10 15:00:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218730-20201109165044.patch</filename>
            <type>text/plain</type>
            <size>483446</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MzczYWYzYjM4MmJiNzQ1MzJmMWNiMDZiN2FjZDlkNmY5N2E3M2EwLi42ZWRhODE0MjUxNjBiMmQz
M2ZmMDE2ZDAxZWYwYTliN2JlN2EzNjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAyMC0xMS0wOSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KKworICAgICAgICBQQ006IENoYW5nZSBmcm9tIGFkLWNsaWNrLWF0dHJpYnV0aW9uIHRvIHBy
aXZhdGUtY2xpY2stbWVhc3VyZW1lbnQgKGluIGFsbCBmb3JtcywgaW5jbHVkaW5nIC53ZWxsLWtu
b3duIFVSTCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxODczMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzEwOTQyOTY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlIHRvIHRoZSBvZmZpY2lh
bCBuYW1lIG9mIHRoZSBwcm9wb3NlZCBzdGFuZGFyZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50
CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9wcml2YWN5Y2cvcHJpdmF0ZS1jbGljay1tZWFz
dXJlbWVudC4KKworICAgICAgICBUaGlzIGluY2x1ZGVzIGEgY2hhbmdlIG9mIHRoZSByZXBvcnRp
bmcgVVJMIGZyb20gCisgICAgICAgICIvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24v
IiB0bworICAgICAgICAiLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvIi4K
KworICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHA6CisgICAgICAgIChJbnNw
ZWN0b3I6Om1lc3NhZ2VTb3VyY2VWYWx1ZSk6CisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29s
L0NvbnNvbGUuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uOgor
ICAgICAgICAqIHJ1bnRpbWUvQ29uc29sZUNsaWVudC5jcHA6CisgICAgICAgIChKU0M6OmFwcGVu
ZE1lc3NhZ2VQcmVmaXgpOgorICAgICAgICAqIHJ1bnRpbWUvQ29uc29sZVR5cGVzLmg6CisKIDIw
MjAtMTEtMDkgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIHRvdGFsIGNvdW50cyB0byBzYW1wbGluZyBwcm9maWxlciBkdW1wCkBAIC0xOTk5MCwx
NCArMjAwMTMsMTQgQEAKIAogMjAyMC0wNS0wNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBs
ZS5jb20+CiAKLSAgICAgICAgV2ViIEluc3BlY3RvcjogcHJvdmlkZSBhIHdheSBmb3IgaW5zcGVj
dG9yIHRvIHR1cm4gb24vb2ZmIElUUCBkZWJ1ZyBtb2RlIGFuZCBBZENsaWNrQXR0cmlidXRpb24g
ZGVidWcgbW9kZQorICAgICAgICBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIGEgd2F5IGZvciBpbnNw
ZWN0b3IgdG8gdHVybiBvbi9vZmYgSVRQIGRlYnVnIG1vZGUgYW5kIFByaXZhdGVDbGlja01lYXN1
cmVtZW50IGRlYnVnIG1vZGUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwOTc2MwogCiAgICAgICAgIFJldmlld2VkIGJ5IEJyaWFuIEJ1cmcuCiAKICAg
ICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uOgogICAgICAgICBBZGQgbmV3IGVu
dW0gdmFsdWVzIHRvIGBQYWdlLlNldHRpbmdgOgotICAgICAgICAgLSBgQWRDbGlja0F0dHJpYnV0
aW9uRGVidWdNb2RlRW5hYmxlZGAKKyAgICAgICAgIC0gYFByaXZhdGVDbGlja01lYXN1cmVtZW50
RGVidWdNb2RlRW5hYmxlZGAKICAgICAgICAgIC0gYElUUERlYnVnTW9kZUVuYWJsZWRgCiAKIDIw
MjAtMDUtMDMgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggNGJjZDI0
ZjliNzE3NWFmNTA3OGE3MmNkMDUwYmI3MmZhMjVjMzA1ZC4uNmQwZGJiNmExZWEyZWY3MWQ2YTAw
MzNlMDFkNGU3MWZiNzE5M2RhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0xMS0wOSAgSm9o
biBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IENoYW5nZSBm
cm9tIGFkLWNsaWNrLWF0dHJpYnV0aW9uIHRvIHByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQgKGlu
IGFsbCBmb3JtcywgaW5jbHVkaW5nIC53ZWxsLWtub3duIFVSTCkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODczMAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNzEwOTQyOTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ2hhbmdlIHRvIHRoZSBvZmZpY2lhbCBuYW1lIG9mIHRoZSBwcm9wb3NlZCBzdGFu
ZGFyZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNv
bS9wcml2YWN5Y2cvcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC4KKworICAgICAgICBUaGlzIGlu
Y2x1ZGVzIGEgY2hhbmdlIG9mIHRoZSByZXBvcnRpbmcgVVJMIGZyb20gCisgICAgICAgICIvLndl
bGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vIiB0bworICAgICAgICAiLy53ZWxsLWtub3du
L3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvIi4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0xMS0wOSAgQWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0
aW5nIHIyNjk2MDMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2Y3N2I2MDEwZmU4ZWIzNWMxOWE3NDI5OTBhODkz
MTYxOTJmOTUyYy4uYmUzNzU2MmZiMmYwYTkwZmY4MDIxNmQ5ZjEyMDVhNTdmMjg2MjdmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEyMyBAQAorMjAyMC0xMS0wOSAgSm9obiBXaWxhbmRlciAgPHdp
bGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IENoYW5nZSBmcm9tIGFkLWNsaWNrLWF0
dHJpYnV0aW9uIHRvIHByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQgKGluIGFsbCBmb3JtcywgaW5j
bHVkaW5nIC53ZWxsLWtub3duIFVSTCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxODczMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzEwOTQyOTY+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdl
IHRvIHRoZSBvZmZpY2lhbCBuYW1lIG9mIHRoZSBwcm9wb3NlZCBzdGFuZGFyZCBQcml2YXRlIENs
aWNrIE1lYXN1cmVtZW50CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9wcml2YWN5Y2cvcHJp
dmF0ZS1jbGljay1tZWFzdXJlbWVudC4KKworICAgICAgICBUaGlzIGluY2x1ZGVzIGEgY2hhbmdl
IG9mIHRoZSByZXBvcnRpbmcgVVJMIGZyb20gCisgICAgICAgICIvLndlbGwta25vd24vYWQtY2xp
Y2stYXR0cmlidXRpb24vIiB0bworICAgICAgICAiLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2st
bWVhc3VyZW1lbnQvIi4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5z
aW9ucy9ibG9jay1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50Lmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1dGVz
LXJlZmxlY3QuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtdmFsaWRhdGlvbi5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZl
cnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0Lmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVy
c2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3cuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252
ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNv
bnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5Lmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY2xlYXItdGhy
b3VnaC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFs
LXNlc3Npb24uaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNv
bnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQt
d2l0aC1sb3dlci1wcmlvcml0eS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
c2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmlidXRpb24tY29u
dmVyc2lvbi1yZXF1ZXN0Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1w
cml2YXRlLWNsaWNrLW1lYXN1cmVtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9w
YWdlL292ZXJyaWRlU2V0dGluZy1Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJs
ZWQuaHRtbAorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5j
aG9yRWxlbWVudDo6cGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6aGFuZGxlQ2xpY2spOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlQWRDbGlja0F0dHJpYnV0aW9uIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGw6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckNsaWVudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZGlzYWJsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6Om92ZXJyaWRlU2V0dGluZyk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGVBZ2VudDo6Z2V0TG9nZ2luZ0NoYW5uZWxzKToKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmNoYW5nZUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjps
b2FkRnJhbWVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkVVJM
KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvTmF2
aWdhdGlvbkFjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbjo6cHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlv
bkFjdGlvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
TmF2aWdhdGlvbkFjdGlvbjo6YWRDbGlja0F0dHJpYnV0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb246OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbik6
IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9BZENsaWNrQXR0cmlidXRpb24uY3Bw
LgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmlzVmFsaWQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29u
dmVyc2lvblJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQpOgorICAgICAgICAoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Om1hcmtBc0V4cGlyZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Omhhc0V4cGlyZWQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Omhhc0hpZ2hlclByaW9yaXR5VGhhbiBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cmVwb3J0
VVJMIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpq
c29uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpt
YXJrQ29udmVyc2lvbkFzU2VudCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6d2FzQ29udmVyc2lvblNlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWJ1Z01vZGVFbmFibGVkKToKKyAgICAgICAgKiBs
b2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9BZENsaWNrQXR0cmlidXRpb24uaC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbjo6Q2FtcGFpZ24pOgorICAgICAgICAoV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNhbXBhaWduOjppc1ZhbGlkIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2U6OlNvdXJjZSk6
CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlOjpvcGVy
YXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpTb3VyY2U6Om1hdGNoZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OlNvdXJjZTo6aXNIYXNoVGFibGVEZWxldGVkVmFsdWUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTo6ZGVsZXRlZFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2U6
OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6U291cmNlOjpkZWxldGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlOjppc0RlbGV0ZWRWYWx1ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSGFzaDo6aGFzaCk6
CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSGFzaDo6
ZXF1YWwpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3Rp
bmF0aW9uOjpEZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6RGVzdGluYXRpb246Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOjptYXRjaGVzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbjo6
aXNIYXNoVGFibGVEZWxldGVkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOjpkZWxldGVkVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOjpjb25zdHJ1Y3RE
ZWxldGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkRlc3RpbmF0aW9uOjpkZWxldGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb246OmlzRGVsZXRlZFZhbHVlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbkhhc2g6Omhh
c2gpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0
aW9uSGFzaDo6ZXF1YWwpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlByaW9yaXR5OjpQcmlvcml0eSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6Q29udmVyc2lvbjo6Q29udmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbjo6aXNWYWxpZCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNvdXJj
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZGVz
dGluYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OmVhcmxpZXN0VGltZVRvU2VuZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6aXNFbXB0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbjo6ZGVjb2RlKToKKyAg
ICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
U291cmNlPjo6ZW1wdHlWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZT46OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6
CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlNvdXJjZT46OmlzRGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24+OjplbXB0eVZhbHVl
KToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6RGVzdGluYXRpb24+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOgorICAgICAgICAoV1RG
OjpIYXNoVHJhaXRzPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlv
bj46OmlzRGVsZXRlZFZhbHVlKToKKyAgICAgICAgKiBwYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnByaXZhdGVD
bGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVn
TW9kZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6
YWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRBZENsaWNrQXR0cmlidXRp
b25EZWJ1Z01vZGVFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2dnaW5n
Lmg6CisKIDIwMjAtMTEtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbmV4cG9zZSBvYnNvbGV0ZSBIVE1MQXBwbGV0RWxlbWVudCBpbnRlcmZhY2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nCmluZGV4IDVhMDU4NjZkZGU1YjQ2ZGM5Mzg3YThhYWVjNjA4NDk2NDgz
OTRmYWEuLmY1NzFjYjRiMTJmN2FmNzQwOTZmNTA3MzI0ZjI1YmQ4ZjFkZjIxNTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIwLTExLTA5ICBKb2huIFdpbGFu
ZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogQ2hhbmdlIGZyb20gYWQt
Y2xpY2stYXR0cmlidXRpb24gdG8gcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudCAoaW4gYWxsIGZv
cm1zLCBpbmNsdWRpbmcgLndlbGwta25vd24gVVJMKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzMwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
MTA5NDI5Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDaGFuZ2UgdG8gdGhlIG9mZmljaWFsIG5hbWUgb2YgdGhlIHByb3Bvc2VkIHN0YW5kYXJkIFBy
aXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3ByaXZh
Y3ljZy9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LgorCisgICAgICAgIFRoaXMgaW5jbHVkZXMg
YSBjaGFuZ2Ugb2YgdGhlIHJlcG9ydGluZyBVUkwgZnJvbSAKKyAgICAgICAgIi8ud2VsbC1rbm93
bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8iIHRvCisgICAgICAgICIvLndlbGwta25vd24vcHJpdmF0
ZS1jbGljay1tZWFzdXJlbWVudC8iLgorCisgICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5scHJv
ai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9NYWlu
LmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0NvbnNvbGVNZXNzYWdlLmpzOgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0lzc3VlTWVzc2FnZS5qczoKKyAgICAgICAg
KFdJLklzc3VlTWVzc2FnZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9MZWdh
Y3kvMTQuMC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanM6CisKIDIwMjAtMTEtMDYgIERldmlu
IFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNv
dXJjZXM6IGRlZmF1bHQgYnJlYWtwb2ludCBhY3Rpb24gc2hvdWxkIGJlIGV2YWx1YXRlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGIzODliMjI5M2Y3NWMzMzNkNWFhNjQ3MWRkN2U3ZWNkZmQwYmExODUuLjgyNjAxMmQ2
N2VmYWExOWFlNGI2ZDBiMWU1YTM2MDYyYWMyMWNlYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUz
IEBACisyMDIwLTExLTA5ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIFBDTTogQ2hhbmdlIGZyb20gYWQtY2xpY2stYXR0cmlidXRpb24gdG8gcHJpdmF0ZS1j
bGljay1tZWFzdXJlbWVudCAoaW4gYWxsIGZvcm1zLCBpbmNsdWRpbmcgLndlbGwta25vd24gVVJM
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzMw
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTA5NDI5Nj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgdG8gdGhlIG9mZmljaWFsIG5hbWUg
b2YgdGhlIHByb3Bvc2VkIHN0YW5kYXJkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQKKyAgICAg
ICAgaHR0cHM6Ly9naXRodWIuY29tL3ByaXZhY3ljZy9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50
LgorCisgICAgICAgIFRoaXMgaW5jbHVkZXMgYSBjaGFuZ2Ugb2YgdGhlIHJlcG9ydGluZyBVUkwg
ZnJvbSAKKyAgICAgICAgIi8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8iIHRvCisg
ICAgICAgICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8iLgorCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2Rl
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3Jp
Z2lucyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzdG9yZVByaXZhdGVDbGlj
a01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmR1bXBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpj
bGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmcp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjptYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRBZENsaWNrQXR0cmlidXRpb25E
ZWJ1Z01vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c3Rv
cmVBZENsaWNrQXR0cmlidXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6ZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRBZENsaWNrQXR0cmlidXRpb25PdmVy
cmlkZVRpbWVyRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjptYXJrQWRDbGlja0F0dHJp
YnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRS
ZWRpcmVjdGVkUmVxdWVzdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24pOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6c3RvcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpoYW5kbGVQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENvbnZlcnNpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6
ZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nl
c3Npb246OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrU2Vzc2lvbjo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZvclJlZ2lzdHJhYmxl
RG9tYWluKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OnNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9y
VGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjptYXJrUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtTZXNzaW9uOjpzdG9yZUFkQ2xpY2tBdHRyaWJ1dGlvbik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpoYW5kbGVBZENsaWNrQXR0cmlidXRpb25Db252ZXJz
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OmR1bXBBZENs
aWNrQXR0cmlidXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lv
bjo6Y2xlYXJBZENsaWNrQXR0cmlidXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrU2Vzc2lvbjo6Y2xlYXJBZENsaWNrQXR0cmlidXRpb25Gb3JSZWdpc3RyYWJsZURvbWFp
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpzZXRBZENsaWNr
QXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJM
Rm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpt
YXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5j
cHAuCisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3Rv
cmVVbmNvbnZlcnRlZCk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlcjo6aGFuZGxlQ29udmVyc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6c3RhcnRUaW1lcik6CisgICAgICAgIChXZWJLaXQ6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Y29udmVydCk6CisgICAgICAgIChXZWJLaXQ6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZUNvbnZlcnNpb25SZXF1ZXN0KToKKyAg
ICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlUGVuZGlu
Z0NvbnZlcnNpb25SZXF1ZXN0cyk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXI6OmNsZWFyRm9yUmVnaXN0cmFibGVEb21haW4pOgorICAgICAgICAoV2Vi
S2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmNsZWFyRXhwaXJlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6dG9TdHJpbmcgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnNl
dENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VyOjptYXJrQWxsVW5jb252ZXJ0ZWRBc0V4cGlyZWRGb3JUZXN0aW5n
KToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpkZWJ1
Z01vZGVFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5oLgorICAgICAgICAoV2ViS2l0OjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlcik6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6
bV9zZXNzaW9uSUQpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXI6OnNldFBpbmdMb2FkRnVuY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXI6OnNldE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKToKKyAgICAg
ICAgKiBQbGF0Zm9ybS9Mb2dnaW5nLmg6CisgICAgICAgICogU2hhcmVkL05hdmlnYXRpb25BY3Rp
b25EYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGE6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oOgorICAgICAgICAqIFNo
YXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNp
dGVEYXRhOjpvd25lclByb2Nlc3MpOgorICAgICAgICAqIFNoYXJlZC9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVR5cGUuaDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0FQSU5hdmlnYXRpb24uaDoKKyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbjo6cHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgY29uc3QpOgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9uOjphZENs
aWNrQXR0cmlidXRpb24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlRHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50
KToKKyAgICAgICAgKFdLUGFnZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAg
ICAoV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGlu
Zyk6CisgICAgICAgIChXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25V
UkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdLUGFnZU1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dHNBc0V4cGlyZWRGb3JUZXN0aW5nKToKKyAgICAgICAgKFdLUGFnZUR1bXBBZENsaWNrQXR0cmli
dXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV0tQYWdlQ2xlYXJBZENsaWNrQXR0cmlidXRpb24p
OiBEZWxldGVkLgorICAgICAgICAoV0tQYWdlU2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVU
aW1lckZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAoV0tQYWdlU2V0QWRDbGlja0F0dHJp
YnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAoV0tQYWdl
TWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwOgorICAgICAgICAoV0tXZWJzaXRl
RGF0YVN0b3JlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFS
ZW1vdmFsKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQWRDbGlja0F0dHJpYnV0
aW9uc1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmQubW06CisgICAgICAgIChkYXRhVHlwZXNUb1N0
cmluZyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3Jk
SW50ZXJuYWwuaDoKKyAgICAgICAgKFdlYktpdDo6dG9XZWJzaXRlRGF0YVR5cGUpOgorICAgICAg
ICAoV2ViS2l0Ojp0b1dLV2Vic2l0ZURhdGFUeXBlcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoK1tXS1dlYnNpdGVE
YXRhU3RvcmUgX2FsbFdlYnNpdGVEYXRhVHlwZXNJbmNsdWRpbmdQcml2YXRlXSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpzZXREZXZlbG9wZXJQcmVmZXJlbmNlT3Zl
cnJpZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudERlYnVnTW9kZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
UHJveHk6OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZSk6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
Y3JlYXRlTmV3UGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZHVtcFByaXZh
dGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjbGVh
clByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
bnZlcnNpb25VUkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpt
YXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2xlYXJBZENsaWNrQXR0cmlidXRpb24p
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldEFkQ2xpY2tBdHRy
aWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVz
dGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWFya0FkQ2xp
Y2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYnNpdGVEYXRhU3RvcmU6OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZSk6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2lu
ZG93QWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisKIDIwMjAtMTEtMDkgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbmV4cG9zZSBvYnNvbGV0ZSBI
VE1MQXBwbGV0RWxlbWVudCBpbnRlcmZhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRl
eCAwM2Q1YzNjM2UzMjRmZTliMzJkNDVkYWRmY2QzNmM3YzQ0MjQ3NmRlLi42YmFhYzkwZTk2ODY2
YTQ4YzU1ODA3ZjAwZGMwZDU1MTI0NjA1M2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjggQEAKKzIwMjAtMTEtMDkgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBh
cHBsZS5jb20+CisKKyAgICAgICAgUENNOiBDaGFuZ2UgZnJvbSBhZC1jbGljay1hdHRyaWJ1dGlv
biB0byBwcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50IChpbiBhbGwgZm9ybXMsIGluY2x1ZGluZyAu
d2VsbC1rbm93biBVUkwpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTg3MzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMDk0Mjk2PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSB0byB0aGUg
b2ZmaWNpYWwgbmFtZSBvZiB0aGUgcHJvcG9zZWQgc3RhbmRhcmQgUHJpdmF0ZSBDbGljayBNZWFz
dXJlbWVudAorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vcHJpdmFjeWNnL3ByaXZhdGUtY2xp
Y2stbWVhc3VyZW1lbnQuCisKKyAgICAgICAgVGhpcyBpbmNsdWRlcyBhIGNoYW5nZSBvZiB0aGUg
cmVwb3J0aW5nIFVSTCBmcm9tIAorICAgICAgICAiLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJp
YnV0aW9uLyIgdG8KKyAgICAgICAgIi8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVt
ZW50LyIuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06Cisg
ICAgICAgIChzdHJpbmdGb3JNZXNzYWdlU291cmNlKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBy
ZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
bW06CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHByaXZhdGVDbGlja01lYXN1cmVtZW50RW5h
YmxlZF0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEVuYWJsZWQ6XSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIGFkQ2xpY2tBdHRyaWJ1
dGlvbkVuYWJsZWRdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0QWRD
bGlja0F0dHJpYnV0aW9uRW5hYmxlZDpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dl
YlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorCiAyMDIwLTExLTA5ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5leHBvc2Ugb2Jzb2xldGUgSFRNTEFwcGxldEVsZW1l
bnQgaW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29u
c29sZU1lc3NhZ2UuY3BwCmluZGV4IDkwYTFkZDk2MDQ3MGE1NGVkM2IxNDY2Y2VjZmRlZmE4MzQ5
NDU4MGYuLjAzOTRhNzM3MjdlZjBhNzQzN2Q0NzYwMDU4NjQxZGU4NWJhMjAxYzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCkBA
IC0xOTEsNyArMTkxLDcgQEAgc3RhdGljIFByb3RvY29sOjpDb25zb2xlOjpDaGFubmVsU291cmNl
IG1lc3NhZ2VTb3VyY2VWYWx1ZShNZXNzYWdlU291cmNlIHNvdXJjZSkKICAgICBjYXNlIE1lc3Nh
Z2VTb3VyY2U6Ok1lZGlhU291cmNlOiByZXR1cm4gUHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxT
b3VyY2U6Ok1lZGlhU291cmNlOwogICAgIGNhc2UgTWVzc2FnZVNvdXJjZTo6V2ViUlRDOiByZXR1
cm4gUHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxTb3VyY2U6OldlYlJUQzsKICAgICBjYXNlIE1l
c3NhZ2VTb3VyY2U6OklUUERlYnVnOiByZXR1cm4gUHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxT
b3VyY2U6OklUUERlYnVnOwotICAgIGNhc2UgTWVzc2FnZVNvdXJjZTo6QWRDbGlja0F0dHJpYnV0
aW9uOiByZXR1cm4gUHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxTb3VyY2U6OkFkQ2xpY2tBdHRy
aWJ1dGlvbjsKKyAgICBjYXNlIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OiByZXR1cm4gUHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxTb3VyY2U6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OwogICAgIGNhc2UgTWVzc2FnZVNvdXJjZTo6T3RoZXI6IHJldHVybiBQcm90b2Nv
bDo6Q29uc29sZTo6Q2hhbm5lbFNvdXJjZTo6T3RoZXI7CiAgICAgfQogICAgIHJldHVybiBQcm90
b2NvbDo6Q29uc29sZTo6Q2hhbm5lbFNvdXJjZTo6T3RoZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NvbnNvbGUuanNvbiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ29uc29sZS5qc29uCmluZGV4IGIzNmEw
ZWU2N2YwNjUzNTg5N2ExNzY1YjgwYTQxMWQ0NDIwNmUwYzMuLmU2YWVkNjE4MzFjZmQzYWZiYjE1
YTU4OTVhYmU4YTQ3OGI5MWU2YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcHJvdG9jb2wvQ29uc29sZS5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ29uc29sZS5qc29uCkBAIC0yMiw3ICsyMiw3IEBACiAgICAg
ICAgICAgICAgICAgIm1lZGlhc291cmNlIiwKICAgICAgICAgICAgICAgICAid2VicnRjIiwKICAg
ICAgICAgICAgICAgICAiaXRwLWRlYnVnIiwKLSAgICAgICAgICAgICAgICAiYWQtY2xpY2stYXR0
cmlidXRpb24iLAorICAgICAgICAgICAgICAgICJwcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50IiwK
ICAgICAgICAgICAgICAgICAib3RoZXIiCiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogIkNoYW5uZWxzIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgbG9nIG1lc3NhZ2Vz
LiIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wv
UGFnZS5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9QYWdl
Lmpzb24KaW5kZXggODI1Mjc5MjY0OTU0OWY3MDhhOWU4OGY4YzY0NTA2ZTM0ODM5ZGUxNS4uZGI1
MjQ3OWE3MmQ0NTliZTIzZDRkOGQwODBjMGVkMTVlYTlmYzRjMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpzb24KKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpzb24KQEAgLTksNyArOSw3
IEBACiAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIkxpc3Qgb2Ygc2V0dGluZ3MgYWJsZSB0byBiZSBvdmVycmlkZGVuIGJ5IFdlYkluc3Bl
Y3Rvci4iLAogICAgICAgICAgICAgImVudW0iOiBbCi0gICAgICAgICAgICAgICAgIkFkQ2xpY2tB
dHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQiLAorICAgICAgICAgICAgICAgICJQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQiLAogICAgICAgICAgICAgICAgICJBdXRob3JB
bmRVc2VyU3R5bGVzRW5hYmxlZCIsCiAgICAgICAgICAgICAgICAgIklDRUNhbmRpZGF0ZUZpbHRl
cmluZ0VuYWJsZWQiLAogICAgICAgICAgICAgICAgICJJVFBEZWJ1Z01vZGVFbmFibGVkIiwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAKaW5kZXgg
M2Q0MDJkZWYyNzc1ZDI4OWQ2NDQwNmQ5OGI3ZGQwZDQ3ZWZlMTE4Zi4uOTljZDA1NzdmM2I3MjBh
YjZmNDRjY2QyNDU3ZmEzOWI5MzQxZDg0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAKQEAgLTEwNSw4ICsxMDUsOCBAQCBzdGF0aWMgdm9p
ZCBhcHBlbmRNZXNzYWdlUHJlZml4KFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIE1lc3NhZ2VTb3Vy
Y2Ugc291cmNlLCBNZQogICAgIGNhc2UgTWVzc2FnZVNvdXJjZTo6SVRQRGVidWc6CiAgICAgICAg
IHNvdXJjZVN0cmluZyA9ICJJVFBERUJVRyJfczsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBN
ZXNzYWdlU291cmNlOjpBZENsaWNrQXR0cmlidXRpb246Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9
ICJBRENMSUNLQVRUUklCVVRJT04iX3M7CisgICAgY2FzZSBNZXNzYWdlU291cmNlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDoKKyAgICAgICAgc291cmNlU3RyaW5nID0gIlBSSVZBVEVDTElDS01F
QVNVUkVNRU5UIl9zOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1lc3NhZ2VTb3VyY2U6Ok90
aGVyOgogICAgICAgICBzb3VyY2VTdHJpbmcgPSAiT1RIRVIiX3M7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlVHlwZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbnNvbGVUeXBlcy5oCmluZGV4IGM1ZTQwODRiMmMzYjJhZDYyNjI4
OGIzNzk2NWNhZWUzMmZmN2JiZmYuLjExMWY1MjRhNmIxNTMwZjZmMTRlMWJjOWIxMmMwZDRhZTg1
Mjc5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVU
eXBlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVUeXBlcy5o
CkBAIC00NCw3ICs0NCw3IEBAIGVudW0gY2xhc3MgTWVzc2FnZVNvdXJjZSA6IHVpbnQ4X3Qgewog
ICAgIE1lZGlhU291cmNlLAogICAgIFdlYlJUQywKICAgICBJVFBEZWJ1ZywKLSAgICBBZENsaWNr
QXR0cmlidXRpb24sCisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsCiAgICAgT3RoZXIsCiB9
OwogCkBAIC05NCw3ICs5NCw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8SlNDOjpN
ZXNzYWdlU291cmNlPiB7CiAgICAgICAgIEpTQzo6TWVzc2FnZVNvdXJjZTo6TWVkaWFTb3VyY2Us
CiAgICAgICAgIEpTQzo6TWVzc2FnZVNvdXJjZTo6V2ViUlRDLAogICAgICAgICBKU0M6Ok1lc3Nh
Z2VTb3VyY2U6OklUUERlYnVnLAotICAgICAgICBKU0M6Ok1lc3NhZ2VTb3VyY2U6OkFkQ2xpY2tB
dHRyaWJ1dGlvbiwKKyAgICAgICAgSlNDOjpNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCwKICAgICAgICAgSlNDOjpNZXNzYWdlU291cmNlOjpPdGhlcgogICAgID47CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCAyNjBmMTEwNjBmYmE3MTdhMzI4NzFjOTk0
NGIyYTBjYmU2YmY3YzkzLi5hOTFmM2I3OTQ0NTcyNWQ3MThhZGYzODlhMjUwOWVhZDE2ZjNhYTI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMv
V2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMzcsMjkgKzM3LDYgQEAgQWNjZXNz
aWJpbGl0eU9iamVjdE1vZGVsRW5hYmxlZDoKICAgICBXZWJLaXQ6CiAgICAgICBkZWZhdWx0OiBm
YWxzZQogCi1BZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkOgotICB0eXBlOiBib29s
Ci0gIGh1bWFuUmVhZGFibGVOYW1lOiAiQWQgQ2xpY2sgQXR0cmlidXRpb24gRGVidWcgTW9kZSIK
LSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIEFkIENsaWNrIEF0dHJpYnV0aW9u
IERlYnVnIE1vZGUiCi0gIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCi0g
IGRlZmF1bHRWYWx1ZToKLSAgICBXZWJLaXRMZWdhY3k6Ci0gICAgICBkZWZhdWx0OiBmYWxzZQot
ICAgIFdlYktpdDoKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0KLUFkQ2xpY2tBdHRyaWJ1dGlvbkVu
YWJsZWQ6Ci0gIHR5cGU6IGJvb2wKLSAgaHVtYW5SZWFkYWJsZU5hbWU6ICJBZCBDbGljayBBdHRy
aWJ1dGlvbiIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIEFkIENsaWNrIEF0
dHJpYnV0aW9uIGZvciBDcm9zcy1TaXRlIExpbmsgTmF2aWdhdGlvbnMiCi0gIGRlZmF1bHRWYWx1
ZToKLSAgICBXZWJLaXRMZWdhY3k6Ci0gICAgICBkZWZhdWx0OiBmYWxzZQotICAgIFdlYktpdDoK
LSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0gICAgV2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6IGZhbHNl
Ci0KICMgRklYTUU6IFRoaXMgaXMgb24gYnkgZGVmYXVsdCBpbiBXZWJLaXQyLiBQZXJoYXBzIHdl
IHNob3VsZCBjb25zaWRlciB0dXJuaW5nIGl0IG9uIGZvciBXZWJLaXRMZWdhY3kgYXMgd2VsbC4K
IEFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFibGVkOgogICB0eXBlOiBib29s
CkBAIC02MjYsNiArNjAzLDI5IEBAIFBlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9uRW5hYmxlZDoK
ICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKIAorUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnREZWJ1Z01vZGVFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1l
OiAiUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudCBEZWJ1ZyBNb2RlIgorICBodW1hblJlYWRhYmxl
RGVzY3JpcHRpb246ICJFbmFibGUgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudCBEZWJ1ZyBNb2Rl
IgorICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcworICBkZWZhdWx0VmFs
dWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXQ6
CisgICAgICBkZWZhdWx0OiBmYWxzZQorCitQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQ6
CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJQcml2YXRlIENsaWNrIE1lYXN1
cmVtZW50IgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgUHJpdmF0ZSBDbGlj
ayBNZWFzdXJlbWVudCBmb3IgQ3Jvc3MtU2l0ZSBMaW5rIE5hdmlnYXRpb25zIgorICBkZWZhdWx0
VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJL
aXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBm
YWxzZQorCiBQcm9jZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbkVuYWJsZWQ6CiAgIHR5cGU6
IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJTd2FwIFByb2Nlc3NlcyBvbiBDcm9zcy1TaXRl
IE5hdmlnYXRpb24iCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBlODIzZTM5NDY4OGY5OTg3NjdhNTRl
MWY1NjllNWE2ODZkYTcyMjI4Li43YjUyYmVjN2M2MzM4NWYwZWNlODg0N2MyZWY1MmYzNTBkMjQw
NjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTczMyw3ICs3MzMsNiBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgbGF5b3V0L2ludGVncmF0aW9uL0xheW91dElu
dGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmgKICAgICBsYXlvdXQvbGF5b3V0dHJlZS9M
YXlvdXRCb3guaAogCi0gICAgbG9hZGVyL0FkQ2xpY2tBdHRyaWJ1dGlvbi5oCiAgICAgbG9hZGVy
L0NhbnZhc0FjdGl2aXR5UmVjb3JkLmgKICAgICBsb2FkZXIvQ29udGVudEZpbHRlckNsaWVudC5o
CiAgICAgbG9hZGVyL0Nvb2tpZUphci5oCkBAIC03NjYsNiArNzY1LDcgQEAgc2V0KFdlYkNvcmVf
UFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlci5oCiAgICAgbG9hZGVyL1BpbmdMb2FkZXIuaAogICAgIGxvYWRlci9Qb2xpY3lDaGVj
a2VyLmgKKyAgICBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaAogICAgIGxvYWRlci9Q
cm9ncmVzc1RyYWNrZXIuaAogICAgIGxvYWRlci9Qcm9ncmVzc1RyYWNrZXJDbGllbnQuaAogICAg
IGxvYWRlci9SZXNvdXJjZUNyeXB0b2dyYXBoaWNEaWdlc3QuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAw
OTc0NGZiZDkxZTIyOTA5ZGFkMjM5Y2RlNWVmNjJhNGIxZjZhMjEyLi45ZGNmYTAxNTkzZjE1Zjhl
OWMwNzZmNzhiZmUyZjc5MTI4ZmFlYmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTUxNyw3ICsxNTE3
LDcgQEAgbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0UXVpcmtz
LmNwcAogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdTdGF0ZS5jcHAKIGxh
eW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlkLmNwcAogbGF5b3V0L3RhYmxlZm9ybWF0dGlu
Zy9UYWJsZUxheW91dC5jcHAKLWxvYWRlci9BZENsaWNrQXR0cmlidXRpb24uY3BwCitsb2FkZXIv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCiBsb2FkZXIvQXBwbGljYXRpb25NYW5pZmVzdExv
YWRlci5jcHAKIGxvYWRlci9DYW52YXNBY3Rpdml0eVJlY29yZC5jcHAKIGxvYWRlci9Db250ZW50
RmlsdGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDM5OTA5MTJjMjk3ZTMzOTBiOGQ4Y2VmMTUzNTI5YzEwODI1MGZlN2Qu
LjRmNThmOTUzNzU4YTZhMzA5MzY2MGMwYThhOWY4NjcxYTkwNmRlZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwMDYsNyAr
MjAwNiw3IEBACiAJCTY5QTZDQkFEMUM2QkU0MkMwMEI4MzZFOSAvKiBBY2Nlc3NpYmlsaXR5U1ZH
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Njk3MTAxMDgxQzZCRTE1NTAwMThDN0YxIC8qIEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50LmggKi87
IH07CiAJCTZBMjJFODcwMUYxMDQxODYwMEY1NDZDMyAvKiBJbnNwZWN0b3JDYW52YXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZBMjJFODZGMUYxMDQx
ODYwMEY1NDZDMyAvKiBJbnNwZWN0b3JDYW52YXMuaCAqLzsgfTsKIAkJNkE3Mjc5OEIxRjE2QzI5
QzAwM0YzOUI4IC8qIEluc3BlY3RvclNoYWRlclByb2dyYW0uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZBNzI3OTg4MUYxNkMyOUIwMDNGMzlCOCAvKiBJ
bnNwZWN0b3JTaGFkZXJQcm9ncmFtLmggKi87IH07Ci0JCTZCMEEwN0YyMjFGQTRCNUMwMEQ1NzM5
MSAvKiBBZENsaWNrQXR0cmlidXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmli
dXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk2QjBBMDdGMjIxRkE0QjVDMDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCMEEwN0YwMjFG
QTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZCMUY0ODExMjI5OEEzN0UwMERF
OEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjFGNDgwRjIyOTg5RUM0MDBERThCODIg
LyogQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZCNEQ0MTJEMjM5ODNGODgwMDI0OTRDMiAv
KiBMb2dnZWRJblN0YXR1cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkI0RDQxMkIyMzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkI0RTg2MTMy
MjFCNzEzRjAwMjJGMzg5IC8qIFJlZ2lzdHJhYmxlRG9tYWluLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjRFODYxMjIyMUI3MTNGMDAyMkYzODkgLyog
UmVnaXN0cmFibGVEb21haW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtOTUyOCw4ICs5NTI4LDggQEAKIAkJNkEyMkU4NzIxRjEwNDJDNDAwRjU0
NkMzIC8qIEluc3BlY3RvckNhbnZhcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JD
YW52YXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QTcyNzk4ODFGMTZDMjlC
MDAzRjM5QjggLyogSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZBNzI3OTg5MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFkZXJQ
cm9ncmFtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3Rv
clNoYWRlclByb2dyYW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QjBBMDdG
MDIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFkQ2xpY2tBdHRyaWJ1dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QjBB
MDdGMTIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk2QjBBMDdGMTIxRkE0QjVDMDBENTczOTEgLyogUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjFGNDgwRjIyOTg5RUM0
MDBERThCODIgLyogQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZCNEQ0MTJCMjM5ODNGODgwMDI0OTRDMiAvKiBMb2dnZWRJblN0YXR1cy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMb2dnZWRJblN0YXR1cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2QjRENDEyQzIzOTgzRjg4MDAyNDk0QzIgLyogTG9nZ2VkSW5TdGF0dXMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTG9nZ2VkSW5TdGF0dXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjY5OTQsOCArMjY5OTQsNiBAQAogCQkJCTUxMjZFNkI2MEEyRTNBRUYwMDVD
MjlGQSAvKiBpY29uICovLAogCQkJCUExNUUzMUYwMUUwQ0IwNzUwMDRCMzcxQyAvKiBpb3MgKi8s
CiAJCQkJOTNBMUVBQTIwQTU2MzREODAwNjk2MEEwIC8qIG1hYyAqLywKLQkJCQk2QjBBMDdGMTIx
RkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmNwcCAqLywKLQkJCQk2QjBBMDdG
MDIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmggKi8sCiAJCQkJNjMxNTJE
MTgxRjk1MzFFRTAwN0E1RTRCIC8qIEFwcGxpY2F0aW9uTWFuaWZlc3RMb2FkZXIuY3BwICovLAog
CQkJCTYzMTUyRDE3MUY5NTMxRUUwMDdBNUU0QiAvKiBBcHBsaWNhdGlvbk1hbmlmZXN0TG9hZGVy
LmggKi8sCiAJCQkJRUZCNzI4N0IyMTI0QzczRDAwNUMyNTU4IC8qIENhbnZhc0FjdGl2aXR5UmVj
b3JkLmNwcCAqLywKQEAgLTI3MDc0LDYgKzI3MDcyLDggQEAKIAkJCQlEMEZGMkE1QzExRjhDNDVB
MDA3RTc0RTAgLyogUGluZ0xvYWRlci5oICovLAogCQkJCTk3MDU5OTc1MTA3RDk3NTIwMEE1MEE3
QyAvKiBQb2xpY3lDaGVja2VyLmNwcCAqLywKIAkJCQk5NzA1OTk3NjEwN0Q5NzUyMDBBNTBBN0Mg
LyogUG9saWN5Q2hlY2tlci5oICovLAorCQkJCTZCMEEwN0YxMjFGQTRCNUMwMEQ1NzM5MSAvKiBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgKi8sCisJCQkJNkIwQTA3RjAyMUZBNEI1QzAwRDU3
MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmggKi8sCiAJCQkJMUEyQTY4MjEwQjVCRURF
NzAwMDJBNDgwIC8qIFByb2dyZXNzVHJhY2tlci5jcHAgKi8sCiAJCQkJMUEyQTY4MjIwQjVCRURF
NzAwMDJBNDgwIC8qIFByb2dyZXNzVHJhY2tlci5oICovLAogCQkJCTFBQ0FERDc4MTg4MEQ5MUMw
MEQ4QjcxRCAvKiBQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCAqLywKQEAgLTMwNzE3LDcgKzMwNzE3
LDYgQEAKIAkJCQlFMUM0REU2OTBFQTc1QzFFMDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3MjRFRTU1MDFEQzgwRDdGMDBBOTFGRkIgLyogQWN0aXZpdHlT
dGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzI0RUU1NTExREM4MEQ4NDAwQTkxRkZCIC8qIEFj
dGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkIwQTA3RjIy
MUZBNEI1QzAwRDU3MzkxIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTE2NzdFMEUyMTNFMDJBMDAwQTA4QzM0IC8qIEFkZHJlc3NFcnJvcnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDRjdFNDkxMTM3Q0Q3QzcwMDFEREFFNyAvKiBBZGp1c3RWaWV3U2l6ZU9yTm90
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NEQwQzQwNjExMTVGMUVBMDAxOEFBMzQgLyogQWZmaW5l
VHJhbnNmb3JtLmggaW4gSGVhZGVycyAqLywKQEAgLTMzNzI2LDYgKzMzNzI1LDcgQEAKIAkJCQlB
MUFEQUY3RTIzNjBGRDNFMDA5Q0I3NzYgLyogUHJldmlld0NvbnZlcnRlclByb3ZpZGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlFNDYwNUZFQzIxNjY0ODA5MDBFNTMwNDYgLyogUHJld2FybUluZm9y
bWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNzFGRTZERjExMDkxQ0IzMDBEQUVGNzcgLyog
UHJpbnRDb250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQk2QjBBMDdGMjIxRkE0QjVDMDBENTcz
OTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjY0
NUQ1MUZFQ0RCQ0UwMEI1NERFRCAvKiBQcm9jZXNzSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThFQTdFQkMwQTE5NDVEMDAwQThFRjVGIC8qIFByb2Nlc3NpbmdJbnN0cnVjdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTQyMDUwMTcyMTQxOTAxQjAwNjZFRjNCIC8qIFByb2Nlc3NX
YXJtaW5nLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxl
bWVudC5jcHAKaW5kZXggOWNjOGI2NDgyYTcyNmVmZWYyMDhjZTI5OWFjZDIxM2I2ZmQzNGY2Ni4u
OGU4MDUzMjNjOTcyZjg3NGFkODI2NGVhMzVlNDExZjQ2ZjRjMDFiYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTI0LDcgKzI0LDYgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJIVE1MQW5jaG9yRWxlbWVudC5oIgogCi0jaW5jbHVkZSAi
QWRDbGlja0F0dHJpYnV0aW9uLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hy
b21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCkBAIC00NCw2ICs0Myw3IEBA
CiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBpbmdMb2FkZXIuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC5oIgogI2luY2x1ZGUgIlJlZ2lzdHJhYmxlRG9tYWluLmgiCiAjaW5jbHVkZSAiUmVuZGVy
SW1hZ2UuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKQEAgLTQwNCwxNSArNDA0LDE1
IEBAIGJvb2wgSFRNTEFuY2hvckVsZW1lbnQ6OmlzU3lzdGVtUHJldmlld0xpbmsoKQogfQogI2Vu
ZGlmCiAKLU9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4gSFRNTEFuY2hvckVsZW1lbnQ6OnBh
cnNlQWRDbGlja0F0dHJpYnV0aW9uKCkgY29uc3QKK09wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1
cmVtZW50PiBIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgp
IGNvbnN0CiB7Ci0gICAgdXNpbmcgQ2FtcGFpZ24gPSBBZENsaWNrQXR0cmlidXRpb246OkNhbXBh
aWduOwotICAgIHVzaW5nIFNvdXJjZSA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlOwotICAg
IHVzaW5nIERlc3RpbmF0aW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbjsKKyAg
ICB1c2luZyBDYW1wYWlnbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbjsKKyAg
ICB1c2luZyBTb3VyY2UgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlOworICAgIHVz
aW5nIERlc3RpbmF0aW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOwog
CiAgICAgYXV0byogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpOwogICAgIGlmICghcGFnZSB8fCBw
YWdlLT5zZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpCi0gICAgICAgIHx8ICFkb2N1bWVudCgpLnNl
dHRpbmdzKCkuYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZCgpCisgICAgICAgIHx8ICFkb2N1bWVu
dCgpLnNldHRpbmdzKCkucHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkKCkKICAgICAgICAg
fHwgIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIApAQCAtNDIzLDI0ICs0MjMsMjQgQEAgT3B0aW9uYWw8
QWRDbGlja0F0dHJpYnV0aW9uPiBIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VBZENsaWNrQXR0cmli
dXRpb24oKSBjb25zdAogICAgIGF1dG8gYWREZXN0aW5hdGlvbkF0dHIgPSBhdHRyaWJ1dGVXaXRo
b3V0U3luY2hyb25pemF0aW9uKGFkZGVzdGluYXRpb25BdHRyKTsKICAgICAKICAgICBpZiAoYWRD
YW1wYWlnbklEQXR0ci5pc0VtcHR5KCkgfHwgYWREZXN0aW5hdGlvbkF0dHIuaXNFbXB0eSgpKSB7
Ci0gICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3Ro
ZXIsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkJvdGggYWRjYW1wYWlnbmlkIGFuZCBhZGRlc3Rp
bmF0aW9uIG5lZWQgdG8gYmUgc2V0IGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbiB0byB3b3JrLiJf
cyk7CisgICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6
T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkJvdGggYWRjYW1wYWlnbmlkIGFuZCBhZGRl
c3RpbmF0aW9uIG5lZWQgdG8gYmUgc2V0IGZvciBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50IHRv
IHdvcmsuIl9zKTsKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9CiAKICAgICBS
ZWZQdHI8RnJhbWU+IGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwogICAgIGlmICghZnJhbWUg
fHwgIWZyYW1lLT5pc01haW5GcmFtZSgpKSB7Ci0gICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkFk
IENsaWNrIEF0dHJpYnV0aW9uIGlzIG9ubHkgc3VwcG9ydGVkIGluIHRoZSBtYWluIGZyYW1lLiJf
cyk7CisgICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6
T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIlByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQg
aXMgb25seSBzdXBwb3J0ZWQgaW4gdGhlIG1haW4gZnJhbWUuIl9zKTsKICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKICAgICB9CiAgICAgCiAgICAgYXV0byBhZENhbXBhaWduSUQgPSBwYXJz
ZUhUTUxOb25OZWdhdGl2ZUludGVnZXIoYWRDYW1wYWlnbklEQXR0cik7CiAgICAgaWYgKCFhZENh
bXBhaWduSUQpIHsKLSAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiYWRjYW1wYWlnbmlkIGNhbiBu
b3QgYmUgY29udmVydGVkIHRvIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgd2hpY2ggaXMgcmVxdWly
ZWQgZm9yIEFkIENsaWNrIEF0dHJpYnV0aW9uLiJfcyk7CisgICAgICAgIGRvY3VtZW50KCkuYWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2Fybmlu
ZywgImFkY2FtcGFpZ25pZCBjYW4gbm90IGJlIGNvbnZlcnRlZCB0byBhIG5vbi1uZWdhdGl2ZSBp
bnRlZ2VyIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50LiJf
cyk7CiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgfQogICAgIAotICAgIGlmIChh
ZENhbXBhaWduSUQudmFsdWUoKSA+IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSkgewot
ICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVy
LCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIG1ha2VTdHJpbmcoImFkY2FtcGFpZ25pZCBtdXN0IGhh
dmUgYSBub24tbmVnYXRpdmUgdmFsdWUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICIsIEFkQ2xpY2tB
dHRyaWJ1dGlvbjo6TWF4RW50cm9weSwgIiBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24uIikpOwor
ICAgIGlmIChhZENhbXBhaWduSUQudmFsdWUoKSA+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpN
YXhFbnRyb3B5KSB7CisgICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWFrZVN0cmluZygiYWRjYW1w
YWlnbmlkIG11c3QgaGF2ZSBhIG5vbi1uZWdhdGl2ZSB2YWx1ZSBsZXNzIHRoYW4gb3IgZXF1YWwg
dG8gIiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHksICIgZm9yIFByaXZhdGUg
Q2xpY2sgTWVhc3VyZW1lbnQuIikpOwogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAg
IH0KIApAQCAtNDU2LDcgKzQ1Niw3IEBAIE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4gSFRN
TEFuY2hvckVsZW1lbnQ6OnBhcnNlQWRDbGlja0F0dHJpYnV0aW9uKCkgY29uc3QKICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9CiAKLSAgICByZXR1cm4gQWRDbGlja0F0dHJpYnV0
aW9uIHsgQ2FtcGFpZ24oYWRDYW1wYWlnbklELnZhbHVlKCkpLCBTb3VyY2UoZG9jdW1lbnRSZWdp
c3RyYWJsZURvbWFpbiksIERlc3RpbmF0aW9uKGFkRGVzdGluYXRpb25VUkwpIH07CisgICAgcmV0
dXJuIFByaXZhdGVDbGlja01lYXN1cmVtZW50IHsgQ2FtcGFpZ24oYWRDYW1wYWlnbklELnZhbHVl
KCkpLCBTb3VyY2UoZG9jdW1lbnRSZWdpc3RyYWJsZURvbWFpbiksIERlc3RpbmF0aW9uKGFkRGVz
dGluYXRpb25VUkwpIH07CiB9CiAKIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNr
KEV2ZW50JiBldmVudCkKQEAgLTUxOCwxMiArNTE4LDEyIEBAIHZvaWQgSFRNTEFuY2hvckVsZW1l
bnQ6OmhhbmRsZUNsaWNrKEV2ZW50JiBldmVudCkKICAgICBlbHNlIGlmIChoYXNSZWwoUmVsYXRp
b246Ok5vT3BlbmVyKSB8fCAoZG9jdW1lbnQoKS5zZXR0aW5ncygpLmJsYW5rQW5jaG9yVGFyZ2V0
SW1wbGllc05vT3BlbmVyRW5hYmxlZCgpICYmIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoZWZmZWN0
aXZlVGFyZ2V0LCAiX2JsYW5rIikpKQogICAgICAgICBuZXdGcmFtZU9wZW5lclBvbGljeSA9IE5l
d0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzczsKIAotICAgIGF1dG8gYWRDbGlja0F0dHJpYnV0
aW9uID0gcGFyc2VBZENsaWNrQXR0cmlidXRpb24oKTsKLSAgICAvLyBBIG1hdGNoaW5nIGNvbnZl
cnNpb24gZXZlbnQgbmVlZHMgdG8gaGFwcGVuIGJlZm9yZSB0aGUgY29tcGxldGUgYWQgY2xpY2sg
YXR0cmlidXRpb25VUkwgY2FuIGJlCi0gICAgLy8gY3JlYXRlZC4gVGh1cywgaXQgc2hvdWxkIGJl
IGVtcHR5IGZvciBub3cuCi0gICAgQVNTRVJUKCFhZENsaWNrQXR0cmlidXRpb24gfHwgYWRDbGlj
a0F0dHJpYnV0aW9uLT5yZXBvcnRVUkwoKS5pc051bGwoKSk7CisgICAgYXV0byBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCA9IHBhcnNlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAvLyBB
IG1hdGNoaW5nIGNvbnZlcnNpb24gZXZlbnQgbmVlZHMgdG8gaGFwcGVuIGJlZm9yZSB0aGUgY29t
cGxldGUgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudAorICAgIC8vIFVSTCBjYW4gYmUgY3JlYXRl
ZC4gVGh1cywgaXQgc2hvdWxkIGJlIGVtcHR5IGZvciBub3cuCisgICAgQVNTRVJUKCFwcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCB8fCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+cmVwb3J0VVJMKCku
aXNOdWxsKCkpOwogICAgIAotICAgIGZyYW1lLT5sb2FkZXIoKS5jaGFuZ2VMb2NhdGlvbihjb21w
bGV0ZWRVUkwsIGVmZmVjdGl2ZVRhcmdldCwgJmV2ZW50LCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tC
YWNrRm9yd2FyZExpc3Q6Ok5vLCByZWZlcnJlclBvbGljeSwgZG9jdW1lbnQoKS5zaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKSwgbmV3RnJhbWVPcGVuZXJQb2xpY3ksIGRv
d25sb2FkQXR0cmlidXRlLCBzeXN0ZW1QcmV2aWV3SW5mbywgV1RGTW92ZShhZENsaWNrQXR0cmli
dXRpb24pKTsKKyAgICBmcmFtZS0+bG9hZGVyKCkuY2hhbmdlTG9jYXRpb24oY29tcGxldGVkVVJM
LCBlZmZlY3RpdmVUYXJnZXQsICZldmVudCwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0Zvcndh
cmRMaXN0OjpObywgcmVmZXJyZXJQb2xpY3ksIGRvY3VtZW50KCkuc2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeVRvUHJvcGFnYXRlKCksIG5ld0ZyYW1lT3BlbmVyUG9saWN5LCBkb3dubG9hZEF0
dHJpYnV0ZSwgc3lzdGVtUHJldmlld0luZm8sIFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQpKTsKIAogICAgIHNlbmRQaW5ncyhjb21wbGV0ZWRVUkwpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQW5jaG9yRWxlbWVudC5oCmluZGV4IDA0MTEwYzYyZDU3ZGE0ODZmY2M1NDNjYTk5MmNl
ZmU0ZGQyZDI4OGIuLjY3ZGYwMWUwYTg1ZmU5NWViNDBjMmQ4MGU5ZDFmMzg0Y2Y1NTcxYjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgKQEAgLTMxLDcgKzMxLDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBZENsaWNrQXR0cmlidXRpb247CitjbGFz
cyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKIGNsYXNzIERPTVRva2VuTGlzdDsKIAogLy8gTGlu
ayByZWxhdGlvbiBiaXRtYXNrIHZhbHVlcy4KQEAgLTEwMCw3ICsxMDAsNyBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCBzZW5kUGluZ3MoY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCk7CiAKLSAgICBP
cHRpb25hbDxBZENsaWNrQXR0cmlidXRpb24+IHBhcnNlQWRDbGlja0F0dHJpYnV0aW9uKCkgY29u
c3Q7CisgICAgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IHBhcnNlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoKSBjb25zdDsKIAogICAgIHZvaWQgaGFuZGxlQ2xpY2soRXZlbnQmKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAppbmRleCBjYWFmYjMx
NGY4NzFmOWZhZWNkZjVlNjJmNDFmY2UxNzRmNzE1NDEyLi5iZDFkZDY2ODMzY2QyMDQxOGViZGFk
MTAwYjdhODI0Nzk2MWQ2ZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
bmNob3JFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVt
ZW50LmlkbApAQCAtMjEsOCArMjEsOCBAQAogWwogICAgIEV4cG9zZWQ9V2luZG93CiBdIGludGVy
ZmFjZSBIVE1MQW5jaG9yRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICBbQ0VSZWFjdGlvbnM9
Tm90TmVlZGVkLCBFbmFibGVkQnlTZXR0aW5nPUFkQ2xpY2tBdHRyaWJ1dGlvbiwgUmVmbGVjdF0g
YXR0cmlidXRlIERPTVN0cmluZyBhZGNhbXBhaWduaWQ7Ci0gICAgW0NFUmVhY3Rpb25zPU5vdE5l
ZWRlZCwgRW5hYmxlZEJ5U2V0dGluZz1BZENsaWNrQXR0cmlidXRpb24sIFJlZmxlY3RdIGF0dHJp
YnV0ZSBET01TdHJpbmcgYWRkZXN0aW5hdGlvbjsKKyAgICBbQ0VSZWFjdGlvbnM9Tm90TmVlZGVk
LCBFbmFibGVkQnlTZXR0aW5nPVByaXZhdGVDbGlja01lYXN1cmVtZW50LCBSZWZsZWN0XSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGFkY2FtcGFpZ25pZDsKKyAgICBbQ0VSZWFjdGlvbnM9Tm90TmVlZGVk
LCBFbmFibGVkQnlTZXR0aW5nPVByaXZhdGVDbGlja01lYXN1cmVtZW50LCBSZWZsZWN0XSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGFkZGVzdGluYXRpb247CiAgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRl
ZCwgUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBjaGFyc2V0OwogICAgIFtDRVJlYWN0aW9u
cz1Ob3ROZWVkZWQsIFJlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgY29vcmRzOwogICAgIFtD
RVJlYWN0aW9ucz1Ob3ROZWVkZWQsIENvbmRpdGlvbmFsPURPV05MT0FEX0FUVFJJQlVURSwgRW5h
YmxlZEJ5U2V0dGluZz1Eb3dubG9hZEF0dHJpYnV0ZSwgUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0
cmluZyBkb3dubG9hZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQu
aAppbmRleCA5N2E0N2Q4NTM0Y2JkN2UzMTFkZTMzNDM3ZjUxYzRkNDRmYzEyNWRiLi5hNjcwZTMy
OGE1YmZjODgwYmQ1NDVkODc5N2E2MmE2MDJiMTljYzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNsaWVudC5oCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgdGltZWxpbmVSZWNvcmRpbmdDaGFuZ2VkKGJvb2wpIHsgfQogCiAgICAgZW51
bSBjbGFzcyBEZXZlbG9wZXJQcmVmZXJlbmNlIHsKLSAgICAgICAgQWRDbGlja0F0dHJpYnV0aW9u
RGVidWdNb2RlRW5hYmxlZCwKKyAgICAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01v
ZGVFbmFibGVkLAogICAgICAgICBJVFBEZWJ1Z01vZGVFbmFibGVkLAogICAgICAgICBNb2NrQ2Fw
dHVyZURldmljZXNFbmFibGVkLAogICAgIH07CkBAIC04Myw3ICs4Myw3IEBAIG5hbWVzcGFjZSBX
VEYgewogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpJbnNwZWN0b3JDbGll
bnQ6OkRldmVsb3BlclByZWZlcmVuY2U+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVz
PAogICAgICAgICBXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQ6OkRldmVsb3BlclByZWZlcmVuY2Us
Ci0gICAgICAgIFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5jZTo6
QWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZCwKKyAgICAgICAgV2ViQ29yZTo6SW5z
cGVjdG9yQ2xpZW50OjpEZXZlbG9wZXJQcmVmZXJlbmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dERlYnVnTW9kZUVuYWJsZWQsCiAgICAgICAgIFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6RGV2
ZWxvcGVyUHJlZmVyZW5jZTo6SVRQRGVidWdNb2RlRW5hYmxlZCwKICAgICAgICAgV2ViQ29yZTo6
SW5zcGVjdG9yQ2xpZW50OjpEZXZlbG9wZXJQcmVmZXJlbmNlOjpNb2NrQ2FwdHVyZURldmljZXNF
bmFibGVkCiAgICAgPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCBhNjkzYjhkODUxYTRmMDJjZjgyMTI5YjI4
NDMxODg5MGRjYTc0MjFhLi5hZjBhMDUxYmRhZTUyYjJkYWY3MGIxZmVlNzZlZWUwODY2YjdiMDQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBh
Z2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JQYWdlQWdlbnQuY3BwCkBAIC0zODIsNyArMzgyLDcgQEAgUHJvdG9jb2w6OkVycm9yU3RyaW5n
T3I8dm9pZD4gSW5zcGVjdG9yUGFnZUFnZW50OjpkaXNhYmxlKCkKICAgICBpbnNwZWN0ZWRQYWdl
U2V0dGluZ3Muc2V0V2ViUlRDRW5jcnlwdGlvbkVuYWJsZWRJbnNwZWN0b3JPdmVycmlkZShXVEY6
Om51bGxvcHQpOwogICAgIGluc3BlY3RlZFBhZ2VTZXR0aW5ncy5zZXRXZWJTZWN1cml0eUVuYWJs
ZWRJbnNwZWN0b3JPdmVycmlkZShXVEY6Om51bGxvcHQpOwogCi0gICAgbV9jbGllbnQtPnNldERl
dmVsb3BlclByZWZlcmVuY2VPdmVycmlkZShJbnNwZWN0b3JDbGllbnQ6OkRldmVsb3BlclByZWZl
cmVuY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQsIFdURjo6bnVsbG9wdCk7
CisgICAgbV9jbGllbnQtPnNldERldmVsb3BlclByZWZlcmVuY2VPdmVycmlkZShJbnNwZWN0b3JD
bGllbnQ6OkRldmVsb3BlclByZWZlcmVuY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdN
b2RlRW5hYmxlZCwgV1RGOjpudWxsb3B0KTsKICAgICBtX2NsaWVudC0+c2V0RGV2ZWxvcGVyUHJl
ZmVyZW5jZU92ZXJyaWRlKEluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5jZTo6SVRQ
RGVidWdNb2RlRW5hYmxlZCwgV1RGOjpudWxsb3B0KTsKICAgICBtX2NsaWVudC0+c2V0RGV2ZWxv
cGVyUHJlZmVyZW5jZU92ZXJyaWRlKEluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5j
ZTo6TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCwgV1RGOjpudWxsb3B0KTsKIApAQCAtNDMxLDgg
KzQzMSw4IEBAIFByb3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IEluc3BlY3RvclBhZ2VBZ2Vu
dDo6b3ZlcnJpZGVTZXR0aW5nKFByb3RvY29sOjpQYWdlCiAgICAgYXV0byYgaW5zcGVjdGVkUGFn
ZVNldHRpbmdzID0gbV9pbnNwZWN0ZWRQYWdlLnNldHRpbmdzKCk7CiAKICAgICBzd2l0Y2ggKHNl
dHRpbmcpIHsKLSAgICBjYXNlIFByb3RvY29sOjpQYWdlOjpTZXR0aW5nOjpBZENsaWNrQXR0cmli
dXRpb25EZWJ1Z01vZGVFbmFibGVkOgotICAgICAgICBtX2NsaWVudC0+c2V0RGV2ZWxvcGVyUHJl
ZmVyZW5jZU92ZXJyaWRlKEluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5jZTo6QWRD
bGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZCwgdmFsdWUpOworICAgIGNhc2UgUHJvdG9j
b2w6OlBhZ2U6OlNldHRpbmc6OlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxl
ZDoKKyAgICAgICAgbV9jbGllbnQtPnNldERldmVsb3BlclByZWZlcmVuY2VPdmVycmlkZShJbnNw
ZWN0b3JDbGllbnQ6OkRldmVsb3BlclByZWZlcmVuY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
RGVidWdNb2RlRW5hYmxlZCwgdmFsdWUpOwogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgY2Fz
ZSBQcm90b2NvbDo6UGFnZTo6U2V0dGluZzo6QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQ6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNv
bGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNv
bnNvbGVBZ2VudC5jcHAKaW5kZXggZDQ5MDFmMzViMDg1MzIwZDRjMTRhZWJhMWRiNmIyN2JjNmIy
ODYxZi4uYjgyZDZlZjM4NmJmNjcwY2FmNDQ3NTEzM2ZlOGNkMDE2YjdkNzEwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29uc29s
ZUFnZW50LmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIFByb3RvY29sOjpFcnJvclN0cmluZ09yPFJl
ZjxKU09OOjpBcnJheU9mPFByb3RvY29sOjpDb25zb2xlOjpDaGFubmVsPj4+IFBhZ2VDb25zCiAg
ICAgYWRkTG9nQ2hhbm5lbChQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbFNvdXJjZTo6TWVkaWFT
b3VyY2UpOwogICAgIGFkZExvZ0NoYW5uZWwoUHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxTb3Vy
Y2U6OldlYlJUQyk7CiAgICAgYWRkTG9nQ2hhbm5lbChQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5l
bFNvdXJjZTo6SVRQRGVidWcpOwotICAgIGFkZExvZ0NoYW5uZWwoUHJvdG9jb2w6OkNvbnNvbGU6
OkNoYW5uZWxTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbik7CisgICAgYWRkTG9nQ2hhbm5lbChQ
cm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbFNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQp
OwogICAgIGFkZExvZ0NoYW5uZWwoUHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxTb3VyY2U6Ok90
aGVyKTsKIAogICAgIHJldHVybiBjaGFubmVsczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9BZENsaWNrQXR0cmlidXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Fk
Q2xpY2tBdHRyaWJ1dGlvbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyMzEx
YmU4ZDk5YTIzMWI5YTQ2NTUxYjBlNDkzYTA1YWU4MTg0ZDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0FkQ2xpY2tB
dHRyaWJ1dGlvbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyMjkgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJBZENsaWNrQXR0cmlidXRpb24uaCIK
LQotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgiCi0jaW5jbHVkZSA8d3RmL0V4cGVjdGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JhbmRvbU51bWJl
ci5oPgotI2luY2x1ZGUgPHd0Zi9VUkwuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLXN0YXRpYyBjb25zdCBjaGFyIGFkQ2xpY2tBdHRyaWJ1dGlvblBhdGhQcmVmaXhb
XSA9ICIvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vIjsKLWNvbnN0IHNpemVfdCBh
ZENsaWNrQ29udmVyc2lvbkRhdGFQYXRoU2VnbWVudFNpemUgPSAyOwotY29uc3Qgc2l6ZV90IGFk
Q2xpY2tQcmlvcml0eVBhdGhTZWdtZW50U2l6ZSA9IDI7Ci1jb25zdCBTZWNvbmRzIG1heEFnZSB7
IDI0X2ggKiA3IH07Ci0KLWJvb2wgQWRDbGlja0F0dHJpYnV0aW9uOjppc1ZhbGlkKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbV9jb252ZXJzaW9uCi0gICAgICAgICYmIG1fY29udmVyc2lvbi52YWx1
ZSgpLmlzVmFsaWQoKQotICAgICAgICAmJiBtX2NhbXBhaWduLmlzVmFsaWQoKQotICAgICAgICAm
JiAhbV9zb3VyY2UucmVnaXN0cmFibGVEb21haW4uaXNFbXB0eSgpCi0gICAgICAgICYmICFtX2Rl
c3RpbmF0aW9uLnJlZ2lzdHJhYmxlRG9tYWluLmlzRW1wdHkoKQotICAgICAgICAmJiBtX2Vhcmxp
ZXN0VGltZVRvU2VuZDsKLX0KLQotRXhwZWN0ZWQ8QWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJz
aW9uLCBTdHJpbmc+IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChj
b25zdCBVUkwmIHJlZGlyZWN0VVJMKQotewotICAgIGlmICghcmVkaXJlY3RVUkwucHJvdG9jb2xJ
cygiaHR0cHMiKSB8fCByZWRpcmVjdFVSTC5oYXNDcmVkZW50aWFscygpIHx8IHJlZGlyZWN0VVJM
Lmhhc1F1ZXJ5KCkgfHwgcmVkaXJlY3RVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpIHsKLSAg
ICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lORk8oQWRDbGlja0F0dHJpYnV0aW9uLCAiQ29udmVyc2lvbiB3YXMgbm90IGFj
Y2VwdGVkIGJlY2F1c2UgdGhlIFVSTCdzIHByb3RvY29sIGlzIG5vdCBIVFRQUyBvciB0aGUgVVJM
IGNvbnRhaW5zIG9uZSBvciBtb3JlIG9mIHVzZXJuYW1lLCBwYXNzd29yZCwgcXVlcnkgc3RyaW5n
LCBhbmQgZnJhZ21lbnQuIik7Ci0gICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIltB
ZCBDbGljayBBdHRyaWJ1dGlvbl0gQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2Ug
dGhlIFVSTCdzIHByb3RvY29sIGlzIG5vdCBIVFRQUyBvciB0aGUgVVJMIGNvbnRhaW5zIG9uZSBv
ciBtb3JlIG9mIHVzZXJuYW1lLCBwYXNzd29yZCwgcXVlcnkgc3RyaW5nLCBhbmQgZnJhZ21lbnQu
Il9zKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmlu
ZygpKTsKLSAgICB9Ci0KLSAgICBhdXRvIHBhdGggPSBTdHJpbmdWaWV3KHJlZGlyZWN0VVJMLnN0
cmluZygpKS5zdWJzdHJpbmcocmVkaXJlY3RVUkwucGF0aFN0YXJ0KCksIHJlZGlyZWN0VVJMLnBh
dGhFbmQoKSAtIHJlZGlyZWN0VVJMLnBhdGhTdGFydCgpKTsKLSAgICBpZiAocGF0aC5pc0VtcHR5
KCkgfHwgIXBhdGguc3RhcnRzV2l0aChhZENsaWNrQXR0cmlidXRpb25QYXRoUHJlZml4KSkgewot
ICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSU5GTyhBZENsaWNrQXR0cmlidXRpb24sICJDb252ZXJzaW9uIHdhcyBub3Qg
YWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMIHBhdGggZGlkIG5vdCBzdGFydCB3aXRoICUiIFBVQkxJ
Q19MT0dfU1RSSU5HICIuIiwgYWRDbGlja0F0dHJpYnV0aW9uUGF0aFByZWZpeCk7Ci0gICAgICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiW0FkIENsaWNrIEF0dHJpYnV0
aW9uXSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMIHBhdGggZGlk
IG5vdCBzdGFydCB3aXRoICJfcywgYWRDbGlja0F0dHJpYnV0aW9uUGF0aFByZWZpeCwgIi4iX3Mp
KTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygp
KTsKLSAgICB9Ci0KLSAgICBhdXRvIHByZWZpeExlbmd0aCA9IHNpemVvZihhZENsaWNrQXR0cmli
dXRpb25QYXRoUHJlZml4KSAtIDE7Ci0gICAgaWYgKHBhdGgubGVuZ3RoKCkgPT0gcHJlZml4TGVu
Z3RoICsgYWRDbGlja0NvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRTaXplKSB7Ci0gICAgICAgIGF1
dG8gY29udmVyc2lvbkRhdGFVSW50NjQgPSBwYXRoLnN1YnN0cmluZyhwcmVmaXhMZW5ndGgsIGFk
Q2xpY2tDb252ZXJzaW9uRGF0YVBhdGhTZWdtZW50U2l6ZSkudG9VSW50NjRTdHJpY3QoKTsKLSAg
ICAgICAgaWYgKCFjb252ZXJzaW9uRGF0YVVJbnQ2NCB8fCAqY29udmVyc2lvbkRhdGFVSW50NjQg
PiBNYXhFbnRyb3B5KSB7Ci0gICAgICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxl
ZCgpKSkgewotICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oQWRDbGlja0F0dHJpYnV0
aW9uLCAiQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIGNvbnZlcnNpb24g
ZGF0YSBjb3VsZCBub3QgYmUgcGFyc2VkIG9yIHdhcyBoaWdoZXIgdGhhbiB0aGUgYWxsb3dlZCBt
YXhpbXVtIG9mICV7cHVibGljfXUuIiwgTWF4RW50cm9weSk7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gQ29u
dmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIGNvbnZlcnNpb24gZGF0YSBjb3Vs
ZCBub3QgYmUgcGFyc2VkIG9yIHdhcyBoaWdoZXIgdGhhbiB0aGUgYWxsb3dlZCBtYXhpbXVtIG9m
ICJfcywgTWF4RW50cm9weSwgIi4iX3MpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChudWxsU3RyaW5nKCkpOwotICAgICAgICB9Ci0KLSAgICAgICAg
cmV0dXJuIENvbnZlcnNpb24geyBzdGF0aWNfY2FzdDx1aW50MzJfdD4oKmNvbnZlcnNpb25EYXRh
VUludDY0KSwgUHJpb3JpdHkgeyAwIH0gfTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKHBhdGgubGVu
Z3RoKCkgPT0gcHJlZml4TGVuZ3RoICsgYWRDbGlja0NvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRT
aXplICsgMSArIGFkQ2xpY2tQcmlvcml0eVBhdGhTZWdtZW50U2l6ZSkgewotICAgICAgICBhdXRv
IGNvbnZlcnNpb25EYXRhVUludDY0ID0gcGF0aC5zdWJzdHJpbmcocHJlZml4TGVuZ3RoLCBhZENs
aWNrQ29udmVyc2lvbkRhdGFQYXRoU2VnbWVudFNpemUpLnRvVUludDY0U3RyaWN0KCk7Ci0gICAg
ICAgIGlmICghY29udmVyc2lvbkRhdGFVSW50NjQgfHwgKmNvbnZlcnNpb25EYXRhVUludDY0ID4g
TWF4RW50cm9weSkgewotICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQo
KSkpIHsKLSAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKEFkQ2xpY2tBdHRyaWJ1dGlv
biwgIkNvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBjb252ZXJzaW9uIGRh
dGEgY291bGQgbm90IGJlIHBhcnNlZCBvciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQgbWF4
aW11bSBvZiAle3B1YmxpY311LiIsIE1heEVudHJvcHkpOwotICAgICAgICAgICAgICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJbQWQgQ2xpY2sgQXR0cmlidXRpb25dIENvbnZl
cnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBjb252ZXJzaW9uIGRhdGEgY291bGQg
bm90IGJlIHBhcnNlZCBvciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQgbWF4aW11bSBvZiAi
X3MsIE1heEVudHJvcHksICIuIl9zKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygpKTsKLSAgICAgICAgfQotCi0gICAgICAgIGF1
dG8gY29udmVyc2lvblByaW9yaXR5VUludDY0ID0gcGF0aC5zdWJzdHJpbmcocHJlZml4TGVuZ3Ro
ICsgYWRDbGlja0NvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRTaXplICsgMSwgYWRDbGlja1ByaW9y
aXR5UGF0aFNlZ21lbnRTaXplKS50b1VJbnQ2NFN0cmljdCgpOwotICAgICAgICBpZiAoIWNvbnZl
cnNpb25Qcmlvcml0eVVJbnQ2NCB8fCAqY29udmVyc2lvblByaW9yaXR5VUludDY0ID4gTWF4RW50
cm9weSkgewotICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsK
LSAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgIkNv
bnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBwcmlvcml0eSBjb3VsZCBub3Qg
YmUgcGFyc2VkIG9yIHdhcyBoaWdoZXIgdGhhbiB0aGUgYWxsb3dlZCBtYXhpbXVtIG9mICV7cHVi
bGljfXUuIiwgTWF4RW50cm9weSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKG1ha2VTdHJpbmcoIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gQ29udmVyc2lvbiB3YXMgbm90
IGFjY2VwdGVkIGJlY2F1c2UgdGhlIHByaW9yaXR5IGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2Fz
IGhpZ2hlciB0aGFuIHRoZSBhbGxvd2VkIG1heGltdW0gb2YgIl9zLCBNYXhFbnRyb3B5LCAiLiJf
cykpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG51
bGxTdHJpbmcoKSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gQ29udmVyc2lvbiB7IHN0
YXRpY19jYXN0PHVpbnQzMl90PigqY29udmVyc2lvbkRhdGFVSW50NjQpLCBQcmlvcml0eSB7IHN0
YXRpY19jYXN0PHVpbnQzMl90PigqY29udmVyc2lvblByaW9yaXR5VUludDY0KSB9IH07Ci0gICAg
fQotCi0gICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgUkVM
RUFTRV9MT0dfSU5GTyhBZENsaWNrQXR0cmlidXRpb24sICJDb252ZXJzaW9uIHdhcyBub3QgYWNj
ZXB0ZWQgYmVjYXVzZSB0aGUgVVJMIHBhdGggY29udGFpbmVkIHVucmVjb2duaXplZCBwYXJ0cy4i
KTsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKCJbQWQgQ2xpY2sgQXR0cmlidXRpb25d
IENvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBVUkwgcGF0aCBjb250YWlu
ZWQgdW5yZWNvZ25pemVkIHBhcnRzLiJfcyk7Ci0gICAgfQotICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZChudWxsU3RyaW5nKCkpOwotfQotCi1PcHRpb25hbDxTZWNvbmRzPiBBZENsaWNrQXR0cmli
dXRpb246OmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoQ29udmVyc2lvbiYmIGNvbnZl
cnNpb24pCi17Ci0gICAgaWYgKCFjb252ZXJzaW9uLmlzVmFsaWQoKSB8fCAobV9jb252ZXJzaW9u
ICYmIG1fY29udmVyc2lvbi0+cHJpb3JpdHkgPj0gY29udmVyc2lvbi5wcmlvcml0eSkpCi0gICAg
ICAgIHJldHVybiB7IH07Ci0KLSAgICBtX2NvbnZlcnNpb24gPSBXVEZNb3ZlKGNvbnZlcnNpb24p
OwotICAgIC8vIDI0LTQ4IGhvdXIgZGVsYXkgYmVmb3JlIHNlbmRpbmcuIFRoaXMgaGVscHMgcHJp
dmFjeSBzaW5jZSB0aGUgY29udmVyc2lvbiBhbmQgdGhlIGF0dHJpYnV0aW9uCi0gICAgLy8gcmVx
dWVzdHMgYXJlIGRldGFjaGVkIGFuZCB0aGUgdGltZSBvZiB0aGUgYXR0cmlidXRpb24gZG9lcyBu
b3QgcmV2ZWFsIHRoZSB0aW1lIG9mIHRoZSBjb252ZXJzaW9uLgotICAgIGF1dG8gc2Vjb25kcyA9
IDI0X2ggKyBTZWNvbmRzKHJhbmRvbU51bWJlcigpICogKDI0X2gpLnZhbHVlKCkpOwotICAgIG1f
ZWFybGllc3RUaW1lVG9TZW5kID0gV2FsbFRpbWU6Om5vdygpICsgc2Vjb25kczsKLSAgICByZXR1
cm4gc2Vjb25kczsKLX0KLQotdm9pZCBBZENsaWNrQXR0cmlidXRpb246Om1hcmtBc0V4cGlyZWQo
KQotewotICAgIG1fdGltZU9mQWRDbGljayA9IHsgfTsKLX0KLQotYm9vbCBBZENsaWNrQXR0cmli
dXRpb246Omhhc0V4cGlyZWQoKSBjb25zdAotewotICAgIHJldHVybiBXYWxsVGltZTo6bm93KCkg
PiBtX3RpbWVPZkFkQ2xpY2sgKyBtYXhBZ2U7Ci19Ci0KLWJvb2wgQWRDbGlja0F0dHJpYnV0aW9u
OjpoYXNIaWdoZXJQcmlvcml0eVRoYW4oY29uc3QgQWRDbGlja0F0dHJpYnV0aW9uJiBvdGhlcikg
Y29uc3QKLXsKLSAgICBpZiAoIW90aGVyLm1fY29udmVyc2lvbikKLSAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgCi0gICAgaWYgKCFtX2NvbnZlcnNpb24pCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIHJldHVybiBtX2NvbnZlcnNpb24tPnByaW9yaXR5ID4gb3RoZXIubV9jb252ZXJzaW9u
LT5wcmlvcml0eTsKLX0KLQotVVJMIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cmVwb3J0VVJMKCkgY29u
c3QKLXsKLSAgICBpZiAoIWlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIFVSTCgpOwotCi0gICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiaHR0cHM6
Ly8iKTsKLSAgICBidWlsZGVyLmFwcGVuZChtX3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJp
bmcoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKGFkQ2xpY2tBdHRyaWJ1dGlvblBhdGhQ
cmVmaXgpOwotCi0gICAgVVJMIHVybCB7IFVSTCgpLCBidWlsZGVyLnRvU3RyaW5nKCkgfTsKLSAg
ICBpZiAodXJsLmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIHVybDsKLQotICAgIHJldHVybiBV
UkwoKTsKLX0KLQotUmVmPEpTT046Ok9iamVjdD4gQWRDbGlja0F0dHJpYnV0aW9uOjpqc29uKCkg
Y29uc3QKLXsKLSAgICBhdXRvIHJlcG9ydERldGFpbHMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgp
OwotICAgIGlmICghbV9jb252ZXJzaW9uKQotICAgICAgICByZXR1cm4gcmVwb3J0RGV0YWlsczsK
LQotICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygiY29udGVudC10eXBlIl9zLCAiY2xpY2si
X3MpOwotICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygiY29udGVudC1zaXRlIl9zLCBtX3Nv
dXJjZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0
SW50ZWdlcigiY29udGVudC1pZCJfcywgbV9jYW1wYWlnbi5pZCk7Ci0gICAgcmVwb3J0RGV0YWls
cy0+c2V0U3RyaW5nKCJjb252ZXJzaW9uLXNpdGUiX3MsIG1fZGVzdGluYXRpb24ucmVnaXN0cmFi
bGVEb21haW4uc3RyaW5nKCkpOwotICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoImNvbnZl
cnNpb24tZGF0YSJfcywgbV9jb252ZXJzaW9uLT5kYXRhKTsKLSAgICByZXBvcnREZXRhaWxzLT5z
ZXRJbnRlZ2VyKCJyZXBvcnQtdmVyc2lvbiJfcywgMSk7Ci0gICAgcmV0dXJuIHJlcG9ydERldGFp
bHM7Ci19Ci0KLXZvaWQgQWRDbGlja0F0dHJpYnV0aW9uOjptYXJrQ29udmVyc2lvbkFzU2VudCgp
Ci17Ci0gICAgQVNTRVJUKG1fY29udmVyc2lvbik7Ci0gICAgaWYgKG1fY29udmVyc2lvbikKLSAg
ICAgICAgbV9jb252ZXJzaW9uLT53YXNTZW50ID0gQ29udmVyc2lvbjo6V2FzU2VudDo6WWVzOwot
fQotCi1ib29sIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6d2FzQ29udmVyc2lvblNlbnQoKSBjb25zdAot
ewotICAgIHJldHVybiBtX2NvbnZlcnNpb24gJiYgbV9jb252ZXJzaW9uLT53YXNTZW50ID09IENv
bnZlcnNpb246Oldhc1NlbnQ6OlllczsKLX0KLQotU3RyaW5nIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6
dG9TdHJpbmcoKSBjb25zdAotewotICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIlNvdXJjZTogIik7Ci0gICAgYnVpbGRlci5hcHBlbmQobV9zb3Vy
Y2UucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiXG5EZXN0aW5hdGlvbjogIik7Ci0gICAgYnVpbGRlci5hcHBlbmQobV9kZXN0aW5hdGlvbi5y
ZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJc
bkNhbXBhaWduIElEOiAiKTsKLSAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2NhbXBhaWduLmlk
KTsKLSAgICBpZiAobV9jb252ZXJzaW9uKSB7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiXG5Db252ZXJzaW9uIGRhdGE6ICIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlciht
X2NvbnZlcnNpb24udmFsdWUoKS5kYXRhKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJcbkNvbnZlcnNpb24gcHJpb3JpdHk6ICIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJl
cihtX2NvbnZlcnNpb24udmFsdWUoKS5wcmlvcml0eSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiXG5Db252ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogIik7Ci0gICAgICAg
IGlmICghbV9lYXJsaWVzdFRpbWVUb1NlbmQpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIk5vdCBzZXQiKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIHNlY29u
ZHNVbnRpbFNlbmQgPSAqbV9lYXJsaWVzdFRpbWVUb1NlbmQgLSBXYWxsVGltZTo6bm93KCk7Ci0g
ICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgoc2Vjb25kc1VudGlsU2VuZCA+PSAyNF9oICYmIHNl
Y29uZHNVbnRpbFNlbmQgPD0gNDhfaCkgPyAiV2l0aGluIDI0LTQ4IGhvdXJzIiA6ICJPdXRzaWRl
IDI0LTQ4IGhvdXJzIik7Ci0gICAgICAgIH0KLSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJcbkNvbnZlcnNpb24gcmVxdWVzdCBzZW50OiAiKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQo
KHdhc0NvbnZlcnNpb25TZW50KCkgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7Ci0gICAgfSBlbHNlCi0g
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5ObyBjb252ZXJzaW9uIGRhdGEuIik7Ci0g
ICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OwotfQotCi1ib29sIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6ZGVidWdNb2RlRW5hYmxlZCgpCi17Ci0g
ICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuYWRDbGlj
a0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZCgpOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvQWRDbGlja0F0dHJpYnV0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvQWRDbGlja0F0dHJpYnV0aW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDdkMTllY2EwMGJhNDNjMTgxZGQxNGY0YTM3MDU1YjgwODk0ZmE3ODkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Fk
Q2xpY2tBdHRyaWJ1dGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsMzY4ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIlJlZ2lzdHJhYmxlRG9tYWluLmgiCi0j
aW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KLSNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgotI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgotI2luY2x1ZGUgPHd0Zi9VUkwuaD4KLSNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQWRDbGlja0F0dHJpYnV0aW9uIHsK
LXB1YmxpYzoKLSAgICB1c2luZyBDYW1wYWlnbklkID0gdWludDMyX3Q7Ci0gICAgdXNpbmcgQ29u
dmVyc2lvbkRhdGEgPSB1aW50MzJfdDsKLSAgICB1c2luZyBQcmlvcml0eVZhbHVlID0gdWludDMy
X3Q7Ci0KLSAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IE1heEVudHJvcHkgPSA2MzsKLQot
ICAgIHN0cnVjdCBDYW1wYWlnbiB7Ci0gICAgICAgIENhbXBhaWduKCkgPSBkZWZhdWx0OwotICAg
ICAgICBleHBsaWNpdCBDYW1wYWlnbihDYW1wYWlnbklkIGlkKQotICAgICAgICAgICAgOiBpZCB7
IGlkIH0KLSAgICAgICAgewotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBib29sIGlzVmFs
aWQoKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gaWQgPD0gTWF4RW50cm9w
eTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgQ2FtcGFpZ25JZCBpZCB7IDAgfTsKLSAg
ICB9OwotCi0gICAgc3RydWN0IFNvdXJjZSB7Ci0gICAgICAgIFNvdXJjZSgpID0gZGVmYXVsdDsK
LSAgICAgICAgZXhwbGljaXQgU291cmNlKGNvbnN0IFVSTCYgdXJsKQotICAgICAgICAgICAgOiBy
ZWdpc3RyYWJsZURvbWFpbiB7IHVybCB9Ci0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAg
IGV4cGxpY2l0IFNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQotICAgICAg
ICAgICAgOiByZWdpc3RyYWJsZURvbWFpbiB7IGRvbWFpbiB9Ci0gICAgICAgIHsKLSAgICAgICAg
fQotCi0gICAgICAgIGV4cGxpY2l0IFNvdXJjZShXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5
cGUpCi0gICAgICAgICAgICA6IHJlZ2lzdHJhYmxlRG9tYWluKFdURjo6SGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBib29sIG9wZXJhdG9yPT0o
Y29uc3QgU291cmNlJiBvdGhlcikgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IHJlZ2lzdHJhYmxlRG9tYWluID09IG90aGVyLnJlZ2lzdHJhYmxlRG9tYWluOwotICAgICAgICB9
Ci0KLSAgICAgICAgYm9vbCBtYXRjaGVzKGNvbnN0IFVSTCYgdXJsKSBjb25zdAotICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gcmVnaXN0cmFibGVEb21haW4ubWF0Y2hlcyh1cmwpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0Ci0g
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiByZWdpc3RyYWJsZURvbWFpbi5pc0hhc2hUYWJs
ZURlbGV0ZWRWYWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIFNvdXJjZSBkZWxl
dGVkVmFsdWUoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU291cmNlIHsgV1RGOjpI
YXNoVGFibGVEZWxldGVkVmFsdWUgfTsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YXRpYyB2b2lk
IGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShTb3VyY2UmIHNvdXJjZSkKLSAgICAgICAgewotICAgICAg
ICAgICAgbmV3ICgmc291cmNlKSBTb3VyY2U7Ci0gICAgICAgICAgICBzb3VyY2UgPSBTb3VyY2U6
OmRlbGV0ZWRWYWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgdm9pZCBkZWxldGVWYWx1ZSgp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJlZ2lzdHJhYmxlRG9tYWluID0gUmVnaXN0cmFibGVE
b21haW4geyBXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9OwotICAgICAgICB9Ci0KLSAgICAg
ICAgYm9vbCBpc0RlbGV0ZWRWYWx1ZSgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgUmVn
aXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW47Ci0gICAgfTsKLQotICAgIHN0cnVjdCBT
b3VyY2VIYXNoIHsKLSAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgU291cmNlJiBz
b3VyY2UpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBzb3VyY2UucmVnaXN0cmFibGVE
b21haW4uaGFzaCgpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBzdGF0aWMgYm9vbCBl
cXVhbChjb25zdCBTb3VyY2UmIGEsIGNvbnN0IFNvdXJjZSYgYikKLSAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIGEgPT0gYjsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YXRpYyBjb25zdCBi
b29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7Ci0gICAgfTsKLQotICAg
IHN0cnVjdCBEZXN0aW5hdGlvbiB7Ci0gICAgICAgIERlc3RpbmF0aW9uKCkgPSBkZWZhdWx0Owot
ICAgICAgICBleHBsaWNpdCBEZXN0aW5hdGlvbihjb25zdCBVUkwmIHVybCkKLSAgICAgICAgICAg
IDogcmVnaXN0cmFibGVEb21haW4geyBSZWdpc3RyYWJsZURvbWFpbiB7IHVybCB9IH0KLSAgICAg
ICAgewotICAgICAgICB9Ci0KLSAgICAgICAgZXhwbGljaXQgRGVzdGluYXRpb24oV1RGOjpIYXNo
VGFibGVEZWxldGVkVmFsdWVUeXBlKQotICAgICAgICAgICAgOiByZWdpc3RyYWJsZURvbWFpbiB7
IFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlIH0KLSAgICAgICAgewotICAgICAgICB9Ci0KLSAg
ICAgICAgZXhwbGljaXQgRGVzdGluYXRpb24oUmVnaXN0cmFibGVEb21haW4mJiBkb21haW4pCi0g
ICAgICAgICAgICA6IHJlZ2lzdHJhYmxlRG9tYWluIHsgV1RGTW92ZShkb21haW4pIH0KLSAgICAg
ICAgewotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3Qg
RGVzdGluYXRpb24mIG90aGVyKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
cmVnaXN0cmFibGVEb21haW4gPT0gb3RoZXIucmVnaXN0cmFibGVEb21haW47Ci0gICAgICAgIH0K
LQotICAgICAgICBib29sIG1hdGNoZXMoY29uc3QgVVJMJiB1cmwpIGNvbnN0Ci0gICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiByZWdpc3RyYWJsZURvbWFpbiA9PSBSZWdpc3RyYWJsZURvbWFp
biB7IHVybCB9OwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBib29sIGlzSGFzaFRhYmxl
RGVsZXRlZFZhbHVlKCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHJlZ2lz
dHJhYmxlRG9tYWluLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7Ci0gICAgICAgIH0KLQotICAg
ICAgICBzdGF0aWMgRGVzdGluYXRpb24gZGVsZXRlZFZhbHVlKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIERlc3RpbmF0aW9uIHsgV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWUgfTsK
LSAgICAgICAgfQotCi0gICAgICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShE
ZXN0aW5hdGlvbiYgZGVzdGluYXRpb24pCi0gICAgICAgIHsKLSAgICAgICAgICAgIG5ldyAoJmRl
c3RpbmF0aW9uKSBEZXN0aW5hdGlvbjsKLSAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gRGVzdGlu
YXRpb246OmRlbGV0ZWRWYWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgdm9pZCBkZWxldGVW
YWx1ZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJlZ2lzdHJhYmxlRG9tYWluID0gUmVnaXN0
cmFibGVEb21haW4geyBXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9OwotICAgICAgICB9Ci0K
LSAgICAgICAgYm9vbCBpc0RlbGV0ZWRWYWx1ZSgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgUmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW47Ci0gICAgfTsKLQotICAgIHN0
cnVjdCBEZXN0aW5hdGlvbkhhc2ggewotICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25z
dCBEZXN0aW5hdGlvbiYgZGVzdGluYXRpb24pCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBkZXN0aW5hdGlvbi5yZWdpc3RyYWJsZURvbWFpbi5oYXNoKCk7Ci0gICAgICAgIH0KLSAgICAg
ICAgCi0gICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IERlc3RpbmF0aW9uJiBhLCBjb25z
dCBEZXN0aW5hdGlvbiYgYikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGEgPT0gYjsK
LSAgICAgICAgfQotCi0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0Vt
cHR5T3JEZWxldGVkID0gZmFsc2U7Ci0gICAgfTsKLQotICAgIHN0cnVjdCBQcmlvcml0eSB7Ci0g
ICAgICAgIGV4cGxpY2l0IFByaW9yaXR5KFByaW9yaXR5VmFsdWUgdmFsdWUpCi0gICAgICAgIDog
dmFsdWUgeyB2YWx1ZSB9Ci0gICAgICAgIHsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAg
UHJpb3JpdHlWYWx1ZSB2YWx1ZTsKLSAgICB9OwotICAgIAotICAgIHN0cnVjdCBDb252ZXJzaW9u
IHsKLSAgICAgICAgZW51bSBjbGFzcyBXYXNTZW50IDogYm9vbCB7IE5vLCBZZXMgfTsKLSAgICAg
ICAgCi0gICAgICAgIENvbnZlcnNpb24oQ29udmVyc2lvbkRhdGEgZGF0YSwgUHJpb3JpdHkgcHJp
b3JpdHksIFdhc1NlbnQgd2FzU2VudCA9IFdhc1NlbnQ6Ok5vKQotICAgICAgICAgICAgOiBkYXRh
IHsgZGF0YSB9Ci0gICAgICAgICAgICAsIHByaW9yaXR5IHsgcHJpb3JpdHkudmFsdWUgfQotICAg
ICAgICAgICAgLCB3YXNTZW50IHsgd2FzU2VudCB9Ci0gICAgICAgIHsKLSAgICAgICAgfQotCi0g
ICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBkYXRhIDw9IE1heEVudHJvcHkgJiYgcHJpb3JpdHkgPD0gTWF4RW50cm9weTsKLSAgICAgICAg
fQotICAgICAgICAKLSAgICAgICAgQ29udmVyc2lvbkRhdGEgZGF0YTsKLSAgICAgICAgUHJpb3Jp
dHlWYWx1ZSBwcmlvcml0eTsKLSAgICAgICAgV2FzU2VudCB3YXNTZW50ID0gV2FzU2VudDo6Tm87
Ci0KLSAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYp
IGNvbnN0OwotICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8
Q29udmVyc2lvbj4gZGVjb2RlKERlY29kZXImKTsKLSAgICB9OwotCi0gICAgQWRDbGlja0F0dHJp
YnV0aW9uKCkgPSBkZWZhdWx0OwotICAgIEFkQ2xpY2tBdHRyaWJ1dGlvbihDYW1wYWlnbiBjYW1w
YWlnbiwgY29uc3QgU291cmNlJiBzb3VyY2UsIGNvbnN0IERlc3RpbmF0aW9uJiBkZXN0aW5hdGlv
bikKLSAgICAgICAgOiBtX2NhbXBhaWduIHsgY2FtcGFpZ24gfQotICAgICAgICAsIG1fc291cmNl
IHsgc291cmNlIH0KLSAgICAgICAgLCBtX2Rlc3RpbmF0aW9uIHsgZGVzdGluYXRpb24gfQotICAg
ICAgICAsIG1fdGltZU9mQWRDbGljayB7IFdhbGxUaW1lOjpub3coKSB9Ci0gICAgewotICAgIH0K
LQotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBFeHBlY3RlZDxDb252ZXJzaW9uLCBTdHJpbmc+
IHBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29uc3QgVVJMJiByZWRpcmVjdFVSTCk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgT3B0aW9uYWw8U2Vjb25kcz4gY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRv
U2VuZChDb252ZXJzaW9uJiYpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzSGlnaGVyUHJp
b3JpdHlUaGFuKGNvbnN0IEFkQ2xpY2tBdHRyaWJ1dGlvbiYpIGNvbnN0OwotICAgIFdFQkNPUkVf
RVhQT1JUIFVSTCByZXBvcnRVUkwoKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBSZWY8SlNP
Tjo6T2JqZWN0PiBqc29uKCkgY29uc3Q7Ci0gICAgY29uc3QgU291cmNlJiBzb3VyY2UoKSBjb25z
dCB7IHJldHVybiBtX3NvdXJjZTsgfTsKLSAgICBjb25zdCBEZXN0aW5hdGlvbiYgZGVzdGluYXRp
b24oKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uOyB9OwotICAgIE9wdGlvbmFsPFdhbGxU
aW1lPiBlYXJsaWVzdFRpbWVUb1NlbmQoKSBjb25zdCB7IHJldHVybiBtX2VhcmxpZXN0VGltZVRv
U2VuZDsgfTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1hcmtBc0V4cGlyZWQoKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCBib29sIGhhc0V4cGlyZWQoKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIG1hcmtDb252ZXJzaW9uQXNTZW50KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCB3
YXNDb252ZXJzaW9uU2VudCgpIGNvbnN0OwotCi0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyBy
ZXR1cm4gbV9zb3VyY2UucmVnaXN0cmFibGVEb21haW4uaXNFbXB0eSgpOyB9OwotCi0gICAgV0VC
Q09SRV9FWFBPUlQgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7Ci0KLSAgICB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAgdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4gZGVjb2RlKERl
Y29kZXImKTsKLQotcHJpdmF0ZToKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKLSAgICBzdGF0
aWMgYm9vbCBkZWJ1Z01vZGVFbmFibGVkKCk7Ci0KLSAgICBDYW1wYWlnbiBtX2NhbXBhaWduOwot
ICAgIFNvdXJjZSBtX3NvdXJjZTsKLSAgICBEZXN0aW5hdGlvbiBtX2Rlc3RpbmF0aW9uOwotICAg
IFdhbGxUaW1lIG1fdGltZU9mQWRDbGljazsKLQotICAgIE9wdGlvbmFsPENvbnZlcnNpb24+IG1f
Y29udmVyc2lvbjsKLSAgICBPcHRpb25hbDxXYWxsVGltZT4gbV9lYXJsaWVzdFRpbWVUb1NlbmQ7
Ci19OwotCi10ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgotdm9pZCBBZENsaWNrQXR0cmlidXRpb246
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAotewotICAgIGVuY29kZXIgPDwgbV9jYW1w
YWlnbi5pZCA8PCBtX3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbiA8PCBtX2Rlc3RpbmF0aW9uLnJl
Z2lzdHJhYmxlRG9tYWluIDw8IG1fdGltZU9mQWRDbGljayA8PCBtX2NvbnZlcnNpb24gPDwgbV9l
YXJsaWVzdFRpbWVUb1NlbmQ7Ci19Ci0KLXRlbXBsYXRlPGNsYXNzIERlY29kZXI+Ci1PcHRpb25h
bDxBZENsaWNrQXR0cmlidXRpb24+IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCi17Ci0gICAgT3B0aW9uYWw8Q2FtcGFpZ25JZD4gY2FtcGFpZ25JZDsKLSAgICBk
ZWNvZGVyID4+IGNhbXBhaWduSWQ7Ci0gICAgaWYgKCFjYW1wYWlnbklkKQotICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAgIE9wdGlvbmFsPFJlZ2lzdHJhYmxlRG9tYWluPiBz
b3VyY2VSZWdpc3RyYWJsZURvbWFpbjsKLSAgICBkZWNvZGVyID4+IHNvdXJjZVJlZ2lzdHJhYmxl
RG9tYWluOwotICAgIGlmICghc291cmNlUmVnaXN0cmFibGVEb21haW4pCi0gICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7Ci0gICAgCi0gICAgT3B0aW9uYWw8UmVnaXN0cmFibGVEb21haW4+IGRl
c3RpbmF0aW9uUmVnaXN0cmFibGVEb21haW47Ci0gICAgZGVjb2RlciA+PiBkZXN0aW5hdGlvblJl
Z2lzdHJhYmxlRG9tYWluOwotICAgIGlmICghZGVzdGluYXRpb25SZWdpc3RyYWJsZURvbWFpbikK
LSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAgICBPcHRpb25hbDxXYWxsVGlt
ZT4gdGltZU9mQWRDbGljazsKLSAgICBkZWNvZGVyID4+IHRpbWVPZkFkQ2xpY2s7Ci0gICAgaWYg
KCF0aW1lT2ZBZENsaWNrKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAg
IE9wdGlvbmFsPE9wdGlvbmFsPENvbnZlcnNpb24+PiBjb252ZXJzaW9uOwotICAgIGRlY29kZXIg
Pj4gY29udmVyc2lvbjsKLSAgICBpZiAoIWNvbnZlcnNpb24pCi0gICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7Ci0gICAgCi0gICAgT3B0aW9uYWw8T3B0aW9uYWw8V2FsbFRpbWU+PiBlYXJsaWVz
dFRpbWVUb1NlbmQ7Ci0gICAgZGVjb2RlciA+PiBlYXJsaWVzdFRpbWVUb1NlbmQ7Ci0gICAgaWYg
KCFlYXJsaWVzdFRpbWVUb1NlbmQpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAg
Ci0gICAgQWRDbGlja0F0dHJpYnV0aW9uIGF0dHJpYnV0aW9uIHsgQ2FtcGFpZ24geyBXVEZNb3Zl
KCpjYW1wYWlnbklkKSB9LCBTb3VyY2UgeyBXVEZNb3ZlKCpzb3VyY2VSZWdpc3RyYWJsZURvbWFp
bikgfSwgRGVzdGluYXRpb24geyBXVEZNb3ZlKCpkZXN0aW5hdGlvblJlZ2lzdHJhYmxlRG9tYWlu
KSB9IH07Ci0gICAgYXR0cmlidXRpb24ubV9jb252ZXJzaW9uID0gV1RGTW92ZSgqY29udmVyc2lv
bik7Ci0gICAgYXR0cmlidXRpb24ubV9lYXJsaWVzdFRpbWVUb1NlbmQgPSBXVEZNb3ZlKCplYXJs
aWVzdFRpbWVUb1NlbmQpOwotICAgIAotICAgIHJldHVybiBhdHRyaWJ1dGlvbjsKLX0KLQotdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KLXZvaWQgQWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9u
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSAgICBlbmNvZGVyIDw8IGRhdGEg
PDwgcHJpb3JpdHkgPDwgd2FzU2VudDsKLX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLU9w
dGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lvbj4gQWRDbGlja0F0dHJpYnV0aW9u
OjpDb252ZXJzaW9uOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBPcHRpb25hbDxD
b252ZXJzaW9uRGF0YT4gZGF0YTsKLSAgICBkZWNvZGVyID4+IGRhdGE7Ci0gICAgaWYgKCFkYXRh
KQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAgIE9wdGlvbmFsPFByaW9y
aXR5VmFsdWU+IHByaW9yaXR5OwotICAgIGRlY29kZXIgPj4gcHJpb3JpdHk7Ci0gICAgaWYgKCFw
cmlvcml0eSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAgICBPcHRpb25h
bDxXYXNTZW50PiB3YXNTZW50OwotICAgIGRlY29kZXIgPj4gd2FzU2VudDsKLSAgICBpZiAoIXdh
c1NlbnQpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCi0gICAgcmV0dXJuIENv
bnZlcnNpb24geyBXVEZNb3ZlKCpkYXRhKSwgUHJpb3JpdHkgeyAqcHJpb3JpdHkgfSwgKndhc1Nl
bnQgfTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1uYW1lc3BhY2UgV1RGIHsKLXRl
bXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBEZWZhdWx0SGFzaDsKLQotdGVtcGxhdGU8PiBzdHJ1
Y3QgRGVmYXVsdEhhc2g8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2U+IDogV2Vi
Q29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2VIYXNoIHsgfTsKLXRlbXBsYXRlPD4gc3Ry
dWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2U+IDogR2Vu
ZXJpY0hhc2hUcmFpdHM8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2U+IHsKLSAg
ICBzdGF0aWMgV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2UgZW1wdHlWYWx1ZSgp
IHsgcmV0dXJuIHsgfTsgfQotICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShX
ZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OlNvdXJjZSYgc2xvdCkgeyBXZWJDb3JlOjpBZENs
aWNrQXR0cmlidXRpb246OlNvdXJjZTo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKHNsb3QpOyB9Ci0g
ICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgV2ViQ29yZTo6QWRDbGlja0F0dHJp
YnV0aW9uOjpTb3VyY2UmIHNsb3QpIHsgcmV0dXJuIHNsb3QuaXNEZWxldGVkVmFsdWUoKTsgfQot
fTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29yZTo6QWRDbGlja0F0dHJp
YnV0aW9uOjpEZXN0aW5hdGlvbj4gOiBXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OkRlc3Rp
bmF0aW9uSGFzaCB7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYkNvcmU6OkFk
Q2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb24+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViQ29y
ZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbj4gewotICAgIHN0YXRpYyBXZWJDb3Jl
OjpBZENsaWNrQXR0cmlidXRpb246OkRlc3RpbmF0aW9uIGVtcHR5VmFsdWUoKSB7IHJldHVybiB7
IH07IH0KLSAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoV2ViQ29yZTo6QWRD
bGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbiYgc2xvdCkgeyBXZWJDb3JlOjpBZENsaWNrQXR0
cmlidXRpb246OkRlc3RpbmF0aW9uOjpjb25zdHJ1Y3REZWxldGVkVmFsdWUoc2xvdCk7IH0KLSAg
ICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJDb3JlOjpBZENsaWNrQXR0cmli
dXRpb246OkRlc3RpbmF0aW9uJiBzbG90KSB7IHJldHVybiBzbG90LmlzRGVsZXRlZFZhbHVlKCk7
IH0KLX07Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBiZTZjYTc2
OTM5OTAwYmNjZTYzZDgzMDUyYjgxNDA1ZWZkNjA0YTk0Li43OWM1NDQ4YjhjOTA2ZDJmYjZkMzFm
YWU5NDFlYmJkNDA4ZDU3ZDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
QEAgLTQyMiw3ICs0MjIsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0NvbnRlbnRQb2xpY3ko
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFBvbGljeUNoZQogICAgIGNsaWVudCgp
LmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFjdGl2ZURvY3VtZW50
TG9hZGVyKCktPnJlcXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+
ZG93bmxvYWRBdHRyaWJ1dGUoKSwgV1RGTW92ZShmdW5jdGlvbikpOwogfQogCi12b2lkIEZyYW1l
TG9hZGVyOjpjaGFuZ2VMb2NhdGlvbihjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwYXNz
ZWRUYXJnZXQsIEV2ZW50KiB0cmlnZ2VyaW5nRXZlbnQsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5
LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QsIGNvbnN0IFJlZmVycmVy
UG9saWN5JiByZWZlcnJlclBvbGljeSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBPcHRpb25hbDxOZXdGcmFtZU9wZW5lclBvbGljeT4g
b3BlbmVyUG9saWN5LCBjb25zdCBBdG9tU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgY29uc3Qg
U3lzdGVtUHJldmlld0luZm8mIHN5c3RlbVByZXZpZXdJbmZvLCBPcHRpb25hbDxBZENsaWNrQXR0
cmlidXRpb24+JiYgYWRDbGlja0F0dHJpYnV0aW9uKQordm9pZCBGcmFtZUxvYWRlcjo6Y2hhbmdl
TG9jYXRpb24oY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcGFzc2VkVGFyZ2V0LCBFdmVu
dCogdHJpZ2dlcmluZ0V2ZW50LCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3
YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0LCBjb25zdCBSZWZlcnJlclBvbGljeSYgcmVmZXJy
ZXJQb2xpY3ksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSwgT3B0aW9uYWw8TmV3RnJhbWVPcGVuZXJQb2xpY3k+IG9wZW5lclBvbGljeSwg
Y29uc3QgQXRvbVN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGNvbnN0IFN5c3RlbVByZXZpZXdJ
bmZvJiBzeXN0ZW1QcmV2aWV3SW5mbywgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+
JiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpCiB7CiAgICAgYXV0byogZnJhbWUgPSBsZXhpY2Fs
RnJhbWVGcm9tQ29tbW9uVk0oKTsKICAgICBhdXRvIGluaXRpYXRlZEJ5TWFpbkZyYW1lID0gZnJh
bWUgJiYgZnJhbWUtPmlzTWFpbkZyYW1lKCkgPyBJbml0aWF0ZWRCeU1haW5GcmFtZTo6WWVzIDog
SW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd247CkBAIC00MzUsMTAgKzQzNSwxMCBAQCB2b2lk
IEZyYW1lTG9hZGVyOjpjaGFuZ2VMb2NhdGlvbihjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiBwYXNzZWRUYXJnZXQsIEV2ZQogICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0UmVmZXJyZXJQb2xp
Y3kocmVmZXJyZXJQb2xpY3kpOwogICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0U2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKICAgICBmcmFt
ZUxvYWRSZXF1ZXN0LmRpc2FibGVTaG91bGRSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwo
KTsKLSAgICBjaGFuZ2VMb2NhdGlvbihXVEZNb3ZlKGZyYW1lTG9hZFJlcXVlc3QpLCB0cmlnZ2Vy
aW5nRXZlbnQsIFdURk1vdmUoYWRDbGlja0F0dHJpYnV0aW9uKSk7CisgICAgY2hhbmdlTG9jYXRp
b24oV1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSwgdHJpZ2dlcmluZ0V2ZW50LCBXVEZNb3ZlKHBy
aXZhdGVDbGlja01lYXN1cmVtZW50KSk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmNoYW5nZUxv
Y2F0aW9uKEZyYW1lTG9hZFJlcXVlc3QmJiBmcmFtZVJlcXVlc3QsIEV2ZW50KiB0cmlnZ2VyaW5n
RXZlbnQsIE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4mJiBhZENsaWNrQXR0cmlidXRpb24p
Cit2b2lkIEZyYW1lTG9hZGVyOjpjaGFuZ2VMb2NhdGlvbihGcmFtZUxvYWRSZXF1ZXN0JiYgZnJh
bWVSZXF1ZXN0LCBFdmVudCogdHJpZ2dlcmluZ0V2ZW50LCBPcHRpb25hbDxQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudD4mJiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkKIHsKICAgICBGUkFNRUxPQURF
Ul9SRUxFQVNFX0xPR19JRl9BTExPV0VEKFJlc291cmNlTG9hZGluZywgImNoYW5nZUxvY2F0aW9u
OiBmcmFtZSBsb2FkIHN0YXJ0ZWQiKTsKICAgICBBU1NFUlQoZnJhbWVSZXF1ZXN0LnJlc291cmNl
UmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiR0VUIik7CkBAIC00NTYsNyArNDU2LDcgQEAgdm9p
ZCBGcmFtZUxvYWRlcjo6Y2hhbmdlTG9jYXRpb24oRnJhbWVMb2FkUmVxdWVzdCYmIGZyYW1lUmVx
dWVzdCwgRXZlbnQqIHRyaWdnZXIKIAogICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+Y29udGVudFNl
Y3VyaXR5UG9saWN5KCktPnVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RJZk5lZWRlZChmcmFtZVJlcXVl
c3QucmVzb3VyY2VSZXF1ZXN0KCksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1
ZXN0VHlwZTo6TmF2aWdhdGlvbik7CiAKLSAgICBsb2FkRnJhbWVSZXF1ZXN0KFdURk1vdmUoZnJh
bWVSZXF1ZXN0KSwgdHJpZ2dlcmluZ0V2ZW50LCB7IH0sIFdURk1vdmUoYWRDbGlja0F0dHJpYnV0
aW9uKSk7CisgICAgbG9hZEZyYW1lUmVxdWVzdChXVEZNb3ZlKGZyYW1lUmVxdWVzdCksIHRyaWdn
ZXJpbmdFdmVudCwgeyB9LCBXVEZNb3ZlKHByaXZhdGVDbGlja01lYXN1cmVtZW50KSk7CiB9CiAK
IHZvaWQgRnJhbWVMb2FkZXI6OnN1Ym1pdEZvcm0oUmVmPEZvcm1TdWJtaXNzaW9uPiYmIHN1Ym1p
c3Npb24pCkBAIC0xMjM5LDcgKzEyMzksNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzZXR1cEZvclJl
cGxhY2UoKQogICAgIGRldGFjaENoaWxkcmVuKCk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6Omxv
YWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVlc3QsIEV2ZW50KiBldmVudCwg
UmVmUHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlv
bj4mJiBhZENsaWNrQXR0cmlidXRpb24pCit2b2lkIEZyYW1lTG9hZGVyOjpsb2FkRnJhbWVSZXF1
ZXN0KEZyYW1lTG9hZFJlcXVlc3QmJiByZXF1ZXN0LCBFdmVudCogZXZlbnQsIFJlZlB0cjxGb3Jt
U3RhdGU+JiYgZm9ybVN0YXRlLCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mJiBw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCkKIHsKICAgICBGUkFNRUxPQURFUl9SRUxFQVNFX0xPR19J
Rl9BTExPV0VEKFJlc291cmNlTG9hZGluZywgImxvYWRGcmFtZVJlcXVlc3Q6IGZyYW1lIGxvYWQg
c3RhcnRlZCIpOwogCkBAIC0xMjg3LDcgKzEyODcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2Fk
RnJhbWVSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3QmJiByZXF1ZXN0LCBFdmVudCogZXZlbnQsIFJl
ZgogICAgIGlmIChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiUE9T
VCIpCiAgICAgICAgIGxvYWRQb3N0UmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpLCByZWZlcnJlciwg
bG9hZFR5cGUsIGV2ZW50LCBXVEZNb3ZlKGZvcm1TdGF0ZSksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKICAgICBlbHNlCi0gICAgICAgIGxvYWRVUkwoV1RGTW92ZShyZXF1ZXN0KSwgcmVm
ZXJyZXIsIGxvYWRUeXBlLCBldmVudCwgV1RGTW92ZShmb3JtU3RhdGUpLCBXVEZNb3ZlKGFkQ2xp
Y2tBdHRyaWJ1dGlvbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgbG9h
ZFVSTChXVEZNb3ZlKHJlcXVlc3QpLCByZWZlcnJlciwgbG9hZFR5cGUsIGV2ZW50LCBXVEZNb3Zl
KGZvcm1TdGF0ZSksIFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHN0YXRpYyBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb0FwcGx5KEZyYW1lJiBjdXJyZW50RnJh
bWUsIEluaXRpYXRlZEJ5TWFpbkZyYW1lIGluaXRpYXRlZEJ5TWFpbkZyYW1lLCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5IHByb3BhZ2F0ZWRQb2xpY3kpCkBAIC0xMzI5LDcgKzEzMjksNyBA
QCBib29sIEZyYW1lTG9hZGVyOjppc1N0b3BMb2FkaW5nQWxsb3dlZCgpIGNvbnN0CiAgICAgcmV0
dXJuIG1fcGFnZURpc21pc3NhbEV2ZW50QmVpbmdEaXNwYXRjaGVkID09IFBhZ2VEaXNtaXNzYWxU
eXBlOjpOb25lOwogfQogCi12b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMKEZyYW1lTG9hZFJlcXVl
c3QmJiBmcmFtZUxvYWRSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBGcmFtZUxvYWRU
eXBlIG5ld0xvYWRUeXBlLCBFdmVudCogZXZlbnQsIFJlZlB0cjxGb3JtU3RhdGU+JiYgZm9ybVN0
YXRlLCBPcHRpb25hbDxBZENsaWNrQXR0cmlidXRpb24+JiYgYWRDbGlja0F0dHJpYnV0aW9uLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIEZyYW1l
TG9hZGVyOjpsb2FkVVJMKEZyYW1lTG9hZFJlcXVlc3QmJiBmcmFtZUxvYWRSZXF1ZXN0LCBjb25z
dCBTdHJpbmcmIHJlZmVycmVyLCBGcmFtZUxvYWRUeXBlIG5ld0xvYWRUeXBlLCBFdmVudCogZXZl
bnQsIFJlZlB0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBPcHRpb25hbDxQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudD4mJiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEZSQU1FTE9BREVSX1JFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoUmVzb3VyY2VMb2FkaW5nLCAibG9hZFVSTDogZnJhbWUgbG9hZCBzdGFy
dGVkIik7CiAgICAgQVNTRVJUKGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuaHR0
cE1ldGhvZCgpID09ICJHRVQiKTsKQEAgLTEzNDgsNyArMTM0OCw3IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6OmxvYWRVUkwoRnJhbWVMb2FkUmVxdWVzdCYmIGZyYW1lTG9hZFJlcXVlc3QsIGNvbnN0IFN0
cmluZyYgcmVmCiAgICAgYXV0byB0YXJnZXRGcmFtZSA9IGlzRm9ybVN1Ym1pc3Npb24gPyBudWxs
cHRyIDogbWFrZVJlZlB0cihmaW5kRnJhbWVGb3JOYXZpZ2F0aW9uKGVmZmVjdGl2ZUZyYW1lTmFt
ZSkpOwogICAgIGlmICh0YXJnZXRGcmFtZSAmJiB0YXJnZXRGcmFtZSAhPSAmbV9mcmFtZSkgewog
ICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldEZyYW1lTmFtZSgiX3NlbGYiKTsKLSAgICAgICAg
dGFyZ2V0RnJhbWUtPmxvYWRlcigpLmxvYWRVUkwoV1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSwg
cmVmZXJyZXIsIG5ld0xvYWRUeXBlLCBldmVudCwgV1RGTW92ZShmb3JtU3RhdGUpLCBXVEZNb3Zl
KGFkQ2xpY2tBdHRyaWJ1dGlvbiksIGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJlbGVhc2UoKSk7
CisgICAgICAgIHRhcmdldEZyYW1lLT5sb2FkZXIoKS5sb2FkVVJMKFdURk1vdmUoZnJhbWVMb2Fk
UmVxdWVzdCksIHJlZmVycmVyLCBuZXdMb2FkVHlwZSwgZXZlbnQsIFdURk1vdmUoZm9ybVN0YXRl
KSwgV1RGTW92ZShwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCksIGNvbXBsZXRpb25IYW5kbGVyQ2Fs
bGVyLnJlbGVhc2UoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEzNjcsOCArMTM2
Nyw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRVUkwoRnJhbWVMb2FkUmVxdWVzdCYmIGZyYW1l
TG9hZFJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcmVmCiAgICAgTmF2aWdhdGlvbkFjdGlvbiBhY3Rp
b24geyBmcmFtZUxvYWRSZXF1ZXN0LnJlcXVlc3RlcigpLCByZXF1ZXN0LCBmcmFtZUxvYWRSZXF1
ZXN0LmluaXRpYXRlZEJ5TWFpbkZyYW1lKCksIG5ld0xvYWRUeXBlLCBpc0Zvcm1TdWJtaXNzaW9u
LCBldmVudCwgZnJhbWVMb2FkUmVxdWVzdC5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCks
IGZyYW1lTG9hZFJlcXVlc3QuZG93bmxvYWRBdHRyaWJ1dGUoKSB9OwogICAgIGFjdGlvbi5zZXRM
b2NrSGlzdG9yeShmcmFtZUxvYWRSZXF1ZXN0LmxvY2tIaXN0b3J5KCkpOwogICAgIGFjdGlvbi5z
ZXRMb2NrQmFja0ZvcndhcmRMaXN0KGZyYW1lTG9hZFJlcXVlc3QubG9ja0JhY2tGb3J3YXJkTGlz
dCgpKTsKLSAgICBpZiAoYWRDbGlja0F0dHJpYnV0aW9uICYmIG1fZnJhbWUuaXNNYWluRnJhbWUo
KSkKLSAgICAgICAgYWN0aW9uLnNldEFkQ2xpY2tBdHRyaWJ1dGlvbihXVEZNb3ZlKCphZENsaWNr
QXR0cmlidXRpb24pKTsKKyAgICBpZiAocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgJiYgbV9mcmFt
ZS5pc01haW5GcmFtZSgpKQorICAgICAgICBhY3Rpb24uc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQoV1RGTW92ZSgqcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpKTsKIAogICAgIE5ld0ZyYW1lT3Bl
bmVyUG9saWN5IG9wZW5lclBvbGljeSA9IGZyYW1lTG9hZFJlcXVlc3QubmV3RnJhbWVPcGVuZXJQ
b2xpY3koKTsKICAgICBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwgYWxsb3dOYXZpZ2F0aW9u
VG9JbnZhbGlkVVJMID0gZnJhbWVMb2FkUmVxdWVzdC5hbGxvd05hdmlnYXRpb25Ub0ludmFsaWRV
UkwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggODRiMDg1ZTY4MDAzNjUy
MWFiZTI4ZDg2OWFkZTdhZWE5MTEwMWRjMi4uYzJmNjM5YWNlZjhlYzM0MzY5NTU1YTkzMTdlZDY5
MjgyNDJlN2JiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTMxLDcgKzMx
LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJBZENsaWNrQXR0cmlidXRpb24uaCIK
ICNpbmNsdWRlICJDYWNoZVBvbGljeS5oIgogI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmgiCkBAIC0zOSw2ICszOCw3IEBACiAj
aW5jbHVkZSAiTGF5b3V0TWlsZXN0b25lLmgiCiAjaW5jbHVkZSAiTWl4ZWRDb250ZW50Q2hlY2tl
ci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQuaCIKICNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgogI2luY2x1ZGUgIlJl
c291cmNlTG9hZE5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgi
CkBAIC0xMjQsNyArMTI0LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0dXBGb3JSZXBsYWNlKCk7
CiAKICAgICAvLyBGSVhNRTogVGhlc2UgYXJlIGFsbCBmdW5jdGlvbnMgd2hpY2ggc3RhcnQgbG9h
ZHMuIFdlIGhhdmUgdG9vIG1hbnkuCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBsb2FkRnJhbWVS
ZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3QmJiwgRXZlbnQqLCBSZWZQdHI8Rm9ybVN0YXRlPiYmLCBP
cHRpb25hbDxBZENsaWNrQXR0cmlidXRpb24+JiYgPSBXVEY6Om51bGxvcHQpOyAvLyBDYWxsZWQg
Ynkgc3VibWl0Rm9ybSwgY2FsbHMgbG9hZFBvc3RSZXF1ZXN0IGFuZCBsb2FkVVJMLgorICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgbG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0JiYsIEV2
ZW50KiwgUmVmUHRyPEZvcm1TdGF0ZT4mJiwgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ+JiYgPSBXVEY6Om51bGxvcHQpOyAvLyBDYWxsZWQgYnkgc3VibWl0Rm9ybSwgY2FsbHMgbG9h
ZFBvc3RSZXF1ZXN0IGFuZCBsb2FkVVJMLgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBsb2Fk
KEZyYW1lTG9hZFJlcXVlc3QmJik7CiAKQEAgLTEzMyw4ICsxMzMsOCBAQCBwdWJsaWM6CiAjZW5k
aWYKICAgICB1bnNpZ25lZCBsb25nIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgQ2xpZW50Q3JlZGVudGlhbFBvbGljeSwgY29uc3QgRmV0Y2hPcHRpb25z
JiwgY29uc3QgSFRUUEhlYWRlck1hcCYsIFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNl
JiwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mIGRhdGEpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBjaGFuZ2VMb2NhdGlvbihjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHRhcmdldCwgRXZlbnQq
LCBMb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCwgY29uc3QgUmVmZXJyZXJQb2xpY3km
LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBPcHRpb25hbDxOZXdGcmFtZU9wZW5lclBv
bGljeT4gPSBXVEY6Om51bGxvcHQsIGNvbnN0IEF0b21TdHJpbmcmIGRvd25sb2FkQXR0cmlidXRl
ID0gbnVsbEF0b20oKSwgY29uc3QgU3lzdGVtUHJldmlld0luZm8mID0geyB9LCBPcHRpb25hbDxB
ZENsaWNrQXR0cmlidXRpb24+JiYgPSBXVEY6Om51bGxvcHQpOwotICAgIHZvaWQgY2hhbmdlTG9j
YXRpb24oRnJhbWVMb2FkUmVxdWVzdCYmLCBFdmVudCogPSBudWxscHRyLCBPcHRpb25hbDxBZENs
aWNrQXR0cmlidXRpb24+JiYgPSBXVEY6Om51bGxvcHQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgY2hhbmdlTG9jYXRpb24oY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB0YXJnZXQsIEV2ZW50
KiwgTG9ja0hpc3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3QsIGNvbnN0IFJlZmVycmVyUG9saWN5
JiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgT3B0aW9uYWw8TmV3RnJhbWVPcGVuZXJQ
b2xpY3k+ID0gV1RGOjpudWxsb3B0LCBjb25zdCBBdG9tU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0
ZSA9IG51bGxBdG9tKCksIGNvbnN0IFN5c3RlbVByZXZpZXdJbmZvJiA9IHsgfSwgT3B0aW9uYWw8
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgPSBXVEY6Om51bGxvcHQpOworICAgIHZvaWQgY2hh
bmdlTG9jYXRpb24oRnJhbWVMb2FkUmVxdWVzdCYmLCBFdmVudCogPSBudWxscHRyLCBPcHRpb25h
bDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mJiA9IFdURjo6bnVsbG9wdCk7CiAgICAgdm9pZCBz
dWJtaXRGb3JtKFJlZjxGb3JtU3VibWlzc2lvbj4mJik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJlbG9hZChPcHRpb25TZXQ8UmVsb2FkT3B0aW9uPiA9IHsgfSk7CkBAIC0zODcsNyArMzg3
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBOYXZpZ2F0aW9uQWN0aW9uJiYsIEZyYW1lTG9hZFR5cGUsIFJlZlB0
cjxGb3JtU3RhdGU+JiYsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmID0gW10geyB9KTsgLy8gQ2FsbHMgbG9hZFdpdGhEb2N1bWVudExvYWRl
cgogCiAgICAgdm9pZCBsb2FkUG9zdFJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYmLCBjb25zdCBT
dHJpbmcmIHJlZmVycmVyLCBGcmFtZUxvYWRUeXBlLCBFdmVudCosIFJlZlB0cjxGb3JtU3RhdGU+
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBsb2FkVVJMKEZyYW1l
TG9hZFJlcXVlc3QmJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgRnJhbWVMb2FkVHlwZSwgRXZl
bnQqLCBSZWZQdHI8Rm9ybVN0YXRlPiYmLCBPcHRpb25hbDxBZENsaWNrQXR0cmlidXRpb24+JiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBsb2FkVVJMKEZyYW1lTG9h
ZFJlcXVlc3QmJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgRnJhbWVMb2FkVHlwZSwgRXZlbnQq
LCBSZWZQdHI8Rm9ybVN0YXRlPiYmLCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4m
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIGJvb2wgc2hvdWxkUmVsb2Fk
KGNvbnN0IFVSTCYgY3VycmVudFVSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oCmluZGV4IDY5OTRkZjM4MDcwYjcy
ZjZlNjJjZGRkNjYzN2Y0MDNhNWZiNTQ0NjQuLmRjMjAwMTkwMGY1NWQ2Mjg5OGM4NzQ5MzVkNWRh
N2ZkODI5ZjU0MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9u
QWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaApA
QCAtMjgsMTEgKzI4LDExIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiQWRDbGlja0F0
dHJpYnV0aW9uLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJHbG9iYWxGcmFtZUlkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJMYXlvdXRQb2ludC5oIgorI2luY2x1ZGUgIlByaXZhdGVDbGlja01l
YXN1cmVtZW50LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2Vj
dXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgpAQCAtMTM3
LDggKzEzNyw4IEBAIHB1YmxpYzoKICAgICBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9y
d2FyZExpc3QoKSBjb25zdCB7IHJldHVybiBtX2xvY2tCYWNrRm9yd2FyZExpc3Q7IH0KICAgICB2
b2lkIHNldExvY2tCYWNrRm9yd2FyZExpc3QoTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0Zv
cndhcmRMaXN0KSB7IG1fbG9ja0JhY2tGb3J3YXJkTGlzdCA9IGxvY2tCYWNrRm9yd2FyZExpc3Q7
IH0KIAotICAgIGNvbnN0IE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4mIGFkQ2xpY2tBdHRy
aWJ1dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWRDbGlja0F0dHJpYnV0aW9uOyB9OwotICAgIHZv
aWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uKEFkQ2xpY2tBdHRyaWJ1dGlvbiYmIGFkQ2xpY2tBdHRy
aWJ1dGlvbikgeyBtX2FkQ2xpY2tBdHRyaWJ1dGlvbiA9IGFkQ2xpY2tBdHRyaWJ1dGlvbjsgfTsK
KyAgICBjb25zdCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mIHByaXZhdGVDbGlj
a01lYXN1cmVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsg
fTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50KFByaXZhdGVDbGlja01lYXN1
cmVtZW50JiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIHsgbV9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCA9IHByaXZhdGVDbGlja01lYXN1cmVtZW50OyB9OwogCiBwcml2YXRlOgogICAgIC8vIERv
IG5vdCBhZGQgYSBzdHJvbmcgcmVmZXJlbmNlIHRvIHRoZSBvcmlnaW5hdGluZyBkb2N1bWVudCBv
ciBhIHN1Ym9iamVjdCB0aGF0IGhvbGRzIHRoZQpAQCAtMTU5LDcgKzE1OSw3IEBAIHByaXZhdGU6
CiAgICAgT3B0aW9uYWw8QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcj4gbV9zb3VyY2VCYWNrRm9y
d2FyZEl0ZW1JZGVudGlmaWVyOwogICAgIExvY2tIaXN0b3J5IG1fbG9ja0hpc3RvcnkgeyBMb2Nr
SGlzdG9yeTo6Tm8gfTsKICAgICBMb2NrQmFja0ZvcndhcmRMaXN0IG1fbG9ja0JhY2tGb3J3YXJk
TGlzdCB7IExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vIH07Ci0gICAgT3B0aW9uYWw8QWRDbGlja0F0
dHJpYnV0aW9uPiBtX2FkQ2xpY2tBdHRyaWJ1dGlvbjsKKyAgICBPcHRpb25hbDxQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudD4gbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2N2U2Y2Q4Zjg3NzAxZTg3MDJjMjVhODc2OTQ0
NTI2OTlhNGM3MWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCkBAIC0wLDAgKzEsMjI5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50Lmgi
CisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oIgorI2luY2x1ZGUgPHd0Zi9FeHBlY3RlZC5oPgorI2luY2x1ZGUgPHd0Zi9SYW5kb21OdW1i
ZXIuaD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitzdGF0aWMgY29uc3QgY2hhciBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFBhdGhQ
cmVmaXhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8iOworY29u
c3Qgc2l6ZV90IHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbkRhdGFQYXRoU2VnbWVu
dFNpemUgPSAyOworY29uc3Qgc2l6ZV90IHByaXZhdGVDbGlja01lYXN1cmVtZW50UHJpb3JpdHlQ
YXRoU2VnbWVudFNpemUgPSAyOworY29uc3QgU2Vjb25kcyBtYXhBZ2UgeyAyNF9oICogNyB9Owor
Citib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojppc1ZhbGlkKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9jb252ZXJzaW9uCisgICAgICAgICYmIG1fY29udmVyc2lvbi52YWx1ZSgpLmlzVmFs
aWQoKQorICAgICAgICAmJiBtX2NhbXBhaWduLmlzVmFsaWQoKQorICAgICAgICAmJiAhbV9zb3Vy
Y2UucmVnaXN0cmFibGVEb21haW4uaXNFbXB0eSgpCisgICAgICAgICYmICFtX2Rlc3RpbmF0aW9u
LnJlZ2lzdHJhYmxlRG9tYWluLmlzRW1wdHkoKQorICAgICAgICAmJiBtX2VhcmxpZXN0VGltZVRv
U2VuZDsKK30KKworRXhwZWN0ZWQ8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24s
IFN0cmluZz4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3Qo
Y29uc3QgVVJMJiByZWRpcmVjdFVSTCkKK3sKKyAgICBpZiAoIXJlZGlyZWN0VVJMLnByb3RvY29s
SXMoImh0dHBzIikgfHwgcmVkaXJlY3RVUkwuaGFzQ3JlZGVudGlhbHMoKSB8fCByZWRpcmVjdFVS
TC5oYXNRdWVyeSgpIHx8IHJlZGlyZWN0VVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKSB7Cisg
ICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7CisgICAgICAgICAgICBS
RUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiQ29udmVyc2lvbiB3YXMg
bm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIFVSTCdzIHByb3RvY29sIGlzIG5vdCBIVFRQUyBvciB0
aGUgVVJMIGNvbnRhaW5zIG9uZSBvciBtb3JlIG9mIHVzZXJuYW1lLCBwYXNzd29yZCwgcXVlcnkg
c3RyaW5nLCBhbmQgZnJhZ21lbnQuIik7CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0
ZWQgYmVjYXVzZSB0aGUgVVJMJ3MgcHJvdG9jb2wgaXMgbm90IEhUVFBTIG9yIHRoZSBVUkwgY29u
dGFpbnMgb25lIG9yIG1vcmUgb2YgdXNlcm5hbWUsIHBhc3N3b3JkLCBxdWVyeSBzdHJpbmcsIGFu
ZCBmcmFnbWVudC4iX3MpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChudWxsU3RyaW5nKCkpOworICAgIH0KKworICAgIGF1dG8gcGF0aCA9IFN0cmluZ1ZpZXcocmVk
aXJlY3RVUkwuc3RyaW5nKCkpLnN1YnN0cmluZyhyZWRpcmVjdFVSTC5wYXRoU3RhcnQoKSwgcmVk
aXJlY3RVUkwucGF0aEVuZCgpIC0gcmVkaXJlY3RVUkwucGF0aFN0YXJ0KCkpOworICAgIGlmIChw
YXRoLmlzRW1wdHkoKSB8fCAhcGF0aC5zdGFydHNXaXRoKHByaXZhdGVDbGlja01lYXN1cmVtZW50
UGF0aFByZWZpeCkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkp
IHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQs
ICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMIHBhdGggZGlkIG5v
dCBzdGFydCB3aXRoICUiIFBVQkxJQ19MT0dfU1RSSU5HICIuIiwgcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRQYXRoUHJlZml4KTsKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChtYWtl
U3RyaW5nKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVyc2lvbiB3YXMgbm90IGFj
Y2VwdGVkIGJlY2F1c2UgdGhlIFVSTCBwYXRoIGRpZCBub3Qgc3RhcnQgd2l0aCAiX3MsIHByaXZh
dGVDbGlja01lYXN1cmVtZW50UGF0aFByZWZpeCwgIi4iX3MpKTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygpKTsKKyAgICB9CisKKyAgICBhdXRv
IHByZWZpeExlbmd0aCA9IHNpemVvZihwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFBhdGhQcmVmaXgp
IC0gMTsKKyAgICBpZiAocGF0aC5sZW5ndGgoKSA9PSBwcmVmaXhMZW5ndGggKyBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRTaXplKSB7CisgICAgICAgIGF1
dG8gY29udmVyc2lvbkRhdGFVSW50NjQgPSBwYXRoLnN1YnN0cmluZyhwcmVmaXhMZW5ndGgsIHBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbkRhdGFQYXRoU2VnbWVudFNpemUpLnRvVUlu
dDY0U3RyaWN0KCk7CisgICAgICAgIGlmICghY29udmVyc2lvbkRhdGFVSW50NjQgfHwgKmNvbnZl
cnNpb25EYXRhVUludDY0ID4gTWF4RW50cm9weSkgeworICAgICAgICAgICAgaWYgKFVOTElLRUxZ
KGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZP
KFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJl
Y2F1c2UgdGhlIGNvbnZlcnNpb24gZGF0YSBjb3VsZCBub3QgYmUgcGFyc2VkIG9yIHdhcyBoaWdo
ZXIgdGhhbiB0aGUgYWxsb3dlZCBtYXhpbXVtIG9mICV7cHVibGljfXUuIiwgTWF4RW50cm9weSk7
CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIltQcml2
YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVz
ZSB0aGUgY29udmVyc2lvbiBkYXRhIGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2FzIGhpZ2hlciB0
aGFuIHRoZSBhbGxvd2VkIG1heGltdW0gb2YgIl9zLCBNYXhFbnRyb3B5LCAiLiJfcykpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG51bGxTdHJpbmco
KSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gQ29udmVyc2lvbiB7IHN0YXRpY19jYXN0
PHVpbnQzMl90PigqY29udmVyc2lvbkRhdGFVSW50NjQpLCBQcmlvcml0eSB7IDAgfSB9OworICAg
IH0KKyAgICAKKyAgICBpZiAocGF0aC5sZW5ndGgoKSA9PSBwcmVmaXhMZW5ndGggKyBwcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRTaXplICsgMSArIHByaXZh
dGVDbGlja01lYXN1cmVtZW50UHJpb3JpdHlQYXRoU2VnbWVudFNpemUpIHsKKyAgICAgICAgYXV0
byBjb252ZXJzaW9uRGF0YVVJbnQ2NCA9IHBhdGguc3Vic3RyaW5nKHByZWZpeExlbmd0aCwgcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uRGF0YVBhdGhTZWdtZW50U2l6ZSkudG9VSW50
NjRTdHJpY3QoKTsKKyAgICAgICAgaWYgKCFjb252ZXJzaW9uRGF0YVVJbnQ2NCB8fCAqY29udmVy
c2lvbkRhdGFVSW50NjQgPiBNYXhFbnRyb3B5KSB7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFko
ZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8o
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVj
YXVzZSB0aGUgY29udmVyc2lvbiBkYXRhIGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2FzIGhpZ2hl
ciB0aGFuIHRoZSBhbGxvd2VkIG1heGltdW0gb2YgJXtwdWJsaWN9dS4iLCBNYXhFbnRyb3B5KTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiW1ByaXZh
dGUgQ2xpY2sgTWVhc3VyZW1lbnRdIENvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNl
IHRoZSBjb252ZXJzaW9uIGRhdGEgY291bGQgbm90IGJlIHBhcnNlZCBvciB3YXMgaGlnaGVyIHRo
YW4gdGhlIGFsbG93ZWQgbWF4aW11bSBvZiAiX3MsIE1heEVudHJvcHksICIuIl9zKSk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygp
KTsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gY29udmVyc2lvblByaW9yaXR5VUludDY0ID0g
cGF0aC5zdWJzdHJpbmcocHJlZml4TGVuZ3RoICsgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252
ZXJzaW9uRGF0YVBhdGhTZWdtZW50U2l6ZSArIDEsIHByaXZhdGVDbGlja01lYXN1cmVtZW50UHJp
b3JpdHlQYXRoU2VnbWVudFNpemUpLnRvVUludDY0U3RyaWN0KCk7CisgICAgICAgIGlmICghY29u
dmVyc2lvblByaW9yaXR5VUludDY0IHx8ICpjb252ZXJzaW9uUHJpb3JpdHlVSW50NjQgPiBNYXhF
bnRyb3B5KSB7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkg
eworICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgcHJpb3JpdHkgY291
bGQgbm90IGJlIHBhcnNlZCBvciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQgbWF4aW11bSBv
ZiAle3B1YmxpY311LiIsIE1heEVudHJvcHkpOworICAgICAgICAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChtYWtlU3RyaW5nKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVy
c2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIHByaW9yaXR5IGNvdWxkIG5vdCBiZSBw
YXJzZWQgb3Igd2FzIGhpZ2hlciB0aGFuIHRoZSBhbGxvd2VkIG1heGltdW0gb2YgIl9zLCBNYXhF
bnRyb3B5LCAiLiJfcykpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKG51bGxTdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gQ29u
dmVyc2lvbiB7IHN0YXRpY19jYXN0PHVpbnQzMl90PigqY29udmVyc2lvbkRhdGFVSW50NjQpLCBQ
cmlvcml0eSB7IHN0YXRpY19jYXN0PHVpbnQzMl90PigqY29udmVyc2lvblByaW9yaXR5VUludDY0
KSB9IH07CisgICAgfQorCisgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsK
KyAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkNvbnZl
cnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBVUkwgcGF0aCBjb250YWluZWQgdW5y
ZWNvZ25pemVkIHBhcnRzLiIpOworICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIltQcml2
YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVz
ZSB0aGUgVVJMIHBhdGggY29udGFpbmVkIHVucmVjb2duaXplZCBwYXJ0cy4iX3MpOworICAgIH0K
KyAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygpKTsKK30KKworT3B0aW9uYWw8
U2Vjb25kcz4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRp
bWVUb1NlbmQoQ29udmVyc2lvbiYmIGNvbnZlcnNpb24pCit7CisgICAgaWYgKCFjb252ZXJzaW9u
LmlzVmFsaWQoKSB8fCAobV9jb252ZXJzaW9uICYmIG1fY29udmVyc2lvbi0+cHJpb3JpdHkgPj0g
Y29udmVyc2lvbi5wcmlvcml0eSkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBtX2NvbnZl
cnNpb24gPSBXVEZNb3ZlKGNvbnZlcnNpb24pOworICAgIC8vIDI0LTQ4IGhvdXIgZGVsYXkgYmVm
b3JlIHNlbmRpbmcuIFRoaXMgaGVscHMgcHJpdmFjeSBzaW5jZSB0aGUgY29udmVyc2lvbiBhbmQg
dGhlIGF0dHJpYnV0aW9uCisgICAgLy8gcmVxdWVzdHMgYXJlIGRldGFjaGVkIGFuZCB0aGUgdGlt
ZSBvZiB0aGUgYXR0cmlidXRpb24gZG9lcyBub3QgcmV2ZWFsIHRoZSB0aW1lIG9mIHRoZSBjb252
ZXJzaW9uLgorICAgIGF1dG8gc2Vjb25kcyA9IDI0X2ggKyBTZWNvbmRzKHJhbmRvbU51bWJlcigp
ICogKDI0X2gpLnZhbHVlKCkpOworICAgIG1fZWFybGllc3RUaW1lVG9TZW5kID0gV2FsbFRpbWU6
Om5vdygpICsgc2Vjb25kczsKKyAgICByZXR1cm4gc2Vjb25kczsKK30KKwordm9pZCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6bWFya0FzRXhwaXJlZCgpCit7CisgICAgbV90aW1lT2ZBZENsaWNr
ID0geyB9OworfQorCitib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpoYXNFeHBpcmVkKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gV2FsbFRpbWU6Om5vdygpID4gbV90aW1lT2ZBZENsaWNrICsg
bWF4QWdlOworfQorCitib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpoYXNIaWdoZXJQcmlv
cml0eVRoYW4oY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmIG90aGVyKSBjb25zdAorewor
ICAgIGlmICghb3RoZXIubV9jb252ZXJzaW9uKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAK
KyAgICBpZiAoIW1fY29udmVyc2lvbikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0
dXJuIG1fY29udmVyc2lvbi0+cHJpb3JpdHkgPiBvdGhlci5tX2NvbnZlcnNpb24tPnByaW9yaXR5
OworfQorCitVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnJlcG9ydFVSTCgpIGNvbnN0Cit7
CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBVUkwoKTsKKworICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImh0dHBzOi8vIik7
CisgICAgYnVpbGRlci5hcHBlbmQobV9zb3VyY2UucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkp
OworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFBhdGhQ
cmVmaXgpOworCisgICAgVVJMIHVybCB7IFVSTCgpLCBidWlsZGVyLnRvU3RyaW5nKCkgfTsKKyAg
ICBpZiAodXJsLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIHVybDsKKworICAgIHJldHVybiBV
UkwoKTsKK30KKworUmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ompz
b24oKSBjb25zdAoreworICAgIGF1dG8gcmVwb3J0RGV0YWlscyA9IEpTT046Ok9iamVjdDo6Y3Jl
YXRlKCk7CisgICAgaWYgKCFtX2NvbnZlcnNpb24pCisgICAgICAgIHJldHVybiByZXBvcnREZXRh
aWxzOworCisgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJjb250ZW50LXR5cGUiX3MsICJj
bGljayJfcyk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJjb250ZW50LXNpdGUiX3Ms
IG1fc291cmNlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICByZXBvcnREZXRhaWxz
LT5zZXRJbnRlZ2VyKCJjb250ZW50LWlkIl9zLCBtX2NhbXBhaWduLmlkKTsKKyAgICByZXBvcnRE
ZXRhaWxzLT5zZXRTdHJpbmcoImNvbnZlcnNpb24tc2l0ZSJfcywgbV9kZXN0aW5hdGlvbi5yZWdp
c3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigi
Y29udmVyc2lvbi1kYXRhIl9zLCBtX2NvbnZlcnNpb24tPmRhdGEpOworICAgIHJlcG9ydERldGFp
bHMtPnNldEludGVnZXIoInJlcG9ydC12ZXJzaW9uIl9zLCAxKTsKKyAgICByZXR1cm4gcmVwb3J0
RGV0YWlsczsKK30KKwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6bWFya0NvbnZlcnNp
b25Bc1NlbnQoKQoreworICAgIEFTU0VSVChtX2NvbnZlcnNpb24pOworICAgIGlmIChtX2NvbnZl
cnNpb24pCisgICAgICAgIG1fY29udmVyc2lvbi0+d2FzU2VudCA9IENvbnZlcnNpb246Oldhc1Nl
bnQ6OlllczsKK30KKworYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6d2FzQ29udmVyc2lv
blNlbnQoKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnZlcnNpb24gJiYgbV9jb252ZXJzaW9u
LT53YXNTZW50ID09IENvbnZlcnNpb246Oldhc1NlbnQ6OlllczsKK30KKworU3RyaW5nIFByaXZh
dGVDbGlja01lYXN1cmVtZW50Ojp0b1N0cmluZygpIGNvbnN0Cit7CisgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiU291cmNlOiAiKTsKKyAgICBi
dWlsZGVyLmFwcGVuZChtX3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CisgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkRlc3RpbmF0aW9uOiAiKTsKKyAgICBidWlsZGVyLmFw
cGVuZChtX2Rlc3RpbmF0aW9uLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIlxuQ2FtcGFpZ24gSUQ6ICIpOworICAgIGJ1aWxkZXIuYXBwZW5k
TnVtYmVyKG1fY2FtcGFpZ24uaWQpOworICAgIGlmIChtX2NvbnZlcnNpb24pIHsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkNvbnZlcnNpb24gZGF0YTogIik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTnVtYmVyKG1fY29udmVyc2lvbi52YWx1ZSgpLmRhdGEpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuQ29udmVyc2lvbiBwcmlvcml0eTogIik7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fY29udmVyc2lvbi52YWx1ZSgpLnByaW9yaXR5KTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkNvbnZlcnNpb24gZWFybGllc3QgdGltZSB0
byBzZW5kOiAiKTsKKyAgICAgICAgaWYgKCFtX2VhcmxpZXN0VGltZVRvU2VuZCkKKyAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiTm90IHNldCIpOworICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgIGF1dG8gc2Vjb25kc1VudGlsU2VuZCA9ICptX2VhcmxpZXN0VGltZVRvU2VuZCAt
IFdhbGxUaW1lOjpub3coKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKChzZWNvbmRzVW50
aWxTZW5kID49IDI0X2ggJiYgc2Vjb25kc1VudGlsU2VuZCA8PSA0OF9oKSA/ICJXaXRoaW4gMjQt
NDggaG91cnMiIDogIk91dHNpZGUgMjQtNDggaG91cnMiKTsKKyAgICAgICAgfQorICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6ICIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZCgod2FzQ29udmVyc2lvblNlbnQoKSA/ICJ0cnVlIiA6ICJmYWxz
ZSIpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbk5vIGNv
bnZlcnNpb24gZGF0YS4iKTsKKyAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKKworICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7Cit9CisKK2Jvb2wgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OmRlYnVnTW9kZUVuYWJsZWQoKQoreworICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLnByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxl
ZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2MDJmN2NjNjlhZGFlODkzYTk3MmZlZjM0NTA4YTBmNTE0
M2E1MjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuaApAQCAtMCwwICsxLDM2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiUmVnaXN0cmFibGVEb21haW4uaCIKKyNpbmNsdWRlIDx3dGYvQ29t
cGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0
Zi9KU09OVmFsdWVzLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3Rm
L1VSTC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0hhc2guaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB7CitwdWJsaWM6Cisg
ICAgdXNpbmcgQ2FtcGFpZ25JZCA9IHVpbnQzMl90OworICAgIHVzaW5nIENvbnZlcnNpb25EYXRh
ID0gdWludDMyX3Q7CisgICAgdXNpbmcgUHJpb3JpdHlWYWx1ZSA9IHVpbnQzMl90OworCisgICAg
c3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBNYXhFbnRyb3B5ID0gNjM7CisKKyAgICBzdHJ1Y3Qg
Q2FtcGFpZ24geworICAgICAgICBDYW1wYWlnbigpID0gZGVmYXVsdDsKKyAgICAgICAgZXhwbGlj
aXQgQ2FtcGFpZ24oQ2FtcGFpZ25JZCBpZCkKKyAgICAgICAgICAgIDogaWQgeyBpZCB9CisgICAg
ICAgIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QK
KyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGlkIDw9IE1heEVudHJvcHk7CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIENhbXBhaWduSWQgaWQgeyAwIH07CisgICAgfTsKKworICAg
IHN0cnVjdCBTb3VyY2UgeworICAgICAgICBTb3VyY2UoKSA9IGRlZmF1bHQ7CisgICAgICAgIGV4
cGxpY2l0IFNvdXJjZShjb25zdCBVUkwmIHVybCkKKyAgICAgICAgICAgIDogcmVnaXN0cmFibGVE
b21haW4geyB1cmwgfQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBleHBsaWNpdCBT
b3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKKyAgICAgICAgICAgIDogcmVn
aXN0cmFibGVEb21haW4geyBkb21haW4gfQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAg
ICBleHBsaWNpdCBTb3VyY2UoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQorICAgICAg
ICAgICAgOiByZWdpc3RyYWJsZURvbWFpbihXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSkKKyAg
ICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNvdXJj
ZSYgb3RoZXIpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByZWdpc3RyYWJs
ZURvbWFpbiA9PSBvdGhlci5yZWdpc3RyYWJsZURvbWFpbjsKKyAgICAgICAgfQorCisgICAgICAg
IGJvb2wgbWF0Y2hlcyhjb25zdCBVUkwmIHVybCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIHJlZ2lzdHJhYmxlRG9tYWluLm1hdGNoZXModXJsKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdAorICAgICAgICB7Cisg
ICAgICAgICAgICByZXR1cm4gcmVnaXN0cmFibGVEb21haW4uaXNIYXNoVGFibGVEZWxldGVkVmFs
dWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBTb3VyY2UgZGVsZXRlZFZhbHVlKCkK
KyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIFNvdXJjZSB7IFdURjo6SGFzaFRhYmxlRGVs
ZXRlZFZhbHVlIH07CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3RE
ZWxldGVkVmFsdWUoU291cmNlJiBzb3VyY2UpCisgICAgICAgIHsKKyAgICAgICAgICAgIG5ldyAo
JnNvdXJjZSkgU291cmNlOworICAgICAgICAgICAgc291cmNlID0gU291cmNlOjpkZWxldGVkVmFs
dWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZGVsZXRlVmFsdWUoKQorICAgICAgICB7
CisgICAgICAgICAgICByZWdpc3RyYWJsZURvbWFpbiA9IFJlZ2lzdHJhYmxlRG9tYWluIHsgV1RG
OjpIYXNoVGFibGVEZWxldGVkVmFsdWUgfTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgaXNE
ZWxldGVkVmFsdWUoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaXNIYXNo
VGFibGVEZWxldGVkVmFsdWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIFJlZ2lzdHJhYmxlRG9t
YWluIHJlZ2lzdHJhYmxlRG9tYWluOworICAgIH07CisKKyAgICBzdHJ1Y3QgU291cmNlSGFzaCB7
CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFNvdXJjZSYgc291cmNlKQorICAg
ICAgICB7CisgICAgICAgICAgICByZXR1cm4gc291cmNlLnJlZ2lzdHJhYmxlRG9tYWluLmhhc2go
KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3Qg
U291cmNlJiBhLCBjb25zdCBTb3VyY2UmIGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVy
biBhID09IGI7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9D
b21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOworICAgIH07CisKKyAgICBzdHJ1Y3QgRGVz
dGluYXRpb24geworICAgICAgICBEZXN0aW5hdGlvbigpID0gZGVmYXVsdDsKKyAgICAgICAgZXhw
bGljaXQgRGVzdGluYXRpb24oY29uc3QgVVJMJiB1cmwpCisgICAgICAgICAgICA6IHJlZ2lzdHJh
YmxlRG9tYWluIHsgUmVnaXN0cmFibGVEb21haW4geyB1cmwgfSB9CisgICAgICAgIHsKKyAgICAg
ICAgfQorCisgICAgICAgIGV4cGxpY2l0IERlc3RpbmF0aW9uKFdURjo6SGFzaFRhYmxlRGVsZXRl
ZFZhbHVlVHlwZSkKKyAgICAgICAgICAgIDogcmVnaXN0cmFibGVEb21haW4geyBXVEY6Okhhc2hU
YWJsZURlbGV0ZWRWYWx1ZSB9CisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIGV4cGxp
Y2l0IERlc3RpbmF0aW9uKFJlZ2lzdHJhYmxlRG9tYWluJiYgZG9tYWluKQorICAgICAgICAgICAg
OiByZWdpc3RyYWJsZURvbWFpbiB7IFdURk1vdmUoZG9tYWluKSB9CisgICAgICAgIHsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IERlc3RpbmF0aW9u
JiBvdGhlcikgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhYmxl
RG9tYWluID09IG90aGVyLnJlZ2lzdHJhYmxlRG9tYWluOworICAgICAgICB9CisKKyAgICAgICAg
Ym9vbCBtYXRjaGVzKGNvbnN0IFVSTCYgdXJsKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAg
ICByZXR1cm4gcmVnaXN0cmFibGVEb21haW4gPT0gUmVnaXN0cmFibGVEb21haW4geyB1cmwgfTsK
KyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1
ZSgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByZWdpc3RyYWJsZURvbWFp
bi5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGlj
IERlc3RpbmF0aW9uIGRlbGV0ZWRWYWx1ZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVy
biBEZXN0aW5hdGlvbiB7IFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlIH07CisgICAgICAgIH0K
KworICAgICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoRGVzdGluYXRpb24m
IGRlc3RpbmF0aW9uKQorICAgICAgICB7CisgICAgICAgICAgICBuZXcgKCZkZXN0aW5hdGlvbikg
RGVzdGluYXRpb247CisgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IERlc3RpbmF0aW9uOjpkZWxl
dGVkVmFsdWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZGVsZXRlVmFsdWUoKQorICAg
ICAgICB7CisgICAgICAgICAgICByZWdpc3RyYWJsZURvbWFpbiA9IFJlZ2lzdHJhYmxlRG9tYWlu
IHsgV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWUgfTsKKyAgICAgICAgfQorCisgICAgICAgIGJv
b2wgaXNEZWxldGVkVmFsdWUoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4g
aXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIFJlZ2lzdHJh
YmxlRG9tYWluIHJlZ2lzdHJhYmxlRG9tYWluOworICAgIH07CisKKyAgICBzdHJ1Y3QgRGVzdGlu
YXRpb25IYXNoIHsKKyAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgRGVzdGluYXRp
b24mIGRlc3RpbmF0aW9uKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZGVzdGluYXRp
b24ucmVnaXN0cmFibGVEb21haW4uaGFzaCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBEZXN0aW5hdGlvbiYgYSwgY29uc3QgRGVzdGluYXRp
b24mIGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBhID09IGI7CisgICAgICAgIH0K
KworICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRl
ZCA9IGZhbHNlOworICAgIH07CisKKyAgICBzdHJ1Y3QgUHJpb3JpdHkgeworICAgICAgICBleHBs
aWNpdCBQcmlvcml0eShQcmlvcml0eVZhbHVlIHZhbHVlKQorICAgICAgICA6IHZhbHVlIHsgdmFs
dWUgfQorICAgICAgICB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFByaW9yaXR5VmFs
dWUgdmFsdWU7CisgICAgfTsKKyAgICAKKyAgICBzdHJ1Y3QgQ29udmVyc2lvbiB7CisgICAgICAg
IGVudW0gY2xhc3MgV2FzU2VudCA6IGJvb2wgeyBObywgWWVzIH07CisgICAgICAgIAorICAgICAg
ICBDb252ZXJzaW9uKENvbnZlcnNpb25EYXRhIGRhdGEsIFByaW9yaXR5IHByaW9yaXR5LCBXYXNT
ZW50IHdhc1NlbnQgPSBXYXNTZW50OjpObykKKyAgICAgICAgICAgIDogZGF0YSB7IGRhdGEgfQor
ICAgICAgICAgICAgLCBwcmlvcml0eSB7IHByaW9yaXR5LnZhbHVlIH0KKyAgICAgICAgICAgICwg
d2FzU2VudCB7IHdhc1NlbnQgfQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBib29s
IGlzVmFsaWQoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZGF0YSA8PSBN
YXhFbnRyb3B5ICYmIHByaW9yaXR5IDw9IE1heEVudHJvcHk7CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIENvbnZlcnNpb25EYXRhIGRhdGE7CisgICAgICAgIFByaW9yaXR5VmFsdWUgcHJp
b3JpdHk7CisgICAgICAgIFdhc1NlbnQgd2FzU2VudCA9IFdhc1NlbnQ6Ok5vOworCisgICAgICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAg
ICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPENvbnZlcnNpb24+
IGRlY29kZShEZWNvZGVyJik7CisgICAgfTsKKworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50
KCkgPSBkZWZhdWx0OworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50KENhbXBhaWduIGNhbXBh
aWduLCBjb25zdCBTb3VyY2UmIHNvdXJjZSwgY29uc3QgRGVzdGluYXRpb24mIGRlc3RpbmF0aW9u
KQorICAgICAgICA6IG1fY2FtcGFpZ24geyBjYW1wYWlnbiB9CisgICAgICAgICwgbV9zb3VyY2Ug
eyBzb3VyY2UgfQorICAgICAgICAsIG1fZGVzdGluYXRpb24geyBkZXN0aW5hdGlvbiB9CisgICAg
ICAgICwgbV90aW1lT2ZBZENsaWNrIHsgV2FsbFRpbWU6Om5vdygpIH0KKyAgICB7CisgICAgfQor
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEV4cGVjdGVkPENvbnZlcnNpb24sIFN0cmluZz4g
cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb25zdCBVUkwmIHJlZGlyZWN0VVJMKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCBPcHRpb25hbDxTZWNvbmRzPiBjb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9T
ZW5kKENvbnZlcnNpb24mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNIaWdoZXJQcmlv
cml0eVRoYW4oY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBVUkwgcmVwb3J0VVJMKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVm
PEpTT046Ok9iamVjdD4ganNvbigpIGNvbnN0OworICAgIGNvbnN0IFNvdXJjZSYgc291cmNlKCkg
Y29uc3QgeyByZXR1cm4gbV9zb3VyY2U7IH07CisgICAgY29uc3QgRGVzdGluYXRpb24mIGRlc3Rp
bmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvbjsgfTsKKyAgICBPcHRpb25hbDxX
YWxsVGltZT4gZWFybGllc3RUaW1lVG9TZW5kKCkgY29uc3QgeyByZXR1cm4gbV9lYXJsaWVzdFRp
bWVUb1NlbmQ7IH07CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtYXJrQXNFeHBpcmVkKCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNFeHBpcmVkKCkgY29uc3Q7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBtYXJrQ29udmVyc2lvbkFzU2VudCgpOworICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgd2FzQ29udmVyc2lvblNlbnQoKSBjb25zdDsKKworICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0
IHsgcmV0dXJuIG1fc291cmNlLnJlZ2lzdHJhYmxlRG9tYWluLmlzRW1wdHkoKTsgfTsKKworICAg
IFdFQkNPUkVfRVhQT1JUIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OworCisgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4g
ZGVjb2RlKERlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICBib29sIGlzVmFsaWQoKSBjb25zdDsK
KyAgICBzdGF0aWMgYm9vbCBkZWJ1Z01vZGVFbmFibGVkKCk7CisKKyAgICBDYW1wYWlnbiBtX2Nh
bXBhaWduOworICAgIFNvdXJjZSBtX3NvdXJjZTsKKyAgICBEZXN0aW5hdGlvbiBtX2Rlc3RpbmF0
aW9uOworICAgIFdhbGxUaW1lIG1fdGltZU9mQWRDbGljazsKKworICAgIE9wdGlvbmFsPENvbnZl
cnNpb24+IG1fY29udmVyc2lvbjsKKyAgICBPcHRpb25hbDxXYWxsVGltZT4gbV9lYXJsaWVzdFRp
bWVUb1NlbmQ7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5j
b2RlciA8PCBtX2NhbXBhaWduLmlkIDw8IG1fc291cmNlLnJlZ2lzdHJhYmxlRG9tYWluIDw8IG1f
ZGVzdGluYXRpb24ucmVnaXN0cmFibGVEb21haW4gPDwgbV90aW1lT2ZBZENsaWNrIDw8IG1fY29u
dmVyc2lvbiA8PCBtX2VhcmxpZXN0VGltZVRvU2VuZDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4KK09wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8Q2FtcGFp
Z25JZD4gY2FtcGFpZ25JZDsKKyAgICBkZWNvZGVyID4+IGNhbXBhaWduSWQ7CisgICAgaWYgKCFj
YW1wYWlnbklkKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIAorICAgIE9wdGlv
bmFsPFJlZ2lzdHJhYmxlRG9tYWluPiBzb3VyY2VSZWdpc3RyYWJsZURvbWFpbjsKKyAgICBkZWNv
ZGVyID4+IHNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluOworICAgIGlmICghc291cmNlUmVnaXN0cmFi
bGVEb21haW4pCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgT3B0aW9u
YWw8UmVnaXN0cmFibGVEb21haW4+IGRlc3RpbmF0aW9uUmVnaXN0cmFibGVEb21haW47CisgICAg
ZGVjb2RlciA+PiBkZXN0aW5hdGlvblJlZ2lzdHJhYmxlRG9tYWluOworICAgIGlmICghZGVzdGlu
YXRpb25SZWdpc3RyYWJsZURvbWFpbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAg
ICAKKyAgICBPcHRpb25hbDxXYWxsVGltZT4gdGltZU9mQWRDbGljazsKKyAgICBkZWNvZGVyID4+
IHRpbWVPZkFkQ2xpY2s7CisgICAgaWYgKCF0aW1lT2ZBZENsaWNrKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworICAgIAorICAgIE9wdGlvbmFsPE9wdGlvbmFsPENvbnZlcnNpb24+PiBj
b252ZXJzaW9uOworICAgIGRlY29kZXIgPj4gY29udmVyc2lvbjsKKyAgICBpZiAoIWNvbnZlcnNp
b24pCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgT3B0aW9uYWw8T3B0
aW9uYWw8V2FsbFRpbWU+PiBlYXJsaWVzdFRpbWVUb1NlbmQ7CisgICAgZGVjb2RlciA+PiBlYXJs
aWVzdFRpbWVUb1NlbmQ7CisgICAgaWYgKCFlYXJsaWVzdFRpbWVUb1NlbmQpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0
cmlidXRpb24geyBDYW1wYWlnbiB7IFdURk1vdmUoKmNhbXBhaWduSWQpIH0sIFNvdXJjZSB7IFdU
Rk1vdmUoKnNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluKSB9LCBEZXN0aW5hdGlvbiB7IFdURk1vdmUo
KmRlc3RpbmF0aW9uUmVnaXN0cmFibGVEb21haW4pIH0gfTsKKyAgICBhdHRyaWJ1dGlvbi5tX2Nv
bnZlcnNpb24gPSBXVEZNb3ZlKCpjb252ZXJzaW9uKTsKKyAgICBhdHRyaWJ1dGlvbi5tX2Vhcmxp
ZXN0VGltZVRvU2VuZCA9IFdURk1vdmUoKmVhcmxpZXN0VGltZVRvU2VuZCk7CisgICAgCisgICAg
cmV0dXJuIGF0dHJpYnV0aW9uOworfQorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBkYXRhIDw8IHByaW9yaXR5IDw8IHdhc1NlbnQ7
Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6Q29udmVyc2lvbj4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb246
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPENvbnZlcnNpb25EYXRh
PiBkYXRhOworICAgIGRlY29kZXIgPj4gZGF0YTsKKyAgICBpZiAoIWRhdGEpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgT3B0aW9uYWw8UHJpb3JpdHlWYWx1ZT4gcHJp
b3JpdHk7CisgICAgZGVjb2RlciA+PiBwcmlvcml0eTsKKyAgICBpZiAoIXByaW9yaXR5KQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIAorICAgIE9wdGlvbmFsPFdhc1NlbnQ+IHdh
c1NlbnQ7CisgICAgZGVjb2RlciA+PiB3YXNTZW50OworICAgIGlmICghd2FzU2VudCkKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAKKyAgICByZXR1cm4gQ29udmVyc2lvbiB7IFdU
Rk1vdmUoKmRhdGEpLCBQcmlvcml0eSB7ICpwcmlvcml0eSB9LCAqd2FzU2VudCB9OworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgewordGVtcGxhdGU8dHlwZW5h
bWUgVD4gc3RydWN0IERlZmF1bHRIYXNoOworCit0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFz
aDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlPiA6IFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VIYXNoIHsgfTsKK3RlbXBsYXRlPD4gc3RydWN0
IEhhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZT4gOiBH
ZW5lcmljSGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNl
PiB7CisgICAgc3RhdGljIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2Ug
ZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQorICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERl
bGV0ZWRWYWx1ZShXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlJiBzbG90
KSB7IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2U6OmNvbnN0cnVjdERl
bGV0ZWRWYWx1ZShzbG90KTsgfQorICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0
IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UmIHNsb3QpIHsgcmV0dXJu
IHNsb3QuaXNEZWxldGVkVmFsdWUoKTsgfQorfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVs
dEhhc2g8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uPiA6IFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbkhhc2ggeyB9OwordGVt
cGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6RGVzdGluYXRpb24+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uPiB7CisgICAgc3RhdGljIFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiBlbXB0eVZhbHVlKCkgeyByZXR1cm4geyB9OyB9
CisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiYgc2xvdCkgeyBXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb246OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZShzbG90KTsg
fQorICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiYgc2xvdCkgeyByZXR1cm4gc2xvdC5pc0RlbGV0
ZWRWYWx1ZSgpOyB9Cit9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaAppbmRleCBmYTIwMGRhMWYwZjM1MGQyN2QwOTRlYjdjZTU2NGE4NjJhOGJmZTAw
Li5mODA0ZjA3M2UwOWY2ZmY1YTRlNWY0YjY0OTgzMmYzYWFhNDdlNTg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMjAzLDggKzIwMyw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldExpbmVIZWlnaHRVbml0c0VuYWJsZWQoYm9vbCBpc0VuYWJs
ZWQpIHsgbV9saW5lSGVpZ2h0VW5pdHNFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCBs
aW5lSGVpZ2h0VW5pdHNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9saW5lSGVpZ2h0VW5pdHNF
bmFibGVkOyB9CiAKLSAgICBib29sIGFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX2FkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQ7IH0K
LSAgICB2b2lkIHNldEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQoYm9vbCBpc0Vu
YWJsZWQpIHsgbV9hZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkID0gaXNFbmFibGVk
OyB9CisgICAgYm9vbCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZDsg
fQorICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkKGJv
b2wgaXNFbmFibGVkKSB7IG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVk
ID0gaXNFbmFibGVkOyB9CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIGJvb2wgbW91
c2VFdmVudHNTaW11bGF0aW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2VFdmVudHNT
aW11bGF0aW9uRW5hYmxlZDsgfQpAQCAtMzQ2LDcgKzM0Niw3IEBAIHByaXZhdGU6CiAgICAgLy8g
aHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzMyNTcgaGF2ZSBiZWVu
IHNvcnRlZCBvdXQuCiAgICAgYm9vbCBtX2xpbmVIZWlnaHRVbml0c0VuYWJsZWQgeyBmYWxzZSB9
OwogCi0gICAgYm9vbCBtX2FkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQgeyBmYWxz
ZSB9OworICAgIGJvb2wgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQg
eyBmYWxzZSB9OwogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBib29sIG1fbW91c2VF
dmVudHNTaW11bGF0aW9uRW5hYmxlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5n
LmgKaW5kZXggYjUzOWJkZTJjZjkzNGIwZjAyNGY4ZDYwZjE2ZGYxNGM5YTUzZjg2OS4uYmY5Yzk1
ZTVjNDBlODBiOGNiMDA1ZDI1MGQ1Zjc1MDFjZjFiMjQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Z2dpbmcuaApAQCAtMzksNyArMzksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNkZWZpbmUg
V0VCQ09SRV9MT0dfQ0hBTk5FTFMoTSkgXAogICAgIE0oQWNjZXNzaWJpbGl0eSkgXAotICAgIE0o
QWRDbGlja0F0dHJpYnV0aW9uKSBcCiAgICAgTShBbmltYXRpb25zKSBcCiAgICAgTShBcHBsZVBh
eSkgXAogICAgIE0oQXJjaGl2ZXMpIFwKQEAgLTkxLDYgKzkwLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIE0oUGxhdGZvcm1MZWFrcykgXAogICAgIE0oUGx1Z2lucykgXAogICAgIE0oUG9w
dXBCbG9ja2luZykgXAorICAgIE0oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIFwKICAgICBNKFBy
b2dyZXNzKSBcCiAgICAgTShSZW1vdGVJbnNwZWN0b3IpIFwKICAgICBNKFJlcXVlc3RBbmltYXRp
b25GcmFtZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlv
bnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9M
b2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggNTRmYTI1YjUw
ZWYwMTczZmJmODQzY2Y5M2JlM2MwZmZlYTMxZGQyYi4uY2UxMmY2MGQ4ZGEwZGI2YzY3ODVlNGRl
ZjhkZDZmOTczY2U3MzRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2Fs
aXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC05
OCw3ICs5OCw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkFjY2Vzc2liaWxpdHkiXSA9ICJBY2Nlc3Np
YmlsaXR5IjsKIGxvY2FsaXplZFN0cmluZ3NbIkFjdGlvbiJdID0gIkFjdGlvbiI7CiAvKiBUb29s
dGlwIGZvciBhIHRpbWUgcmFuZ2UgYmFyIHRoYXQgcmVwcmVzZW50cyB3aGVuIGEgQ1NTIGFuaW1h
dGlvbi90cmFuc2l0aW9uIGlzIHJ1bm5pbmcgKi8KIGxvY2FsaXplZFN0cmluZ3NbIkFjdGl2ZSJd
ID0gIkFjdGl2ZSI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJBZCBDbGljayBBdHRyaWJ1dGlvbiBEZWJ1
ZyBNb2RlIl0gPSAiQWQgQ2xpY2sgQXR0cmlidXRpb24gRGVidWcgTW9kZSI7Citsb2NhbGl6ZWRT
dHJpbmdzWyJQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50IERlYnVnIE1vZGUiXSA9ICJQcml2YXRl
IENsaWNrIE1lYXN1cmVtZW50IERlYnVnIE1vZGUiOwogbG9jYWxpemVkU3RyaW5nc1siQWRkIl0g
PSAiQWRkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFkZCAlcyBSdWxlIl0gPSAiQWRkICVzIFJ1bGUi
OwogbG9jYWxpemVkU3RyaW5nc1siQWRkIEFjdGlvbiJdID0gIkFkZCBBY3Rpb24iOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCmluZGV4IDMz
ODJhMjFhYmEyZDgwODg4NjkyNDIxNjlmM2U3NWQ0MTBkNzk4NzMuLmE0MzgyYzU2YTdjZjgzMTcz
YWJhOWExOTE4ZDg1YzJjMDA0Nzk4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9CYXNlL01haW4uanMKQEAgLTIzNDQsNyArMjM0NCw3IEBAIFdJLl9oYW5k
bGVEZXZpY2VTZXR0aW5nc1RhYkJhckJ1dHRvbkNsaWNrZWQgPSBmdW5jdGlvbihldmVudCkKICAg
ICAgICAgICAgIGNvbHVtbnM6IFsKICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAg
ICAgIHtuYW1lOiBXSS5VSVN0cmluZygiSVRQIERlYnVnIE1vZGUiKSwgc2V0dGluZzogSW5zcGVj
dG9yQmFja2VuZC5FbnVtLlBhZ2UuU2V0dGluZy5JVFBEZWJ1Z01vZGVFbmFibGVkLCB2YWx1ZTog
dHJ1ZX0sCi0gICAgICAgICAgICAgICAgICAgIHtuYW1lOiBXSS5VSVN0cmluZygiQWQgQ2xpY2sg
QXR0cmlidXRpb24gRGVidWcgTW9kZSIpLCBzZXR0aW5nOiBJbnNwZWN0b3JCYWNrZW5kLkVudW0u
UGFnZS5TZXR0aW5nLkFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQsIHZhbHVlOiB0
cnVlfSwKKyAgICAgICAgICAgICAgICAgICAge25hbWU6IFdJLlVJU3RyaW5nKCJQcml2YXRlIENs
aWNrIE1lYXN1cmVtZW50IERlYnVnIE1vZGUiKSwgc2V0dGluZzogSW5zcGVjdG9yQmFja2VuZC5F
bnVtLlBhZ2UuU2V0dGluZy5Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQs
IHZhbHVlOiB0cnVlfSwKICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgXSwKICAgICAg
ICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9Db25zb2xlTWVzc2FnZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9Db25zb2xlTWVzc2FnZS5qcwppbmRleCBiZTc4NzhlMGI3NTMwZWY3NGJlMjk0
YWJmZGY5YzUwNGMxNGMxODIyLi4yYTYyZWRhZWRkMTczYmEwYmI3OTZhNTc0ZWI2MjgyN2RkNDFi
ZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvQ29uc29sZU1lc3NhZ2UuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0NvbnNvbGVNZXNzYWdlLmpzCkBAIC0xMTMsNyArMTEzLDcgQEAgV0kuQ29u
c29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZSA9IHsKICAgICBNZWRpYVNvdXJjZTogIm1lZGlhc291
cmNlIiwKICAgICBXZWJSVEM6ICJ3ZWJydGMiLAogICAgIElUUERlYnVnOiAiaXRwLWRlYnVnIiwK
LSAgICBBZENsaWNrQXR0cmlidXRpb246ICJhZC1jbGljay1hdHRyaWJ1dGlvbiIsCisgICAgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6ICJwcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50IiwKICAgICBP
dGhlcjogIm90aGVyIiwKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9Jc3N1ZU1lc3NhZ2UuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvSXNzdWVNZXNzYWdlLmpzCmluZGV4IDJkODgxNzViNmVl
Njc2N2M4M2RjNDU0NzliY2E5M2U5NTQzYWJiNWYuLmM5YzM5NTczODEwNjhmZjc1MGM3YmVmMGNm
NmRkZWVmZGU0ZjMzMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9Jc3N1ZU1lc3NhZ2UuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0lzc3VlTWVzc2FnZS5qcwpAQCAtNjksNyArNjksNyBAQCBX
SS5Jc3N1ZU1lc3NhZ2UgPSBjbGFzcyBJc3N1ZU1lc3NhZ2UgZXh0ZW5kcyBXSS5PYmplY3QKICAg
ICAgICAgY2FzZSBXSS5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLk1lZGlhc291cmNlOgog
ICAgICAgICBjYXNlIFdJLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UuV2ViUlRDOgogICAg
ICAgICBjYXNlIFdJLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UuSVRQRGVidWc6Ci0gICAg
ICAgIGNhc2UgV0kuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5BZENsaWNrQXR0cmlidXRp
b246CisgICAgICAgIGNhc2UgV0kuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDoKICAgICAgICAgY2FzZSBXSS5Db25zb2xlTWVzc2FnZS5NZXNzYWdl
U291cmNlLk90aGVyOgogICAgICAgICAgICAgdGhpcy5fdHlwZSA9IFdJLklzc3VlTWVzc2FnZS5U
eXBlLk90aGVySXNzdWU7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0xlZ2FjeS8xNC4wL0luc3BlY3Rv
ckJhY2tlbmRDb21tYW5kcy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Byb3RvY29sL0xlZ2FjeS8xNC4wL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcwppbmRleCA2
ODVlOThlZTVlNTUyOTA1YjdlZTg3N2U0YTYwNGVlYmU2ZTdkMGYzLi40ZmNkOTdlNGNjYjA1ZGQ4
OWFmNTQ1N2Q5M2UwOTZmYjVkZTMwMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9MZWdhY3kvMTQuMC9JbnNwZWN0b3JCYWNrZW5kQ29t
bWFuZHMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9j
b2wvTGVnYWN5LzE0LjAvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzCkBAIC0xNTEsNyArMTUx
LDcgQEAgSW5zcGVjdG9yQmFja2VuZC5hY3RpdmF0ZURvbWFpbigiQ2FudmFzIiwgWyJwYWdlIiwg
IndlYi1wYWdlIl0pOwogCiAvLyBDb25zb2xlCiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRG9t
YWluKCJDb25zb2xlIiwgWyJpdG1sIiwgImphdmFzY3JpcHQiLCAicGFnZSIsICJzZXJ2aWNlLXdv
cmtlciIsICJ3b3JrZXIiXSk7Ci1JbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRW51bSgiQ29uc29s
ZS5DaGFubmVsU291cmNlIiwge1hNTDogInhtbCIsIEphdmFTY3JpcHQ6ICJqYXZhc2NyaXB0Iiwg
TmV0d29yazogIm5ldHdvcmsiLCBDb25zb2xlQVBJOiAiY29uc29sZS1hcGkiLCBTdG9yYWdlOiAi
c3RvcmFnZSIsIEFwcGNhY2hlOiAiYXBwY2FjaGUiLCBSZW5kZXJpbmc6ICJyZW5kZXJpbmciLCBD
U1M6ICJjc3MiLCBTZWN1cml0eTogInNlY3VyaXR5IiwgQ29udGVudEJsb2NrZXI6ICJjb250ZW50
LWJsb2NrZXIiLCBNZWRpYTogIm1lZGlhIiwgTWVkaWFTb3VyY2U6ICJtZWRpYXNvdXJjZSIsIFdl
YlJUQzogIndlYnJ0YyIsIElUUERlYnVnOiAiaXRwLWRlYnVnIiwgQWRDbGlja0F0dHJpYnV0aW9u
OiAiYWQtY2xpY2stYXR0cmlidXRpb24iLCBPdGhlcjogIm90aGVyIn0pOworSW5zcGVjdG9yQmFj
a2VuZC5yZWdpc3RlckVudW0oIkNvbnNvbGUuQ2hhbm5lbFNvdXJjZSIsIHtYTUw6ICJ4bWwiLCBK
YXZhU2NyaXB0OiAiamF2YXNjcmlwdCIsIE5ldHdvcms6ICJuZXR3b3JrIiwgQ29uc29sZUFQSTog
ImNvbnNvbGUtYXBpIiwgU3RvcmFnZTogInN0b3JhZ2UiLCBBcHBjYWNoZTogImFwcGNhY2hlIiwg
UmVuZGVyaW5nOiAicmVuZGVyaW5nIiwgQ1NTOiAiY3NzIiwgU2VjdXJpdHk6ICJzZWN1cml0eSIs
IENvbnRlbnRCbG9ja2VyOiAiY29udGVudC1ibG9ja2VyIiwgTWVkaWE6ICJtZWRpYSIsIE1lZGlh
U291cmNlOiAibWVkaWFzb3VyY2UiLCBXZWJSVEM6ICJ3ZWJydGMiLCBJVFBEZWJ1ZzogIml0cC1k
ZWJ1ZyIsIFByaXZhdGVDbGlja01lYXN1cmVtZW50OiAicHJpdmF0ZS1jbGljay1tZWFzdXJlbWVu
dCIsIE90aGVyOiAib3RoZXIifSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRW51bSgiQ29u
c29sZS5DaGFubmVsTGV2ZWwiLCB7T2ZmOiAib2ZmIiwgQmFzaWM6ICJiYXNpYyIsIFZlcmJvc2U6
ICJ2ZXJib3NlIn0pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckVudW0oIkNvbnNvbGUuQ29u
c29sZU1lc3NhZ2VMZXZlbCIsIHtMb2c6ICJsb2ciLCBJbmZvOiAiaW5mbyIsIFdhcm5pbmc6ICJ3
YXJuaW5nIiwgRXJyb3I6ICJlcnJvciIsIERlYnVnOiAiZGVidWcifSk7CiBJbnNwZWN0b3JCYWNr
ZW5kLnJlZ2lzdGVyRW51bSgiQ29uc29sZS5Db25zb2xlTWVzc2FnZVR5cGUiLCB7TG9nOiAibG9n
IiwgRGlyOiAiZGlyIiwgRGlyWE1MOiAiZGlyeG1sIiwgVGFibGU6ICJ0YWJsZSIsIFRyYWNlOiAi
dHJhY2UiLCBDbGVhcjogImNsZWFyIiwgU3RhcnRHcm91cDogInN0YXJ0R3JvdXAiLCBTdGFydEdy
b3VwQ29sbGFwc2VkOiAic3RhcnRHcm91cENvbGxhcHNlZCIsIEVuZEdyb3VwOiAiZW5kR3JvdXAi
LCBBc3NlcnQ6ICJhc3NlcnQiLCBUaW1pbmc6ICJ0aW1pbmciLCBQcm9maWxlOiAicHJvZmlsZSIs
IFByb2ZpbGVFbmQ6ICJwcm9maWxlRW5kIiwgSW1hZ2U6ICJpbWFnZSJ9KTsKQEAgLTQyOSw3ICs0
MjksNyBAQCBJbnNwZWN0b3JCYWNrZW5kLmFjdGl2YXRlRG9tYWluKCJOZXR3b3JrIiwgWyJpdG1s
IiwgInBhZ2UiLCAic2VydmljZS13b3JrZXIiLCAidwogCiAvLyBQYWdlCiBJbnNwZWN0b3JCYWNr
ZW5kLnJlZ2lzdGVyRG9tYWluKCJQYWdlIiwgWyJpdG1sIiwgInBhZ2UiXSk7Ci1JbnNwZWN0b3JC
YWNrZW5kLnJlZ2lzdGVyRW51bSgiUGFnZS5TZXR0aW5nIiwge0FkQ2xpY2tBdHRyaWJ1dGlvbkRl
YnVnTW9kZUVuYWJsZWQ6ICJBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkIiwgQXV0
aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQ6ICJBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCIsIElD
RUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQ6ICJJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVk
IiwgSVRQRGVidWdNb2RlRW5hYmxlZDogIklUUERlYnVnTW9kZUVuYWJsZWQiLCBJbWFnZXNFbmFi
bGVkOiAiSW1hZ2VzRW5hYmxlZCIsIE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlv
bjogIk1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiIsIE1vY2tDYXB0dXJlRGV2
aWNlc0VuYWJsZWQ6ICJNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkIiwgTmVlZHNTaXRlU3BlY2lm
aWNRdWlya3M6ICJOZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyIsIFNjcmlwdEVuYWJsZWQ6ICJTY3Jp
cHRFbmFibGVkIiwgU2hvd0RlYnVnQm9yZGVyczogIlNob3dEZWJ1Z0JvcmRlcnMiLCBTaG93UmVw
YWludENvdW50ZXI6ICJTaG93UmVwYWludENvdW50ZXIiLCBXZWJSVENFbmNyeXB0aW9uRW5hYmxl
ZDogIldlYlJUQ0VuY3J5cHRpb25FbmFibGVkIiwgV2ViU2VjdXJpdHlFbmFibGVkOiAiV2ViU2Vj
dXJpdHlFbmFibGVkIn0pOworSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckVudW0oIlBhZ2UuU2V0
dGluZyIsIHtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQ6ICJQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQiLCBBdXRob3JBbmRVc2VyU3R5bGVzRW5h
YmxlZDogIkF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkIiwgSUNFQ2FuZGlkYXRlRmlsdGVyaW5n
RW5hYmxlZDogIklDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQiLCBJVFBEZWJ1Z01vZGVFbmFi
bGVkOiAiSVRQRGVidWdNb2RlRW5hYmxlZCIsIEltYWdlc0VuYWJsZWQ6ICJJbWFnZXNFbmFibGVk
IiwgTWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uOiAiTWVkaWFDYXB0dXJlUmVx
dWlyZXNTZWN1cmVDb25uZWN0aW9uIiwgTW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZDogIk1vY2tD
YXB0dXJlRGV2aWNlc0VuYWJsZWQiLCBOZWVkc1NpdGVTcGVjaWZpY1F1aXJrczogIk5lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzIiwgU2NyaXB0RW5hYmxlZDogIlNjcmlwdEVuYWJsZWQiLCBTaG93RGVi
dWdCb3JkZXJzOiAiU2hvd0RlYnVnQm9yZGVycyIsIFNob3dSZXBhaW50Q291bnRlcjogIlNob3dS
ZXBhaW50Q291bnRlciIsIFdlYlJUQ0VuY3J5cHRpb25FbmFibGVkOiAiV2ViUlRDRW5jcnlwdGlv
bkVuYWJsZWQiLCBXZWJTZWN1cml0eUVuYWJsZWQ6ICJXZWJTZWN1cml0eUVuYWJsZWQifSk7CiBJ
bnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRW51bSgiUGFnZS5SZXNvdXJjZVR5cGUiLCB7RG9jdW1l
bnQ6ICJEb2N1bWVudCIsIFN0eWxlU2hlZXQ6ICJTdHlsZVNoZWV0IiwgSW1hZ2U6ICJJbWFnZSIs
IEZvbnQ6ICJGb250IiwgU2NyaXB0OiAiU2NyaXB0IiwgWEhSOiAiWEhSIiwgRmV0Y2g6ICJGZXRj
aCIsIFBpbmc6ICJQaW5nIiwgQmVhY29uOiAiQmVhY29uIiwgV2ViU29ja2V0OiAiV2ViU29ja2V0
IiwgT3RoZXI6ICJPdGhlciJ9KTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFbnVtKCJQYWdl
LkNvb3JkaW5hdGVTeXN0ZW0iLCB7Vmlld3BvcnQ6ICJWaWV3cG9ydCIsIFBhZ2U6ICJQYWdlIn0p
OwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckVudW0oIlBhZ2UuQ29va2llU2FtZVNpdGVQb2xp
Y3kiLCB7Tm9uZTogIk5vbmUiLCBMYXg6ICJMYXgiLCBTdHJpY3Q6ICJTdHJpY3QifSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0FkQ2xpY2tBdHRyaWJ1dGlvbk1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9BZENsaWNrQXR0cmlidXRp
b25NYW5hZ2VyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDc0NjJlNjUwYjQw
NTJlYWIxZTQ3Njc2ZDAxYjJjYzRkZTc0N2UyMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0FkQ2xpY2tB
dHRyaWJ1dGlvbk1hbmFnZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzM2ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQWRDbGlja0F0dHJpYnV0
aW9uTWFuYWdlci5oIgotCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0NvbnNvbGVUeXBlcy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hPcHRpb25zLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9Gb3JtRGF0YS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvSFRUUEhl
YWRlclZhbHVlcy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZVJlc3BvbnNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KLSNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFz
aC5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi11
c2luZyBTb3VyY2UgPSBBZENsaWNrQXR0cmlidXRpb246OlNvdXJjZTsKLXVzaW5nIERlc3RpbmF0
aW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbjsKLXVzaW5nIERlc3RpbmF0aW9u
TWFwID0gSGFzaE1hcDxEZXN0aW5hdGlvbiwgQWRDbGlja0F0dHJpYnV0aW9uPjsKLXVzaW5nIENv
bnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OkNvbnZlcnNpb247Ci0KLWNvbnN0ZXhwciBT
ZWNvbmRzIGRlYnVnTW9kZVNlY29uZHNVbnRpbFNlbmQgeyA2MF9zIH07Ci0KLXZvaWQgQWRDbGlj
a0F0dHJpYnV0aW9uTWFuYWdlcjo6c3RvcmVVbmNvbnZlcnRlZChBZENsaWNrQXR0cmlidXRpb24m
JiBhdHRyaWJ1dGlvbikKLXsKLSAgICBjbGVhckV4cGlyZWQoKTsKLQotICAgIGlmIChVTkxJS0VM
WShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lORk8oQWRDbGlj
a0F0dHJpYnV0aW9uLCAiU3RvcmluZyBhbiBhZCBjbGljay4iKTsKLSAgICAgICAgbV9uZXR3b3Jr
UHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3Vy
Y2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbiwgTWVzc2FnZUxldmVsOjpFcnJvciwgIltBZCBDbGljayBB
dHRyaWJ1dGlvbl0gU3RvcmluZyBhbiBhZCBjbGljay4iX3MpOwotICAgIH0KLQotICAgIG1fdW5j
b252ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25NYXAuc2V0KHN0ZDo6bWFrZV9wYWlyKGF0dHJpYnV0
aW9uLnNvdXJjZSgpLCBhdHRyaWJ1dGlvbi5kZXN0aW5hdGlvbigpKSwgV1RGTW92ZShhdHRyaWJ1
dGlvbikpOwotfQotCi12b2lkIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXI6OmhhbmRsZUNvbnZl
cnNpb24oQ29udmVyc2lvbiYmIGNvbnZlcnNpb24sIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QpCi17Ci0gICAgaWYg
KG1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlZ2lz
dHJhYmxlRG9tYWluIHJlZGlyZWN0RG9tYWluIHsgcmVkaXJlY3RSZXF1ZXN0LnVybCgpIH07Ci0g
ICAgYXV0byYgZmlyc3RQYXJ0eVVSTCA9IHJlZGlyZWN0UmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29v
a2llcygpOwotCi0gICAgaWYgKCFyZWRpcmVjdERvbWFpbi5tYXRjaGVzKHJlcXVlc3RVUkwpKSB7
Ci0gICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7Ci0gICAgICAgICAg
ICBSRUxFQVNFX0xPR19JTkZPKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgIkNvbnZlcnNpb24gd2FzIG5v
dCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBIVFRQIHJlZGlyZWN0IHdhcyBub3Qgc2FtZS1zaXRlLiIp
OwotICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2Uo
bV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbiwgTWVzc2FnZUxl
dmVsOjpFcnJvciwgIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gQ29udmVyc2lvbiB3YXMgbm90IGFj
Y2VwdGVkIGJlY2F1c2UgdGhlIEhUVFAgcmVkaXJlY3Qgd2FzIG5vdCBzYW1lLXNpdGUuIl9zKTsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKHJlZGlyZWN0RG9t
YWluLm1hdGNoZXMoZmlyc3RQYXJ0eVVSTCkpIHsKLSAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVn
TW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oQWRDbGlja0F0
dHJpYnV0aW9uLCAiQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgaXQgd2FzIHJl
cXVlc3RlZCBpbiBhbiBIVFRQIHJlZGlyZWN0IHRoYXQgaXMgc2FtZS1zaXRlIGFzIHRoZSBmaXJz
dC1wYXJ0eS4iKTsKLSAgICAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNv
bGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpBZENsaWNrQXR0cmlidXRpb24s
IE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJbQWQgQ2xpY2sgQXR0cmlidXRpb25dIENvbnZlcnNpb24g
d2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIGl0IHdhcyByZXF1ZXN0ZWQgaW4gYW4gSFRUUCByZWRp
cmVjdCB0aGF0IGlzIHNhbWUtc2l0ZSBhcyB0aGUgZmlyc3QtcGFydHkuIl9zKTsKLSAgICAgICAg
fQotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY29udmVydChBZENsaWNrQXR0cmlidXRp
b246OlNvdXJjZSB7IFdURk1vdmUocmVkaXJlY3REb21haW4pIH0sIEFkQ2xpY2tBdHRyaWJ1dGlv
bjo6RGVzdGluYXRpb24geyBmaXJzdFBhcnR5VVJMIH0sIFdURk1vdmUoY29udmVyc2lvbikpOwot
fQotCi12b2lkIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXI6OnN0YXJ0VGltZXIoU2Vjb25kcyBz
ZWNvbmRzKQotewotICAgIG1fZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHNUaW1lci5zdGFy
dE9uZVNob3QobV9pc1J1bm5pbmdUZXN0ID8gMF9zIDogc2Vjb25kcyk7Ci19Ci0KLXZvaWQgQWRD
bGlja0F0dHJpYnV0aW9uTWFuYWdlcjo6Y29udmVydChjb25zdCBTb3VyY2UmIHNvdXJjZSwgY29u
c3QgRGVzdGluYXRpb24mIGRlc3RpbmF0aW9uLCBDb252ZXJzaW9uJiYgY29udmVyc2lvbikKLXsK
LSAgICBjbGVhckV4cGlyZWQoKTsKLQotICAgIGlmICghY29udmVyc2lvbi5pc1ZhbGlkKCkpIHsK
LSAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0lORk8oQWRDbGlja0F0dHJpYnV0aW9uLCAiR290IGFuIGludmFsaWQgY29u
dmVyc2lvbi4iKTsKLSAgICAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNv
bGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpBZENsaWNrQXR0cmlidXRpb24s
IE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJbQWQgQ2xpY2sgQXR0cmlidXRpb25dIEdvdCBhbiBpbnZh
bGlkIGNvbnZlcnNpb24uIl9zKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgYXV0byBjb252ZXJzaW9uRGF0YSA9IGNvbnZlcnNpb24uZGF0YTsKLSAgICBhdXRvIGNv
bnZlcnNpb25Qcmlvcml0eSA9IGNvbnZlcnNpb24ucHJpb3JpdHk7Ci0KLSAgICBpZiAoVU5MSUtF
TFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JTkZPKEFkQ2xp
Y2tBdHRyaWJ1dGlvbiwgIkdvdCBhIGNvbnZlcnNpb24gd2l0aCBjb252ZXJzaW9uIGRhdGE6ICV7
cHVibGljfXUgYW5kIHByaW9yaXR5OiAle3B1YmxpY311LiIsIGNvbnZlcnNpb25EYXRhLCBjb252
ZXJzaW9uUHJpb3JpdHkpOwotICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25z
b2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6QWRDbGlja0F0dHJpYnV0aW9u
LCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltBZCBDbGljayBBdHRyaWJ1dGlvbl0g
R290IGEgY29udmVyc2lvbiB3aXRoIGNvbnZlcnNpb24gZGF0YTogJyJfcywgY29udmVyc2lvbkRh
dGEsICInIGFuZCBwcmlvcml0eTogJyJfcywgY29udmVyc2lvblByaW9yaXR5LCAiJy4iX3MpKTsK
LSAgICB9Ci0KLSAgICBhdXRvIHNlY29uZHNVbnRpbFNlbmQgPSBTZWNvbmRzOjppbmZpbml0eSgp
OwotCi0gICAgYXV0byBwYWlyID0gc3RkOjptYWtlX3BhaXIoc291cmNlLCBkZXN0aW5hdGlvbik7
Ci0gICAgYXV0byBwcmV2aW91c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbiA9IG1fdW5jb252ZXJ0
ZWRBZENsaWNrQXR0cmlidXRpb25NYXAudGFrZShwYWlyKTsKLSAgICBhdXRvIHByZXZpb3VzbHlD
b252ZXJ0ZWRBdHRyaWJ1dGlvbkl0ZXIgPSBtX2NvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1h
cC5maW5kKHBhaXIpOwotCi0gICAgaWYgKCFwcmV2aW91c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1dGlv
bi5pc0VtcHR5KCkpIHsKLSAgICAgICAgLy8gQWx3YXlzIGNvbnZlcnQgdGhlIHBlbmRpbmcgYXR0
cmlidXRpb24gYW5kIHJlbW92ZSBpdCBmcm9tIHRoZSB1bmNvbnZlcnRlZCBtYXAuCi0gICAgICAg
IGlmIChhdXRvIG9wdGlvbmFsU2Vjb25kc1VudGlsU2VuZCA9IHByZXZpb3VzbHlVbmNvbnZlcnRl
ZEF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoV1RGTW92ZShjb252
ZXJzaW9uKSkpIHsKLSAgICAgICAgICAgIHNlY29uZHNVbnRpbFNlbmQgPSAqb3B0aW9uYWxTZWNv
bmRzVW50aWxTZW5kOwotICAgICAgICAgICAgQVNTRVJUKHNlY29uZHNVbnRpbFNlbmQgIT0gU2Vj
b25kczo6aW5maW5pdHkoKSk7Ci0KLSAgICAgICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVF
bmFibGVkKCkpKSB7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhBZENsaWNrQXR0
cmlidXRpb24sICJDb252ZXJ0ZWQgYSBzdG9yZWQgYWQgY2xpY2sgd2l0aCBjb252ZXJzaW9uIGRh
dGE6ICV7cHVibGljfXUgYW5kIHByaW9yaXR5OiAle3B1YmxpY311LiIsIGNvbnZlcnNpb25EYXRh
LCBjb252ZXJzaW9uUHJpb3JpdHkpOwotICAgICAgICAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3Mt
PmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpBZENs
aWNrQXR0cmlidXRpb24sIE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZygiW0FkIENsaWNr
IEF0dHJpYnV0aW9uXSBDb252ZXJ0ZWQgYSBzdG9yZWQgYWQgY2xpY2sgd2l0aCBjb252ZXJzaW9u
IGRhdGE6ICciX3MsIGNvbnZlcnNpb25EYXRhLCAiJyBhbmQgcHJpb3JpdHk6ICciX3MsIGNvbnZl
cnNpb25Qcmlvcml0eSwgIicuIl9zKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAg
ICAgICBpZiAocHJldmlvdXNseUNvbnZlcnRlZEF0dHJpYnV0aW9uSXRlciA9PSBtX2NvbnZlcnRl
ZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcC5lbmQoKSkKLSAgICAgICAgICAgIG1fY29udmVydGVkQWRD
bGlja0F0dHJpYnV0aW9uTWFwLmFkZChwYWlyLCBXVEZNb3ZlKHByZXZpb3VzbHlVbmNvbnZlcnRl
ZEF0dHJpYnV0aW9uKSk7Ci0gICAgICAgIGVsc2UgaWYgKHByZXZpb3VzbHlVbmNvbnZlcnRlZEF0
dHJpYnV0aW9uLmhhc0hpZ2hlclByaW9yaXR5VGhhbihwcmV2aW91c2x5Q29udmVydGVkQXR0cmli
dXRpb25JdGVyLT52YWx1ZSkpIHsKLSAgICAgICAgICAgIC8vIElmIHRoZSBuZXdseSBjb252ZXJ0
ZWQgYXR0cmlidXRpb24gaGFzIGhpZ2hlciBwcmlvcml0eSwgcmVwbGFjZSB0aGUgb2xkIG9uZS4K
LSAgICAgICAgICAgIG1fY29udmVydGVkQWRDbGlja0F0dHJpYnV0aW9uTWFwLnNldChwYWlyLCBX
VEZNb3ZlKHByZXZpb3VzbHlVbmNvbnZlcnRlZEF0dHJpYnV0aW9uKSk7Ci0KLSAgICAgICAgICAg
IGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7Ci0gICAgICAgICAgICAgICAgUkVM
RUFTRV9MT0dfSU5GTyhBZENsaWNrQXR0cmlidXRpb24sICJSZXBsYWNlZCBhIHByZXZpb3VzbHkg
Y29udmVydGVkIGFkIGNsaWNrIHdpdGggYSBuZXcgb25lIHdpdGggY29udmVyc2lvbiBkYXRhOiAl
e3B1YmxpY311IGFuZCBwcmlvcml0eTogJXtwdWJsaWN9dSBiZWNhdXNlIGl0IGhhZCBoaWdoZXIg
cHJpb3JpdHkuIiwgY29udmVyc2lvbkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0eSk7Ci0gICAgICAg
ICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNz
aW9uSUQsIE1lc3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbiwgTWVzc2FnZUxldmVsOjpJ
bmZvLCBtYWtlU3RyaW5nKCJbQWQgQ2xpY2sgQXR0cmlidXRpb25dIFJlcGxhY2VkIGEgcHJldmlv
dXNseSBjb252ZXJ0ZWQgYWQgY2xpY2sgd2l0aCBhIG5ldyBvbmUgd2l0aCBjb252ZXJzaW9uIGRh
dGE6ICciX3MsIGNvbnZlcnNpb25EYXRhLCAiJyBhbmQgcHJpb3JpdHk6ICciX3MsIGNvbnZlcnNp
b25Qcmlvcml0eSwgIicgYmVjYXVzZSBpdCBoYWQgaGlnaGVyIHByaW9yaXR5LiJfcykpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChwcmV2aW91c2x5Q29udmVydGVk
QXR0cmlidXRpb25JdGVyICE9IG1fY29udmVydGVkQWRDbGlja0F0dHJpYnV0aW9uTWFwLmVuZCgp
KSB7Ci0gICAgICAgIC8vIElmIHdlIGhhdmUgbm8gbmV3bHkgY29udmVydGVkIGF0dHJpYnV0aW9u
LCByZS1jb252ZXJ0IHRoZSBvbGQgb25lIHRvIHJlc3BlY3QgdGhlIG5ldyBwcmlvcml0eS4KLSAg
ICAgICAgaWYgKGF1dG8gb3B0aW9uYWxTZWNvbmRzVW50aWxTZW5kID0gcHJldmlvdXNseUNvbnZl
cnRlZEF0dHJpYnV0aW9uSXRlci0+dmFsdWUuY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2Vu
ZChXVEZNb3ZlKGNvbnZlcnNpb24pKSkgewotICAgICAgICAgICAgc2Vjb25kc1VudGlsU2VuZCA9
ICpvcHRpb25hbFNlY29uZHNVbnRpbFNlbmQ7Ci0gICAgICAgICAgICBBU1NFUlQoc2Vjb25kc1Vu
dGlsU2VuZCAhPSBTZWNvbmRzOjppbmZpbml0eSgpKTsKLQotICAgICAgICAgICAgaWYgKFVOTElL
RUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19J
TkZPKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgIlJlLWNvbnZlcnRlZCBhbiBhZCBjbGljayB3aXRoIGEg
bmV3IG9uZSB3aXRoIGNvbnZlcnNpb24gZGF0YTogJXtwdWJsaWN9dSBhbmQgcHJpb3JpdHk6ICV7
cHVibGljfXUgYmVjYXVzZSBpdCBoYWQgaGlnaGVyIHByaW9yaXR5LiIsIGNvbnZlcnNpb25EYXRh
LCBjb252ZXJzaW9uUHJpb3JpdHkpOwotICAgICAgICAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3Mt
PmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpBZENs
aWNrQXR0cmlidXRpb24sIE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZygiW0FkIENsaWNr
IEF0dHJpYnV0aW9uXSBSZS1jb252ZXJ0ZWQgYW4gYWQgY2xpY2sgd2l0aCBhIG5ldyBvbmUgd2l0
aCBjb252ZXJzaW9uIGRhdGE6ICciX3MsIGNvbnZlcnNpb25EYXRhLCAiJyBhbmQgcHJpb3JpdHk6
ICciX3MsIGNvbnZlcnNpb25Qcmlvcml0eSwgIicnIGJlY2F1c2UgaXQgaGFkIGhpZ2hlciBwcmlv
cml0eS4iX3MpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChz
ZWNvbmRzVW50aWxTZW5kID09IFNlY29uZHM6OmluZmluaXR5KCkpCi0gICAgICAgIHJldHVybjsK
LSAgICAKLSAgICBpZiAobV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVyLmlzQWN0
aXZlKCkgJiYgbV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVyLm5leHRGaXJlSW50
ZXJ2YWwoKSA8IHNlY29uZHNVbnRpbFNlbmQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChV
TkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lORk8o
QWRDbGlja0F0dHJpYnV0aW9uLCAiU2V0dGluZyB0aW1lciBmb3IgZmlyaW5nIGNvbnZlcnNpb24g
cmVxdWVzdHMgdG8gdGhlIGRlYnVnIG1vZGUgdGltZW91dCBvZiAle3B1YmxpY31mIHNlY29uZHMg
d2hlcmUgdGhlIHJlZ3VsYXIgdGltZW91dCB3b3VsZCBoYXZlIGJlZW4gJXtwdWJsaWN9ZiBzZWNv
bmRzLiIsIGRlYnVnTW9kZVNlY29uZHNVbnRpbFNlbmQuc2Vjb25kcygpLCBzZWNvbmRzVW50aWxT
ZW5kLnNlY29uZHMoKSk7Ci0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNv
bGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpBZENsaWNrQXR0cmlidXRpb24s
IE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZygiW0FkIENsaWNrIEF0dHJpYnV0aW9uXSBT
ZXR0aW5nIHRpbWVyIGZvciBmaXJpbmcgY29udmVyc2lvbiByZXF1ZXN0cyB0byB0aGUgZGVidWcg
bW9kZSB0aW1lb3V0IG9mICJfcywgZGVidWdNb2RlU2Vjb25kc1VudGlsU2VuZC5zZWNvbmRzKCks
ICIgc2Vjb25kcyB3aGVyZSB0aGUgcmVndWxhciB0aW1lb3V0IHdvdWxkIGhhdmUgYmVlbiAiX3Ms
IHNlY29uZHNVbnRpbFNlbmQuc2Vjb25kcygpLCAiIHNlY29uZHMuIl9zKSk7Ci0gICAgICAgIHNl
Y29uZHNVbnRpbFNlbmQgPSBkZWJ1Z01vZGVTZWNvbmRzVW50aWxTZW5kOwotICAgIH0KLQotICAg
IHN0YXJ0VGltZXIoc2Vjb25kc1VudGlsU2VuZCk7Ci19Ci0KLXZvaWQgQWRDbGlja0F0dHJpYnV0
aW9uTWFuYWdlcjo6ZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnN0IEFkQ2xpY2tBdHRyaWJ1dGlv
biYgYXR0cmlidXRpb24pCi17Ci0gICAgYXV0byBjb252ZXJzaW9uVVJMID0gbV9jb252ZXJzaW9u
QmFzZVVSTEZvclRlc3RpbmcgPyAqbV9jb252ZXJzaW9uQmFzZVVSTEZvclRlc3RpbmcgOiBhdHRy
aWJ1dGlvbi5yZXBvcnRVUkwoKTsKLSAgICBpZiAoY29udmVyc2lvblVSTC5pc0VtcHR5KCkgfHwg
IWNvbnZlcnNpb25VUkwuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCB7IFdURk1vdmUoY29udmVyc2lvblVSTCkgfTsKLSAgICAKLSAgICBy
ZXF1ZXN0LnNldEhUVFBNZXRob2QoIlBPU1QiX3MpOwotICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRl
ckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDYWNoZUNvbnRyb2wsIFdlYkNvcmU6OkhUVFBIZWFkZXJW
YWx1ZXM6Om1heEFnZTAoKSk7Ci0KLSAgICByZXF1ZXN0LnNldEhUVFBDb250ZW50VHlwZShXZWJD
b3JlOjpIVFRQSGVhZGVyVmFsdWVzOjphcHBsaWNhdGlvbkpTT05Db250ZW50VHlwZSgpKTsKLSAg
ICByZXF1ZXN0LnNldEhUVFBCb2R5KFdlYkNvcmU6OkZvcm1EYXRhOjpjcmVhdGUoYXR0cmlidXRp
b24uanNvbigpLT50b0pTT05TdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7Ci0KLSAgICBGZXRjaE9w
dGlvbnMgb3B0aW9uczsKLSAgICBvcHRpb25zLmNyZWRlbnRpYWxzID0gRmV0Y2hPcHRpb25zOjpD
cmVkZW50aWFsczo6T21pdDsKLSAgICBvcHRpb25zLnJlZGlyZWN0ID0gRmV0Y2hPcHRpb25zOjpS
ZWRpcmVjdDo6RXJyb3I7Ci0KLSAgICBzdGF0aWMgdWludDY0X3QgaWRlbnRpZmllciA9IDA7Ci0g
ICAgCi0gICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnM7Ci0g
ICAgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllciA9ICsraWRlbnRpZmllcjsKLSAgICBsb2FkUGFy
YW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKLSAgICBsb2FkUGFyYW1ldGVycy5wYXJlbnRQSUQg
PSBwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKLSAgICBsb2FkUGFyYW1ldGVycy5zdG9yZWRD
cmVkZW50aWFsc1BvbGljeSA9IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpFcGhlbWVyYWxTdGF0
ZWxlc3M7Ci0gICAgbG9hZFBhcmFtZXRlcnMub3B0aW9ucyA9IG9wdGlvbnM7Ci0gICAgbG9hZFBh
cmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCA9IHRydWU7
Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkUmVzdHJpY3RIVFRQUmVzcG9uc2VBY2Nlc3MgPSBm
YWxzZTsKLQotICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7Ci0gICAgICAg
IFJFTEVBU0VfTE9HX0lORk8oQWRDbGlja0F0dHJpYnV0aW9uLCAiQWJvdXQgdG8gZmlyZSBhbiBh
dHRyaWJ1dGlvbiByZXF1ZXN0IGZvciBhIGNvbnZlcnNpb24uIik7Ci0gICAgICAgIG1fbmV0d29y
a1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291
cmNlOjpBZENsaWNrQXR0cmlidXRpb24sIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJbQWQgQ2xpY2sg
QXR0cmlidXRpb25dIEFib3V0IHRvIGZpcmUgYW4gYXR0cmlidXRpb24gcmVxdWVzdCBmb3IgYSBj
b252ZXJzaW9uLiJfcyk7Ci0gICAgfQotCi0gICAgbV9waW5nTG9hZEZ1bmN0aW9uKFdURk1vdmUo
bG9hZFBhcmFtZXRlcnMpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkgewotICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgIGlmIChVTkxJS0VMWSh3ZWFrVGhpcy0+ZGVidWdNb2RlRW5hYmxlZCgp
KSkgewotICAgICAgICAgICAgaWYgKCFlcnJvci5pc051bGwoKSkgewotI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKEFkQ2xpY2tBdHRyaWJ1dGlv
biwgIlJlY2VpdmVkIGVycm9yOiAnJXtwdWJsaWN9cycgZm9yIGFkIGNsaWNrIGF0dHJpYnV0aW9u
IHJlcXVlc3QuIiwgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKTsK
LSNlbHNlCi0gICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoQWRDbGlja0F0dHJpYnV0
aW9uLCAiUmVjZWl2ZWQgZXJyb3I6ICclcycgZm9yIGFkIGNsaWNrIGF0dHJpYnV0aW9uIHJlcXVl
c3QuIiwgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKTsKLSNlbmRp
ZgotICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5tX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RD
b25zb2xlTWVzc2FnZSh3ZWFrVGhpcy0+bV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OkFkQ2xp
Y2tBdHRyaWJ1dGlvbiwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWFrZVN0cmluZygiW0FkIENsaWNr
IEF0dHJpYnV0aW9uXSBSZWNlaXZlZCBlcnJvcjogJyJfcywgZXJyb3IubG9jYWxpemVkRGVzY3Jp
cHRpb24oKSwgIicgZm9yIGFkIGNsaWNrIGF0dHJpYnV0aW9uIHJlcXVlc3QuIl9zKSk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9KTsKLX0KLQotdm9pZCBBZENsaWNrQXR0cmlidXRp
b25NYW5hZ2VyOjpmaXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0cygpCi17Ci0gICAgYXV0byBu
ZXh0VGltZVRvRmlyZSA9IFNlY29uZHM6OmluZmluaXR5KCk7Ci0gICAgZm9yIChhdXRvJiBhdHRy
aWJ1dGlvbiA6IG1fY29udmVydGVkQWRDbGlja0F0dHJpYnV0aW9uTWFwLnZhbHVlcygpKSB7Ci0g
ICAgICAgIGlmIChhdHRyaWJ1dGlvbi53YXNDb252ZXJzaW9uU2VudCgpKSB7Ci0gICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9
Ci0gICAgICAgIGF1dG8gZWFybGllc3RUaW1lVG9TZW5kID0gYXR0cmlidXRpb24uZWFybGllc3RU
aW1lVG9TZW5kKCk7Ci0gICAgICAgIGlmICghZWFybGllc3RUaW1lVG9TZW5kKSB7Ci0gICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICB9Ci0KLSAgICAgICAgYXV0byBub3cgPSBXYWxsVGltZTo6bm93KCk7Ci0gICAgICAgIGlmICgq
ZWFybGllc3RUaW1lVG9TZW5kIDw9IG5vdyB8fCBtX2lzUnVubmluZ1Rlc3QgfHwgZGVidWdNb2Rl
RW5hYmxlZCgpKSB7Ci0gICAgICAgICAgICBmaXJlQ29udmVyc2lvblJlcXVlc3QoYXR0cmlidXRp
b24pOwotICAgICAgICAgICAgYXR0cmlidXRpb24ubWFya0NvbnZlcnNpb25Bc1NlbnQoKTsKLSAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgYXV0byBzZWNvbmRzID0g
KmVhcmxpZXN0VGltZVRvU2VuZCAtIG5vdzsKLSAgICAgICAgbmV4dFRpbWVUb0ZpcmUgPSBzdGQ6
Om1pbihuZXh0VGltZVRvRmlyZSwgc2Vjb25kcyk7Ci0gICAgfQotCi0gICAgbV9jb252ZXJ0ZWRB
ZENsaWNrQXR0cmlidXRpb25NYXAucmVtb3ZlSWYoW10oYXV0byYga2V5QW5kVmFsdWUpIHsKLSAg
ICAgICAgcmV0dXJuIGtleUFuZFZhbHVlLnZhbHVlLndhc0NvbnZlcnNpb25TZW50KCk7Ci0gICAg
fSk7Ci0KLSAgICBpZiAobmV4dFRpbWVUb0ZpcmUgPCBTZWNvbmRzOjppbmZpbml0eSgpKQotICAg
ICAgICBzdGFydFRpbWVyKG5leHRUaW1lVG9GaXJlKTsKLX0KLQotdm9pZCBBZENsaWNrQXR0cmli
dXRpb25NYW5hZ2VyOjpjbGVhcigpCi17Ci0gICAgbV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1
ZXN0c1RpbWVyLnN0b3AoKTsKLSAgICBtX3VuY29udmVydGVkQWRDbGlja0F0dHJpYnV0aW9uTWFw
LmNsZWFyKCk7Ci0gICAgbV9jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25NYXAuY2xlYXIoKTsK
LX0KLQotdm9pZCBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyOjpjbGVhckZvclJlZ2lzdHJhYmxl
RG9tYWluKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pCi17Ci0gICAgbV91bmNvbnZl
cnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcC5yZW1vdmVJZihbJmRvbWFpbl0oYXV0byYga2V5QW5k
VmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIGtleUFuZFZhbHVlLmtleS5maXJzdC5yZWdpc3RyYWJs
ZURvbWFpbiA9PSBkb21haW4gfHwga2V5QW5kVmFsdWUua2V5LnNlY29uZC5yZWdpc3RyYWJsZURv
bWFpbiA9PSBkb21haW47Ci0gICAgfSk7Ci0KLSAgICBtX2NvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1
dGlvbk1hcC5yZW1vdmVJZihbJmRvbWFpbl0oYXV0byYga2V5QW5kVmFsdWUpIHsKLSAgICAgICAg
cmV0dXJuIGtleUFuZFZhbHVlLmtleS5maXJzdC5yZWdpc3RyYWJsZURvbWFpbiA9PSBkb21haW4g
fHwga2V5QW5kVmFsdWUua2V5LnNlY29uZC5yZWdpc3RyYWJsZURvbWFpbiA9PSBkb21haW47Ci0g
ICAgfSk7Ci19Ci0KLXZvaWQgQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlcjo6Y2xlYXJFeHBpcmVk
KCkKLXsKLSAgICBtX3VuY29udmVydGVkQWRDbGlja0F0dHJpYnV0aW9uTWFwLnJlbW92ZUlmKFtd
KGF1dG8mIGtleUFuZFZhbHVlKSB7Ci0gICAgICAgIHJldHVybiBrZXlBbmRWYWx1ZS52YWx1ZS5o
YXNFeHBpcmVkKCk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdl
cjo6dG9TdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKSBjb25zdAotewotICAgIGlmIChtX3VuY29udmVydGVkQWRDbGlja0F0dHJpYnV0aW9u
TWFwLmlzRW1wdHkoKSAmJiBtX2NvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcC5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigiXG5ObyBzdG9yZWQgQWQgQ2xp
Y2sgQXR0cmlidXRpb24gZGF0YS5cbiJfcyk7Ci0KLSAgICB1bnNpZ25lZCB1bmNvbnZlcnRlZEF0
dHJpYnV0aW9uTnVtYmVyID0gMDsKLSAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgZm9y
IChhdXRvJiBhdHRyaWJ1dGlvbiA6IG1fdW5jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25NYXAu
dmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKCF1bmNvbnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyKQot
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJVbmNvbnZlcnRlZCBBZCBDbGljayBB
dHRyaWJ1dGlvbnM6XG4iKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgYnVpbGRlci5hcHBl
bmQoJ1xuJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiV2ViQ29yZTo6QWRDbGlj
a0F0dHJpYnV0aW9uICIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcigrK3VuY29udmVy
dGVkQXR0cmlidXRpb25OdW1iZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmQoYXR0cmlidXRpb24udG9TdHJpbmcoKSk7Ci19Ci0KLSAgICB1
bnNpZ25lZCBjb252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlciA9IDA7Ci0gICAgZm9yIChhdXRvJiBh
dHRyaWJ1dGlvbiA6IG1fY29udmVydGVkQWRDbGlja0F0dHJpYnV0aW9uTWFwLnZhbHVlcygpKSB7
Ci0gICAgICAgIGlmICh1bmNvbnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyKQotICAgICAgICAgICAg
YnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGlmICghY29udmVydGVkQXR0cmlidXRpb25O
dW1iZXIpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIkNvbnZlcnRlZCBBZCBD
bGljayBBdHRyaWJ1dGlvbnM6XG4iKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiV2ViQ29yZTo6
QWRDbGlja0F0dHJpYnV0aW9uICIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcigrK2Nv
bnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyICsgdW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlcik7
Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChh
dHRyaWJ1dGlvbi50b1N0cmluZygpKTsKLSAgICB9Ci0KLSAgICBjb21wbGV0aW9uSGFuZGxlcihi
dWlsZGVyLnRvU3RyaW5nKCkpOwotfQotCi12b2lkIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXI6
OnNldENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTCYmIHRlc3RVUkwpCi17Ci0gICAgaWYgKHRl
c3RVUkwuaXNFbXB0eSgpKQotICAgICAgICBtX2NvbnZlcnNpb25CYXNlVVJMRm9yVGVzdGluZyA9
IHsgfTsKLSAgICBlbHNlCi0gICAgICAgIG1fY29udmVyc2lvbkJhc2VVUkxGb3JUZXN0aW5nID0g
V1RGTW92ZSh0ZXN0VVJMKTsKLX0KLQotdm9pZCBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyOjpt
YXJrQWxsVW5jb252ZXJ0ZWRBc0V4cGlyZWRGb3JUZXN0aW5nKCkKLXsKLSAgICBmb3IgKGF1dG8m
IGF0dHJpYnV0aW9uIDogbV91bmNvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcC52YWx1ZXMo
KSkKLSAgICAgICAgYXR0cmlidXRpb24ubWFya0FzRXhwaXJlZCgpOwotfQotCi1ib29sIEFkQ2xp
Y2tBdHRyaWJ1dGlvbk1hbmFnZXI6OmRlYnVnTW9kZUVuYWJsZWQoKSBjb25zdAotewotICAgIHJl
dHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmFkQ2xpY2tBdHRy
aWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQoKSAmJiAhbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0FkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4NzRiMGE1ZjFmMjQ1N2RmOTViMjRmZWRiNWU1NjFiYTE2NzZiMDMy
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5oCisrKyAvZGV2
L251bGwKQEAgLTEsOTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5j
bHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKLSNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVycy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQWRDbGlja0F0dHJpYnV0aW9uLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VFcnJvci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KLSNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+Ci0jaW5j
bHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
LSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdl
ciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyPiB7Ci0g
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0KLSAgICB1c2luZyBSZWdpc3Ry
YWJsZURvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwotICAgIHVzaW5nIEFkQ2xp
Y2tBdHRyaWJ1dGlvbiA9IFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjsKLSAgICB1c2luZyBT
b3VyY2UgPSBXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OlNvdXJjZTsKLSAgICB1c2luZyBE
ZXN0aW5hdGlvbiA9IFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb247Ci0g
ICAgdXNpbmcgQ29udmVyc2lvbiA9IFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVy
c2lvbjsKLQotICAgIGV4cGxpY2l0IEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIoTmV0d29ya1By
b2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCi0gICAgICAg
IDogbV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVyKCp0aGlzLCAmQWRDbGlja0F0
dHJpYnV0aW9uTWFuYWdlcjo6ZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHMpCi0gICAgICAg
ICwgbV9waW5nTG9hZEZ1bmN0aW9uKFtdKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYg
cGFyYW1zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpIHsKLSAgICAgICAgICAgIFVOVVNFRF9QQVJBTShwYXJhbXMpOwotICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6UmVzb3VyY2VFcnJvcigpLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlKCkpOwotICAgICAgICB9KQotICAgICAgICAsIG1fbmV0d29ya1Byb2Nlc3MobmV0
d29ya1Byb2Nlc3MpCi0gICAgICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQotICAgIHsKLSAg
ICB9Ci0KLSAgICB2b2lkIHN0b3JlVW5jb252ZXJ0ZWQoQWRDbGlja0F0dHJpYnV0aW9uJiYpOwot
ICAgIHZvaWQgaGFuZGxlQ29udmVyc2lvbihDb252ZXJzaW9uJiYsIGNvbnN0IFVSTCYgcmVxdWVz
dFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QpOwot
ICAgIHZvaWQgY2xlYXIoKTsKLSAgICB2b2lkIGNsZWFyRm9yUmVnaXN0cmFibGVEb21haW4oY29u
c3QgUmVnaXN0cmFibGVEb21haW4mKTsKLSAgICB2b2lkIHRvU3RyaW5nKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RyaW5nKT4mJikgY29uc3Q7Ci0gICAgdm9pZCBzZXRQaW5nTG9hZEZ1bmN0aW9u
KEZ1bmN0aW9uPHZvaWQoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYmKT4mJiBwaW5nTG9hZEZ1bmN0aW9uKSB7IG1fcGluZ0xv
YWRGdW5jdGlvbiA9IFdURk1vdmUocGluZ0xvYWRGdW5jdGlvbik7IH0KLSAgICB2b2lkIHNldE92
ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpIHsgbV9pc1J1bm5pbmdUZXN0ID0gdmFs
dWU7IH0KLSAgICB2b2lkIHNldENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTCYmKTsKLSAgICB2
b2lkIG1hcmtBbGxVbmNvbnZlcnRlZEFzRXhwaXJlZEZvclRlc3RpbmcoKTsKLQotcHJpdmF0ZToK
LSAgICB2b2lkIHN0YXJ0VGltZXIoU2Vjb25kcyk7Ci0gICAgdm9pZCBjb252ZXJ0KGNvbnN0IFNv
dXJjZSYsIGNvbnN0IERlc3RpbmF0aW9uJiwgQ29udmVyc2lvbiYmKTsKLSAgICB2b2lkIGZpcmVD
b252ZXJzaW9uUmVxdWVzdChjb25zdCBBZENsaWNrQXR0cmlidXRpb24mKTsKLSAgICB2b2lkIGZp
cmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzKCk7Ci0gICAgdm9pZCBjbGVhckV4cGlyZWQoKTsK
LSAgICBib29sIGRlYnVnTW9kZUVuYWJsZWQoKSBjb25zdDsKLQotICAgIEhhc2hNYXA8c3RkOjpw
YWlyPFNvdXJjZSwgRGVzdGluYXRpb24+LCBBZENsaWNrQXR0cmlidXRpb24+IG1fdW5jb252ZXJ0
ZWRBZENsaWNrQXR0cmlidXRpb25NYXA7Ci0gICAgSGFzaE1hcDxzdGQ6OnBhaXI8U291cmNlLCBE
ZXN0aW5hdGlvbj4sIEFkQ2xpY2tBdHRyaWJ1dGlvbj4gbV9jb252ZXJ0ZWRBZENsaWNrQXR0cmli
dXRpb25NYXA7Ci0gICAgV2ViQ29yZTo6VGltZXIgbV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1
ZXN0c1RpbWVyOwotICAgIEZ1bmN0aW9uPHZvaWQoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYmKT4gbV9waW5nTG9hZEZ1bmN0
aW9uOwotICAgIGJvb2wgbV9pc1J1bm5pbmdUZXN0IHsgZmFsc2UgfTsKLSAgICBPcHRpb25hbDxV
Ukw+IG1fY29udmVyc2lvbkJhc2VVUkxGb3JUZXN0aW5nOwotICAgIFJlZjxOZXR3b3JrUHJvY2Vz
cz4gbV9uZXR3b3JrUHJvY2VzczsKLSAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKLX07
Ci0gICAgCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMGJiODU3MzA1Mzg0Y2IzNWQ3OGE2NGRh
Yzk0MzRkN2ZjODI0ZDlmNS4uOGE5ZDJmMzkzOWU3MTg2YjgxZThhN2VmZDRiYmViNTBhNjNiMmY1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKQEAgLTMzMCw3ICszMzAsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0
d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJgogCiAgICAgc2V0
Q2FjaGVNb2RlbChwYXJhbWV0ZXJzLmNhY2hlTW9kZWwpOwogCi0gICAgc2V0QWRDbGlja0F0dHJp
YnV0aW9uRGVidWdNb2RlKHBhcmFtZXRlcnMuZW5hYmxlQWRDbGlja0F0dHJpYnV0aW9uRGVidWdN
b2RlKTsKKyAgICBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZShwYXJhbWV0ZXJz
LmVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKTsKIAogICAgIGZvciAoYXV0
byYgc3VwcGxlbWVudCA6IG1fc3VwcGxlbWVudHMudmFsdWVzKCkpCiAgICAgICAgIHN1cHBsZW1l
bnQtPmluaXRpYWxpemUocGFyYW1ldGVycyk7CkBAIC0xMzEzLDE4ICsxMzEzLDE4IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OnNldFRoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3RpbmcoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklECiB9CiAjZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0QWRDbGlja0F0dHJpYnV0aW9uRGVi
dWdNb2RlKGJvb2wgZGVidWdNb2RlKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUoYm9vbCBkZWJ1Z01vZGUpCiB7Ci0gICAgaWYgKFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuYWRDbGlja0F0dHJpYnV0aW9uRGVi
dWdNb2RlRW5hYmxlZCgpID09IGRlYnVnTW9kZSkKKyAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVu
YWJsZWQoKSA9PSBkZWJ1Z01vZGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0QWRDbGlja0F0dHJpYnV0aW9uRGVidWdN
b2RlRW5hYmxlZChkZWJ1Z01vZGUpOworICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkKGRl
YnVnTW9kZSk7CiAKLSAgICBTdHJpbmcgbWVzc2FnZSA9IGRlYnVnTW9kZSA/ICJbQWQgQ2xpY2sg
QXR0cmlidXRpb25dIFR1cm5lZCBEZWJ1ZyBNb2RlIG9uLiJfcyA6ICJbQWQgQ2xpY2sgQXR0cmli
dXRpb25dIFR1cm5lZCBEZWJ1ZyBNb2RlIG9mZi4iX3M7CisgICAgU3RyaW5nIG1lc3NhZ2UgPSBk
ZWJ1Z01vZGUgPyAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFR1cm5lZCBEZWJ1ZyBNb2Rl
IG9uLiJfcyA6ICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gVHVybmVkIERlYnVnIE1vZGUg
b2ZmLiJfczsKICAgICBmb3IgKGF1dG8mIG5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIDog
bV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMudmFsdWVzKCkpIHsKICAgICAgICAgaWYgKG5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLT5zZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpKQogICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgIG5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5i
cm9hZGNhc3RDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpBZENsaWNrQXR0cmlidXRpb24s
IE1lc3NhZ2VMZXZlbDo6SW5mbywgbWVzc2FnZSk7CisgICAgICAgIG5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpJbmZvLCBtZXNzYWdlKTsKICAgICB9
CiB9CiAKQEAgLTE1ODMsOSArMTU4Myw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdl
YnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpCiAgICAg
aWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpEaXNrQ2FjaGUp
ICYmICFzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkKICAgICAgICAgY2xlYXJEaXNrQ2FjaGUobW9k
aWZpZWRTaW5jZSwgW2NsZWFyVGFza3NIYW5kbGVyID0gV1RGTW92ZShjbGVhclRhc2tzSGFuZGxl
cildIHsgfSk7CiAKLSAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0
YVR5cGU6OkFkQ2xpY2tBdHRyaWJ1dGlvbnMpKSB7CisgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMu
Y29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHMpKSB7CiAg
ICAgICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNl
c3Npb25JRCkpCi0gICAgICAgICAgICBuZXR3b3JrU2Vzc2lvbi0+Y2xlYXJBZENsaWNrQXR0cmli
dXRpb24oKTsKKyAgICAgICAgICAgIG5ldHdvcmtTZXNzaW9uLT5jbGVhclByaXZhdGVDbGlja01l
YXN1cmVtZW50KCk7CiAgICAgfQogCiAjaWYgSEFWRShDRk5FVFdPUktfQUxURVJOQVRJVkVfU0VS
VklDRSkKQEAgLTE2NDQsMTAgKzE2NDQsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRl
V2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW8KICAg
ICB9CiAjZW5kaWYKIAotICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVE
YXRhVHlwZTo6QWRDbGlja0F0dHJpYnV0aW9ucykpIHsKKyAgICBpZiAod2Vic2l0ZURhdGFUeXBl
cy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50cykpIHsK
ICAgICAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24o
c2Vzc2lvbklEKSkgewogICAgICAgICAgICAgZm9yIChhdXRvJiBvcmlnaW5EYXRhIDogb3JpZ2lu
RGF0YXMpCi0gICAgICAgICAgICAgICAgbmV0d29ya1Nlc3Npb24tPmNsZWFyQWRDbGlja0F0dHJp
YnV0aW9uRm9yUmVnaXN0cmFibGVEb21haW4oUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENy
ZWF0ZUZyb21Ib3N0KG9yaWdpbkRhdGEuaG9zdCkpOworICAgICAgICAgICAgICAgIG5ldHdvcmtT
ZXNzaW9uLT5jbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50Rm9yUmVnaXN0cmFibGVEb21haW4o
UmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KG9yaWdpbkRhdGEuaG9z
dCkpOwogICAgICAgICB9CiAgICAgfQogICAgIApAQCAtMjUzMiw0OCArMjUzMiw0OCBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUZsdXNoQ29va2llcyhjb25zdCBQQUw6OlNlc3Npb25J
RCYsIENvbXBsZXRpb25IYW5kbAogCiAjZW5kaWYKIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c3Rv
cmVBZENsaWNrQXR0cmlidXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpB
ZENsaWNrQXR0cmlidXRpb24mJiBhZENsaWNrQXR0cmlidXRpb24pCit2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpzdG9yZVByaXZhdGVDbGlja01lYXN1cmVtZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCkKIHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25J
RCkpCi0gICAgICAgIHNlc3Npb24tPnN0b3JlQWRDbGlja0F0dHJpYnV0aW9uKFdURk1vdmUoYWRD
bGlja0F0dHJpYnV0aW9uKSk7CisgICAgICAgIHNlc3Npb24tPnN0b3JlUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQoV1RGTW92ZShwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkpOwogfQogCi12b2lkIE5l
dHdvcmtQcm9jZXNzOjpkdW1wQWRDbGlja0F0dHJpYnV0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Np
b24oc2Vzc2lvbklEKSkKLSAgICAgICAgcmV0dXJuIHNlc3Npb24tPmR1bXBBZENsaWNrQXR0cmli
dXRpb24oV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgICAgICByZXR1cm4gc2Vzc2lv
bi0+ZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nl
c3M6OmNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3Jr
UHJvY2Vzczo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCi0gICAg
ICAgIHNlc3Npb24tPmNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKCk7CisgICAgICAgIHNlc3Npb24t
PmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKICAgICAKICAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRBZENsaWNrQXR0cmlidXRpb25P
dmVycmlkZVRpbWVyRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFs
dWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQg
TmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZv
clRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIHNl
c3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQotICAgICAgICBzZXNzaW9uLT5zZXRB
ZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyh2YWx1ZSk7CisgICAgICAg
IHNlc3Npb24tPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rp
bmcodmFsdWUpOwogICAgIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKLXZvaWQgTmV0
d29ya1Byb2Nlc3M6OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMJiYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgVVJMJiYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihz
ZXNzaW9uSUQpKQotICAgICAgICBzZXNzaW9uLT5zZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJz
aW9uVVJMRm9yVGVzdGluZyhXVEZNb3ZlKHVybCkpOworICAgICAgICBzZXNzaW9uLT5zZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdURk1vdmUodXJsKSk7
CiAgICAgCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vz
czo6bWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6bWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0Fz
RXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIHNlc3Np
b24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQotICAgICAgICBzZXNzaW9uLT5tYXJrQWRD
bGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICAgICAgc2Vzc2lvbi0+
bWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKIAogICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKaW5kZXggMWE3N2ZhYjk2MWRmMmU1ZTMwNjEyNjlmNTkyYTJjNGM4
Njk0NmY5ZC4uYmU1MjZlZmYxZThjOTFkMzZlYTg5Yjg3ZTdiNTY3OTU4YTk1NmZiMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzksNyAr
MzksNiBAQAogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgogI2lu
Y2x1ZGUgIldlYnNpdGVEYXRhLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5
cGVzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9BZENsaWNrQXR0cmlidXRpb24uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0NsaWVudE9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NTaXRlTmF2
aWdhdGlvbkRhdGFUcmFuc2Zlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQuaD4KQEAgLTQ3LDYgKzQ2LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0lEQktleURh
dGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9t
YWluLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VySWRlbnRpZmllci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+CkBAIC0yNzUsNyArMjc1LDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0VGhpcmRQYXJ0eUNOQU1FRG9tYWluRm9yVGVzdGluZyhQQUw6
OlNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICNlbmRpZgogCi0gICAgdm9pZCBzZXRBZENsaWNrQXR0cmlidXRpb25E
ZWJ1Z01vZGUoYm9vbCk7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVn
TW9kZShib29sKTsKIAogICAgIHVzaW5nIENhY2hlU3RvcmFnZVJvb3RQYXRoQ2FsbGJhY2sgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmKT47CiAgICAgdm9pZCBjYWNoZVN0b3JhZ2VS
b290UGF0aChQQUw6OlNlc3Npb25JRCwgQ2FjaGVTdG9yYWdlUm9vdFBhdGhDYWxsYmFjayYmKTsK
QEAgLTMzMiwxMiArMzMyLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUNhY2hlRW5naW5l
KGNvbnN0IFBBTDo6U2Vzc2lvbklEJik7CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZVNwYWNlKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCB1aW50NjRfdCBxdW90
YSwgdWludDY0X3QgY3VycmVudFNpemUsIHVpbnQ2NF90IHNwYWNlUmVxdWlyZWQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8dWludDY0X3Q+KT4mJik7CiAKLSAgICB2b2lkIHN0b3Jl
QWRDbGlja0F0dHJpYnV0aW9uKFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpBZENsaWNrQXR0cmli
dXRpb24mJik7Ci0gICAgdm9pZCBkdW1wQWRDbGlja0F0dHJpYnV0aW9uKFBBTDo6U2Vzc2lvbklE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpOwotICAgIHZvaWQgY2xlYXJBZENs
aWNrQXR0cmlidXRpb24oUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7Ci0gICAgdm9pZCBzZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGlu
ZyhQQUw6OlNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKLSAgICB2b2lkIHNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklELCBVUkwmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAg
ICB2b2lkIG1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNl
c3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHN0b3JlUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50JiYpOworICAgIHZvaWQgZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KFBB
TDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpOworICAgIHZv
aWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBVUkwmJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogCiAgICAgUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VRdW90YU1hbmFnZXI+
IHN0b3JhZ2VRdW90YU1hbmFnZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAyMGZmYmNjM2ZjZGZhZGVhM2MwYTM0OTZj
NTI4MjI0ODRmZmRhYTE1Li4wZjAxOTA1NmU1YjU3ZjUzMzRiOGNlNzM4MjZlMmZhMDU2ODg5M2Jm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MubWVzc2FnZXMuaW4KQEAgLTE0OCw3ICsxNDgsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3Jr
UHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0VGhpcmRQYXJ0eUNOQU1FRG9tYWluRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIGRvbWFpbikgLT4gKCkgQXN5bmMKICNlbmRpZgogCi0gICAgU2V0QWRDbGlja0F0dHJpYnV0
aW9uRGVidWdNb2RlKGJvb2wgZGVidWdNb2RlKQorICAgIFNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50RGVidWdNb2RlKGJvb2wgZGVidWdNb2RlKQogCiAgICAgU2V0U2Vzc2lvbklzQ29udHJvbGxl
ZEJ5QXV0b21hdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgY29udHJvbGxlZCk7
CiAKQEAgLTE2MSwxMiArMTYxLDEyIEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2Fj
eVJlY2VpdmVyIHsKIAogICAgIFN5bmNMb2NhbFN0b3JhZ2UoKSAtPiAoKSBBc3luYwogCi0gICAg
U3RvcmVBZENsaWNrQXR0cmlidXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3Jl
OjpBZENsaWNrQXR0cmlidXRpb24gYWRDbGlja0F0dHJpYnV0aW9uKQotICAgIER1bXBBZENsaWNr
QXR0cmlidXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoU3RyaW5nIGFkQ2xpY2tB
dHRyaWJ1dGlvblN0YXRlKSBBc3luYwotICAgIENsZWFyQWRDbGlja0F0dHJpYnV0aW9uKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKLSAgICBTZXRBZENsaWNrQXR0cmlidXRp
b25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wg
dmFsdWUpIC0+ICgpIEFzeW5jCi0gICAgU2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVS
TEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgdXJsKSAtPiAoKSBBc3lu
YwotICAgIE1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCisgICAgU3RvcmVQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50IHByaXZhdGVDbGlja01lYXN1cmVtZW50KQorICAgIER1bXBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChTdHJpbmcgcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRTdGF0ZSkgQXN5bmMKKyAgICBDbGVhclByaXZhdGVDbGlja01lYXN1cmVt
ZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKKyAgICBTZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgYm9vbCB2YWx1ZSkgLT4gKCkgQXN5bmMKKyAgICBTZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
VVJMIHVybCkgLT4gKCkgQXN5bmMKKyAgICBNYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNF
eHBpcmVkRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCiAg
ICAgR2V0TG9jYWxTdG9yYWdlT3JpZ2luRGV0YWlscyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQp
IC0+IChWZWN0b3I8V2ViS2l0OjpMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI6Ok9yaWdpbkRl
dGFpbHM+IGRldGFpbHMpIEFzeW5jCiAKICAgICBTZXRTZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0
Rm9yVGVzdGluZyhTZWNvbmRzIHNlY29uZHMpIC0+ICgpIFN5bmNocm9ub3VzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDQ5ZmE4ODBhODk2NTEwODRhNTgzOTkxZDdhMTBm
ZWU3MGI1NTIxZjAuLmZkYTgxNTBkMDkxZjE1MDA0OTJlZGRmOTVkYTU2OGEzNWEyMzFkMTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC02NSw3ICs2NSw3IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzTG9jYWw7
CiAgICAgZW5jb2RlciA8PCB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzTm9BY2Nlc3M7CiAKLSAgICBl
bmNvZGVyIDw8IGVuYWJsZUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZTsKKyAgICBlbmNvZGVy
IDw8IGVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlOwogfQogCiBib29sIE5l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyLCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcmVzdWx0KQpAQCAtMTI1LDcg
KzEyNSw3IEBAIGJvb2wgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJ
UEM6OkRlY29kZXImIGRlY29kZXIsIE5ldHdvcmtQcm9jCiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc05vQWNjZXNzKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuZW5hYmxlQWRDbGlja0F0
dHJpYnV0aW9uRGVidWdNb2RlKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5lbmFi
bGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZSkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4
IDc4MjlhMmRjMWMyYjJhOGVmYzJkYTkyZWEyYWY0ZDRmODM2MjE3NGMuLmIwNGZjNGMxZDZmYTM5
OTE3MDBjZWVkYmIwNDk1YWMzNGJkYmVhZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKQEAgLTc5LDcgKzc5LDcgQEAgc3RydWN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzIHsKICAgICBWZWN0b3I8U3RyaW5nPiB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzTG9jYWw7CiAg
ICAgVmVjdG9yPFN0cmluZz4gdXJsU2NoZW1lc1JlZ2lzdGVyZWRBc05vQWNjZXNzOwogCi0gICAg
Ym9vbCBlbmFibGVBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUgeyBmYWxzZSB9OworICAgIGJv
b2wgZW5hYmxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUgeyBmYWxzZSB9OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMjlhZWZmZmQwYjJiODBl
Nzc5YjQxNjkxYTAwODA0ZTZiMTI5ZDNhOC4uMzVlOTk5NGQ3NGQ1MTBhYTRlMTQ1ODQ4YzcyZDJi
NTg1ZTBiYzBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtODE0LDEyICs4MTQsMTIgQEAgdm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwKICAgICArK21fcmVkaXJlY3RDb3VudDsKICAgICBtX3JlZGlyZWN0UmVz
cG9uc2UgPSByZWRpcmVjdFJlc3BvbnNlOwogCi0gICAgT3B0aW9uYWw8QWRDbGlja0F0dHJpYnV0
aW9uOjpDb252ZXJzaW9uPiBhZENsaWNrQ29udmVyc2lvbjsKKyAgICBPcHRpb25hbDxQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbj4gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252
ZXJzaW9uOwogICAgIGlmICghc2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwoKSkgewotICAgICAgICBp
ZiAoYXV0byByZXN1bHQgPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVl
c3QocmVkaXJlY3RSZXF1ZXN0LnVybCgpKSkKLSAgICAgICAgICAgIGFkQ2xpY2tDb252ZXJzaW9u
ID0gcmVzdWx0LnZhbHVlKCk7CisgICAgICAgIGlmIChhdXRvIHJlc3VsdCA9IFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KHJlZGlyZWN0UmVxdWVzdC51cmwo
KSkpCisgICAgICAgICAgICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24gPSByZXN1
bHQudmFsdWUoKTsKICAgICAgICAgZWxzZSBpZiAoIXJlc3VsdC5lcnJvcigpLmlzRW1wdHkoKSkK
LSAgICAgICAgICAgIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRy
aWJ1dGlvbiwgTWVzc2FnZUxldmVsOjpFcnJvciwgcmVzdWx0LmVycm9yKCkpOworICAgICAgICAg
ICAgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIHJlc3VsdC5lcnJvcigpKTsKICAgICB9CiAKICAgICBh
dXRvIG1heEFnZUNhcCA9IHZhbGlkYXRlQ2FjaGVFbnRyeUZvck1heEFnZUNhcFZhbGlkYXRpb24o
cmVxdWVzdCwgcmVkaXJlY3RSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKQEAgLTgyNywxMiAr
ODI3LDEyIEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlZGlyZWN0ZWRS
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsCiAgICAgICAgIG1fY2FjaGUtPnN0b3Jl
UmVkaXJlY3QocmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSwgcmVkaXJlY3RSZXF1ZXN0LCBtYXhB
Z2VDYXApOwogCiAgICAgaWYgKG1fbmV0d29ya0xvYWRDaGVja2VyKSB7Ci0gICAgICAgIGlmIChh
ZENsaWNrQ29udmVyc2lvbikKKyAgICAgICAgaWYgKHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29u
dmVyc2lvbikKICAgICAgICAgICAgIG1fbmV0d29ya0xvYWRDaGVja2VyLT5lbmFibGVDb250ZW50
RXh0ZW5zaW9uc0NoZWNrKCk7CiAgICAgICAgIG1fbmV0d29ya0xvYWRDaGVja2VyLT5zdG9yZVJl
ZGlyZWN0aW9uSWZOZWVkZWQocmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CiAKICAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdDogQ2hlY2tp
bmcgcmVkaXJlY3QgdXNpbmcgTmV0d29ya0xvYWRDaGVja2VyIik7Ci0gICAgICAgIG1fbmV0d29y
a0xvYWRDaGVja2VyLT5jaGVja1JlZGlyZWN0aW9uKFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUo
cmVkaXJlY3RSZXF1ZXN0KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdGhpcywgW3Byb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhpcywgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kg
PSBtX25ldHdvcmtMb2FkQ2hlY2tlci0+c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3koKSwgYWRDbGlj
a0NvbnZlcnNpb24gPSBXVEZNb3ZlKGFkQ2xpY2tDb252ZXJzaW9uKV0oYXV0byYmIHJlc3VsdCkg
bXV0YWJsZSB7CisgICAgICAgIG1fbmV0d29ya0xvYWRDaGVja2VyLT5jaGVja1JlZGlyZWN0aW9u
KFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVkaXJlY3RSZXF1ZXN0KSwgV1RGTW92ZShyZWRp
cmVjdFJlc3BvbnNlKSwgdGhpcywgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhp
cywgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBtX25ldHdvcmtMb2FkQ2hlY2tlci0+c3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3koKSwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uID0g
V1RGTW92ZShwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24pXShhdXRvJiYgcmVzdWx0
KSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghcmVzdWx0Lmhhc192YWx1ZSgpKSB7CiAgICAg
ICAgICAgICAgICAgaWYgKHJlc3VsdC5lcnJvcigpLmlzQ2FuY2VsbGF0aW9uKCkpIHsKICAgICAg
ICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZWRpcmVjdGVk
UmVxdWVzdDogTmV0d29ya0xvYWRDaGVja2VyOjpjaGVja1JlZGlyZWN0aW9uIHJldHVybmVkIHdp
dGggYSBjYW5jZWxsYXRpb24iKTsKQEAgLTg2NSwxNiArODY1LDE2IEBAIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjp3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIG1fc2hvdWxkUmVzdGFydExv
YWQgPSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSAhPSBtX25ldHdvcmtMb2FkQ2hlY2tlci0+c3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3koKTsKLSAgICAgICAgICAgIHRoaXMtPmNvbnRpbnVlV2lsbFNl
bmRSZWRpcmVjdGVkUmVxdWVzdChXVEZNb3ZlKHJlc3VsdC0+cmVxdWVzdCksIFdURk1vdmUocmVz
dWx0LT5yZWRpcmVjdFJlcXVlc3QpLCBXVEZNb3ZlKHJlc3VsdC0+cmVkaXJlY3RSZXNwb25zZSks
IFdURk1vdmUoYWRDbGlja0NvbnZlcnNpb24pKTsKKyAgICAgICAgICAgIHRoaXMtPmNvbnRpbnVl
V2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChXVEZNb3ZlKHJlc3VsdC0+cmVxdWVzdCksIFdURk1v
dmUocmVzdWx0LT5yZWRpcmVjdFJlcXVlc3QpLCBXVEZNb3ZlKHJlc3VsdC0+cmVkaXJlY3RSZXNw
b25zZSksIFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKSk7CiAgICAg
ICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNvbnRpbnVlV2lsbFNlbmRSZWRp
cmVjdGVkUmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlZGlyZWN0UmVxdWVzdCks
IFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIFdURk1vdmUoYWRDbGlja0NvbnZlcnNpb24pKTsK
KyAgICBjb250aW51ZVdpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSwg
V1RGTW92ZShyZWRpcmVjdFJlcXVlc3QpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCBXVEZN
b3ZlKHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbikpOwogfQogCi12b2lkIE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6Y29udGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVxdWVzdCYmIHJlZGlyZWN0UmVxdWVzdCwg
UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIE9wdGlvbmFsPEFkQ2xpY2tBdHRy
aWJ1dGlvbjo6Q29udmVyc2lvbj4mJiBhZENsaWNrQ29udmVyc2lvbikKK3ZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpjb250aW51ZVdpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVkaXJlY3RSZXF1ZXN0LCBSZXNv
dXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkNvbnZlcnNpb24+JiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9u
KQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImNvbnRpbnVlV2lsbFNlbmRSZWRpcmVj
dGVkUmVxdWVzdDogKG1faXNLZXB0QWxpdmU9JWQsIGhhc0FkQ2xpY2tDb252ZXJzaW9uPSVkKSIs
IG1faXNLZXB0QWxpdmUsICEhYWRDbGlja0NvbnZlcnNpb24pOworICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoImNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdDogKG1faXNLZXB0QWxp
dmU9JWQsIGhhc0FkQ2xpY2tDb252ZXJzaW9uPSVkKSIsIG1faXNLZXB0QWxpdmUsICEhcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKTsKICAgICBBU1NFUlQoIWlzU3luY2hyb25vdXMo
KSk7CiAKICAgICBpZiAobV9pc0tlcHRBbGl2ZSkgewpAQCAtODgzLDggKzg4Myw4IEBAIHZvaWQg
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVdpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0JiYKICAgICB9CiAKICAgICBOZXR3b3JrU2Vzc2lvbiogbmV0d29ya1Nl
c3Npb24gPSBudWxscHRyOwotICAgIGlmIChhZENsaWNrQ29udmVyc2lvbiAmJiAobmV0d29ya1Nl
c3Npb24gPSBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vz
c2lvbklEKCkpKSkKLSAgICAgICAgbmV0d29ya1Nlc3Npb24tPmhhbmRsZUFkQ2xpY2tBdHRyaWJ1
dGlvbkNvbnZlcnNpb24oV1RGTW92ZSgqYWRDbGlja0NvbnZlcnNpb24pLCByZXF1ZXN0LnVybCgp
LCByZWRpcmVjdFJlcXVlc3QpOworICAgIGlmIChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZl
cnNpb24gJiYgKG5ldHdvcmtTZXNzaW9uID0gbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2Vzcygp
Lm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCgpKSkpCisgICAgICAgIG5ldHdvcmtTZXNzaW9uLT5o
YW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24oV1RGTW92ZSgqcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKSwgcmVxdWVzdC51cmwoKSwgcmVkaXJlY3RSZXF1ZXN0
KTsKIAogICAgIC8vIFdlIHNlbmQgdGhlIHJlcXVlc3QgYm9keSBzZXBhcmF0ZWx5IGJlY2F1c2Ug
dGhlIFJlc291cmNlUmVxdWVzdCBib2R5IG5vcm1hbGx5IGRvZXMgbm90IGdldCBlbmNvZGVkIHdo
ZW4gc2VudCBvdmVyIElQQywgYXMgYW4gb3B0aW1pemF0aW9uLgogICAgIC8vIEhvd2V2ZXIsIHdl
IHJlYWxseSBuZWVkIHRoZSBib2R5IGhlcmUgYmVjYXVzZSBhIHJlZGlyZWN0IGNyb3NzLXNpdGUg
bWF5IGNhdXNlIGEgcHJvY2Vzcy1zd2FwIGFuZCB0aGUgcmVxdWVzdCB0byBzdGFydCBhZ2FpbiBp
biBhIG5ldyBXZWJDb250ZW50IHByb2Nlc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCA4ZWJmMjczY2Q5ZWFmNDEy
MzIwNzg4YjM4NmEyNzhmOTE4Zjc0MGU0Li41NjE1ZmZlNzUzNDVmMjRlMjUxZWJhNmE1MDRlZjNj
MTA5NTBkYmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTMzLDkgKzMzLDkgQEAKICNpbmNsdWRlICJOZXR3b3Jr
TG9hZENsaWVudC5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlIDxX
ZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFNl
Y3VyaXR5UG9saWN5Q2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2wuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1l
ci5oPgpAQCAtMTkxLDcgKzE5MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2dDb29raWVJbmZv
cm1hdGlvbigpIGNvbnN0OwogI2VuZGlmCiAKLSAgICB2b2lkIGNvbnRpbnVlV2lsbFNlbmRSZWRp
cmVjdGVkUmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVkaXJlY3RSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYs
IE9wdGlvbmFsPFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lvbj4mJik7Cisg
ICAgdm9pZCBjb250aW51ZVdpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlZGlyZWN0UmVxdWVzdCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbj4mJik7CiAgICAgdm9pZCBkaWRGaW5pc2hXaXRoUmVk
aXJlY3RSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVkaXJlY3RSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYp
OwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Ugc2FuaXRpemVSZXNwb25zZUlmUG9zc2li
bGUoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
OjpTYW5pdGl6YXRpb25UeXBlKTsKIApAQCAtMjAyLDcgKzIwMiw3IEBAIHByaXZhdGU6CiAKICAg
ICB2b2lkIGxvZ1Nsb3dDYWNoZVJldHJpZXZlSWZOZWVkZWQoY29uc3QgTmV0d29ya0NhY2hlOjpD
YWNoZTo6UmV0cmlldmVJbmZvJik7CiAKLSAgICB2b2lkIGhhbmRsZUFkQ2xpY2tBdHRyaWJ1dGlv
bkNvbnZlcnNpb24oV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uJiYsIGNv
bnN0IFVSTCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworICAgIHZvaWQgaGFu
ZGxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpDb252ZXJzaW9uJiYsIGNvbnN0IFVSTCYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYpOwogCiAgICAgT3B0aW9uYWw8U2Vjb25kcz4gdmFsaWRhdGVDYWNoZUVu
dHJ5Rm9yTWF4QWdlQ2FwVmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVzdCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IGExY2U3NjJkNWViMmJhODlkM2Q4YzNk
ZTZjNjdlMDYzYWQ2N2UzZjguLjhjZTU5MTQxMjM0YWViZjVlNDllMmJkYzhhNjgyZmI1ODRjYTI4
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
Y3BwCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Nlc3Npb24uaCIKIAotI2luY2x1ZGUgIkFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbmNs
dWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKQEAgLTM0LDExICszMywxMSBAQAog
I2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUGluZ0xvYWQuaCIKKyNpbmNsdWRl
ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJv
eHkuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBy
b2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgIldlYlNvY2tldFRhc2suaCIKLSNpbmNsdWRlIDxXZWJD
b3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llSmFyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KIApAQCAtOTEsNyArOTAsNyBA
QCBOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQ
cm9jZXNzLCBjb25zdCBOZXR3b3JrU2VzcwogICAgICwgbV9maXJzdFBhcnR5V2Vic2l0ZURhdGFS
ZW1vdmFsTW9kZShwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmZp
cnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKQogICAgICwgbV9zdGFuZGFsb25lQXBwbGlj
YXRpb25Eb21haW4ocGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5z
dGFuZGFsb25lQXBwbGljYXRpb25Eb21haW4pCiAjZW5kaWYKLSAgICAsIG1fYWRDbGlja0F0dHJp
YnV0aW9uKG1ha2VVbmlxdWVSZWY8QWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlcj4obmV0d29ya1By
b2Nlc3MsIHBhcmFtZXRlcnMuc2Vzc2lvbklEKSkKKyAgICAsIG1fcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQobWFrZVVuaXF1ZVJlZjxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI+KG5ldHdv
cmtQcm9jZXNzLCBwYXJhbWV0ZXJzLnNlc3Npb25JRCkpCiAgICAgLCBtX3Rlc3RTcGVlZE11bHRp
cGxpZXIocGFyYW1ldGVycy50ZXN0U3BlZWRNdWx0aXBsaWVyKQogICAgICwgbV9hbGxvd3NTZXJ2
ZXJQcmVjb25uZWN0KHBhcmFtZXRlcnMuYWxsb3dzU2VydmVyUHJlY29ubmVjdCkKIHsKQEAgLTEy
MCw3ICsxMTksNyBAQCBOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nl
c3MmIG5ldHdvcmtQcm9jZXNzLCBjb25zdCBOZXR3b3JrU2VzcwogCiAgICAgbV9pc1N0YWxlV2hp
bGVSZXZhbGlkYXRlRW5hYmxlZCA9IHBhcmFtZXRlcnMuc3RhbGVXaGlsZVJldmFsaWRhdGVFbmFi
bGVkOwogCi0gICAgbV9hZENsaWNrQXR0cmlidXRpb24tPnNldFBpbmdMb2FkRnVuY3Rpb24oW3Ro
aXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikgeworICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPnNl
dFBpbmdMb2FkRnVuY3Rpb24oW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKE5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgewogICAgICAgICBpZiAo
IXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAvLyBQaW5nTG9hZCBtYW5h
Z2VzIGl0cyBvd24gbGlmZXRpbWUsIGRlbGV0aW5nIGl0c2VsZiB3aGVuIGl0cyBwdXJwb3NlIGhh
cyBiZWVuIGZ1bGZpbGxlZC4KQEAgLTMwNCw0NCArMzAzLDQ0IEBAIHZvaWQgTmV0d29ya1Nlc3Np
b246OnJlc2V0Q05BTUVEb21haW5EYXRhKCkKIH0KICNlbmRpZiAvLyBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQogCi12b2lkIE5ldHdvcmtTZXNzaW9uOjpzdG9yZUFkQ2xpY2tBdHRy
aWJ1dGlvbihXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24mJiBhZENsaWNrQXR0cmlidXRpb24p
Cit2b2lkIE5ldHdvcmtTZXNzaW9uOjpzdG9yZVByaXZhdGVDbGlja01lYXN1cmVtZW50KFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpCiB7
Ci0gICAgbV9hZENsaWNrQXR0cmlidXRpb24tPnN0b3JlVW5jb252ZXJ0ZWQoV1RGTW92ZShhZENs
aWNrQXR0cmlidXRpb24pKTsKKyAgICBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50LT5zdG9yZVVu
Y29udmVydGVkKFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpKTsKIH0KIAotdm9pZCBO
ZXR3b3JrU2Vzc2lvbjo6aGFuZGxlQWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvbihBZENsaWNr
QXR0cmlidXRpb246OkNvbnZlcnNpb24mJiBjb252ZXJzaW9uLCBjb25zdCBVUkwmIHJlcXVlc3RV
UkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KQordm9p
ZCBOZXR3b3JrU2Vzc2lvbjo6aGFuZGxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9u
KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uJiYgY29udmVyc2lvbiwgY29uc3Qg
VVJMJiByZXF1ZXN0VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0
UmVxdWVzdCkKIHsKLSAgICBtX2FkQ2xpY2tBdHRyaWJ1dGlvbi0+aGFuZGxlQ29udmVyc2lvbihX
VEZNb3ZlKGNvbnZlcnNpb24pLCByZXF1ZXN0VVJMLCByZWRpcmVjdFJlcXVlc3QpOworICAgIG1f
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPmhhbmRsZUNvbnZlcnNpb24oV1RGTW92ZShjb252ZXJz
aW9uKSwgcmVxdWVzdFVSTCwgcmVkaXJlY3RSZXF1ZXN0KTsKIH0KIAotdm9pZCBOZXR3b3JrU2Vz
c2lvbjo6ZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmlu
Zyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtTZXNzaW9uOjpkdW1wUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewotICAgIG1fYWRDbGlja0F0dHJpYnV0aW9uLT50b1N0cmluZyhXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+
dG9TdHJpbmcoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIE5ldHdvcmtT
ZXNzaW9uOjpjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbigpCit2b2lkIE5ldHdvcmtTZXNzaW9uOjpj
bGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KCkKIHsKLSAgICBtX2FkQ2xpY2tBdHRyaWJ1dGlv
bi0+Y2xlYXIoKTsKKyAgICBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50LT5jbGVhcigpOwogfQog
Ci12b2lkIE5ldHdvcmtTZXNzaW9uOjpjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbkZvclJlZ2lzdHJh
YmxlRG9tYWluKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgZG9tYWluKQordm9pZCBOZXR3
b3JrU2Vzc2lvbjo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZvclJlZ2lzdHJhYmxlRG9t
YWluKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgZG9tYWluKQogewotICAgIG1fYWRDbGlj
a0F0dHJpYnV0aW9uLT5jbGVhckZvclJlZ2lzdHJhYmxlRG9tYWluKFdURk1vdmUoZG9tYWluKSk7
CisgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+Y2xlYXJGb3JSZWdpc3RyYWJsZURvbWFp
bihXVEZNb3ZlKGRvbWFpbikpOwogfQogCi12b2lkIE5ldHdvcmtTZXNzaW9uOjpzZXRBZENsaWNr
QXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHVlKQordm9pZCBOZXR3
b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVz
dGluZyhib29sIHZhbHVlKQogewotICAgIG1fYWRDbGlja0F0dHJpYnV0aW9uLT5zZXRPdmVycmlk
ZVRpbWVyRm9yVGVzdGluZyh2YWx1ZSk7CisgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+
c2V0T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcodmFsdWUpOwogfQogCi12b2lkIE5ldHdvcmtTZXNz
aW9uOjpzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyhVUkwmJiB1
cmwpCit2b2lkIE5ldHdvcmtTZXNzaW9uOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZl
cnNpb25VUkxGb3JUZXN0aW5nKFVSTCYmIHVybCkKIHsKLSAgICBtX2FkQ2xpY2tBdHRyaWJ1dGlv
bi0+c2V0Q29udmVyc2lvblVSTEZvclRlc3RpbmcoV1RGTW92ZSh1cmwpKTsKKyAgICBtX3ByaXZh
dGVDbGlja01lYXN1cmVtZW50LT5zZXRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhXVEZNb3ZlKHVy
bCkpOwogfQogCi12b2lkIE5ldHdvcmtTZXNzaW9uOjptYXJrQWRDbGlja0F0dHJpYnV0aW9uc0Fz
RXhwaXJlZEZvclRlc3RpbmcoKQordm9pZCBOZXR3b3JrU2Vzc2lvbjo6bWFya1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKQogewotICAgIG1fYWRDbGlja0F0dHJp
YnV0aW9uLT5tYXJrQWxsVW5jb252ZXJ0ZWRBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CisgICAgbV9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+bWFya0FsbFVuY29udmVydGVkQXNFeHBpcmVkRm9yVGVz
dGluZygpOwogfQogCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjphZGRLZXB0QWxpdmVMb2FkKFJlZjxO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI+JiYgbG9hZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IDJmYTI2MmQ1MDcxMDJjMGRiZTJhODM3NmEy
NWE0MjQxMTllYTg3YmUuLmNhNGE1NzY2N2Q0YjRhYzkyMDQ3YmM3OTQyMTc3MTAxZmYzYmJhMmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAg
LTI5LDkgKzI5LDkgQEAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAi
U2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlv
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQmxvYlJlZ2lzdHJ5SW1wbC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4u
aD4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
QEAgLTUxLDcgKzUxLDcgQEAgc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLWNsYXNzIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXI7CitjbGFzcyBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI7CiBjbGFzcyBOZXR3b3JrRGF0YVRhc2s7CiBjbGFz
cyBOZXR3b3JrUHJvY2VzczsKIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjsKQEAgLTExNiwx
NCArMTE2LDE0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzQXBwQm91bmRTZXNzaW9u
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJBcHBCb3Vu
ZFNlc3Npb24oKSB7IH0KICNlbmRpZgotICAgIHZvaWQgc3RvcmVBZENsaWNrQXR0cmlidXRpb24o
V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uJiYpOwotICAgIHZvaWQgaGFuZGxlQWRDbGlja0F0
dHJpYnV0aW9uQ29udmVyc2lvbihXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OkNvbnZlcnNp
b24mJiwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIHJlZGlyZWN0UmVxdWVzdCk7Ci0gICAgdm9pZCBkdW1wQWRDbGlja0F0dHJpYnV0aW9uKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJik7Ci0gICAgdm9pZCBjbGVhckFkQ2xpY2tB
dHRyaWJ1dGlvbigpOwotICAgIHZvaWQgY2xlYXJBZENsaWNrQXR0cmlidXRpb25Gb3JSZWdpc3Ry
YWJsZURvbWFpbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmKTsKLSAgICB2b2lkIHNldEFk
Q2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpOwotICAg
IHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3RpbmcoVVJMJiYp
OwotICAgIHZvaWQgbWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7
CisgICAgdm9pZCBzdG9yZVByaXZhdGVDbGlja01lYXN1cmVtZW50KFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50JiYpOworICAgIHZvaWQgaGFuZGxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb252ZXJzaW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9u
JiYsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiByZWRpcmVjdFJlcXVlc3QpOworICAgIHZvaWQgZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJik7CisgICAgdm9pZCBjbGVhclByaXZh
dGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVt
ZW50Rm9yUmVnaXN0cmFibGVEb21haW4oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJik7Cisg
ICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5n
KGJvb2wgdmFsdWUpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJz
aW9uVVJMRm9yVGVzdGluZyhVUkwmJik7CisgICAgdm9pZCBtYXJrUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOwogCiAgICAgdm9pZCBhZGRLZXB0QWxpdmVMb2Fk
KFJlZjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+JiYpOwogICAgIHZvaWQgcmVtb3ZlS2VwdEFsaXZl
TG9hZChOZXR3b3JrUmVzb3VyY2VMb2FkZXImKTsKQEAgLTE3NSw3ICsxNzUsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IG1fdGhpcmRQYXJ0
eUNOQU1FRG9tYWluRm9yVGVzdGluZzsKICNlbmRpZgogICAgIGJvb2wgbV9pc1N0YWxlV2hpbGVS
ZXZhbGlkYXRlRW5hYmxlZCB7IGZhbHNlIH07Ci0gICAgVW5pcXVlUmVmPEFkQ2xpY2tBdHRyaWJ1
dGlvbk1hbmFnZXI+IG1fYWRDbGlja0F0dHJpYnV0aW9uOworICAgIFVuaXF1ZVJlZjxQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXI+IG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CiAKICAg
ICBIYXNoU2V0PFJlZjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+PiBtX2tlcHRBbGl2ZUxvYWRzOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODhiZWFhYTY0MWVmZWRl
MWI3MzAzMzJjYzlkODZmMGYyZWUyOGI1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcApAQCAt
MCwwICsxLDMzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCIKKworI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0ZldGNoT3B0aW9ucy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRm9ybURhdGEuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0hUVFBIZWFkZXJWYWx1ZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlRXJyb3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKwordXNpbmcgU291cmNlID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlNvdXJjZTsKK3VzaW5nIERlc3RpbmF0aW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkRlc3RpbmF0aW9uOwordXNpbmcgRGVzdGluYXRpb25NYXAgPSBIYXNoTWFwPERlc3RpbmF0aW9u
LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD47Cit1c2luZyBDb252ZXJzaW9uID0gUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb247CisKK2NvbnN0ZXhwciBTZWNvbmRzIGRlYnVnTW9k
ZVNlY29uZHNVbnRpbFNlbmQgeyA2MF9zIH07CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyOjpzdG9yZVVuY29udmVydGVkKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgYXR0
cmlidXRpb24pCit7CisgICAgY2xlYXJFeHBpcmVkKCk7CisKKyAgICBpZiAoVU5MSUtFTFkoZGVi
dWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50LCAiU3RvcmluZyBhbiBhZCBjbGljay4iKTsKKyAgICAgICAgbV9uZXR3b3Jr
UHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3Vy
Y2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiW1ByaXZh
dGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFN0b3JpbmcgYW4gYWQgY2xpY2suIl9zKTsKKyAgICB9CisK
KyAgICBtX3VuY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuc2V0KHN0ZDo6bWFr
ZV9wYWlyKGF0dHJpYnV0aW9uLnNvdXJjZSgpLCBhdHRyaWJ1dGlvbi5kZXN0aW5hdGlvbigpKSwg
V1RGTW92ZShhdHRyaWJ1dGlvbikpOworfQorCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlcjo6aGFuZGxlQ29udmVyc2lvbihDb252ZXJzaW9uJiYgY29udmVyc2lvbiwgY29uc3Qg
VVJMJiByZXF1ZXN0VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0
UmVxdWVzdCkKK3sKKyAgICBpZiAobV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgUmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3REb21haW4geyByZWRpcmVj
dFJlcXVlc3QudXJsKCkgfTsKKyAgICBhdXRvJiBmaXJzdFBhcnR5VVJMID0gcmVkaXJlY3RSZXF1
ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCk7CisKKyAgICBpZiAoIXJlZGlyZWN0RG9tYWluLm1h
dGNoZXMocmVxdWVzdFVSTCkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJs
ZWQoKSkpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQsICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgSFRUUCByZWRp
cmVjdCB3YXMgbm90IHNhbWUtc2l0ZS4iKTsKKyAgICAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3Mt
PmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwgIltQcml2YXRlIENsaWNr
IE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgSFRU
UCByZWRpcmVjdCB3YXMgbm90IHNhbWUtc2l0ZS4iX3MpOworICAgICAgICB9CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBpZiAocmVkaXJlY3REb21haW4ubWF0Y2hlcyhmaXJzdFBhcnR5
VVJMKSkgeworICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkNvbnZl
cnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIGl0IHdhcyByZXF1ZXN0ZWQgaW4gYW4gSFRU
UCByZWRpcmVjdCB0aGF0IGlzIHNhbWUtc2l0ZSBhcyB0aGUgZmlyc3QtcGFydHkuIik7CisgICAg
ICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Np
b25JRCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZl
bDo6RXJyb3IsICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVyc2lvbiB3YXMgbm90
IGFjY2VwdGVkIGJlY2F1c2UgaXQgd2FzIHJlcXVlc3RlZCBpbiBhbiBIVFRQIHJlZGlyZWN0IHRo
YXQgaXMgc2FtZS1zaXRlIGFzIHRoZSBmaXJzdC1wYXJ0eS4iX3MpOworICAgICAgICB9CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb252ZXJ0KFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpTb3VyY2UgeyBXVEZNb3ZlKHJlZGlyZWN0RG9tYWluKSB9LCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6RGVzdGluYXRpb24geyBmaXJzdFBhcnR5VVJMIH0sIFdURk1vdmUoY29udmVyc2lvbikp
OworfQorCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RhcnRUaW1lcihT
ZWNvbmRzIHNlY29uZHMpCit7CisgICAgbV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1Rp
bWVyLnN0YXJ0T25lU2hvdChtX2lzUnVubmluZ1Rlc3QgPyAwX3MgOiBzZWNvbmRzKTsKK30KKwor
dm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmNvbnZlcnQoY29uc3QgU291cmNl
JiBzb3VyY2UsIGNvbnN0IERlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbiwgQ29udmVyc2lvbiYmIGNv
bnZlcnNpb24pCit7CisgICAgY2xlYXJFeHBpcmVkKCk7CisKKyAgICBpZiAoIWNvbnZlcnNpb24u
aXNWYWxpZCgpKSB7CisgICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7
CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAi
R290IGFuIGludmFsaWQgY29udmVyc2lvbi4iKTsKKyAgICAgICAgICAgIG1fbmV0d29ya1Byb2Nl
c3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwgIltQcml2YXRlIENs
aWNrIE1lYXN1cmVtZW50XSBHb3QgYW4gaW52YWxpZCBjb252ZXJzaW9uLiJfcyk7CisgICAgICAg
IH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gY29udmVyc2lvbkRhdGEgPSBj
b252ZXJzaW9uLmRhdGE7CisgICAgYXV0byBjb252ZXJzaW9uUHJpb3JpdHkgPSBjb252ZXJzaW9u
LnByaW9yaXR5OworCisgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkdvdCBhIGNv
bnZlcnNpb24gd2l0aCBjb252ZXJzaW9uIGRhdGE6ICV7cHVibGljfXUgYW5kIHByaW9yaXR5OiAl
e3B1YmxpY311LiIsIGNvbnZlcnNpb25EYXRhLCBjb252ZXJzaW9uUHJpb3JpdHkpOworICAgICAg
ICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwg
TWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6SW5m
bywgbWFrZVN0cmluZygiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEdvdCBhIGNvbnZlcnNp
b24gd2l0aCBjb252ZXJzaW9uIGRhdGE6ICciX3MsIGNvbnZlcnNpb25EYXRhLCAiJyBhbmQgcHJp
b3JpdHk6ICciX3MsIGNvbnZlcnNpb25Qcmlvcml0eSwgIicuIl9zKSk7CisgICAgfQorCisgICAg
YXV0byBzZWNvbmRzVW50aWxTZW5kID0gU2Vjb25kczo6aW5maW5pdHkoKTsKKworICAgIGF1dG8g
cGFpciA9IHN0ZDo6bWFrZV9wYWlyKHNvdXJjZSwgZGVzdGluYXRpb24pOworICAgIGF1dG8gcHJl
dmlvdXNseVVuY29udmVydGVkQXR0cmlidXRpb24gPSBtX3VuY29udmVydGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYXAudGFrZShwYWlyKTsKKyAgICBhdXRvIHByZXZpb3VzbHlDb252ZXJ0ZWRB
dHRyaWJ1dGlvbkl0ZXIgPSBtX2NvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwLmZp
bmQocGFpcik7CisKKyAgICBpZiAoIXByZXZpb3VzbHlVbmNvbnZlcnRlZEF0dHJpYnV0aW9uLmlz
RW1wdHkoKSkgeworICAgICAgICAvLyBBbHdheXMgY29udmVydCB0aGUgcGVuZGluZyBhdHRyaWJ1
dGlvbiBhbmQgcmVtb3ZlIGl0IGZyb20gdGhlIHVuY29udmVydGVkIG1hcC4KKyAgICAgICAgaWYg
KGF1dG8gb3B0aW9uYWxTZWNvbmRzVW50aWxTZW5kID0gcHJldmlvdXNseVVuY29udmVydGVkQXR0
cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChXVEZNb3ZlKGNvbnZlcnNp
b24pKSkgeworICAgICAgICAgICAgc2Vjb25kc1VudGlsU2VuZCA9ICpvcHRpb25hbFNlY29uZHNV
bnRpbFNlbmQ7CisgICAgICAgICAgICBBU1NFUlQoc2Vjb25kc1VudGlsU2VuZCAhPSBTZWNvbmRz
OjppbmZpbml0eSgpKTsKKworICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJs
ZWQoKSkpIHsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01l
YXN1cmVtZW50LCAiQ29udmVydGVkIGEgc3RvcmVkIGFkIGNsaWNrIHdpdGggY29udmVyc2lvbiBk
YXRhOiAle3B1YmxpY311IGFuZCBwcmlvcml0eTogJXtwdWJsaWN9dS4iLCBjb252ZXJzaW9uRGF0
YSwgY29udmVyc2lvblByaW9yaXR5KTsKKyAgICAgICAgICAgICAgICBtX25ldHdvcmtQcm9jZXNz
LT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZygiW1By
aXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIENvbnZlcnRlZCBhIHN0b3JlZCBhZCBjbGljayB3aXRo
IGNvbnZlcnNpb24gZGF0YTogJyJfcywgY29udmVyc2lvbkRhdGEsICInIGFuZCBwcmlvcml0eTog
JyJfcywgY29udmVyc2lvblByaW9yaXR5LCAiJy4iX3MpKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorCisgICAgICAgIGlmIChwcmV2aW91c2x5Q29udmVydGVkQXR0cmlidXRpb25JdGVyID09
IG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuZW5kKCkpCisgICAgICAgICAg
ICBtX2NvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwLmFkZChwYWlyLCBXVEZNb3Zl
KHByZXZpb3VzbHlVbmNvbnZlcnRlZEF0dHJpYnV0aW9uKSk7CisgICAgICAgIGVsc2UgaWYgKHBy
ZXZpb3VzbHlVbmNvbnZlcnRlZEF0dHJpYnV0aW9uLmhhc0hpZ2hlclByaW9yaXR5VGhhbihwcmV2
aW91c2x5Q29udmVydGVkQXR0cmlidXRpb25JdGVyLT52YWx1ZSkpIHsKKyAgICAgICAgICAgIC8v
IElmIHRoZSBuZXdseSBjb252ZXJ0ZWQgYXR0cmlidXRpb24gaGFzIGhpZ2hlciBwcmlvcml0eSwg
cmVwbGFjZSB0aGUgb2xkIG9uZS4KKyAgICAgICAgICAgIG1fY29udmVydGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYXAuc2V0KHBhaXIsIFdURk1vdmUocHJldmlvdXNseVVuY29udmVydGVkQXR0
cmlidXRpb24pKTsKKworICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQo
KSkpIHsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1
cmVtZW50LCAiUmVwbGFjZWQgYSBwcmV2aW91c2x5IGNvbnZlcnRlZCBhZCBjbGljayB3aXRoIGEg
bmV3IG9uZSB3aXRoIGNvbnZlcnNpb24gZGF0YTogJXtwdWJsaWN9dSBhbmQgcHJpb3JpdHk6ICV7
cHVibGljfXUgYmVjYXVzZSBpdCBoYWQgaGlnaGVyIHByaW9yaXR5LiIsIGNvbnZlcnNpb25EYXRh
LCBjb252ZXJzaW9uUHJpb3JpdHkpOworICAgICAgICAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3Mt
PmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbUHJp
dmF0ZSBDbGljayBNZWFzdXJlbWVudF0gUmVwbGFjZWQgYSBwcmV2aW91c2x5IGNvbnZlcnRlZCBh
ZCBjbGljayB3aXRoIGEgbmV3IG9uZSB3aXRoIGNvbnZlcnNpb24gZGF0YTogJyJfcywgY29udmVy
c2lvbkRhdGEsICInIGFuZCBwcmlvcml0eTogJyJfcywgY29udmVyc2lvblByaW9yaXR5LCAiJyBi
ZWNhdXNlIGl0IGhhZCBoaWdoZXIgcHJpb3JpdHkuIl9zKSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICB9IGVsc2UgaWYgKHByZXZpb3VzbHlDb252ZXJ0ZWRBdHRyaWJ1dGlvbkl0ZXIg
IT0gbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5lbmQoKSkgeworICAgICAg
ICAvLyBJZiB3ZSBoYXZlIG5vIG5ld2x5IGNvbnZlcnRlZCBhdHRyaWJ1dGlvbiwgcmUtY29udmVy
dCB0aGUgb2xkIG9uZSB0byByZXNwZWN0IHRoZSBuZXcgcHJpb3JpdHkuCisgICAgICAgIGlmIChh
dXRvIG9wdGlvbmFsU2Vjb25kc1VudGlsU2VuZCA9IHByZXZpb3VzbHlDb252ZXJ0ZWRBdHRyaWJ1
dGlvbkl0ZXItPnZhbHVlLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoV1RGTW92ZShj
b252ZXJzaW9uKSkpIHsKKyAgICAgICAgICAgIHNlY29uZHNVbnRpbFNlbmQgPSAqb3B0aW9uYWxT
ZWNvbmRzVW50aWxTZW5kOworICAgICAgICAgICAgQVNTRVJUKHNlY29uZHNVbnRpbFNlbmQgIT0g
U2Vjb25kczo6aW5maW5pdHkoKSk7CisKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z01v
ZGVFbmFibGVkKCkpKSB7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCwgIlJlLWNvbnZlcnRlZCBhbiBhZCBjbGljayB3aXRoIGEgbmV3IG9u
ZSB3aXRoIGNvbnZlcnNpb24gZGF0YTogJXtwdWJsaWN9dSBhbmQgcHJpb3JpdHk6ICV7cHVibGlj
fXUgYmVjYXVzZSBpdCBoYWQgaGlnaGVyIHByaW9yaXR5LiIsIGNvbnZlcnNpb25EYXRhLCBjb252
ZXJzaW9uUHJpb3JpdHkpOworICAgICAgICAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2Fk
Y2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbUHJpdmF0ZSBD
bGljayBNZWFzdXJlbWVudF0gUmUtY29udmVydGVkIGFuIGFkIGNsaWNrIHdpdGggYSBuZXcgb25l
IHdpdGggY29udmVyc2lvbiBkYXRhOiAnIl9zLCBjb252ZXJzaW9uRGF0YSwgIicgYW5kIHByaW9y
aXR5OiAnIl9zLCBjb252ZXJzaW9uUHJpb3JpdHksICInJyBiZWNhdXNlIGl0IGhhZCBoaWdoZXIg
cHJpb3JpdHkuIl9zKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBp
ZiAoc2Vjb25kc1VudGlsU2VuZCA9PSBTZWNvbmRzOjppbmZpbml0eSgpKQorICAgICAgICByZXR1
cm47CisgICAgCisgICAgaWYgKG1fZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHNUaW1lci5p
c0FjdGl2ZSgpICYmIG1fZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHNUaW1lci5uZXh0Rmly
ZUludGVydmFsKCkgPCBzZWNvbmRzVW50aWxTZW5kKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICBSRUxFQVNFX0xPR19J
TkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiU2V0dGluZyB0aW1lciBmb3IgZmlyaW5nIGNv
bnZlcnNpb24gcmVxdWVzdHMgdG8gdGhlIGRlYnVnIG1vZGUgdGltZW91dCBvZiAle3B1YmxpY31m
IHNlY29uZHMgd2hlcmUgdGhlIHJlZ3VsYXIgdGltZW91dCB3b3VsZCBoYXZlIGJlZW4gJXtwdWJs
aWN9ZiBzZWNvbmRzLiIsIGRlYnVnTW9kZVNlY29uZHNVbnRpbFNlbmQuc2Vjb25kcygpLCBzZWNv
bmRzVW50aWxTZW5kLnNlY29uZHMoKSk7CisgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2Fk
Y2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbUHJpdmF0ZSBD
bGljayBNZWFzdXJlbWVudF0gU2V0dGluZyB0aW1lciBmb3IgZmlyaW5nIGNvbnZlcnNpb24gcmVx
dWVzdHMgdG8gdGhlIGRlYnVnIG1vZGUgdGltZW91dCBvZiAiX3MsIGRlYnVnTW9kZVNlY29uZHNV
bnRpbFNlbmQuc2Vjb25kcygpLCAiIHNlY29uZHMgd2hlcmUgdGhlIHJlZ3VsYXIgdGltZW91dCB3
b3VsZCBoYXZlIGJlZW4gIl9zLCBzZWNvbmRzVW50aWxTZW5kLnNlY29uZHMoKSwgIiBzZWNvbmRz
LiJfcykpOworICAgICAgICBzZWNvbmRzVW50aWxTZW5kID0gZGVidWdNb2RlU2Vjb25kc1VudGls
U2VuZDsKKyAgICB9CisKKyAgICBzdGFydFRpbWVyKHNlY29uZHNVbnRpbFNlbmQpOworfQorCit2
b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZUNvbnZlcnNpb25SZXF1ZXN0
KGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50JiBhdHRyaWJ1dGlvbikKK3sKKyAgICBhdXRv
IGNvbnZlcnNpb25VUkwgPSBtX2NvbnZlcnNpb25CYXNlVVJMRm9yVGVzdGluZyA/ICptX2NvbnZl
cnNpb25CYXNlVVJMRm9yVGVzdGluZyA6IGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpOworICAgIGlm
IChjb252ZXJzaW9uVVJMLmlzRW1wdHkoKSB8fCAhY29udmVyc2lvblVSTC5pc1ZhbGlkKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsgV1RGTW92ZShj
b252ZXJzaW9uVVJMKSB9OworICAgIAorICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZCgiUE9TVCJf
cyk7CisgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNhY2hl
Q29udHJvbCwgV2ViQ29yZTo6SFRUUEhlYWRlclZhbHVlczo6bWF4QWdlMCgpKTsKKworICAgIHJl
cXVlc3Quc2V0SFRUUENvbnRlbnRUeXBlKFdlYkNvcmU6OkhUVFBIZWFkZXJWYWx1ZXM6OmFwcGxp
Y2F0aW9uSlNPTkNvbnRlbnRUeXBlKCkpOworICAgIHJlcXVlc3Quc2V0SFRUUEJvZHkoV2ViQ29y
ZTo6Rm9ybURhdGE6OmNyZWF0ZShhdHRyaWJ1dGlvbi5qc29uKCktPnRvSlNPTlN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpKTsKKworICAgIEZldGNoT3B0aW9ucyBvcHRpb25zOworICAgIG9wdGlvbnMu
Y3JlZGVudGlhbHMgPSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpPbWl0OworICAgIG9wdGlv
bnMucmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpFcnJvcjsKKworICAgIHN0YXRp
YyB1aW50NjRfdCBpZGVudGlmaWVyID0gMDsKKyAgICAKKyAgICBOZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVycyBsb2FkUGFyYW1ldGVyczsKKyAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVy
ID0gKytpZGVudGlmaWVyOworICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0Owor
ICAgIGxvYWRQYXJhbWV0ZXJzLnBhcmVudFBJRCA9IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgp
OworICAgIGxvYWRQYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gU3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3k6OkVwaGVtZXJhbFN0YXRlbGVzczsKKyAgICBsb2FkUGFyYW1ldGVycy5v
cHRpb25zID0gb3B0aW9uczsKKyAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0ID0gdHJ1ZTsKKyAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRS
ZXN0cmljdEhUVFBSZXNwb25zZUFjY2VzcyA9IGZhbHNlOworCisgICAgaWYgKFVOTElLRUxZKGRl
YnVnTW9kZUVuYWJsZWQoKSkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCwgIkFib3V0IHRvIGZpcmUgYW4gYXR0cmlidXRpb24gcmVxdWVzdCBmb3Ig
YSBjb252ZXJzaW9uLiIpOworICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25z
b2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0g
QWJvdXQgdG8gZmlyZSBhbiBhdHRyaWJ1dGlvbiByZXF1ZXN0IGZvciBhIGNvbnZlcnNpb24uIl9z
KTsKKyAgICB9CisKKyAgICBtX3BpbmdMb2FkRnVuY3Rpb24oV1RGTW92ZShsb2FkUGFyYW1ldGVy
cyksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYgZXJyb3IsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
KSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgaWYgKFVOTElLRUxZKHdlYWtUaGlzLT5kZWJ1Z01vZGVFbmFibGVkKCkpKSB7CisgICAgICAg
ICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKSB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJSZWNl
aXZlZCBlcnJvcjogJyV7cHVibGljfXMnIGZvciBhZCBjbGljayBhdHRyaWJ1dGlvbiByZXF1ZXN0
LiIsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSk7CisjZWxzZQor
ICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByaXZhdGVDbGlja01lYXN1cmVtZW50
LCAiUmVjZWl2ZWQgZXJyb3I6ICclcycgZm9yIGFkIGNsaWNrIGF0dHJpYnV0aW9uIHJlcXVlc3Qu
IiwgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKTsKKyNlbmRpZgor
ICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5tX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25z
b2xlTWVzc2FnZSh3ZWFrVGhpcy0+bV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtYWtlU3RyaW5nKCJbUHJpdmF0
ZSBDbGljayBNZWFzdXJlbWVudF0gUmVjZWl2ZWQgZXJyb3I6ICciX3MsIGVycm9yLmxvY2FsaXpl
ZERlc2NyaXB0aW9uKCksICInIGZvciBhZCBjbGljayBhdHRyaWJ1dGlvbiByZXF1ZXN0LiJfcykp
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSk7Cit9CisKK3ZvaWQgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0cygpCit7
CisgICAgYXV0byBuZXh0VGltZVRvRmlyZSA9IFNlY29uZHM6OmluZmluaXR5KCk7CisgICAgZm9y
IChhdXRvJiBhdHRyaWJ1dGlvbiA6IG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YXAudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKGF0dHJpYnV0aW9uLndhc0NvbnZlcnNpb25TZW50
KCkpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIH0KKyAgICAgICAgYXV0byBlYXJsaWVzdFRpbWVUb1NlbmQgPSBhdHRy
aWJ1dGlvbi5lYXJsaWVzdFRpbWVUb1NlbmQoKTsKKyAgICAgICAgaWYgKCFlYXJsaWVzdFRpbWVU
b1NlbmQpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIG5vdyA9IFdhbGxUaW1lOjpub3co
KTsKKyAgICAgICAgaWYgKCplYXJsaWVzdFRpbWVUb1NlbmQgPD0gbm93IHx8IG1faXNSdW5uaW5n
VGVzdCB8fCBkZWJ1Z01vZGVFbmFibGVkKCkpIHsKKyAgICAgICAgICAgIGZpcmVDb252ZXJzaW9u
UmVxdWVzdChhdHRyaWJ1dGlvbik7CisgICAgICAgICAgICBhdHRyaWJ1dGlvbi5tYXJrQ29udmVy
c2lvbkFzU2VudCgpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAg
ICBhdXRvIHNlY29uZHMgPSAqZWFybGllc3RUaW1lVG9TZW5kIC0gbm93OworICAgICAgICBuZXh0
VGltZVRvRmlyZSA9IHN0ZDo6bWluKG5leHRUaW1lVG9GaXJlLCBzZWNvbmRzKTsKKyAgICB9CisK
KyAgICBtX2NvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwLnJlbW92ZUlmKFtdKGF1
dG8mIGtleUFuZFZhbHVlKSB7CisgICAgICAgIHJldHVybiBrZXlBbmRWYWx1ZS52YWx1ZS53YXND
b252ZXJzaW9uU2VudCgpOworICAgIH0pOworCisgICAgaWYgKG5leHRUaW1lVG9GaXJlIDwgU2Vj
b25kczo6aW5maW5pdHkoKSkKKyAgICAgICAgc3RhcnRUaW1lcihuZXh0VGltZVRvRmlyZSk7Cit9
CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpjbGVhcigpCit7CisgICAg
bV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVyLnN0b3AoKTsKKyAgICBtX3VuY29u
dmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuY2xlYXIoKTsKKyAgICBtX2NvbnZlcnRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwLmNsZWFyKCk7Cit9CisKK3ZvaWQgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpjbGVhckZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiBkb21haW4pCit7CisgICAgbV91bmNvbnZlcnRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFwLnJlbW92ZUlmKFsmZG9tYWluXShhdXRvJiBrZXlBbmRWYWx1ZSkgewor
ICAgICAgICByZXR1cm4ga2V5QW5kVmFsdWUua2V5LmZpcnN0LnJlZ2lzdHJhYmxlRG9tYWluID09
IGRvbWFpbiB8fCBrZXlBbmRWYWx1ZS5rZXkuc2Vjb25kLnJlZ2lzdHJhYmxlRG9tYWluID09IGRv
bWFpbjsKKyAgICB9KTsKKworICAgIG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YXAucmVtb3ZlSWYoWyZkb21haW5dKGF1dG8mIGtleUFuZFZhbHVlKSB7CisgICAgICAgIHJldHVy
biBrZXlBbmRWYWx1ZS5rZXkuZmlyc3QucmVnaXN0cmFibGVEb21haW4gPT0gZG9tYWluIHx8IGtl
eUFuZFZhbHVlLmtleS5zZWNvbmQucmVnaXN0cmFibGVEb21haW4gPT0gZG9tYWluOworICAgIH0p
OworfQorCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Y2xlYXJFeHBpcmVk
KCkKK3sKKyAgICBtX3VuY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAucmVtb3Zl
SWYoW10oYXV0byYga2V5QW5kVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIGtleUFuZFZhbHVlLnZh
bHVlLmhhc0V4cGlyZWQoKTsKKyAgICB9KTsKK30KKwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXI6OnRvU3RyaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikgY29uc3QKK3sKKyAgICBpZiAobV91bmNvbnZlcnRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFwLmlzRW1wdHkoKSAmJiBtX2NvbnZlcnRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFwLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVy
KCJcbk5vIHN0b3JlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50IGRhdGEuXG4iX3MpOworCisg
ICAgdW5zaWduZWQgdW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlciA9IDA7CisgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOworICAgIGZvciAoYXV0byYgYXR0cmlidXRpb24gOiBtX3VuY29udmVy
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCF1
bmNvbnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyKQorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCJVbmNvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czpcbiIpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAiKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoKyt1bmNvbnZlcnRlZEF0dHJpYnV0aW9uTnVt
YmVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGF0dHJpYnV0aW9uLnRvU3RyaW5nKCkpOworfQorCisgICAgdW5zaWduZWQgY29udmVydGVk
QXR0cmlidXRpb25OdW1iZXIgPSAwOworICAgIGZvciAoYXV0byYgYXR0cmlidXRpb24gOiBtX2Nv
bnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwLnZhbHVlcygpKSB7CisgICAgICAgIGlm
ICh1bmNvbnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyKQorICAgICAgICAgICAgYnVpbGRlci5hcHBl
bmQoJ1xuJyk7CisgICAgICAgIGlmICghY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpCisgICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIkNvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1l
YXN1cmVtZW50czpcbiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZCgnXG4nKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoKytjb252
ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlciArIHVuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoYXR0
cmlidXRpb24udG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgY29tcGxldGlvbkhhbmRsZXIoYnVp
bGRlci50b1N0cmluZygpKTsKK30KKwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OnNldENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTCYmIHRlc3RVUkwpCit7CisgICAgaWYg
KHRlc3RVUkwuaXNFbXB0eSgpKQorICAgICAgICBtX2NvbnZlcnNpb25CYXNlVVJMRm9yVGVzdGlu
ZyA9IHsgfTsKKyAgICBlbHNlCisgICAgICAgIG1fY29udmVyc2lvbkJhc2VVUkxGb3JUZXN0aW5n
ID0gV1RGTW92ZSh0ZXN0VVJMKTsKK30KKwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXI6Om1hcmtBbGxVbmNvbnZlcnRlZEFzRXhwaXJlZEZvclRlc3RpbmcoKQoreworICAgIGZv
ciAoYXV0byYgYXR0cmlidXRpb24gOiBtX3VuY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYXAudmFsdWVzKCkpCisgICAgICAgIGF0dHJpYnV0aW9uLm1hcmtBc0V4cGlyZWQoKTsKK30K
KworYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmRlYnVnTW9kZUVuYWJsZWQo
KSBjb25zdAoreworICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLnByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZCgpICYmICFtX3Nl
c3Npb25JRC5pc0VwaGVtZXJhbCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzZDQzNzFiNjdkZjU5ODkyZmI3ZWJkNDVh
NTE0OWQyZTlkOGJkNjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCkBAIC0wLDAgKzEsOTIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgi
CisjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWdp
c3RyYWJsZURvbWFpbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGlt
ZXIuaD4KKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRp
b25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyIDogcHVibGljIENh
bk1ha2VXZWFrUHRyPFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcj4geworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorCisgICAgdXNpbmcgUmVnaXN0cmFibGVEb21h
aW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKKyAgICB1c2luZyBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OworICAgIHVzaW5n
IFNvdXJjZSA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2U7CisgICAg
dXNpbmcgRGVzdGluYXRpb24gPSBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVz
dGluYXRpb247CisgICAgdXNpbmcgQ29udmVyc2lvbiA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpDb252ZXJzaW9uOworCisgICAgZXhwbGljaXQgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQorICAgICAgICA6IG1fZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHNU
aW1lcigqdGhpcywgJlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZVBlbmRpbmdD
b252ZXJzaW9uUmVxdWVzdHMpCisgICAgICAgICwgbV9waW5nTG9hZEZ1bmN0aW9uKFtdKE5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYgcGFyYW1zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsKKyAgICAgICAgICAgIFVOVVNFRF9QQVJB
TShwYXJhbXMpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvcigpLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlKCkpOworICAgICAgICB9KQorICAg
ICAgICAsIG1fbmV0d29ya1Byb2Nlc3MobmV0d29ya1Byb2Nlc3MpCisgICAgICAgICwgbV9zZXNz
aW9uSUQoc2Vzc2lvbklEKQorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIHN0b3JlVW5jb252ZXJ0
ZWQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJik7CisgICAgdm9pZCBoYW5kbGVDb252ZXJzaW9u
KENvbnZlcnNpb24mJiwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVzdCk7CisgICAgdm9pZCBjbGVhcigpOworICAgIHZv
aWQgY2xlYXJGb3JSZWdpc3RyYWJsZURvbWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwor
ICAgIHZvaWQgdG9TdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKSBjb25z
dDsKKyAgICB2b2lkIHNldFBpbmdMb2FkRnVuY3Rpb24oRnVuY3Rpb248dm9pZChOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYp
PiYmIHBpbmdMb2FkRnVuY3Rpb24pIHsgbV9waW5nTG9hZEZ1bmN0aW9uID0gV1RGTW92ZShwaW5n
TG9hZEZ1bmN0aW9uKTsgfQorICAgIHZvaWQgc2V0T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9v
bCB2YWx1ZSkgeyBtX2lzUnVubmluZ1Rlc3QgPSB2YWx1ZTsgfQorICAgIHZvaWQgc2V0Q29udmVy
c2lvblVSTEZvclRlc3RpbmcoVVJMJiYpOworICAgIHZvaWQgbWFya0FsbFVuY29udmVydGVkQXNF
eHBpcmVkRm9yVGVzdGluZygpOworCitwcml2YXRlOgorICAgIHZvaWQgc3RhcnRUaW1lcihTZWNv
bmRzKTsKKyAgICB2b2lkIGNvbnZlcnQoY29uc3QgU291cmNlJiwgY29uc3QgRGVzdGluYXRpb24m
LCBDb252ZXJzaW9uJiYpOworICAgIHZvaWQgZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnN0IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Jik7CisgICAgdm9pZCBmaXJlUGVuZGluZ0NvbnZlcnNpb25S
ZXF1ZXN0cygpOworICAgIHZvaWQgY2xlYXJFeHBpcmVkKCk7CisgICAgYm9vbCBkZWJ1Z01vZGVF
bmFibGVkKCkgY29uc3Q7CisKKyAgICBIYXNoTWFwPHN0ZDo6cGFpcjxTb3VyY2UsIERlc3RpbmF0
aW9uPiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hcDsKKyAgICBIYXNoTWFwPHN0ZDo6cGFpcjxTb3VyY2UsIERlc3RpbmF0aW9u
PiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYXA7CisgICAgV2ViQ29yZTo6VGltZXIgbV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1
ZXN0c1RpbWVyOworICAgIEZ1bmN0aW9uPHZvaWQoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYmKT4gbV9waW5nTG9hZEZ1bmN0
aW9uOworICAgIGJvb2wgbV9pc1J1bm5pbmdUZXN0IHsgZmFsc2UgfTsKKyAgICBPcHRpb25hbDxV
Ukw+IG1fY29udmVyc2lvbkJhc2VVUkxGb3JUZXN0aW5nOworICAgIFJlZjxOZXR3b3JrUHJvY2Vz
cz4gbV9uZXR3b3JrUHJvY2VzczsKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKK307
CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vTG9nZ2luZy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKaW5k
ZXggMzI1YTQ2ZmZjNTk5NDE5NDExMjQ5Njg2ZGY3YWM1MmViYTliYTExNS4uMjBkY2M1ZTg2NDFk
NDM4N2VkMzU5NzI4ZGRhNzUzZmU1YmJmMDc3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgK
QEAgLTQxLDcgKzQxLDcgQEAgZXh0ZXJuICJDIiB7CiAKICNkZWZpbmUgV0VCS0lUMl9MT0dfQ0hB
Tk5FTFMoTSkgXAogICAgIE0oQWN0aXZpdHlTdGF0ZSkgXAotICAgIE0oQWRDbGlja0F0dHJpYnV0
aW9uKSBcCisgICAgTShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkgXAogICAgIE0oQXBwU1NPKSBc
CiAgICAgTShBdXRvbWF0aW9uKSBcCiAgICAgTShBdXRvbWF0aW9uSW50ZXJhY3Rpb25zKSBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAKaW5kZXggMDJm
NzM4ODRhNzNkMWM0OWU2OWZhOWEyZWEzNDA0YmU2NWVhNzUzMC4uNGIyYTU2MmM0YTdkNzU4YmM0
NzU5YTJkNmQ2YWMyMzI3YzVmMTBmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
TmF2aWdhdGlvbkFjdGlvbkRhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmln
YXRpb25BY3Rpb25EYXRhLmNwcApAQCAtNTQsNyArNTQsNyBAQCB2b2lkIE5hdmlnYXRpb25BY3Rp
b25EYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIg
PDwgbG9ja0hpc3Rvcnk7CiAgICAgZW5jb2RlciA8PCBsb2NrQmFja0ZvcndhcmRMaXN0OwogICAg
IGVuY29kZXIgPDwgY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5OwotICAgIGVuY29kZXIg
PDwgYWRDbGlja0F0dHJpYnV0aW9uOworICAgIGVuY29kZXIgPDwgcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ7CiB9CiAKIE9wdGlvbmFsPE5hdmlnYXRpb25BY3Rpb25EYXRhPiBOYXZpZ2F0aW9uQWN0
aW9uRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTE0NiwxNSArMTQ2LDE1
IEBAIE9wdGlvbmFsPE5hdmlnYXRpb25BY3Rpb25EYXRhPiBOYXZpZ2F0aW9uQWN0aW9uRGF0YTo6
ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlCiAgICAgaWYgKCFjbGllbnRSZWRpcmVjdFNvdXJj
ZUZvckhpc3RvcnkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBPcHRpb25h
bDxPcHRpb25hbDxXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24+PiBhZENsaWNrQXR0cmlidXRp
b247Ci0gICAgZGVjb2RlciA+PiBhZENsaWNrQXR0cmlidXRpb247Ci0gICAgaWYgKCFhZENsaWNr
QXR0cmlidXRpb24pCisgICAgT3B0aW9uYWw8T3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ+PiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKKyAgICBkZWNvZGVyID4+IHBy
aXZhdGVDbGlja01lYXN1cmVtZW50OworICAgIGlmICghcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQp
CiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKICAgICByZXR1cm4ge3sgV1RGTW92ZShu
YXZpZ2F0aW9uVHlwZSksIG1vZGlmaWVycywgV1RGTW92ZShtb3VzZUJ1dHRvbiksIFdURk1vdmUo
c3ludGhldGljQ2xpY2tUeXBlKSwgV1RGTW92ZSgqdXNlckdlc3R1cmVUb2tlbklkZW50aWZpZXIp
LAogICAgICAgICBXVEZNb3ZlKCpjYW5IYW5kbGVSZXF1ZXN0KSwgV1RGTW92ZShzaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5KSwgV1RGTW92ZSgqZG93bmxvYWRBdHRyaWJ1dGUpLCBXVEZNb3Zl
KGNsaWNrTG9jYXRpb25JblJvb3RWaWV3Q29vcmRpbmF0ZXMpLAogICAgICAgICBXVEZNb3ZlKCpp
c1JlZGlyZWN0KSwgKnRyZWF0QXNTYW1lT3JpZ2luTmF2aWdhdGlvbiwgKmhhc09wZW5lZEZyYW1l
cywgKm9wZW5lZEJ5RE9NV2l0aE9wZW5lciwgV1RGTW92ZSgqcmVxdWVzdGVyT3JpZ2luKSwKLSAg
ICAgICAgV1RGTW92ZSgqdGFyZ2V0QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciksIFdURk1vdmUo
KnNvdXJjZUJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIpLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tG
b3J3YXJkTGlzdCwgV1RGTW92ZSgqY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KSwgV1RG
TW92ZSgqYWRDbGlja0F0dHJpYnV0aW9uKSB9fTsKKyAgICAgICAgV1RGTW92ZSgqdGFyZ2V0QmFj
a0ZvcndhcmRJdGVtSWRlbnRpZmllciksIFdURk1vdmUoKnNvdXJjZUJhY2tGb3J3YXJkSXRlbUlk
ZW50aWZpZXIpLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwgV1RGTW92ZSgqY2xp
ZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KSwgV1RGTW92ZSgqcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQpIH19OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oCmluZGV4IGNiZDc3MGU1N2YzZWE3ZDRmYzg5MmRj
ZWFmNDRkZmFmYzBiNWY0ZGQuLjMxOWYyZjk4MmZjNTBhYjM0MGI0YzYyODVmNzkxZTBlNGU1M2Jj
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRh
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaApAQCAt
MjYsMTAgKzI2LDEwIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIldlYk1vdXNlRXZlbnQu
aCIKLSNpbmNsdWRlIDxXZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxv
YXRQb2ludC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTYyLDcgKzYyLDcg
QEAgc3RydWN0IE5hdmlnYXRpb25BY3Rpb25EYXRhIHsKICAgICBXZWJDb3JlOjpMb2NrSGlzdG9y
eSBsb2NrSGlzdG9yeSB7IFdlYkNvcmU6OkxvY2tIaXN0b3J5OjpObyB9OwogICAgIFdlYkNvcmU6
OkxvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCB7IFdlYkNvcmU6OkxvY2tC
YWNrRm9yd2FyZExpc3Q6Ok5vIH07CiAgICAgV1RGOjpTdHJpbmcgY2xpZW50UmVkaXJlY3RTb3Vy
Y2VGb3JIaXN0b3J5OwotICAgIE9wdGlvbmFsPFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbj4g
YWRDbGlja0F0dHJpYnV0aW9uOworICAgIE9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50PiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcAppbmRleCBiNmM5MTg0
MDlmMDFhMGQyZTM2NWEzMzBjZWZlZTc3Nzc2YmFmZjBhLi5hZWMxNWU1ZDM4MWFkMWJkYjExOTdm
Mzc0ZDNiMDA3ZDQzYjUyYjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGEuY3BwCkBAIC0xMzMsNyArMTMzLDcgQEAgV2Vic2l0ZURhdGFQcm9j
ZXNzVHlwZSBXZWJzaXRlRGF0YTo6b3duZXJQcm9jZXNzKFdlYnNpdGVEYXRhVHlwZSBkYXRhVHlw
ZSkKICAgICAgICAgcmV0dXJuIFdlYnNpdGVEYXRhUHJvY2Vzc1R5cGU6Ok5ldHdvcms7CiAgICAg
Y2FzZSBXZWJzaXRlRGF0YVR5cGU6OkRldmljZUlkSGFzaFNhbHQ6CiAgICAgICAgIHJldHVybiBX
ZWJzaXRlRGF0YVByb2Nlc3NUeXBlOjpVSTsKLSAgICBjYXNlIFdlYnNpdGVEYXRhVHlwZTo6QWRD
bGlja0F0dHJpYnV0aW9uczoKKyAgICBjYXNlIFdlYnNpdGVEYXRhVHlwZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRzOgogICAgICAgICByZXR1cm4gV2Vic2l0ZURhdGFQcm9jZXNzVHlwZTo6TmV0
d29yazsKICNpZiBIQVZFKENGTkVUV09SS19BTFRFUk5BVElWRV9TRVJWSUNFKQogICAgIGNhc2Ug
V2Vic2l0ZURhdGFUeXBlOjpBbHRlcm5hdGl2ZVNlcnZpY2VzOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFUeXBlLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVR5cGUuaAppbmRleCA2NjM1ZGM1N2Q5
MDE2OGI0MTFiYmY5MTA3M2EyNjA1MzU2NzcwMjhkLi4zNWY3Mjk5NDE2Y2I5ZDRmYjAyYmY5NTYz
MzE4MjZhMTRjOGE3ZDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVR5cGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVR5cGUuaApAQCAtNTEsNyArNTEsNyBAQCBlbnVtIGNsYXNzIFdlYnNp
dGVEYXRhVHlwZSA6IHVpbnQzMl90IHsKICNlbmRpZgogICAgIERPTUNhY2hlID0gMSA8PCAxNSwK
ICAgICBEZXZpY2VJZEhhc2hTYWx0ID0gMSA8PCAxNiwKLSAgICBBZENsaWNrQXR0cmlidXRpb25z
ID0gMSA8PCAxNywKKyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHMgPSAxIDw8IDE3LAogI2lm
IEhBVkUoQ0ZORVRXT1JLX0FMVEVSTkFUSVZFX1NFUlZJQ0UpCiAgICAgQWx0ZXJuYXRpdmVTZXJ2
aWNlcyA9IDEgPDwgMTgsCiAjZW5kaWYKQEAgLTg1LDcgKzg1LDcgQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgRW51bVRyYWl0czxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gewogI2VuZGlmCiAgICAgICAg
IFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlOjpET01DYWNoZSwKICAgICAgICAgV2ViS2l0OjpXZWJz
aXRlRGF0YVR5cGU6OkRldmljZUlkSGFzaFNhbHQsCi0gICAgICAgIFdlYktpdDo6V2Vic2l0ZURh
dGFUeXBlOjpBZENsaWNrQXR0cmlidXRpb25zCisgICAgICAgIFdlYktpdDo6V2Vic2l0ZURhdGFU
eXBlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHMKICNpZiBIQVZFKENGTkVUV09SS19BTFRFUk5B
VElWRV9TRVJWSUNFKQogICAgICAgICAsIFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlOjpBbHRlcm5h
dGl2ZVNlcnZpY2VzCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDgzZDI4MGM3NWVmNWY1YmIwYTJl
YjZkMTFhYThjMGZhOTE5Yjc0ZDAuLjMyOWJlZDAxYmQyNGZiOGIxMjdlNmI5OTUyNTU4MGU3ZjI0
NDBhNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNTEsNyArNTEsNyBAQCBHUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAogCiAKLU5ldHdvcmtQcm9jZXNz
L0FkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuY3BwCitOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQWN0aXZpdHlU
cmFja2VyLmNwcAogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNw
cAogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uaAppbmRleCBkODY4ZjhiMjMz
ZWU2ZmE1NTg3MzcxOTEzN2Y0YzMxYzEyOGM3ZWM2Li4xOTA5NWRhNDg2NjFiODVjMDk0NjJlYWVi
MTVjZjFmZWY0MWE5MTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJTmF2aWdhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZp
Z2F0aW9uLmgKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVyLmgi
CiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYkNvbnRl
bnRNb2RlLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9BZENsaWNrQXR0cmlidXRpb24uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9Qcm9jZXNzSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KQEAgLTE1Myw3ICsx
NTMsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8U3Vic3RpdHV0ZURh
dGE+JiBzdWJzdGl0dXRlRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Vic3RpdHV0ZURhdGE7IH0K
IAotICAgIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbj4mIGFkQ2xp
Y2tBdHRyaWJ1dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE5hdmlnYXRpb25BY3Rpb24uYWRD
bGlja0F0dHJpYnV0aW9uOyB9CisgICAgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ+JiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fbGFzdE5hdmlnYXRpb25BY3Rpb24ucHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7IH0KIAogICAg
IHZvaWQgc2V0Q2xpZW50TmF2aWdhdGlvbkFjdGl2aXR5KFdlYktpdDo6UHJvY2Vzc1Rocm90dGxl
cjo6QWN0aXZpdHlWYXJpYW50JiYgYWN0aXZpdHkpIHsgbV9jbGllbnROYXZpZ2F0aW9uQWN0aXZp
dHkgPSBXVEZNb3ZlKGFjdGl2aXR5KTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcAppbmRleCA0MzY5Y2RkODI1YjUxNTdmYjAxMGMzZjgxYWU3OGU2NjBkYWE3NGZj
Li5lNzZlMDA3ODBhNDE0NjYyMDVlYTI5ZjYxMjA1NTNiNmIzYTZlNDQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTI4ODAsMzcgKzI4ODAsMzcgQEAgdm9p
ZCBXS1BhZ2VHZXRBcHBsaWNhdGlvbk1hbmlmZXN0X2IoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZUdl
dEFwcGxpY2F0aW9uTWFuaWZlc3QKIH0KICNlbmRpZgogCi12b2lkIFdLUGFnZUR1bXBBZENsaWNr
QXR0cmlidXRpb24oV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZUR1bXBBZENsaWNrQXR0cmlidXRpb25G
dW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KQordm9pZCBXS1BhZ2VEdW1w
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZUR1bXBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEZ1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQp
CiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5kdW1wQWRDbGlja0F0dHJpYnV0aW9uKFtjYWxsYmFja0Nv
bnRleHQsIGNhbGxiYWNrXSAoY29uc3QgU3RyaW5nJiBhZENsaWNrQXR0cmlidXRpb24pIHsKLSAg
ICAgICAgY2FsbGJhY2soV2ViS2l0Ojp0b0FQSShhZENsaWNrQXR0cmlidXRpb24uaW1wbCgpKSwg
Y2FsbGJhY2tDb250ZXh0KTsKKyAgICB0b0ltcGwocGFnZSktPmR1bXBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudChbY2FsbGJhY2tDb250ZXh0LCBjYWxsYmFja10gKGNvbnN0IFN0cmluZyYgcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQpIHsKKyAgICAgICAgY2FsbGJhY2soV2ViS2l0Ojp0b0FQSShwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5pbXBsKCkpLCBjYWxsYmFja0NvbnRleHQpOwogICAgIH0pOwog
fQogCi12b2lkIFdLUGFnZUNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKFdLUGFnZVJlZiBwYWdlLCBX
S1BhZ2VDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbkZ1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxs
YmFja0NvbnRleHQpCit2b2lkIFdLUGFnZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV0tQ
YWdlUmVmIHBhZ2UsIFdLUGFnZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGdW5jdGlvbiBj
YWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KQogewotICAgIHRvSW1wbChwYWdlKS0+Y2xl
YXJBZENsaWNrQXR0cmlidXRpb24oW2NhbGxiYWNrQ29udGV4dCwgY2FsbGJhY2tdICgpIHsKKyAg
ICB0b0ltcGwocGFnZSktPmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoW2NhbGxiYWNrQ29u
dGV4dCwgY2FsbGJhY2tdICgpIHsKICAgICAgICAgY2FsbGJhY2soY2FsbGJhY2tDb250ZXh0KTsK
ICAgICB9KTsKIH0KIAotdm9pZCBXS1BhZ2VTZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRp
bWVyRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgYm9vbCB2YWx1ZSwgV0tQYWdlU2V0QWRDbGlj
a0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9p
ZCogY2FsbGJhY2tDb250ZXh0KQordm9pZCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBib29sIHZhbHVlLCBXS1Bh
Z2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nRnVuY3Rp
b24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCkKIHsKLSAgICB0b0ltcGwocGFnZSkt
PnNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHZhbHVlLCBbY2Fs
bGJhY2tDb250ZXh0LCBjYWxsYmFja10gKCkgeworICAgIHRvSW1wbChwYWdlKS0+c2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyh2YWx1ZSwgW2NhbGxiYWNr
Q29udGV4dCwgY2FsbGJhY2tdICgpIHsKICAgICAgICAgY2FsbGJhY2soY2FsbGJhY2tDb250ZXh0
KTsKICAgICB9KTsKIH0KIAotdm9pZCBXS1BhZ2VTZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJz
aW9uVVJMRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZWYgVVJMUmVmLCBXS1BhZ2VT
ZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxi
YWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpCit2b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVm
IFVSTFJlZiwgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9y
VGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpCiB7Ci0gICAg
dG9JbXBsKHBhZ2UpLT5zZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGlu
ZyhVUkwoVVJMKCksIHRvV1RGU3RyaW5nKFVSTFJlZikpLCBbY2FsbGJhY2tDb250ZXh0LCBjYWxs
YmFja10gKCkgeworICAgIHRvSW1wbChwYWdlKS0+c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRD
b252ZXJzaW9uVVJMRm9yVGVzdGluZyhVUkwoVVJMKCksIHRvV1RGU3RyaW5nKFVSTFJlZikpLCBb
Y2FsbGJhY2tDb250ZXh0LCBjYWxsYmFja10gKCkgewogICAgICAgICBjYWxsYmFjayhjYWxsYmFj
a0NvbnRleHQpOwogICAgIH0pOwogfQogCi12b2lkIFdLUGFnZU1hcmtBZENsaWNrQXR0cmlidXRp
b25zQXNFeHBpcmVkRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlTWFya0FkQ2xpY2tB
dHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNh
bGxiYWNrQ29udGV4dCkKK3ZvaWQgV0tQYWdlTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0Fz
RXhwaXJlZEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZU1hcmtQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNh
bGxiYWNrQ29udGV4dCkKIHsKLSAgICB0b0ltcGwocGFnZSktPm1hcmtBZENsaWNrQXR0cmlidXRp
b25zQXNFeHBpcmVkRm9yVGVzdGluZyhbY2FsbGJhY2tDb250ZXh0LCBjYWxsYmFja10gKCkgewor
ICAgIHRvSW1wbChwYWdlKS0+bWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZv
clRlc3RpbmcoW2NhbGxiYWNrQ29udGV4dCwgY2FsbGJhY2tdICgpIHsKICAgICAgICAgY2FsbGJh
Y2soY2FsbGJhY2tDb250ZXh0KTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaAppbmRleCAyMGQzZWU5NmY4YWNkM2VhZDJjN2I3MzQx
MmJkMDQxNmU5M2Y2NGE2Li5mYmQ2MTE5YWZhMTFhZTA1YTIyYTYzYTY0NDc4ZjNjODZkZjgyMThj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCkBA
IC0xNjksMTYgKzE2OSwxNiBAQCB0eXBlZGVmIHZvaWQgKF5XS1BhZ2VHZXRBcHBsaWNhdGlvbk1h
bmlmZXN0QmxvY2spKHZvaWQpOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlR2V0QXBwbGljYXRpb25N
YW5pZmVzdF9iKFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VHZXRBcHBsaWNhdGlvbk1hbmlmZXN0Qmxv
Y2sgYmxvY2spOwogI2VuZGlmCiAKLXR5cGVkZWYgdm9pZCAoKldLUGFnZUR1bXBBZENsaWNrQXR0
cmlidXRpb25GdW5jdGlvbikoV0tTdHJpbmdSZWYgYWRDbGlja0F0dHJpYnV0aW9uUmVwcmVzZW50
YXRpb24sIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7Ci1XS19FWFBPUlQgdm9pZCBXS1BhZ2VEdW1w
QWRDbGlja0F0dHJpYnV0aW9uKFdLUGFnZVJlZiwgV0tQYWdlRHVtcEFkQ2xpY2tBdHRyaWJ1dGlv
bkZ1bmN0aW9uLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpOwotdHlwZWRlZiB2b2lkICgqV0tQYWdl
Q2xlYXJBZENsaWNrQXR0cmlidXRpb25GdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsK
LVdLX0VYUE9SVCB2b2lkIFdLUGFnZUNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKFdLUGFnZVJlZiwg
V0tQYWdlQ2xlYXJBZENsaWNrQXR0cmlidXRpb25GdW5jdGlvbiwgdm9pZCogY2FsbGJhY2tDb250
ZXh0KTsKLXR5cGVkZWYgdm9pZCAoKldLUGFnZVNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRl
VGltZXJGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7Ci1XS19FWFBP
UlQgdm9pZCBXS1BhZ2VTZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGlu
ZyhXS1BhZ2VSZWYgcGFnZSwgYm9vbCB2YWx1ZSwgV0tQYWdlU2V0QWRDbGlja0F0dHJpYnV0aW9u
T3ZlcnJpZGVUaW1lckZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tD
b250ZXh0KTsKLXR5cGVkZWYgdm9pZCAoKldLUGFnZVNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZl
cnNpb25VUkxGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7Ci1XS19F
WFBPUlQgdm9pZCBXS1BhZ2VTZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVz
dGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZWYgdXJsU3RyaW5nLCBXS1BhZ2VTZXRBZENsaWNr
QXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lk
KiBjYWxsYmFja0NvbnRleHQpOwotdHlwZWRlZiB2b2lkICgqV0tQYWdlTWFya0FkQ2xpY2tBdHRy
aWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4
dCk7Ci1XS19FWFBPUlQgdm9pZCBXS1BhZ2VNYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJl
ZEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZU1hcmtBZENsaWNrQXR0cmlidXRpb25z
QXNFeHBpcmVkRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRl
eHQpOwordHlwZWRlZiB2b2lkICgqV0tQYWdlRHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50RnVu
Y3Rpb24pKFdLU3RyaW5nUmVmIHByaXZhdGVDbGlja01lYXN1cmVtZW50UmVwcmVzZW50YXRpb24s
IHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VEdW1wUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQoV0tQYWdlUmVmLCBXS1BhZ2VEdW1wUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRGdW5jdGlvbiwgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKK3R5cGVkZWYgdm9pZCAoKldL
UGFnZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGdW5jdGlvbikodm9pZCogZnVuY3Rpb25D
b250ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQoV0tQYWdlUmVmLCBXS1BhZ2VDbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50RnVuY3Rpb24s
IHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQqIGZ1
bmN0aW9uQ29udGV4dCk7CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBib29sIHZhbHVl
LCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5n
RnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7Cit0eXBlZGVmIHZvaWQg
KCpXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5n
RnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VT
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdLUGFnZVJl
ZiBwYWdlLCBXS1VSTFJlZiB1cmxTdHJpbmcsIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJh
Y2tDb250ZXh0KTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZU1hcmtQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7
CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VNYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBp
cmVkRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlTWFya1ByaXZhdGVDbGlja01lYXN1
cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJh
Y2tDb250ZXh0KTsKIAogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0TW9ja0NhbWVyYU9yaWVudGF0
aW9uKFdLUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBvcmllbnRhdGlvbik7CiBXS19FWFBPUlQgYm9v
bCBXS1BhZ2VJc01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZChXS1BhZ2VSZWYg
cGFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNp
dGVEYXRhU3RvcmVSZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJz
aXRlRGF0YVN0b3JlUmVmLmNwcAppbmRleCAxODRiZmRlZjY0NmU0YWFmNmQ5OWZiODlmYTk5MDll
NjA3YjA5MTc1Li4yMGVjNzRkMWI2ZDAxMDc1ZmRjMWU2YmMxY2EwY2VhMTZiNGRhMGVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVS
ZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFT
dG9yZVJlZi5jcHAKQEAgLTgxNyw5ICs4MTcsOSBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUNs
ZWFyQWxsRGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9ucyhXS1dlYnNpdGVEYXRhU3RvcmVSZQog
I2VuZGlmCiB9CiAKLXZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJBZENsaWNrQXR0cmlidXRp
b25zVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0
b3JlUmVmLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhckFkQ2xpY2tBdHRy
aWJ1dGlvbnNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsRnVuY3Rpb24gY2FsbGJhY2spCit2b2lk
IFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdl
YnNpdGVEYXRhUmVtb3ZhbChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCB2b2lk
KiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50
c1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWxGdW5jdGlvbiBjYWxsYmFjaykKIHsKLSAgICBPcHRp
b25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcyA9IFdlYktpdDo6V2Vic2l0
ZURhdGFUeXBlOjpBZENsaWNrQXR0cmlidXRpb25zOworICAgIE9wdGlvblNldDxXZWJLaXQ6Oldl
YnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzID0gV2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50czsKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5y
ZW1vdmVEYXRhKGRhdGFUeXBlcywgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKDApLCBbY29udGV4
dCwgY2FsbGJhY2tdIHsKICAgICAgICAgY2FsbGJhY2soY29udGV4dCk7CiAgICAgfSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVS
ZWYuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJl
Zi5oCmluZGV4IDFiNmI4MzU4YThiNzA5MGZjNTc0NTMxOWM3MWU2MDA5MWMyN2Y3YmMuLmZkNDE3
NmQ0ZjJlMmUwNGQ2NDM0OGM3YTk5YjE4YTBiZWI5ZmFkZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oCkBAIC0xODYs
OCArMTg2LDggQEAgV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlR2V0QWxsU3RvcmFn
ZUFjY2Vzc0VudHJpZXMoV0tXZWJzaXRlRGF0YVN0b3JlUmUKIAogV0tfRVhQT1JUIHZvaWQgV0tX
ZWJzaXRlRGF0YVN0b3JlQ2xlYXJBbGxEZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25zKFdLV2Vi
c2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYpOwogCi10eXBlZGVmIHZvaWQgKCpXS1dlYnNp
dGVEYXRhU3RvcmVDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJvdWdoV2Vic2l0ZURhdGFSZW1v
dmFsRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7Ci1XS19FWFBPUlQgdm9pZCBXS1dl
YnNpdGVEYXRhU3RvcmVDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJvdWdoV2Vic2l0ZURhdGFS
ZW1vdmFsKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQs
IFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRl
RGF0YVJlbW92YWxGdW5jdGlvbiBjYWxsYmFjayk7Cit0eXBlZGVmIHZvaWQgKCpXS1dlYnNpdGVE
YXRhU3RvcmVDbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Rocm91Z2hXZWJzaXRlRGF0YVJl
bW92YWxGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdL
V2Vic2l0ZURhdGFTdG9yZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNp
dGVEYXRhUmVtb3ZhbChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCB2b2lkKiBj
b250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Ro
cm91Z2hXZWJzaXRlRGF0YVJlbW92YWxGdW5jdGlvbiBjYWxsYmFjayk7CiAKIFdLX0VYUE9SVCB2
b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldENhY2hlTW9kZWxTeW5jaHJvbm91c2x5Rm9yVGVzdGlu
ZyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS0NhY2hlTW9kZWwgY2FjaGVN
b2RlbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhUmVjb3JkLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2Vic2l0ZURhdGFSZWNvcmQubW0KaW5kZXggNDU0MDNkMTY5MzZlYWE4MjU0Y2Q1MDVmYTg4
NGVkZjBkYWZlMDQ5Yy4uZTNhMDQ0NmMwYjU3YmVhYjcwNGY2YjNmYmI5YTMyMzNiMjAyYWMyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFSZWNvcmQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFSZWNvcmQubW0KQEAgLTQ4LDcgKzQ4LDcgQEAgTlNTdHJpbmcgKiBjb25zdCBfV0tX
ZWJzaXRlRGF0YVR5cGVIU1RTQ2FjaGUgPSBAIl9XS1dlYnNpdGVEYXRhVHlwZUhTVFNDYWNoZSI7
CiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVNlYXJjaEZpZWxkUmVjZW50U2Vh
cmNoZXMgPSBAIl9XS1dlYnNpdGVEYXRhVHlwZVNlYXJjaEZpZWxkUmVjZW50U2VhcmNoZXMiOwog
TlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
ID0gQCJfV0tXZWJzaXRlRGF0YVR5cGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIjsKIE5TU3RyaW5n
ICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlQ3JlZGVudGlhbHMgPSBAIl9XS1dlYnNpdGVEYXRh
VHlwZUNyZWRlbnRpYWxzIjsKLU5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlQWRD
bGlja0F0dHJpYnV0aW9ucyA9IEAiX1dLV2Vic2l0ZURhdGFUeXBlQWRDbGlja0F0dHJpYnV0aW9u
cyI7CitOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVByaXZhdGVDbGlja01lYXN1
cmVtZW50cyA9IEAiX1dLV2Vic2l0ZURhdGFUeXBlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzIjsK
IE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlQWx0ZXJuYXRpdmVTZXJ2aWNlcyA9
IEAiX1dLV2Vic2l0ZURhdGFUeXBlQWx0ZXJuYXRpdmVTZXJ2aWNlcyI7CiAKICNpZiBQTEFURk9S
TShNQUMpCkBAIC0xMDIsOCArMTAyLDggQEAgc3RhdGljIE5TU3RyaW5nICpkYXRhVHlwZXNUb1N0
cmluZyhOU1NldCAqZGF0YVR5cGVzKQogICAgICAgICBbYXJyYXkgYWRkT2JqZWN0OkAiUmVzb3Vy
Y2UgTG9hZCBTdGF0aXN0aWNzIl07CiAgICAgaWYgKFtkYXRhVHlwZXMgY29udGFpbnNPYmplY3Q6
X1dLV2Vic2l0ZURhdGFUeXBlQ3JlZGVudGlhbHNdKQogICAgICAgICBbYXJyYXkgYWRkT2JqZWN0
OkAiQ3JlZGVudGlhbHMiXTsKLSAgICBpZiAoW2RhdGFUeXBlcyBjb250YWluc09iamVjdDpfV0tX
ZWJzaXRlRGF0YVR5cGVBZENsaWNrQXR0cmlidXRpb25zXSkKLSAgICAgICAgW2FycmF5IGFkZE9i
amVjdDpAIkFkIENsaWNrIEF0dHJpYnV0aW9ucyJdOworICAgIGlmIChbZGF0YVR5cGVzIGNvbnRh
aW5zT2JqZWN0Ol9XS1dlYnNpdGVEYXRhVHlwZVByaXZhdGVDbGlja01lYXN1cmVtZW50c10pCisg
ICAgICAgIFthcnJheSBhZGRPYmplY3Q6QCJQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50cyJdOwog
ICAgIGlmIChbZGF0YVR5cGVzIGNvbnRhaW5zT2JqZWN0Ol9XS1dlYnNpdGVEYXRhVHlwZUFsdGVy
bmF0aXZlU2VydmljZXNdKQogICAgICAgICBbYXJyYXkgYWRkT2JqZWN0OkAiQWx0ZXJuYXRpdmUg
U2VydmljZXMiXTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2Vic2l0ZURhdGFSZWNvcmRJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRJbnRlcm5hbC5oCmluZGV4IDIxZWVjYjM3
YzYzZWE0MTgzNjBiZGUxNTA4NmFiZDljMjdhNGE2OTUuLjM4YzgzNWRjNzgyMjZmM2RjOWU4MDY2
MGNlZDMxZDdkZDdmZWVmZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZEludGVybmFsLmgKQEAgLTc0
LDggKzc0LDggQEAgc3RhdGljIGlubGluZSBPcHRpb25hbDxXZWJzaXRlRGF0YVR5cGU+IHRvV2Vi
c2l0ZURhdGFUeXBlKE5TU3RyaW5nICp3ZWJzaXRlRGF0YVQKICAgICAgICAgcmV0dXJuIFdlYnNp
dGVEYXRhVHlwZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczsKICAgICBpZiAoW3dlYnNpdGVEYXRh
VHlwZSBpc0VxdWFsVG9TdHJpbmc6X1dLV2Vic2l0ZURhdGFUeXBlQ3JlZGVudGlhbHNdKQogICAg
ICAgICByZXR1cm4gV2Vic2l0ZURhdGFUeXBlOjpDcmVkZW50aWFsczsKLSAgICBpZiAoW3dlYnNp
dGVEYXRhVHlwZSBpc0VxdWFsVG9TdHJpbmc6X1dLV2Vic2l0ZURhdGFUeXBlQWRDbGlja0F0dHJp
YnV0aW9uc10pCi0gICAgICAgIHJldHVybiBXZWJzaXRlRGF0YVR5cGU6OkFkQ2xpY2tBdHRyaWJ1
dGlvbnM7CisgICAgaWYgKFt3ZWJzaXRlRGF0YVR5cGUgaXNFcXVhbFRvU3RyaW5nOl9XS1dlYnNp
dGVEYXRhVHlwZVByaXZhdGVDbGlja01lYXN1cmVtZW50c10pCisgICAgICAgIHJldHVybiBXZWJz
aXRlRGF0YVR5cGU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50czsKICNpZiBIQVZFKENGTkVUV09S
S19BTFRFUk5BVElWRV9TRVJWSUNFKQogICAgIGlmIChbd2Vic2l0ZURhdGFUeXBlIGlzRXF1YWxU
b1N0cmluZzpfV0tXZWJzaXRlRGF0YVR5cGVBbHRlcm5hdGl2ZVNlcnZpY2VzXSkKICAgICAgICAg
cmV0dXJuIFdlYnNpdGVEYXRhVHlwZTo6QWx0ZXJuYXRpdmVTZXJ2aWNlczsKQEAgLTEzNSw4ICsx
MzUsOCBAQCBzdGF0aWMgaW5saW5lIFJldGFpblB0cjxOU1NldD4gdG9XS1dlYnNpdGVEYXRhVHlw
ZXMoT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdAogICAgICAgICBbd2tXZWJzaXRlRGF0YVR5
cGVzIGFkZE9iamVjdDpfV0tXZWJzaXRlRGF0YVR5cGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzXTsK
ICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkNyZWRl
bnRpYWxzKSkKICAgICAgICAgW3drV2Vic2l0ZURhdGFUeXBlcyBhZGRPYmplY3Q6X1dLV2Vic2l0
ZURhdGFUeXBlQ3JlZGVudGlhbHNdOwotICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5z
KFdlYnNpdGVEYXRhVHlwZTo6QWRDbGlja0F0dHJpYnV0aW9ucykpCi0gICAgICAgIFt3a1dlYnNp
dGVEYXRhVHlwZXMgYWRkT2JqZWN0Ol9XS1dlYnNpdGVEYXRhVHlwZUFkQ2xpY2tBdHRyaWJ1dGlv
bnNdOworICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzKSkKKyAgICAgICAgW3drV2Vic2l0ZURhdGFUeXBlcyBh
ZGRPYmplY3Q6X1dLV2Vic2l0ZURhdGFUeXBlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzXTsKICNp
ZiBIQVZFKENGTkVUV09SS19BTFRFUk5BVElWRV9TRVJWSUNFKQogICAgIGlmICh3ZWJzaXRlRGF0
YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6QWx0ZXJuYXRpdmVTZXJ2aWNlcykpCiAg
ICAgICAgIFt3a1dlYnNpdGVEYXRhVHlwZXMgYWRkT2JqZWN0Ol9XS1dlYnNpdGVEYXRhVHlwZUFs
dGVybmF0aXZlU2VydmljZXNdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZFByaXZhdGUuaAppbmRleCA2Y2Vk
ZmY3ZTc2YjU0ZWRiNWY4MDEzMjQ4MDAyMDBiN2I5ZTgxODRjLi42ZGUwZjFmOGYxNzkwZTliYTIz
YTYxZDdkMzY3YmMyMDUwZTQ3NjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZFByaXZhdGUuaApAQCAt
MzQsNyArMzQsNyBAQCBXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5
cGVNZWRpYUtleXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMAogV0tfRVhURVJOIE5TU3RyaW5n
ICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlU2VhcmNoRmllbGRSZWNlbnRTZWFyY2hlcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIFdLX0VYVEVSTiBOU1N0cmlu
ZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVJlc291cmNlTG9hZFN0YXRpc3RpY3MgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBXS19FWFRFUk4gTlNTdHJpbmcg
KiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVDcmVkZW50aWFscyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzKSwgaW9zKDExLjApKTsKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dl
YnNpdGVEYXRhVHlwZUFkQ2xpY2tBdHRyaWJ1dGlvbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xNSksIGlvcygxMy4wKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRl
RGF0YVR5cGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xNSksIGlvcygxMy4wKSk7CiBXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRl
RGF0YVR5cGVBbHRlcm5hdGl2ZVNlcnZpY2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9y
ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3Rv
cmUubW0KaW5kZXggNzZmZGFjMGU5MDBmNGUyZjBmNTRmNmNmMjFkOGJmNzA2YTIwYjIxMi4uMWIw
OGYwZDY1OTNkYjljNTllYTRhZTdkOWYzOTdlYjYzZjU4NjRhMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBA
IC0yMzksNyArMjM5LDcgQEAgKyAoTlNTZXQ8TlNTdHJpbmcgKj4gKilfYWxsV2Vic2l0ZURhdGFU
eXBlc0luY2x1ZGluZ1ByaXZhdGUKICAgICAgICAgICAgIF9XS1dlYnNpdGVEYXRhVHlwZVNlYXJj
aEZpZWxkUmVjZW50U2VhcmNoZXMsCiAgICAgICAgICAgICBfV0tXZWJzaXRlRGF0YVR5cGVSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLAogICAgICAgICAgICAgX1dLV2Vic2l0ZURhdGFUeXBlQ3JlZGVu
dGlhbHMsCi0gICAgICAgICAgICBfV0tXZWJzaXRlRGF0YVR5cGVBZENsaWNrQXR0cmlidXRpb25z
LAorICAgICAgICAgICAgX1dLV2Vic2l0ZURhdGFUeXBlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRz
LAogICAgICAgICAgICAgX1dLV2Vic2l0ZURhdGFUeXBlQWx0ZXJuYXRpdmVTZXJ2aWNlcwogI2lm
ICFUQVJHRVRfT1NfSVBIT05FCiAgICAgICAgICAgICAsIF9XS1dlYnNpdGVEYXRhVHlwZVBsdWdJ
bkRhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tCmluZGV4IDc1ZjRkNTgzNTMyY2Q5ZDU2N2ZlNjQ1MGYzMDhmZjM0Njk1N2Iy
OTguLmRjNDIxZWY1ODBiYzVmMGZiYjY2MTU0MjYyYzIzY2FlMmQ1MTBmYjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpA
QCAtNTQ2LDcgKzU0Niw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6
ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhCiAgICAgcGFyYW1ldGVy
cy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllciA9IGlkZW50aWZ5aW5nRGF0YUZyb21D
b29raWVTdG9yYWdlKFtbTlNIVFRQQ29va2llU3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFn
ZV0gX2Nvb2tpZVN0b3JhZ2VdKTsKICNlbmRpZgogCi0gICAgcGFyYW1ldGVycy5lbmFibGVBZENs
aWNrQXR0cmlidXRpb25EZWJ1Z01vZGUgPSBbZGVmYXVsdHMgYm9vbEZvcktleTpbTlNTdHJpbmcg
c3RyaW5nV2l0aEZvcm1hdDpAIkV4cGVyaW1lbnRhbCVAIiwgV2ViUHJlZmVyZW5jZXNLZXk6OmFk
Q2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWRLZXkoKS5jcmVhdGVDRlN0cmluZygpLmdl
dCgpXV07CisgICAgcGFyYW1ldGVycy5lbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVn
TW9kZSA9IFtkZWZhdWx0cyBib29sRm9yS2V5OltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAi
RXhwZXJpbWVudGFsJUAiLCBXZWJQcmVmZXJlbmNlc0tleTo6cHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnREZWJ1Z01vZGVFbmFibGVkS2V5KCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKV1dOwogfQogCiB2
b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUludmFsaWRhdGVDb250ZXh0KCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHku
Y3BwCmluZGV4IGYwZjdiMmRmNWU0MTkyYWM0NTQ4YjhmN2JjYjk5N2QxZjEzMGQ0NjAuLjJhMjlk
OGRhNzY3MDVhODExNGI3OGM5ZDlmMDNlOTBhYmQ0N2I5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5LmNwcApAQCAt
NjU0LDkgKzY1NCw5IEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnRpbWVsaW5lUmVjb3JkaW5n
Q2hhbmdlZChib29sIGFjdGl2ZSkKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnNldERldmVsb3Bl
clByZWZlcmVuY2VPdmVycmlkZShXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQ6OkRldmVsb3BlclBy
ZWZlcmVuY2UgZGV2ZWxvcGVyUHJlZmVyZW5jZSwgT3B0aW9uYWw8Ym9vbD4gb3ZlcnJpZGVWYWx1
ZSkKIHsKICAgICBzd2l0Y2ggKGRldmVsb3BlclByZWZlcmVuY2UpIHsKLSAgICBjYXNlIEluc3Bl
Y3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5jZTo6QWRDbGlja0F0dHJpYnV0aW9uRGVidWdN
b2RlRW5hYmxlZDoKKyAgICBjYXNlIEluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5j
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkOgogICAgICAgICBpZiAo
bV9pbnNwZWN0ZWRQYWdlKQotICAgICAgICAgICAgbV9pbnNwZWN0ZWRQYWdlLT53ZWJzaXRlRGF0
YVN0b3JlKCkuc2V0QWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlKG92ZXJyaWRlVmFsdWUgJiYg
b3ZlcnJpZGVWYWx1ZS52YWx1ZSgpKTsKKyAgICAgICAgICAgIG1faW5zcGVjdGVkUGFnZS0+d2Vi
c2l0ZURhdGFTdG9yZSgpLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKG92ZXJy
aWRlVmFsdWUgJiYgb3ZlcnJpZGVWYWx1ZS52YWx1ZSgpKTsKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgY2FzZSBJbnNwZWN0b3JDbGllbnQ6OkRldmVsb3BlclByZWZlcmVuY2U6OklUUERlYnVnTW9k
ZUVuYWJsZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA2ZWUyNmQwNDZiMGIyMTg4NzA3M2U2ZWU3MzQ5
ODQzZGFkMzM1YWZhLi43YjI0NWUzYzA0ODVjNTNjYjc5M2YzZjRjMmI3MGFiM2RkMDFiODUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5jcHAKQEAgLTEyNzIsMTIgKzEyNzIsMTIgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpzZXREb21haW5zV2l0aFVzZXJJbnRlcmFjdGlvbihIYXNoU2V0PFdlYkNvcmU6OlJl
Z2lzdHIKIH0KICNlbmRpZiAvLyBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogCi12
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZShi
b29sIGRlYnVnTW9kZSkKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnREZWJ1Z01vZGUoYm9vbCBkZWJ1Z01vZGUpCiB7CiAgICAgaWYgKCFjYW5TZW5k
TWVzc2FnZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzczo6U2V0QWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlKGRlYnVnTW9kZSksIDApOwor
ICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudERlYnVnTW9kZShkZWJ1Z01vZGUpLCAwKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpzZW5kUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3RpbmcoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
aAppbmRleCBkMDMwNDNmNzhkMDIxMzJmNDM5MzExZDI2MjdiMDhjM2M3ZGFhZDIyLi5iNmVmNzU0
YmI1MTJhZTA4OGQ1MDIyZGJhOGE1NGZlODQwNGEyNzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMjAyLDcg
KzIwMiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERvbWFpbnNXaXRoVXNlckludGVyYWN0aW9u
KEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+JiYpOwogI2VuZGlmCiAKLSAgICB2
b2lkIHNldEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZShib29sKTsKKyAgICB2b2lkIHNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKGJvb2wpOwogICAgIAogICAgIHZvaWQgc3lu
dGhlc2l6ZUFwcElzQmFja2dyb3VuZChib29sIGJhY2tncm91bmQpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBjNjYwZTU2NmIwOGRkMzY3OTEzZDIyNDUw
NmJkZjFlZGYwMGQ1ZDg3Li42MGE1ODc1MDI5NzUxZTdjMDIzNjU5YTIwOWY4N2E2ZWM0NTA1MTdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEzOSw3ICsx
MzksNiBAQAogI2luY2x1ZGUgIldlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlci5oIgogI2lu
Y2x1ZGUgIldlYldoZWVsRXZlbnRDb2FsZXNjZXIuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0
b3JlLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9BZENsaWNrQXR0cmlidXRpb24uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0JpdG1hcEltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db21wb3NpdGlvbkhp
Z2hsaWdodC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFu
c2Zlci5oPgpAQCAtMTYzLDYgKzE2Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVh
bVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1FdmVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1B1YmxpY1N1ZmZp
eC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyRW1iZWRkZWRPYmplY3QuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaD4KQEAgLTQ2NTIsMTcgKzQ2NTIsMTcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYKICAgICBmcmFtZS0+ZGlkQ29tbWl0TG9hZChtaW1l
VHlwZSwgd2ViQ2VydGlmaWNhdGVJbmZvLCBjb250YWluc1BsdWdpbkRvY3VtZW50KTsKIAogICAg
IGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSkgewotICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpB
ZENsaWNrQXR0cmlidXRpb24+IGFkQ2xpY2tBdHRyaWJ1dGlvbjsKLSAgICAgICAgaWYgKG1fbmV3
UGFnZU5hdmlnYXRpb25BZENsaWNrQXR0cmlidXRpb24pCi0gICAgICAgICAgICBhZENsaWNrQXR0
cmlidXRpb24gPSBtX25ld1BhZ2VOYXZpZ2F0aW9uQWRDbGlja0F0dHJpYnV0aW9uOwotICAgICAg
ICBlbHNlIGlmIChuYXZpZ2F0aW9uICYmIG5hdmlnYXRpb24tPmFkQ2xpY2tBdHRyaWJ1dGlvbigp
KQotICAgICAgICAgICAgYWRDbGlja0F0dHJpYnV0aW9uID0gbmF2aWdhdGlvbi0+YWRDbGlja0F0
dHJpYnV0aW9uKCk7Ci0gICAgICAgIGlmIChhZENsaWNrQXR0cmlidXRpb24pIHsKLSAgICAgICAg
ICAgIGlmIChhZENsaWNrQXR0cmlidXRpb24tPmRlc3RpbmF0aW9uKCkubWF0Y2hlcyhmcmFtZS0+
dXJsKCkpKQotICAgICAgICAgICAgICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2Vz
cygpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTdG9yZUFkQ2xpY2tBdHRyaWJ1dGlv
bihtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCAqYWRDbGlja0F0dHJpYnV0aW9uKSwg
MCk7CisgICAgICAgIE9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiBw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKKyAgICAgICAgaWYgKG1fbmV3UGFnZU5hdmlnYXRpb25Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCkKKyAgICAgICAgICAgIHByaXZhdGVDbGlja01lYXN1cmVt
ZW50ID0gbV9uZXdQYWdlTmF2aWdhdGlvblByaXZhdGVDbGlja01lYXN1cmVtZW50OworICAgICAg
ICBlbHNlIGlmIChuYXZpZ2F0aW9uICYmIG5hdmlnYXRpb24tPnByaXZhdGVDbGlja01lYXN1cmVt
ZW50KCkpCisgICAgICAgICAgICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IG5hdmlnYXRpb24t
PnByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgICAgIGlmIChwcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCkgeworICAgICAgICAgICAgaWYgKHByaXZhdGVDbGlja01lYXN1cmVtZW50LT5kZXN0
aW5hdGlvbigpLm1hdGNoZXMoZnJhbWUtPnVybCgpKSkKKyAgICAgICAgICAgICAgICB3ZWJzaXRl
RGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6U3RvcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Np
b25JRCgpLCAqcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpLCAwKTsKICAgICAgICAgfQogICAgIH0K
LSAgICBtX25ld1BhZ2VOYXZpZ2F0aW9uQWRDbGlja0F0dHJpYnV0aW9uLnJlc2V0KCk7CisgICAg
bV9uZXdQYWdlTmF2aWdhdGlvblByaXZhdGVDbGlja01lYXN1cmVtZW50LnJlc2V0KCk7CiAKICAg
ICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkpIHsKICAgICAgICAgbV9tYWluRnJhbWVIYXNDdXN0
b21Db250ZW50UHJvdmlkZXIgPSBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlcjsKQEAgLTU1
MjQsNyArNTUyNCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVOZXdQYWdlKEZyYW1lSW5m
b0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIFdlYlBhCiAgICAgYXV0byogb3JpZ2lu
YXRpbmdQYWdlID0gbV9wcm9jZXNzLT53ZWJQYWdlKG9yaWdpbmF0aW5nUGFnZUlEKTsKICAgICBh
dXRvIG9yaWdpbmF0aW5nRnJhbWVJbmZvID0gQVBJOjpGcmFtZUluZm86OmNyZWF0ZShXVEZNb3Zl
KG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSksIG9yaWdpbmF0aW5nUGFnZSk7CiAgICAgYXV0byBt
YWluRnJhbWVVUkwgPSBtX21haW5GcmFtZSA/IG1fbWFpbkZyYW1lLT51cmwoKSA6IFVSTCgpOwot
ICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBtYWluRnJhbWVVUkwsIHJlcXVlc3QsIHJlcGx5ID0gV1RGTW92ZShyZXBseSks
IGFkQ2xpY2tBdHRyaWJ1dGlvbiA9IG5hdmlnYXRpb25BY3Rpb25EYXRhLmFkQ2xpY2tBdHRyaWJ1
dGlvbl0gKFJlZlB0cjxXZWJQYWdlUHJveHk+IG5ld1BhZ2UpIG11dGFibGUgeworICAgIGF1dG8g
Y29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBtYWluRnJhbWVVUkwsIHJlcXVlc3QsIHJlcGx5ID0gV1RGTW92ZShyZXBseSksIHByaXZhdGVD
bGlja01lYXN1cmVtZW50ID0gbmF2aWdhdGlvbkFjdGlvbkRhdGEucHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRdIChSZWZQdHI8V2ViUGFnZVByb3h5PiBuZXdQYWdlKSBtdXRhYmxlIHsKICAgICAgICAg
aWYgKCFuZXdQYWdlKSB7CiAgICAgICAgICAgICByZXBseShXVEY6Om51bGxvcHQsIFdURjo6bnVs
bG9wdCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC01NTM2LDcgKzU1MzYsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6Y3JlYXRlTmV3UGFnZShGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFt
ZUluZm9EYXRhLCBXZWJQYQogCiAgICAgICAgIG5ld1BhZ2UtPm1fc2hvdWxkU3VwcHJlc3NBcHBM
aW5rc0luTmV4dE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiA9IG1haW5GcmFtZVVSTC5ob3N0KCkg
PT0gcmVxdWVzdC51cmwoKS5ob3N0KCk7CiAKLSAgICAgICAgbmV3UGFnZS0+bV9uZXdQYWdlTmF2
aWdhdGlvbkFkQ2xpY2tBdHRyaWJ1dGlvbiA9IGFkQ2xpY2tBdHRyaWJ1dGlvbjsKKyAgICAgICAg
bmV3UGFnZS0+bV9uZXdQYWdlTmF2aWdhdGlvblByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CiAjaWYgSEFWRShBUFBfU1NPKQogICAgICAgICBuZXdQYWdl
LT5tX3Nob3VsZFN1cHByZXNzU09BdXRob3JpemF0aW9uSW5OZXh0TmF2aWdhdGlvblBvbGljeURl
Y2lzaW9uID0gdHJ1ZTsKICNlbmRpZgpAQCAtOTg4MywyOSArOTg4MywyOSBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6c3lzdGVtUHJldmlld0FjdGlvblRyaWdnZXJlZChjb25zdCBXZWJDb3JlOjpTeXN0
ZW1QcmV2aWV3SW5mbwogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkdW1wQWRDbGlj
a0F0dHJpYnV0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZHVtcFByaXZhdGVDbGlja01lYXN1
cmVtZW50KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7Ci0gICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RHVtcEFkQ2xpY2tBdHRy
aWJ1dGlvbihtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpKSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkR1bXBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudChtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJBZENsaWNr
QXR0cmlidXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHdlYnNpdGVE
YXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3M6OkNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKG1fd2Vic2l0ZURhdGFTdG9y
ZS0+c2Vzc2lvbklEKCkpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgd2Vic2l0
ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6Q2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChtX3dlYnNpdGVE
YXRhU3RvcmUtPnNlc3Npb25JRCgpKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6c2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZv
clRlc3RpbmcoYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3
b3JrUHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OlNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKG1fd2Vic2l0ZURh
dGFTdG9yZS0+c2Vzc2lvbklEKCksIHZhbHVlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OworICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcobV93ZWJzaXRlRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwg
dmFsdWUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5OjpzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyhjb25zdCBV
UkwmIHVybCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBXZWJQYWdlUHJveHk6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVS
TEZvclRlc3RpbmcoY29uc3QgVVJMJiB1cmwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nl
c3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRBZENs
aWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyhtX3dlYnNpdGVEYXRhU3RvcmUt
PnNlc3Npb25JRCgpLCB1cmwpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgd2Vi
c2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9u
VVJMRm9yVGVzdGluZyhtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCB1cmwpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjptYXJrQWRD
bGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6Om1hcmtQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0
d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpNYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcobV93ZWJzaXRlRGF0
YVN0b3JlLT5zZXNzaW9uSUQoKSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICB3
ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpNYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBp
cmVkRm9yVGVzdGluZyhtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogfQogCiAjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDdjZWZiZmM2OTQ1ZWRmZTQz
YWU1NmMyZDU2NGMwZTgxZTk1YmI0YTYuLjhhNGNlYWFhNWQzNjE1MTQzNmFkOGJkZWQzMWFiOGNi
MTk5ZWM3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNjg0
LDExICsxNjg0LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xv
YWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJDb3JlOjpD
b250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwog
I2VuZGlmCiAKLSAgICB2b2lkIGR1bXBBZENsaWNrQXR0cmlidXRpb24oQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChjb25zdCBTdHJpbmcmKT4mJik7Ci0gICAgdm9pZCBjbGVhckFkQ2xpY2tBdHRyaWJ1
dGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0QWRDbGlja0F0
dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNp
b25VUkxGb3JUZXN0aW5nKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
Ci0gICAgdm9pZCBtYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGR1bXBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmKTsKKyAgICB2
b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZv
clRlc3RpbmcoYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2
b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoY29u
c3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIG1hcmtQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICB2b2lkIHNw
ZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJT
cGVlY2hTeW50aGVzaXNWb2ljZT4mJik+JiYpOwpAQCAtMjg4Nyw3ICsyODg3LDcgQEAgcHJpdmF0
ZToKIAogICAgIHNpemVfdCBtX3N1c3BlbmRNZWRpYVBsYXliYWNrQ291bnRlciB7IDAgfTsKIAot
ICAgIE9wdGlvbmFsPFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbj4gbV9uZXdQYWdlTmF2aWdh
dGlvbkFkQ2xpY2tBdHRyaWJ1dGlvbjsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudD4gbV9uZXdQYWdlTmF2aWdhdGlvblByaXZhdGVDbGlja01lYXN1cmVtZW50
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGRhZDIw
NzAxYmQzOTg5Mzk4NWM4NDJjOGExODY2YTVmNTBjZTVmZDUuLjBlNDQzOTI0NGZmODFhYjU1ZDZh
ZTFhNDI5ZGEzMzlkODZkNmQ2NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0yMDUwLDkgKzIwNTAs
OSBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmlzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVt
ZXJhbChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKAogI2VuZGlmCiB9CiAKLXZvaWQgV2Vic2l0ZURh
dGFTdG9yZTo6c2V0QWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlKGJvb2wgZW5hYmxlZCkKK3Zv
aWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUo
Ym9vbCBlbmFibGVkKQogewotICAgIG5ldHdvcmtQcm9jZXNzKCkuc2V0QWRDbGlja0F0dHJpYnV0
aW9uRGVidWdNb2RlKGVuYWJsZWQpOworICAgIG5ldHdvcmtQcm9jZXNzKCkuc2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUoZW5hYmxlZCk7CiB9CiAKICNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IGYzZmU2NmQwNTk0MWFhM2YxN2Rj
MjkzMjUyZjUwN2MyNWZiYzFiY2UuLmQ1YjRlM2QzMjExNTIwMWI2YTA5OTQzZjk2NTk3YjA1YjZi
ZGZmOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTE0OSw3ICsxNDksNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKGJvb2wsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBpc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVy
YWwoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgY29uc3Q7CiAKLSAgICB2b2lkIHNl
dEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZShib29sKTsKKyAgICB2b2lkIHNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50RGVidWdNb2RlKGJvb2wpOwogCiAgICAgdWludDY0X3QgcGVyT3JpZ2lu
U3RvcmFnZVF1b3RhKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPnBl
ck9yaWdpblN0b3JhZ2VRdW90YSgpOyB9CiAgICAgdWludDY0X3QgcGVyVGhpcmRQYXJ0eU9yaWdp
blN0b3JhZ2VRdW90YSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzAyNzQ5NGI3M2FjY2VjNWVmZDgxYzY5NGQzYTg1M2I0
ZWRlZjBjYS4uNTE5YTVjOTNlNDNlMGIwZGJiNjk2ZmY0YzYyZGRjYWIwYzlhNTVlNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjM5
LDcgKzEyMzksNyBAQAogCQk2M0MzMkMyODFFOTgxMTkwMDA2OTlCRDAgLyogX1dLR2VvbG9jYXRp
b25Qb3NpdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2M0MzMkMyNzFFOTgxMTkwMDA2OTlCRDAgLyogX1dLR2VvbG9jYXRpb25Qb3Np
dGlvbkludGVybmFsLmggKi87IH07CiAJCTY1Qjg2RjFFMTJGMTFERTMwMEI3REQ4QSAvKiBXS0J1
bmRsZUluc3BlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNjVCODZGMTgxMkYxMUQ3QjAwQjdERDhBIC8qIFdLQnVuZGxlSW5zcGVjdG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkE1MDgwQkYx
RjBFREFBQTAwRTYxN0M1IC8qIFdLV2luZG93RmVhdHVyZXNQcml2YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QTUwODBCRTFGMEVEQUFBMDBFNjE3
QzUgLyogV0tXaW5kb3dGZWF0dXJlc1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk2QkQwNTg2NTIyMENFOEMyMDAwQkVENUMgLyogQWRD
bGlja0F0dHJpYnV0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNkJEMDU4NjMyMjBDRThDMjAwMEJFRDVDIC8qIEFkQ2xpY2tBdHRyaWJ1
dGlvbk1hbmFnZXIuaCAqLzsgfTsKKwkJNkJEMDU4NjUyMjBDRThDMjAwMEJFRDVDIC8qIFByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkJEMDU4NjMyMjBDRThDMjAwMEJFRDVDIC8qIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlci5oICovOyB9OwogCQk2QkU5NjlDMTFFNTRENDUyMDA4Qjc0ODMg
LyogY29yZVByZWRpY3Rpb25fbW9kZWwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZCRTk2OUMwMUU1NEQ0NTIwMDhCNzQ4MyAvKiBjb3JlUHJlZGljdGlv
bl9tb2RlbCAqLzsgfTsKIAkJNkJFOTY5Q0IxRTU0RDRDRjAwOEI3NDgzIC8qIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NDbGFzc2lmaWVyQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZCRTk2OUM5MUU1NEQ0Q0YwMDhCNzQ4MyAvKiBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzQ2xhc3NpZmllckNvY29hLmggKi87IH07CiAJCTZCRTk2OUNEMUU1NEUwNTQw
MDhCNzQ4MyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkJFOTY5Q0MxRTU0RTA1NDAwOEI3
NDgzIC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyLmggKi87IH07CkBAIC00MjI0
LDggKzQyMjQsOCBAQAogCQk2NUI4NkYxNzEyRjExRDdCMDBCN0REOEEgLyogV0tCdW5kbGVJbnNw
ZWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tCdW5kbGVJ
bnNwZWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NUI4NkYxODEyRjEx
RDdCMDBCN0REOEEgLyogV0tCdW5kbGVJbnNwZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tCdW5kbGVJbnNwZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkE1MDgwQkUxRjBFREFBQTAwRTYxN0M1IC8qIFdLV2luZG93RmVhdHVyZXNQcml2YXRl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2luZG93RmVhdHVyZXNQcml2YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTZCRDA1ODYzMjIwQ0U4QzIwMDBCRUQ1QyAvKiBBZENsaWNrQXR0
cmlidXRpb25NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFn
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkJEMDU4NjQyMjBDRThDMjAwMEJF
RDVDIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
QWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTZCRDA1ODYzMjIwQ0U4QzIwMDBCRUQ1QyAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZCRDA1ODY0MjIwQ0U4QzIwMDBCRUQ1QyAv
KiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNkJFOTY5QzAxRTU0RDQ1MjAwOEI3NDgzIC8qIGNvcmVQcmVkaWN0aW9uX21vZGVs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvcmVQcmVkaWN0aW9uX21vZGVsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2QkU5NjlDNjFFNTRENEI2MDA4Qjc0ODMgLyogUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0NsYXNzaWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2QkU5NjlDODFFNTRENENGMDA4Qjc0ODMgLyogUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0NsYXNzaWZpZXJDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllckNvY29hLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc5MTYsOCArNzkxNiw2IEBACiAJCQkJOTNC
QTA0RDkyMTUxQURDRDAwN0Y0NTVGIC8qIFNlcnZpY2VXb3JrZXIgKi8sCiAJCQkJNDEzMDc1OTcx
REU4NEVENzAwMzlFQzY5IC8qIHdlYnJ0YyAqLywKIAkJCQk5M0IyNjE0MzIyN0QxNDMxMDBCOTdB
NzYgLyogV2ViU3RvcmFnZSAqLywKLQkJCQk2QkQwNTg2NDIyMENFOEMyMDAwQkVENUMgLyogQWRD
bGlja0F0dHJpYnV0aW9uTWFuYWdlci5jcHAgKi8sCi0JCQkJNkJEMDU4NjMyMjBDRThDMjAwMEJF
RDVDIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuaCAqLywKIAkJCQk1M0YzQ0FBNTIwNkM0
NDNFMDA4NjQ5MEUgLyogTmV0d29ya0FjdGl2aXR5VHJhY2tlci5jcHAgKi8sCiAJCQkJNTM1QkNC
OTAyMDY5QzQ5QzAwQ0NDRTAyIC8qIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaCAqLywKIAkJCQk1
MTNBMTY0OTE2MzBBOUJGMDA1RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwICovLApAQCAtNzk3Miw2ICs3OTcwLDggQEAKIAkJCQk1Q0U4NUIxRjFDODhFNjQzMDA3MEJG
Q0UgLyogUGluZ0xvYWQuaCAqLywKIAkJCQk4M0EwRUQzMzFGNzQ3Q0M3MDAzMjk5RUIgLyogUHJl
Y29ubmVjdFRhc2suY3BwICovLAogCQkJCTgzQTBFRDMyMUY3NDdDQzYwMDMyOTlFQiAvKiBQcmVj
b25uZWN0VGFzay5oICovLAorCQkJCTZCRDA1ODY0MjIwQ0U4QzIwMDBCRUQ1QyAvKiBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwICovLAorCQkJCTZCRDA1ODYzMjIwQ0U4QzIwMDBC
RUQ1QyAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCAqLywKIAkJCQlFMUI3ODQ3
MDE2M0YyNDY5MDAwN0I2OTIgLyogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQk0
MTI4N0Q0RDIyNUMxNjFGMDA5QTNFMjYgLyogV2ViU29ja2V0VGFzay5oICovLAogCQkJKTsKQEAg
LTEwODk0LDcgKzEwODk0LDYgQEAKIAkJCQlBMTgyRDVCNTFCRTZCRDI1MDA4N0E3Q0MgLyogQWNj
ZXNzaWJpbGl0eUlPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTNDQUFBNDQyNDEzMjc5OTAwQ0VE
MkUyIC8qIEFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q3
OTJEODE3NjdDQ0EzMDA4ODFDQkUgLyogQWN0aXZpdHlBc3NlcnRpb24uaCBpbiBIZWFkZXJzICov
LAotCQkJCTZCRDA1ODY1MjIwQ0U4QzIwMDBCRUQ1QyAvKiBBZENsaWNrQXR0cmlidXRpb25NYW5h
Z2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2MzQ4NDI1MTFGQjI2RTcxMDA5NDZFM0MgLyogQVBJ
QXBwbGljYXRpb25NYW5pZmVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2NDY5NzAxMURCRTYw
MzAwNjQ1NUIwIC8qIEFQSUFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTVDNzcwRTFGQTdE
NDI5MDA1OTMyQzMgLyogQVBJQXR0YWNobWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTI4Nyw2
ICsxMTI4Niw3IEBACiAJCQkJQzE1Q0JCMzYyM0YzNzc3MTAwMzAwQ0M3IC8qIFByZWZlcmVuY2VP
YnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUFCMTQ1RTYyMjNGOTMxMjAwRTQ4OUQ4IC8q
IFByZWZldGNoQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQ0MxQjkwMTJEN0VBREYwMDYy
NTgzOCAvKiBQcmludEluZm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTZCRDA1ODY1MjIwQ0U4QzIw
MDBCRUQ1QyAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg2Rjk1MzY1MThGRjU4RjUwMDFEQjJFRiAvKiBQcm9jZXNzQXNzZXJ0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzFBN0M1ODExMzZFMTlDMDBGQjcxNjcgLyogUHJvY2Vzc0xhdW5j
aGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjNGRDQ4MjFFQjk0RUMwMDBBMjk4MkMgLyogUHJv
Y2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKaW5kZXggZmVkYzNkYjEwYWQ3NzNiZDU1MzYzMjZmYWIxYzE3NDA4NWNiMTZkMC4uOWRlZDI1
ZDEyM2U1ZTNiZjcyMWU5MjUzMmQ4NTFhMGRhNzdkZTViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKQEAgLTI3MCw3ICsyNzAsNyBAQCBQYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRv
dyhGcmFtZSYgZnJhbWUsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiB3aW5kb3dGZQogICAgIG5hdmln
YXRpb25BY3Rpb25EYXRhLmNhbkhhbmRsZVJlcXVlc3QgPSBtX3BhZ2UuY2FuSGFuZGxlUmVxdWVz
dChuYXZpZ2F0aW9uQWN0aW9uLnJlc291cmNlUmVxdWVzdCgpKTsKICAgICBuYXZpZ2F0aW9uQWN0
aW9uRGF0YS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gbmF2aWdhdGlvbkFjdGlvbi5z
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCk7CiAgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEu
ZG93bmxvYWRBdHRyaWJ1dGUgPSBuYXZpZ2F0aW9uQWN0aW9uLmRvd25sb2FkQXR0cmlidXRlKCk7
Ci0gICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEuYWRDbGlja0F0dHJpYnV0aW9uID0gbmF2aWdhdGlv
bkFjdGlvbi5hZENsaWNrQXR0cmlidXRpb24oKTsKKyAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IG5hdmlnYXRpb25BY3Rpb24ucHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQoKTsKIAogICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29y
ZUZyYW1lKGZyYW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZmY3
MWI4MzMzOGYxZWRlOWFjMzJhY2ZhNmUyZDM1NTdhMzdkZDc5MS4uNjAzYWRmOGIyZTk0OTM2YWYw
NzQ2ZGVlOTYxN2E0ZjI1NTQyMWUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CkBAIC04NzgsNyArODc4LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdhdGkKICAgICBuYXZpZ2F0
aW9uQWN0aW9uRGF0YS5jYW5IYW5kbGVSZXF1ZXN0ID0gd2ViUGFnZS0+Y2FuSGFuZGxlUmVxdWVz
dChyZXF1ZXN0KTsKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5zaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5ID0gbmF2aWdhdGlvbkFjdGlvbi5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
KCk7CiAgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEuZG93bmxvYWRBdHRyaWJ1dGUgPSBuYXZpZ2F0
aW9uQWN0aW9uLmRvd25sb2FkQXR0cmlidXRlKCk7Ci0gICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEu
YWRDbGlja0F0dHJpYnV0aW9uID0gbmF2aWdhdGlvbkFjdGlvbi5hZENsaWNrQXR0cmlidXRpb24o
KTsKKyAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IG5h
dmlnYXRpb25BY3Rpb24ucHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKIAogICAgIHdlYlBhZ2Ut
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKG1fZnJhbWUtPmZyYW1lSUQoKSwgbV9mcmFtZS0+aW5mbygpLCBpZGVudGlmaWVyLCBuYXZp
Z2F0aW9uQWN0aW9uRGF0YSwgcmVxdWVzdCwKICAgICAgICAgZnJhbWVOYW1lLCBsaXN0ZW5lcklE
LCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5k
bGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKTsKQEAgLTk4NSw3ICs5ODUsNyBAQCB2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24oY29uc3QgTmF2aWdhdAogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLnNvdXJjZUJhY2tGb3J3
YXJkSXRlbUlkZW50aWZpZXIgPSBuYXZpZ2F0aW9uQWN0aW9uLnNvdXJjZUJhY2tGb3J3YXJkSXRl
bUlkZW50aWZpZXIoKTsKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5sb2NrSGlzdG9yeSA9IG5h
dmlnYXRpb25BY3Rpb24ubG9ja0hpc3RvcnkoKTsKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5s
b2NrQmFja0ZvcndhcmRMaXN0ID0gbmF2aWdhdGlvbkFjdGlvbi5sb2NrQmFja0ZvcndhcmRMaXN0
KCk7Ci0gICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEuYWRDbGlja0F0dHJpYnV0aW9uID0gbmF2aWdh
dGlvbkFjdGlvbi5hZENsaWNrQXR0cmlidXRpb24oKTsKKyAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0
YS5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IG5hdmlnYXRpb25BY3Rpb24ucHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQoKTsKIAogICAgIGF1dG8qIGNvcmVGcmFtZSA9IG1fZnJhbWUtPmNvcmVGcmFt
ZSgpOwogICAgIGlmICghY29yZUZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IDZmZDdhMjY1
MzIxNTVjOWM4ZDU3NTM2NTUxNGU0ZjRhMWE4Y2I4ZDUuLjNlODU0MTc2N2YyZTA5MjViMWFhYjUw
YzgxMDdjNjk2ZWY1NzdjNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTEyNCw3ICsxMjQsNyBA
QCBOU1N0cmluZyAqV2ViQ29uc29sZU1lc3NhZ2VNZWRpYU1lc3NhZ2VTb3VyY2UgPSBAIk1lZGlh
TWVzc2FnZVNvdXJjZSI7CiBOU1N0cmluZyAqV2ViQ29uc29sZU1lc3NhZ2VNZWRpYVNvdXJjZU1l
c3NhZ2VTb3VyY2UgPSBAIk1lZGlhU291cmNlTWVzc2FnZVNvdXJjZSI7CiBOU1N0cmluZyAqV2Vi
Q29uc29sZU1lc3NhZ2VXZWJSVENNZXNzYWdlU291cmNlID0gQCJXZWJSVENNZXNzYWdlU291cmNl
IjsKIE5TU3RyaW5nICpXZWJDb25zb2xlTWVzc2FnZUlUUERlYnVnTWVzc2FnZVNvdXJjZSA9IEAi
SVRQRGVidWdNZXNzYWdlU291cmNlIjsKLU5TU3RyaW5nICpXZWJDb25zb2xlTWVzc2FnZUFkQ2xp
Y2tBdHRyaWJ1dGlvbk1lc3NhZ2VTb3VyY2UgPSBAIkFkQ2xpY2tBdHRyaWJ1dGlvbk1lc3NhZ2VT
b3VyY2UiOworTlNTdHJpbmcgKldlYkNvbnNvbGVNZXNzYWdlUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNZXNzYWdlU291cmNlID0gQCJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1lc3NhZ2VTb3VyY2Ui
OwogTlNTdHJpbmcgKldlYkNvbnNvbGVNZXNzYWdlT3RoZXJNZXNzYWdlU291cmNlID0gQCJPdGhl
ck1lc3NhZ2VTb3VyY2UiOwogCiBOU1N0cmluZyAqV2ViQ29uc29sZU1lc3NhZ2VEZWJ1Z01lc3Nh
Z2VMZXZlbCA9IEAiRGVidWdNZXNzYWdlTGV2ZWwiOwpAQCAtNDAzLDggKzQwMyw4IEBAIGlubGlu
ZSBzdGF0aWMgTlNTdHJpbmcgKnN0cmluZ0Zvck1lc3NhZ2VTb3VyY2UoTWVzc2FnZVNvdXJjZSBz
b3VyY2UpCiAgICAgICAgIHJldHVybiBXZWJDb25zb2xlTWVzc2FnZVdlYlJUQ01lc3NhZ2VTb3Vy
Y2U7CiAgICAgY2FzZSBNZXNzYWdlU291cmNlOjpJVFBEZWJ1ZzoKICAgICAgICAgcmV0dXJuIFdl
YkNvbnNvbGVNZXNzYWdlSVRQRGVidWdNZXNzYWdlU291cmNlOwotICAgIGNhc2UgTWVzc2FnZVNv
dXJjZTo6QWRDbGlja0F0dHJpYnV0aW9uOgotICAgICAgICByZXR1cm4gV2ViQ29uc29sZU1lc3Nh
Z2VBZENsaWNrQXR0cmlidXRpb25NZXNzYWdlU291cmNlOworICAgIGNhc2UgTWVzc2FnZVNvdXJj
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6CisgICAgICAgIHJldHVybiBXZWJDb25zb2xlTWVz
c2FnZVByaXZhdGVDbGlja01lYXN1cmVtZW50TWVzc2FnZVNvdXJjZTsKICAgICBjYXNlIE1lc3Nh
Z2VTb3VyY2U6Ok90aGVyOgogICAgICAgICByZXR1cm4gV2ViQ29uc29sZU1lc3NhZ2VPdGhlck1l
c3NhZ2VTb3VyY2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggNWZhOWU5MGMxMDU3
NzhjNGMyZDk4N2M2ZmIxYzBmNWIwN2RlYmFjOC4uYWIzMTdiMDZiMDVmODlhYjEzZGU1NjRlZDI4
OTQ2ODc1MmFmNmZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0yNzMsNyArMjczLDcgQEAK
ICNkZWZpbmUgV2ViS2l0U2VydmVyVGltaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRT
ZXJ2ZXJUaW1pbmdFbmFibGVkIgogI2RlZmluZSBXZWJLaXRDU1NDdXN0b21Qcm9wZXJ0aWVzQW5k
VmFsdWVzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NDdXN0b21Qcm9wZXJ0aWVzQW5k
VmFsdWVzRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdFJlc2l6ZU9ic2VydmVyRW5hYmxlZCIKLSNkZWZpbmUgV2ViS2l0QWRD
bGlja0F0dHJpYnV0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRBZENsaWNrQXR0cmli
dXRpb25FbmFibGVkIgorI2RlZmluZSBXZWJLaXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJs
ZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkIgog
I2RlZmluZSBXZWJLaXRGZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0RmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkIgogI2RlZmluZSBXZWJLaXRHZW5lcmljQ3VlQVBJ
RW5hYmxlZEtleSBAIldlYktpdEdlbmVyaWNDdWVBUElFbmFibGVkIgogI2RlZmluZSBXZWJLaXRB
c3BlY3RSYXRpb09mSW1nRnJvbVdpZHRoQW5kSGVpZ2h0RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJX
ZWJLaXRBc3BlY3RSYXRpb09mSW1nRnJvbVdpZHRoQW5kSGVpZ2h0RW5hYmxlZCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDU3
YzBkMzQ0MDZlYzE5MWIxY2FjNjYzNGQ3NWJiZDBkOWYxMzRkYjEuLmY4ZjNlYTA3OTA4ODdiZWUy
YmIyNDE0OWQ1MThmZWU4ZTNmNzlkOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtMzIzMywxNCArMzIzMywxNCBAQCAtICh2
b2lkKXNldFJlc2l6ZU9ic2VydmVyRW5hYmxlZDooQk9PTClmbGFnCiAgICAgW3NlbGYgX3NldEJv
b2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRSZXNpemVPYnNlcnZlckVuYWJsZWRQcmVmZXJlbmNl
S2V5XTsKIH0KIAotLSAoQk9PTClhZENsaWNrQXR0cmlidXRpb25FbmFibGVkCistIChCT09MKXBy
aXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZAogewotICAgIHJldHVybiBbc2VsZiBfYm9vbFZh
bHVlRm9yS2V5OldlYktpdEFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWRQcmVmZXJlbmNlS2V5XTsK
KyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0KIAotLSAodm9pZClzZXRBZENsaWNrQXR0
cmlidXRpb25FbmFibGVkOihCT09MKWZsYWcKKy0gKHZvaWQpc2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRFbmFibGVkOihCT09MKWZsYWcKIHsKLSAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcg
Zm9yS2V5OldlYktpdEFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKKyAg
ICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdFByaXZhdGVDbGlja01lYXN1
cmVtZW50RW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCiAtIChCT09MKWZldGNoQVBJS2VlcEFs
aXZlRW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggZWYwZTgxMzRlZjUyODBmOWEzYzg3MTEwZmM1
OGY3N2M4Mzk1MGFiNi4uNDU2YTAxM2I4OGQ1ODM3ZWE5NDdmZTRjZjY0MmIzZTVhN2I4NjBmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzUHJpdmF0ZS5oCkBAIC0zMzQsNyArMzM0LDcgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQ
cmVmZXJlbmNlc0NhY2hlTW9kZWxDaGFuZ2VkSW50ZXJuYWxOb3RpZmljYXRpb24gV0VCS0lUX0RF
UFIKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHNlcnZlclRpbWluZ0VuYWJsZWQ7CiBAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBDU1NDdXN0b21Qcm9wZXJ0aWVzQW5kVmFsdWVzRW5hYmxl
ZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHJlc2l6ZU9ic2VydmVyRW5hYmxlZDsKLUBw
cm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ7CitAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQ7CiBA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQ7CiBAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBnZW5lcmljQ3VlQVBJRW5hYmxlZDsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljKSBCT09MIGFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFibGVk
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDNj
NDEyMjFhZWUyMzk1NjU2ZDUwYzYyNTljMDkyYmEwODYxZDk4NDkuLmQyNjAyNDhmYTc5OTY0ZWJl
YWIwMTBmODNiNjhlZGE2ZDExYmViMmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OSBAQAorMjAyMC0xMS0wOSAgSm9obiBXaWxh
bmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IENoYW5nZSBmcm9tIGFk
LWNsaWNrLWF0dHJpYnV0aW9uIHRvIHByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQgKGluIGFsbCBm
b3JtcywgaW5jbHVkaW5nIC53ZWxsLWtub3duIFVSTCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODczMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzEwOTQyOTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ2hhbmdlIHRvIHRoZSBvZmZpY2lhbCBuYW1lIG9mIHRoZSBwcm9wb3NlZCBzdGFuZGFyZCBQ
cml2YXRlIENsaWNrIE1lYXN1cmVtZW50CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9wcml2
YWN5Y2cvcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC4KKworICAgICAgICBUaGlzIGluY2x1ZGVz
IGEgY2hhbmdlIG9mIHRoZSByZXBvcnRpbmcgVVJMIGZyb20gCisgICAgICAgICIvLndlbGwta25v
d24vYWQtY2xpY2stYXR0cmlidXRpb24vIiB0bworICAgICAgICAiLy53ZWxsLWtub3duL3ByaXZh
dGUtY2xpY2stbWVhc3VyZW1lbnQvIi4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RP
cHRpb25zLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmRlZmF1bHRzKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQWRDbGlja0F0dHJpYnV0
aW9uLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6ZHVtcFBy
aXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6Y2xlYXJQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmNsZWFy
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCk6CisgICAg
ICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVU
aW1lckZvclRlc3RpbmcpOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdUUjo6VGVz
dFJ1bm5lcjo6bWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rpbmcp
OgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpkdW1wQWRDbGlja0F0dHJpYnV0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6Y2xlYXJBZENsaWNrQXR0cmlidXRpb24p
OiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpjbGVhckFkQ2xpY2tBdHRyaWJ1
dGlvbnNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6
VGVzdFJ1bm5lcjo6c2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3Rpbmcp
OiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRBZENsaWNrQXR0cmlidXRp
b25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RS
dW5uZXI6Om1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZyk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToK
KyAgICAgICAgKFdUUjo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdHJpbmdSZXN1bHRDYWxsYmFj
a0NvbnRleHQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50U3RyaW5nUmVzdWx0Q2FsbGJhY2tDb250
ZXh0KToKKyAgICAgICAgKFdUUjo6cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdHJpbmdSZXN1bHRD
YWxsYmFjayk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkdW1wUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQpOgorICAgICAgICAoV1RSOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRD
YWxsYmFja0NvbnRleHQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrQ29udGV4
dCk6CisgICAgICAgIChXVFI6OnByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrKToK
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKToKKyAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rp
bmcpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9s
bGVyOjptYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyk6Cisg
ICAgICAgIChXVFI6OkFkQ2xpY2tBdHRyaWJ1dGlvblN0cmluZ1Jlc3VsdENhbGxiYWNrQ29udGV4
dDo6QWRDbGlja0F0dHJpYnV0aW9uU3RyaW5nUmVzdWx0Q2FsbGJhY2tDb250ZXh0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdUUjo6YWRDbGlja0F0dHJpYnV0aW9uU3RyaW5nUmVzdWx0Q2FsbGJhY2sp
OiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZHVtcEFkQ2xpY2tBdHRy
aWJ1dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OkFkQ2xpY2tBdHRyaWJ1dGlvblZvaWRD
YWxsYmFja0NvbnRleHQ6OkFkQ2xpY2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFja0NvbnRleHQpOiBE
ZWxldGVkLgorICAgICAgICAoV1RSOjphZENsaWNrQXR0cmlidXRpb25Wb2lkQ2FsbGJhY2spOiBE
ZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y2xlYXJBZENsaWNrQXR0cmli
dXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y2xlYXJBZENs
aWNrQXR0cmlidXRpb25zVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCk6IERlbGV0ZWQuCisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRp
bWVyRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpz
ZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyk6IERlbGV0ZWQuCisg
ICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjptYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhw
aXJlZEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9u
LmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmR1bXBSZXN1bHRzKToKKyAgICAg
ICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9t
SW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZHVtcFByaXZh
dGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmR1bXBB
ZENsaWNrQXR0cmlidXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uaDoKKwogMjAyMC0xMS0wOSAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW2J1aWxkLndlYmtpdC5vcmddIERvIG5vdCBwcmludCBt
YXN0ZXIgZW52aXJvbm1lbnQgdmFyaWFibGVzIGluIGJ1aWxkIHN0ZXBzCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0T3B0aW9ucy5jcHAKaW5kZXggZmU2MDNlZmVhYmNlZTM1OWE2MzRkODg0NmM3MzczMTRm
MjA1OWY2OC4uN2Y0MzM3ZjczNTUxMDY3ZWFhYmZlMjA5MzQ4OWVjNjVhOTU2YWM4NiAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcApAQCAtNjYsNyArNjYsNiBAQCBjb25zdCBUZXN0
RmVhdHVyZXMmIFRlc3RPcHRpb25zOjpkZWZhdWx0cygpCiAgICAgICAgICAgICAvLyBUaGVzZSBh
cmUgV2ViUHJlZmVyZW5jZSB2YWx1ZXMgdGhhdCBtdXN0IGFsd2F5cyBiZSBzZXQgYXMgdGhleSBt
YXkKICAgICAgICAgICAgIC8vIGRpZmZlciBmcm9tIHRoZSBkZWZhdWx0IHNldCBpbiB0aGUgV2Vi
UHJlZmVyZW5jZXMqLnlhbWwgY29uZmlndXJhdGlvbi4KICAgICAgICAgICAgIHsgIkFjY2VsZXJh
dGVkRHJhd2luZ0VuYWJsZWQiLCBmYWxzZSB9LAotICAgICAgICAgICAgeyAiQWRDbGlja0F0dHJp
YnV0aW9uRW5hYmxlZCIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7ICJBbGxvd0Nyb3NzT3JpZ2lu
U3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscyIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7
ICJBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMiLCB0cnVlIH0sCiAgICAgICAgICAgICB7ICJB
bGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzIiwgdHJ1ZSB9LApAQCAtOTYsNiArOTUsNyBAQCBj
b25zdCBUZXN0RmVhdHVyZXMmIFRlc3RPcHRpb25zOjpkZWZhdWx0cygpCiAgICAgICAgICAgICB7
ICJNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZCIsIHRydWUgfSwKICAgICAgICAgICAgIHsgIk5l
ZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrIiwgZmFsc2UgfSwKICAgICAgICAgICAg
IHsgIlBsdWdpbnNFbmFibGVkIiwgdHJ1ZSB9LAorICAgICAgICAgICAgeyAiUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRFbmFibGVkIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIlJlcXVlc3RJZGxl
Q2FsbGJhY2tFbmFibGVkIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIlJlc2l6ZU9ic2VydmVy
RW5hYmxlZCIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7ICJTZWxlY3Rpb25BY3Jvc3NTaGFkb3dC
b3VuZGFyaWVzRW5hYmxlZCIsIHRydWUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTJj
ODAxMGNlZmFjMzVmMDZlOGMzYmNiNDc4M2NkOTM3MTQ5NWY3Mi4uMGViZGFjMzZjNWY4N2QyMzQ1
OTNhNjUyYmM1NzcyYzYxYTVmNGZhZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUwMiw3
ICs1MDIsNyBAQAogCQk2MzcyODFBNzIxQUUxMzg2MDA5RTBERTYgLyogRG93bmxvYWRQcm9ncmVz
cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYzNzI4
MUE2MjFBRTEzODYwMDlFMERFNiAvKiBEb3dubG9hZFByb2dyZXNzLm1tICovOyB9OwogCQk2M0E2
MUI4QjFGQUQyNTExMDBGMDY4ODUgLyogZGlzcGxheS1tb2RlLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjNBNjFCOEExRkFEMjA0RDAw
RjA2ODg1IC8qIGRpc3BsYXktbW9kZS5odG1sICovOyB9OwogCQk2M0Y2NjgyMjFGOTdGN0Y5MDAz
MkVFNTEgLyogQXBwbGljYXRpb25NYW5pZmVzdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYzRjY2ODIwMUY5N0MzQUEwMDMyRUU1MSAvKiBBcHBsaWNh
dGlvbk1hbmlmZXN0Lm1tICovOyB9OwotCQk2QjBBMDdGNzIxRkE5QzJCMDBENTczOTEgLyogQWRD
bGlja0F0dHJpYnV0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDZCMEEwN0Y2MjFGQTlDMkIwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24u
Y3BwICovOyB9OworCQk2QjBBMDdGNzIxRkE5QzJCMDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkIwQTA3RjYyMUZBOUMyQjAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmNw
cCAqLzsgfTsKIAkJNkIzMDYxMDYyMThBMzcyOTAwRjVBODAyIC8qIENsb3NpbmdXZWJWaWV3Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkIzMDYxMDUy
MThBMzcyOTAwRjVBODAyIC8qIENsb3NpbmdXZWJWaWV3Lm1tICovOyB9OwogCQk2QjRFODYxQzIy
MjBBNTUyMDAyMkYzODkgLyogUmVnaXN0cmFibGVEb21haW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkI0RTg2MUIyMjIwQTU1MjAwMjJGMzg5IC8q
IFJlZ2lzdHJhYmxlRG9tYWluLmNwcCAqLzsgfTsKIAkJNkI5QUJFMTIyMDg2OTUyRjAwRDc1REU2
IC8qIEhUVFBQYXJzZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDZCOUFCRTExMjA4Njk1MkYwMEQ3NURFNiAvKiBIVFRQUGFyc2Vycy5jcHAgKi87
IH07CkBAIC0yMjY0LDcgKzIyNjQsNyBAQAogCQk2MzcyODFBNjIxQUUxMzg2MDA5RTBERTYgLyog
RG93bmxvYWRQcm9ncmVzcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERvd25sb2FkUHJvZ3Jl
c3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYzQTYxQjhBMUZBRDIwNEQwMEYw
Njg4NSAvKiBkaXNwbGF5LW1vZGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJkaXNwbGF5LW1vZGUuaHRtbCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYzRjY2ODIwMUY5N0MzQUEwMDMyRUU1MSAv
KiBBcHBsaWNhdGlvbk1hbmlmZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXBwbGljYXRp
b25NYW5pZmVzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkIwQTA3RjYyMUZB
OUMyQjAwRDU3MzkxIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBBZENsaWNrQXR0cmlidXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2
QjBBMDdGNjIxRkE5QzJCMDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2QjMwNjEwNTIxOEEzNzI5MDBGNUE4MDIgLyogQ2xvc2luZ1dl
YlZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDbG9zaW5nV2ViVmlldy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkI0RTg2MUIyMjIwQTU1MjAwMjJGMzg5IC8qIFJlZ2lz
dHJhYmxlRG9tYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlZ2lzdHJhYmxlRG9tYWluLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkI5QUJFMTEyMDg2OTUyRjAwRDc1REU2
IC8qIEhUVFBQYXJzZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUVFBQYXJzZXJzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM0NzAsNyArMzQ3MCw2IEBACiAJCQkJQ0Q4
OUQwMzcxQzRFREIxMzAwMDQwQTA0IC8qIGNvY29hICovLAogCQkJCUExRUMxMTg1MUY0MjUzRDkw
MEQwMTQ2RSAvKiBpb3MgKi8sCiAJCQkJQUJGNTEwNjMyQTE5QjhBQzdFQzQwRTE3IC8qIEFib3J0
YWJsZVRhc2tRdWV1ZS5jcHAgKi8sCi0JCQkJNkIwQTA3RjYyMUZBOUMyQjAwRDU3MzkxIC8qIEFk
Q2xpY2tBdHRyaWJ1dGlvbi5jcHAgKi8sCiAJCQkJN0E5MDlBNkYxRDg3NzQ3NTAwN0UxMEY4IC8q
IEFmZmluZVRyYW5zZm9ybS5jcHAgKi8sCiAJCQkJNTcxNTJCNUQyMUNDMjA0NTAwMEMzN0NBIC8q
IEFwZHVUZXN0LmNwcCAqLywKIAkJCQk2MzU0RjREMDFGN0MzQUI1MDBEODlERjMgLyogQXBwbGlj
YXRpb25NYW5pZmVzdFBhcnNlci5jcHAgKi8sCkBAIC0zNTE2LDYgKzM1MTUsNyBAQAogCQkJCUE1
QjE0OUREMUY1QTE5REMwMEM2REFGRiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmNwcCAqLywKIAkJCQlD
RDIyNUMwNzFDNDVBNjkyMDAxNDA3NjEgLyogUGFyc2VkQ29udGVudFJhbmdlLmNwcCAqLywKIAkJ
CQlBQTk2Q0FCNDIxQzdEQjQyMDBGRDJGOTcgLyogUGFyc2VkQ29udGVudFR5cGUuY3BwICovLAor
CQkJCTZCMEEwN0Y2MjFGQTlDMkIwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5j
cHAgKi8sCiAJCQkJMDQxQTFFMzMyMTZGRkRCQzAwNzg5RTBBIC8qIFB1YmxpY1N1ZmZpeC5jcHAg
Ki8sCiAJCQkJNkI0RTg2MUIyMjIwQTU1MjAwMjJGMzg5IC8qIFJlZ2lzdHJhYmxlRG9tYWluLmNw
cCAqLywKIAkJCQlGNDE4QkUxNDFGNzFCN0RDMDAxOTcwRTYgLyogUm91bmRlZFJlY3RUZXN0cy5j
cHAgKi8sCkBAIC01MDMwLDcgKzUwMzAsNiBAQAogCQkJCTJFMjA1QkE0MUY1Mjc3NDYwMDU5NTJE
RCAvKiBBY2Nlc3NpYmlsaXR5VGVzdHNJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk5QkQ1MTEx
QzFGRThFMTE2MDBEMkI2MzAgLyogQWNjZXNzaW5nUGFzdGVkSW1hZ2UubW0gaW4gU291cmNlcyAq
LywKIAkJCQlGNDVCNjNGRTFGMTlENDEwMDA5RDM4QjkgLyogQWN0aW9uU2hlZXRUZXN0cy5tbSBp
biBTb3VyY2VzICovLAotCQkJCTZCMEEwN0Y3MjFGQTlDMkIwMEQ1NzM5MSAvKiBBZENsaWNrQXR0
cmlidXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdFN0RENjQxRUEwNkZGMjAwOUIzOTZE
IC8qIEFkZGl0aW9uYWxSZWFkQWNjZXNzQWxsb3dlZFVSTHMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk1NUE4MTdGQzIxODEwMEUwMDAwNEEzOUEgLyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlw
ZXMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1NUY5RDJFNTIyMDUwMzE4MDBBOUFCMzggLyogQWRk
aXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gaW4gU291cmNlcyAqLywKQEAgLTUzNzAsNiAr
NTM2OSw3IEBACiAJCQkJN0NDRTdGMkMxQTQxMUIxMDAwNDQ3QzRDIC8qIFByZXZlbnRJbWFnZUxv
YWRXaXRoQXV0b1Jlc2l6aW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFFQzExODgxRjQyNTQx
MjAwRDAxNDZFIC8qIFByZXZpZXdDb252ZXJ0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0ND
RTdGMEMxQTQxMUFFNjAwNDQ3QzRDIC8qIFByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9y
eUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTZCMEEwN0Y3MjFGQTlDMkIwMEQ1NzM5
MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NjQ3
QjEyNjFFQkEzQjg1MDA0MUQ3RUYgLyogUHJvY2Vzc0RpZFRlcm1pbmF0ZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk0MTg4MkYwMzIxMDEwQzBEMDAyRkYyODggLyogUHJvY2Vzc1ByZVdhcm1pbmcu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlDREE0NDM4RTIxRjdBNDc3MDAzNzk0ODkgLyogUHJvY2Vz
c1N1c3BlbmRNZWRpYUJ1ZmZlcmluZy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQWRDbGlja0F0dHJpYnV0aW9uLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDExMWYwZWEwYzBlMWQxOTU4MGZkM2M2NDVi
ZDM3YzAyZTVhZjk3Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQWRDbGlja0F0dHJpYnV0aW9u
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI3OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSA8V2ViQ29yZS9BZENsaWNrQXR0cmlidXRpb24uaD4K
LSNpbmNsdWRlIDx3dGYvVVJMLmg+Ci0jaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+Ci0KLXVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Ci0KLWNvbnN0
ZXhwciB1aW50MzJfdCBtaW42Qml0VmFsdWUgeyAwIH07Ci0KLWNvbnN0IFVSTCB3ZWJLaXRVUkwg
eyB7IH0sICJodHRwczovL3dlYmtpdC5vcmciX3MgfTsKLWNvbnN0IFVSTCBleGFtcGxlVVJMIHsg
eyB9LCAiaHR0cHM6Ly9leGFtcGxlLmNvbSJfcyB9OwotY29uc3QgVVJMIGVtcHR5VVJMIHsgfTsK
LQotLy8gUG9zaXRpdmUgdGVzdCBjYXNlcy4KLQotVEVTVChBZENsaWNrQXR0cmlidXRpb24sIFZh
bGlkTWluVmFsdWVzKQotewotICAgIEFkQ2xpY2tBdHRyaWJ1dGlvbiBhdHRyaWJ1dGlvbiB7IEFk
Q2xpY2tBdHRyaWJ1dGlvbjo6Q2FtcGFpZ24obWluNkJpdFZhbHVlKSwgQWRDbGlja0F0dHJpYnV0
aW9uOjpTb3VyY2UgeyB3ZWJLaXRVUkwgfSwgQWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlv
biB7IGV4YW1wbGVVUkwgfSB9OwotICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVz
dFRpbWVUb1NlbmQoQWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uKG1pbjZCaXRWYWx1ZSwg
QWRDbGlja0F0dHJpYnV0aW9uOjpQcmlvcml0eShtaW42Qml0VmFsdWUpKSk7Ci0KLSAgICBhdXRv
IGF0dHJpYnV0aW9uVVJMID0gYXR0cmlidXRpb24ucmVwb3J0VVJMKCk7Ci0gICAgCi0gICAgQVNT
RVJUX0VRKGF0dHJpYnV0aW9uVVJMLnN0cmluZygpLCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxs
LWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLyIpOwotCi0gICAgQVNTRVJUX0VRKGF0dHJpYnV0
aW9uLmpzb24oKS0+dG9KU09OU3RyaW5nKCksICJ7XCJjb250ZW50LXR5cGVcIjpcImNsaWNrXCIs
XCJjb250ZW50LXNpdGVcIjpcIndlYmtpdC5vcmdcIixcImNvbnRlbnQtaWRcIjowLFwiY29udmVy
c2lvbi1zaXRlXCI6XCJleGFtcGxlLmNvbVwiLFwiY29udmVyc2lvbi1kYXRhXCI6MCxcInJlcG9y
dC12ZXJzaW9uXCI6MX0iKTsKLX0KLQotVEVTVChBZENsaWNrQXR0cmlidXRpb24sIFZhbGlkTWlk
VmFsdWVzKQotewotICAgIEFkQ2xpY2tBdHRyaWJ1dGlvbiBhdHRyaWJ1dGlvbiB7IEFkQ2xpY2tB
dHRyaWJ1dGlvbjo6Q2FtcGFpZ24oKHVpbnQzMl90KTEyKSwgQWRDbGlja0F0dHJpYnV0aW9uOjpT
b3VyY2UgeyB3ZWJLaXRVUkwgfSwgQWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbiB7IGV4
YW1wbGVVUkwgfSB9OwotICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVU
b1NlbmQoQWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uKCh1aW50MzJfdCk0NCwgQWRDbGlj
a0F0dHJpYnV0aW9uOjpQcmlvcml0eSgodWludDMyX3QpMjIpKSk7Ci0KLSAgICBhdXRvIGF0dHJp
YnV0aW9uVVJMID0gYXR0cmlidXRpb24ucmVwb3J0VVJMKCk7Ci0gICAgCi0gICAgQVNTRVJUX0VR
KGF0dHJpYnV0aW9uVVJMLnN0cmluZygpLCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3du
L2FkLWNsaWNrLWF0dHJpYnV0aW9uLyIpOwotCi0gICAgQVNTRVJUX0VRKGF0dHJpYnV0aW9uLmpz
b24oKS0+dG9KU09OU3RyaW5nKCksICJ7XCJjb250ZW50LXR5cGVcIjpcImNsaWNrXCIsXCJjb250
ZW50LXNpdGVcIjpcIndlYmtpdC5vcmdcIixcImNvbnRlbnQtaWRcIjoxMixcImNvbnZlcnNpb24t
c2l0ZVwiOlwiZXhhbXBsZS5jb21cIixcImNvbnZlcnNpb24tZGF0YVwiOjQ0LFwicmVwb3J0LXZl
cnNpb25cIjoxfSIpOwotfQotCi1URVNUKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgVmFsaWRNYXhWYWx1
ZXMpCi17Ci0gICAgQWRDbGlja0F0dHJpYnV0aW9uIGF0dHJpYnV0aW9uIHsgQWRDbGlja0F0dHJp
YnV0aW9uOjpDYW1wYWlnbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHkpLCBBZENsaWNr
QXR0cmlidXRpb246OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBBZENsaWNrQXR0cmlidXRpb246OkRl
c3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07Ci0gICAgYXR0cmlidXRpb24uY29udmVydEFuZEdl
dEVhcmxpZXN0VGltZVRvU2VuZChBZENsaWNrQXR0cmlidXRpb246OkNvbnZlcnNpb24oQWRDbGlj
a0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5LCBBZENsaWNrQXR0cmlidXRpb246OlByaW9yaXR5KEFk
Q2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSkpKTsKLQotICAgIGF1dG8gYXR0cmlidXRpb25V
UkwgPSBhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKTsKLSAgICAKLSAgICBBU1NFUlRfRVEoYXR0cmli
dXRpb25VUkwuc3RyaW5nKCksICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xp
Y2stYXR0cmlidXRpb24vIik7Ci0KLSAgICBBU1NFUlRfRVEoYXR0cmlidXRpb24uanNvbigpLT50
b0pTT05TdHJpbmcoKSwgIntcImNvbnRlbnQtdHlwZVwiOlwiY2xpY2tcIixcImNvbnRlbnQtc2l0
ZVwiOlwid2Via2l0Lm9yZ1wiLFwiY29udGVudC1pZFwiOjYzLFwiY29udmVyc2lvbi1zaXRlXCI6
XCJleGFtcGxlLmNvbVwiLFwiY29udmVyc2lvbi1kYXRhXCI6NjMsXCJyZXBvcnQtdmVyc2lvblwi
OjF9Iik7Ci19Ci0KLVRFU1QoQWRDbGlja0F0dHJpYnV0aW9uLCBFYXJsaWVzdFRpbWVUb1NlbmRB
dHRyaWJ1dGlvbk1pbmltdW1EZWxheSkKLXsKLSAgICBBZENsaWNrQXR0cmlidXRpb24gYXR0cmli
dXRpb24geyBBZENsaWNrQXR0cmlidXRpb246OkNhbXBhaWduKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6
TWF4RW50cm9weSksIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlIHsgd2ViS2l0VVJMIH0sIEFk
Q2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKLSAgICBhdXRv
IG5vdyA9IFdhbGxUaW1lOjpub3coKTsKLSAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFy
bGllc3RUaW1lVG9TZW5kKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lvbihBZENsaWNrQXR0
cmlidXRpb246Ok1heEVudHJvcHksIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6UHJpb3JpdHkoQWRDbGlj
a0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5KSkpOwotICAgIGF1dG8gZWFybGllc3RUaW1lVG9TZW5k
ID0gYXR0cmlidXRpb24uZWFybGllc3RUaW1lVG9TZW5kKCk7Ci0gICAgQVNTRVJUX1RSVUUoZWFy
bGllc3RUaW1lVG9TZW5kKTsKLSAgICBBU1NFUlRfVFJVRShlYXJsaWVzdFRpbWVUb1NlbmQudmFs
dWUoKS5zZWNvbmRzU2luY2VFcG9jaCgpIC0gMjRfaCA+PSBub3cuc2Vjb25kc1NpbmNlRXBvY2go
KSk7Ci19Ci0KLVRFU1QoQWRDbGlja0F0dHJpYnV0aW9uLCBWYWxpZENvbnZlcnNpb25VUkxzKQot
ewotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5IHsgeyB9LCAiaHR0
cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzIyIl9zIH07
Ci0gICAgYXV0byBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNl
Q29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhvdXRQcmlvcml0eSk7Ci0gICAgQVNT
RVJUX1RSVUUob3B0aW9uYWxDb252ZXJzaW9uKTsKLSAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252
ZXJzaW9uLT5kYXRhLCAodWludDMyX3QpMjIpOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25V
UkxXaXRob3V0UHJpb3JpdHlNYXhFbnRyb3B5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53
ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzYzIl9zIH07Ci0gICAgb3B0aW9uYWxDb252
ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZl
cnNpb25VUkxXaXRob3V0UHJpb3JpdHlNYXhFbnRyb3B5KTsKLSAgICBBU1NFUlRfVFJVRShvcHRp
b25hbENvbnZlcnNpb24pOwotICAgIEFTU0VSVF9FUShvcHRpb25hbENvbnZlcnNpb24tPmRhdGEs
ICh1aW50MzJfdCk2Myk7Ci0gICAgCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRob3V0
UHJpb3JpdHlBbmRMZWFkaW5nWmVybyB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1r
bm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8wMiJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lv
biA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9u
VVJMV2l0aG91dFByaW9yaXR5QW5kTGVhZGluZ1plcm8pOwotICAgIEFTU0VSVF9UUlVFKG9wdGlv
bmFsQ29udmVyc2lvbik7Ci0gICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+ZGF0YSwg
KHVpbnQzMl90KTIpOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHkg
eyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRp
b24vMjIvMTIiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRp
b246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhQcmlvcml0eSk7Ci0g
ICAgQVNTRVJUX1RSVUUob3B0aW9uYWxDb252ZXJzaW9uKTsKLSAgICBBU1NFUlRfRVEob3B0aW9u
YWxDb252ZXJzaW9uLT5kYXRhLCAodWludDMyX3QpMjIpOwotICAgIEFTU0VSVF9FUShvcHRpb25h
bENvbnZlcnNpb24tPnByaW9yaXR5LCAodWludDMyX3QpMTIpOwotCi0gICAgY29uc3QgVVJMIGNv
bnZlcnNpb25VUkxXaXRoUHJpb3JpdHlNYXhFbnRyb3B5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQu
b3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzYzLzYzIl9zIH07Ci0gICAgb3B0
aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1
ZXN0KGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHlNYXhFbnRyb3B5KTsKLSAgICBBU1NFUlRfVFJV
RShvcHRpb25hbENvbnZlcnNpb24pOwotICAgIEFTU0VSVF9FUShvcHRpb25hbENvbnZlcnNpb24t
PmRhdGEsICh1aW50MzJfdCk2Myk7Ci0gICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+
cHJpb3JpdHksICh1aW50MzJfdCk2Myk7Ci0gICAgCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25V
UkxXaXRoUHJpb3JpdHlBbmRMZWFkaW5nWmVybyB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8u
d2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yMi8wMiJfcyB9OwotICAgIG9wdGlvbmFs
Q29udmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChj
b252ZXJzaW9uVVJMV2l0aFByaW9yaXR5QW5kTGVhZGluZ1plcm8pOwotICAgIEFTU0VSVF9UUlVF
KG9wdGlvbmFsQ29udmVyc2lvbik7Ci0gICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+
ZGF0YSwgKHVpbnQzMl90KTIyKTsKLSAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5w
cmlvcml0eSwgKHVpbnQzMl90KTIpOwotfQotCi0vLyBOZWdhdGl2ZSB0ZXN0IGNhc2VzLgotCi1U
RVNUKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgSW52YWxpZENhbXBhaWduSWQpCi17Ci0gICAgQWRDbGlj
a0F0dHJpYnV0aW9uIGF0dHJpYnV0aW9uIHsgQWRDbGlja0F0dHJpYnV0aW9uOjpDYW1wYWlnbihB
ZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHkgKyAxKSwgQWRDbGlja0F0dHJpYnV0aW9uOjpT
b3VyY2UgeyB3ZWJLaXRVUkwgfSwgQWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbiB7IGV4
YW1wbGVVUkwgfSB9OwotICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVU
b1NlbmQoQWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6
TWF4RW50cm9weSwgQWRDbGlja0F0dHJpYnV0aW9uOjpQcmlvcml0eShBZENsaWNrQXR0cmlidXRp
b246Ok1heEVudHJvcHkpKSk7Ci0KLSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRV
UkwoKS5pc0VtcHR5KCkpOwotfQotCi1URVNUKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgSW52YWxpZFNv
dXJjZUhvc3QpCi17Ci0gICAgQWRDbGlja0F0dHJpYnV0aW9uIGF0dHJpYnV0aW9uIHsgQWRDbGlj
a0F0dHJpYnV0aW9uOjpDYW1wYWlnbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHkpLCBB
ZENsaWNrQXR0cmlidXRpb246OlNvdXJjZSB7IGVtcHR5VVJMIH0sIEFkQ2xpY2tBdHRyaWJ1dGlv
bjo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKLSAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0
QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lvbihB
ZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHksIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6UHJpb3Jp
dHkoQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5KSkpOwotCi0gICAgQVNTRVJUX1RSVUUo
YXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKLX0KLQotVEVTVChBZENsaWNrQXR0
cmlidXRpb24sIEludmFsaWREZXN0aW5hdGlvbkhvc3QpCi17Ci0gICAgQWRDbGlja0F0dHJpYnV0
aW9uIGF0dHJpYnV0aW9uIHsgQWRDbGlja0F0dHJpYnV0aW9uOjpDYW1wYWlnbihBZENsaWNrQXR0
cmlidXRpb246Ok1heEVudHJvcHkgKyAxKSwgQWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2UgeyB3
ZWJLaXRVUkwgfSwgQWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbiB7IGVtcHR5VVJMIH0g
fTsKLSAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKEFkQ2xp
Y2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lvbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHks
IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6UHJpb3JpdHkoQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRy
b3B5KSkpOwotCi0gICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0
eSgpKTsKLX0KLQotVEVTVChBZENsaWNrQXR0cmlidXRpb24sIEludmFsaWRDb252ZXJzaW9uRGF0
YSkKLXsKLSAgICBBZENsaWNrQXR0cmlidXRpb24gYXR0cmlidXRpb24geyBBZENsaWNrQXR0cmli
dXRpb246OkNhbXBhaWduKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSksIEFkQ2xpY2tB
dHRyaWJ1dGlvbjo6U291cmNlIHsgd2ViS2l0VVJMIH0sIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6RGVz
dGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKLSAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0
RWFybGllc3RUaW1lVG9TZW5kKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lvbigoQWRDbGlj
a0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5ICsgMSksIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6UHJpb3Jp
dHkoQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5KSkpOwotCi0gICAgQVNTRVJUX1RSVUUo
YXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKLX0KLQotVEVTVChBZENsaWNrQXR0
cmlidXRpb24sIEludmFsaWRQcmlvcml0eSkKLXsKLSAgICBBZENsaWNrQXR0cmlidXRpb24gYXR0
cmlidXRpb24geyBBZENsaWNrQXR0cmlidXRpb246OkNhbXBhaWduKEFkQ2xpY2tBdHRyaWJ1dGlv
bjo6TWF4RW50cm9weSksIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlIHsgd2ViS2l0VVJMIH0s
IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKLSAgICBh
dHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKEFkQ2xpY2tBdHRyaWJ1
dGlvbjo6Q29udmVyc2lvbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHksIEFkQ2xpY2tB
dHRyaWJ1dGlvbjo6UHJpb3JpdHkoQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5ICsgMSkp
KTsKLQotICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlzRW1wdHkoKSk7
Ci19Ci0KLVRFU1QoQWRDbGlja0F0dHJpYnV0aW9uLCBJbnZhbGlkTWlzc2luZ0NvbnZlcnNpb24p
Ci17Ci0gICAgQWRDbGlja0F0dHJpYnV0aW9uIGF0dHJpYnV0aW9uIHsgQWRDbGlja0F0dHJpYnV0
aW9uOjpDYW1wYWlnbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHkpLCBBZENsaWNrQXR0
cmlidXRpb246OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBBZENsaWNrQXR0cmlidXRpb246OkRlc3Rp
bmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07Ci0KLSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5y
ZXBvcnRVUkwoKS5pc0VtcHR5KCkpOwotICAgIEFTU0VSVF9GQUxTRShhdHRyaWJ1dGlvbi5lYXJs
aWVzdFRpbWVUb1NlbmQoKSk7Ci19Ci0KLVRFU1QoQWRDbGlja0F0dHJpYnV0aW9uLCBJbnZhbGlk
Q29udmVyc2lvblVSTHMpCi17Ci0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoU2luZ2xl
RGlnaXRDb252ZXJzaW9uRGF0YSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93
bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yIl9zIH07Ci0gICAgYXV0byBvcHRpb25hbENvbnZlcnNp
b24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lv
blVSTFdpdGhTaW5nbGVEaWdpdENvbnZlcnNpb25EYXRhKTsKLSAgICBBU1NFUlRfRkFMU0Uob3B0
aW9uYWxDb252ZXJzaW9uKTsKLSAgICAKLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhO
b25OdW1lcmFsQ29udmVyc2lvbkRhdGEgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwt
a25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vMnMiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNp
b24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lv
blVSTFdpdGhOb25OdW1lcmFsQ29udmVyc2lvbkRhdGEpOwotICAgIEFTU0VSVF9GQUxTRShvcHRp
b25hbENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoTmVnYXRp
dmVDb252ZXJzaW9uRGF0YSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9h
ZC1jbGljay1hdHRyaWJ1dGlvbi8tMiJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IEFk
Q2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0
aE5lZ2F0aXZlQ29udmVyc2lvbkRhdGEpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZl
cnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VDb252ZXJz
aW9uRGF0YSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1h
dHRyaWJ1dGlvbi82NCJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IEFkQ2xpY2tBdHRy
aWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdl
Q29udmVyc2lvbkRhdGEpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwot
Ci0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoU2luZ2xlRGlnaXRQcmlvcml0eSB7IHsg
fSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8y
Mi8yIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpw
YXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoU2luZ2xlRGlnaXRQcmlvcml0
eSk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci0gICAgCi0gICAgY29u
c3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoTm9uTnVtZXJhbFByaW9yaXR5IHsgeyB9LCAiaHR0cHM6
Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzIyLzJzIl9zIH07
Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZl
cnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoTm9uTnVtZXJhbFByaW9yaXR5KTsKLSAgICBB
U1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKLSAgICAKLSAgICBjb25zdCBVUkwgY29u
dmVyc2lvblVSTFdpdGhOZWdhdGl2ZVByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3Jn
Ly53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzIyLy0yIl9zIH07Ci0gICAgb3B0aW9u
YWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0
KGNvbnZlcnNpb25VUkxXaXRoTmVnYXRpdmVQcmlvcml0eSk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9w
dGlvbmFsQ29udmVyc2lvbik7Ci0gICAgCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRo
VG9vTGFyZ2VQcmlvcml0eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9h
ZC1jbGljay1hdHRyaWJ1dGlvbi8yMi82NCJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9
IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJM
V2l0aFRvb0xhcmdlUHJpb3JpdHkpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNp
b24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VDb252ZXJzaW9u
RGF0YUFuZFByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2Fk
LWNsaWNrLWF0dHJpYnV0aW9uLzY0LzIyIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0g
QWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxX
aXRoVG9vTGFyZ2VDb252ZXJzaW9uRGF0YUFuZFByaW9yaXR5KTsKLSAgICBBU1NFUlRfRkFMU0Uo
b3B0aW9uYWxDb252ZXJzaW9uKTsKLQotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFRv
b0xhcmdlQ29udmVyc2lvbkRhdGFBbmRUb29MYXJnZVByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93
ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzY0LzY0Il9zIH07Ci0g
ICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNp
b25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VDb252ZXJzaW9uRGF0YUFuZFRvb0xh
cmdlUHJpb3JpdHkpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwotCi0g
ICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoRXh0cmFMZWFkaW5nU2xhc2ggPSB7IHsgfSwg
Imh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8vMjIv
MTIiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBh
cnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhFeHRyYUxlYWRpbmdTbGFzaCk7
Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci0KLSAgICBjb25zdCBVUkwg
Y29udmVyc2lvblVSTFdpdGhFeHRyYVRyYWlsaW5nU2xhc2ggPSB7IHsgfSwgImh0dHBzOi8vd2Vi
a2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yMi8xMi8iX3MgfTsKLSAg
ICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lv
blJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhFeHRyYVRyYWlsaW5nU2xhc2gpOwotICAgIEFTU0VS
VF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25V
UkxXaXRoVHJhaWxpbmdRdWVzdGlvbk1hcmsgPSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8u
d2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yMi8xMj8iX3MgfTsKLSAgICBvcHRpb25h
bENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3Qo
Y29udmVyc2lvblVSTFdpdGhUcmFpbGluZ1F1ZXN0aW9uTWFyayk7Ci0gICAgQVNTRVJUX0ZBTFNF
KG9wdGlvbmFsQ29udmVyc2lvbik7Ci19Ci0KLVRFU1QoQWRDbGlja0F0dHJpYnV0aW9uLCBJbnZh
bGlkQ29udmVyc2lvbldpdGhEaXNhbGxvd2VkVVJMQ29tcG9uZW50cykKLXsKLSAgICAvLyBQcm90
b2NvbC4KLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhIdHRwUHJvdG9jb2wgeyB7IH0s
ICJodHRwOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yIl9z
IH07Ci0gICAgYXV0byBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBh
cnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhIdHRwUHJvdG9jb2wpOwotICAg
IEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZl
cnNpb25VUkxXaXRoV3NzUHJvdG9jb2wgeyB7IH0sICJ3c3M6Ly93ZWJraXQub3JnLy53ZWxsLWtu
b3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzIiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24g
PSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVS
TFdpdGhXc3NQcm90b2NvbCk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7
Ci0KLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhGaWxlUHJvdG9jb2wgeyB7IH0sICJm
aWxlOi8vLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzIiX3MgfTsKLSAgICBvcHRp
b25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVl
c3QoY29udmVyc2lvblVSTFdpdGhGaWxlUHJvdG9jb2wpOwotICAgIEFTU0VSVF9GQUxTRShvcHRp
b25hbENvbnZlcnNpb24pOwotCi0gICAgLy8gVXNlcm5hbWUgYW5kIHBhc3N3b3JkLgotICAgIGNv
bnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFVzZXJOYW1lIHsgeyB9LCAiaHR0cHM6Ly91c2VyQHdl
YmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vMiJfcyB9OwotICAgIG9w
dGlvbmFsQ29udmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVx
dWVzdChjb252ZXJzaW9uVVJMV2l0aFVzZXJOYW1lKTsKLSAgICBBU1NFUlRfRkFMU0Uob3B0aW9u
YWxDb252ZXJzaW9uKTsKLQotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFBhc3N3b3Jk
ID0geyB7IH0sICJodHRwczovLzpwd2RAd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1h
dHRyaWJ1dGlvbi8yMi8xMj8iX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNr
QXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhQYXNz
d29yZCk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci0KLSAgICBjb25z
dCBVUkwgY29udmVyc2lvblVSTFdpdGhVc2VybmFtZUFuZFBhc3N3b3JkID0geyB7IH0sICJodHRw
czovL3VzZXI6cHdkQHdlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24v
MjIvMTI/Il9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9u
OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVXNlcm5hbWVBbmRQYXNz
d29yZCk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci0KLSAgICAvLyBR
dWVyeSBzdHJpbmcuCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdRdWVz
dGlvbk1hcmsgPSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGlj
ay1hdHRyaWJ1dGlvbi8yMi8xMj8iX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENs
aWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhU
cmFpbGluZ1F1ZXN0aW9uTWFyayk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lv
bik7Ci0KLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhRdWVyeVN0cmluZyA9IHsgeyB9
LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzIy
LzEyP2V4dHJhPWRhdGEiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0
cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhRdWVyeVN0
cmluZyk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci0gICAgCi0gICAg
Ly8gRnJhZ21lbnQuCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdIYXNo
ID0geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmli
dXRpb24vMjIvMTIjIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJp
YnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdI
YXNoKTsKLSAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKLQotICAgIGNvbnN0
IFVSTCBjb252ZXJzaW9uVVJMV2l0aEZyYWdtZW50ID0geyB7IH0sICJodHRwczovL3dlYmtpdC5v
cmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vMjIvMTIjZnJhZ21lbnQiX3MgfTsK
LSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVy
c2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhGcmFnbWVudCk7Ci0gICAgQVNTRVJUX0ZBTFNF
KG9wdGlvbmFsQ29udmVyc2lvbik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiMzliMGRjZDY5YzdkYmM5OWYx
ZmMyMGQwY2UzNjQ4ZTVkNjkwN2YKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCkBAIC0wLDAgKzEs
Mjc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8V2Vi
Q29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKyNp
bmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworY29uc3RleHByIHVpbnQzMl90IG1pbjZCaXRWYWx1
ZSB7IDAgfTsKKworY29uc3QgVVJMIHdlYktpdFVSTCB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9y
ZyJfcyB9OworY29uc3QgVVJMIGV4YW1wbGVVUkwgeyB7IH0sICJodHRwczovL2V4YW1wbGUuY29t
Il9zIH07Citjb25zdCBVUkwgZW1wdHlVUkwgeyB9OworCisvLyBQb3NpdGl2ZSB0ZXN0IGNhc2Vz
LgorCitURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZE1pblZhbHVlcykKK3sKKyAg
ICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpDYW1wYWlnbihtaW42Qml0VmFsdWUpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
U291cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlv
biB7IGV4YW1wbGVVUkwgfSB9OworICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVz
dFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24obWluNkJpdFZh
bHVlLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkobWluNkJpdFZhbHVlKSkpOwor
CisgICAgYXV0byBhdHRyaWJ1dGlvblVSTCA9IGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpOworICAg
IAorICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvblVSTC5zdHJpbmcoKSwgImh0dHBzOi8vd2Via2l0
Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LyIpOworCisgICAgQVNT
RVJUX0VRKGF0dHJpYnV0aW9uLmpzb24oKS0+dG9KU09OU3RyaW5nKCksICJ7XCJjb250ZW50LXR5
cGVcIjpcImNsaWNrXCIsXCJjb250ZW50LXNpdGVcIjpcIndlYmtpdC5vcmdcIixcImNvbnRlbnQt
aWRcIjowLFwiY29udmVyc2lvbi1zaXRlXCI6XCJleGFtcGxlLmNvbVwiLFwiY29udmVyc2lvbi1k
YXRhXCI6MCxcInJlcG9ydC12ZXJzaW9uXCI6MX0iKTsKK30KKworVEVTVChQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCwgVmFsaWRNaWRWYWx1ZXMpCit7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFpZ24oKHVpbnQz
Ml90KTEyKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKKyAg
ICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpDb252ZXJzaW9uKCh1aW50MzJfdCk0NCwgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlByaW9yaXR5KCh1aW50MzJfdCkyMikpKTsKKworICAgIGF1dG8gYXR0cmlidXRpb25V
UkwgPSBhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKTsKKyAgICAKKyAgICBBU1NFUlRfRVEoYXR0cmli
dXRpb25VUkwuc3RyaW5nKCksICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0
ZS1jbGljay1tZWFzdXJlbWVudC8iKTsKKworICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvbi5qc29u
KCktPnRvSlNPTlN0cmluZygpLCAie1wiY29udGVudC10eXBlXCI6XCJjbGlja1wiLFwiY29udGVu
dC1zaXRlXCI6XCJ3ZWJraXQub3JnXCIsXCJjb250ZW50LWlkXCI6MTIsXCJjb252ZXJzaW9uLXNp
dGVcIjpcImV4YW1wbGUuY29tXCIsXCJjb252ZXJzaW9uLWRhdGFcIjo0NCxcInJlcG9ydC12ZXJz
aW9uXCI6MX0iKTsKK30KKworVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRNYXhW
YWx1ZXMpCit7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFpZ24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1h
eEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0s
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9Owor
ICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVu
dHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6TWF4RW50cm9weSkpKTsKKworICAgIGF1dG8gYXR0cmlidXRpb25VUkwgPSBhdHRy
aWJ1dGlvbi5yZXBvcnRVUkwoKTsKKyAgICAKKyAgICBBU1NFUlRfRVEoYXR0cmlidXRpb25VUkwu
c3RyaW5nKCksICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC8iKTsKKworICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvbi5qc29uKCktPnRvSlNP
TlN0cmluZygpLCAie1wiY29udGVudC10eXBlXCI6XCJjbGlja1wiLFwiY29udGVudC1zaXRlXCI6
XCJ3ZWJraXQub3JnXCIsXCJjb250ZW50LWlkXCI6NjMsXCJjb252ZXJzaW9uLXNpdGVcIjpcImV4
YW1wbGUuY29tXCIsXCJjb252ZXJzaW9uLWRhdGFcIjo2MyxcInJlcG9ydC12ZXJzaW9uXCI6MX0i
KTsKK30KKworVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgRWFybGllc3RUaW1lVG9TZW5k
QXR0cmlidXRpb25NaW5pbXVtRGVsYXkpCit7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQg
YXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFpZ24oUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291
cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7
IGV4YW1wbGVVUkwgfSB9OworICAgIGF1dG8gbm93ID0gV2FsbFRpbWU6Om5vdygpOworICAgIGF0
dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkNvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHks
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6TWF4RW50cm9weSkpKTsKKyAgICBhdXRvIGVhcmxpZXN0VGltZVRvU2VuZCA9IGF0dHJpYnV0
aW9uLmVhcmxpZXN0VGltZVRvU2VuZCgpOworICAgIEFTU0VSVF9UUlVFKGVhcmxpZXN0VGltZVRv
U2VuZCk7CisgICAgQVNTRVJUX1RSVUUoZWFybGllc3RUaW1lVG9TZW5kLnZhbHVlKCkuc2Vjb25k
c1NpbmNlRXBvY2goKSAtIDI0X2ggPj0gbm93LnNlY29uZHNTaW5jZUVwb2NoKCkpOworfQorCitU
RVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZENvbnZlcnNpb25VUkxzKQoreworICAg
IGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93
ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMjIiX3MgfTsK
KyAgICBhdXRvIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpw
YXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRob3V0UHJpb3JpdHkpOworICAg
IEFTU0VSVF9UUlVFKG9wdGlvbmFsQ29udmVyc2lvbik7CisgICAgQVNTRVJUX0VRKG9wdGlvbmFs
Q29udmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90KTIyKTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJz
aW9uVVJMV2l0aG91dFByaW9yaXR5TWF4RW50cm9weSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9y
Zy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzYzIl9zIH07CisgICAgb3B0
aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lv
blJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhvdXRQcmlvcml0eU1heEVudHJvcHkpOworICAgIEFT
U0VSVF9UUlVFKG9wdGlvbmFsQ29udmVyc2lvbik7CisgICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29u
dmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90KTYzKTsKKyAgICAKKyAgICBjb25zdCBVUkwgY29udmVy
c2lvblVSTFdpdGhvdXRQcmlvcml0eUFuZExlYWRpbmdaZXJvIHsgeyB9LCAiaHR0cHM6Ly93ZWJr
aXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMDIiX3MgfTsKKyAg
ICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252
ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5QW5kTGVhZGluZ1plcm8p
OworICAgIEFTU0VSVF9UUlVFKG9wdGlvbmFsQ29udmVyc2lvbik7CisgICAgQVNTRVJUX0VRKG9w
dGlvbmFsQ29udmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90KTIpOworCisgICAgY29uc3QgVVJMIGNv
bnZlcnNpb25VUkxXaXRoUHJpb3JpdHkgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwt
a25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8xMiJfcyB9OworICAgIG9wdGlvbmFs
Q29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1
ZXN0KGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHkpOworICAgIEFTU0VSVF9UUlVFKG9wdGlvbmFs
Q29udmVyc2lvbik7CisgICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+ZGF0YSwgKHVp
bnQzMl90KTIyKTsKKyAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5wcmlvcml0eSwg
KHVpbnQzMl90KTEyKTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5
TWF4RW50cm9weSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRl
LWNsaWNrLW1lYXN1cmVtZW50LzYzLzYzIl9zIH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0g
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lv
blVSTFdpdGhQcmlvcml0eU1heEVudHJvcHkpOworICAgIEFTU0VSVF9UUlVFKG9wdGlvbmFsQ29u
dmVyc2lvbik7CisgICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+ZGF0YSwgKHVpbnQz
Ml90KTYzKTsKKyAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5wcmlvcml0eSwgKHVp
bnQzMl90KTYzKTsKKyAgICAKKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhQcmlvcml0
eUFuZExlYWRpbmdaZXJvIHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3By
aXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMjIvMDIiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNp
b24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252
ZXJzaW9uVVJMV2l0aFByaW9yaXR5QW5kTGVhZGluZ1plcm8pOworICAgIEFTU0VSVF9UUlVFKG9w
dGlvbmFsQ29udmVyc2lvbik7CisgICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+ZGF0
YSwgKHVpbnQzMl90KTIyKTsKKyAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5wcmlv
cml0eSwgKHVpbnQzMl90KTIpOworfQorCisvLyBOZWdhdGl2ZSB0ZXN0IGNhc2VzLgorCitURVNU
KFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkQ2FtcGFpZ25JZCkKK3sKKyAgICBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpDYW1wYWlnbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSArIDEpLCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OworICAgIGF0dHJpYnV0aW9u
LmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkNvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHksIFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50
cm9weSkpKTsKKworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlzRW1w
dHkoKSk7Cit9CisKK1RFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRTb3VyY2VI
b3N0KQoreworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkNhbXBhaWduKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhF
bnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSB7IGVtcHR5VVJMIH0sIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OworICAg
IGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJv
cHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6TWF4RW50cm9weSkpKTsKKworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9y
dFVSTCgpLmlzRW1wdHkoKSk7Cit9CisKK1RFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIElu
dmFsaWREZXN0aW5hdGlvbkhvc3QpCit7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0
cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFpZ24oUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkgKyAxKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24g
eyBlbXB0eVVSTCB9IH07CisgICAgYXR0cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGlt
ZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbihQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6TWF4RW50cm9weSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5
KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSkpOworCisgICAgQVNTRVJUX1RS
VUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKK30KKworVEVTVChQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZENvbnZlcnNpb25EYXRhKQoreworICAgIFByaXZhdGVD
bGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNh
bXBhaWduKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSwgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKKyAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0
QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJz
aW9uKChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSArIDEpLCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJv
cHkpKSk7CisKKyAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5
KCkpOworfQorCitURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkUHJpb3JpdHkp
Cit7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6Q2FtcGFpZ24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJv
cHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OworICAgIGF0
dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkNvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHks
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6TWF4RW50cm9weSArIDEpKSk7CisKKyAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBv
cnRVUkwoKS5pc0VtcHR5KCkpOworfQorCitURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJ
bnZhbGlkTWlzc2luZ0NvbnZlcnNpb24pCit7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQg
YXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFpZ24oUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291
cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7
IGV4YW1wbGVVUkwgfSB9OworCisgICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJM
KCkuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlRfRkFMU0UoYXR0cmlidXRpb24uZWFybGllc3RUaW1l
VG9TZW5kKCkpOworfQorCitURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkQ29u
dmVyc2lvblVSTHMpCit7CisgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoU2luZ2xlRGln
aXRDb252ZXJzaW9uRGF0YSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9w
cml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIiX3MgfTsKKyAgICBhdXRvIG9wdGlvbmFsQ29udmVy
c2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNv
bnZlcnNpb25VUkxXaXRoU2luZ2xlRGlnaXRDb252ZXJzaW9uRGF0YSk7CisgICAgQVNTRVJUX0ZB
TFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CisgICAgCisgICAgY29uc3QgVVJMIGNvbnZlcnNpb25V
UkxXaXRoTm9uTnVtZXJhbENvbnZlcnNpb25EYXRhIHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3Jn
Ly53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMnMiX3MgfTsKKyAgICBvcHRp
b25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9u
UmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aE5vbk51bWVyYWxDb252ZXJzaW9uRGF0YSk7CisgICAg
QVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CisKKyAgICBjb25zdCBVUkwgY29udmVy
c2lvblVSTFdpdGhOZWdhdGl2ZUNvbnZlcnNpb25EYXRhIHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQu
b3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvLTIiX3MgfTsKKyAgICBv
cHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJz
aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aE5lZ2F0aXZlQ29udmVyc2lvbkRhdGEpOworICAg
IEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworCisgICAgY29uc3QgVVJMIGNvbnZl
cnNpb25VUkxXaXRoVG9vTGFyZ2VDb252ZXJzaW9uRGF0YSB7IHsgfSwgImh0dHBzOi8vd2Via2l0
Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzY0Il9zIH07CisgICAg
b3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVy
c2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhUb29MYXJnZUNvbnZlcnNpb25EYXRhKTsKKyAg
ICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKworICAgIGNvbnN0IFVSTCBjb252
ZXJzaW9uVVJMV2l0aFNpbmdsZURpZ2l0UHJpb3JpdHkgeyB7IH0sICJodHRwczovL3dlYmtpdC5v
cmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8yIl9zIH07CisgICAg
b3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVy
c2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhTaW5nbGVEaWdpdFByaW9yaXR5KTsKKyAgICBB
U1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKyAgICAKKyAgICBjb25zdCBVUkwgY29u
dmVyc2lvblVSTFdpdGhOb25OdW1lcmFsUHJpb3JpdHkgeyB7IH0sICJodHRwczovL3dlYmtpdC5v
cmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8ycyJfcyB9OworICAg
IG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZl
cnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoTm9uTnVtZXJhbFByaW9yaXR5KTsKKyAgICBB
U1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKyAgICAKKyAgICBjb25zdCBVUkwgY29u
dmVyc2lvblVSTFdpdGhOZWdhdGl2ZVByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3Jn
Ly53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMjIvLTIiX3MgfTsKKyAgICBv
cHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJz
aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aE5lZ2F0aXZlUHJpb3JpdHkpOworICAgIEFTU0VS
VF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworICAgIAorICAgIGNvbnN0IFVSTCBjb252ZXJz
aW9uVVJMV2l0aFRvb0xhcmdlUHJpb3JpdHkgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndl
bGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi82NCJfcyB9OworICAgIG9wdGlv
bmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25S
ZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VQcmlvcml0eSk7CisgICAgQVNTRVJUX0ZB
TFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CisKKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdp
dGhUb29MYXJnZUNvbnZlcnNpb25EYXRhQW5kUHJpb3JpdHkgeyB7IH0sICJodHRwczovL3dlYmtp
dC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC82NC8yMiJfcyB9Owor
ICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNv
bnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VDb252ZXJzaW9uRGF0YUFu
ZFByaW9yaXR5KTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKworICAg
IGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRhdGFBbmRUb29M
YXJnZVByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZh
dGUtY2xpY2stbWVhc3VyZW1lbnQvNjQvNjQiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24g
PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJz
aW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRhdGFBbmRUb29MYXJnZVByaW9yaXR5KTsKKyAg
ICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKworICAgIGNvbnN0IFVSTCBjb252
ZXJzaW9uVVJMV2l0aEV4dHJhTGVhZGluZ1NsYXNoID0geyB7IH0sICJodHRwczovL3dlYmtpdC5v
cmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8vMjIvMTIiX3MgfTsKKyAg
ICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252
ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aEV4dHJhTGVhZGluZ1NsYXNoKTsKKyAgICBB
U1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJz
aW9uVVJMV2l0aEV4dHJhVHJhaWxpbmdTbGFzaCA9IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3Jn
Ly53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMjIvMTIvIl9zIH07CisgICAg
b3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVy
c2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhFeHRyYVRyYWlsaW5nU2xhc2gpOworICAgIEFT
U0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworCisgICAgY29uc3QgVVJMIGNvbnZlcnNp
b25VUkxXaXRoVHJhaWxpbmdRdWVzdGlvbk1hcmsgPSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9y
Zy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIyLzEyPyJfcyB9OworICAg
IG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZl
cnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdRdWVzdGlvbk1hcmspOworICAg
IEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworfQorCitURVNUKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50LCBJbnZhbGlkQ29udmVyc2lvbldpdGhEaXNhbGxvd2VkVVJMQ29tcG9uZW50
cykKK3sKKyAgICAvLyBQcm90b2NvbC4KKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhI
dHRwUHJvdG9jb2wgeyB7IH0sICJodHRwOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRl
LWNsaWNrLW1lYXN1cmVtZW50LzIiX3MgfTsKKyAgICBhdXRvIG9wdGlvbmFsQ29udmVyc2lvbiA9
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNp
b25VUkxXaXRoSHR0cFByb3RvY29sKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJz
aW9uKTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFdzc1Byb3RvY29sIHsgeyB9
LCAid3NzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50
LzIiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFdzc1Byb3RvY29sKTsK
KyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKworICAgIGNvbnN0IFVSTCBj
b252ZXJzaW9uVVJMV2l0aEZpbGVQcm90b2NvbCB7IHsgfSwgImZpbGU6Ly8vLndlbGwta25vd24v
cHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yIl9zIH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9u
ID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVy
c2lvblVSTFdpdGhGaWxlUHJvdG9jb2wpOworICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZl
cnNpb24pOworCisgICAgLy8gVXNlcm5hbWUgYW5kIHBhc3N3b3JkLgorICAgIGNvbnN0IFVSTCBj
b252ZXJzaW9uVVJMV2l0aFVzZXJOYW1lIHsgeyB9LCAiaHR0cHM6Ly91c2VyQHdlYmtpdC5vcmcv
LndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yIl9zIH07CisgICAgb3B0aW9u
YWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJl
cXVlc3QoY29udmVyc2lvblVSTFdpdGhVc2VyTmFtZSk7CisgICAgQVNTRVJUX0ZBTFNFKG9wdGlv
bmFsQ29udmVyc2lvbik7CisKKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhQYXNzd29y
ZCA9IHsgeyB9LCAiaHR0cHM6Ly86cHdkQHdlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1j
bGljay1tZWFzdXJlbWVudC8yMi8xMj8iX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9u
VVJMV2l0aFBhc3N3b3JkKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsK
KworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFVzZXJuYW1lQW5kUGFzc3dvcmQgPSB7
IHsgfSwgImh0dHBzOi8vdXNlcjpwd2RAd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNs
aWNrLW1lYXN1cmVtZW50LzIyLzEyPyJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25V
UkxXaXRoVXNlcm5hbWVBbmRQYXNzd29yZCk7CisgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29u
dmVyc2lvbik7CisKKyAgICAvLyBRdWVyeSBzdHJpbmcuCisgICAgY29uc3QgVVJMIGNvbnZlcnNp
b25VUkxXaXRoVHJhaWxpbmdRdWVzdGlvbk1hcmsgPSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9y
Zy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIyLzEyPyJfcyB9OworICAg
IG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZl
cnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdRdWVzdGlvbk1hcmspOworICAg
IEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworCisgICAgY29uc3QgVVJMIGNvbnZl
cnNpb25VUkxXaXRoUXVlcnlTdHJpbmcgPSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2Vs
bC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIyLzEyP2V4dHJhPWRhdGEiX3MgfTsK
KyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VD
b252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFF1ZXJ5U3RyaW5nKTsKKyAgICBBU1NF
UlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKyAgICAKKyAgICAvLyBGcmFnbWVudC4KKyAg
ICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhUcmFpbGluZ0hhc2ggPSB7IHsgfSwgImh0dHBz
Oi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIyLzEy
IyJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdIYXNoKTsK
KyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKworICAgIGNvbnN0IFVSTCBj
b252ZXJzaW9uVVJMV2l0aEZyYWdtZW50ID0geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndl
bGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8xMiNmcmFnbWVudCJfcyB9Owor
ICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNv
bnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoRnJhZ21lbnQpOworICAgIEFTU0VSVF9G
QUxTRShvcHRpb25hbENvbnZlcnNpb24pOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA1NTE2MmZmMzQzZDI1ZjY5MDZjMzky
NzZmZDVhODkxZWRmMjliODY5Li5mZTg1MzlmMzUxOGZlNjU3MGQ3NDM1OGRhNzcwMDRhZTA5YmY5
Y2RkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTY2LDcgKzY2LDcgQEAgaW50ZXJm
YWNlIFRlc3RSdW5uZXIgewogICAgIHVuZGVmaW5lZCBkdW1wRE9NQXNXZWJBcmNoaXZlKCk7CiAg
ICAgdW5kZWZpbmVkIGR1bXBQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrcygpOwogICAgIHVuZGVmaW5l
ZCBkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOwotICAgIHVuZGVmaW5lZCBkdW1wQWRDbGlj
a0F0dHJpYnV0aW9uKCk7CisgICAgdW5kZWZpbmVkIGR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCgpOwogCiAgICAgdW5kZWZpbmVkIGNsZWFyRE9NQ2FjaGVzKCk7CiAgICAgdW5kZWZpbmVkIGNs
ZWFyRE9NQ2FjaGUoRE9NU3RyaW5nIG9yaWdpbik7CkBAIC0zOTcsMTAgKzM5NywxMCBAQCBpbnRl
cmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdW5kZWZpbmVkIGNsZWFuVXBLZXljaGFpbihET01TdHJp
bmcgYXR0ckxhYmVsLCBvcHRpb25hbCBET01TdHJpbmcgYXBwbGljYXRpb25MYWJlbEJhc2U2NCk7
CiAgICAgYm9vbGVhbiBrZXlFeGlzdHNJbktleWNoYWluKERPTVN0cmluZyBhdHRyTGFiZWwsIERP
TVN0cmluZyBhcHBsaWNhdGlvbkxhYmVsQmFzZTY0KTsKIAotICAgIC8vIEFkIENsaWNrIEF0dHJp
YnV0aW9uCi0gICAgdW5kZWZpbmVkIGNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKCk7Ci0gICAgdW5k
ZWZpbmVkIGNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwo
KTsKLSAgICB1bmRlZmluZWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRl
c3RpbmcoYm9vbGVhbiB2YWx1ZSk7Ci0gICAgdW5kZWZpbmVkIHNldEFkQ2xpY2tBdHRyaWJ1dGlv
bkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKERPTVN0cmluZyB1cmwpOwotICAgIHVuZGVmaW5lZCBt
YXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICAvLyBQcml2
YXRlIENsaWNrIE1lYXN1cmVtZW50CisgICAgdW5kZWZpbmVkIGNsZWFyUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQoKTsKKyAgICB1bmRlZmluZWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNU
aHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCk7CisgICAgdW5kZWZpbmVkIHNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbGVhbiB2YWx1ZSk7CisgICAg
dW5kZWZpbmVkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rp
bmcoRE9NU3RyaW5nIHVybCk7CisgICAgdW5kZWZpbmVkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CiB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggZGZkMDFhMzJmMzEx
ZTEyNDRhYTc4NzliNDM3NTk3YWZhYzNlZmQ5ZS4uM2NiZTQ3YzhlOWFjM2U5NTE4N2QwYzVmZjZj
M2VmYjE1ZjNjMzFhZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xOTk1LDM1ICsxOTk1LDM1IEBAIHZvaWQgVGVz
dFJ1bm5lcjo6YWJvcnRNb2RhbCgpCiAgICAgcG9zdFN5bmNocm9ub3VzTWVzc2FnZSgiQWJvcnRN
b2RhbCIpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OmR1bXBBZENsaWNrQXR0cmlidXRpb24oKQor
dm9pZCBUZXN0UnVubmVyOjpkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKQogewotICAgIHBv
c3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJEdW1wQWRDbGlja0F0dHJpYnV0aW9uIik7CisgICAg
cG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIkR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCIp
OwogfQogCi12b2lkIFRlc3RSdW5uZXI6OmNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKCkKK3ZvaWQg
VGVzdFJ1bm5lcjo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpCiB7Ci0gICAgcG9zdFN5
bmNocm9ub3VzUGFnZU1lc3NhZ2UoIkNsZWFyQWRDbGlja0F0dHJpYnV0aW9uIik7CisgICAgcG9z
dFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIkNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQiKTsK
IH0KIAotdm9pZCBUZXN0UnVubmVyOjpjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJvdWdoV2Vi
c2l0ZURhdGFSZW1vdmFsKCkKK3ZvaWQgVGVzdFJ1bm5lcjo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCkKIHsKLSAgICBwb3N0U3luY2hyb25v
dXNNZXNzYWdlKCJDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJvdWdoV2Vic2l0ZURhdGFSZW1v
dmFsIik7CisgICAgcG9zdFN5bmNocm9ub3VzTWVzc2FnZSgiQ2xlYXJQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsIik7CiB9CiAKLXZvaWQgVGVzdFJ1bm5l
cjo6c2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1
ZSkKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRp
bWVyRm9yVGVzdGluZyhib29sIHZhbHVlKQogewotICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNz
YWdlKCJTZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyIsIHZhbHVl
KTsKKyAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiU2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyIsIHZhbHVlKTsKIH0KIAotdm9pZCBUZXN0UnVu
bmVyOjpzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyhKU1N0cmlu
Z1JlZiB1cmxTdHJpbmcpCit2b2lkIFRlc3RSdW5uZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoSlNTdHJpbmdSZWYgdXJsU3RyaW5nKQogewotICAg
IHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJTZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJz
aW9uVVJMRm9yVGVzdGluZyIsCisgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIlNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmciLAogICAgICAgICBh
ZG9wdFdLKFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHRvV1RGU3RyaW5nKHVybFN0cmluZyku
dXRmOCgpLmRhdGEoKSkpKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjptYXJrQWRDbGlja0F0dHJp
YnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoKQordm9pZCBUZXN0UnVubmVyOjptYXJrUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpCiB7Ci0gICAgcG9zdFN5bmNo
cm9ub3VzUGFnZU1lc3NhZ2UoIk1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVz
dGluZyIpOworICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJNYXJrUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyIpOwogfQogCiBib29sIFRlc3RSdW5uZXI6
Omhhc0FwcEJvdW5kU2Vzc2lvbigpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDBiZDNhMDllMzJkNzFiMzUxNmU0ZjhlMDVi
ZWEyMmFmOTk0YjFkMjMuLjE0ZTUzYzUxM2EyOTJiMWEwMDNjZWZkMjM1MzdiNjA5NDg4YTdhZGEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oCkBAIC01MDcsMTMgKzUwNywxMyBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCBsb25n
IHNlcnZlclRydXN0RXZhbHVhdGlvbkNhbGxiYWNrQ2FsbHNDb3VudCgpOwogCi0gICAgLy8gQWQg
Q2xpY2sgQXR0cmlidXRpb24uCi0gICAgdm9pZCBkdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7Ci0g
ICAgdm9pZCBjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbigpOwotICAgIHZvaWQgY2xlYXJBZENsaWNr
QXR0cmlidXRpb25zVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCgpOwotICAgIHZvaWQgc2V0QWRD
bGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7Ci0gICAg
dm9pZCBzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyhKU1N0cmlu
Z1JlZik7Ci0gICAgdm9pZCBtYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3Rp
bmcoKTsKKyAgICAvLyBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50LgorICAgIHZvaWQgZHVtcFBy
aXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1
cmVtZW50KCk7CisgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Rocm91Z2hX
ZWJzaXRlRGF0YVJlbW92YWwoKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7CisgICAgdm9pZCBzZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKEpTU3RyaW5nUmVmKTsKKyAg
ICB2b2lkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7
CiAKIHByaXZhdGU6CiAgICAgVGVzdFJ1bm5lcigpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAppbmRleCA2ZGJjNjg0ZTg4NTBhZmUwNDU5MTM5ZmJlMTlkNWU1Y2Nk
YjcyNmU3Li5hZDdkY2QyMGRiNTg2NTJjNzA3MGU2MzQyMzk2OTZjZWVkMTU1ZDA4IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMTA0NSw3ICsxMDQ1LDcg
QEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25z
dCBUZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUKICAgICBzdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3Rl
bnRTdGF0ZSgpOwogICAgIGNsZWFyTG9hZGVkU3VicmVzb3VyY2VEb21haW5zKCk7CiAgICAgY2xl
YXJBcHBCb3VuZFNlc3Npb24oKTsKLSAgICBjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbigpOworICAg
IGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKIAogICAgIFdLUGFnZURpc3BhdGNoQWN0
aXZpdHlTdGF0ZVVwZGF0ZUZvclRlc3RpbmcobV9tYWluV2ViVmlldy0+cGFnZSgpKTsKIApAQCAt
MzUwNywzNSArMzUwNywzNSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTZXJ2aWNlV29ya2Vy
RmV0Y2hUaW1lb3V0Rm9yVGVzdGluZyhkb3VibGUgc2Vjb25kcykKICAgICBXS1dlYnNpdGVEYXRh
U3RvcmVTZXRTZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0Rm9yVGVzdGluZyh3ZWJzaXRlRGF0YVN0
b3JlKCksIHNlY29uZHMpOwogfQogCi1zdHJ1Y3QgQWRDbGlja0F0dHJpYnV0aW9uU3RyaW5nUmVz
dWx0Q2FsbGJhY2tDb250ZXh0IHsKLSAgICBleHBsaWNpdCBBZENsaWNrQXR0cmlidXRpb25TdHJp
bmdSZXN1bHRDYWxsYmFja0NvbnRleHQoVGVzdENvbnRyb2xsZXImIGNvbnRyb2xsZXIpCitzdHJ1
Y3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdHJpbmdSZXN1bHRDYWxsYmFja0NvbnRleHQgewor
ICAgIGV4cGxpY2l0IFByaXZhdGVDbGlja01lYXN1cmVtZW50U3RyaW5nUmVzdWx0Q2FsbGJhY2tD
b250ZXh0KFRlc3RDb250cm9sbGVyJiBjb250cm9sbGVyKQogICAgICAgICA6IHRlc3RDb250cm9s
bGVyKGNvbnRyb2xsZXIpCiAgICAgewogICAgIH0KICAgICAKICAgICBUZXN0Q29udHJvbGxlciYg
dGVzdENvbnRyb2xsZXI7CiAgICAgYm9vbCBkb25lIHsgZmFsc2UgfTsKLSAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gYWRDbGlja0F0dHJpYnV0aW9uUmVwcmVzZW50YXRpb247CisgICAgV0tS
ZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHByaXZhdGVDbGlja01lYXN1cmVtZW50UmVwcmVzZW50YXRp
b247CiB9OwogCi1zdGF0aWMgdm9pZCBhZENsaWNrQXR0cmlidXRpb25TdHJpbmdSZXN1bHRDYWxs
YmFjayhXS1N0cmluZ1JlZiBhZENsaWNrQXR0cmlidXRpb25SZXByZXNlbnRhdGlvbiwgdm9pZCog
dXNlckRhdGEpCitzdGF0aWMgdm9pZCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0cmluZ1Jlc3Vs
dENhbGxiYWNrKFdLU3RyaW5nUmVmIHByaXZhdGVDbGlja01lYXN1cmVtZW50UmVwcmVzZW50YXRp
b24sIHZvaWQqIHVzZXJEYXRhKQogewotICAgIGF1dG8qIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxB
ZENsaWNrQXR0cmlidXRpb25TdHJpbmdSZXN1bHRDYWxsYmFja0NvbnRleHQqPih1c2VyRGF0YSk7
Ci0gICAgY29udGV4dC0+YWRDbGlja0F0dHJpYnV0aW9uUmVwcmVzZW50YXRpb24gPSBhZENsaWNr
QXR0cmlidXRpb25SZXByZXNlbnRhdGlvbjsKKyAgICBhdXRvKiBjb250ZXh0ID0gc3RhdGljX2Nh
c3Q8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdHJpbmdSZXN1bHRDYWxsYmFja0NvbnRleHQqPih1
c2VyRGF0YSk7CisgICAgY29udGV4dC0+cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRSZXByZXNlbnRh
dGlvbiA9IHByaXZhdGVDbGlja01lYXN1cmVtZW50UmVwcmVzZW50YXRpb247CiAgICAgY29udGV4
dC0+ZG9uZSA9IHRydWU7CiAgICAgY29udGV4dC0+dGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OwogfQogCi1TdHJpbmcgVGVzdENvbnRyb2xsZXI6OmR1bXBBZENsaWNrQXR0cmlidXRpb24oKQor
U3RyaW5nIFRlc3RDb250cm9sbGVyOjpkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKQogewot
ICAgIEFkQ2xpY2tBdHRyaWJ1dGlvblN0cmluZ1Jlc3VsdENhbGxiYWNrQ29udGV4dCBjYWxsYmFj
a0NvbnRleHQoKnRoaXMpOwotICAgIFdLUGFnZUR1bXBBZENsaWNrQXR0cmlidXRpb24obV9tYWlu
V2ViVmlldy0+cGFnZSgpLCBhZENsaWNrQXR0cmlidXRpb25TdHJpbmdSZXN1bHRDYWxsYmFjaywg
JmNhbGxiYWNrQ29udGV4dCk7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdHJpbmdSZXN1
bHRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKKyAgICBXS1BhZ2VEdW1w
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudFN0cmluZ1Jlc3VsdENhbGxiYWNrLCAmY2FsbGJhY2tDb250ZXh0KTsKICAg
ICBydW5VbnRpbChjYWxsYmFja0NvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKLSAgICByZXR1cm4g
dG9XVEZTdHJpbmcoY2FsbGJhY2tDb250ZXh0LmFkQ2xpY2tBdHRyaWJ1dGlvblJlcHJlc2VudGF0
aW9uLmdldCgpKTsKKyAgICByZXR1cm4gdG9XVEZTdHJpbmcoY2FsbGJhY2tDb250ZXh0LnByaXZh
dGVDbGlja01lYXN1cmVtZW50UmVwcmVzZW50YXRpb24uZ2V0KCkpOwogfQogCi1zdHJ1Y3QgQWRD
bGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrQ29udGV4dCB7Ci0gICAgZXhwbGljaXQgQWRDbGlj
a0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrQ29udGV4dChUZXN0Q29udHJvbGxlciYgY29udHJvbGxl
cikKK3N0cnVjdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFja0NvbnRleHQgewor
ICAgIGV4cGxpY2l0IFByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrQ29udGV4dChU
ZXN0Q29udHJvbGxlciYgY29udHJvbGxlcikKICAgICAgICAgOiB0ZXN0Q29udHJvbGxlcihjb250
cm9sbGVyKQogICAgIHsKICAgICB9CkBAIC0zNTQ0LDQ1ICszNTQ0LDQ1IEBAIHN0cnVjdCBBZENs
aWNrQXR0cmlidXRpb25Wb2lkQ2FsbGJhY2tDb250ZXh0IHsKICAgICBib29sIGRvbmUgeyBmYWxz
ZSB9OwogfTsKIAotc3RhdGljIHZvaWQgYWRDbGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrKHZv
aWQqIHVzZXJEYXRhKQorc3RhdGljIHZvaWQgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2Fs
bGJhY2sodm9pZCogdXNlckRhdGEpCiB7Ci0gICAgYXV0byogY29udGV4dCA9IHN0YXRpY19jYXN0
PEFkQ2xpY2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFja0NvbnRleHQqPih1c2VyRGF0YSk7CisgICAg
YXV0byogY29udGV4dCA9IHN0YXRpY19jYXN0PFByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENh
bGxiYWNrQ29udGV4dCo+KHVzZXJEYXRhKTsKICAgICBjb250ZXh0LT5kb25lID0gdHJ1ZTsKICAg
ICBjb250ZXh0LT50ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CiB9CiAKLXZvaWQgVGVzdENv
bnRyb2xsZXI6OmNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKCkKK3ZvaWQgVGVzdENvbnRyb2xsZXI6
OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKQogewotICAgIEFkQ2xpY2tBdHRyaWJ1dGlv
blZvaWRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKLSAgICBXS1BhZ2VD
bGVhckFkQ2xpY2tBdHRyaWJ1dGlvbihtX21haW5XZWJWaWV3LT5wYWdlKCksIGFkQ2xpY2tBdHRy
aWJ1dGlvblZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4dCk7CisgICAgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2tDb250ZXh0IGNhbGxiYWNrQ29udGV4dCgqdGhpcyk7Cisg
ICAgV0tQYWdlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChtX21haW5XZWJWaWV3LT5wYWdl
KCksIHByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrLCAmY2FsbGJhY2tDb250ZXh0
KTsKICAgICBydW5VbnRpbChjYWxsYmFja0NvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKIH0KIAot
dm9pZCBUZXN0Q29udHJvbGxlcjo6Y2xlYXJBZENsaWNrQXR0cmlidXRpb25zVGhyb3VnaFdlYnNp
dGVEYXRhUmVtb3ZhbCgpCit2b2lkIFRlc3RDb250cm9sbGVyOjpjbGVhclByaXZhdGVDbGlja01l
YXN1cmVtZW50c1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoKQogewotICAgIEFkQ2xpY2tBdHRy
aWJ1dGlvblZvaWRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKLSAgICBX
S1dlYnNpdGVEYXRhU3RvcmVDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJvdWdoV2Vic2l0ZURh
dGFSZW1vdmFsKHdlYnNpdGVEYXRhU3RvcmUoKSwgJmNhbGxiYWNrQ29udGV4dCwgYWRDbGlja0F0
dHJpYnV0aW9uVm9pZENhbGxiYWNrKTsKKyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRD
YWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKKyAgICBXS1dlYnNpdGVEYXRh
U3RvcmVDbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92
YWwod2Vic2l0ZURhdGFTdG9yZSgpLCAmY2FsbGJhY2tDb250ZXh0LCBwcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFZvaWRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY2FsbGJhY2tDb250ZXh0LmRvbmUs
IG5vVGltZW91dCk7CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEFkQ2xpY2tBdHRyaWJ1
dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpCit2b2lkIFRlc3RDb250cm9s
bGVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJv
b2wgdmFsdWUpCiB7Ci0gICAgQWRDbGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrQ29udGV4dCBj
YWxsYmFja0NvbnRleHQoKnRoaXMpOwotICAgIFdLUGFnZVNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92
ZXJyaWRlVGltZXJGb3JUZXN0aW5nKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgdmFsdWUsIGFkQ2xp
Y2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4dCk7CisgICAgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2tDb250ZXh0IGNhbGxiYWNrQ29udGV4dCgqdGhp
cyk7CisgICAgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9y
VGVzdGluZyhtX21haW5XZWJWaWV3LT5wYWdlKCksIHZhbHVlLCBwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4dCk7CiAgICAgcnVuVW50aWwoY2FsbGJh
Y2tDb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OnNl
dEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdLVVJMUmVmIHVybCkK
K3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lv
blVSTEZvclRlc3RpbmcoV0tVUkxSZWYgdXJsKQogewotICAgIEFkQ2xpY2tBdHRyaWJ1dGlvblZv
aWRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKLSAgICBXS1BhZ2VTZXRB
ZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyhtX21haW5XZWJWaWV3LT5w
YWdlKCksIHVybCwgYWRDbGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrLCAmY2FsbGJhY2tDb250
ZXh0KTsKKyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFja0NvbnRleHQgY2Fs
bGJhY2tDb250ZXh0KCp0aGlzKTsKKyAgICBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgdXJsLCBwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4dCk7CiAgICAg
cnVuVW50aWwoY2FsbGJhY2tDb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiB9CiAKLXZvaWQgVGVz
dENvbnRyb2xsZXI6Om1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZygp
Cit2b2lkIFRlc3RDb250cm9sbGVyOjptYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBp
cmVkRm9yVGVzdGluZygpCiB7Ci0gICAgQWRDbGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrQ29u
dGV4dCBjYWxsYmFja0NvbnRleHQoKnRoaXMpOwotICAgIFdLUGFnZU1hcmtBZENsaWNrQXR0cmli
dXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZyhtX21haW5XZWJWaWV3LT5wYWdlKCksIGFkQ2xpY2tB
dHRyaWJ1dGlvblZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4dCk7CisgICAgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2tDb250ZXh0IGNhbGxiYWNrQ29udGV4dCgqdGhpcyk7
CisgICAgV0tQYWdlTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rp
bmcobV9tYWluV2ViVmlldy0+cGFnZSgpLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRDYWxs
YmFjaywgJmNhbGxiYWNrQ29udGV4dCk7CiAgICAgcnVuVW50aWwoY2FsbGJhY2tDb250ZXh0LmRv
bmUsIG5vVGltZW91dCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aAppbmRleCAzM2I2NDk0YWM2MjQ0YjkyZmNiNzgwOWE1OGQ3MjAzYzdjMTI1OGE4Li4wOTE1ZWQ4
Y2ZiNWVjNGM1NzhlMjg4YTk5ODk1YTQ4YjA5ZWM0M2RhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oCkBAIC0zNDAsMTIgKzM0MCwxMiBAQCBwdWJsaWM6CiAKICAgICBi
b29sIGlzRG9pbmdNZWRpYUNhcHR1cmUoKSBjb25zdDsKIAotICAgIFN0cmluZyBkdW1wQWRDbGlj
a0F0dHJpYnV0aW9uKCk7Ci0gICAgdm9pZCBjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbigpOwotICAg
IHZvaWQgY2xlYXJBZENsaWNrQXR0cmlidXRpb25zVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCgp
OwotICAgIHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3Rpbmco
Ym9vbCB2YWx1ZSk7Ci0gICAgdm9pZCBzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJM
Rm9yVGVzdGluZyhXS1VSTFJlZik7Ci0gICAgdm9pZCBtYXJrQWRDbGlja0F0dHJpYnV0aW9uc0Fz
RXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICBTdHJpbmcgZHVtcFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KCk7CisgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgdm9p
ZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwo
KTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRl
c3RpbmcoYm9vbCB2YWx1ZSk7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
bnZlcnNpb25VUkxGb3JUZXN0aW5nKFdLVVJMUmVmKTsKKyAgICB2b2lkIG1hcmtQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CiAKICAgICB2b2lkIGRpZFNldEFw
cEJvdW5kRG9tYWlucygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwCmluZGV4IDE0YzA0ZWQxZmE5Mzk0ZjU3MmY2NDlhOTFiNDdlZmIyMDZlZjg1NGUu
LmYyNDdmYjU2YTA1NjgzZDI4ZmUzOGY0NTk2ZDMzZjNhMDg0N2ViMWMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0yNDMsOCArMjQzLDggQEAgdm9pZCBU
ZXN0SW52b2NhdGlvbjo6ZHVtcFJlc3VsdHMoKQogICAgIGlmIChtX3Nob3VsZER1bXBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzKQogICAgICAgICBtX3RleHRPdXRwdXQuYXBwZW5kKG1fc2F2ZWRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLmlzTnVsbCgpID8gVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigp
LmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkgOiBtX3NhdmVkUmVzb3VyY2VMb2FkU3RhdGlz
dGljcyk7CiAKLSAgICBpZiAobV9zaG91bGREdW1wQWRDbGlja0F0dHJpYnV0aW9uKQotICAgICAg
ICBtX3RleHRPdXRwdXQuYXBwZW5kKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5kdW1wQWRD
bGlja0F0dHJpYnV0aW9uKCkpOworICAgIGlmIChtX3Nob3VsZER1bXBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCkKKyAgICAgICAgbV90ZXh0T3V0cHV0LmFwcGVuZChUZXN0Q29udHJvbGxlcjo6c2lu
Z2xldG9uKCkuZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KCkpOwogICAgIAogICAgIGlmICht
X3RleHRPdXRwdXQubGVuZ3RoKCkgfHwgIW1fYXVkaW9SZXN1bHQpCiAgICAgICAgIGR1bXAobV90
ZXh0T3V0cHV0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CkBAIC0xMzA0LDE4ICsxMzA0LDE4
IEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5j
aHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KIAotICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAi
RHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbiIpKSB7Ci0gICAgICAgIGR1bXBBZENsaWNrQXR0cmlidXRp
b24oKTsKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwg
IkR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCIpKSB7CisgICAgICAgIGR1bXBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCgpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgCi0g
ICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJDbGVhckFk
Q2xpY2tBdHRyaWJ1dGlvbiIpKSB7Ci0gICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24o
KS5jbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbigpOworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VU
RjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCIpKSB7
CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jbGVhclByaXZhdGVDbGlja01l
YXN1cmVtZW50KCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGlmIChX
S1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiQ2xlYXJBZENsaWNrQXR0
cmlidXRpb25zVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCIpKSB7Ci0gICAgICAgIFRlc3RDb250
cm9sbGVyOjpzaW5nbGV0b24oKS5jbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJvdWdoV2Vic2l0
ZURhdGFSZW1vdmFsKCk7CisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVz
c2FnZU5hbWUsICJDbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Rocm91Z2hXZWJzaXRlRGF0
YVJlbW92YWwiKSkgeworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuY2xlYXJQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCk7CiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICAKQEAgLTEzMjQsMTkgKzEzMjQsMTkgQEAg
V0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9u
b3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQog
Ci0gICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRB
ZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyIpKSB7Ci0gICAgICAgIFRl
c3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRp
bWVyRm9yVGVzdGluZyhib29sZWFuVmFsdWUobWVzc2FnZUJvZHkpKTsKKyAgICBpZiAoV0tTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmciKSkgeworICAgICAgICBUZXN0Q29udHJvbGxl
cjo6c2luZ2xldG9uKCkuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9y
VGVzdGluZyhib29sZWFuVmFsdWUobWVzc2FnZUJvZHkpKTsKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQogICAgIAotICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1l
c3NhZ2VOYW1lLCAiU2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3Rpbmci
KSkgeworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAi
U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyIpKSB7CiAg
ICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tVUkxHZXRUeXBlSUQo
KSk7Ci0gICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRBZENsaWNrQXR0cmli
dXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyhzdGF0aWNfY2FzdDxXS1VSTFJlZj4obWVzc2Fn
ZUJvZHkpKTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rpbmcoc3RhdGljX2Nhc3Q8V0tVUkxS
ZWY+KG1lc3NhZ2VCb2R5KSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAg
IGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiTWFya0FkQ2xp
Y2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nIikpIHsKLSAgICAgICAgVGVzdENvbnRy
b2xsZXI6OnNpbmdsZXRvbigpLm1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVz
dGluZygpOworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1l
LCAiTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmciKSkgewor
ICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFya1ByaXZhdGVDbGlja01lYXN1
cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQogCkBAIC0xNTMzLDkgKzE1MzMsOSBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkdW1wUmVz
b3VyY2VMb2FkU3RhdGlzdGljcygpCiAgICAgbV9zaG91bGREdW1wUmVzb3VyY2VMb2FkU3RhdGlz
dGljcyA9IHRydWU7CiB9CiAKLXZvaWQgVGVzdEludm9jYXRpb246OmR1bXBBZENsaWNrQXR0cmli
dXRpb24oKQordm9pZCBUZXN0SW52b2NhdGlvbjo6ZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50
KCkKIHsKLSAgICBtX3Nob3VsZER1bXBBZENsaWNrQXR0cmlidXRpb24gPSB0cnVlOworICAgIG1f
c2hvdWxkRHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gdHJ1ZTsKIH0KIAogdm9pZCBUZXN0
SW52b2NhdGlvbjo6cGVyZm9ybUN1c3RvbU1lbnVBY3Rpb24oKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5oCmluZGV4IGI4Y2E2YjdiZGNmZDM0NzQ1NTYyZDBjYzdiYjllZTc2
NGEwZDBkMjEuLmQ5NGY1NGUxNzczMzkxZGZmZDkxMWMzZTU2ODNiNTdjOTg5YzgzNzIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBw
dWJsaWM6CiAKICAgICBib29sIGNhbk9wZW5XaW5kb3dzKCkgY29uc3QgeyByZXR1cm4gbV9jYW5P
cGVuV2luZG93czsgfQogCi0gICAgdm9pZCBkdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7CisgICAg
dm9pZCBkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKICAgICB2b2lkIHBlcmZvcm1DdXN0
b21NZW51QWN0aW9uKCk7CiAKICAgICB2b2lkIHdpbGxDcmVhdGVOZXdQYWdlKCk7CkBAIC0xNjIs
NyArMTYyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcGl4ZWxSZXN1bHRJc1BlbmRpbmcgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGREdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2Nhbk9wZW5XaW5kb3dzIHsgZmFsc2UgfTsKLSAgICBib29sIG1f
c2hvdWxkRHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbiB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Nob3Vs
ZER1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB7IGZhbHNlIH07CiAgICAgV2hhdFRvRHVtcCBt
X3doYXRUb0R1bXAgeyBXaGF0VG9EdW1wOjpSZW5kZXJUcmVlIH07CiAKICAgICBTdHJpbmdCdWls
ZGVyIG1fdGV4dE91dHB1dDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0NWU3ZTg0YzZhOWUzNjBlZWQ5Njg4ZGZjY2YxOWY2
MmU4MDU4MWIzLi4xNTgzNjYzNDRiMGQxOThlNjU0ZmFkMjQ2MmJlOWRlMGI0MGJhZjU1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNzUgQEAKKzIwMjAtMTEtMDkgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBh
cHBsZS5jb20+CisKKyAgICAgICAgUENNOiBDaGFuZ2UgZnJvbSBhZC1jbGljay1hdHRyaWJ1dGlv
biB0byBwcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50IChpbiBhbGwgZm9ybXMsIGluY2x1ZGluZyAu
d2VsbC1rbm93biBVUkwpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTg3MzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMDk0Mjk2PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSB0byB0aGUg
b2ZmaWNpYWwgbmFtZSBvZiB0aGUgcHJvcG9zZWQgc3RhbmRhcmQgUHJpdmF0ZSBDbGljayBNZWFz
dXJlbWVudAorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vcHJpdmFjeWNnL3ByaXZhdGUtY2xp
Y2stbWVhc3VyZW1lbnQuCisKKyAgICAgICAgVGhpcyBpbmNsdWRlcyBhIGNoYW5nZSBvZiB0aGUg
cmVwb3J0aW5nIFVSTCBmcm9tIAorICAgICAgICAiLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJp
YnV0aW9uLyIgdG8KKyAgICAgICAgIi8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVt
ZW50LyIuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGh0dHAvdGVz
dHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1jcm9z
cy1zaXRlLWltYWdlLXJlZGlyZWN0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVk
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FkQ2xpY2tBdHRy
aWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb25PbklQQWRkcmVzcy5waHA6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUtYWQt
Y2xpY2stYXR0cmlidXRpb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNz
aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2NvbnRlbnRl
eHRlbnNpb25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUt
Y2xpY2stbWVhc3VyZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQuaHRt
bDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMv
YmxvY2stYWQtY2xpY2stYXR0cmlidXRpb24uaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2Nv
bnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQuaHRtbC5qc29u
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9i
bG9jay1hZC1jbGljay1hdHRyaWJ1dGlvbi5odG1sLmpzb24uCisgICAgICAgICogaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtcmVmbGVjdC1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tB
dHRyaWJ1dGlvbi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtcmVmbGVjdC1leHBlY3RlZC50eHQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hbmNob3ItdGFnLWF0
dHJpYnV0ZXMtcmVmbGVjdC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hZENsaWNrQXR0cmlidXRpb24vYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXJlZmxlY3QuaHRtbC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2FuY2hvci10YWct
YXR0cmlidXRlcy12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2FuY2hvci10YWctYXR0cmlidXRlcy12
YWxpZGF0aW9uLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L2FuY2hvci10YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLmh0bWw6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hbmNob3It
dGFnLWF0dHJpYnV0ZXMtdmFsaWRhdGlvbi5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3Nz
LXNpdGUtaW1hZ2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhy
b3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9u
LXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC5odG1sLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJv
dWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3ctZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24t
Y29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3ctZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmli
dXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3cuaHRt
bDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9u
L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2lu
ZG93Lmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9h
dHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0
eS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJl
Y3Qtd2l0aC1wcmlvcml0eS1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2Ut
cmVkaXJlY3Qtd2l0aC1wcmlvcml0eS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdo
LWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHkuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1p
bWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNv
bnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5LWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJp
YnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5
Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1
dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91
dC1wcmlvcml0eS5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvY2xlYXItdGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1leHBlY3RlZC50eHQ6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jbGVh
ci10aHJvdWdoLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NsZWFyLXRocm91Z2gtd2Vic2l0ZS1k
YXRhLXJlbW92YWwuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRD
bGlja0F0dHJpYnV0aW9uL2NsZWFyLXRocm91Z2gtd2Vic2l0ZS1kYXRhLXJlbW92YWwuaHRtbC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvbnZlcnNpb24t
ZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vY29udmVyc2lvbi1kaXNh
YmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVt
ZXJhbC1zZXNzaW9uLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9u
Lmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBp
cmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJpYnV0aW9ucy1y
ZW1vdmVkLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tB
dHRyaWJ1dGlvbi9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLmh0bWwuCisgICAgICAgICog
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvbkZp
bGVQYXRoLnBocDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0
dHJpYnV0aW9uL3Jlc291cmNlcy9jb252ZXJzaW9uRmlsZVBhdGgucGhwLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBv
cnQucGhwOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmli
dXRpb24vcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnRBbmRQb3N0TWVzc2Fn
ZUJhY2suaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0
dHJpYnV0aW9uL3Jlc291cmNlcy9jb252ZXJ0QW5kUG9zdE1lc3NhZ2VCYWNrLmh0bWwuCisgICAg
ICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29u
dmVyc2lvbkRhdGEucGhwOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENs
aWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBocC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRv
Q29udmVyc2lvbi5waHA6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0
VG9Db252ZXJzaW9uT25JUEFkZHJlc3MucGhwOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy91dGlsLmpzOiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3V0aWwu
anMuCisgICAgICAgIChwcmVwYXJlVGVzdCk6CisgICAgICAgICh0ZWFyRG93bkFuZEZpbmlzaCk6
CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0
cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29u
ZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0
dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sOiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJp
YnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZl
cnRlZC13aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1hdHRyaWJ1dGlvbi1j
b252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVy
dGVkLXdpdGgtbG93ZXItcHJpb3JpdHkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQt
d2l0aC1sb3dlci1wcmlvcml0eS5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHktZXhw
ZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0
cmlidXRpb24vc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25k
LWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1jb252ZXJzaW9uLXdp
dGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVj
dGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJp
YnV0aW9uL3NlY29uZC1jb252ZXJzaW9uLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNv
bnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWNvbnZlcnNpb24td2l0aC1s
b3dlci1wcmlvcml0eS5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24v
c2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QtZXhwZWN0ZWQudHh0LgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1j
b252ZXJzaW9uLXJlcXVlc3QuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0
Lmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9y
ZS1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtZGlzYWJsZWQt
aW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNz
aW9uLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9z
dG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNs
aWNrLW1lYXN1cmVtZW50Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FkQ2xpY2tBdHRyaWJ1dGlvbi9zdG9yZS1hZC1jbGljay1hdHRyaWJ1dGlvbi5odG1sLgorICAg
ICAgICAqIGluc3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1BZENsaWNrQXR0cmlidXRpb25E
ZWJ1Z01vZGVFbmFibGVkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvcGFnZS9vdmVycmlkZVNldHRpbmctUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVF
bmFibGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3BhZ2Uvb3Zl
cnJpZGVTZXR0aW5nLVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZC5odG1s
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5n
LUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQuaHRtbC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2syL1Rl
c3RFeHBlY3RhdGlvbnM6CisKIDIwMjAtMTEtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBVbmV4cG9zZSBvYnNvbGV0ZSBIVE1MQXBwbGV0RWxlbWVudCBpbnRl
cmZhY2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGJiMzIxOWRhYTUwOTkyMGNiNDIwOTc2MWZkNjI1
MTgxMGIxMmY4MzQuLmJlYTY1OTFlOTZhMTNkYmM1ZjYxZjUxMGI5ZWNkZGFjODg4MDEyYmMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMTEwMSw4ICsxMTAxLDggQEAgaW5zcGVjdG9yL3J1bnRpbWUv
Y2FsbEZ1bmN0aW9uT24tZW11bGF0ZVVzZXJHZXN0dXJlLXVzZXJJc0ludGVyYWN0aW5nLmh0bWwg
WyBTa2kKICMgVGFyZ2V0IGRvbWFpbiBpcyBvbmx5IHByZXNlbnQgaW4gV0syLgogaHR0cC90ZXN0
cy9pbnNwZWN0b3IvdGFyZ2V0IFsgU2tpcCBdCiAKLSMgSVRQIGFuZCBBZENsaWNrQXR0cmlidXRp
b24gYXJlIFdLMiBvbmx5LgotaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLUFkQ2xpY2tB
dHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQuaHRtbCBbIFNraXAgXQorIyBJVFAgYW5kIFByaXZh
dGVDbGlja01lYXN1cmVtZW50IGFyZSBXSzIgb25seS4KK2luc3BlY3Rvci9wYWdlL292ZXJyaWRl
U2V0dGluZy1Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQuaHRtbCBbIFNr
aXAgXQogaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLUlUUERlYnVnTW9kZUVuYWJsZWQu
aHRtbCBbIFNraXAgXQogCiAjIFRoZXNlIGNvbmZvcm1hbmNlIHRlc3RzIGFyZSBubyBsb25nZXIg
aW4gc3luYyB3aXRoIHRoZSBsYXRlc3Qgc3BlY2lmaWNhdGlvbgpAQCAtMjc3Miw3ICsyNzcyLDcg
QEAgd2Via2l0Lm9yZy9iLzE3OTA2OSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnQKIHdlYmtpdC5vcmcvYi8xNTcwNjggWyBEZWJ1ZyBd
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbm9zbmlmZi9pbXBvcnRzY3Jp
cHRzLmh0bWwgWyBQYXNzIENyYXNoIF0KIHdlYmtpdC5vcmcvYi8xNTcwNjggWyBSZWxlYXNlIF0g
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9ub3NuaWZmL2ltcG9ydHNjcmlw
dHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKLWh0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9u
IFsgU2tpcCBdCitodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50IFsgU2tpcCBdCiAK
ICMgQXBwbGljYXRpb24gTWFuaWZlc3QgdGVzdHMKIHdlYmtpdC5vcmcvYi8xNTMxNTIgaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvbWFuaWZlc3Qtc3JjLWFsbG93ZWQu
aHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNr
QXR0cmlidXRpb24vYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXJlZmxlY3QtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5jaG9yLXRhZy1hdHRy
aWJ1dGVzLXJlZmxlY3QtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAxYzdhOTVlYWU0ZTgwY2VjYzUzMjYwZjBhZjc0NWExMWI2ODViYWJlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YWRDbGlja0F0dHJpYnV0aW9uL2FuY2hvci10YWctYXR0cmlidXRlcy1yZWZsZWN0LWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVRlc3QgZm9yIHRoZSBuZXcgYWQg
Y2xpY2sgYXR0cmlidXRpb24gYXR0cmlidXRlcyBvbiBhbmNob3IgdGFncy4KLQotT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgYW5jaG9yVGFnLmFkY2FtcGFpZ25pZCBpcyAiNDAi
Ci1QQVNTIGFuY2hvclRhZy5hZGRlc3RpbmF0aW9uIGlzICJkZXN0aW5hdGlvbi5leGFtcGxlIgot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2FuY2hvci10
YWctYXR0cmlidXRlcy1yZWZsZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtcmVmbGVjdC5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZDk5NTZmZGVlYzc4ZWQ3MGIyZmI0ODIwMDFmZGRkNWI1
Mzk4Mjk1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2FuY2hvci10YWctYXR0cmli
dXRlcy1yZWZsZWN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBBZENsaWNrQXR0cmlidXRpb25FbmFi
bGVkPXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KLSAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08YSBpZD0idGVzdFRhZyIgaHJlZj0iaHR0
cDovL2xvY2FsaG9zdDo4MDAwIiBhZGNhbXBhaWduaWQ9IjQwIiBhZGRlc3RpbmF0aW9uPSJkZXN0
aW5hdGlvbi5leGFtcGxlIj48L2E+Ci08c2NyaXB0PgotICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZv
ciB0aGUgbmV3IGFkIGNsaWNrIGF0dHJpYnV0aW9uIGF0dHJpYnV0ZXMgb24gYW5jaG9yIHRhZ3Mu
Iik7Ci0KLSAgICBjb25zdCBhbmNob3JUYWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVz
dFRhZyIpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiYW5jaG9yVGFnLmFkY2FtcGFpZ25p
ZCIsICI0MCIpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiYW5jaG9yVGFnLmFkZGVzdGlu
YXRpb24iLCAiZGVzdGluYXRpb24uZXhhbXBsZSIpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtdmFsaWRhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMt
dmFsaWRhdGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZi
NTQ5OWY0YWQ0MTQ3YTFlOGJhMDJmOTQ5NmE5MTA3YzJhOTAxOWQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENs
aWNrQXR0cmlidXRpb24vYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlkYXRpb24tZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBhZGNh
bXBhaWduaWQgbXVzdCBoYXZlIGEgbm9uLW5lZ2F0aXZlIHZhbHVlIGxlc3MgdGhhbiBvciBlcXVh
bCB0byA2MyBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24uCi1DT05TT0xFIE1FU1NBR0U6IGFkY2Ft
cGFpZ25pZCBtdXN0IGhhdmUgYSBub24tbmVnYXRpdmUgdmFsdWUgbGVzcyB0aGFuIG9yIGVxdWFs
IHRvIDYzIGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbi4KLUNPTlNPTEUgTUVTU0FHRTogYWRjYW1w
YWlnbmlkIGNhbiBub3QgYmUgY29udmVydGVkIHRvIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgd2hp
Y2ggaXMgcmVxdWlyZWQgZm9yIEFkIENsaWNrIEF0dHJpYnV0aW9uLgotQ09OU09MRSBNRVNTQUdF
OiBhZGNhbXBhaWduaWQgY2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSBub24tbmVnYXRpdmUgaW50
ZWdlciB3aGljaCBpcyByZXF1aXJlZCBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24uCi1DT05TT0xF
IE1FU1NBR0U6IGFkY2FtcGFpZ25pZCBjYW4gbm90IGJlIGNvbnZlcnRlZCB0byBhIG5vbi1uZWdh
dGl2ZSBpbnRlZ2VyIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbi4K
LUNPTlNPTEUgTUVTU0FHRTogYWRkZXN0aW5hdGlvbiBjb3VsZCBub3QgYmUgY29udmVydGVkIHRv
IGEgdmFsaWQgSFRUUC1mYW1pbHkgVVJMLgotQ09OU09MRSBNRVNTQUdFOiBhZGRlc3RpbmF0aW9u
IGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSB2YWxpZCBIVFRQLWZhbWlseSBVUkwuCi1DT05T
T0xFIE1FU1NBR0U6IGFkZGVzdGluYXRpb24gY291bGQgbm90IGJlIGNvbnZlcnRlZCB0byBhIHZh
bGlkIEhUVFAtZmFtaWx5IFVSTC4KLUNPTlNPTEUgTUVTU0FHRTogQm90aCBhZGNhbXBhaWduaWQg
YW5kIGFkZGVzdGluYXRpb24gbmVlZCB0byBiZSBzZXQgZm9yIEFkIENsaWNrIEF0dHJpYnV0aW9u
IHRvIHdvcmsuCi1DT05TT0xFIE1FU1NBR0U6IEJvdGggYWRjYW1wYWlnbmlkIGFuZCBhZGRlc3Rp
bmF0aW9uIG5lZWQgdG8gYmUgc2V0IGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbiB0byB3b3JrLgot
Q09OU09MRSBNRVNTQUdFOiBhZGRlc3RpbmF0aW9uIGNhbiBub3QgYmUgdGhlIHNhbWUgc2l0ZSBh
cyB0aGUgY3VycmVudCB3ZWJzaXRlLgotVGVzdCBmb3IgdmFsaWRpdHkgb2YgYWQgY2xpY2sgYXR0
cmlidXRpb24gYXR0cmlidXRlcyBvbiBhbmNob3IgdGFncy4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1
dGlvbi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtdmFsaWRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlk
YXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmUyZmQ2M2U0MzU4Nzcz
MzVlZGJhNzlmYmE2NTA0OGU5YjA4ZWQ5MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtdmFsaWRhdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsODUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
dXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4K
LSAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNv
bnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxl
PW5vIj4KLSAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpz
Ij48L3NjcmlwdD4KLSAgICA8c3R5bGU+Ci0gICAgICAgIC53aWRlLWxpbmsgewotICAgICAgICAg
ICAgd2lkdGg6IDE1MHB4OwotICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotICAg
ICAgICB9Ci0gICAgPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuQWxsVGVzdHMo
KSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2
Pjxicj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlv
bigiVGVzdCBmb3IgdmFsaWRpdHkgb2YgYWQgY2xpY2sgYXR0cmlidXRpb24gYXR0cmlidXRlcyBv
biBhbmNob3IgdGFncy4iKTsKLSAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotICAgIGZ1bmN0
aW9uIGNyZWF0ZUFkQ2xpY2tBdHRyaWJ1dGlvbkFuY2hvckVsZW1lbnQoZWxlbWVudElELCBhZENh
bXBhaWduSUQsIGFkRGVzdGluYXRpb24pIHsKLSAgICAgICAgbGV0IGFuY2hvckVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7Ci0gICAgICAgIGFuY2hvckVsZW1lbnQuaWQgPSBl
bGVtZW50SUQ7Ci0gICAgICAgIGFuY2hvckVsZW1lbnQuY2xhc3NMaXN0LmFkZCgid2lkZS1saW5r
Iik7Ci0gICAgICAgIGFuY2hvckVsZW1lbnQuYWRjYW1wYWlnbmlkID0gYWRDYW1wYWlnbklEOwot
ICAgICAgICBhbmNob3JFbGVtZW50LmFkZGVzdGluYXRpb24gPSBhZERlc3RpbmF0aW9uOwotICAg
ICAgICBhbmNob3JFbGVtZW50LmhyZWYgPSAiIyI7Ci0gICAgICAgIGFuY2hvckVsZW1lbnQuaW5u
ZXJUZXh0ID0gIkxpbmsiICsgY3VycmVudFRlc3Q7Ci0gICAgICAgIHJldHVybiBhbmNob3JFbGVt
ZW50OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQsIGNh
bGxiYWNrKSB7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChlbGVtZW50SUQpKS50aGVuKAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewot
ICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAg
ZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByb21pc2UgcmVqZWN0
ZWQuIik7Ci0gICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICk7Ci0gICAgfQotCi0gICAgbGV0IGN1cnJlbnRUZXN0ID0gMDsKLSAgICBmdW5jdGlv
biBydW5PbmVUZXN0KGFkQ2FtcGFpZ25JRCwgYWREZXN0aW5hdGlvbiwgY2FsbGJhY2spIHsKLSAg
ICAgICAgY29uc3QgY3VycmVudEVsZW1lbnRJRCA9ICJ0ZXN0IiArIGN1cnJlbnRUZXN0Kys7Ci0g
ICAgICAgIGNvbnN0IGFuY2hvckVsZW1lbnQgPSBjcmVhdGVBZENsaWNrQXR0cmlidXRpb25BbmNo
b3JFbGVtZW50KGN1cnJlbnRFbGVtZW50SUQsIGFkQ2FtcGFpZ25JRCwgYWREZXN0aW5hdGlvbik7
Ci0gICAgICAgIG91dHB1dC5hcHBlbmRDaGlsZChhbmNob3JFbGVtZW50KTsKLSAgICAgICAgYWN0
aXZhdGVFbGVtZW50KGN1cnJlbnRFbGVtZW50SUQsIGNhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICBj
b25zdCB2YWxpZEFkQ2FtcGFpZ25JRCA9ICIwMyI7Ci0gICAgY29uc3QgdmFsaWRBZERlc3RpbmF0
aW9uID0gImh0dHA6Ly93ZWJraXQub3JnIjsKLSAgICBjb25zdCBzYW1lU2l0ZSA9IGRvY3VtZW50
LmxvY2F0aW9uLm9yaWdpbjsKLSAgICBjb25zdCB0ZXN0Q2FzZXMgPSBbCi0gICAgICAgIFsgdmFs
aWRBZENhbXBhaWduSUQsIHZhbGlkQWREZXN0aW5hdGlvbiBdLAotICAgICAgICBbICIxMDAiLCB2
YWxpZEFkRGVzdGluYXRpb24gXSwgICAgICAgICAgIC8vIFRvbyBtYW55IGNoYXJhY3RlcnMuCi0g
ICAgICAgIFsgIjEiLCB2YWxpZEFkRGVzdGluYXRpb24gXSwgICAgICAgICAgICAgLy8gVG9vIGZl
dyBjaGFyYWN0ZXJzLgotICAgICAgICBbICI5OCIsIHZhbGlkQWREZXN0aW5hdGlvbiBdLCAgICAg
ICAgICAgIC8vIFRvbyBoaWdoIHZhbHVlLgotICAgICAgICBbICItMSIsIHZhbGlkQWREZXN0aW5h
dGlvbiBdLCAgICAgICAgICAgIC8vIE5lZ2F0aXZlIHZhbHVlLgotICAgICAgICBbICJhYiIsIHZh
bGlkQWREZXN0aW5hdGlvbiBdLCAgICAgICAgICAgIC8vIE5vbi1kaWdpdHMuCi0gICAgICAgIFsg
Iu+jvzEiLCB2YWxpZEFkRGVzdGluYXRpb24gXSwgICAgICAgICAgICAvLyBOb24tQVNDSUkuCi0g
ICAgICAgIFsgIiAxIiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAgLy8gTGVhZGlu
ZyBzcGFjZS4KLSAgICAgICAgWyAiMSAiLCB2YWxpZEFkRGVzdGluYXRpb24gXSwgICAgICAgICAg
ICAvLyBUcmFpbGluZyBzcGFjZS4KLSAgICAgICAgWyB2YWxpZEFkQ2FtcGFpZ25JRCwgIndlYmtp
dC5vcmciIF0sICAgICAvLyBNaXNzaW5nIHByb3RvY29sLgotICAgICAgICBbIHZhbGlkQWRDYW1w
YWlnbklELCAiOi8vd2Via2l0Lm9yZyIgXSwgIC8vIFBhcnRpYWxseSBtaXNzaW5nIHByb3RvY29s
LgotICAgICAgICBbIHZhbGlkQWRDYW1wYWlnbklELCAi76O/76O/76O/IiBdLCAgICAgICAgICAg
Ly8gTm9uLUFTQ0lJIGNoYXJhY3RlcnMgYXMgZGVzdGluYXRpb24uCi0gICAgICAgIFsgIiIsIHZh
bGlkQWREZXN0aW5hdGlvbiBdLCAgICAgICAgICAgICAgLy8gRW1wdHkgY2FtcGFpZ24gSUQuCi0g
ICAgICAgIFsgdmFsaWRBZENhbXBhaWduSUQsICIiIF0sICAgICAgICAgICAgICAgLy8gRW1wdHkg
ZGVzdGluYXRpb24uCi0gICAgICAgIFsgdmFsaWRBZENhbXBhaWduSUQsIHNhbWVTaXRlIF0gICAg
ICAgICAgLy8gU2FtZS1zaXRlIGRlc3RpbmF0aW9uLgotICAgIF07Ci0KLSAgICBmdW5jdGlvbiBy
dW5BbGxUZXN0cygpIHsKLSAgICAgICAgaWYgKGN1cnJlbnRUZXN0IDwgdGVzdENhc2VzLmxlbmd0
aCkKLSAgICAgICAgICAgIHJ1bk9uZVRlc3QodGVzdENhc2VzW2N1cnJlbnRUZXN0XVswXSwgdGVz
dENhc2VzW2N1cnJlbnRUZXN0XVsxXSwgcnVuQWxsVGVzdHMpOwotICAgICAgICBlbHNlIHsKLSAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQob3V0cHV0KTsKLSAgICAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1
dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRp
cmVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1
dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRp
cmVjdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlYTVlNjFm
Yzg1Y2RmNTQyZjkxNzUzM2ZhYmZiYjgzNWQ2OGU2NTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0
cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2Ut
cmVkaXJlY3QtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1UZXN0
cyB0aGF0IHRyaWdnZXJpbmcgb2YgYWQgY2xpY2sgYXR0cmlidXRpb24gY29udmVyc2lvbnMgdGhy
b3VnaCBjcm9zcy1zaXRlIHJlZGlyZWN0cyBkbyBub3Qgd29yay4KLQotCi1VbmNvbnZlcnRlZCBB
ZCBDbGljayBBdHRyaWJ1dGlvbnM6Ci1XZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24gMQotU291
cmNlOiAxMjcuMC4wLjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWduIElEOiAzCi1O
byBjb252ZXJzaW9uIGRhdGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0
ZS1pbWFnZS1yZWRpcmVjdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0
cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2Ut
cmVkaXJlY3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjU3MjZlOTA5ZmZj
OTBiMjEwOWZmYmEwNGI0MDZkMDg1MzE2OGE5Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1
dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRp
cmVjdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIEFkQ2xp
Y2tBdHRyaWJ1dGlvbkVuYWJsZWQ9dHJ1ZSBdIC0tPgotPGh0bWwgbGFuZz0iZW4iPgotPGhlYWQ+
Ci0gICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgotICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBj
b250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJs
ZT1ubyI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMi
Pjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgotPGRpdiBp
ZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgdHJpZ2dlcmluZyBvZiBhZCBjbGljayBhdHRyaWJ1
dGlvbiBjb252ZXJzaW9ucyB0aHJvdWdoIGNyb3NzLXNpdGUgcmVkaXJlY3RzIGRvIG5vdCB3b3Jr
LjwvZGl2PgotPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9h
ZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNp
dGUtaW1hZ2UtcmVkaXJlY3QuaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMiIGFkZGVzdGlu
YXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Ci08ZGl2IGlkPSJvdXRw
dXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBwcmVwYXJlVGVzdCgpOwotCi0gICAgZnVuY3Rpb24g
YWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBjZW50ZXJYID0gZWxl
bWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciBj
ZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7Ci0g
ICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKLSAgICAg
ICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBmdW5jdGlv
biAoKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIp
LmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAgICAgICAgICAgICB0
ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICApOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIp
IHsKLSAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaW1nIik7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczov
L2xvY2FsaG9zdDo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0Nv
bnZlcnNpb25PbklQQWRkcmVzcy5waHA/Y29udmVyc2lvbkRhdGE9MTIiOwotICAgICAgICAgICAg
ICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVt
ZW50Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbigpOwotICAgICAgICAgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikp
OwotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKLSAgICAgICAgICAgICAgICAgICAgdGVhckRvd25B
bmRGaW5pc2goKTsKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOwotICAgICAgICB9
Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9u
LXRocm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJz
aW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4NDM2YjA5NjkzNTZjNTYzYjg1Y2JhYWE5YWQ1
NjJhNWIzYjM2ZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24t
Y29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3ctZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotVGVzdHMgdHJpZ2dlcmluZyBvZiBh
ZCBjbGljayBhdHRyaWJ1dGlvbiBjb252ZXJzaW9ucyBpbiBhIG5ldyB3aW5kb3cuCi0KLQotQ29u
dmVydGVkIEFkIENsaWNrIEF0dHJpYnV0aW9uczoKLVdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlv
biAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRpb246IGxvY2FsaG9zdAotQ2FtcGFpZ24g
SUQ6IDMKLUNvbnZlcnNpb24gZGF0YTogMTIKLUNvbnZlcnNpb24gcHJpb3JpdHk6IDMKLUNvbnZl
cnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKLUNvbnZlcnNp
b24gcmVxdWVzdCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdl
LXJlZGlyZWN0LWluLW5ldy13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRD
bGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRp
cmVjdC1pbi1uZXctd2luZG93Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNh
ZDJiNDM0N2JkNmZmOWU2YTY4ZGRkOWIxZDE5ZTU2NWJjY2FlMjYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENs
aWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGly
ZWN0LWluLW5ldy13aW5kb3cuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3Bv
cnQ9dHJ1ZSBBZENsaWNrQXR0cmlidXRpb25FbmFibGVkPXRydWUgXSAtLT4KLTxodG1sIGxhbmc9
ImVuIj4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1l
PSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEs
IHVzZXItc2NhbGFibGU9bm8iPgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
dWktaGVscGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3Qs
IDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0cmlnZ2VyaW5nIG9mIGFkIGNsaWNr
IGF0dHJpYnV0aW9uIGNvbnZlcnNpb25zIGluIGEgbmV3IHdpbmRvdy48L2Rpdj4KLTxhIHRhcmdl
dD0iX2JsYW5rIiByZWw9Im9wZW5lciIgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2NvbnZlcnRBbmRQb3N0TWVz
c2FnZUJhY2suaHRtbCIgYWRjYW1wYWlnbmlkPSIzIiBhZGRlc3RpbmF0aW9uPSJodHRwOi8vbG9j
YWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTxzY3Jp
cHQ+Ci0gICAgcHJlcGFyZVRlc3QoKTsKLQotICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChl
bGVtZW50SUQpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChlbGVtZW50SUQpOwotICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCAr
IGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQu
b2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwotICAgICAgICBVSUhlbHBlci5h
Y3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCi0gICAgICAgICAgICBmdW5jdGlvbiAo
KSB7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJ
TCBQcm9taXNlIHJlamVjdGVkLiI7Ci0gICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2go
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiByZWNl
aXZlTWVzc2FnZShldmVudCkgewotICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIikgewotICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEgPT09ICJEb25l
IikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbigp
OwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7Ci0gICAgICAgICAgICAgICAgdGVhckRvd25BbmRG
aW5pc2goKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiUmVjZWl2ZWQgdW5rbm93biBtZXNzYWdlOiAiICsgZXZlbnQuZGF0YSk7Ci0gICAgICAgICAg
ICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVu
ZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKLSAgICAgICAgICAgIHRlYXJEb3du
QW5kRmluaXNoKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7Ci0KLSAgICBmdW5jdGlvbiBy
dW5UZXN0KCkgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKLSAgICAgICAgICAgIGFjdGl2YXRlRWxl
bWVudCgidGFyZ2V0TGluayIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5u
ZXIuIjsKLSAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgIH0KLSAgICB9
Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3Vn
aC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhy
b3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNTk3ZjY1Y2QxOGQ1OTQwODE5NzcwOGY3MGVhNDJlNDAzZWQw
YWRkMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJz
aW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UZXN0cyB0cmlnZ2VyaW5nIG9mIGFkIGNsaWNr
IGF0dHJpYnV0aW9uIGNvbnZlcnNpb25zIHdpdGggcHJpb3JpdHkuCi0KLQotQ29udmVydGVkIEFk
IENsaWNrIEF0dHJpYnV0aW9uczoKLVdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbiAxCi1Tb3Vy
Y2U6IDEyNy4wLjAuMQotRGVzdGluYXRpb246IGxvY2FsaG9zdAotQ2FtcGFpZ24gSUQ6IDMKLUNv
bnZlcnNpb24gZGF0YTogMTIKLUNvbnZlcnNpb24gcHJpb3JpdHk6IDMKLUNvbnZlcnNpb24gZWFy
bGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKLUNvbnZlcnNpb24gcmVxdWVz
dCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNr
QXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0
LXdpdGgtcHJpb3JpdHkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJp
YnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRo
LXByaW9yaXR5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg1NmI0MjUzNjBh
M2MyNWY5YjJkMmQ1YjVkOTE0MzQ0OWVlODRmMzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmli
dXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgt
cHJpb3JpdHkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBB
ZENsaWNrQXR0cmlidXRpb25FbmFibGVkPXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxo
ZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9y
dCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2Nh
bGFibGU9bm8iPgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxk
aXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0cmlnZ2VyaW5nIG9mIGFkIGNsaWNrIGF0dHJpYnV0
aW9uIGNvbnZlcnNpb25zIHdpdGggcHJpb3JpdHkuPC9kaXY+Ci08YSBpZD0idGFyZ2V0TGluayIg
aHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlv
bi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS5odG1sP3N0
ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4
MDAwIj5MaW5rPC9hPjxicj4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0PgotICAg
IHByZXBhcmVUZXN0KCk7Ci0KLSAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElE
KSB7Ci0gICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVu
dElEKTsKLSAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50
Lm9mZnNldFdpZHRoIC8gMjsKLSAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRv
cCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVB
dChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlz
ZSByZWplY3RlZC4iOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93
LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgewotICAgICAgICAgICAgICAgIGxldCBp
bWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAgICAg
ICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvYWRDbGlja0F0
dHJpYnV0aW9uL3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRh
dGE9MTImcHJpb3JpdHk9MDMiOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJw
aXhlbCI7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbihl
KSB7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFkQ2xpY2tBdHRyaWJ1dGlv
bigpOwotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOwotICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIp
KTsKLSAgICAgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAg
ICAgICB9OwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VF
bGVtZW50KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYWN0aXZhdGVF
bGVtZW50KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0g
IkZBSUwgTm8gdGVzdFJ1bm5lci4iOwotICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tB
dHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qt
d2l0aG91dC1wcmlvcml0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVk
aXJlY3Qtd2l0aG91dC1wcmlvcml0eS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDllMGEyODBmYWQxODZhNzZmYWE5NDJmNjJmOWIxMDQ1OGM4ZDEyYzEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdo
LWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJpb3JpdHktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTIgKzAsMCBAQAotVGVzdHMgdHJpZ2dlcmluZyBvZiBhZCBjbGljayBhdHRyaWJ1
dGlvbiBjb252ZXJzaW9ucyB3aXRob3V0IHByaW9yaXR5LgotCi0KLUNvbnZlcnRlZCBBZCBDbGlj
ayBBdHRyaWJ1dGlvbnM6Ci1XZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24gMQotU291cmNlOiAx
MjcuMC4wLjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWduIElEOiAzCi1Db252ZXJz
aW9uIGRhdGE6IDEyCi1Db252ZXJzaW9uIHByaW9yaXR5OiAwCi1Db252ZXJzaW9uIGVhcmxpZXN0
IHRpbWUgdG8gc2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCi1Db252ZXJzaW9uIHJlcXVlc3Qgc2Vu
dDogZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJp
YnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRo
b3V0LXByaW9yaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1
dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91
dC1wcmlvcml0eS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YTBiMmQ4OTZk
YzQxMDAzMjU4MmUzZjE3M2M0YjUxY2RjNmRjZDEyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJp
YnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRo
b3V0LXByaW9yaXR5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRy
dWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9IlVU
Ri04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdp
ZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgotICAgIDxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2Fk
PSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0
cmlnZ2VyaW5nIG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uIGNvbnZlcnNpb25zIHdpdGhvdXQgcHJp
b3JpdHkuPC9kaXY+Ci08YSBpZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4
MDAwL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1h
Z2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlvcml0eS5odG1sP3N0ZXBUd28iIGFkY2FtcGFpZ25pZD0i
MyIgYWRkZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KLTxk
aXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHByZXBhcmVUZXN0KCk7Ci0KLSAg
ICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7Ci0gICAgICAgIHZhciBlbGVt
ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKLSAgICAgICAgdmFyIGNl
bnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKLSAg
ICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVp
Z2h0IC8gMjsKLSAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50
aGVuKAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgfSwKLSAgICAgICAg
ICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOwotICAgICAg
ICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICk7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0g
Ij9zdGVwVHdvIikgewotICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3Jj
ID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9y
ZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTIiOwotICAgICAgICAgICAg
ICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVt
ZW50Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7Ci0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7
Ci0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOwotICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFu
ZEZpbmlzaCgpOwotICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7Ci0gICAgICAgIH0K
LSAgICB9Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NsZWFyLXRocm91Z2gtd2Vic2l0ZS1k
YXRhLXJlbW92YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNr
QXR0cmlidXRpb24vY2xlYXItdGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyZWU2YTkzY2FkMGI1ZTVjYTg1MWU2
YmIyZjIxYjlhZjlhOTZjNWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vY2xlYXIt
dGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSw1ICswLDAgQEAKLVRlc3RzIHRoYXQgYm90aCB1bmNvbnZlcnRlZCBhbmQgY29udmVydGVk
IGF0dHJpYnV0aW9ucyBhcmUgY2xlYXJlZCBvbiB3ZWJzaXRlIGRhdGEgcmVtb3ZhbC4KLQotCi0K
LU5vIHN0b3JlZCBBZCBDbGljayBBdHRyaWJ1dGlvbiBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vY2xlYXItdGhyb3VnaC13ZWJzaXRl
LWRhdGEtcmVtb3ZhbC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmli
dXRpb24vY2xlYXItdGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA2ZDZlY2I1MDJmYmFhMmQ2MmE1ZDdiZTBkZWI1MTZiZDY3Mjg4
ODNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NsZWFyLXRocm91Z2gtd2Vic2l0
ZS1kYXRhLXJlbW92YWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDgzICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9
dHJ1ZSBBZENsaWNrQXR0cmlidXRpb25FbmFibGVkPXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVu
Ij4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2
aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVz
ZXItc2NhbGFibGU9bm8iPgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWkt
aGVscGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDAp
Ij4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IGJvdGggdW5jb252ZXJ0ZWQgYW5k
IGNvbnZlcnRlZCBhdHRyaWJ1dGlvbnMgYXJlIGNsZWFyZWQgb24gd2Vic2l0ZSBkYXRhIHJlbW92
YWwuPC9kaXY+Ci08YSBpZD0idGFyZ2V0TGluayI+TGluazwvYT48YnI+Ci08ZGl2IGlkPSJvdXRw
dXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBjb25zdCBwYXRoID0gIi9hZENsaWNrQXR0cmlidXRp
b24vY2xlYXItdGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC5odG1sIjsKLSAgICBjb25zdCBj
b25maWd1cmF0aW9uID0gWwotICAgICAgICB7Ci0gICAgICAgICAgICBocmVmOiAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIiArIHBhdGggKyAiP3N0ZXBUd28iLAotICAgICAgICAgICAgYWRjYW1wYWln
bmlkOiAiMyIsCi0gICAgICAgICAgICBhZGRlc3RpbmF0aW9uOiAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIgotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICBocmVmOiAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIiArIHBhdGggKyAiP3N0ZXBUaHJlZSIsCi0gICAgICAgICAgICBhZGNhbXBh
aWduaWQ6ICI0IiwKLSAgICAgICAgICAgIGFkZGVzdGluYXRpb246ICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiCi0gICAgICAgIH0KLSAgICBdOwotCi0gICAgcHJlcGFyZVRlc3QoKTsKLQotICAgIGZ1
bmN0aW9uIGNvbmZpZ3VyZUxpbmsoaW5kZXgpIHsKLSAgICAgICAgbGV0IGxpbmtFbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKTsKLSAgICAgICAgbGlua0VsZW1l
bnQuc2V0QXR0cmlidXRlKCJocmVmIiwgY29uZmlndXJhdGlvbltpbmRleF0uaHJlZik7Ci0gICAg
ICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRjYW1wYWlnbmlkIiwgY29uZmlndXJhdGlv
bltpbmRleF0uYWRjYW1wYWlnbmlkKTsKLSAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRl
KCJhZGRlc3RpbmF0aW9uIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRkZXN0aW5hdGlvbik7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAgICAg
ICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAg
ICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0
aCAvIDI7Ci0gICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50
Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwg
Y2VudGVyWSkudGhlbigKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQu
IjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQot
ICAgICAgICApOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5z
ZWFyY2ggPT09ICIiKSB7Ci0gICAgICAgICAgICAgICAgLy8gRmlyc3QgYWQgY2xpY2sgMTI3LjAu
MC4xIOKAkz4gbG9jYWxob3N0LgotICAgICAgICAgICAgICAgIGNvbmZpZ3VyZUxpbmsoMCk7Ci0g
ICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgICAg
ICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKLSAg
ICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBmaXJzdCBhZCBjbGljayB3aXRoIHByaW9yaXR5
IDQsIHRoZW4gZG8gYSByZXZlcnNlIGFkIGNsaWNrLgotICAgICAgICAgICAgICAgIGxldCBpbWFn
ZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAgICAgICAg
ICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvYWRDbGlja0F0dHJp
YnV0aW9uL3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9
MTImcHJpb3JpdHk9MDQiOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhl
bCI7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7
Ci0gICAgICAgICAgICAgICAgICAgIC8vIFNlY29uZCBhZCBjbGljayBsb2NhbGhvc3Qg4oCTPiAx
MjcuMC4wLjEuCi0gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyZUxpbmsoMSk7Ci0gICAgICAg
ICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwotICAgICAgICAgICAg
ICAgIH07Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVs
ZW1lbnQpOwotICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09
PSAiP3N0ZXBUaHJlZSIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFyQWRDbGlj
a0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoKTsKLSAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsKLSAgICAgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRM
aW5rIikpOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRw
dXQiKS5pbm5lclRleHQgPSAiRkFJTCBVbmtub3duIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT0g
IiArIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggKyAiLiI7Ci0gICAgICAgICAgICAgICAgdGVhckRv
d25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBO
byB0ZXN0UnVubmVyLiI7Ci0gICAgICAgIH0KLSAgICB9Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0
aW9uL2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vY29udmVyc2lvbi1k
aXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGMzNGFiNWQ5MTI1OTQ1ODMwYTJiODQzZTcxNzRlMTUwOWQyY2Q1ODAu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vY29udmVyc2lvbi1kaXNhYmxlZC1pbi1l
cGhlbWVyYWwtc2Vzc2lvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCww
IEBACi1UZXN0cyB0aGF0IHN0b3JlZCBhdHRyaWJ1dGlvbnMgY2Fubm90IGJlIGNvbnZlcnRlZCBp
biBhbiBlcGhlbWVyYWwgc2Vzc2lvbi4KLQotCi0KLS0tLS0tLS0tCi1GcmFtZTogJzwhLS1mcmFt
ZTEtLT4nCi0tLS0tLS0tLQotQ29udmVyc2lvbiBub3QgcmVjZWl2ZWQgLSB0aW1lZCBvdXQuCi0K
LVVuY29udmVydGVkIEFkIENsaWNrIEF0dHJpYnV0aW9uczoKLVdlYkNvcmU6OkFkQ2xpY2tBdHRy
aWJ1dGlvbiAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRpb246IGxvY2FsaG9zdAotQ2Ft
cGFpZ24gSUQ6IDMKLU5vIGNvbnZlcnNpb24gZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBo
ZW1lcmFsLXNlc3Npb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJp
YnV0aW9uL2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWE4ZjE4NGZhOWYxNjJmNjZjOTQ1ZjM2MzM4NDRl
NDBiNjllZDVmZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252ZXJzaW9uLWRp
c2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4MCAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4
aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxt
ZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0i
d2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgot
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2Ny
aXB0aW9uIj5UZXN0cyB0aGF0IHN0b3JlZCBhdHRyaWJ1dGlvbnMgY2Fubm90IGJlIGNvbnZlcnRl
ZCBpbiBhbiBlcGhlbWVyYWwgc2Vzc2lvbi48L2Rpdj4KLTxhIGlkPSJ0YXJnZXRMaW5rIiBocmVm
PSJodHRwOi8vbG9jYWxob3N0OjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL2NvbnZlcnNpb24tZGlz
YWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMi
IGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Ci08ZGl2
IGlkPSJvdXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBjb25zdCBjdXJyZW50VGltZU1pbGxp
cyA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7Ci0gICAgY29uc3QgaGlnaEVudHJvcHlCaXRzID0g
Y3VycmVudFRpbWVNaWxsaXMgLSAoTWF0aC5mbG9vcihjdXJyZW50VGltZU1pbGxpcyAvIDEwMDAw
MDApICogMTAwMDAwMCk7Ci0gICAgY29uc3Qgbm9uY2UgPSBoaWdoRW50cm9weUJpdHMgKyAiIiAr
IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMCk7Ci0KLSAgICBwcmVwYXJlVGVzdCgpOwot
Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLnNldEFkQ2xp
Y2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKCJodHRwOi8vMTI3LjAuMC4xOjgw
MDAvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocD9ub25j
ZT0iICsgbm9uY2UpOwotCi0gICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkg
ewotICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJ
RCk7Ci0gICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5v
ZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3Ag
KyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQo
Y2VudGVyWCwgY2VudGVyWSkudGhlbigKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2Ug
cmVqZWN0ZWQuIjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAg
ICAgICAgfQotICAgICAgICApOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFwcGVuZElmcmFtZSh1
cmwsIG9ubG9hZENhbGxiYWNrKSB7Ci0gICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Ci0gICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0g
dXJsOwotICAgICAgICBpZiAob25sb2FkQ2FsbGJhY2spCi0gICAgICAgICAgICBpZnJhbWVFbGVt
ZW50Lm9ubG9hZCA9IG9ubG9hZENhbGxiYWNrOwotICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGlmcmFtZUVsZW1lbnQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFwcGVuZENvbnZl
cnNpb25EYXRhSWZyYW1lQW5kRmluaXNoKCkgewotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBZENs
aWNrQXR0cmlidXRpb24oKTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKLQotICAgICAgICBhcHBlbmRJZnJh
bWUoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2dl
dENvbnZlcnNpb25EYXRhLnBocD90aW1lb3V0X21zPTEwMDAmbm9uY2U9IiArIG5vbmNlLCBmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgIH0pOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/
c3RlcFR3byIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFNob3VsZFN3YXBUb0Vw
aGVtZXJhbFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uKHRydWUpOwotICAgICAgICAgICAgICAgIHdp
bmRvdy5sb2NhdGlvbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvYWRDbGlja0F0dHJpYnV0aW9u
L2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbD9zdGVwVGhyZWUi
OwotICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0
ZXBUaHJlZSIpIHsKLSAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9
ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVk
aXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJm5vbmNlPSIgKyBub25jZTsK
LSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOwotICAgICAgICAgICAg
ICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkU3dhcFRvRGVmYXVsdFNlc3Npb25Pbk5leHROYXZpZ2F0
aW9uKHRydWUpOwotICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252ZXJzaW9uLWRpc2FibGVkLWlu
LWVwaGVtZXJhbC1zZXNzaW9uLmh0bWw/c3RlcEZvdXIiOwotICAgICAgICAgICAgICAgIH07Ci0g
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOwot
ICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBG
b3VyIikgewotICAgICAgICAgICAgICAgIGFwcGVuZENvbnZlcnNpb25EYXRhSWZyYW1lQW5kRmlu
aXNoKCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmNv
b2tpZSA9ICJjb29raWVTZXRBc0ZpcnN0UGFydHk9MTsgcGF0aD0vIjsKLSAgICAgICAgICAgICAg
ICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5p
bm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7Ci0gICAgICAgIH0KLSAgICB9Ci08L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYWRDbGlja0F0dHJpYnV0aW9uL2V4cGlyZWQtYXR0cmlidXRpb25zLXJlbW92ZWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vZXhwaXJl
ZC1hdHRyaWJ1dGlvbnMtcmVtb3ZlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDVlN2FlZGQxZmY2NjgxY2Q4ZjcwZDBmODQ4NDkxMzY0NGE2NTZjMTMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vZXhwaXJlZC1hdHRyaWJ1dGlvbnMtcmVtb3ZlZC1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVRlc3RzIGV4cGlyYXRp
b24gb2YgYWQgY2xpY2sgYXR0cmlidXRpb24uCi0KLQotCi1ObyBzdG9yZWQgQWQgQ2xpY2sgQXR0
cmlidXRpb24gZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlj
a0F0dHJpYnV0aW9uL2V4cGlyZWQtYXR0cmlidXRpb25zLXJlbW92ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2V4cGlyZWQtYXR0cmlidXRpb25zLXJl
bW92ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2EzNTkzMTY2ZTJlZDM0
ZWIxODhkYmM5YjAzYWMyY2MzZThkNDI4OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1
MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VG
bGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAg
IDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVu
dD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8i
PgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj5UZXN0cyBleHBpcmF0aW9uIG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uLjwvZGl2
PgotPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9hZENsaWNr
QXR0cmlidXRpb24vZXhwaXJlZC1hdHRyaWJ1dGlvbnMtcmVtb3ZlZC5odG1sP3N0ZXBUd28iIGFk
Y2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5r
PC9hPjxicj4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHByZXBhcmVU
ZXN0KCk7Ci0KLSAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7Ci0gICAg
ICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKLSAg
ICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdp
ZHRoIC8gMjsKLSAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1l
bnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJY
LCBjZW50ZXJZKS50aGVuKAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3Rl
ZC4iOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9u
LnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubWFy
a0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7Ci0gICAgICAgICAgICAg
ICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwotICAg
ICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9h
ZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252
ZXJzaW9uRGF0YT0xMiI7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVs
IjsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKCkgewot
ICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsK
LSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7Ci0g
ICAgICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICAgICAg
fTsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVu
dCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVu
dCgidGFyZ2V0TGluayIpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlM
IE5vIHRlc3RSdW5uZXIuIjsKLSAgICAgICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmli
dXRpb24vcmVzb3VyY2VzL2NvbnZlcnNpb25GaWxlUGF0aC5waHAgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvY29udmVyc2lvbkZpbGVQYXRoLnBo
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmExMTI0MGMxZDk4YzM4ODhiOGU5ZjA3
OTZiNmM2NDc4NDhkY2U5ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJj
ZXMvY29udmVyc2lvbkZpbGVQYXRoLnBocAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAot
PD9waHAKLXJlcXVpcmVfb25jZSAnLi4vLi4vcmVzb3VyY2VzL3BvcnRhYmlsaXR5TGF5ZXIucGhw
JzsKLQotaWYgKGlzc2V0KCRfR0VUWyJub25jZSJdKSkKLSAgICAkY29udmVyc2lvbkZpbGVOYW1l
ID0gIi9hZENsaWNrQ29udmVyc2lvbiIgLiAkX0dFVFsibm9uY2UiXSAuICIudHh0IjsKLWVsc2UK
LSAgICAkY29udmVyc2lvbkZpbGVOYW1lID0gIi9hZENsaWNrQ29udmVyc2lvbi50eHQiOwotJGNv
bnZlcnNpb25GaWxlUGF0aCA9IHN5c19nZXRfdGVtcF9kaXIoKSAuICRjb252ZXJzaW9uRmlsZU5h
bWU7Ci0/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmli
dXRpb24vcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNWMyMDI2OWM3ODQ5MDZmZmY3NDc0NDhiMzg4
MWY0MDYzN2FiYzAxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9j
b252ZXJzaW9uUmVwb3J0LnBocAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLTw/cGhw
Ci1yZXF1aXJlX29uY2UgJ2NvbnZlcnNpb25GaWxlUGF0aC5waHAnOwotCi0kY29udmVyc2lvbkZp
bGUgPSBmb3BlbigkY29udmVyc2lvbkZpbGVQYXRoIC4gIi50bXAiLCAndycpOwotJGh0dHBIZWFk
ZXJzID0gJF9TRVJWRVI7Ci0kY29va2llc0ZvdW5kID0gZmFsc2U7Ci1mb3JlYWNoICgkaHR0cEhl
YWRlcnMgYXMgJG5hbWUgPT4gJHZhbHVlKSB7Ci0gICAgaWYgKCRuYW1lID09PSAiSFRUUF9IT1NU
IikgewotICAgICAgICBmd3JpdGUoJGNvbnZlcnNpb25GaWxlLCAiJG5hbWU6ICR2YWx1ZVxuIik7
Ci0gICAgfSBlbHNlIGlmICgkbmFtZSA9PT0gIlJFUVVFU1RfVVJJIikgewotICAgICAgICAkcG9z
aXRpb25PZk5vbmNlID0gc3RycG9zKCR2YWx1ZSwgIj9ub25jZT0iKTsKLSAgICAgICAgaWYgKCRw
b3NpdGlvbk9mTm9uY2UgPT09IGZhbHNlKQotICAgICAgICAgICAgJG91dHB1dFVSTCA9ICR2YWx1
ZTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgJG91dHB1dFVSTCA9IHN1YnN0cigkdmFsdWUs
IDAsICRwb3NpdGlvbk9mTm9uY2UpOwotICAgICAgICBmd3JpdGUoJGNvbnZlcnNpb25GaWxlLCAi
JG5hbWU6ICRvdXRwdXRVUkxcbiIpOwotICAgIH0gZWxzZSBpZiAoJG5hbWUgPT09ICJIVFRQX0NP
T0tJRSIpIHsKLSAgICAgICAgZndyaXRlKCRjb252ZXJzaW9uRmlsZSwgIkNvb2tpZXMgaW4gY29u
dmVyc2lvbiByZXF1ZXN0OiAkdmFsdWVcbiIpOwotICAgICAgICAkY29va2llc0ZvdW5kID0gdHJ1
ZTsKLSAgICB9IGVsc2UgaWYgKCRuYW1lID09PSAiQ09OVEVOVF9UWVBFIikgewotICAgICAgICBm
d3JpdGUoJGNvbnZlcnNpb25GaWxlLCAiQ29udGVudCB0eXBlOiAkdmFsdWVcbiIpOwotICAgIH0K
LX0KLWlmICghJGNvb2tpZXNGb3VuZCkgewotICAgIGZ3cml0ZSgkY29udmVyc2lvbkZpbGUsICJO
byBjb29raWVzIGluIGNvbnZlcnNpb24gcmVxdWVzdC5cbiIpOwotfQotCi0kcmVxdWVzdEJvZHkg
PSBmaWxlX2dldF9jb250ZW50cygncGhwOi8vaW5wdXQnKTsKLWZ3cml0ZSgkY29udmVyc2lvbkZp
bGUsICJSZXF1ZXN0IGJvZHk6XG4kcmVxdWVzdEJvZHlcbiIpOwotCi1mY2xvc2UoJGNvbnZlcnNp
b25GaWxlKTsKLXJlbmFtZSgkY29udmVyc2lvbkZpbGVQYXRoIC4gIi50bXAiLCAkY29udmVyc2lv
bkZpbGVQYXRoKTsKLQotaGVhZGVyKCJIVFRQLzEuMSAyMDAgT0siKTsKLXNldGNvb2tpZSgiY29v
a2llU2V0SW5Db252ZXJzaW9uUmVwb3J0IiwgIjEiLCAwLCAiLyIpOwotCi0/PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2Nv
bnZlcnRBbmRQb3N0TWVzc2FnZUJhY2suaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRD
bGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252ZXJ0QW5kUG9zdE1lc3NhZ2VCYWNrLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0ODM1YTcxMjE4NTVkZWIyODAwZjY5ODM5
M2Q2YzI4ODM4YTIzMjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2Vz
L2NvbnZlcnRBbmRQb3N0TWVzc2FnZUJhY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWwgbGFuZz0iZW4iPgotPGhlYWQ+Ci0gICAgPG1l
dGEgY2hhcnNldD0iVVRGLTgiPgotICAgIDxzY3JpcHQ+Ci0gICAgICAgIGZ1bmN0aW9uIGZpcmVD
b252ZXJzaW9uUGl4ZWwoKSB7Ci0gICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0g
Imh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9yZWRp
cmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImcHJpb3JpdHk9MDMiOwotICAg
ICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKLSAgICAgICAgICAgIGltYWdlRWxl
bWVudC5vbmVycm9yID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7Ci0gICAgICAg
ICAgICAgICAgcG9zdE1lc3NhZ2VCYWNrKCk7Ci0gICAgICAgICAgICB9OwotICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgZnVuY3Rpb24gcG9zdE1lc3NhZ2VCYWNrKCkgewotICAgICAgICAgICAgaWYgKHdpbmRv
dy5vcGVuZXIpIHsKLSAgICAgICAgICAgICAgICB3aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKCJE
b25lIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpOwotICAgICAgICAgICAgICAgIHdpbmRvdy5j
bG9zZSgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoZmlyZUNvbnZlcnNpb25QaXhlbCwgMCkiPgotPC9i
b2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9nZXRDb252
ZXJzaW9uRGF0YS5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA2ZjExMjRiODljZmQ0OTdkNjE5ZjdlOWNkZGNhNTFmN2U5Mzc1NmY0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHAK
KysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi08P3BocAotcmVxdWlyZV9vbmNlICdjb252
ZXJzaW9uRmlsZVBhdGgucGhwJzsKLQotJG5vVGltZW91dCA9IFRydWU7Ci0kdGltZW91dE1zZWNz
ID0gMDsKLWlmIChpc3NldCgkX0dFVFsndGltZW91dF9tcyddKSkgewotICAgICRub1RpbWVvdXQg
PSBGYWxzZTsKLSAgICAkdGltZW91dE1zZWNzID0gKGludCkgJF9HRVRbJ3RpbWVvdXRfbXMnXTsK
LX0KLQotJGNvbnZlcnNpb25GaWxlRm91bmQgPSBGYWxzZTsKLXdoaWxlICgkbm9UaW1lb3V0IHx8
ICR0aW1lb3V0TXNlY3MgPiAwKSB7Ci0gICAgaWYgKGZpbGVfZXhpc3RzKCRjb252ZXJzaW9uRmls
ZVBhdGgpKSB7Ci0gICAgICAgICRjb252ZXJzaW9uRmlsZUZvdW5kID0gVHJ1ZTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgfQotICAgICRzbGVlcE1zZWNzID0gMTA7Ci0gICAgdXNsZWVwKCRzbGVlcE1z
ZWNzICogMTAwMCk7Ci0gICAgaWYgKCEkbm9UaW1lb3V0KSB7Ci0gICAgICAgICR0aW1lb3V0TXNl
Y3MgLT0gJHNsZWVwTXNlY3M7Ci0gICAgfQotICAgIC8vIGZpbGVfZXhpc3RzKCkgY2FjaGVzIHJl
c3VsdHMsIHdlIHdhbnQgdG8gaW52YWxpZGF0ZSB0aGUgY2FjaGUuCi0gICAgY2xlYXJzdGF0Y2Fj
aGUoKTsKLX0KLQotCi1lY2hvICI8aHRtbD48Ym9keT5cbiI7Ci0KLWlmICgkY29udmVyc2lvbkZp
bGVGb3VuZCkgewotICAgIGVjaG8gIkNvbnZlcnNpb24gcmVjZWl2ZWQuIjsKLSAgICAkY29udmVy
c2lvbkZpbGUgPSBmb3BlbigkY29udmVyc2lvbkZpbGVQYXRoLCAncicpOwotICAgIHdoaWxlICgk
bGluZSA9IGZnZXRzKCRjb252ZXJzaW9uRmlsZSkpIHsKLSAgICAgICAgZWNobyAiPGJyPiI7Ci0g
ICAgICAgIGVjaG8gdHJpbSgkbGluZSk7Ci0gICAgfQotICAgIGVjaG8gIjxicj4iOwotICAgIGZj
bG9zZSgkY29udmVyc2lvbkZpbGUpOwotICAgIHVubGluaygkY29udmVyc2lvbkZpbGVQYXRoKTsK
LX0gZWxzZSB7Ci0gICAgZWNobyAiQ29udmVyc2lvbiBub3QgcmVjZWl2ZWQgLSB0aW1lZCBvdXQu
PGJyPiI7Ci19Ci0KLWlmIChpc3NldCgkX0dFVFsnZW5kVGVzdCddKSkgewotICAgIGVjaG8gIjxz
Y3JpcHQ+IjsKLSAgICBlY2hvICJpZiAod2luZG93LnRlc3RSdW5uZXIpIHsiOwotICAgIGVjaG8g
IiAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsiOwotICAgIGVjaG8gIiAgICB0ZXN0UnVubmVy
LnNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGZhbHNlKTsiOwot
ICAgIGVjaG8gIiAgICB0ZXN0UnVubmVyLnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25V
UkxGb3JUZXN0aW5nKCcnKTsiOwotICAgIGVjaG8gIn0iOwotICAgIGVjaG8gIjwvc2NyaXB0PiI7
Ci19Ci0KLWVjaG8gIjwvYm9keT48L2h0bWw+IjsKLT8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZl
cnNpb24ucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVz
b3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNzBjZWI0NjE3ZDBlZWIxZTM3NWRmZGI2MzNlOGNjZDc3ZGE1ZTEzZS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhw
CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi08P3BocAotaGVhZGVyKCJIVFRQLzEuMSAz
MDIgRm91bmQiKTsKLWhlYWRlcigiQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUsIG5vLXN0b3JlLCBt
dXN0LXJldmFsaWRhdGUiKTsKLWlmIChpc3NldCgkX0dFVFsiY29udmVyc2lvbkRhdGEiXSkgJiYg
aXNzZXQoJF9HRVRbInByaW9yaXR5Il0pKSB7Ci0gIGhlYWRlcigiTG9jYXRpb246IC8ud2VsbC1r
bm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8iIC4gJF9HRVRbImNvbnZlcnNpb25EYXRhIl0gLiAi
LyIgLiAkX0dFVFsicHJpb3JpdHkiXSk7Ci19IGVsc2UgaWYgKGlzc2V0KCRfR0VUWyJjb252ZXJz
aW9uRGF0YSJdKSkgewotICBoZWFkZXIoIkxvY2F0aW9uOiAvLndlbGwta25vd24vYWQtY2xpY2st
YXR0cmlidXRpb24vIiAuICRfR0VUWyJjb252ZXJzaW9uRGF0YSJdKTsKLX0KLT8+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMv
cmVkaXJlY3RUb0NvbnZlcnNpb25PbklQQWRkcmVzcy5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb25PbklQ
QWRkcmVzcy5waHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmZTFhYTk4NzQ4Mzgw
ODY1ZTkxNmYxNTIxODU1ZDNjODI2OGIyNzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRp
b24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uT25JUEFkZHJlc3MucGhwCisrKyAvZGV2
L251bGwKQEAgLTEsOCArMCwwIEBACi08P3BocAotaGVhZGVyKCJIVFRQLzEuMCAzMDIgRm91bmQi
KTsKLWlmIChpc3NldCgkX0dFVFsiY29udmVyc2lvbkRhdGEiXSkgJiYgaXNzZXQoJF9HRVRbInBy
aW9yaXR5Il0pKSB7Ci0gIGhlYWRlcigiTG9jYXRpb246IGh0dHBzOi8vMTI3LjAuMC4xOjgwMDAv
LndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vIiAuICRfR0VUWyJjb252ZXJzaW9uRGF0
YSJdIC4gIi8iIC4gJF9HRVRbInByaW9yaXR5Il0pOwotfSBlbHNlIGlmIChpc3NldCgkX0dFVFsi
Y29udmVyc2lvbkRhdGEiXSkpIHsKLSAgaGVhZGVyKCJMb2NhdGlvbjogaHR0cHM6Ly8xMjcuMC4w
LjE6ODAwMC8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8iIC4gJF9HRVRbImNvbnZl
cnNpb25EYXRhIl0pOwotfQotPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy91dGlsLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3V0aWwuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDJiNjI1NDUzZDBjMDNhMTZkYWI2ZjI4NGYzYmQyNTQwMGM4ZDc5NmEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3V0aWwuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1mdW5jdGlvbiBwcmVwYXJlVGVzdCgpIHsKLSAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Ci0gICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLnNldEFsbG93c0Fu
eVNTTENlcnRpZmljYXRlKHRydWUpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gdGVhckRvd25BbmRG
aW5pc2goKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5u
ZXIuc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoZmFsc2UpOwotICAgICAgICB0ZXN0UnVubmVy
LnNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGZhbHNlKTsKLSAg
ICAgICAgdGVzdFJ1bm5lci5zZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVz
dGluZygiIik7Ci0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgIH0KLX0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29u
ZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJp
YnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5MGZjYmNiZmRmMWM4MTVkZGE0MjViNTQ2YjIwZGUx
MzNhM2YxYTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJpYnV0
aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxMiArMCwwIEBACi1UZXN0cyB0aGF0IGEgc2Vjb25kIGF0dHJpYnV0aW9uIGNv
bnZlcnNpb24gd2l0aCBoaWdoZXIgcHJpb3JpdHkgcmVwbGFjZXMgYW4gb2xkZXIgd2l0aCBsb3dl
ciBwcmlvcml0eS4KLQotCi1Db252ZXJ0ZWQgQWQgQ2xpY2sgQXR0cmlidXRpb25zOgotV2ViQ29y
ZTo6QWRDbGlja0F0dHJpYnV0aW9uIDEKLVNvdXJjZTogMTI3LjAuMC4xCi1EZXN0aW5hdGlvbjog
bG9jYWxob3N0Ci1DYW1wYWlnbiBJRDogNAotQ29udmVyc2lvbiBkYXRhOiAxMgotQ29udmVyc2lv
biBwcmlvcml0eTogNAotQ29udmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAy
NC00OCBob3VycwotQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtYXR0cmlidXRp
b24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdp
dGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3
ZTJhMGMyY2M3NDZjNTI2YWZjYjFiZWE4MzE0YjFjZTBjOWQwNDEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENs
aWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1w
cmlvcml0eS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTIgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0g
LS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+
Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwg
aW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2V0
VGltZW91dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBh
IHNlY29uZCBhdHRyaWJ1dGlvbiBjb252ZXJzaW9uIHdpdGggaGlnaGVyIHByaW9yaXR5IHJlcGxh
Y2VzIGFuIG9sZGVyIHdpdGggbG93ZXIgcHJpb3JpdHkuPC9kaXY+Ci08YSBpZD0idGFyZ2V0TGlu
ayI+TGluazwvYT48YnI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBj
b25zdCBwYXRoID0gIi9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZl
cnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sIjsKLSAgICBjb25zdCBjb25maWd1cmF0aW9u
ID0gWwotICAgICAgICB7Ci0gICAgICAgICAgICBocmVmOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
IiArIHBhdGggKyAiP3N0ZXBUd28iLAotICAgICAgICAgICAgYWRjYW1wYWlnbmlkOiAiMyIsCi0g
ICAgICAgICAgICBhZGRlc3RpbmF0aW9uOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIgotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICBocmVmOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
IiArIHBhdGggKyAiP3N0ZXBGb3VyIiwKLSAgICAgICAgICAgIGFkY2FtcGFpZ25pZDogIjQiLAot
ICAgICAgICAgICAgYWRkZXN0aW5hdGlvbjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKLSAgICAg
ICAgfQotICAgIF07Ci0KLSAgICBwcmVwYXJlVGVzdCgpOwotCi0gICAgZnVuY3Rpb24gY29uZmln
dXJlTGluayhpbmRleCkgewotICAgICAgICBsZXQgbGlua0VsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGFyZ2V0TGluayIpOwotICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1
dGUoImhyZWYiLCBjb25maWd1cmF0aW9uW2luZGV4XS5ocmVmKTsKLSAgICAgICAgbGlua0VsZW1l
bnQuc2V0QXR0cmlidXRlKCJhZGNhbXBhaWduaWQiLCBjb25maWd1cmF0aW9uW2luZGV4XS5hZGNh
bXBhaWduaWQpOwotICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFkZGVzdGluYXRp
b24iLCBjb25maWd1cmF0aW9uW2luZGV4XS5hZGRlc3RpbmF0aW9uKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7Ci0gICAgICAgIHZhciBlbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKLSAgICAgICAgdmFyIGNlbnRl
clggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKLSAgICAg
ICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0
IC8gMjsKLSAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVu
KAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
b3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOwotICAgICAgICAg
ICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICk7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIiIp
IHsKLSAgICAgICAgICAgICAgICAvLyBGaXJzdCBhZCBjbGljayAxMjcuMC4wLjEg4oCTPiBsb2Nh
bGhvc3QuCi0gICAgICAgICAgICAgICAgY29uZmlndXJlTGluaygwKTsKLSAgICAgICAgICAgICAg
ICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAo
d2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgewotICAgICAgICAgICAgICAg
IC8vIENvbnZlcnQgdGhlIGZpcnN0IGFkIGNsaWNrIHdpdGggcHJpb3JpdHkgMyBhbmQgbmF2aWdh
dGUgYmFjayB0byAxMjcuMC4wLjEuCi0gICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwotICAgICAgICAgICAgICAgIGltYWdlRWxl
bWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9hZENsaWNrQXR0cmlidXRpb24vcmVz
b3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZwcmlvcml0
eT0wMyI7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKLSAgICAg
ICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAiICsgcGF0aCArICI/c3RlcFRocmVlIjsKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAgICAgICAg
ICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVGhyZWUiKSB7
Ci0gICAgICAgICAgICAgICAgLy8gU2Vjb25kIGFkIGNsaWNrIDEyNy4wLjAuMSDigJM+IGxvY2Fs
aG9zdC4KLSAgICAgICAgICAgICAgICBjb25maWd1cmVMaW5rKDEpOwotICAgICAgICAgICAgICAg
IGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwotICAgICAgICAgICAgfSBlbHNlIGlmICh3
aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBGb3VyIikgewotICAgICAgICAgICAgICAg
IC8vIENvbnZlcnQgdGhlIHNlY29uZCBhZCBjbGljayB3aXRoIHByaW9yaXR5IDQgYW5kIGZpbmlz
aC4KLSAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaW1nIik7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczov
LzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0Nv
bnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PTA0IjsKLSAgICAgICAgICAg
ICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOwotICAgICAgICAgICAgICAgIGltYWdlRWxl
bWVudC5vbmVycm9yID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIp
KTsKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7Ci0gICAgICAgICAgICAgICAgICAgIHRlYXJEb3du
QW5kRmluaXNoKCk7Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7Ci0gICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRl
eHQgPSAiRkFJTCBVbmtub3duIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT0gIiArIHdpbmRvdy5s
b2NhdGlvbi5zZWFyY2ggKyAiLiI7Ci0gICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2go
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVy
LiI7Ci0gICAgICAgIH0KLSAgICB9Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1h
dHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtYXR0cmlidXRp
b24tY29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhN2UyZGY3MGNjOWZiZTM1YThlNDM3Y2RlNjQyMDhjNzZjYjg3
YTE4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1hdHRyaWJ1dGlvbi1j
b252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwxMiArMCwwIEBACi1UZXN0cyB0aGF0IGEgc2Vjb25kIGF0dHJpYnV0aW9uIGNvbnZlcnNp
b24gd2l0aCBsb3dlciBwcmlvcml0eSBkb2VzIG5vdCByZXBsYWNlIGFuIG9sZGVyIHdpdGggaGln
aGVyIHByaW9yaXR5LgotCi0KLUNvbnZlcnRlZCBBZCBDbGljayBBdHRyaWJ1dGlvbnM6Ci1XZWJD
b3JlOjpBZENsaWNrQXR0cmlidXRpb24gMQotU291cmNlOiAxMjcuMC4wLjEKLURlc3RpbmF0aW9u
OiBsb2NhbGhvc3QKLUNhbXBhaWduIElEOiAzCi1Db252ZXJzaW9uIGRhdGE6IDEyCi1Db252ZXJz
aW9uIHByaW9yaXR5OiA0Ci1Db252ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogV2l0aGlu
IDI0LTQ4IGhvdXJzCi1Db252ZXJzaW9uIHJlcXVlc3Qgc2VudDogZmFsc2UKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1hdHRyaWJ1
dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13
aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhh
MzU3MmRiZDBjMmYwYmQ2NTZhOTRlMDUxYzEwNzlmYTIyZjg5YWUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENs
aWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWxvd2VyLXBy
aW9yaXR5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5MiArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAt
LT4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4K
LSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBp
bml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgotICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRU
aW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IGEg
c2Vjb25kIGF0dHJpYnV0aW9uIGNvbnZlcnNpb24gd2l0aCBsb3dlciBwcmlvcml0eSBkb2VzIG5v
dCByZXBsYWNlIGFuIG9sZGVyIHdpdGggaGlnaGVyIHByaW9yaXR5LjwvZGl2PgotPGEgaWQ9InRh
cmdldExpbmsiPkxpbms8L2E+PGJyPgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTxzY3JpcHQ+
Ci0gICAgY29uc3QgcGF0aCA9ICIvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1hdHRyaWJ1dGlv
bi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS5odG1sIjsKLSAgICBjb25zdCBjb25maWd1
cmF0aW9uID0gWwotICAgICAgICB7Ci0gICAgICAgICAgICBocmVmOiAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIiArIHBhdGggKyAiP3N0ZXBUd28iLAotICAgICAgICAgICAgYWRjYW1wYWlnbmlkOiAi
MyIsCi0gICAgICAgICAgICBhZGRlc3RpbmF0aW9uOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIgot
ICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICBocmVmOiAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIiArIHBhdGggKyAiP3N0ZXBGb3VyIiwKLSAgICAgICAgICAgIGFkY2FtcGFpZ25pZDog
IjQiLAotICAgICAgICAgICAgYWRkZXN0aW5hdGlvbjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIK
LSAgICAgICAgfQotICAgIF07Ci0KLSAgICBwcmVwYXJlVGVzdCgpOwotCi0gICAgZnVuY3Rpb24g
Y29uZmlndXJlTGluayhpbmRleCkgewotICAgICAgICBsZXQgbGlua0VsZW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpOwotICAgICAgICBsaW5rRWxlbWVudC5zZXRB
dHRyaWJ1dGUoImhyZWYiLCBjb25maWd1cmF0aW9uW2luZGV4XS5ocmVmKTsKLSAgICAgICAgbGlu
a0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhZGNhbXBhaWduaWQiLCBjb25maWd1cmF0aW9uW2luZGV4
XS5hZGNhbXBhaWduaWQpOwotICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFkZGVz
dGluYXRpb24iLCBjb25maWd1cmF0aW9uW2luZGV4XS5hZGRlc3RpbmF0aW9uKTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7Ci0gICAgICAgIHZhciBl
bGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKLSAgICAgICAgdmFy
IGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsK
LSAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0
SGVpZ2h0IC8gMjsKLSAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZ
KS50aGVuKAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOwotICAg
ICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9
PT0gIiIpIHsKLSAgICAgICAgICAgICAgICAvLyBGaXJzdCBhZCBjbGljayAxMjcuMC4wLjEg4oCT
PiBsb2NhbGhvc3QuCi0gICAgICAgICAgICAgICAgY29uZmlndXJlTGluaygwKTsKLSAgICAgICAg
ICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKLSAgICAgICAgICAgIH0gZWxz
ZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgewotICAgICAgICAg
ICAgICAgIC8vIENvbnZlcnQgdGhlIGZpcnN0IGFkIGNsaWNrIHdpdGggcHJpb3JpdHkgNCBhbmQg
bmF2aWdhdGUgYmFjayB0byAxMjcuMC4wLjEuCi0gICAgICAgICAgICAgICAgbGV0IGltYWdlRWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwotICAgICAgICAgICAgICAgIGlt
YWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9hZENsaWNrQXR0cmlidXRp
b24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZw
cmlvcml0eT0wNCI7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsK
LSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKLSAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiICsgcGF0aCArICI/c3RlcFRocmVlIjsKLSAgICAgICAgICAgICAgICB9OwotICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAg
ICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVGhy
ZWUiKSB7Ci0gICAgICAgICAgICAgICAgLy8gU2Vjb25kIGFkIGNsaWNrIDEyNy4wLjAuMSDigJM+
IGxvY2FsaG9zdC4KLSAgICAgICAgICAgICAgICBjb25maWd1cmVMaW5rKDEpOwotICAgICAgICAg
ICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwotICAgICAgICAgICAgfSBlbHNl
IGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBGb3VyIikgewotICAgICAgICAg
ICAgICAgIC8vIENvbnZlcnQgdGhlIHNlY29uZCBhZCBjbGljayB3aXRoIHByaW9yaXR5IDMgYW5k
IGZpbmlzaC4KLSAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJo
dHRwczovLzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJl
Y3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PTAzIjsKLSAgICAg
ICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOwotICAgICAgICAgICAgICAgIGlt
YWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsKLSAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0
TGluayIpKTsKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7Ci0gICAgICAgICAgICAgICAgICAgIHRl
YXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7Ci0gICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5p
bm5lclRleHQgPSAiRkFJTCBVbmtub3duIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT0gIiArIHdp
bmRvdy5sb2NhdGlvbi5zZWFyY2ggKyAiLiI7Ci0gICAgICAgICAgICAgICAgdGVhckRvd25BbmRG
aW5pc2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0
UnVubmVyLiI7Ci0gICAgICAgIH0KLSAgICB9Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Nl
Y29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1jb252ZXJzaW9uLXdp
dGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggM2UxYjFiYTM4NjVhMjU1YWQ3OWRmODYyMjFkNTQwYWY1Njc5Mjg3MS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlv
cml0eS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UZXN0cyB0
aGF0IHRoZSBhdHRyaWJ1dGlvbiBpcyB1cGRhdGVkIGlmIGl0IGdldHMgYSBzZWNvbmQgY29udmVy
c2lvbiB3aXRoIGhpZ2hlciBwcmlvcml0eS4KLQotCi1Db252ZXJ0ZWQgQWQgQ2xpY2sgQXR0cmli
dXRpb25zOgotV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uIDEKLVNvdXJjZTogMTI3LjAuMC4x
Ci1EZXN0aW5hdGlvbjogbG9jYWxob3N0Ci1DYW1wYWlnbiBJRDogMwotQ29udmVyc2lvbiBkYXRh
OiAxMgotQ29udmVyc2lvbiBwcmlvcml0eTogNAotQ29udmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRv
IHNlbmQ6IFdpdGhpbiAyNC00OCBob3VycwotQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9z
ZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdo
ZXItcHJpb3JpdHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWRmZjU5MmY3
MWQ4YzRlOTE0ZjEwOTBkNWI5ZTM3MmQ2OWE2NzdkNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRy
aWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Ci08aHRtbCBsYW5nPSJl
biI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAgPG1ldGEgbmFtZT0i
dmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1
c2VyLXNjYWxhYmxlPW5vIj4KLSAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3Vp
LWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpz
Ij48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAw
KSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCB0aGUgYXR0cmlidXRpb24gaXMg
dXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGNvbnZlcnNpb24gd2l0aCBoaWdoZXIgcHJpb3Jp
dHkuPC9kaXY+Ci08YSBpZD0idGFyZ2V0TGluayI+TGluazwvYT48YnI+Ci08ZGl2IGlkPSJvdXRw
dXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBjb25zdCBwYXRoID0gIi9hZENsaWNrQXR0cmlidXRp
b24vc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbCI7Ci0gICAgY29u
c3QgY29uZmlndXJhdGlvbiA9IFsKLSAgICAgICAgewotICAgICAgICAgICAgaHJlZjogImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCIgKyBwYXRoICsgIj9zdGVwVHdvIiwKLSAgICAgICAgICAgIGFkY2Ft
cGFpZ25pZDogIjMiLAotICAgICAgICAgICAgYWRkZXN0aW5hdGlvbjogImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIKLSAgICAgICAgfQotICAgIF07Ci0KLSAgICBwcmVwYXJlVGVzdCgpOwotCi0gICAg
ZnVuY3Rpb24gY29uZmlndXJlTGluayhpbmRleCkgewotICAgICAgICBsZXQgbGlua0VsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpOwotICAgICAgICBsaW5rRWxl
bWVudC5zZXRBdHRyaWJ1dGUoImhyZWYiLCBjb25maWd1cmF0aW9uW2luZGV4XS5ocmVmKTsKLSAg
ICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhZGNhbXBhaWduaWQiLCBjb25maWd1cmF0
aW9uW2luZGV4XS5hZGNhbXBhaWduaWQpOwotICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1
dGUoImFkZGVzdGluYXRpb24iLCBjb25maWd1cmF0aW9uW2luZGV4XS5hZGRlc3RpbmF0aW9uKTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7Ci0gICAg
ICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKLSAg
ICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdp
ZHRoIC8gMjsKLSAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1l
bnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJY
LCBjZW50ZXJZKS50aGVuKAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3Rl
ZC4iOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gY29udmVydChwcmlvcml0eSwgY2Fs
bGJhY2spIHsKLSAgICAgICAgbGV0IHBpeGVsRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJwaXhlbCIpOwotICAgICAgICBpZiAocGl4ZWxFbGVtZW50KQotICAgICAgICAgICAgZG9j
dW1lbnQuYm9keS5yZW1vdmVDaGlsZChwaXhlbEVsZW1lbnQpOwotCi0gICAgICAgIGxldCBpbWFn
ZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAgaW1hZ2VF
bGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9y
ZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9y
aXR5PSIgKyBwcmlvcml0eTsKLSAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKLSAg
ICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBjYWxsYmFjazsKLSAgICAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAg
aWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICIiKSB7Ci0gICAgICAgICAgICAgICAgLy8g
QWQgY2xpY2sgMTI3LjAuMC4xIOKAkz4gbG9jYWxob3N0LgotICAgICAgICAgICAgICAgIGNvbmZp
Z3VyZUxpbmsoMCk7Ci0gICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5r
Iik7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/
c3RlcFR3byIpIHsKLSAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBhZCBjbGljayB3aXRo
IHByaW9yaXR5IDMuCi0gICAgICAgICAgICAgICAgY29udmVydCgiMDMiLCBmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgYWQgY2xpY2sgd2l0aCBwcmlvcml0
eSA0LgotICAgICAgICAgICAgICAgICAgICBjb252ZXJ0KCIwNCIsIGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4
ZWwiKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAg
ICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIp
LmlubmVyVGV4dCA9ICJGQUlMIFVua25vd24gd2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PSAiICsg
d2luZG93LmxvY2F0aW9uLnNlYXJjaCArICIuIjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFu
ZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRl
c3RSdW5uZXIuIjsKLSAgICAgICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24v
c2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13
aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNzAzY2ZkYmEzZWZmNTA5MTgyNWZlY2Y0MmFjYWY0YzFmMTgxYWU4Zi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9y
aXR5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRlc3RzIHRo
YXQgdGhlIGF0dHJpYnV0aW9uIGlzIG5vdCB1cGRhdGVkIGlmIGl0IGdldHMgYSBzZWNvbmQgY29u
dmVyc2lvbiB3aXRoIGxvd2VyIHByaW9yaXR5LgotCi0KLUNvbnZlcnRlZCBBZCBDbGljayBBdHRy
aWJ1dGlvbnM6Ci1XZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24gMQotU291cmNlOiAxMjcuMC4w
LjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWduIElEOiAzCi1Db252ZXJzaW9uIGRh
dGE6IDEyCi1Db252ZXJzaW9uIHByaW9yaXR5OiA0Ci1Db252ZXJzaW9uIGVhcmxpZXN0IHRpbWUg
dG8gc2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCi1Db252ZXJzaW9uIHJlcXVlc3Qgc2VudDogZmFs
c2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9u
L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtbG93ZXItcHJpb3JpdHkuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1jb252ZXJzaW9uLXdpdGgtbG93
ZXItcHJpb3JpdHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWNmZjk2YWE1
OWE0NGE2MWM5N2JjNmI1NjhiZDA3MDkxYTBlY2NkZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRy
aWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw4NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVu
Ij4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2
aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVz
ZXItc2NhbGFibGU9bm8iPgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWkt
aGVscGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDAp
Ij4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IHRoZSBhdHRyaWJ1dGlvbiBpcyBu
b3QgdXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGNvbnZlcnNpb24gd2l0aCBsb3dlciBwcmlv
cml0eS48L2Rpdj4KLTxhIGlkPSJ0YXJnZXRMaW5rIj5MaW5rPC9hPjxicj4KLTxkaXYgaWQ9Im91
dHB1dCI+PC9kaXY+Ci08c2NyaXB0PgotICAgIGNvbnN0IHBhdGggPSAiL2FkQ2xpY2tBdHRyaWJ1
dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwiOwotICAgIGNv
bnN0IGNvbmZpZ3VyYXRpb24gPSBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIGhyZWY6ICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiICsgcGF0aCArICI/c3RlcFR3byIsCi0gICAgICAgICAgICBhZGNh
bXBhaWduaWQ6ICIzIiwKLSAgICAgICAgICAgIGFkZGVzdGluYXRpb246ICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiCi0gICAgICAgIH0KLSAgICBdOwotCi0gICAgcHJlcGFyZVRlc3QoKTsKLQotICAg
IGZ1bmN0aW9uIGNvbmZpZ3VyZUxpbmsoaW5kZXgpIHsKLSAgICAgICAgbGV0IGxpbmtFbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKTsKLSAgICAgICAgbGlua0Vs
ZW1lbnQuc2V0QXR0cmlidXRlKCJocmVmIiwgY29uZmlndXJhdGlvbltpbmRleF0uaHJlZik7Ci0g
ICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRjYW1wYWlnbmlkIiwgY29uZmlndXJh
dGlvbltpbmRleF0uYWRjYW1wYWlnbmlkKTsKLSAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmli
dXRlKCJhZGRlc3RpbmF0aW9uIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRkZXN0aW5hdGlvbik7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAg
ICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0g
ICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRX
aWR0aCAvIDI7Ci0gICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVt
ZW50Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVy
WCwgY2VudGVyWSkudGhlbigKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0
ZWQuIjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAg
fQotICAgICAgICApOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNvbnZlcnQocHJpb3JpdHksIGNh
bGxiYWNrKSB7Ci0gICAgICAgIGxldCBwaXhlbEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicGl4ZWwiKTsKLSAgICAgICAgaWYgKHBpeGVsRWxlbWVudCkKLSAgICAgICAgICAgIGRv
Y3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocGl4ZWxFbGVtZW50KTsKLQotICAgICAgICBsZXQgaW1h
Z2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgIGltYWdl
RWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9hZENsaWNrQXR0cmlidXRpb24v
cmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZwcmlv
cml0eT0iICsgcHJpb3JpdHk7Ci0gICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0g
ICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gY2FsbGJhY2s7Ci0gICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBy
dW5UZXN0KCkgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAg
IGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiIikgewotICAgICAgICAgICAgICAgIC8v
IEFkIGNsaWNrIDEyNy4wLjAuMSDigJM+IGxvY2FsaG9zdC4KLSAgICAgICAgICAgICAgICBjb25m
aWd1cmVMaW5rKDApOwotICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGlu
ayIpOwotICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAi
P3N0ZXBUd28iKSB7Ci0gICAgICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgYWQgY2xpY2sgd2l0
aCBwcmlvcml0eSA0LgotICAgICAgICAgICAgICAgIGNvbnZlcnQoIjA0IiwgZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIGFkIGNsaWNrIHdpdGggcHJpb3Jp
dHkgMy4KLSAgICAgICAgICAgICAgICAgICAgY29udmVydCgiMDMiLCBmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbigp
OwotICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBp
eGVsIikpOwotICAgICAgICAgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAg
ICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQi
KS5pbm5lclRleHQgPSAiRkFJTCBVbmtub3duIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT0gIiAr
IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggKyAiLiI7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwg
Tm8gdGVzdFJ1bm5lci4iOwotICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1
dGlvbi9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZW5kLWF0dHJpYnV0aW9u
LWNvbnZlcnNpb24tcmVxdWVzdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGE4MjM3ZDE1M2ZjN2YwYjgxYmQ5MDExNGJiMmEyZTcwZWE4YmJkOWIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVl
c3QtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotVGVzdHMgc2Vu
ZGluZyBvZiBhZCBjbGljayBhdHRyaWJ1dGlvbiByZXF1ZXN0cyBhZnRlciBhIGNvbnZlcnNpb24u
IEFsc28gdGVzdHMgdGhhdCBjb29raWVzIGFyZSBub3Qgc2VudCBpbiB0aG9zZSByZXF1ZXN0cyBh
bmQgY29va2llcyBhcmUgbm90IGFjY2VwdGVkIGluIHRoZSByZXNwb25zZXMuCi0KLQotCi0tLS0t
LS0tLQotRnJhbWU6ICc8IS0tZnJhbWUxLS0+JwotLS0tLS0tLS0KLUNvb2tpZXMgYXJlOiBjb29r
aWVTZXRBc0ZpcnN0UGFydHkgPSAxCi0KLS0tLS0tLS0tCi1GcmFtZTogJzwhLS1mcmFtZTItLT4n
Ci0tLS0tLS0tLQotQ29udmVyc2lvbiByZWNlaXZlZC4KLUhUVFBfSE9TVDogMTI3LjAuMC4xOjgw
MDAKLUNvbnRlbnQgdHlwZTogYXBwbGljYXRpb24vanNvbgotUkVRVUVTVF9VUkk6IC9hZENsaWNr
QXR0cmlidXRpb24vcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwCi1ObyBjb29raWVzIGlu
IGNvbnZlcnNpb24gcmVxdWVzdC4KLVJlcXVlc3QgYm9keToKLXsiY29udGVudC10eXBlIjoiY2xp
Y2siLCJjb250ZW50LXNpdGUiOiIxMjcuMC4wLjEiLCJjb250ZW50LWlkIjozLCJjb252ZXJzaW9u
LXNpdGUiOiJsb2NhbGhvc3QiLCJjb252ZXJzaW9uLWRhdGEiOjEyLCJyZXBvcnQtdmVyc2lvbiI6
MX0KLQotCi0tLS0tLS0tLQotRnJhbWU6ICc8IS0tZnJhbWUzLS0+JwotLS0tLS0tLS0KLUNvb2tp
ZXMgYXJlOiBjb29raWVTZXRBc0ZpcnN0UGFydHkgPSAxCi0KLU5vIHN0b3JlZCBBZCBDbGljayBB
dHRyaWJ1dGlvbiBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENs
aWNrQXR0cmlidXRpb24vc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlbmQtYXR0cmlidXRp
b24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDk4ZmNiZmEyNWUzZjVlM2RjODE4YmEwY2E5NTUyOWRjM2MxZDIzM2MuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
ZENsaWNrQXR0cmlidXRpb24vc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgotPGh0bWwg
bGFuZz0iZW4iPgotPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgotICAgIDxtZXRh
IG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2Nh
bGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVu
VGVzdCwgMCkiPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHNlbmRpbmcgb2YgYWQgY2xp
Y2sgYXR0cmlidXRpb24gcmVxdWVzdHMgYWZ0ZXIgYSBjb252ZXJzaW9uLiBBbHNvIHRlc3RzIHRo
YXQgY29va2llcyBhcmUgbm90IHNlbnQgaW4gdGhvc2UgcmVxdWVzdHMgYW5kIGNvb2tpZXMgYXJl
IG5vdCBhY2NlcHRlZCBpbiB0aGUgcmVzcG9uc2VzLjwvZGl2PgotPGEgaWQ9InRhcmdldExpbmsi
IGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vc2VuZC1hdHRy
aWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMi
IGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Ci08ZGl2
IGlkPSJvdXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBjb25zdCBjdXJyZW50VGltZU1pbGxp
cyA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7Ci0gICAgY29uc3QgaGlnaEVudHJvcHlCaXRzID0g
Y3VycmVudFRpbWVNaWxsaXMgLSAoTWF0aC5mbG9vcihjdXJyZW50VGltZU1pbGxpcyAvIDEwMDAw
MDApICogMTAwMDAwMCk7Ci0gICAgY29uc3Qgbm9uY2UgPSBoaWdoRW50cm9weUJpdHMgKyAiIiAr
IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMCk7Ci0KLSAgICBwcmVwYXJlVGVzdCgpOwot
Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0QWRD
bGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmcodHJ1ZSk7Ci0gICAgICAgIHRl
c3RSdW5uZXIuc2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3RpbmcoImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2NvbnZlcnNp
b25SZXBvcnQucGhwP25vbmNlPSIgKyBub25jZSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYWN0
aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVu
dC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciBjZW50
ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAg
ICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKLSAgICAgICAg
ICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBmdW5jdGlvbiAo
KSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlu
bmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAgICAgICAgICAgICB0ZWFy
RG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICApOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIGFwcGVuZElmcmFtZSh1cmwsIG9ubG9hZENhbGxiYWNrKSB7Ci0gICAgICAgIGxl
dCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Ci0gICAg
ICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gdXJsOwotICAgICAgICBpZiAob25sb2FkQ2FsbGJhY2sp
Ci0gICAgICAgICAgICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IG9ubG9hZENhbGxiYWNrOwotICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIGFwcGVuZENvbnZlcnNpb25EYXRhSWZyYW1lQW5kRmluaXNoKCkgewotICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsKLSAgICAgICAgZG9jdW1l
bnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIp
KTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicGl4ZWwiKSk7Ci0KLSAgICAgICAgYXBwZW5kSWZyYW1lKCJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvY29va2llcy9yZXNvdXJjZXMvZWNoby1jb29raWVzLnBocCIpOwotICAgICAgICBhcHBl
bmRJZnJhbWUoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vcmVzb3Vy
Y2VzL2dldENvbnZlcnNpb25EYXRhLnBocD90aW1lb3V0X21zPTIwMDAmbm9uY2U9IiArIG5vbmNl
LCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGFwcGVuZElmcmFtZSgiaHR0cDovLzEyNy4wLjAu
MTo4MDAwL2Nvb2tpZXMvcmVzb3VyY2VzL2VjaG8tY29va2llcy5waHAiLCBmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5z
ZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKLSAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgICAgICAgICAgaW1hZ2VF
bGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9y
ZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJm5vbmNl
PSIgKyBub25jZTsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOwot
ICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGFwcGVuZENvbnZlcnNpb25EYXRhSWZyYW1lQW5kRmluaXNoKCk7Ci0g
ICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGltYWdlRWxlbWVudCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
IGRvY3VtZW50LmNvb2tpZSA9ICJjb29raWVTZXRBc0ZpcnN0UGFydHk9MTsgcGF0aD0vIjsKLSAg
ICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7Ci0gICAgICAgIH0K
LSAgICB9Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWFkLWNsaWNrLWF0dHJpYnV0
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0
aW9uL3N0b3JlLWFkLWNsaWNrLWF0dHJpYnV0aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggY2ZkMzFhOTdiZjFjZmFjZjY1NTJiZjVmMjI0ZTIxMzE0MGUwMWE5
NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zdG9yZS1hZC1jbGljay1hdHRyaWJ1
dGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLVRlc3RzIHN0
b3JhZ2Ugb2YgYWQgY2xpY2sgYXR0cmlidXRpb24uCi0KLQotVW5jb252ZXJ0ZWQgQWQgQ2xpY2sg
QXR0cmlidXRpb25zOgotV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uIDEKLVNvdXJjZTogMTI3
LjAuMC4xCi1EZXN0aW5hdGlvbjogbG9jYWxob3N0Ci1DYW1wYWlnbiBJRDogMwotTm8gY29udmVy
c2lvbiBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0
cmlidXRpb24vc3RvcmUtYWQtY2xpY2stYXR0cmlidXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWFkLWNsaWNrLWF0dHJpYnV0aW9uLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNkZjc2YjA0ZjU5YmZiY2JiNGY4MDA5
OWI2ZjI4YjcxY2MwZTYwMzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUt
YWQtY2xpY2stYXR0cmlidXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmll
d3BvcnQ9dHJ1ZSBdIC0tPgotPGh0bWwgbGFuZz0iZW4iPgotPGhlYWQ+Ci0gICAgPG1ldGEgY2hh
cnNldD0iVVRGLTgiPgotICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1k
ZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+Ci0gICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgotICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgotPGRpdiBpZD0iZGVzY3JpcHRpb24i
PlRlc3RzIHN0b3JhZ2Ugb2YgYWQgY2xpY2sgYXR0cmlidXRpb24uPC9kaXY+Ci08YSBpZD0idGFy
Z2V0TGluayIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2FkQ2xpY2tBdHRyaWJ1dGlvbi9z
dG9yZS1hZC1jbGljay1hdHRyaWJ1dGlvbi5odG1sP3N0ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIg
YWRkZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KLTxkaXYg
aWQ9Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHByZXBhcmVUZXN0KCk7Ci0KLSAgICBm
dW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7Ci0gICAgICAgIHZhciBlbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKLSAgICAgICAgdmFyIGNlbnRl
clggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKLSAgICAg
ICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0
IC8gMjsKLSAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVu
KAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
b3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOwotICAgICAgICAg
ICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICk7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9z
dGVwVHdvIikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFkQ2xpY2tBdHRyaWJ1
dGlvbigpOwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7Ci0gICAgICAgICAgICAgICAgdGVhckRv
d25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYWN0
aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJU
ZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOwotICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9zdG9yZS1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zdG9y
ZS1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDBlMzNiNzU3MGI4MmJmNDE3NjNkYWRjMWQ1M2RlNTZkZTJjMjAw
NTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUtZGlzYWJsZWQtaW4tZXBo
ZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBA
Ci1UZXN0cyB0aGF0IHN0b3JhZ2Ugb2YgYWQgY2xpY2sgYXR0cmlidXRpb24gaXMgZGlzYWJsZWQg
aW4gZXBoZW1lcmFsIHNlc3Npb25zLgotCi0KLQotTm8gc3RvcmVkIEFkIENsaWNrIEF0dHJpYnV0
aW9uIGRhdGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRy
aWJ1dGlvbi9zdG9yZS1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUtZGlzYWJsZWQtaW4tZXBo
ZW1lcmFsLXNlc3Npb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmZjMjc0
MWFiMTFiYzFjN2E5NjBlNDllYTI3MzZlNGU2NDg2NDZkZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tB
dHRyaWJ1dGlvbi9zdG9yZS1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VG
bGV4aWJsZVZpZXdwb3J0PXRydWUgdXNlRXBoZW1lcmFsU2Vzc2lvbj10cnVlIF0gLS0+Ci08IURP
Q1RZUEUgaHRtbD4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9
IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl
LXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgotICAgIDxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25s
b2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0
cyB0aGF0IHN0b3JhZ2Ugb2YgYWQgY2xpY2sgYXR0cmlidXRpb24gaXMgZGlzYWJsZWQgaW4gZXBo
ZW1lcmFsIHNlc3Npb25zLjwvZGl2PgotPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1l
cmFsLXNlc3Npb24uaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMiIGFkZGVzdGluYXRpb249
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwv
ZGl2PgotPHNjcmlwdD4KLSAgICBwcmVwYXJlVGVzdCgpOwotCi0gICAgZnVuY3Rpb24gYWN0aXZh
dGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5v
ZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciBjZW50ZXJZ
ID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAg
IFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKLSAgICAgICAgICAg
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7
Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVy
VGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93
bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICApOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAg
ICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKLSAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsKLSAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXRMaW5rIikpOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7
Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgi
dGFyZ2V0TGluayIpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5v
IHRlc3RSdW5uZXIuIjsKLSAgICAgICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9u
cy9ibG9jay1hZC1jbGljay1hdHRyaWJ1dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjcwNzRmNzk5NWIxYjg5
ZDVlODdkMDQ2MTNiNmViMDQ1YWQ1NWI4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25z
L2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDE3ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogQmxvY2tlZCBieSBjb250ZW50IGV4dGVu
c2lvbgotQ09OU09MRSBNRVNTQUdFOiBDYW5ub3QgbG9hZCBpbWFnZSBodHRwczovLzEyNy4wLjAu
MTo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24u
cGhwP2NvbnZlcnNpb25EYXRhPTEyIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1UZXN0
cyB0aGF0IGFkIGNsaWNrIGF0dHJpYnV0aW9uIHJlZGlyZWN0cyB0byB3ZWxsLWtub3duIGxvY2F0
aW9uIGRvbid0IHRyaWdnZXIgYSBjb252ZXJzaW9uIGlmIHRoZXkgYXJlIGJsb2NrZWQgYnkgY29u
dGVudCBibG9ja2Vycy4KLQotCi0KLS0tLS0tLS0tCi1GcmFtZTogJzwhLS1mcmFtZTEtLT4nCi0t
LS0tLS0tLQotQ29udmVyc2lvbiBub3QgcmVjZWl2ZWQgLSB0aW1lZCBvdXQuCi0KLVVuY29udmVy
dGVkIEFkIENsaWNrIEF0dHJpYnV0aW9uczoKLVdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbiAx
Ci1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRpb246IGxvY2FsaG9zdAotQ2FtcGFpZ24gSUQ6
IDMKLU5vIGNvbnZlcnNpb24gZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2stYWQtY2xpY2stYXR0cmlidXRpb24uaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2stYWQtY2xpY2stYXR0
cmlidXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDE0Y2NlODYwNTRi
NjMwOGZiYjIzMjY1NjZlZmQwYzllNjFhNjBhZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNp
b25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3
MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VG
bGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAg
IDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVu
dD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8i
PgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5U
ZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBhZCBjbGljayBhdHRy
aWJ1dGlvbiByZWRpcmVjdHMgdG8gd2VsbC1rbm93biBsb2NhdGlvbiBkb24ndCB0cmlnZ2VyIGEg
Y29udmVyc2lvbiBpZiB0aGV5IGFyZSBibG9ja2VkIGJ5IGNvbnRlbnQgYmxvY2tlcnMuPC9kaXY+
Ci08YSBpZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2NvbnRlbnRl
eHRlbnNpb25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLmh0bWw/c3RlcFR3byIgYWRjYW1w
YWlnbmlkPSIzIiBhZGRlc3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+
PGJyPgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgcHJlcGFyZVRlc3Qo
KTsKLQotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLnNl
dEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHRydWUpOwotICAgICAg
ICB0ZXN0UnVubmVyLnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5n
KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252
ZXJzaW9uUmVwb3J0LnBocCIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVu
dChlbGVtZW50SUQpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChlbGVtZW50SUQpOwotICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVm
dCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1l
bnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwotICAgICAgICBVSUhlbHBl
ci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCi0gICAgICAgICAgICBmdW5jdGlv
biAoKSB7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAi
RkFJTCBQcm9taXNlIHJlamVjdGVkLiI7Ci0gICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5p
c2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBh
cHBlbmRJZnJhbWUodXJsLCBvbmxvYWRDYWxsYmFjaykgewotICAgICAgICBsZXQgaWZyYW1lRWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICAgICAgICBpZnJhbWVF
bGVtZW50LnNyYyA9IHVybDsKLSAgICAgICAgaWYgKG9ubG9hZENhbGxiYWNrKQotICAgICAgICAg
ICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBvbmxvYWRDYWxsYmFjazsKLSAgICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBhcHBlbmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZpbmlzaCgpIHsKLSAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkucmVt
b3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7Ci0gICAgICAg
IGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVs
IikpOwotCi0gICAgICAgIGFwcGVuZElmcmFtZSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhwP3RpbWVvdXRfbXM9
MTAwMCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAg
ICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNl
YXJjaCA9PT0gIj9zdGVwVHdvIikgewotICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAgICAgICAgICBpbWFnZUVs
ZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvYWRDbGlja0F0dHJpYnV0aW9uL3Jl
c291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTIiOwotICAg
ICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0gICAgICAgICAgICAgICAg
aW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAg
YXBwZW5kQ29udmVyc2lvbkRhdGFJZnJhbWVBbmRGaW5pc2goKTsKLSAgICAgICAgICAgICAgICB9
OwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50
KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50
KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwg
Tm8gdGVzdFJ1bm5lci4iOwotICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNp
b25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLmh0bWwuanNvbiBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2stYWQtY2xpY2stYXR0cmlidXRpb24uaHRt
bC5qc29uCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZTM5NGVmMTE4MGJjOGZiYTY4
NzZlMTU2MzE0NGU4NGE2NDk0ZDE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxv
Y2stYWQtY2xpY2stYXR0cmlidXRpb24uaHRtbC5qc29uCisrKyAvZGV2L251bGwKQEAgLTEsMTAg
KzAsMCBAQAotWwotICB7Ci0gICAgInRyaWdnZXIiOiB7Ci0gICAgICAidXJsLWZpbHRlciI6ICIv
LndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vIgotICAgIH0sCi0gICAgImFjdGlvbiI6
IHsKLSAgICAgICJ0eXBlIjogImJsb2NrIgotICAgIH0KLSAgfQotXQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1wcml2YXRlLWNsaWNr
LW1lYXN1cmVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVu
dGV4dGVuc2lvbnMvYmxvY2stcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjFmYWFiZTliMjljNWY1MmExYzZmNTExMzlmZWUyNTEyZmMwNzk4MwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMv
YmxvY2stcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NyBAQAorQ09OU09MRSBNRVNTQUdFOiBCbG9ja2VkIGJ5IGNvbnRlbnQgZXh0ZW5zaW9uCitDT05T
T0xFIE1FU1NBR0U6IENhbm5vdCBsb2FkIGltYWdlIGh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9j
b252ZXJzaW9uRGF0YT0xMiBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgorVGVzdHMgdGhh
dCBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IHJlZGlyZWN0cyB0byB3ZWxsLWtub3duIGxvY2F0
aW9uIGRvbid0IHRyaWdnZXIgYSBjb252ZXJzaW9uIGlmIHRoZXkgYXJlIGJsb2NrZWQgYnkgY29u
dGVudCBibG9ja2Vycy4KKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCist
LS0tLS0tLQorQ29udmVyc2lvbiBub3QgcmVjZWl2ZWQgLSB0aW1lZCBvdXQuCisKK1VuY29udmVy
dGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgorV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQgMQorU291cmNlOiAxMjcuMC4wLjEKK0Rlc3RpbmF0aW9uOiBsb2NhbGhvc3QKK0Nh
bXBhaWduIElEOiAzCitObyBjb252ZXJzaW9uIGRhdGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVhc3Vy
ZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxv
Y2stcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExOTEwN2Y1MjJh
NGE3ZmVjM2FkYTMxOWI5Mjg0OWNlMjI4MmRlMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVh
c3VyZW1lbnQuaHRtbApAQCAtMCwwICsxLDcyIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sIGxh
bmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8bWV0YSBu
YW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxl
PTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJj
ZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9u
Ij5UZXN0cyB0aGF0IHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgcmVkaXJlY3RzIHRvIHdlbGwt
a25vd24gbG9jYXRpb24gZG9uJ3QgdHJpZ2dlciBhIGNvbnZlcnNpb24gaWYgdGhleSBhcmUgYmxv
Y2tlZCBieSBjb250ZW50IGJsb2NrZXJzLjwvZGl2PgorPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1wcml2YXRlLWNs
aWNrLW1lYXN1cmVtZW50Lmh0bWw/c3RlcFR3byIgYWRjYW1wYWlnbmlkPSIzIiBhZGRlc3RpbmF0
aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgorPGRpdiBpZD0ib3V0cHV0
Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAgcHJlcGFyZVRlc3QoKTsKKworICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZygiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9u
UmVwb3J0LnBocCIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVt
ZW50SUQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChl
bGVtZW50SUQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVs
ZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zm
c2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3Rp
dmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQ
cm9taXNlIHJlamVjdGVkLiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhcHBlbmRJ
ZnJhbWUodXJsLCBvbmxvYWRDYWxsYmFjaykgeworICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBpZnJhbWVFbGVtZW50
LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9ubG9hZENhbGxiYWNrKQorICAgICAgICAgICAgaWZy
YW1lRWxlbWVudC5vbmxvYWQgPSBvbmxvYWRDYWxsYmFjazsKKyAgICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhcHBl
bmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZpbmlzaCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5k
dW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1v
dmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKKyAgICAgICAg
ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwi
KSk7CisKKyAgICAgICAgYXBwZW5kSWZyYW1lKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBocD90aW1lb3V0
X21zPTEwMDAiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlv
bi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CisgICAgICAgICAgICAgICAgaW1h
Z2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9
MTIiOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7CisgICAgICAg
ICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgYXBwZW5kQ29udmVyc2lvbkRhdGFJZnJhbWVBbmRGaW5pc2goKTsKKyAgICAgICAg
ICAgICAgICB9OworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1h
Z2VFbGVtZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYWN0aXZh
dGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0
ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRl
bnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQuaHRtbC5qc29uIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1wcml2YXRlLWNs
aWNrLW1lYXN1cmVtZW50Lmh0bWwuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OGY1MWRlN2FhMTE4NWYzM2Zl
YzYwNWFiODUxOTBlOWFiNWFhMTE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50
Lmh0bWwuanNvbgpAQCAtMCwwICsxLDEwIEBACitbCisgIHsKKyAgICAidHJpZ2dlciI6IHsKKyAg
ICAgICJ1cmwtZmlsdGVyIjogIi8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50
LyIKKyAgICB9LAorICAgICJhY3Rpb24iOiB7CisgICAgICAidHlwZSI6ICJibG9jayIKKyAgICB9
CisgIH0KK10KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXJlZmxlY3QtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hbmNob3ItdGFn
LWF0dHJpYnV0ZXMtcmVmbGVjdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNkMzBiZDZkN2Rj
YTlmN2E4M2E3NTZkY2JlNDZhMWFkYzZlNzBlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1
dGVzLXJlZmxlY3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgZm9yIHRoZSBu
ZXcgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBhdHRyaWJ1dGVzIG9uIGFuY2hvciB0YWdzLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBhbmNob3JUYWcuYWRjYW1wYWln
bmlkIGlzICI0MCIKK1BBU1MgYW5jaG9yVGFnLmFkZGVzdGluYXRpb24gaXMgImRlc3RpbmF0aW9u
LmV4YW1wbGUiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtcmVmbGVjdC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hbmNob3ItdGFnLWF0dHJpYnV0ZXMt
cmVmbGVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyMTY5ZmQ2YzNlOTFmZDBmZWI4MmY5NWRkOGFjNjQy
OWIwZTVkNjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L2FuY2hvci10YWctYXR0cmlidXRlcy1yZWZsZWN0Lmh0bWwKQEAg
LTAsMCArMSwxNyBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8YSBpZD0idGVzdFRhZyIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIiBhZGNhbXBhaWdu
aWQ9IjQwIiBhZGRlc3RpbmF0aW9uPSJkZXN0aW5hdGlvbi5leGFtcGxlIj48L2E+Cis8c2NyaXB0
PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZvciB0aGUgbmV3IHByaXZhdGUgY2xpY2sgbWVhc3Vy
ZW1lbnQgYXR0cmlidXRlcyBvbiBhbmNob3IgdGFncy4iKTsKKworICAgIGNvbnN0IGFuY2hvclRh
ZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0VGFnIik7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJhbmNob3JUYWcuYWRjYW1wYWlnbmlkIiwgIjQwIik7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJhbmNob3JUYWcuYWRkZXN0aW5hdGlvbiIsICJkZXN0aW5hdGlvbi5leGFt
cGxlIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1
dGVzLXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtdmFsaWRhdGlvbi1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODBlOWQxNDZlNTRkYmIzMjU3ZGE2NGJkMjc5MzBjZTJmZjAx
YmMwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlkYXRpb24tZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjAgQEAKK0NPTlNPTEUgTUVTU0FHRTogYWRjYW1wYWlnbmlkIG11c3Qg
aGF2ZSBhIG5vbi1uZWdhdGl2ZSB2YWx1ZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNjMgZm9yIFBy
aXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQuCitDT05TT0xFIE1FU1NBR0U6IGFkY2FtcGFpZ25pZCBt
dXN0IGhhdmUgYSBub24tbmVnYXRpdmUgdmFsdWUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDYzIGZv
ciBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50LgorQ09OU09MRSBNRVNTQUdFOiBhZGNhbXBhaWdu
aWQgY2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSBub24tbmVnYXRpdmUgaW50ZWdlciB3aGljaCBp
cyByZXF1aXJlZCBmb3IgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudC4KK0NPTlNPTEUgTUVTU0FH
RTogYWRjYW1wYWlnbmlkIGNhbiBub3QgYmUgY29udmVydGVkIHRvIGEgbm9uLW5lZ2F0aXZlIGlu
dGVnZXIgd2hpY2ggaXMgcmVxdWlyZWQgZm9yIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQuCitD
T05TT0xFIE1FU1NBR0U6IGFkY2FtcGFpZ25pZCBjYW4gbm90IGJlIGNvbnZlcnRlZCB0byBhIG5v
bi1uZWdhdGl2ZSBpbnRlZ2VyIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBQcml2YXRlIENsaWNrIE1l
YXN1cmVtZW50LgorQ09OU09MRSBNRVNTQUdFOiBhZGRlc3RpbmF0aW9uIGNvdWxkIG5vdCBiZSBj
b252ZXJ0ZWQgdG8gYSB2YWxpZCBIVFRQLWZhbWlseSBVUkwuCitDT05TT0xFIE1FU1NBR0U6IGFk
ZGVzdGluYXRpb24gY291bGQgbm90IGJlIGNvbnZlcnRlZCB0byBhIHZhbGlkIEhUVFAtZmFtaWx5
IFVSTC4KK0NPTlNPTEUgTUVTU0FHRTogYWRkZXN0aW5hdGlvbiBjb3VsZCBub3QgYmUgY29udmVy
dGVkIHRvIGEgdmFsaWQgSFRUUC1mYW1pbHkgVVJMLgorQ09OU09MRSBNRVNTQUdFOiBCb3RoIGFk
Y2FtcGFpZ25pZCBhbmQgYWRkZXN0aW5hdGlvbiBuZWVkIHRvIGJlIHNldCBmb3IgUHJpdmF0ZSBD
bGljayBNZWFzdXJlbWVudCB0byB3b3JrLgorQ09OU09MRSBNRVNTQUdFOiBCb3RoIGFkY2FtcGFp
Z25pZCBhbmQgYWRkZXN0aW5hdGlvbiBuZWVkIHRvIGJlIHNldCBmb3IgUHJpdmF0ZSBDbGljayBN
ZWFzdXJlbWVudCB0byB3b3JrLgorQ09OU09MRSBNRVNTQUdFOiBhZGRlc3RpbmF0aW9uIGNhbiBu
b3QgYmUgdGhlIHNhbWUgc2l0ZSBhcyB0aGUgY3VycmVudCB3ZWJzaXRlLgorVGVzdCBmb3IgdmFs
aWRpdHkgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBhdHRyaWJ1dGVzIG9uIGFuY2hvciB0
YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1dGVz
LXZhbGlkYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlkYXRpb24uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lYzNhNmY4YjNlMzQwMmE2MGFlNWJiNDQ3NGYxYjY5MTlhYTBkYjM1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hbmNo
b3ItdGFnLWF0dHJpYnV0ZXMtdmFsaWRhdGlvbi5odG1sCkBAIC0wLDAgKzEsODUgQEAKKzwhRE9D
VFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9
dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0i
VVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Ut
d2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+CisgICAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHN0
eWxlPgorICAgICAgICAud2lkZS1saW5rIHsKKyAgICAgICAgICAgIHdpZHRoOiAxNTBweDsKKyAg
ICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1bkFsbFRlc3RzKCkiPgorPGRpdiBpZD0iZGVzY3Jp
cHRpb24iPjwvZGl2PgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj48YnI+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIHZhbGlkaXR5
IG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgYXR0cmlidXRlcyBvbiBhbmNob3IgdGFncy4i
KTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9uIGNyZWF0ZVByaXZh
dGVDbGlja01lYXN1cmVtZW50QW5jaG9yRWxlbWVudChlbGVtZW50SUQsIGFkQ2FtcGFpZ25JRCwg
YWREZXN0aW5hdGlvbikgeworICAgICAgICBsZXQgYW5jaG9yRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImEiKTsKKyAgICAgICAgYW5jaG9yRWxlbWVudC5pZCA9IGVsZW1lbnRJRDsK
KyAgICAgICAgYW5jaG9yRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ3aWRlLWxpbmsiKTsKKyAgICAg
ICAgYW5jaG9yRWxlbWVudC5hZGNhbXBhaWduaWQgPSBhZENhbXBhaWduSUQ7CisgICAgICAgIGFu
Y2hvckVsZW1lbnQuYWRkZXN0aW5hdGlvbiA9IGFkRGVzdGluYXRpb247CisgICAgICAgIGFuY2hv
ckVsZW1lbnQuaHJlZiA9ICIjIjsKKyAgICAgICAgYW5jaG9yRWxlbWVudC5pbm5lclRleHQgPSAi
TGluayIgKyBjdXJyZW50VGVzdDsKKyAgICAgICAgcmV0dXJuIGFuY2hvckVsZW1lbnQ7CisgICAg
fQorCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCwgY2FsbGJhY2spIHsK
KyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KGVsZW1lbnRJRCkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWplY3RlZC4iKTsKKyAg
ICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsK
KyAgICB9CisKKyAgICBsZXQgY3VycmVudFRlc3QgPSAwOworICAgIGZ1bmN0aW9uIHJ1bk9uZVRl
c3QoYWRDYW1wYWlnbklELCBhZERlc3RpbmF0aW9uLCBjYWxsYmFjaykgeworICAgICAgICBjb25z
dCBjdXJyZW50RWxlbWVudElEID0gInRlc3QiICsgY3VycmVudFRlc3QrKzsKKyAgICAgICAgY29u
c3QgYW5jaG9yRWxlbWVudCA9IGNyZWF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50QW5jaG9yRWxl
bWVudChjdXJyZW50RWxlbWVudElELCBhZENhbXBhaWduSUQsIGFkRGVzdGluYXRpb24pOworICAg
ICAgICBvdXRwdXQuYXBwZW5kQ2hpbGQoYW5jaG9yRWxlbWVudCk7CisgICAgICAgIGFjdGl2YXRl
RWxlbWVudChjdXJyZW50RWxlbWVudElELCBjYWxsYmFjayk7CisgICAgfQorCisgICAgY29uc3Qg
dmFsaWRBZENhbXBhaWduSUQgPSAiMDMiOworICAgIGNvbnN0IHZhbGlkQWREZXN0aW5hdGlvbiA9
ICJodHRwOi8vd2Via2l0Lm9yZyI7CisgICAgY29uc3Qgc2FtZVNpdGUgPSBkb2N1bWVudC5sb2Nh
dGlvbi5vcmlnaW47CisgICAgY29uc3QgdGVzdENhc2VzID0gWworICAgICAgICBbIHZhbGlkQWRD
YW1wYWlnbklELCB2YWxpZEFkRGVzdGluYXRpb24gXSwKKyAgICAgICAgWyAiMTAwIiwgdmFsaWRB
ZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAvLyBUb28gbWFueSBjaGFyYWN0ZXJzLgorICAgICAg
ICBbICIxIiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAgIC8vIFRvbyBmZXcgY2hh
cmFjdGVycy4KKyAgICAgICAgWyAiOTgiLCB2YWxpZEFkRGVzdGluYXRpb24gXSwgICAgICAgICAg
ICAvLyBUb28gaGlnaCB2YWx1ZS4KKyAgICAgICAgWyAiLTEiLCB2YWxpZEFkRGVzdGluYXRpb24g
XSwgICAgICAgICAgICAvLyBOZWdhdGl2ZSB2YWx1ZS4KKyAgICAgICAgWyAiYWIiLCB2YWxpZEFk
RGVzdGluYXRpb24gXSwgICAgICAgICAgICAvLyBOb24tZGlnaXRzLgorICAgICAgICBbICLvo78x
IiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAgLy8gTm9uLUFTQ0lJLgorICAgICAg
ICBbICIgMSIsIHZhbGlkQWREZXN0aW5hdGlvbiBdLCAgICAgICAgICAgIC8vIExlYWRpbmcgc3Bh
Y2UuCisgICAgICAgIFsgIjEgIiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAgLy8g
VHJhaWxpbmcgc3BhY2UuCisgICAgICAgIFsgdmFsaWRBZENhbXBhaWduSUQsICJ3ZWJraXQub3Jn
IiBdLCAgICAgLy8gTWlzc2luZyBwcm90b2NvbC4KKyAgICAgICAgWyB2YWxpZEFkQ2FtcGFpZ25J
RCwgIjovL3dlYmtpdC5vcmciIF0sICAvLyBQYXJ0aWFsbHkgbWlzc2luZyBwcm90b2NvbC4KKyAg
ICAgICAgWyB2YWxpZEFkQ2FtcGFpZ25JRCwgIu+jv++jv++jvyIgXSwgICAgICAgICAgIC8vIE5v
bi1BU0NJSSBjaGFyYWN0ZXJzIGFzIGRlc3RpbmF0aW9uLgorICAgICAgICBbICIiLCB2YWxpZEFk
RGVzdGluYXRpb24gXSwgICAgICAgICAgICAgIC8vIEVtcHR5IGNhbXBhaWduIElELgorICAgICAg
ICBbIHZhbGlkQWRDYW1wYWlnbklELCAiIiBdLCAgICAgICAgICAgICAgIC8vIEVtcHR5IGRlc3Rp
bmF0aW9uLgorICAgICAgICBbIHZhbGlkQWRDYW1wYWlnbklELCBzYW1lU2l0ZSBdICAgICAgICAg
IC8vIFNhbWUtc2l0ZSBkZXN0aW5hdGlvbi4KKyAgICBdOworCisgICAgZnVuY3Rpb24gcnVuQWxs
VGVzdHMoKSB7CisgICAgICAgIGlmIChjdXJyZW50VGVzdCA8IHRlc3RDYXNlcy5sZW5ndGgpCisg
ICAgICAgICAgICBydW5PbmVUZXN0KHRlc3RDYXNlc1tjdXJyZW50VGVzdF1bMF0sIHRlc3RDYXNl
c1tjdXJyZW50VGVzdF1bMV0sIHJ1bkFsbFRlc3RzKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG91dHB1dCk7CisgICAgICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRp
cmVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdl
LXJlZGlyZWN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hN2Q4NjdmYzYyMDY4ODQ1ZDllZDJm
OWQ4OGE5MzI1M2IyMjUwNWE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91
Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBA
CitUZXN0cyB0aGF0IHRyaWdnZXJpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBjb252
ZXJzaW9ucyB0aHJvdWdoIGNyb3NzLXNpdGUgcmVkaXJlY3RzIGRvIG5vdCB3b3JrLgorCisKK1Vu
Y29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgorV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQgMQorU291cmNlOiAxMjcuMC4wLjEKK0Rlc3RpbmF0aW9uOiBsb2NhbGhv
c3QKK0NhbXBhaWduIElEOiAzCitObyBjb252ZXJzaW9uIGRhdGEuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNv
bnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZl
cnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTc3MWJkNjA2ZTM2MDY4MjIzMTIyOTAyNGU0MzQ5MDBjYzgyYTIyNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmli
dXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QuaHRtbApA
QCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVk
PXRydWUgXSAtLT4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9
IlVURi04Ij4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl
LXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0
cyB0aGF0IHRyaWdnZXJpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBjb252ZXJzaW9u
cyB0aHJvdWdoIGNyb3NzLXNpdGUgcmVkaXJlY3RzIGRvIG5vdCB3b3JrLjwvZGl2PgorPGEgaWQ9
InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1y
ZWRpcmVjdC5odG1sP3N0ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0
cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+
Cis8c2NyaXB0PgorICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVs
ZW1lbnQoZWxlbWVudElEKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoZWxlbWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNl
dExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBl
bGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlI
ZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0
ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5k
RmluaXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAg
ICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgeworICAgICAg
ICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWci
KTsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vbG9jYWxob3N0
Ojg0NDMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJz
aW9uT25JUEFkZHJlc3MucGhwP2NvbnZlcnNpb25EYXRhPTEyIjsKKyAgICAgICAgICAgICAgICBp
bWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5v
bmVycm9yID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikp
OworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKKyAgICAgICAgICAgICAgICAgICAgdGVhckRvd25B
bmRGaW5pc2goKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZl
cnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRp
b24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3ctZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmU0MWQyYmZmNWRkMzViNTlmYTUzYTI2MGU2NGRlYjhjYjQ1YmE5
NzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVj
dC1pbi1uZXctd2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0cmln
Z2VyaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgY29udmVyc2lvbnMgaW4gYSBuZXcg
d2luZG93LgorCisKK0NvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKK1dlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEKK1NvdXJjZTogMTI3LjAuMC4xCitEZXN0aW5h
dGlvbjogbG9jYWxob3N0CitDYW1wYWlnbiBJRDogMworQ29udmVyc2lvbiBkYXRhOiAxMgorQ29u
dmVyc2lvbiBwcmlvcml0eTogMworQ29udmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6IFdp
dGhpbiAyNC00OCBob3VycworQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJp
YnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93Lmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJp
YnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTcyMjMwMjZmZTZiY2FkYzJmMmE1ZmI1ZmQ4MjYxMWIxYTNlNmM5ZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWlu
LW5ldy13aW5kb3cuaHRtbApAQCAtMCwwICsxLDU5IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29u
dGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9
bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj5UZXN0cyB0cmlnZ2VyaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1l
bnQgY29udmVyc2lvbnMgaW4gYSBuZXcgd2luZG93LjwvZGl2PgorPGEgdGFyZ2V0PSJfYmxhbmsi
IHJlbD0ib3BlbmVyIiBpZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAw
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJ0QW5kUG9zdE1lc3NhZ2VC
YWNrLmh0bWwiIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9z
dDo4MDAwIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0Pgor
ICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVu
dElEKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxl
bWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVt
ZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNl
dFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZh
dGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJv
bWlzZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcmVjZWl2ZU1l
c3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5kYXRhID09PSAiRG9uZSIpIHsK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgp
OworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRG
aW5pc2goKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiUmVjZWl2ZWQgdW5rbm93biBtZXNzYWdlOiAiICsgZXZlbnQuZGF0YSk7CisgICAgICAgICAg
ICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVu
ZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgIHRlYXJEb3du
QW5kRmluaXNoKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICAgICAgICAgIGFjdGl2YXRlRWxl
bWVudCgidGFyZ2V0TGluayIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5u
ZXIuIjsKKyAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgIH0KKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10
aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252
ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODRiMjcyNGY0ZmI1NTllNTZjZDFkOWY0ZDFmZmM1OTVkMjRiNjRiMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgt
cHJpb3JpdHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRyaWdnZXJpbmcg
b2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBjb252ZXJzaW9ucyB3aXRoIHByaW9yaXR5Lgor
CisKK0NvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKK1dlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50IDEKK1NvdXJjZTogMTI3LjAuMC4xCitEZXN0aW5hdGlvbjogbG9j
YWxob3N0CitDYW1wYWlnbiBJRDogMworQ29udmVyc2lvbiBkYXRhOiAxMgorQ29udmVyc2lvbiBw
cmlvcml0eTogMworQ29udmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAyNC00
OCBob3VycworQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNv
bnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5Lmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNv
bnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTlmOTQ1MTBlY2M4MDQwZDk5Y2YyZjZkNjJmOGQ0ZDUzZWY5YjlmMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
YXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3Jp
dHkuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRh
IGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lk
dGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0
aW9uIj5UZXN0cyB0cmlnZ2VyaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgY29udmVy
c2lvbnMgd2l0aCBwcmlvcml0eS48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29u
dmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHkuaHRtbD9zdGVwVHdv
IiBhZGNhbXBhaWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+
TGluazwvYT48YnI+Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBwcmVw
YXJlVGVzdCgpOworCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewor
ICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7
CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZz
ZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBl
bGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2Vu
dGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVq
ZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAg
ICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2Nh
dGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAgICAgICAgICAgICBsZXQgaW1hZ2VF
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CisgICAgICAgICAgICAgICAg
aW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRh
dGE9MTImcHJpb3JpdHk9MDMiOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJw
aXhlbCI7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZhdGVDbGlja01lYXN1
cmVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBp
eGVsIikpOworICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAg
ICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChp
bWFnZUVsZW1lbnQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhY3Rp
dmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRl
eHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdl
LXJlZGlyZWN0LXdpdGhvdXQtcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRo
cm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlvcml0eS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzFmNDYyY2QwZWMzMGM2YTAzODI0MTVlMDM0ZTE2NzVmMWYwMjNiMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
YXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJp
b3JpdHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRyaWdnZXJpbmcgb2Yg
cHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBjb252ZXJzaW9ucyB3aXRob3V0IHByaW9yaXR5Lgor
CisKK0NvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKK1dlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50IDEKK1NvdXJjZTogMTI3LjAuMC4xCitEZXN0aW5hdGlvbjogbG9j
YWxob3N0CitDYW1wYWlnbiBJRDogMworQ29udmVyc2lvbiBkYXRhOiAxMgorQ29udmVyc2lvbiBw
cmlvcml0eTogMAorQ29udmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAyNC00
OCBob3VycworQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNv
bnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5Lmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9u
LWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzIzMGI2OWQ3OTRjNmUxYTViY2U2NGE5NjQ0ZGY2OWJlM2UzZWRhYQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhv
dXQtcHJpb3JpdHkuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1s
IGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8bWV0
YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNj
YWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1
blRlc3QsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0cmlnZ2VyaW5nIG9mIHBy
aXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgY29udmVyc2lvbnMgd2l0aG91dCBwcmlvcml0eS48L2Rp
dj4KKzxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJl
ZGlyZWN0LXdpdGhvdXQtcHJpb3JpdHkuaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMiIGFk
ZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Cis8ZGl2IGlk
PSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBwcmVwYXJlVGVzdCgpOworCisgICAgZnVu
Y3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJY
ID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAg
IHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAv
IDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigK
KyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91
dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAg
ICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAgICAgICApOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3Rl
cFR3byIpIHsKKyAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiaW1nIik7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJo
dHRwczovLzEyNy4wLjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9y
ZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTIiOworICAgICAgICAgICAg
ICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVt
ZW50Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGlu
ayIpKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7CisgICAgICAgICAgICAgICAgICAgIHRlYXJE
b3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7CisgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOworICAgICAg
ICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKKyAgICAg
ICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jbGVhci10aHJvdWdo
LXdlYnNpdGUtZGF0YS1yZW1vdmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY2xlYXItdGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVt
b3ZhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmNiNWQzNmI2MzRiYTBmNWI1YjU2NjczMWQw
MzMwMmRlM2M5MDdmMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY2xlYXItdGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3Zh
bC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUZXN0cyB0aGF0IGJvdGggdW5jb252ZXJ0
ZWQgYW5kIGNvbnZlcnRlZCBhdHRyaWJ1dGlvbnMgYXJlIGNsZWFyZWQgb24gd2Vic2l0ZSBkYXRh
IHJlbW92YWwuCisKKworCitObyBzdG9yZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudCBkYXRh
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9jbGVhci10aHJvdWdoLXdlYnNpdGUtZGF0YS1yZW1vdmFsLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NsZWFyLXRocm91Z2gtd2Vic2l0
ZS1kYXRhLXJlbW92YWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZTc0YWViYzNmMjFjNjA4NTE3ZTY0M2Q3
MDdhMTg5N2JmNzU3NmFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jbGVhci10aHJvdWdoLXdlYnNpdGUtZGF0YS1yZW1v
dmFsLmh0bWwKQEAgLTAsMCArMSw4MyBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50RW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0
YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9Indp
ZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+VGVzdHMgdGhhdCBib3RoIHVuY29udmVydGVkIGFuZCBjb252ZXJ0ZWQgYXR0cmlidXRp
b25zIGFyZSBjbGVhcmVkIG9uIHdlYnNpdGUgZGF0YSByZW1vdmFsLjwvZGl2PgorPGEgaWQ9InRh
cmdldExpbmsiPkxpbms8L2E+PGJyPgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KKzxzY3JpcHQ+
CisgICAgY29uc3QgcGF0aCA9ICIvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY2xlYXItdGhyb3Vn
aC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC5odG1sIjsKKyAgICBjb25zdCBjb25maWd1cmF0aW9uID0g
WworICAgICAgICB7CisgICAgICAgICAgICBocmVmOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiAr
IHBhdGggKyAiP3N0ZXBUd28iLAorICAgICAgICAgICAgYWRjYW1wYWlnbmlkOiAiMyIsCisgICAg
ICAgICAgICBhZGRlc3RpbmF0aW9uOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIgorICAgICAgICB9
LAorICAgICAgICB7CisgICAgICAgICAgICBocmVmOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiAr
IHBhdGggKyAiP3N0ZXBUaHJlZSIsCisgICAgICAgICAgICBhZGNhbXBhaWduaWQ6ICI0IiwKKyAg
ICAgICAgICAgIGFkZGVzdGluYXRpb246ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiCisgICAgICAg
IH0KKyAgICBdOworCisgICAgcHJlcGFyZVRlc3QoKTsKKworICAgIGZ1bmN0aW9uIGNvbmZpZ3Vy
ZUxpbmsoaW5kZXgpIHsKKyAgICAgICAgbGV0IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldExpbmsiKTsKKyAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRl
KCJocmVmIiwgY29uZmlndXJhdGlvbltpbmRleF0uaHJlZik7CisgICAgICAgIGxpbmtFbGVtZW50
LnNldEF0dHJpYnV0ZSgiYWRjYW1wYWlnbmlkIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRjYW1w
YWlnbmlkKTsKKyAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhZGRlc3RpbmF0aW9u
IiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRkZXN0aW5hdGlvbik7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJY
ID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAg
IHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAv
IDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigK
KyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91
dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAg
ICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAgICAgICApOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICIiKSB7
CisgICAgICAgICAgICAgICAgLy8gRmlyc3QgYWQgY2xpY2sgMTI3LjAuMC4xIOKAkz4gbG9jYWxo
b3N0LgorICAgICAgICAgICAgICAgIGNvbmZpZ3VyZUxpbmsoMCk7CisgICAgICAgICAgICAgICAg
YWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdp
bmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAgICAgICAgICAgICAv
LyBDb252ZXJ0IHRoZSBmaXJzdCBhZCBjbGljayB3aXRoIHByaW9yaXR5IDQsIHRoZW4gZG8gYSBy
ZXZlcnNlIGFkIGNsaWNrLgorICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQu
c3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVz
b3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZwcmlvcml0
eT0wNCI7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKKyAgICAg
ICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgICAgICAgICAgLy8gU2Vjb25kIGFkIGNsaWNrIGxvY2FsaG9zdCDigJM+IDEyNy4wLjAuMS4K
KyAgICAgICAgICAgICAgICAgICAgY29uZmlndXJlTGluaygxKTsKKyAgICAgICAgICAgICAgICAg
ICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAgICAgICAgfTsKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7Cisg
ICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFRo
cmVlIikgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuY2xlYXJQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCk7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRM
aW5rIikpOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRw
dXQiKS5pbm5lclRleHQgPSAiRkFJTCBVbmtub3duIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT0g
IiArIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggKyAiLiI7CisgICAgICAgICAgICAgICAgdGVhckRv
d25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBO
byB0ZXN0UnVubmVyLiI7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2Nv
bnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjFmMWFhMDQyYjEwMjczOTA0NjI3N2YxZDhiY2IwYzc5OWJkNmI1OTQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTUgQEAKK1Rlc3RzIHRoYXQgc3RvcmVkIGF0dHJpYnV0aW9ucyBjYW5ub3QgYmUg
Y29udmVydGVkIGluIGFuIGVwaGVtZXJhbCBzZXNzaW9uLgorCisKKworLS0tLS0tLS0KK0ZyYW1l
OiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitDb252ZXJzaW9uIG5vdCByZWNlaXZlZCAtIHRp
bWVkIG91dC4KKworVW5jb252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CitXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCitTb3VyY2U6IDEyNy4wLjAuMQorRGVzdGlu
YXRpb246IGxvY2FsaG9zdAorQ2FtcGFpZ24gSUQ6IDMKK05vIGNvbnZlcnNpb24gZGF0YS4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
Y29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRpc2FibGVk
LWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2MwNzg0NjYyYzUwNWM2YjFi
NjkxODA1NTkwODhiOGNmM2M5NjE5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29udmVyc2lvbi1kaXNhYmxlZC1pbi1l
cGhlbWVyYWwtc2Vzc2lvbi5odG1sCkBAIC0wLDAgKzEsODAgQEAKKzwhRE9DVFlQRSBodG1sPiA8
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgor
PGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAg
IDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRp
YWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVv
dXQocnVuVGVzdCwgMCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgc3RvcmVk
IGF0dHJpYnV0aW9ucyBjYW5ub3QgYmUgY29udmVydGVkIGluIGFuIGVwaGVtZXJhbCBzZXNzaW9u
LjwvZGl2PgorPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1z
ZXNzaW9uLmh0bWw/c3RlcFR3byIgYWRjYW1wYWlnbmlkPSIzIiBhZGRlc3RpbmF0aW9uPSJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4K
KzxzY3JpcHQ+CisgICAgY29uc3QgY3VycmVudFRpbWVNaWxsaXMgPSAobmV3IERhdGUoKSkuZ2V0
VGltZSgpOworICAgIGNvbnN0IGhpZ2hFbnRyb3B5Qml0cyA9IGN1cnJlbnRUaW1lTWlsbGlzIC0g
KE1hdGguZmxvb3IoY3VycmVudFRpbWVNaWxsaXMgLyAxMDAwMDAwKSAqIDEwMDAwMDApOworICAg
IGNvbnN0IG5vbmNlID0gaGlnaEVudHJvcHlCaXRzICsgIiIgKyBNYXRoLmZsb29yKE1hdGgucmFu
ZG9tKCkgKiAxMDApOworCisgICAgcHJlcGFyZVRlc3QoKTsKKworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
bnZlcnNpb25VUkxGb3JUZXN0aW5nKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwP25vbmNlPSIgKyBub25j
ZSk7CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7CisgICAgICAg
IHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKKyAgICAg
ICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRo
IC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQu
b2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBj
ZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4i
OworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYXBwZW5kSWZyYW1lKHVybCwgb25sb2Fk
Q2FsbGJhY2spIHsKKyAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSB1cmw7CisgICAg
ICAgIGlmIChvbmxvYWRDYWxsYmFjaykKKyAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2Fk
ID0gb25sb2FkQ2FsbGJhY2s7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZy
YW1lRWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYXBwZW5kQ29udmVyc2lvbkRhdGFJ
ZnJhbWVBbmRGaW5pc2goKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZhdGVDbGlja01l
YXN1cmVtZW50KCk7CisgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisKKyAgICAgICAgYXBwZW5kSWZyYW1lKCJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2dl
dENvbnZlcnNpb25EYXRhLnBocD90aW1lb3V0X21zPTEwMDAmbm9uY2U9IiArIG5vbmNlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgIH0pOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/
c3RlcFR3byIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFNob3VsZFN3YXBUb0Vw
aGVtZXJhbFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uKHRydWUpOworICAgICAgICAgICAgICAgIHdp
bmRvdy5sb2NhdGlvbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sP3N0ZXBU
aHJlZSI7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09
ICI/c3RlcFRocmVlIikgeworICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQu
c3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVz
b3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZub25jZT0i
ICsgbm9uY2U7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKKyAg
ICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFNob3VsZFN3YXBUb0RlZmF1bHRTZXNzaW9uT25O
ZXh0TmF2aWdhdGlvbih0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9u
ID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJz
aW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWw/c3RlcEZvdXIiOworICAgICAg
ICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChp
bWFnZUVsZW1lbnQpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2Vh
cmNoID09PSAiP3N0ZXBGb3VyIikgeworICAgICAgICAgICAgICAgIGFwcGVuZENvbnZlcnNpb25E
YXRhSWZyYW1lQW5kRmluaXNoKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmNvb2tpZSA9ICJjb29raWVTZXRBc0ZpcnN0UGFydHk9MTsgcGF0aD0vIjsK
KyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAg
IH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hdHRyaWJ1
dGlvbnMtcmVtb3ZlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb25zLXJlbW92ZWQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjhiM2UyYjhkMTJmYzJhZWFmYmU5MDI0OTIyNTM4ZTc4YmQyNTg3ZGUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb25zLXJlbW92ZWQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorVGVzdHMgZXhwaXJhdGlvbiBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50
LgorCisKKworTm8gc3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgZGF0YS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhw
aXJlZC1hdHRyaWJ1dGlvbnMtcmVtb3ZlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTdmMzAyNGMwMWEzNzFkNzRhMjc4MDIzNmMxOTVlNzBjMjYzNDhjZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvZXhwaXJlZC1hdHRyaWJ1dGlvbnMtcmVtb3ZlZC5odG1sCkBAIC0wLDAgKzEsNTMgQEAK
KzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmll
d3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hh
cnNldD0iVVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1k
ZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24i
PlRlc3RzIGV4cGlyYXRpb24gb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudC48L2Rpdj4KKzxh
IGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvZXhwaXJlZC1hdHRyaWJ1dGlvbnMtcmVtb3ZlZC5odG1sP3N0ZXBUd28iIGFk
Y2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5r
PC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHByZXBhcmVU
ZXN0KCk7CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7CisgICAg
ICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKKyAg
ICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdp
ZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1l
bnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJY
LCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3Rl
ZC4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICB9
CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9u
LnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubWFy
a1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICAgICAg
ICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7
CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4
NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lv
bi5waHA/Y29udmVyc2lvbkRhdGE9MTIiOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5p
ZCA9ICJwaXhlbCI7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKKyAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicGl4ZWwiKSk7CisgICAgICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Cisg
ICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGltYWdlRWxlbWVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOworICAgICAgICAgICAgfQorICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlu
bmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKKyAgICAgICAgfQorICAgIH0KKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvbkZpbGVQYXRoLnBo
cCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3Vy
Y2VzL2NvbnZlcnNpb25GaWxlUGF0aC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2NlOTQ3MjY2NTE1N2ZlZWIz
N2NmOWU1ZWQ1MWRjM2NiNWQ2N2FiZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25GaWxl
UGF0aC5waHAKQEAgLTAsMCArMSw5IEBACis8P3BocAorcmVxdWlyZV9vbmNlICcuLi8uLi9yZXNv
dXJjZXMvcG9ydGFiaWxpdHlMYXllci5waHAnOworCitpZiAoaXNzZXQoJF9HRVRbIm5vbmNlIl0p
KQorICAgICRjb252ZXJzaW9uRmlsZU5hbWUgPSAiL3ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29u
dmVyc2lvbiIgLiAkX0dFVFsibm9uY2UiXSAuICIudHh0IjsKK2Vsc2UKKyAgICAkY29udmVyc2lv
bkZpbGVOYW1lID0gIi9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24udHh0IjsKKyRj
b252ZXJzaW9uRmlsZVBhdGggPSBzeXNfZ2V0X3RlbXBfZGlyKCkgLiAkY29udmVyc2lvbkZpbGVO
YW1lOworPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJl
cG9ydC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVjMjAyNjljNzg0OTA2ZmZmNzQ3NDQ4YjM4ODFmNDA2Mzdh
YmMwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwCkBAIC0wLDAgKzEs
MzcgQEAKKzw/cGhwCityZXF1aXJlX29uY2UgJ2NvbnZlcnNpb25GaWxlUGF0aC5waHAnOworCisk
Y29udmVyc2lvbkZpbGUgPSBmb3BlbigkY29udmVyc2lvbkZpbGVQYXRoIC4gIi50bXAiLCAndycp
OworJGh0dHBIZWFkZXJzID0gJF9TRVJWRVI7CiskY29va2llc0ZvdW5kID0gZmFsc2U7Citmb3Jl
YWNoICgkaHR0cEhlYWRlcnMgYXMgJG5hbWUgPT4gJHZhbHVlKSB7CisgICAgaWYgKCRuYW1lID09
PSAiSFRUUF9IT1NUIikgeworICAgICAgICBmd3JpdGUoJGNvbnZlcnNpb25GaWxlLCAiJG5hbWU6
ICR2YWx1ZVxuIik7CisgICAgfSBlbHNlIGlmICgkbmFtZSA9PT0gIlJFUVVFU1RfVVJJIikgewor
ICAgICAgICAkcG9zaXRpb25PZk5vbmNlID0gc3RycG9zKCR2YWx1ZSwgIj9ub25jZT0iKTsKKyAg
ICAgICAgaWYgKCRwb3NpdGlvbk9mTm9uY2UgPT09IGZhbHNlKQorICAgICAgICAgICAgJG91dHB1
dFVSTCA9ICR2YWx1ZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgJG91dHB1dFVSTCA9IHN1
YnN0cigkdmFsdWUsIDAsICRwb3NpdGlvbk9mTm9uY2UpOworICAgICAgICBmd3JpdGUoJGNvbnZl
cnNpb25GaWxlLCAiJG5hbWU6ICRvdXRwdXRVUkxcbiIpOworICAgIH0gZWxzZSBpZiAoJG5hbWUg
PT09ICJIVFRQX0NPT0tJRSIpIHsKKyAgICAgICAgZndyaXRlKCRjb252ZXJzaW9uRmlsZSwgIkNv
b2tpZXMgaW4gY29udmVyc2lvbiByZXF1ZXN0OiAkdmFsdWVcbiIpOworICAgICAgICAkY29va2ll
c0ZvdW5kID0gdHJ1ZTsKKyAgICB9IGVsc2UgaWYgKCRuYW1lID09PSAiQ09OVEVOVF9UWVBFIikg
eworICAgICAgICBmd3JpdGUoJGNvbnZlcnNpb25GaWxlLCAiQ29udGVudCB0eXBlOiAkdmFsdWVc
biIpOworICAgIH0KK30KK2lmICghJGNvb2tpZXNGb3VuZCkgeworICAgIGZ3cml0ZSgkY29udmVy
c2lvbkZpbGUsICJObyBjb29raWVzIGluIGNvbnZlcnNpb24gcmVxdWVzdC5cbiIpOworfQorCisk
cmVxdWVzdEJvZHkgPSBmaWxlX2dldF9jb250ZW50cygncGhwOi8vaW5wdXQnKTsKK2Z3cml0ZSgk
Y29udmVyc2lvbkZpbGUsICJSZXF1ZXN0IGJvZHk6XG4kcmVxdWVzdEJvZHlcbiIpOworCitmY2xv
c2UoJGNvbnZlcnNpb25GaWxlKTsKK3JlbmFtZSgkY29udmVyc2lvbkZpbGVQYXRoIC4gIi50bXAi
LCAkY29udmVyc2lvbkZpbGVQYXRoKTsKKworaGVhZGVyKCJIVFRQLzEuMSAyMDAgT0siKTsKK3Nl
dGNvb2tpZSgiY29va2llU2V0SW5Db252ZXJzaW9uUmVwb3J0IiwgIjEiLCAwLCAiLyIpOworCis/
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9yZXNvdXJjZXMvY29udmVydEFuZFBvc3RNZXNzYWdlQmFjay5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVydEFu
ZFBvc3RNZXNzYWdlQmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlODE5M2ZhMTA2OTQ0NTkwZGY2ODJi
YTY0YjMzYWY1ODk3NTBiOTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJ0QW5kUG9zdE1lc3Nh
Z2VCYWNrLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5n
PSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdD4K
KyAgICAgICAgZnVuY3Rpb24gZmlyZUNvbnZlcnNpb25QaXhlbCgpIHsKKyAgICAgICAgICAgIGxl
dCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAgICAg
ICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNp
b25EYXRhPTEyJnByaW9yaXR5PTAzIjsKKyAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJw
aXhlbCI7CisgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInBpeGVsIikpOworICAgICAgICAgICAgICAgIHBvc3RNZXNzYWdlQmFjaygpOwor
ICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1h
Z2VFbGVtZW50KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHBvc3RNZXNzYWdlQmFj
aygpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cub3BlbmVyKSB7CisgICAgICAgICAgICAgICAg
d2luZG93Lm9wZW5lci5wb3N0TWVzc2FnZSgiRG9uZSIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAi
KTsKKyAgICAgICAgICAgICAgICB3aW5kb3cuY2xvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KGZp
cmVDb252ZXJzaW9uUGl4ZWwsIDApIj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHAgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRDb252
ZXJzaW9uRGF0YS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTVlMjIwNzE1YWZkNjdlMGI4ZWE4OTU2NzkyZjQ5
MGE0YmUwM2FjYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBocApAQCAt
MCwwICsxLDU0IEBACis8P3BocAorcmVxdWlyZV9vbmNlICdjb252ZXJzaW9uRmlsZVBhdGgucGhw
JzsKKworJG5vVGltZW91dCA9IFRydWU7CiskdGltZW91dE1zZWNzID0gMDsKK2lmIChpc3NldCgk
X0dFVFsndGltZW91dF9tcyddKSkgeworICAgICRub1RpbWVvdXQgPSBGYWxzZTsKKyAgICAkdGlt
ZW91dE1zZWNzID0gKGludCkgJF9HRVRbJ3RpbWVvdXRfbXMnXTsKK30KKworJGNvbnZlcnNpb25G
aWxlRm91bmQgPSBGYWxzZTsKK3doaWxlICgkbm9UaW1lb3V0IHx8ICR0aW1lb3V0TXNlY3MgPiAw
KSB7CisgICAgaWYgKGZpbGVfZXhpc3RzKCRjb252ZXJzaW9uRmlsZVBhdGgpKSB7CisgICAgICAg
ICRjb252ZXJzaW9uRmlsZUZvdW5kID0gVHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
ICRzbGVlcE1zZWNzID0gMTA7CisgICAgdXNsZWVwKCRzbGVlcE1zZWNzICogMTAwMCk7CisgICAg
aWYgKCEkbm9UaW1lb3V0KSB7CisgICAgICAgICR0aW1lb3V0TXNlY3MgLT0gJHNsZWVwTXNlY3M7
CisgICAgfQorICAgIC8vIGZpbGVfZXhpc3RzKCkgY2FjaGVzIHJlc3VsdHMsIHdlIHdhbnQgdG8g
aW52YWxpZGF0ZSB0aGUgY2FjaGUuCisgICAgY2xlYXJzdGF0Y2FjaGUoKTsKK30KKworCitlY2hv
ICI8aHRtbD48Ym9keT5cbiI7CisKK2lmICgkY29udmVyc2lvbkZpbGVGb3VuZCkgeworICAgIGVj
aG8gIkNvbnZlcnNpb24gcmVjZWl2ZWQuIjsKKyAgICAkY29udmVyc2lvbkZpbGUgPSBmb3Blbigk
Y29udmVyc2lvbkZpbGVQYXRoLCAncicpOworICAgIHdoaWxlICgkbGluZSA9IGZnZXRzKCRjb252
ZXJzaW9uRmlsZSkpIHsKKyAgICAgICAgZWNobyAiPGJyPiI7CisgICAgICAgIGVjaG8gdHJpbSgk
bGluZSk7CisgICAgfQorICAgIGVjaG8gIjxicj4iOworICAgIGZjbG9zZSgkY29udmVyc2lvbkZp
bGUpOworICAgIHVubGluaygkY29udmVyc2lvbkZpbGVQYXRoKTsKK30gZWxzZSB7CisgICAgZWNo
byAiQ29udmVyc2lvbiBub3QgcmVjZWl2ZWQgLSB0aW1lZCBvdXQuPGJyPiI7Cit9CisKK2lmIChp
c3NldCgkX0dFVFsnZW5kVGVzdCddKSkgeworICAgIGVjaG8gIjxzY3JpcHQ+IjsKKyAgICBlY2hv
ICJpZiAod2luZG93LnRlc3RSdW5uZXIpIHsiOworICAgIGVjaG8gIiAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsiOworICAgIGVjaG8gIiAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoZmFsc2UpOyI7CisgICAgZWNobyAiICAg
IHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVz
dGluZygnJyk7IjsKKyAgICBlY2hvICJ9IjsKKyAgICBlY2hvICI8L3NjcmlwdD4iOworfQorCitl
Y2hvICI8L2JvZHk+PC9odG1sPiI7Cis/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNp
b24ucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9y
ZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4YTM2NjcwM2Vk
OTMyMWJkZTI1M2QyYTBmNWFlNTc5OTZkZjAwZmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVj
dFRvQ29udmVyc2lvbi5waHAKQEAgLTAsMCArMSw5IEBACis8P3BocAoraGVhZGVyKCJIVFRQLzEu
MSAzMDIgRm91bmQiKTsKK2hlYWRlcigiQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUsIG5vLXN0b3Jl
LCBtdXN0LXJldmFsaWRhdGUiKTsKK2lmIChpc3NldCgkX0dFVFsiY29udmVyc2lvbkRhdGEiXSkg
JiYgaXNzZXQoJF9HRVRbInByaW9yaXR5Il0pKSB7CisgIGhlYWRlcigiTG9jYXRpb246IC8ud2Vs
bC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LyIgLiAkX0dFVFsiY29udmVyc2lvbkRh
dGEiXSAuICIvIiAuICRfR0VUWyJwcmlvcml0eSJdKTsKK30gZWxzZSBpZiAoaXNzZXQoJF9HRVRb
ImNvbnZlcnNpb25EYXRhIl0pKSB7CisgIGhlYWRlcigiTG9jYXRpb246IC8ud2VsbC1rbm93bi9w
cml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LyIgLiAkX0dFVFsiY29udmVyc2lvbkRhdGEiXSk7Cit9
Cis/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb25PbklQQWRkcmVzcy5waHAgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9y
ZWRpcmVjdFRvQ29udmVyc2lvbk9uSVBBZGRyZXNzLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODRhZWE4ZDQy
Nzk0OGMxOWFmZGFmNjFkMmViY2UxYmUzYjZiZjdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJl
Y3RUb0NvbnZlcnNpb25PbklQQWRkcmVzcy5waHAKQEAgLTAsMCArMSw4IEBACis8P3BocAoraGVh
ZGVyKCJIVFRQLzEuMCAzMDIgRm91bmQiKTsKK2lmIChpc3NldCgkX0dFVFsiY29udmVyc2lvbkRh
dGEiXSkgJiYgaXNzZXQoJF9HRVRbInByaW9yaXR5Il0pKSB7CisgIGhlYWRlcigiTG9jYXRpb246
IGh0dHBzOi8vMTI3LjAuMC4xOjgwMDAvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJl
bWVudC8iIC4gJF9HRVRbImNvbnZlcnNpb25EYXRhIl0gLiAiLyIgLiAkX0dFVFsicHJpb3JpdHki
XSk7Cit9IGVsc2UgaWYgKGlzc2V0KCRfR0VUWyJjb252ZXJzaW9uRGF0YSJdKSkgeworICBoZWFk
ZXIoIkxvY2F0aW9uOiBodHRwczovLzEyNy4wLjAuMTo4MDAwLy53ZWxsLWtub3duL3ByaXZhdGUt
Y2xpY2stbWVhc3VyZW1lbnQvIiAuICRfR0VUWyJjb252ZXJzaW9uRGF0YSJdKTsKK30KKz8+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L3Jlc291cmNlcy91dGlsLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9yZXNvdXJjZXMvdXRpbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41N2IzMzZhOTk5N2Y3ZWE5
ZjJkYmFlZThjY2E2NjFjOTRhZGQyMTc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvdXRpbC5qcwpAQCAt
MCwwICsxLDE3IEBACitmdW5jdGlvbiBwcmVwYXJlVGVzdCgpIHsKKyAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAg
IHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLnNldEFsbG93c0FueVNTTENlcnRpZmlj
YXRlKHRydWUpOworICAgIH0KK30KKworZnVuY3Rpb24gdGVhckRvd25BbmRGaW5pc2goKSB7Cisg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0QWxsb3dz
QW55U1NMQ2VydGlmaWNhdGUoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoZmFsc2UpOworICAgICAgICB0
ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rp
bmcoIiIpOworICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Nl
Y29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNv
bmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lOTBkMjZmNmFmZGJkM2VjZGMyMTNiZmUyM2EzNjNkZDE3NDdiY2EzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IGEgc2Vjb25kIGF0dHJp
YnV0aW9uIGNvbnZlcnNpb24gd2l0aCBoaWdoZXIgcHJpb3JpdHkgcmVwbGFjZXMgYW4gb2xkZXIg
d2l0aCBsb3dlciBwcmlvcml0eS4KKworCitDb252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJl
bWVudHM6CitXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCitTb3VyY2U6IDEyNy4w
LjAuMQorRGVzdGluYXRpb246IGxvY2FsaG9zdAorQ2FtcGFpZ24gSUQ6IDQKK0NvbnZlcnNpb24g
ZGF0YTogMTIKK0NvbnZlcnNpb24gcHJpb3JpdHk6IDQKK0NvbnZlcnNpb24gZWFybGllc3QgdGlt
ZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKK0NvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBm
YWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Nl
Y29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMTY5YWJhMDI1ODZmY2Y1N2VhOGQ5MDY5Mjg0NGYwOWJkZjA1NTYzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwK
QEAgLTAsMCArMSw5MiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVh
ZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQi
IGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxh
YmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2
IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBhIHNlY29uZCBhdHRyaWJ1dGlvbiBjb252ZXJz
aW9uIHdpdGggaGlnaGVyIHByaW9yaXR5IHJlcGxhY2VzIGFuIG9sZGVyIHdpdGggbG93ZXIgcHJp
b3JpdHkuPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluayI+TGluazwvYT48YnI+Cis8ZGl2IGlkPSJv
dXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBjb25zdCBwYXRoID0gIi9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9y
aXR5Lmh0bWwiOworICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBbCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGhyZWY6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiICsgcGF0aCArICI/c3RlcFR3byIs
CisgICAgICAgICAgICBhZGNhbXBhaWduaWQ6ICIzIiwKKyAgICAgICAgICAgIGFkZGVzdGluYXRp
b246ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGhyZWY6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiICsgcGF0aCArICI/c3RlcEZvdXIi
LAorICAgICAgICAgICAgYWRjYW1wYWlnbmlkOiAiNCIsCisgICAgICAgICAgICBhZGRlc3RpbmF0
aW9uOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIgorICAgICAgICB9CisgICAgXTsKKworICAgIHBy
ZXBhcmVUZXN0KCk7CisKKyAgICBmdW5jdGlvbiBjb25maWd1cmVMaW5rKGluZGV4KSB7CisgICAg
ICAgIGxldCBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5r
Iik7CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiaHJlZiIsIGNvbmZpZ3VyYXRp
b25baW5kZXhdLmhyZWYpOworICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFkY2Ft
cGFpZ25pZCIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmFkY2FtcGFpZ25pZCk7CisgICAgICAgIGxp
bmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRkZXN0aW5hdGlvbiIsIGNvbmZpZ3VyYXRpb25baW5k
ZXhdLmFkZGVzdGluYXRpb24pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVu
dChlbGVtZW50SUQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChlbGVtZW50SUQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVm
dCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1l
bnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBl
ci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAi
RkFJTCBQcm9taXNlIHJlamVjdGVkLiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5p
c2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAg
IGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiIikgeworICAgICAgICAgICAgICAgIC8v
IEZpcnN0IGFkIGNsaWNrIDEyNy4wLjAuMSDigJM+IGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAg
ICBjb25maWd1cmVMaW5rKDApOworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFy
Z2V0TGluayIpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNo
ID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgZmlyc3Qg
YWQgY2xpY2sgd2l0aCBwcmlvcml0eSAzIGFuZCBuYXZpZ2F0ZSBiYWNrIHRvIDEyNy4wLjAuMS4K
KyAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaW1nIik7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEy
Ny4wLjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRv
Q29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImcHJpb3JpdHk9MDMiOworICAgICAgICAg
ICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7CisgICAgICAgICAgICAgICAgaW1hZ2VF
bGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiArIHBhdGggKyAiP3N0
ZXBUaHJlZSI7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdp
bmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFRocmVlIikgeworICAgICAgICAgICAgICAg
IC8vIFNlY29uZCBhZCBjbGljayAxMjcuMC4wLjEg4oCTPiBsb2NhbGhvc3QuCisgICAgICAgICAg
ICAgICAgY29uZmlndXJlTGluaygxKTsKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQo
InRhcmdldExpbmsiKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNl
YXJjaCA9PT0gIj9zdGVwRm91ciIpIHsKKyAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBz
ZWNvbmQgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSA0IGFuZCBmaW5pc2guCisgICAgICAgICAgICAg
ICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAg
ICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhw
P2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PTA0IjsKKyAgICAgICAgICAgICAgICBpbWFnZUVs
ZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9y
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCgpOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5
LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOworICAg
ICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJwaXhlbCIpKTsKKyAgICAgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5p
c2goKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJG
QUlMIFVua25vd24gd2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PSAiICsgd2luZG93LmxvY2F0aW9u
LnNlYXJjaCArICIuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAg
ICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKKyAg
ICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0
cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmli
dXRpb24tY29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmMzN2YzMThmYzc2OWFmMWU2YzE5NTc1ZDUwODRjMDI1NzUyZWM2ZGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Nl
Y29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCBhIHNlY29uZCBhdHRyaWJ1dGlvbiBjb252
ZXJzaW9uIHdpdGggbG93ZXIgcHJpb3JpdHkgZG9lcyBub3QgcmVwbGFjZSBhbiBvbGRlciB3aXRo
IGhpZ2hlciBwcmlvcml0eS4KKworCitDb252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVu
dHM6CitXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCitTb3VyY2U6IDEyNy4wLjAu
MQorRGVzdGluYXRpb246IGxvY2FsaG9zdAorQ2FtcGFpZ24gSUQ6IDMKK0NvbnZlcnNpb24gZGF0
YTogMTIKK0NvbnZlcnNpb24gcHJpb3JpdHk6IDQKK0NvbnZlcnNpb24gZWFybGllc3QgdGltZSB0
byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKK0NvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxz
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHkuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25k
LWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjkyNWZhYjIxODZjNDg3NjEwZDEzY2JmMDY2M2U5Yjg2NDU2OWI1NQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vj
b25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwKQEAgLTAs
MCArMSw5MiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNl
RmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAg
ICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRl
bnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5v
Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBhIHNlY29uZCBhdHRyaWJ1dGlvbiBjb252ZXJzaW9uIHdp
dGggbG93ZXIgcHJpb3JpdHkgZG9lcyBub3QgcmVwbGFjZSBhbiBvbGRlciB3aXRoIGhpZ2hlciBw
cmlvcml0eS48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRMaW5rIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9
Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0PgorICAgIGNvbnN0IHBhdGggPSAiL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlv
cml0eS5odG1sIjsKKyAgICBjb25zdCBjb25maWd1cmF0aW9uID0gWworICAgICAgICB7CisgICAg
ICAgICAgICBocmVmOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiArIHBhdGggKyAiP3N0ZXBUd28i
LAorICAgICAgICAgICAgYWRjYW1wYWlnbmlkOiAiMyIsCisgICAgICAgICAgICBhZGRlc3RpbmF0
aW9uOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIgorICAgICAgICB9LAorICAgICAgICB7CisgICAg
ICAgICAgICBocmVmOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiArIHBhdGggKyAiP3N0ZXBGb3Vy
IiwKKyAgICAgICAgICAgIGFkY2FtcGFpZ25pZDogIjQiLAorICAgICAgICAgICAgYWRkZXN0aW5h
dGlvbjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKKyAgICAgICAgfQorICAgIF07CisKKyAgICBw
cmVwYXJlVGVzdCgpOworCisgICAgZnVuY3Rpb24gY29uZmlndXJlTGluayhpbmRleCkgeworICAg
ICAgICBsZXQgbGlua0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGlu
ayIpOworICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImhyZWYiLCBjb25maWd1cmF0
aW9uW2luZGV4XS5ocmVmKTsKKyAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhZGNh
bXBhaWduaWQiLCBjb25maWd1cmF0aW9uW2luZGV4XS5hZGNhbXBhaWduaWQpOworICAgICAgICBs
aW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFkZGVzdGluYXRpb24iLCBjb25maWd1cmF0aW9uW2lu
ZGV4XS5hZGRlc3RpbmF0aW9uKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1l
bnQoZWxlbWVudElEKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoZWxlbWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExl
ZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVt
ZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxw
ZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0g
IkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmlu
aXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAg
ICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIiIpIHsKKyAgICAgICAgICAgICAgICAv
LyBGaXJzdCBhZCBjbGljayAxMjcuMC4wLjEg4oCTPiBsb2NhbGhvc3QuCisgICAgICAgICAgICAg
ICAgY29uZmlndXJlTGluaygwKTsKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRh
cmdldExpbmsiKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJj
aCA9PT0gIj9zdGVwVHdvIikgeworICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIGZpcnN0
IGFkIGNsaWNrIHdpdGggcHJpb3JpdHkgNCBhbmQgbmF2aWdhdGUgYmFjayB0byAxMjcuMC4wLjEu
CisgICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImltZyIpOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8x
MjcuMC4wLjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RU
b0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PTA0IjsKKyAgICAgICAg
ICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICAgICAgICAgIGltYWdl
RWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5ocmVmID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgKyBwYXRoICsgIj9z
dGVwVGhyZWUiOworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3
aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUaHJlZSIpIHsKKyAgICAgICAgICAgICAg
ICAvLyBTZWNvbmQgYWQgY2xpY2sgMTI3LjAuMC4xIOKAkz4gbG9jYWxob3N0LgorICAgICAgICAg
ICAgICAgIGNvbmZpZ3VyZUxpbmsoMSk7CisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50
KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5z
ZWFyY2ggPT09ICI/c3RlcEZvdXIiKSB7CisgICAgICAgICAgICAgICAgLy8gQ29udmVydCB0aGUg
c2Vjb25kIGFkIGNsaWNrIHdpdGggcHJpb3JpdHkgMyBhbmQgZmluaXNoLgorICAgICAgICAgICAg
ICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAg
ICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBo
cD9jb252ZXJzaW9uRGF0YT0xMiZwcmlvcml0eT0wMyI7CisgICAgICAgICAgICAgICAgaW1hZ2VF
bGVtZW50LmlkID0gInBpeGVsIjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJv
ciA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKKyAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicGl4ZWwiKSk7CisgICAgICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmlu
aXNoKCk7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAi
RkFJTCBVbmtub3duIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT0gIiArIHdpbmRvdy5sb2NhdGlv
bi5zZWFyY2ggKyAiLiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7Cisg
ICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNv
bnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRo
LWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDBhNGZmZWVkNmRmYTgy
ZTk4MDNmNmY2ZDEyN2E5NjQ5OGYzYjgwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0
aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRo
YXQgdGhlIGF0dHJpYnV0aW9uIGlzIHVwZGF0ZWQgaWYgaXQgZ2V0cyBhIHNlY29uZCBjb252ZXJz
aW9uIHdpdGggaGlnaGVyIHByaW9yaXR5LgorCisKK0NvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1l
YXN1cmVtZW50czoKK1dlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEKK1NvdXJjZTog
MTI3LjAuMC4xCitEZXN0aW5hdGlvbjogbG9jYWxob3N0CitDYW1wYWlnbiBJRDogMworQ29udmVy
c2lvbiBkYXRhOiAxMgorQ29udmVyc2lvbiBwcmlvcml0eTogNAorQ29udmVyc2lvbiBlYXJsaWVz
dCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAyNC00OCBob3VycworQ29udmVyc2lvbiByZXF1ZXN0IHNl
bnQ6IGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1j
b252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE4YjM4YTk0
MDZiY2E5YTdlYmYzNDFiMjViMTE5MjQ2Mjg0MzA0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNp
b24td2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbApAQCAtMCwwICsxLDg1IEBACis8IURPQ1RZUEUg
aHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUg
XSAtLT4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRo
LCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIv
anMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJz
ZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0
IHRoZSBhdHRyaWJ1dGlvbiBpcyB1cGRhdGVkIGlmIGl0IGdldHMgYSBzZWNvbmQgY29udmVyc2lv
biB3aXRoIGhpZ2hlciBwcmlvcml0eS48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRMaW5rIj5MaW5rPC9h
Pjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0PgorICAgIGNvbnN0IHBhdGgg
PSAiL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVy
LXByaW9yaXR5Lmh0bWwiOworICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBbCisgICAgICAgIHsK
KyAgICAgICAgICAgIGhyZWY6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiICsgcGF0aCArICI/c3Rl
cFR3byIsCisgICAgICAgICAgICBhZGNhbXBhaWduaWQ6ICIzIiwKKyAgICAgICAgICAgIGFkZGVz
dGluYXRpb246ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiCisgICAgICAgIH0KKyAgICBdOworCisg
ICAgcHJlcGFyZVRlc3QoKTsKKworICAgIGZ1bmN0aW9uIGNvbmZpZ3VyZUxpbmsoaW5kZXgpIHsK
KyAgICAgICAgbGV0IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dExpbmsiKTsKKyAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJocmVmIiwgY29uZmln
dXJhdGlvbltpbmRleF0uaHJlZik7CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgi
YWRjYW1wYWlnbmlkIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRjYW1wYWlnbmlkKTsKKyAgICAg
ICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhZGRlc3RpbmF0aW9uIiwgY29uZmlndXJhdGlv
bltpbmRleF0uYWRkZXN0aW5hdGlvbik7CisgICAgfQorCisgICAgZnVuY3Rpb24gYWN0aXZhdGVF
bGVtZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZz
ZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0g
ZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJ
SGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4
dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFu
ZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGNvbnZlcnQocHJpb3JpdHksIGNhbGxiYWNrKSB7CisgICAgICAgIGxldCBwaXhlbEVsZW1l
bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKTsKKyAgICAgICAgaWYgKHBpeGVs
RWxlbWVudCkKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocGl4ZWxFbGVt
ZW50KTsKKworICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaW1nIik7CisgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6
ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNp
b24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PSIgKyBwcmlvcml0eTsKKyAgICAgICAg
aW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKKyAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3Ig
PSBjYWxsYmFjazsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1l
bnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gg
PT09ICIiKSB7CisgICAgICAgICAgICAgICAgLy8gQWQgY2xpY2sgMTI3LjAuMC4xIOKAkz4gbG9j
YWxob3N0LgorICAgICAgICAgICAgICAgIGNvbmZpZ3VyZUxpbmsoMCk7CisgICAgICAgICAgICAg
ICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAgICB9IGVsc2UgaWYg
KHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAgICAgICAgICAg
ICAvLyBDb252ZXJ0IHRoZSBhZCBjbGljayB3aXRoIHByaW9yaXR5IDMuCisgICAgICAgICAgICAg
ICAgY29udmVydCgiMDMiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQ29u
dmVydCB0aGUgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSA0LgorICAgICAgICAgICAgICAgICAgICBj
b252ZXJ0KCIwNCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldExpbmsiKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92
ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgVW5r
bm93biB3aW5kb3cubG9jYXRpb24uc2VhcmNoID09ICIgKyB3aW5kb3cubG9jYXRpb24uc2VhcmNo
ICsgIi4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9u
LXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXBy
aW9yaXR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iM2Y1ZGNkODk0YzA0ODM1N2M5MTgzZmY2
MDA0MTY1MzJkYjgyYjRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXBy
aW9yaXR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHRoZSBhdHRy
aWJ1dGlvbiBpcyBub3QgdXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGNvbnZlcnNpb24gd2l0
aCBsb3dlciBwcmlvcml0eS4KKworCitDb252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVu
dHM6CitXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCitTb3VyY2U6IDEyNy4wLjAu
MQorRGVzdGluYXRpb246IGxvY2FsaG9zdAorQ2FtcGFpZ24gSUQ6IDMKK0NvbnZlcnNpb24gZGF0
YTogMTIKK0NvbnZlcnNpb24gcHJpb3JpdHk6IDQKK0NvbnZlcnNpb24gZWFybGllc3QgdGltZSB0
byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKK0NvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxz
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9u
LXdpdGgtbG93ZXItcHJpb3JpdHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzk2MmM4YjQyNGQ0Mjk0Yjhi
YzE3ZjQ5YWJkY2I5MzIxMTcwOTI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxv
d2VyLXByaW9yaXR5Lmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRt
bCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1l
dGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1z
Y2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChy
dW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCB0aGUgYXR0cmli
dXRpb24gaXMgbm90IHVwZGF0ZWQgaWYgaXQgZ2V0cyBhIHNlY29uZCBjb252ZXJzaW9uIHdpdGgg
bG93ZXIgcHJpb3JpdHkuPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluayI+TGluazwvYT48YnI+Cis8
ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBjb25zdCBwYXRoID0gIi9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5
Lmh0bWwiOworICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBbCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGhyZWY6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiICsgcGF0aCArICI/c3RlcFR3byIsCisg
ICAgICAgICAgICBhZGNhbXBhaWduaWQ6ICIzIiwKKyAgICAgICAgICAgIGFkZGVzdGluYXRpb246
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiCisgICAgICAgIH0KKyAgICBdOworCisgICAgcHJlcGFy
ZVRlc3QoKTsKKworICAgIGZ1bmN0aW9uIGNvbmZpZ3VyZUxpbmsoaW5kZXgpIHsKKyAgICAgICAg
bGV0IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKTsK
KyAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJocmVmIiwgY29uZmlndXJhdGlvbltp
bmRleF0uaHJlZik7CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRjYW1wYWln
bmlkIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRjYW1wYWlnbmlkKTsKKyAgICAgICAgbGlua0Vs
ZW1lbnQuc2V0QXR0cmlidXRlKCJhZGRlc3RpbmF0aW9uIiwgY29uZmlndXJhdGlvbltpbmRleF0u
YWRkZXN0aW5hdGlvbik7CisgICAgfQorCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVs
ZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsg
ZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5v
ZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFj
dGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlM
IFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgp
OworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNvbnZl
cnQocHJpb3JpdHksIGNhbGxiYWNrKSB7CisgICAgICAgIGxldCBwaXhlbEVsZW1lbnQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKTsKKyAgICAgICAgaWYgKHBpeGVsRWxlbWVudCkK
KyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocGl4ZWxFbGVtZW50KTsKKwor
ICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7
CisgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2Nv
bnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PSIgKyBwcmlvcml0eTsKKyAgICAgICAgaW1hZ2VFbGVt
ZW50LmlkID0gInBpeGVsIjsKKyAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBjYWxsYmFj
azsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICIiKSB7
CisgICAgICAgICAgICAgICAgLy8gQWQgY2xpY2sgMTI3LjAuMC4xIOKAkz4gbG9jYWxob3N0Lgor
ICAgICAgICAgICAgICAgIGNvbmZpZ3VyZUxpbmsoMCk7CisgICAgICAgICAgICAgICAgYWN0aXZh
dGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5s
b2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAgICAgICAgICAgICAvLyBDb252
ZXJ0IHRoZSBhZCBjbGljayB3aXRoIHByaW9yaXR5IDQuCisgICAgICAgICAgICAgICAgY29udmVy
dCgiMDQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQ29udmVydCB0aGUg
YWQgY2xpY2sgd2l0aCBwcmlvcml0eSAzLgorICAgICAgICAgICAgICAgICAgICBjb252ZXJ0KCIw
MyIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1w
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsi
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgVW5rbm93biB3aW5k
b3cubG9jYXRpb24uc2VhcmNoID09ICIgKyB3aW5kb3cubG9jYXRpb24uc2VhcmNoICsgIi4iOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91
dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKKyAgICAgICAgfQorICAg
IH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZl
cnNpb24tcmVxdWVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hY2UyMDc2ODUyZmZkOGZhNzNkZWM4YWY3YjhhMWQyMGIx
MTczYTFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwyNyBAQAorVGVzdHMgc2VuZGluZyBvZiBwcml2YXRlIGNsaWNr
IG1lYXN1cmVtZW50IHJlcXVlc3RzIGFmdGVyIGEgY29udmVyc2lvbi4gQWxzbyB0ZXN0cyB0aGF0
IGNvb2tpZXMgYXJlIG5vdCBzZW50IGluIHRob3NlIHJlcXVlc3RzIGFuZCBjb29raWVzIGFyZSBu
b3QgYWNjZXB0ZWQgaW4gdGhlIHJlc3BvbnNlcy4KKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwh
LS1mcmFtZTEtLT4nCistLS0tLS0tLQorQ29va2llcyBhcmU6IGNvb2tpZVNldEFzRmlyc3RQYXJ0
eSA9IDEKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitDb252
ZXJzaW9uIHJlY2VpdmVkLgorSFRUUF9IT1NUOiAxMjcuMC4wLjE6ODAwMAorQ29udGVudCB0eXBl
OiBhcHBsaWNhdGlvbi9qc29uCitSRVFVRVNUX1VSSTogL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocAorTm8gY29va2llcyBpbiBjb252ZXJzaW9u
IHJlcXVlc3QuCitSZXF1ZXN0IGJvZHk6Cit7ImNvbnRlbnQtdHlwZSI6ImNsaWNrIiwiY29udGVu
dC1zaXRlIjoiMTI3LjAuMC4xIiwiY29udGVudC1pZCI6MywiY29udmVyc2lvbi1zaXRlIjoibG9j
YWxob3N0IiwiY29udmVyc2lvbi1kYXRhIjoxMiwicmVwb3J0LXZlcnNpb24iOjF9CisKKworLS0t
LS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCitDb29raWVzIGFyZTogY29v
a2llU2V0QXNGaXJzdFBhcnR5ID0gMQorCitObyBzdG9yZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJl
bWVudCBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJp
YnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkNjVkMDdjN2UwZDkz
YjgzODBiZWVhYzRlNzM3Mjk3YzAyMjYwZDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmlidXRpb24tY29u
dmVyc2lvbi1yZXF1ZXN0Lmh0bWwKQEAgLTAsMCArMSw4MCBAQAorPCFET0NUWVBFIGh0bWw+IDwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8
aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAg
PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlh
bC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91
dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgc2VuZGluZyBvZiBw
cml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IHJlcXVlc3RzIGFmdGVyIGEgY29udmVyc2lvbi4gQWxz
byB0ZXN0cyB0aGF0IGNvb2tpZXMgYXJlIG5vdCBzZW50IGluIHRob3NlIHJlcXVlc3RzIGFuZCBj
b29raWVzIGFyZSBub3QgYWNjZXB0ZWQgaW4gdGhlIHJlc3BvbnNlcy48L2Rpdj4KKzxhIGlkPSJ0
YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbD9zdGVwVHdvIiBh
ZGNhbXBhaWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGlu
azwvYT48YnI+Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBjb25zdCBj
dXJyZW50VGltZU1pbGxpcyA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7CisgICAgY29uc3QgaGln
aEVudHJvcHlCaXRzID0gY3VycmVudFRpbWVNaWxsaXMgLSAoTWF0aC5mbG9vcihjdXJyZW50VGlt
ZU1pbGxpcyAvIDEwMDAwMDApICogMTAwMDAwMCk7CisgICAgY29uc3Qgbm9uY2UgPSBoaWdoRW50
cm9weUJpdHMgKyAiIiArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMCk7CisKKyAgICBw
cmVwYXJlVGVzdCgpOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGlu
Zyh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
bnZlcnNpb25VUkxGb3JUZXN0aW5nKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwP25vbmNlPSIgKyBub25j
ZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewor
ICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7
CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZz
ZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBl
bGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2Vu
dGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVq
ZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAg
ICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFwcGVuZElmcmFtZSh1cmws
IG9ubG9hZENhbGxiYWNrKSB7CisgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gdXJs
OworICAgICAgICBpZiAob25sb2FkQ2FsbGJhY2spCisgICAgICAgICAgICBpZnJhbWVFbGVtZW50
Lm9ubG9hZCA9IG9ubG9hZENhbGxiYWNrOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGlmcmFtZUVsZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFwcGVuZENvbnZlcnNp
b25EYXRhSWZyYW1lQW5kRmluaXNoKCkgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCgpOworICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOworICAgICAgICBkb2N1bWVudC5i
b2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKKworICAg
ICAgICBhcHBlbmRJZnJhbWUoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9jb29raWVzL3Jlc291cmNl
cy9lY2hvLWNvb2tpZXMucGhwIik7CisgICAgICAgIGFwcGVuZElmcmFtZSgiaHR0cDovLzEyNy4w
LjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRDb252ZXJzaW9u
RGF0YS5waHA/dGltZW91dF9tcz0yMDAwJm5vbmNlPSIgKyBub25jZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICBhcHBlbmRJZnJhbWUoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9jb29raWVzL3Jl
c291cmNlcy9lY2hvLWNvb2tpZXMucGhwIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
dGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBU
d28iKSB7CisgICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImltZyIpOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0
cHM6Ly8xMjcuMC4wLjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVk
aXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJm5vbmNlPSIgKyBub25jZTsK
KyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICAgICAg
ICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIGFwcGVuZENvbnZlcnNpb25EYXRhSWZyYW1lQW5kRmluaXNoKCk7CisgICAgICAgICAgICAg
ICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxl
bWVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmNv
b2tpZSA9ICJjb29raWVTZXRBc0ZpcnN0UGFydHk9MTsgcGF0aD0vIjsKKyAgICAgICAgICAgICAg
ICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5p
bm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAgIH0KKyAgICB9Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNl
c3Npb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9zdG9yZS1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTJhOWJlODgwMzNiMTQ1ZDFhOTU1NGEzZWFhNWRmY2FiMzQ4NzUxYgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorVGVzdHMgdGhhdCBzdG9yYWdlIG9mIHByaXZhdGUgY2xpY2sgbWVh
c3VyZW1lbnQgaXMgZGlzYWJsZWQgaW4gZXBoZW1lcmFsIHNlc3Npb25zLgorCisKKworTm8gc3Rv
cmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtZGlzYWJsZWQtaW4t
ZXBoZW1lcmFsLXNlc3Npb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kM2U4MmQ1Yzk4ZjMwMmI0MTNjYTE4MTg3MjQ1ZWYwZjBiNjQ1Y2ZhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9zdG9yZS1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sCkBAIC0wLDAgKzEs
NDYgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVl
IHVzZUVwaGVtZXJhbFNlc3Npb249dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBs
YW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEg
bmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2Fs
ZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5U
ZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBzdG9yYWdlIG9mIHBy
aXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgaXMgZGlzYWJsZWQgaW4gZXBoZW1lcmFsIHNlc3Npb25z
LjwvZGl2PgorPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lv
bi5odG1sP3N0ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2Ny
aXB0PgorICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQo
ZWxlbWVudElEKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoZWxlbWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQg
KyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50
Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIu
YWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24g
KCkgeworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZB
SUwgUHJvbWlzZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNo
KCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBp
ZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgeworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0TGluayIpKTsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdl
dExpbmsiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0
UnVubmVyLiI7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvc3RvcmUtcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xp
Y2stbWVhc3VyZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzOGIxMGVlNWRlODA2NzUx
ZmI3YzA0ZjM1ZGJhZWQwM2E5NzMxMTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xpY2stbWVh
c3VyZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdHMgc3RvcmFnZSBvZiBw
cml2YXRlIGNsaWNrIG1lYXN1cmVtZW50LgorCisKK1VuY29udmVydGVkIFByaXZhdGUgQ2xpY2sg
TWVhc3VyZW1lbnRzOgorV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQorU291cmNl
OiAxMjcuMC4wLjEKK0Rlc3RpbmF0aW9uOiBsb2NhbGhvc3QKK0NhbXBhaWduIElEOiAzCitObyBj
b252ZXJzaW9uIGRhdGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtcHJp
dmF0ZS1jbGljay1tZWFzdXJlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlYWU2ZTkzYTg3MWRhY2Uz
NTlkMGVmOTM1MGNlODhkYzFiNjBmZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xpY2stbWVh
c3VyZW1lbnQuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sIGxh
bmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8bWV0YSBu
YW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxl
PTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJj
ZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRl
c3QsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyBzdG9yYWdlIG9mIHByaXZhdGUg
Y2xpY2sgbWVhc3VyZW1lbnQuPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xp
Y2stbWVhc3VyZW1lbnQuaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMiIGFkZGVzdGluYXRp
b249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Cis8ZGl2IGlkPSJvdXRwdXQi
PjwvZGl2PgorPHNjcmlwdD4KKyAgICBwcmVwYXJlVGVzdCgpOworCisgICAgZnVuY3Rpb24gYWN0
aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVu
dC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50
ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAg
ICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAg
ICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlu
bmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFy
RG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAg
IGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgp
OworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRG
aW5pc2goKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYWN0aXZhdGVF
bGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0g
IkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9vdmVy
cmlkZVNldHRpbmctQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctQWRDbGlja0F0
dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDFmMTU0NDkwZTUwYzkzZTljOGE0NTdiYjA1MzZlYWRjNGYzZTg1ZDUuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9k
ZUVuYWJsZWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1DT05T
T0xFIE1FU1NBR0U6IFtBZCBDbGljayBBdHRyaWJ1dGlvbl0gVHVybmVkIERlYnVnIE1vZGUgb24u
Ci1UZXN0cyBmb3IgdGhlIFBhZ2Uub3ZlcnJpZGVTZXR0aW5nIGNvbW1hbmQuCi0KLQotPT0gUnVu
bmluZyB0ZXN0IHN1aXRlOiBQYWdlLm92ZXJyaWRlU2V0dGluZwotLS0gUnVubmluZyB0ZXN0IGNh
c2U6IFBhZ2Uub3ZlcnJpZGVTZXR0aW5nLkFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJs
ZWQKLUVuYWJsaW5nIGFkIGNsaWNrIGF0dHJpYnV0aW9uIGRlYnVnIG1vZGUuLi4KLVBBU1M6IFNo
b3VsZCBicm9hZGNhc3QgYXQgbGVhc3Qgb25lIGNvbnNvbGUgbWVzc2FnZS4KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLUFkQ2xpY2tBdHRy
aWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdl
L292ZXJyaWRlU2V0dGluZy1BZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhZGYxMWQ3YzFjMTVmNDhhYTQzMDVlMTA0
NGY3NzU2NDk2ZWVkODIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLUFkQ2xpY2tB
dHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIGxldCBzdWl0ZSA9IEluc3Bl
Y3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUGFnZS5vdmVycmlkZVNldHRpbmciKTsKLQotICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAgICAgbmFtZTogIlBhZ2Uub3ZlcnJpZGVTZXR0aW5n
LkFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQiLAotICAgICAgICBkZXNjcmlwdGlv
bjogIlRlc3QgdGhhdCBjaGFuZ2luZyB3aGV0aGVyIGFkIGNsaWNrIGF0dHJpYnV0aW9uIGRlYnVn
IG1vZGUgaXMgZW5hYmxlZCBoYXMgYW4gZWZmZWN0LiIsCi0gICAgICAgIHRlc3QocmVzb2x2ZSwg
cmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgbGlzdGVuZXIgPSBXSS5jb25zb2xlTWFuYWdlci5h
ZGRFdmVudExpc3RlbmVyKFdJLkNvbnNvbGVNYW5hZ2VyLkV2ZW50Lk1lc3NhZ2VBZGRlZCwgKGV2
ZW50KSA9PiB7Ci0gICAgICAgICAgICAgICAgbGV0IHttZXNzYWdlfSA9IGV2ZW50LmRhdGE7Ci0g
ICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2Uuc291cmNlICE9PSBXSS5Db25zb2xlTWVzc2FnZS5N
ZXNzYWdlU291cmNlLkFkQ2xpY2tBdHRyaWJ1dGlvbikKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKCJTaG91bGQgYnJvYWRj
YXN0IGF0IGxlYXN0IG9uZSBjb25zb2xlIG1lc3NhZ2UuIik7Ci0KLSAgICAgICAgICAgICAgICBX
SS5jb25zb2xlTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNvbnNvbGVNYW5hZ2VyLkV2
ZW50Lk1lc3NhZ2VBZGRlZCwgbGlzdGVuZXIpOwotICAgICAgICAgICAgICAgIHJlc29sdmUoKTsK
LSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRW5hYmxp
bmcgYWQgY2xpY2sgYXR0cmlidXRpb24gZGVidWcgbW9kZS4uLiIpOwotICAgICAgICAgICAgUGFn
ZUFnZW50Lm92ZXJyaWRlU2V0dGluZyhJbnNwZWN0b3JCYWNrZW5kLkVudW0uUGFnZS5TZXR0aW5n
LkFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQsIHRydWUpLmNhdGNoKHJlamVjdCk7
Ci0gICAgICAgIH0sCi0gICAgfSk7Ci0KLSAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2go
KTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0g
ICAgPHA+VGVzdHMgZm9yIHRoZSBQYWdlLm92ZXJyaWRlU2V0dGluZyBjb21tYW5kLjwvcD4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL292
ZXJyaWRlU2V0dGluZy1Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLVBy
aXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODVkOGU1NTI3NGI4ODkwMjA2MmE2ZGMyY2UwMjBhYWRjNTllMmFjMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsOSBAQAorQ09OU09MRSBNRVNTQUdFOiBbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gVHVy
bmVkIERlYnVnIE1vZGUgb24uCitUZXN0cyBmb3IgdGhlIFBhZ2Uub3ZlcnJpZGVTZXR0aW5nIGNv
bW1hbmQuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBQYWdlLm92ZXJyaWRlU2V0dGluZwor
LS0gUnVubmluZyB0ZXN0IGNhc2U6IFBhZ2Uub3ZlcnJpZGVTZXR0aW5nLlByaXZhdGVDbGlja01l
YXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZAorRW5hYmxpbmcgcHJpdmF0ZSBjbGljayBtZWFzdXJl
bWVudCBkZWJ1ZyBtb2RlLi4uCitQQVNTOiBTaG91bGQgYnJvYWRjYXN0IGF0IGxlYXN0IG9uZSBj
b25zb2xlIG1lc3NhZ2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdl
L292ZXJyaWRlU2V0dGluZy1Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xN2IyNWNj
ODMwMTg1YWYzMTU0NDAyZjk1MDZmMmY1ZGNlYTE5M2IxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLVByaXZhdGVDbGlja01lYXN1
cmVtZW50RGVidWdNb2RlRW5hYmxlZC5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1
bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5
bmNTdWl0ZSgiUGFnZS5vdmVycmlkZVNldHRpbmciKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNl
KHsKKyAgICAgICAgbmFtZTogIlBhZ2Uub3ZlcnJpZGVTZXR0aW5nLlByaXZhdGVDbGlja01lYXN1
cmVtZW50RGVidWdNb2RlRW5hYmxlZCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCB0aGF0
IGNoYW5naW5nIHdoZXRoZXIgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBkZWJ1ZyBtb2RlIGlz
IGVuYWJsZWQgaGFzIGFuIGVmZmVjdC4iLAorICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkg
eworICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuY29uc29sZU1hbmFnZXIuYWRkRXZlbnRM
aXN0ZW5lcihXSS5Db25zb2xlTWFuYWdlci5FdmVudC5NZXNzYWdlQWRkZWQsIChldmVudCkgPT4g
eworICAgICAgICAgICAgICAgIGxldCB7bWVzc2FnZX0gPSBldmVudC5kYXRhOworICAgICAgICAg
ICAgICAgIGlmIChtZXNzYWdlLnNvdXJjZSAhPT0gV0kuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNv
dXJjZS5Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKCJTaG91bGQgYnJvYWRjYXN0
IGF0IGxlYXN0IG9uZSBjb25zb2xlIG1lc3NhZ2UuIik7CisKKyAgICAgICAgICAgICAgICBXSS5j
b25zb2xlTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNvbnNvbGVNYW5hZ2VyLkV2ZW50
Lk1lc3NhZ2VBZGRlZCwgbGlzdGVuZXIpOworICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAg
ICAgICAgICAgIH0pOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRW5hYmxpbmcg
cHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBkZWJ1ZyBtb2RlLi4uIik7CisgICAgICAgICAgICBQ
YWdlQWdlbnQub3ZlcnJpZGVTZXR0aW5nKEluc3BlY3RvckJhY2tlbmQuRW51bS5QYWdlLlNldHRp
bmcuUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkLCB0cnVlKS5jYXRjaChy
ZWplY3QpOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5k
RmluaXNoKCk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgUGFnZS5vdmVycmlkZVNldHRpbmcgY29tbWFuZC48
L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggNmFjM2U3MGJiYzViMThmNTQxOWU3MDgyOTU3YTg5NjJmNGYx
MWZhNy4uZjNjZDYzZmZmMDQ4MzkzODFjZTkwOGY1ZmYxM2FjMzQwYzY3NTJlYyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTA4MCw5ICsx
MDgwLDYgQEAgd2Via2l0Lm9yZy9iLzY4Mjc4IGh0dHAvdGVzdHMvaGlzdG9yeS9iYWNrLXdpdGgt
ZnJhZ21lbnQtY2hhbmdlLnBocCBbIFBhc3MgRmFpbHUKICMgPHJkYXI6Ly9wcm9ibGVtLzM3MzMw
Mzc3PiBBU2FuIHRlc3RzIGV4aXRpbmcgZWFybHkgZHVlIHRvIHRpbWVvdXRzCiBbIFJlbGVhc2Ug
XSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9kZXJpdmVfYml0
c19rZXlzIFsgU2tpcCBdCiAKLSMgPHJkYXI6Ly9wcm9ibGVtLzYwMDYzMDAyPiBSRUdSRVNTSU9O
OiAocjI1Nzc1OCkgaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vY29udmVyc2lvbi1kaXNh
YmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sIGlzIGNyYXNoaW5nCi1odHRwL3Rlc3RzL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9u
Lmh0bWwgWyBQYXNzIENyYXNoIF0KLQogIyA8cmRhcjovL3Byb2JsZW0vNjAxMDU5Mjc+IFsgTWFj
IHdrMiBSZWxlYXNlIF0gd2ViZ3B1L3dobHNsL21ha2UtYXJyYXktcmVmZXJlbmNlLmh0bWwgaXMg
Zmxha3kgZmFpbGluZwogWyBSZWxlYXNlIF0gd2ViZ3B1L3dobHNsL21ha2UtYXJyYXktcmVmZXJl
bmNlLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCkBAIC0xMTMxLDggKzExMjgsOCBAQCB3ZWJydGMv
c2ltdWxjYXN0LWgyNjQuaHRtbCBbIFBhc3MgVGltZW91dCBdCiAjIDxyZGFyOi8vcHJvYmxlbS82
MzI3NTIxMz4gUkVHUkVTU0lPTjogaHR0cC90ZXN0cy9JbmRleGVkREIvc3RvcmFnZS1saW1pdC0x
Lmh0dHBzLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlCiBbIEJpZ1N1cisgUmVsZWFzZSBdIGh0dHAv
dGVzdHMvSW5kZXhlZERCL3N0b3JhZ2UtbGltaXQtMS5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJl
IF0KIAotIyA8cmRhcjovL3Byb2JsZW0vNjMzNTc0ODE+IGh0dHAvdGVzdHMvYWRDbGlja0F0dHJp
YnV0aW9uL3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwgaXMgYSBzdXBl
ciBmbGFreSBmYWlsdXJlCi1bIEJpZ1N1cisgRGVidWcgXSBodHRwL3Rlc3RzL2FkQ2xpY2tBdHRy
aWJ1dGlvbi9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1sIFsgUGFzcyBG
YWlsdXJlIF0KKyMgPHJkYXI6Ly9wcm9ibGVtLzYzMzU3NDgxPiBodHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwg
aXMgYSBzdXBlciBmbGFreSBmYWlsdXJlCitbIEJpZ1N1cisgRGVidWcgXSBodHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0
Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiAjIDxyZGFyOi8vcHJvYmxlbS82MzU1NDI0OT4gWzIw
QTI3OV0gRFEgYm90cyBhcmUgc2VlaW5nIGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNr
LWNhY2hlLXZhbGlkYXRpb24tYmFjay1uYXZpZ2F0aW9uLXBvbGljeS5odG1sIGFuZCBodHRwL3Rl
c3RzL2NhY2hlL2Rpc2stY2FjaGUvZGlzay1jYWNoZS12YWxpZGF0aW9uLW5vLWJvZHkuaHRtbCBh
cmUgdGltaW5nIG91dAogd2Via2l0Lm9yZy9iLzE3OTc5NiBodHRwL3Rlc3RzL2NhY2hlL2Rpc2st
Y2FjaGUvZGlzay1jYWNoZS12YWxpZGF0aW9uLWJhY2stbmF2aWdhdGlvbi1wb2xpY3kuaHRtbCBb
IFBhc3MgRmFpbHVyZSBUaW1lb3V0IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3drMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggOGQ3ZDQ5MGViMzI4NGMzMDlkY2NkMmEwZTE4NmQ5ODA0MzYyN2U5NC4u
MTQ5YWY3OGUxNWUwYTEyMGY3NzI3NGUyNTFkOWIzOTg0Y2Y4NzU3NSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc0Niw3ICs3NDYsNyBAQCBzdG9yYWdl
L2luZGV4ZWRkYi9JREJPYmplY3QtbGVhay5odG1sIFsgUGFzcyBdCiAKIGZhc3QvZm9ybXMvY2Fs
bC10ZXh0LWRpZC1jaGFuZ2UtaW4tdGV4dC1maWVsZC13aGVuLXR5cGluZy5odG1sIFsgUGFzcyBd
CiAKLWh0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uIFsgUGFzcyBdCitodHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50IFsgUGFzcyBdCiAKICMgVXNlciBpbnRlcmFjdGlvbiBpcyBh
IFdlYktpdDIgY29uY2VwdC4KIGluc3BlY3Rvci9kZWJ1Z2dlci9ldmFsdWF0ZU9uQ2FsbEZyYW1l
LWVtdWxhdGVVc2VyR2VzdHVyZS11c2VySXNJbnRlcmFjdGluZy5odG1sIFsgUGFzcyBdCkBAIC03
NTYsOCArNzU2LDggQEAgaW5zcGVjdG9yL3J1bnRpbWUvY2FsbEZ1bmN0aW9uT24tZW11bGF0ZVVz
ZXJHZXN0dXJlLXVzZXJJc0ludGVyYWN0aW5nLmh0bWwgWyBQYXMKICMgVGFyZ2V0IGRvbWFpbiBp
cyBvbmx5IHByZXNlbnQgaW4gV2ViS2l0Mi4KIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3RhcmdldCBb
IFBhc3MgXQogCi0jIElUUCBhbmQgQWRDbGlja0F0dHJpYnV0aW9uIGFyZSBXSzIgb25seS4KLWlu
c3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1BZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVF
bmFibGVkLmh0bWwgWyBQYXNzIF0KKyMgSVRQIGFuZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBh
cmUgV0syIG9ubHkuCitpbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkLmh0bWwgWyBQYXNzIF0KIGluc3BlY3Rvci9wYWdl
L292ZXJyaWRlU2V0dGluZy1JVFBEZWJ1Z01vZGVFbmFibGVkLmh0bWwgWyBQYXNzIF0KIAogIyBI
aWdobGlnaHRpbmcgbWFya2VkIHRleHQgcmFuZ2VzIGZyb20gbGF5b3V0IHRlc3RzIGlzIG9ubHkg
c3VwcG9ydGVkIGluIFdlYktpdDIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
cGUvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDYzOWVkMjEyM2MwYzlmZjVjZTAwMmIwZjNhMDBlNmRiMTIzNGRiNTAuLjVj
MDAwOTgxZWUzYTQyMDJmYzQzOWFlZmFmMWMwZWFkYTBhNjRjYTMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNDgsNyArMjQ4LDcgQEAgd2Via2l0Lm9y
Zy9iLzIxNTUwMiBmYXN0L2ZsZXhib3gvaW1hZ2UtcGVyY2VudC1tYXgtaGVpZ2h0Lmh0bWwgWyBG
YWlsdXJlIFBhc3MgSW0KIHdlYmtpdC5vcmcvYi8yMTg2ODkgaW1wb3J0ZWQvYmxpbmsvZmFzdC9m
b3Jtcy90ZXh0YXJlYS1wbGFjZWhvbGRlci12aXNpYmlsaXR5LTMuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQogCiAjIExpbmsgdGFyZ2V0Ci13ZWJraXQub3JnL2IvMjE4NTUzIGh0dHAvdGVzdHMv
YWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1y
ZWRpcmVjdC1pbi1uZXctd2luZG93Lmh0bWwgWyBUaW1lb3V0IF0KK3dlYmtpdC5vcmcvYi8yMTg1
NTMgaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJz
aW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy5odG1sIFsgVGltZW91dCBd
CiB3ZWJraXQub3JnL2IvMjEyMDgzIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Bl
bi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWZyb20t
c3ViZnJhbWUuaHRtbAogd2Via2l0Lm9yZy9iLzIxMjA4MyBsb2FkZXIvbmF2aWdhdGlvbi1wb2xp
Y3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdp
dGgtZmxhZy5odG1sCiB3ZWJraXQub3JnL2IvMjEyMDgzIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGlj
eS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0
aG91dC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413745</attachid>
            <date>2020-11-10 15:00:05 -0800</date>
            <delta_ts>2020-11-10 15:52:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218730-20201110150003.patch</filename>
            <type>text/plain</type>
            <size>480135</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MzczYWYzYjM4MmJiNzQ1MzJmMWNiMDZiN2FjZDlkNmY5N2E3M2EwLi5mMzBjODZkYjRiZWMzNzJi
ZjhmYWE5YWU5ZGU3ZTI1ZGZkMjg2ZmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAyMC0xMS0wOSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KKworICAgICAgICBQQ006IENoYW5nZSBmcm9tIGFkLWNsaWNrLWF0dHJpYnV0aW9uIHRvIHBy
aXZhdGUtY2xpY2stbWVhc3VyZW1lbnQgKGluIGFsbCBmb3JtcywgaW5jbHVkaW5nIC53ZWxsLWtu
b3duIFVSTCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxODczMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzEwOTQyOTY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlIHRvIHRoZSBvZmZpY2lh
bCBuYW1lIG9mIHRoZSBwcm9wb3NlZCBzdGFuZGFyZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50
CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9wcml2YWN5Y2cvcHJpdmF0ZS1jbGljay1tZWFz
dXJlbWVudC4KKworICAgICAgICBUaGlzIGluY2x1ZGVzIGEgY2hhbmdlIG9mIHRoZSByZXBvcnRp
bmcgVVJMIGZyb20gCisgICAgICAgICIvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24v
IiB0bworICAgICAgICAiLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvIi4K
KworICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHA6CisgICAgICAgIChJbnNw
ZWN0b3I6Om1lc3NhZ2VTb3VyY2VWYWx1ZSk6CisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29s
L0NvbnNvbGUuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uOgor
ICAgICAgICAqIHJ1bnRpbWUvQ29uc29sZUNsaWVudC5jcHA6CisgICAgICAgIChKU0M6OmFwcGVu
ZE1lc3NhZ2VQcmVmaXgpOgorICAgICAgICAqIHJ1bnRpbWUvQ29uc29sZVR5cGVzLmg6CisKIDIw
MjAtMTEtMDkgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIHRvdGFsIGNvdW50cyB0byBzYW1wbGluZyBwcm9maWxlciBkdW1wCkBAIC0xOTk5Nyw3
ICsyMDAyMCw3IEBACiAKICAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uOgog
ICAgICAgICBBZGQgbmV3IGVudW0gdmFsdWVzIHRvIGBQYWdlLlNldHRpbmdgOgotICAgICAgICAg
LSBgQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZGAKKyAgICAgICAgIC0gYFByaXZh
dGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZGAKICAgICAgICAgIC0gYElUUERlYnVn
TW9kZUVuYWJsZWRgCiAKIDIwMjAtMDUtMDMgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxl
LmNvbT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKaW5kZXggZjU0ZjllMjJlYzJjYTMyZmFhN2ZjZjJhMGIxMDNmOTAxYzhkY2YyNi4uY2Uz
NmNhNmJhZDVhZWZhMWVkZmFkOTkwY2M5NTFkZWI4M2MxZWVkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBA
QAorMjAyMC0xMS0xMCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBQQ006IENoYW5nZSBmcm9tIGFkLWNsaWNrLWF0dHJpYnV0aW9uIHRvIHByaXZhdGUtY2xp
Y2stbWVhc3VyZW1lbnQgKGluIGFsbCBmb3JtcywgaW5jbHVkaW5nIC53ZWxsLWtub3duIFVSTCkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODczMAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzEwOTQyOTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlIHRvIHRoZSBvZmZpY2lhbCBuYW1lIG9m
IHRoZSBwcm9wb3NlZCBzdGFuZGFyZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50CisgICAgICAg
IGh0dHBzOi8vZ2l0aHViLmNvbS9wcml2YWN5Y2cvcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC4K
KworICAgICAgICBUaGlzIGluY2x1ZGVzIGEgY2hhbmdlIG9mIHRoZSByZXBvcnRpbmcgVVJMIGZy
b20gCisgICAgICAgICIvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vIiB0bworICAg
ICAgICAiLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvIi4KKworICAgICAg
ICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoK
KwogMjAyMC0xMS0xMCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkIGludGVybmFsIG1hY09TIGJ1aWxkLWZpeC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1OWNj
MGFiYzQwMTYyMjY0OGI0NzVhZjkzMzM2NzVkYmEzYTllMjhkLi4yYzU1NTFkMTllNjdjNDk0ZjA5
ZmEyMjcwZGU1ZDdhNjFhY2VjNWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIzIEBACisyMDIw
LTExLTEwICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBD
TTogQ2hhbmdlIGZyb20gYWQtY2xpY2stYXR0cmlidXRpb24gdG8gcHJpdmF0ZS1jbGljay1tZWFz
dXJlbWVudCAoaW4gYWxsIGZvcm1zLCBpbmNsdWRpbmcgLndlbGwta25vd24gVVJMKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzMwCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83MTA5NDI5Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgdG8gdGhlIG9mZmljaWFsIG5hbWUgb2YgdGhlIHBy
b3Bvc2VkIHN0YW5kYXJkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQKKyAgICAgICAgaHR0cHM6
Ly9naXRodWIuY29tL3ByaXZhY3ljZy9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LgorCisgICAg
ICAgIFRoaXMgaW5jbHVkZXMgYSBjaGFuZ2Ugb2YgdGhlIHJlcG9ydGluZyBVUkwgZnJvbSAKKyAg
ICAgICAgIi8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8iIHRvCisgICAgICAgICIv
LndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8iLgorCisgICAgICAgIFRlc3Rz
OiBodHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVhc3Vy
ZW1lbnQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtcmVmbGVjdC5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2FuY2hvci10YWctYXR0cmlidXRlcy12
YWxpZGF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2Ut
cmVkaXJlY3QuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4t
bmV3LXdpbmRvdy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13
aXRoLXByaW9yaXR5Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0
LXdpdGhvdXQtcHJpb3JpdHkuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9jbGVhci10aHJvdWdoLXdlYnNpdGUtZGF0YS1yZW1vdmFsLmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29udmVy
c2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb25zLXJl
bW92ZWQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vj
b25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZl
cnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXBy
aW9yaXR5Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1kaXNhYmxlZC1p
bi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQuaHRtbAor
ICAgICAgICAgICAgICAgaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLVByaXZhdGVDbGlj
a01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZC5odG1sCisKKyAgICAgICAgKiBIZWFkZXJzLmNt
YWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpwYXJzZVByaXZhdGVDbGlja01l
YXN1cmVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50Ojpo
YW5kbGVDbGljayk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VB
ZENsaWNrQXR0cmlidXRpb24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTEFu
Y2hvckVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yUGFnZUFnZW50OjpkaXNhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VB
Z2VudDo6b3ZlcnJpZGVTZXR0aW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2Uv
UGFnZUNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUFnZW50
OjpnZXRMb2dnaW5nQ2hhbm5lbHMpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2hhbmdlTG9jYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRGcmFtZVJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXI6OmxvYWRVUkwpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRl
ci5oOgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmg6CisgICAgICAgIChXZWJD
b3JlOjpOYXZpZ2F0aW9uQWN0aW9uOjpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uOjphZENsaWNrQXR0cmli
dXRpb24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlv
bjo6c2V0QWRDbGlja0F0dHJpYnV0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0FkQ2xpY2tBdHRyaWJ1dGlvbi5jcHAuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6aXNWYWxpZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y29udmVydEFuZEdldEVhcmxpZXN0VGltZVRv
U2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6bWFya0Fz
RXhwaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6aGFz
RXhwaXJlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6aGFzSGlnaGVyUHJpb3JpdHlUaGFuIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpyZXBvcnRVUkwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ompzb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Om1hcmtDb252ZXJzaW9uQXNTZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp3YXNDb252ZXJzaW9uU2VudCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6dG9TdHJpbmcg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmRlYnVn
TW9kZUVuYWJsZWQpOgorICAgICAgICAqIGxvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5o
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvbG9hZGVyL0FkQ2xpY2tBdHRyaWJ1dGlvbi5o
LgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNhbXBhaWduOjpD
YW1wYWlnbik6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2Ft
cGFpZ246OmlzVmFsaWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OlNvdXJjZTo6U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpTb3VyY2U6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTo6bWF0Y2hlcyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlOjppc0hhc2hUYWJs
ZURlbGV0ZWRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6U291cmNlOjpkZWxldGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2U6OmRlbGV0ZVZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2U6Omlz
RGVsZXRlZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpTb3VyY2VIYXNoOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpTb3VyY2VIYXNoOjplcXVhbCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb246OkRlc3RpbmF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbjo6b3BlcmF0b3I9
PSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVz
dGluYXRpb246Om1hdGNoZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOjppc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb246
OmRlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6RGVzdGluYXRpb246OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb246OmRlbGV0ZVZhbHVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbjo6aXNE
ZWxldGVkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkRlc3RpbmF0aW9uSGFzaDo6aGFzaCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb25IYXNoOjplcXVhbCk6CisgICAgICAgIChXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHk6OlByaW9yaXR5KToKKyAgICAg
ICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uOjpDb252ZXJz
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJz
aW9uOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6c291cmNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpkZXN0aW5hdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZWFybGllc3RUaW1lVG9TZW5kIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojppc0VtcHR5IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmRlY29kZSk6
CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbjo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpDb252ZXJzaW9uOjpkZWNvZGUpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2U+OjplbXB0eVZhbHVlKToKKyAgICAgICAg
KFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNl
Pjo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlPjo6aXNEZWxldGVkVmFsdWUpOgor
ICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpEZXN0aW5hdGlvbj46OmVtcHR5VmFsdWUpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbj46OmNvbnN0cnVjdERl
bGV0ZWRWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uPjo6aXNEZWxldGVkVmFsdWUpOgorICAgICAgICAq
IHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAgICAoV2ViQ29yZTo6UnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVk
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjphZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFi
bGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL0xvZ2dpbmcuaDoKKwogMjAyMC0xMS0xMCAgWmFsYW4gQnVqdGFz
ICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gQWRkIHN1cHBvcnQgZm9y
IHJlcGxhY2VkIGVsZW1lbnQgYmFzZWxpbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDVh
MDU4NjZkZGU1YjQ2ZGM5Mzg3YThhYWVjNjA4NDk2NDgzOTRmYWEuLjQ3YmM3N2E1NGQxMDgwOWVl
MGNjNTYyNTY4OTAwNWU2NWE2MjI2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI1IEBACisyMDIwLTExLTEwICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29t
PgorCisgICAgICAgIFBDTTogQ2hhbmdlIGZyb20gYWQtY2xpY2stYXR0cmlidXRpb24gdG8gcHJp
dmF0ZS1jbGljay1tZWFzdXJlbWVudCAoaW4gYWxsIGZvcm1zLCBpbmNsdWRpbmcgLndlbGwta25v
d24gVVJMKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE4NzMwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTA5NDI5Nj4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgdG8gdGhlIG9mZmljaWFs
IG5hbWUgb2YgdGhlIHByb3Bvc2VkIHN0YW5kYXJkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQK
KyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3ByaXZhY3ljZy9wcml2YXRlLWNsaWNrLW1lYXN1
cmVtZW50LgorCisgICAgICAgIFRoaXMgaW5jbHVkZXMgYSBjaGFuZ2Ugb2YgdGhlIHJlcG9ydGlu
ZyBVUkwgZnJvbSAKKyAgICAgICAgIi8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8i
IHRvCisgICAgICAgICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8iLgor
CisgICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzOgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvTW9kZWxzL0NvbnNvbGVNZXNzYWdlLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
TW9kZWxzL0lzc3VlTWVzc2FnZS5qczoKKyAgICAgICAgKFdJLklzc3VlTWVzc2FnZSk6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9MZWdhY3kvMTQuMC9JbnNwZWN0b3JCYWNrZW5k
Q29tbWFuZHMuanM6CisKIDIwMjAtMTEtMDYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNvdXJjZXM6IGRlZmF1bHQgYnJlYWtwb2lu
dCBhY3Rpb24gc2hvdWxkIGJlIGV2YWx1YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNhNDBkNWIwOWJmNzU2YzE2
OTk0MmZiMmRkYWJiODEyMmIzMzI5MDYuLjY0ODJkNzM5M2QxMThiOGFkYmYwYzcxNjQ3MDkwNzFi
NGExNzU4N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUzIEBACisyMDIwLTExLTEwICBKb2huIFdp
bGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogQ2hhbmdlIGZyb20g
YWQtY2xpY2stYXR0cmlidXRpb24gdG8gcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudCAoaW4gYWxs
IGZvcm1zLCBpbmNsdWRpbmcgLndlbGwta25vd24gVVJMKQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzMwCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83MTA5NDI5Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBDaGFuZ2UgdG8gdGhlIG9mZmljaWFsIG5hbWUgb2YgdGhlIHByb3Bvc2VkIHN0YW5kYXJk
IFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3By
aXZhY3ljZy9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LgorCisgICAgICAgIFRoaXMgaW5jbHVk
ZXMgYSBjaGFuZ2Ugb2YgdGhlIHJlcG9ydGluZyBVUkwgZnJvbSAKKyAgICAgICAgIi8ud2VsbC1r
bm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8iIHRvCisgICAgICAgICIvLndlbGwta25vd24vcHJp
dmF0ZS1jbGljay1tZWFzdXJlbWVudC8iLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlh
bGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjpzdG9yZVByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjbGVhclByaXZhdGVDbGlja01lYXN1cmVt
ZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVz
dGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjptYXJrUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjpzZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c3RvcmVBZENsaWNrQXR0cmlidXRpb24pOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZHVtcEFkQ2xpY2tBdHRy
aWJ1dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjbGVh
ckFkQ2xpY2tBdHRyaWJ1dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpzZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRBZENsaWNrQXR0cmli
dXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjptYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3Rp
bmcpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vz
c2lvbjo6c3RvcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtTZXNzaW9uOjpoYW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24pOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6ZHVtcFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OmNsZWFyUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6Y2xlYXJQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEZvclJlZ2lzdHJhYmxlRG9tYWluKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb246OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1l
ckZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6c2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtTZXNzaW9uOjptYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVk
Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpzdG9yZUFkQ2xp
Y2tBdHRyaWJ1dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
OjpoYW5kbGVBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Nlc3Npb246OmR1bXBBZENsaWNrQXR0cmlidXRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6Y2xlYXJBZENsaWNrQXR0cmlidXRp
b24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6Y2xlYXJBZENs
aWNrQXR0cmlidXRpb25Gb3JSZWdpc3RyYWJsZURvbWFpbik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpzZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVy
Rm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpz
ZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjptYXJrQWRDbGlja0F0dHJpYnV0aW9uc0Fz
RXhwaXJlZEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RvcmVVbmNvbnZlcnRlZCk6CisgICAgICAg
IChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6aGFuZGxlQ29udmVyc2lv
bik6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3Rh
cnRUaW1lcik6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
cjo6Y29udmVydCk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlcjo6ZmlyZUNvbnZlcnNpb25SZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0cyk6Cisg
ICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Y2xlYXIpOgor
ICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmNsZWFyRm9y
UmVnaXN0cmFibGVEb21haW4pOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXI6OmNsZWFyRXhwaXJlZCk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnNldENvbnZlcnNpb25VUkxGb3JUZXN0aW5n
KToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjptYXJr
QWxsVW5jb252ZXJ0ZWRBc0V4cGlyZWRGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpkZWJ1Z01vZGVFbmFibGVkIGNvbnN0KToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0
aW9uTWFuYWdlci5oLgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXI6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6bV9zZXNzaW9uSUQpOgorICAgICAgICAo
V2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnNldFBpbmdMb2FkRnVuY3Rp
b24pOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnNl
dE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Mb2dnaW5nLmg6
CisgICAgICAgICogU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9OYXZp
Z2F0aW9uQWN0aW9uRGF0YS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhOjpvd25lclByb2Nlc3MpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVR5cGUuaDoKKyAgICAgICAg
KiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uaDoK
KyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbjo6cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgY29uc3Qp
OgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9uOjphZENsaWNrQXR0cmlidXRpb24gY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAo
V0tQYWdlRHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdLUGFnZUNsZWFy
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAoV0tQYWdlU2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyk6CisgICAgICAgIChXS1BhZ2VTZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKToKKyAgICAgICAg
KFdLUGFnZU1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKToK
KyAgICAgICAgKFdLUGFnZUR1bXBBZENsaWNrQXR0cmlidXRpb24pOiBEZWxldGVkLgorICAgICAg
ICAoV0tQYWdlQ2xlYXJBZENsaWNrQXR0cmlidXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV0tQ
YWdlU2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmcpOiBEZWxldGVk
LgorICAgICAgICAoV0tQYWdlU2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRl
c3RpbmcpOiBEZWxldGVkLgorICAgICAgICAoV0tQYWdlTWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNB
c0V4cGlyZWRGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVSZWYuY3BwOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKToKKyAgICAgICAgKFdLV2Vi
c2l0ZURhdGFTdG9yZUNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRlRGF0YVJl
bW92YWwpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVSZWYuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFS
ZWNvcmQubW06CisgICAgICAgIChkYXRhVHlwZXNUb1N0cmluZyk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkSW50ZXJuYWwuaDoKKyAgICAgICAgKFdl
YktpdDo6dG9XZWJzaXRlRGF0YVR5cGUpOgorICAgICAgICAoV2ViS2l0Ojp0b1dLV2Vic2l0ZURh
dGFUeXBlcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVj
b3JkUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0
YVN0b3JlLm1tOgorICAgICAgICAoK1tXS1dlYnNpdGVEYXRhU3RvcmUgX2FsbFdlYnNpdGVEYXRh
VHlwZXNJbmNsdWRpbmdQcml2YXRlXSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0
Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clByb3h5OjpzZXREZXZlbG9wZXJQcmVmZXJlbmNlT3ZlcnJpZGUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZSk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEFkQ2xpY2tBdHRyaWJ1
dGlvbkRlYnVnTW9kZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRlTmV3UGFnZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjptYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRzQXNFeHBpcmVkRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
ZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6Y2xlYXJBZENsaWNrQXR0cmlidXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JU
ZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRBZENs
aWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRG
b3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudERlYnVnTW9kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldEFk
Q2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6
Y3JlYXRlV2luZG93KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbik6CisKIDIwMjAtMTEtMTAgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gU2VuZCBHUFUgc2FuZGJveCBleHRlbnNpb25zIGlu
IFdlYiBwYWdlIGNyZWF0aW9uIHBhcmFtZXRlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpp
bmRleCA4YWZlMWMzODM2ZjE2ZmY1MzRhMmZhNGVmMDg5N2JkNzk4ZmU1NTQ3Li5jNTllZmFlNTBk
ZDFmNzk5NWQzN2U5YTU2MTljOGI4ZDc0MDg3NmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMjAtMTEtMTAgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRl
ckBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBDaGFuZ2UgZnJvbSBhZC1jbGljay1hdHRyaWJ1
dGlvbiB0byBwcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50IChpbiBhbGwgZm9ybXMsIGluY2x1ZGlu
ZyAud2VsbC1rbm93biBVUkwpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTg3MzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMDk0Mjk2PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSB0byB0
aGUgb2ZmaWNpYWwgbmFtZSBvZiB0aGUgcHJvcG9zZWQgc3RhbmRhcmQgUHJpdmF0ZSBDbGljayBN
ZWFzdXJlbWVudAorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vcHJpdmFjeWNnL3ByaXZhdGUt
Y2xpY2stbWVhc3VyZW1lbnQuCisKKyAgICAgICAgVGhpcyBpbmNsdWRlcyBhIGNoYW5nZSBvZiB0
aGUgcmVwb3J0aW5nIFVSTCBmcm9tIAorICAgICAgICAiLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0
dHJpYnV0aW9uLyIgdG8KKyAgICAgICAgIi8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1
cmVtZW50LyIuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06
CisgICAgICAgIChzdHJpbmdGb3JNZXNzYWdlU291cmNlKToKKyAgICAgICAgKiBXZWJWaWV3L1dl
YlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5j
ZXMubW06CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHByaXZhdGVDbGlja01lYXN1cmVtZW50
RW5hYmxlZF0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEVuYWJsZWQ6XSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIGFkQ2xpY2tBdHRy
aWJ1dGlvbkVuYWJsZWRdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0
QWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZDpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJWaWV3
L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorCiAyMDIwLTExLTA5ICBTYWlkIEFib3UtSGFsbGF3
YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gQ29udHJvbCB0aGUg
bGlmZSBjeWNsZSBvZiB0aGUgcGxhdGZvcm0gaW1hZ2UgYnkgYSBuZXcgY2xhc3MgbmFtZWQgTmF0
aXZlSW1hZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29u
c29sZU1lc3NhZ2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xl
TWVzc2FnZS5jcHAKaW5kZXggOTBhMWRkOTYwNDcwYTU0ZWQzYjE0NjZjZWNmZGVmYTgzNDk0NTgw
Zi4uMDM5NGE3MzcyN2VmMGE3NDM3ZDQ3NjAwNTg2NDFkZTg1YmEyMDFjMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKQEAgLTE5
MSw3ICsxOTEsNyBAQCBzdGF0aWMgUHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxTb3VyY2UgbWVz
c2FnZVNvdXJjZVZhbHVlKE1lc3NhZ2VTb3VyY2Ugc291cmNlKQogICAgIGNhc2UgTWVzc2FnZVNv
dXJjZTo6TWVkaWFTb3VyY2U6IHJldHVybiBQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbFNvdXJj
ZTo6TWVkaWFTb3VyY2U7CiAgICAgY2FzZSBNZXNzYWdlU291cmNlOjpXZWJSVEM6IHJldHVybiBQ
cm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbFNvdXJjZTo6V2ViUlRDOwogICAgIGNhc2UgTWVzc2Fn
ZVNvdXJjZTo6SVRQRGVidWc6IHJldHVybiBQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbFNvdXJj
ZTo6SVRQRGVidWc7Ci0gICAgY2FzZSBNZXNzYWdlU291cmNlOjpBZENsaWNrQXR0cmlidXRpb246
IHJldHVybiBQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbFNvdXJjZTo6QWRDbGlja0F0dHJpYnV0
aW9uOworICAgIGNhc2UgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6IHJl
dHVybiBQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbFNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ7CiAgICAgY2FzZSBNZXNzYWdlU291cmNlOjpPdGhlcjogcmV0dXJuIFByb3RvY29sOjpD
b25zb2xlOjpDaGFubmVsU291cmNlOjpPdGhlcjsKICAgICB9CiAgICAgcmV0dXJuIFByb3RvY29s
OjpDb25zb2xlOjpDaGFubmVsU291cmNlOjpPdGhlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ29uc29sZS5qc29uIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9Db25zb2xlLmpzb24KaW5kZXggYjM2YTBlZTY3
ZjA2NTM1ODk3YTE3NjViODBhNDExZDQ0MjA2ZTBjMy4uZTZhZWQ2MTgzMWNmZDNhZmJiMTVhNTg5
NWFiZThhNDc4YjkxZTZhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9Db25zb2xlLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9wcm90b2NvbC9Db25zb2xlLmpzb24KQEAgLTIyLDcgKzIyLDcgQEAKICAgICAgICAg
ICAgICAgICAibWVkaWFzb3VyY2UiLAogICAgICAgICAgICAgICAgICJ3ZWJydGMiLAogICAgICAg
ICAgICAgICAgICJpdHAtZGVidWciLAotICAgICAgICAgICAgICAgICJhZC1jbGljay1hdHRyaWJ1
dGlvbiIsCisgICAgICAgICAgICAgICAgInByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQiLAogICAg
ICAgICAgICAgICAgICJvdGhlciIKICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiQ2hhbm5lbHMgZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBsb2cgbWVzc2FnZXMuIgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9QYWdl
Lmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1BhZ2UuanNv
bgppbmRleCA4MjUyNzkyNjQ5NTQ5ZjcwOGE5ZTg4ZjhjNjQ1MDZlMzQ4MzlkZTE1Li5kYjUyNDc5
YTcyZDQ1OWJlMjNkNGQ4ZDA4MGMwZWQxNWVhOWZjNGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1BhZ2UuanNvbgorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1BhZ2UuanNvbgpAQCAtOSw3ICs5LDcgQEAK
ICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiTGlzdCBvZiBzZXR0aW5ncyBhYmxlIHRvIGJlIG92ZXJyaWRkZW4gYnkgV2ViSW5zcGVjdG9y
LiIsCiAgICAgICAgICAgICAiZW51bSI6IFsKLSAgICAgICAgICAgICAgICAiQWRDbGlja0F0dHJp
YnV0aW9uRGVidWdNb2RlRW5hYmxlZCIsCisgICAgICAgICAgICAgICAgIlByaXZhdGVDbGlja01l
YXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZCIsCiAgICAgICAgICAgICAgICAgIkF1dGhvckFuZFVz
ZXJTdHlsZXNFbmFibGVkIiwKICAgICAgICAgICAgICAgICAiSUNFQ2FuZGlkYXRlRmlsdGVyaW5n
RW5hYmxlZCIsCiAgICAgICAgICAgICAgICAgIklUUERlYnVnTW9kZUVuYWJsZWQiLApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcAppbmRleCAzZDQw
MmRlZjI3NzVkMjg5ZDY0NDA2ZDk4YjdkZDBkNDdlZmUxMThmLi45OWNkMDU3N2YzYjcyMGFiNmY0
NGNjZDI0NTdmYTM5YjkzNDFkODQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db25zb2xlQ2xpZW50LmNwcApAQCAtMTA1LDggKzEwNSw4IEBAIHN0YXRpYyB2b2lkIGFw
cGVuZE1lc3NhZ2VQcmVmaXgoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgTWVzc2FnZVNvdXJjZSBz
b3VyY2UsIE1lCiAgICAgY2FzZSBNZXNzYWdlU291cmNlOjpJVFBEZWJ1ZzoKICAgICAgICAgc291
cmNlU3RyaW5nID0gIklUUERFQlVHIl9zOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIE1lc3Nh
Z2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbjoKLSAgICAgICAgc291cmNlU3RyaW5nID0gIkFE
Q0xJQ0tBVFRSSUJVVElPTiJfczsKKyAgICBjYXNlIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiUFJJVkFURUNMSUNLTUVBU1VS
RU1FTlQiX3M7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVzc2FnZVNvdXJjZTo6T3RoZXI6
CiAgICAgICAgIHNvdXJjZVN0cmluZyA9ICJPVEhFUiJfczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVUeXBlcy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29uc29sZVR5cGVzLmgKaW5kZXggYzVlNDA4NGIyYzNiMmFkNjI2Mjg4YjM3
OTY1Y2FlZTMyZmY3YmJmZi4uMTExZjUyNGE2YjE1MzBmNmYxNGUxYmM5YjEyYzBkNGFlODUyNzk0
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZVR5cGVz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZVR5cGVzLmgKQEAg
LTQ0LDcgKzQ0LDcgQEAgZW51bSBjbGFzcyBNZXNzYWdlU291cmNlIDogdWludDhfdCB7CiAgICAg
TWVkaWFTb3VyY2UsCiAgICAgV2ViUlRDLAogICAgIElUUERlYnVnLAotICAgIEFkQ2xpY2tBdHRy
aWJ1dGlvbiwKKyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwKICAgICBPdGhlciwKIH07CiAK
QEAgLTk0LDcgKzk0LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxKU0M6Ok1lc3Nh
Z2VTb3VyY2U+IHsKICAgICAgICAgSlNDOjpNZXNzYWdlU291cmNlOjpNZWRpYVNvdXJjZSwKICAg
ICAgICAgSlNDOjpNZXNzYWdlU291cmNlOjpXZWJSVEMsCiAgICAgICAgIEpTQzo6TWVzc2FnZVNv
dXJjZTo6SVRQRGVidWcsCi0gICAgICAgIEpTQzo6TWVzc2FnZVNvdXJjZTo6QWRDbGlja0F0dHJp
YnV0aW9uLAorICAgICAgICBKU0M6Ok1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50LAogICAgICAgICBKU0M6Ok1lc3NhZ2VTb3VyY2U6Ok90aGVyCiAgICAgPjsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBl
cmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IGIwMTZhYzlmNzMyYjEyNjg4ZjlhODUyM2UwMGY0
YWYxM2JiYTVjNmIuLjI0OGEyNzVkZmI3NjdiMDhiODEyNjIzNzU2N2IzZTEyNTdkZWRkOTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQ
cmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC0zNywyOSArMzcsNiBAQCBBY2Nlc3NpYmls
aXR5T2JqZWN0TW9kZWxFbmFibGVkOgogICAgIFdlYktpdDoKICAgICAgIGRlZmF1bHQ6IGZhbHNl
CiAKLUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQ6Ci0gIHR5cGU6IGJvb2wKLSAg
aHVtYW5SZWFkYWJsZU5hbWU6ICJBZCBDbGljayBBdHRyaWJ1dGlvbiBEZWJ1ZyBNb2RlIgotICBo
dW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgQWQgQ2xpY2sgQXR0cmlidXRpb24gRGVi
dWcgTW9kZSIKLSAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKLSAgZGVm
YXVsdFZhbHVlOgotICAgIFdlYktpdExlZ2FjeToKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0gICAg
V2ViS2l0OgotICAgICAgZGVmYXVsdDogZmFsc2UKLQotQWRDbGlja0F0dHJpYnV0aW9uRW5hYmxl
ZDoKLSAgdHlwZTogYm9vbAotICBodW1hblJlYWRhYmxlTmFtZTogIkFkIENsaWNrIEF0dHJpYnV0
aW9uIgotICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgQWQgQ2xpY2sgQXR0cmli
dXRpb24gZm9yIENyb3NzLVNpdGUgTGluayBOYXZpZ2F0aW9ucyIKLSAgZGVmYXVsdFZhbHVlOgot
ICAgIFdlYktpdExlZ2FjeToKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0gICAgV2ViS2l0OgotICAg
ICAgZGVmYXVsdDogZmFsc2UKLSAgICBXZWJDb3JlOgotICAgICAgZGVmYXVsdDogZmFsc2UKLQog
QXNwZWN0UmF0aW9FbmFibGVkOgogICB0eXBlOiBib29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAi
Q1NTIEFzcGVjdCBSYXRpbyIKQEAgLTYzOCw2ICs2MTUsMjkgQEAgUGVyRWxlbWVudFNwZWFrZXJT
ZWxlY3Rpb25FbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAg
aHVtYW5SZWFkYWJsZU5hbWU6ICJQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50IERlYnVnIE1vZGUi
CisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBQcml2YXRlIENsaWNrIE1lYXN1
cmVtZW50IERlYnVnIE1vZGUiCisgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBm
YWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKK1ByaXZhdGVDbGlja01l
YXN1cmVtZW50RW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIlBy
aXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVu
YWJsZSBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50IGZvciBDcm9zcy1TaXRlIExpbmsgTmF2aWdh
dGlvbnMiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0
OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToK
KyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIFByb2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9u
RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIlN3YXAgUHJvY2Vz
c2VzIG9uIENyb3NzLVNpdGUgTmF2aWdhdGlvbiIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDI0NzIy
M2Y4YzRmMzFhNzBiYTRiYWFhNDU5MzUxOWQyN2Y2NDMzODMuLmMwZGI2OTMxMGNmNTJmN2Y2Mjhh
YWIzNjQ4YmM2ZGRlYzNmNzRiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtNzMzLDcgKzczMyw2
IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBsYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaAogICAgIGxh
eW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oCiAKLSAgICBsb2FkZXIvQWRDbGlja0F0dHJpYnV0
aW9uLmgKICAgICBsb2FkZXIvQ2FudmFzQWN0aXZpdHlSZWNvcmQuaAogICAgIGxvYWRlci9Db250
ZW50RmlsdGVyQ2xpZW50LmgKICAgICBsb2FkZXIvQ29va2llSmFyLmgKQEAgLTc2Niw2ICs3NjUs
NyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgbG9hZGVyL05l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmgKICAgICBsb2FkZXIvUGluZ0xvYWRlci5oCiAgICAg
bG9hZGVyL1BvbGljeUNoZWNrZXIuaAorICAgIGxvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC5oCiAgICAgbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5oCiAgICAgbG9hZGVyL1Byb2dyZXNzVHJh
Y2tlckNsaWVudC5oCiAgICAgbG9hZGVyL1Jlc291cmNlQ3J5cHRvZ3JhcGhpY0RpZ2VzdC5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IGY5NWFmZjY3Yzk0NTYzNDI2MmFjMzlhMWIzOWM4MDQxNzk0YzQ2ZGIu
Ljc3ZDk5OTY5NDVjNGRlMWYyNmQ3MmI4YmE0OWFkM2IwOThjNzczNTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC0xNTE3LDcgKzE1MTcsNyBAQCBsYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0
dGluZ0NvbnRleHRRdWlya3MuY3BwCiBsYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0
dGluZ1N0YXRlLmNwcAogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuY3BwCiBsYXlv
dXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlTGF5b3V0LmNwcAotbG9hZGVyL0FkQ2xpY2tBdHRyaWJ1
dGlvbi5jcHAKK2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKIGxvYWRlci9BcHBs
aWNhdGlvbk1hbmlmZXN0TG9hZGVyLmNwcAogbG9hZGVyL0NhbnZhc0FjdGl2aXR5UmVjb3JkLmNw
cAogbG9hZGVyL0NvbnRlbnRGaWx0ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmI4MjQ4NmZiOTRlNjVjNzk1YTY3Nzc2
NmFkZjEzNDE4ZjlmZTczZi4uNTFiMGQ5OTQxMTNiZDNkNTBjMWY0Mjk2OTBkMzI1ODQ4Yjc0Nzkx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMjAwNiw3ICsyMDA2LDcgQEAKIAkJNjlBNkNCQUQxQzZCRTQyQzAwQjgzNkU5IC8q
IEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2OTcxMDEwODFDNkJFMTU1MDAxOEM3RjEgLyogQWNjZXNzaWJpbGl0
eVNWR0VsZW1lbnQuaCAqLzsgfTsKIAkJNkEyMkU4NzAxRjEwNDE4NjAwRjU0NkMzIC8qIEluc3Bl
Y3RvckNhbnZhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkEyMkU4NkYxRjEwNDE4NjAwRjU0NkMzIC8qIEluc3BlY3RvckNhbnZhcy5oICovOyB9Owog
CQk2QTcyNzk4QjFGMTZDMjlDMDAzRjM5QjggLyogSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkE3Mjc5ODgxRjE2
QzI5QjAwM0YzOUI4IC8qIEluc3BlY3RvclNoYWRlclByb2dyYW0uaCAqLzsgfTsKLQkJNkIwQTA3
RjIyMUZBNEI1QzAwRDU3MzkxIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkIwQTA3RjAyMUZBNEI1QzAwRDU3Mzkx
IC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTZCMEEwN0YyMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNkIwQTA3RjAyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkIx
RjQ4MTEyMjk4QTM3RTAwREU4QjgyIC8qIENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCMUY0ODBG
MjI5ODlFQzQwMERFOEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkI0RDQxMkQy
Mzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjRENDEyQjIzOTgzRjg4MDAyNDk0QzIgLyogTG9n
Z2VkSW5TdGF0dXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk2QjRFODYxMzIyMUI3MTNGMDAyMkYzODkgLyogUmVnaXN0cmFibGVEb21haW4uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCNEU4NjEyMjIx
QjcxM0YwMDIyRjM4OSAvKiBSZWdpc3RyYWJsZURvbWFpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05NTI4LDggKzk1MjgsOCBAQAogCQk2QTIy
RTg3MjFGMTA0MkM0MDBGNTQ2QzMgLyogSW5zcGVjdG9yQ2FudmFzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEluc3BlY3RvckNhbnZhcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTZBNzI3OTg4MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvclNoYWRlclByb2dyYW0uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkE3Mjc5ODkxRjE2QzI5QjAwM0YzOUI4IC8q
IEluc3BlY3RvclNoYWRlclByb2dyYW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQWRDbGlja0F0dHJpYnV0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTZCMEEwN0YxMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWRDbGlja0F0dHJpYnV0aW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkIwQTA3RjAyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZh
dGVDbGlja01lYXN1cmVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZCMEEwN0YxMjFGQTRCNUMwMEQ1
NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTZCMUY0ODBGMjI5ODlFQzQwMERFOEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5z
ZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkI0RDQxMkIyMzk4M0Y4ODAwMjQ5NEMyIC8q
IExvZ2dlZEluU3RhdHVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvZ2dlZEluU3RhdHVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCNEQ0MTJDMjM5ODNGODgwMDI0OTRDMiAvKiBMb2dn
ZWRJblN0YXR1cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2dnZWRJblN0YXR1cy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjk5Niw4ICsyNjk5Niw2IEBACiAJCQkJNTEy
NkU2QjYwQTJFM0FFRjAwNUMyOUZBIC8qIGljb24gKi8sCiAJCQkJQTE1RTMxRjAxRTBDQjA3NTAw
NEIzNzFDIC8qIGlvcyAqLywKIAkJCQk5M0ExRUFBMjBBNTYzNEQ4MDA2OTYwQTAgLyogbWFjICov
LAotCQkJCTZCMEEwN0YxMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24uY3Bw
ICovLAotCQkJCTZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24u
aCAqLywKIAkJCQk2MzE1MkQxODFGOTUzMUVFMDA3QTVFNEIgLyogQXBwbGljYXRpb25NYW5pZmVz
dExvYWRlci5jcHAgKi8sCiAJCQkJNjMxNTJEMTcxRjk1MzFFRTAwN0E1RTRCIC8qIEFwcGxpY2F0
aW9uTWFuaWZlc3RMb2FkZXIuaCAqLywKIAkJCQlFRkI3Mjg3QjIxMjRDNzNEMDA1QzI1NTggLyog
Q2FudmFzQWN0aXZpdHlSZWNvcmQuY3BwICovLApAQCAtMjcwNzYsNiArMjcwNzQsOCBAQAogCQkJ
CUQwRkYyQTVDMTFGOEM0NUEwMDdFNzRFMCAvKiBQaW5nTG9hZGVyLmggKi8sCiAJCQkJOTcwNTk5
NzUxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuY3BwICovLAogCQkJCTk3MDU5OTc2
MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lDaGVja2VyLmggKi8sCisJCQkJNkIwQTA3RjEyMUZB
NEI1QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcCAqLywKKwkJCQk2QjBB
MDdGMDIxRkE0QjVDMDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCAqLywKIAkJ
CQkxQTJBNjgyMTBCNUJFREU3MDAwMkE0ODAgLyogUHJvZ3Jlc3NUcmFja2VyLmNwcCAqLywKIAkJ
CQkxQTJBNjgyMjBCNUJFREU3MDAwMkE0ODAgLyogUHJvZ3Jlc3NUcmFja2VyLmggKi8sCiAJCQkJ
MUFDQURENzgxODgwRDkxQzAwRDhCNzFEIC8qIFByb2dyZXNzVHJhY2tlckNsaWVudC5oICovLApA
QCAtMzA3MTksNyArMzA3MTksNiBAQAogCQkJCUUxQzRERTY5MEVBNzVDMUUwMDIzQ0NENiAvKiBB
Y3RpdmVET01PYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTcyNEVFNTUwMURDODBEN0YwMEE5
MUZGQiAvKiBBY3Rpdml0eVN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MjRFRTU1MTFEQzgw
RDg0MDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyLmggaW4gSGVhZGVycyAq
LywKLQkJCQk2QjBBMDdGMjIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBMTY3N0UwRTIxM0UwMkEwMDBBMDhDMzQgLyogQWRkcmVzc0Vy
cm9ycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNGN0U0OTExMzdDRDdDNzAwMUREQUU3IC8qIEFk
anVzdFZpZXdTaXplT3JOb3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0RDBDNDA2MTExNUYxRUEw
MDE4QUEzNCAvKiBBZmZpbmVUcmFuc2Zvcm0uaCBpbiBIZWFkZXJzICovLApAQCAtMzM3MjgsNiAr
MzM3MjcsNyBAQAogCQkJCUExQURBRjdFMjM2MEZEM0UwMDlDQjc3NiAvKiBQcmV2aWV3Q29udmVy
dGVyUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NjA1RkVDMjE2NjQ4MDkwMEU1MzA0
NiAvKiBQcmV3YXJtSW5mb3JtYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUI3MUZFNkRGMTEw
OTFDQjMwMERBRUY3NyAvKiBQcmludENvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTZCMEEw
N0YyMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTFGNjQ1RDUxRkVDREJDRTAwQjU0REVEIC8qIFByb2Nlc3NJZGVudGlmaWVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0VCQzBBMTk0NUQwMDBBOEVGNUYgLyogUHJvY2Vz
c2luZ0luc3RydWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDIwNTAxNzIxNDE5MDFCMDA2
NkVGM0IgLyogUHJvY2Vzc1dhcm1pbmcuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCA5Y2M4YjY0ODJhNzI2ZWZlZjIwOGNlMjk5
YWNkMjEzYjZmZDM0ZjY2Li44ZTgwNTMyM2M5NzJmODc0YWQ4MjY0ZWEzNWU0MTFmNDZmNGMwMWJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAtMjQsNyAr
MjQsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50
LmgiCiAKLSNpbmNsdWRlICJBZENsaWNrQXR0cmlidXRpb24uaCIKICNpbmNsdWRlICJDaHJvbWUu
aCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIK
QEAgLTQ0LDYgKzQzLDcgQEAKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUGlu
Z0xvYWRlci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIlBy
aXZhdGVDbGlja01lYXN1cmVtZW50LmgiCiAjaW5jbHVkZSAiUmVnaXN0cmFibGVEb21haW4uaCIK
ICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgpA
QCAtNDA0LDE1ICs0MDQsMTUgQEAgYm9vbCBIVE1MQW5jaG9yRWxlbWVudDo6aXNTeXN0ZW1QcmV2
aWV3TGluaygpCiB9CiAjZW5kaWYKIAotT3B0aW9uYWw8QWRDbGlja0F0dHJpYnV0aW9uPiBIVE1M
QW5jaG9yRWxlbWVudDo6cGFyc2VBZENsaWNrQXR0cmlidXRpb24oKSBjb25zdAorT3B0aW9uYWw8
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IEhUTUxBbmNob3JFbGVtZW50OjpwYXJzZVByaXZhdGVD
bGlja01lYXN1cmVtZW50KCkgY29uc3QKIHsKLSAgICB1c2luZyBDYW1wYWlnbiA9IEFkQ2xpY2tB
dHRyaWJ1dGlvbjo6Q2FtcGFpZ247Ci0gICAgdXNpbmcgU291cmNlID0gQWRDbGlja0F0dHJpYnV0
aW9uOjpTb3VyY2U7Ci0gICAgdXNpbmcgRGVzdGluYXRpb24gPSBBZENsaWNrQXR0cmlidXRpb246
OkRlc3RpbmF0aW9uOworICAgIHVzaW5nIENhbXBhaWduID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkNhbXBhaWduOworICAgIHVzaW5nIFNvdXJjZSA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpTb3VyY2U7CisgICAgdXNpbmcgRGVzdGluYXRpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6RGVzdGluYXRpb247CiAKICAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCk7CiAg
ICAgaWYgKCFwYWdlIHx8IHBhZ2UtPnNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkKLSAgICAgICAg
fHwgIWRvY3VtZW50KCkuc2V0dGluZ3MoKS5hZENsaWNrQXR0cmlidXRpb25FbmFibGVkKCkKKyAg
ICAgICAgfHwgIWRvY3VtZW50KCkuc2V0dGluZ3MoKS5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVu
YWJsZWQoKQogICAgICAgICB8fCAhVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2Vy
R2VzdHVyZSgpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCkBAIC00MjMsMjQgKzQy
MywyNCBAQCBPcHRpb25hbDxBZENsaWNrQXR0cmlidXRpb24+IEhUTUxBbmNob3JFbGVtZW50Ojpw
YXJzZUFkQ2xpY2tBdHRyaWJ1dGlvbigpIGNvbnN0CiAgICAgYXV0byBhZERlc3RpbmF0aW9uQXR0
ciA9IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oYWRkZXN0aW5hdGlvbkF0dHIpOwog
ICAgIAogICAgIGlmIChhZENhbXBhaWduSURBdHRyLmlzRW1wdHkoKSB8fCBhZERlc3RpbmF0aW9u
QXR0ci5pc0VtcHR5KCkpIHsKLSAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQm90aCBhZGNhbXBh
aWduaWQgYW5kIGFkZGVzdGluYXRpb24gbmVlZCB0byBiZSBzZXQgZm9yIEFkIENsaWNrIEF0dHJp
YnV0aW9uIHRvIHdvcmsuIl9zKTsKKyAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQm90aCBhZGNh
bXBhaWduaWQgYW5kIGFkZGVzdGluYXRpb24gbmVlZCB0byBiZSBzZXQgZm9yIFByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnQgdG8gd29yay4iX3MpOwogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwogICAgIH0KIAogICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7
CiAgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPmlzTWFpbkZyYW1lKCkpIHsKLSAgICAgICAgZG9j
dW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxl
dmVsOjpXYXJuaW5nLCAiQWQgQ2xpY2sgQXR0cmlidXRpb24gaXMgb25seSBzdXBwb3J0ZWQgaW4g
dGhlIG1haW4gZnJhbWUuIl9zKTsKKyAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiUHJpdmF0ZSBD
bGljayBNZWFzdXJlbWVudCBpcyBvbmx5IHN1cHBvcnRlZCBpbiB0aGUgbWFpbiBmcmFtZS4iX3Mp
OwogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KICAgICAKICAgICBhdXRvIGFk
Q2FtcGFpZ25JRCA9IHBhcnNlSFRNTE5vbk5lZ2F0aXZlSW50ZWdlcihhZENhbXBhaWduSURBdHRy
KTsKICAgICBpZiAoIWFkQ2FtcGFpZ25JRCkgewotICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJh
ZGNhbXBhaWduaWQgY2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSBub24tbmVnYXRpdmUgaW50ZWdl
ciB3aGljaCBpcyByZXF1aXJlZCBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24uIl9zKTsKKyAgICAg
ICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVz
c2FnZUxldmVsOjpXYXJuaW5nLCAiYWRjYW1wYWlnbmlkIGNhbiBub3QgYmUgY29udmVydGVkIHRv
IGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgd2hpY2ggaXMgcmVxdWlyZWQgZm9yIFByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnQuIl9zKTsKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9
CiAgICAgCi0gICAgaWYgKGFkQ2FtcGFpZ25JRC52YWx1ZSgpID4gQWRDbGlja0F0dHJpYnV0aW9u
OjpNYXhFbnRyb3B5KSB7Ci0gICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVz
c2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWFrZVN0cmluZygiYWRj
YW1wYWlnbmlkIG11c3QgaGF2ZSBhIG5vbi1uZWdhdGl2ZSB2YWx1ZSBsZXNzIHRoYW4gb3IgZXF1
YWwgdG8gIiwgQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5LCAiIGZvciBBZCBDbGljayBB
dHRyaWJ1dGlvbi4iKSk7CisgICAgaWYgKGFkQ2FtcGFpZ25JRC52YWx1ZSgpID4gUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpIHsKKyAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25z
b2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBt
YWtlU3RyaW5nKCJhZGNhbXBhaWduaWQgbXVzdCBoYXZlIGEgbm9uLW5lZ2F0aXZlIHZhbHVlIGxl
c3MgdGhhbiBvciBlcXVhbCB0byAiLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9w
eSwgIiBmb3IgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudC4iKSk7CiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiAgICAgfQogCkBAIC00NTYsNyArNDU2LDcgQEAgT3B0aW9uYWw8QWRDbGlj
a0F0dHJpYnV0aW9uPiBIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VBZENsaWNrQXR0cmlidXRpb24o
KSBjb25zdAogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIAotICAgIHJldHVy
biBBZENsaWNrQXR0cmlidXRpb24geyBDYW1wYWlnbihhZENhbXBhaWduSUQudmFsdWUoKSksIFNv
dXJjZShkb2N1bWVudFJlZ2lzdHJhYmxlRG9tYWluKSwgRGVzdGluYXRpb24oYWREZXN0aW5hdGlv
blVSTCkgfTsKKyAgICByZXR1cm4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgeyBDYW1wYWlnbihh
ZENhbXBhaWduSUQudmFsdWUoKSksIFNvdXJjZShkb2N1bWVudFJlZ2lzdHJhYmxlRG9tYWluKSwg
RGVzdGluYXRpb24oYWREZXN0aW5hdGlvblVSTCkgfTsKIH0KIAogdm9pZCBIVE1MQW5jaG9yRWxl
bWVudDo6aGFuZGxlQ2xpY2soRXZlbnQmIGV2ZW50KQpAQCAtNTE4LDEyICs1MTgsMTIgQEAgdm9p
ZCBIVE1MQW5jaG9yRWxlbWVudDo6aGFuZGxlQ2xpY2soRXZlbnQmIGV2ZW50KQogICAgIGVsc2Ug
aWYgKGhhc1JlbChSZWxhdGlvbjo6Tm9PcGVuZXIpIHx8IChkb2N1bWVudCgpLnNldHRpbmdzKCku
YmxhbmtBbmNob3JUYXJnZXRJbXBsaWVzTm9PcGVuZXJFbmFibGVkKCkgJiYgZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShlZmZlY3RpdmVUYXJnZXQsICJfYmxhbmsiKSkpCiAgICAgICAgIG5ld0ZyYW1l
T3BlbmVyUG9saWN5ID0gTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNzOwogCi0gICAgYXV0
byBhZENsaWNrQXR0cmlidXRpb24gPSBwYXJzZUFkQ2xpY2tBdHRyaWJ1dGlvbigpOwotICAgIC8v
IEEgbWF0Y2hpbmcgY29udmVyc2lvbiBldmVudCBuZWVkcyB0byBoYXBwZW4gYmVmb3JlIHRoZSBj
b21wbGV0ZSBhZCBjbGljayBhdHRyaWJ1dGlvblVSTCBjYW4gYmUKLSAgICAvLyBjcmVhdGVkLiBU
aHVzLCBpdCBzaG91bGQgYmUgZW1wdHkgZm9yIG5vdy4KLSAgICBBU1NFUlQoIWFkQ2xpY2tBdHRy
aWJ1dGlvbiB8fCBhZENsaWNrQXR0cmlidXRpb24tPnJlcG9ydFVSTCgpLmlzTnVsbCgpKTsKKyAg
ICBhdXRvIHByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gcGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCgpOworICAgIC8vIEEgbWF0Y2hpbmcgY29udmVyc2lvbiBldmVudCBuZWVkcyB0byBoYXBw
ZW4gYmVmb3JlIHRoZSBjb21wbGV0ZSBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50CisgICAgLy8g
VVJMIGNhbiBiZSBjcmVhdGVkLiBUaHVzLCBpdCBzaG91bGQgYmUgZW1wdHkgZm9yIG5vdy4KKyAg
ICBBU1NFUlQoIXByaXZhdGVDbGlja01lYXN1cmVtZW50IHx8IHByaXZhdGVDbGlja01lYXN1cmVt
ZW50LT5yZXBvcnRVUkwoKS5pc051bGwoKSk7CiAgICAgCi0gICAgZnJhbWUtPmxvYWRlcigpLmNo
YW5nZUxvY2F0aW9uKGNvbXBsZXRlZFVSTCwgZWZmZWN0aXZlVGFyZ2V0LCAmZXZlbnQsIExvY2tI
aXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIHJlZmVycmVyUG9saWN5LCBkb2N1
bWVudCgpLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpLCBuZXdGcmFt
ZU9wZW5lclBvbGljeSwgZG93bmxvYWRBdHRyaWJ1dGUsIHN5c3RlbVByZXZpZXdJbmZvLCBXVEZN
b3ZlKGFkQ2xpY2tBdHRyaWJ1dGlvbikpOworICAgIGZyYW1lLT5sb2FkZXIoKS5jaGFuZ2VMb2Nh
dGlvbihjb21wbGV0ZWRVUkwsIGVmZmVjdGl2ZVRhcmdldCwgJmV2ZW50LCBMb2NrSGlzdG9yeTo6
Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCByZWZlcnJlclBvbGljeSwgZG9jdW1lbnQoKS5z
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKSwgbmV3RnJhbWVPcGVuZXJQ
b2xpY3ksIGRvd25sb2FkQXR0cmlidXRlLCBzeXN0ZW1QcmV2aWV3SW5mbywgV1RGTW92ZShwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCkpOwogCiAgICAgc2VuZFBpbmdzKGNvbXBsZXRlZFVSTCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgKaW5kZXggMDQxMTBjNjJkNTdk
YTQ4NmZjYzU0M2NhOTkyY2VmZTRkZDJkMjg4Yi4uNjdkZjAxZTBhODVmZTk1ZWI0MGMyZDgwZTlk
MWYzODRjZjU1NzFiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9y
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaApA
QCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEFkQ2xpY2tB
dHRyaWJ1dGlvbjsKK2NsYXNzIFByaXZhdGVDbGlja01lYXN1cmVtZW50OwogY2xhc3MgRE9NVG9r
ZW5MaXN0OwogCiAvLyBMaW5rIHJlbGF0aW9uIGJpdG1hc2sgdmFsdWVzLgpAQCAtMTAwLDcgKzEw
MCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNlbmRQaW5ncyhjb25zdCBVUkwmIGRlc3RpbmF0
aW9uVVJMKTsKIAotICAgIE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4gcGFyc2VBZENsaWNr
QXR0cmlidXRpb24oKSBjb25zdDsKKyAgICBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dD4gcGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpIGNvbnN0OwogCiAgICAgdm9pZCBoYW5k
bGVDbGljayhFdmVudCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
bmNob3JFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
aWRsCmluZGV4IGNhYWZiMzE0Zjg3MWY5ZmFlY2RmNWU2MmY0MWZjZTE3NGY3MTU0MTIuLmJkMWRk
NjY4MzNjZDIwNDE4ZWJkYWQxMDBiN2E4MjQ3OTYxZDZkMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCkBAIC0yMSw4ICsyMSw4IEBACiBbCiAgICAgRXhwb3Nl
ZD1XaW5kb3cKIF0gaW50ZXJmYWNlIEhUTUxBbmNob3JFbGVtZW50IDogSFRNTEVsZW1lbnQgewot
ICAgIFtDRVJlYWN0aW9ucz1Ob3ROZWVkZWQsIEVuYWJsZWRCeVNldHRpbmc9QWRDbGlja0F0dHJp
YnV0aW9uLCBSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFkY2FtcGFpZ25pZDsKLSAgICBb
Q0VSZWFjdGlvbnM9Tm90TmVlZGVkLCBFbmFibGVkQnlTZXR0aW5nPUFkQ2xpY2tBdHRyaWJ1dGlv
biwgUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBhZGRlc3RpbmF0aW9uOworICAgIFtDRVJl
YWN0aW9ucz1Ob3ROZWVkZWQsIEVuYWJsZWRCeVNldHRpbmc9UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsIFJlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWRjYW1wYWlnbmlkOworICAgIFtDRVJl
YWN0aW9ucz1Ob3ROZWVkZWQsIEVuYWJsZWRCeVNldHRpbmc9UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsIFJlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWRkZXN0aW5hdGlvbjsKICAgICBbQ0VS
ZWFjdGlvbnM9Tm90TmVlZGVkLCBSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNoYXJzZXQ7
CiAgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZCwgUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmlu
ZyBjb29yZHM7CiAgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZCwgQ29uZGl0aW9uYWw9RE9XTkxP
QURfQVRUUklCVVRFLCBFbmFibGVkQnlTZXR0aW5nPURvd25sb2FkQXR0cmlidXRlLCBSZWZsZWN0
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRvd25sb2FkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNsaWVudC5oCmluZGV4IDk3YTQ3ZDg1MzRjYmQ3ZTMxMWRlMzM0MzdmNTFjNGQ0
NGZjMTI1ZGIuLmE2NzBlMzI4YTViZmM4ODBiZDU0NWQ4Nzk3YTYyYTYwMmIxOWNjMDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKQEAgLTY1LDcgKzY1LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0aW1lbGluZVJlY29yZGluZ0NoYW5nZWQoYm9v
bCkgeyB9CiAKICAgICBlbnVtIGNsYXNzIERldmVsb3BlclByZWZlcmVuY2UgewotICAgICAgICBB
ZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkLAorICAgICAgICBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQsCiAgICAgICAgIElUUERlYnVnTW9kZUVuYWJsZWQs
CiAgICAgICAgIE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQsCiAgICAgfTsKQEAgLTgzLDcgKzgz
LDcgQEAgbmFtZXNwYWNlIFdURiB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNv
cmU6Okluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5jZT4gewogICAgIHVzaW5nIHZh
bHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6RGV2
ZWxvcGVyUHJlZmVyZW5jZSwKLSAgICAgICAgV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50OjpEZXZl
bG9wZXJQcmVmZXJlbmNlOjpBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkLAorICAg
ICAgICBXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQ6OkRldmVsb3BlclByZWZlcmVuY2U6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZCwKICAgICAgICAgV2ViQ29yZTo6SW5z
cGVjdG9yQ2xpZW50OjpEZXZlbG9wZXJQcmVmZXJlbmNlOjpJVFBEZWJ1Z01vZGVFbmFibGVkLAog
ICAgICAgICBXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQ6OkRldmVsb3BlclByZWZlcmVuY2U6Ok1v
Y2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQKICAgICA+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IGE2OTNiOGQ4
NTFhNGYwMmNmODIxMjliMjg0MzE4ODkwZGNhNzQyMWEuLmFmMGEwNTFiZGFlNTJiMmRhZjcwYjFm
ZWU3NmVlZTA4NjZiN2IwNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTM4Miw3ICszODIsNyBAQCBQcm90
b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpc2FibGUoKQog
ICAgIGluc3BlY3RlZFBhZ2VTZXR0aW5ncy5zZXRXZWJSVENFbmNyeXB0aW9uRW5hYmxlZEluc3Bl
Y3Rvck92ZXJyaWRlKFdURjo6bnVsbG9wdCk7CiAgICAgaW5zcGVjdGVkUGFnZVNldHRpbmdzLnNl
dFdlYlNlY3VyaXR5RW5hYmxlZEluc3BlY3Rvck92ZXJyaWRlKFdURjo6bnVsbG9wdCk7CiAKLSAg
ICBtX2NsaWVudC0+c2V0RGV2ZWxvcGVyUHJlZmVyZW5jZU92ZXJyaWRlKEluc3BlY3RvckNsaWVu
dDo6RGV2ZWxvcGVyUHJlZmVyZW5jZTo6QWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxl
ZCwgV1RGOjpudWxsb3B0KTsKKyAgICBtX2NsaWVudC0+c2V0RGV2ZWxvcGVyUHJlZmVyZW5jZU92
ZXJyaWRlKEluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5jZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkLCBXVEY6Om51bGxvcHQpOwogICAgIG1fY2xpZW50
LT5zZXREZXZlbG9wZXJQcmVmZXJlbmNlT3ZlcnJpZGUoSW5zcGVjdG9yQ2xpZW50OjpEZXZlbG9w
ZXJQcmVmZXJlbmNlOjpJVFBEZWJ1Z01vZGVFbmFibGVkLCBXVEY6Om51bGxvcHQpOwogICAgIG1f
Y2xpZW50LT5zZXREZXZlbG9wZXJQcmVmZXJlbmNlT3ZlcnJpZGUoSW5zcGVjdG9yQ2xpZW50OjpE
ZXZlbG9wZXJQcmVmZXJlbmNlOjpNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkLCBXVEY6Om51bGxv
cHQpOwogCkBAIC00MzEsOCArNDMxLDggQEAgUHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4g
SW5zcGVjdG9yUGFnZUFnZW50OjpvdmVycmlkZVNldHRpbmcoUHJvdG9jb2w6OlBhZ2UKICAgICBh
dXRvJiBpbnNwZWN0ZWRQYWdlU2V0dGluZ3MgPSBtX2luc3BlY3RlZFBhZ2Uuc2V0dGluZ3MoKTsK
IAogICAgIHN3aXRjaCAoc2V0dGluZykgewotICAgIGNhc2UgUHJvdG9jb2w6OlBhZ2U6OlNldHRp
bmc6OkFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQ6Ci0gICAgICAgIG1fY2xpZW50
LT5zZXREZXZlbG9wZXJQcmVmZXJlbmNlT3ZlcnJpZGUoSW5zcGVjdG9yQ2xpZW50OjpEZXZlbG9w
ZXJQcmVmZXJlbmNlOjpBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkLCB2YWx1ZSk7
CisgICAgY2FzZSBQcm90b2NvbDo6UGFnZTo6U2V0dGluZzo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnREZWJ1Z01vZGVFbmFibGVkOgorICAgICAgICBtX2NsaWVudC0+c2V0RGV2ZWxvcGVyUHJlZmVy
ZW5jZU92ZXJyaWRlKEluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5jZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkLCB2YWx1ZSk7CiAgICAgICAgIHJldHVy
biB7IH07CiAKICAgICBjYXNlIFByb3RvY29sOjpQYWdlOjpTZXR0aW5nOjpBdXRob3JBbmRVc2Vy
U3R5bGVzRW5hYmxlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvcGFnZS9QYWdlQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50LmNwcAppbmRleCBkNDkwMWYzNWIwODUzMjBkNGMx
NGFlYmExZGI2YjI3YmM2YjI4NjFmLi5iODJkNmVmMzg2YmY2NzBjYWY0NDc1MTMzZmU4Y2QwMTZi
N2Q3MTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2Uv
UGFnZUNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgUHJvdG9jb2w6
OkVycm9yU3RyaW5nT3I8UmVmPEpTT046OkFycmF5T2Y8UHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5u
ZWw+Pj4gUGFnZUNvbnMKICAgICBhZGRMb2dDaGFubmVsKFByb3RvY29sOjpDb25zb2xlOjpDaGFu
bmVsU291cmNlOjpNZWRpYVNvdXJjZSk7CiAgICAgYWRkTG9nQ2hhbm5lbChQcm90b2NvbDo6Q29u
c29sZTo6Q2hhbm5lbFNvdXJjZTo6V2ViUlRDKTsKICAgICBhZGRMb2dDaGFubmVsKFByb3RvY29s
OjpDb25zb2xlOjpDaGFubmVsU291cmNlOjpJVFBEZWJ1Zyk7Ci0gICAgYWRkTG9nQ2hhbm5lbChQ
cm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbFNvdXJjZTo6QWRDbGlja0F0dHJpYnV0aW9uKTsKKyAg
ICBhZGRMb2dDaGFubmVsKFByb3RvY29sOjpDb25zb2xlOjpDaGFubmVsU291cmNlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCk7CiAgICAgYWRkTG9nQ2hhbm5lbChQcm90b2NvbDo6Q29uc29sZTo6
Q2hhbm5lbFNvdXJjZTo6T3RoZXIpOwogCiAgICAgcmV0dXJuIGNoYW5uZWxzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0FkQ2xpY2tBdHRyaWJ1dGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvQWRDbGlja0F0dHJpYnV0aW9uLmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNDIzMTFiZThkOTlhMjMxYjlhNDY1NTFiMGU0OTNhMDVhZTgxODRkNC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvQWRDbGlja0F0dHJpYnV0aW9uLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDIyOSAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkFkQ2xp
Y2tBdHRyaWJ1dGlvbi5oIgotCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlJ1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaCIKLSNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQuaD4KLSNpbmNsdWRl
IDx3dGYvUmFuZG9tTnVtYmVyLmg+Ci0jaW5jbHVkZSA8d3RmL1VSTC5oPgotI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3RhdGljIGNvbnN0IGNoYXIgYWRDbGlja0F0dHJp
YnV0aW9uUGF0aFByZWZpeFtdID0gIi8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8i
OwotY29uc3Qgc2l6ZV90IGFkQ2xpY2tDb252ZXJzaW9uRGF0YVBhdGhTZWdtZW50U2l6ZSA9IDI7
Ci1jb25zdCBzaXplX3QgYWRDbGlja1ByaW9yaXR5UGF0aFNlZ21lbnRTaXplID0gMjsKLWNvbnN0
IFNlY29uZHMgbWF4QWdlIHsgMjRfaCAqIDcgfTsKLQotYm9vbCBBZENsaWNrQXR0cmlidXRpb246
OmlzVmFsaWQoKSBjb25zdAotewotICAgIHJldHVybiBtX2NvbnZlcnNpb24KLSAgICAgICAgJiYg
bV9jb252ZXJzaW9uLnZhbHVlKCkuaXNWYWxpZCgpCi0gICAgICAgICYmIG1fY2FtcGFpZ24uaXNW
YWxpZCgpCi0gICAgICAgICYmICFtX3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbi5pc0VtcHR5KCkK
LSAgICAgICAgJiYgIW1fZGVzdGluYXRpb24ucmVnaXN0cmFibGVEb21haW4uaXNFbXB0eSgpCi0g
ICAgICAgICYmIG1fZWFybGllc3RUaW1lVG9TZW5kOwotfQotCi1FeHBlY3RlZDxBZENsaWNrQXR0
cmlidXRpb246OkNvbnZlcnNpb24sIFN0cmluZz4gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNv
bnZlcnNpb25SZXF1ZXN0KGNvbnN0IFVSTCYgcmVkaXJlY3RVUkwpCi17Ci0gICAgaWYgKCFyZWRp
cmVjdFVSTC5wcm90b2NvbElzKCJodHRwcyIpIHx8IHJlZGlyZWN0VVJMLmhhc0NyZWRlbnRpYWxz
KCkgfHwgcmVkaXJlY3RVUkwuaGFzUXVlcnkoKSB8fCByZWRpcmVjdFVSTC5oYXNGcmFnbWVudElk
ZW50aWZpZXIoKSkgewotICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkg
ewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhBZENsaWNrQXR0cmlidXRpb24sICJDb252
ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMJ3MgcHJvdG9jb2wgaXMgbm90
IEhUVFBTIG9yIHRoZSBVUkwgY29udGFpbnMgb25lIG9yIG1vcmUgb2YgdXNlcm5hbWUsIHBhc3N3
b3JkLCBxdWVyeSBzdHJpbmcsIGFuZCBmcmFnbWVudC4iKTsKLSAgICAgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZCgiW0FkIENsaWNrIEF0dHJpYnV0aW9uXSBDb252ZXJzaW9uIHdhcyBub3Qg
YWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMJ3MgcHJvdG9jb2wgaXMgbm90IEhUVFBTIG9yIHRoZSBV
UkwgY29udGFpbnMgb25lIG9yIG1vcmUgb2YgdXNlcm5hbWUsIHBhc3N3b3JkLCBxdWVyeSBzdHJp
bmcsIGFuZCBmcmFnbWVudC4iX3MpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChudWxsU3RyaW5nKCkpOwotICAgIH0KLQotICAgIGF1dG8gcGF0aCA9IFN0cmluZ1Zp
ZXcocmVkaXJlY3RVUkwuc3RyaW5nKCkpLnN1YnN0cmluZyhyZWRpcmVjdFVSTC5wYXRoU3RhcnQo
KSwgcmVkaXJlY3RVUkwucGF0aEVuZCgpIC0gcmVkaXJlY3RVUkwucGF0aFN0YXJ0KCkpOwotICAg
IGlmIChwYXRoLmlzRW1wdHkoKSB8fCAhcGF0aC5zdGFydHNXaXRoKGFkQ2xpY2tBdHRyaWJ1dGlv
blBhdGhQcmVmaXgpKSB7Ci0gICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkp
KSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgIkNv
bnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBVUkwgcGF0aCBkaWQgbm90IHN0
YXJ0IHdpdGggJSIgUFVCTElDX0xPR19TVFJJTkcgIi4iLCBhZENsaWNrQXR0cmlidXRpb25QYXRo
UHJlZml4KTsKLSAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJb
QWQgQ2xpY2sgQXR0cmlidXRpb25dIENvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNl
IHRoZSBVUkwgcGF0aCBkaWQgbm90IHN0YXJ0IHdpdGggIl9zLCBhZENsaWNrQXR0cmlidXRpb25Q
YXRoUHJlZml4LCAiLiJfcykpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZChudWxsU3RyaW5nKCkpOwotICAgIH0KLQotICAgIGF1dG8gcHJlZml4TGVuZ3RoID0gc2l6
ZW9mKGFkQ2xpY2tBdHRyaWJ1dGlvblBhdGhQcmVmaXgpIC0gMTsKLSAgICBpZiAocGF0aC5sZW5n
dGgoKSA9PSBwcmVmaXhMZW5ndGggKyBhZENsaWNrQ29udmVyc2lvbkRhdGFQYXRoU2VnbWVudFNp
emUpIHsKLSAgICAgICAgYXV0byBjb252ZXJzaW9uRGF0YVVJbnQ2NCA9IHBhdGguc3Vic3RyaW5n
KHByZWZpeExlbmd0aCwgYWRDbGlja0NvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRTaXplKS50b1VJ
bnQ2NFN0cmljdCgpOwotICAgICAgICBpZiAoIWNvbnZlcnNpb25EYXRhVUludDY0IHx8ICpjb252
ZXJzaW9uRGF0YVVJbnQ2NCA+IE1heEVudHJvcHkpIHsKLSAgICAgICAgICAgIGlmIChVTkxJS0VM
WShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5G
TyhBZENsaWNrQXR0cmlidXRpb24sICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVz
ZSB0aGUgY29udmVyc2lvbiBkYXRhIGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2FzIGhpZ2hlciB0
aGFuIHRoZSBhbGxvd2VkIG1heGltdW0gb2YgJXtwdWJsaWN9dS4iLCBNYXhFbnRyb3B5KTsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiW0FkIENsaWNr
IEF0dHJpYnV0aW9uXSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgY29u
dmVyc2lvbiBkYXRhIGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2FzIGhpZ2hlciB0aGFuIHRoZSBh
bGxvd2VkIG1heGltdW0gb2YgIl9zLCBNYXhFbnRyb3B5LCAiLiJfcykpOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG51bGxTdHJpbmcoKSk7Ci0gICAg
ICAgIH0KLQotICAgICAgICByZXR1cm4gQ29udmVyc2lvbiB7IHN0YXRpY19jYXN0PHVpbnQzMl90
PigqY29udmVyc2lvbkRhdGFVSW50NjQpLCBQcmlvcml0eSB7IDAgfSB9OwotICAgIH0KLSAgICAK
LSAgICBpZiAocGF0aC5sZW5ndGgoKSA9PSBwcmVmaXhMZW5ndGggKyBhZENsaWNrQ29udmVyc2lv
bkRhdGFQYXRoU2VnbWVudFNpemUgKyAxICsgYWRDbGlja1ByaW9yaXR5UGF0aFNlZ21lbnRTaXpl
KSB7Ci0gICAgICAgIGF1dG8gY29udmVyc2lvbkRhdGFVSW50NjQgPSBwYXRoLnN1YnN0cmluZyhw
cmVmaXhMZW5ndGgsIGFkQ2xpY2tDb252ZXJzaW9uRGF0YVBhdGhTZWdtZW50U2l6ZSkudG9VSW50
NjRTdHJpY3QoKTsKLSAgICAgICAgaWYgKCFjb252ZXJzaW9uRGF0YVVJbnQ2NCB8fCAqY29udmVy
c2lvbkRhdGFVSW50NjQgPiBNYXhFbnRyb3B5KSB7Ci0gICAgICAgICAgICBpZiAoVU5MSUtFTFko
ZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8o
QWRDbGlja0F0dHJpYnV0aW9uLCAiQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2Ug
dGhlIGNvbnZlcnNpb24gZGF0YSBjb3VsZCBub3QgYmUgcGFyc2VkIG9yIHdhcyBoaWdoZXIgdGhh
biB0aGUgYWxsb3dlZCBtYXhpbXVtIG9mICV7cHVibGljfXUuIiwgTWF4RW50cm9weSk7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIltBZCBDbGljayBB
dHRyaWJ1dGlvbl0gQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIGNvbnZl
cnNpb24gZGF0YSBjb3VsZCBub3QgYmUgcGFyc2VkIG9yIHdhcyBoaWdoZXIgdGhhbiB0aGUgYWxs
b3dlZCBtYXhpbXVtIG9mICJfcywgTWF4RW50cm9weSwgIi4iX3MpKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChudWxsU3RyaW5nKCkpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgYXV0byBjb252ZXJzaW9uUHJpb3JpdHlVSW50NjQgPSBwYXRoLnN1YnN0
cmluZyhwcmVmaXhMZW5ndGggKyBhZENsaWNrQ29udmVyc2lvbkRhdGFQYXRoU2VnbWVudFNpemUg
KyAxLCBhZENsaWNrUHJpb3JpdHlQYXRoU2VnbWVudFNpemUpLnRvVUludDY0U3RyaWN0KCk7Ci0g
ICAgICAgIGlmICghY29udmVyc2lvblByaW9yaXR5VUludDY0IHx8ICpjb252ZXJzaW9uUHJpb3Jp
dHlVSW50NjQgPiBNYXhFbnRyb3B5KSB7Ci0gICAgICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdN
b2RlRW5hYmxlZCgpKSkgewotICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oQWRDbGlj
a0F0dHJpYnV0aW9uLCAiQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIHBy
aW9yaXR5IGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2FzIGhpZ2hlciB0aGFuIHRoZSBhbGxvd2Vk
IG1heGltdW0gb2YgJXtwdWJsaWN9dS4iLCBNYXhFbnRyb3B5KTsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiW0FkIENsaWNrIEF0dHJpYnV0aW9uXSBD
b252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgcHJpb3JpdHkgY291bGQgbm90
IGJlIHBhcnNlZCBvciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQgbWF4aW11bSBvZiAiX3Ms
IE1heEVudHJvcHksICIuIl9zKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVy
biBDb252ZXJzaW9uIHsgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KCpjb252ZXJzaW9uRGF0YVVJbnQ2
NCksIFByaW9yaXR5IHsgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KCpjb252ZXJzaW9uUHJpb3JpdHlV
SW50NjQpIH0gfTsKLSAgICB9Ci0KLSAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgp
KSkgewotICAgICAgICBSRUxFQVNFX0xPR19JTkZPKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgIkNvbnZl
cnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBVUkwgcGF0aCBjb250YWluZWQgdW5y
ZWNvZ25pemVkIHBhcnRzLiIpOwotICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIltBZCBD
bGljayBBdHRyaWJ1dGlvbl0gQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhl
IFVSTCBwYXRoIGNvbnRhaW5lZCB1bnJlY29nbml6ZWQgcGFydHMuIl9zKTsKLSAgICB9Ci0gICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKG51bGxTdHJpbmcoKSk7Ci19Ci0KLU9wdGlvbmFsPFNlY29u
ZHM+IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Y29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChD
b252ZXJzaW9uJiYgY29udmVyc2lvbikKLXsKLSAgICBpZiAoIWNvbnZlcnNpb24uaXNWYWxpZCgp
IHx8IChtX2NvbnZlcnNpb24gJiYgbV9jb252ZXJzaW9uLT5wcmlvcml0eSA+PSBjb252ZXJzaW9u
LnByaW9yaXR5KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIG1fY29udmVyc2lvbiA9IFdU
Rk1vdmUoY29udmVyc2lvbik7Ci0gICAgLy8gMjQtNDggaG91ciBkZWxheSBiZWZvcmUgc2VuZGlu
Zy4gVGhpcyBoZWxwcyBwcml2YWN5IHNpbmNlIHRoZSBjb252ZXJzaW9uIGFuZCB0aGUgYXR0cmli
dXRpb24KLSAgICAvLyByZXF1ZXN0cyBhcmUgZGV0YWNoZWQgYW5kIHRoZSB0aW1lIG9mIHRoZSBh
dHRyaWJ1dGlvbiBkb2VzIG5vdCByZXZlYWwgdGhlIHRpbWUgb2YgdGhlIGNvbnZlcnNpb24uCi0g
ICAgYXV0byBzZWNvbmRzID0gMjRfaCArIFNlY29uZHMocmFuZG9tTnVtYmVyKCkgKiAoMjRfaCku
dmFsdWUoKSk7Ci0gICAgbV9lYXJsaWVzdFRpbWVUb1NlbmQgPSBXYWxsVGltZTo6bm93KCkgKyBz
ZWNvbmRzOwotICAgIHJldHVybiBzZWNvbmRzOwotfQotCi12b2lkIEFkQ2xpY2tBdHRyaWJ1dGlv
bjo6bWFya0FzRXhwaXJlZCgpCi17Ci0gICAgbV90aW1lT2ZBZENsaWNrID0geyB9OwotfQotCi1i
b29sIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6aGFzRXhwaXJlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IFdhbGxUaW1lOjpub3coKSA+IG1fdGltZU9mQWRDbGljayArIG1heEFnZTsKLX0KLQotYm9vbCBB
ZENsaWNrQXR0cmlidXRpb246Omhhc0hpZ2hlclByaW9yaXR5VGhhbihjb25zdCBBZENsaWNrQXR0
cmlidXRpb24mIG90aGVyKSBjb25zdAotewotICAgIGlmICghb3RoZXIubV9jb252ZXJzaW9uKQot
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAKLSAgICBpZiAoIW1fY29udmVyc2lvbikKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIG1fY29udmVyc2lvbi0+cHJpb3JpdHkgPiBv
dGhlci5tX2NvbnZlcnNpb24tPnByaW9yaXR5OwotfQotCi1VUkwgQWRDbGlja0F0dHJpYnV0aW9u
OjpyZXBvcnRVUkwoKSBjb25zdAotewotICAgIGlmICghaXNWYWxpZCgpKQotICAgICAgICByZXR1
cm4gVVJMKCk7Ci0KLSAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJodHRwczovLyIpOwotICAgIGJ1aWxkZXIuYXBwZW5kKG1fc291cmNlLnJlZ2lz
dHJhYmxlRG9tYWluLnN0cmluZygpKTsKLSAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoYWRDbGlj
a0F0dHJpYnV0aW9uUGF0aFByZWZpeCk7Ci0KLSAgICBVUkwgdXJsIHsgVVJMKCksIGJ1aWxkZXIu
dG9TdHJpbmcoKSB9OwotICAgIGlmICh1cmwuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm4gdXJs
OwotCi0gICAgcmV0dXJuIFVSTCgpOwotfQotCi1SZWY8SlNPTjo6T2JqZWN0PiBBZENsaWNrQXR0
cmlidXRpb246Ompzb24oKSBjb25zdAotewotICAgIGF1dG8gcmVwb3J0RGV0YWlscyA9IEpTT046
Ok9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgaWYgKCFtX2NvbnZlcnNpb24pCi0gICAgICAgIHJldHVy
biByZXBvcnREZXRhaWxzOwotCi0gICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJjb250ZW50
LXR5cGUiX3MsICJjbGljayJfcyk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJjb250
ZW50LXNpdGUiX3MsIG1fc291cmNlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKLSAgICBy
ZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2VyKCJjb250ZW50LWlkIl9zLCBtX2NhbXBhaWduLmlkKTsK
LSAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoImNvbnZlcnNpb24tc2l0ZSJfcywgbV9kZXN0
aW5hdGlvbi5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgcmVwb3J0RGV0YWlscy0+
c2V0SW50ZWdlcigiY29udmVyc2lvbi1kYXRhIl9zLCBtX2NvbnZlcnNpb24tPmRhdGEpOwotICAg
IHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoInJlcG9ydC12ZXJzaW9uIl9zLCAxKTsKLSAgICBy
ZXR1cm4gcmVwb3J0RGV0YWlsczsKLX0KLQotdm9pZCBBZENsaWNrQXR0cmlidXRpb246Om1hcmtD
b252ZXJzaW9uQXNTZW50KCkKLXsKLSAgICBBU1NFUlQobV9jb252ZXJzaW9uKTsKLSAgICBpZiAo
bV9jb252ZXJzaW9uKQotICAgICAgICBtX2NvbnZlcnNpb24tPndhc1NlbnQgPSBDb252ZXJzaW9u
OjpXYXNTZW50OjpZZXM7Ci19Ci0KLWJvb2wgQWRDbGlja0F0dHJpYnV0aW9uOjp3YXNDb252ZXJz
aW9uU2VudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY29udmVyc2lvbiAmJiBtX2NvbnZlcnNp
b24tPndhc1NlbnQgPT0gQ29udmVyc2lvbjo6V2FzU2VudDo6WWVzOwotfQotCi1TdHJpbmcgQWRD
bGlja0F0dHJpYnV0aW9uOjp0b1N0cmluZygpIGNvbnN0Ci17Ci0gICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiU291cmNlOiAiKTsKLSAgICBidWls
ZGVyLmFwcGVuZChtX3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJcbkRlc3RpbmF0aW9uOiAiKTsKLSAgICBidWlsZGVyLmFwcGVu
ZChtX2Rlc3RpbmF0aW9uLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKLSAgICBidWlsZGVy
LmFwcGVuZExpdGVyYWwoIlxuQ2FtcGFpZ24gSUQ6ICIpOwotICAgIGJ1aWxkZXIuYXBwZW5kTnVt
YmVyKG1fY2FtcGFpZ24uaWQpOwotICAgIGlmIChtX2NvbnZlcnNpb24pIHsKLSAgICAgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJcbkNvbnZlcnNpb24gZGF0YTogIik7Ci0gICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTnVtYmVyKG1fY29udmVyc2lvbi52YWx1ZSgpLmRhdGEpOwotICAgICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIlxuQ29udmVyc2lvbiBwcmlvcml0eTogIik7Ci0gICAgICAgIGJ1
aWxkZXIuYXBwZW5kTnVtYmVyKG1fY29udmVyc2lvbi52YWx1ZSgpLnByaW9yaXR5KTsKLSAgICAg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkNvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBz
ZW5kOiAiKTsKLSAgICAgICAgaWYgKCFtX2VhcmxpZXN0VGltZVRvU2VuZCkKLSAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiTm90IHNldCIpOwotICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICAgIGF1dG8gc2Vjb25kc1VudGlsU2VuZCA9ICptX2VhcmxpZXN0VGltZVRvU2VuZCAtIFdh
bGxUaW1lOjpub3coKTsKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKChzZWNvbmRzVW50aWxT
ZW5kID49IDI0X2ggJiYgc2Vjb25kc1VudGlsU2VuZCA8PSA0OF9oKSA/ICJXaXRoaW4gMjQtNDgg
aG91cnMiIDogIk91dHNpZGUgMjQtNDggaG91cnMiKTsKLSAgICAgICAgfQotICAgICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIlxuQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6ICIpOwotICAgICAg
ICBidWlsZGVyLmFwcGVuZCgod2FzQ29udmVyc2lvblNlbnQoKSA/ICJ0cnVlIiA6ICJmYWxzZSIp
KTsKLSAgICB9IGVsc2UKLSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbk5vIGNvbnZl
cnNpb24gZGF0YS4iKTsKLSAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLQotICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7Ci19Ci0KLWJvb2wgQWRDbGlja0F0dHJpYnV0aW9uOjpkZWJ1Z01v
ZGVFbmFibGVkKCkKLXsKLSAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5hZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkKCk7Ci19Ci0KLX0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9BZENsaWNrQXR0cmlidXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9BZENsaWNrQXR0cmlidXRpb24uaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggN2QxOWVjYTAwYmE0M2MxODFkZDE0ZjRhMzcwNTViODA4OTRmYTc4
OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvQWRDbGlja0F0dHJpYnV0aW9uLmgKKysrIC9kZXYvbnVsbApAQCAtMSwz
NjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiUmVnaXN0
cmFibGVEb21haW4uaCIKLSNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KLSNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+Ci0jaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+Ci0jaW5jbHVkZSA8d3RmL1VSTC5oPgotI2luY2x1ZGUgPHd0Zi9X
YWxsVGltZS5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBBZENs
aWNrQXR0cmlidXRpb24gewotcHVibGljOgotICAgIHVzaW5nIENhbXBhaWduSWQgPSB1aW50MzJf
dDsKLSAgICB1c2luZyBDb252ZXJzaW9uRGF0YSA9IHVpbnQzMl90OwotICAgIHVzaW5nIFByaW9y
aXR5VmFsdWUgPSB1aW50MzJfdDsKLQotICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgTWF4
RW50cm9weSA9IDYzOwotCi0gICAgc3RydWN0IENhbXBhaWduIHsKLSAgICAgICAgQ2FtcGFpZ24o
KSA9IGRlZmF1bHQ7Ci0gICAgICAgIGV4cGxpY2l0IENhbXBhaWduKENhbXBhaWduSWQgaWQpCi0g
ICAgICAgICAgICA6IGlkIHsgaWQgfQotICAgICAgICB7Ci0gICAgICAgIH0KLSAgICAgICAgCi0g
ICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBpZCA8PSBNYXhFbnRyb3B5OwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBDYW1wYWln
bklkIGlkIHsgMCB9OwotICAgIH07Ci0KLSAgICBzdHJ1Y3QgU291cmNlIHsKLSAgICAgICAgU291
cmNlKCkgPSBkZWZhdWx0OwotICAgICAgICBleHBsaWNpdCBTb3VyY2UoY29uc3QgVVJMJiB1cmwp
Ci0gICAgICAgICAgICA6IHJlZ2lzdHJhYmxlRG9tYWluIHsgdXJsIH0KLSAgICAgICAgewotICAg
ICAgICB9Ci0KLSAgICAgICAgZXhwbGljaXQgU291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBkb21haW4pCi0gICAgICAgICAgICA6IHJlZ2lzdHJhYmxlRG9tYWluIHsgZG9tYWluIH0KLSAg
ICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgZXhwbGljaXQgU291cmNlKFdURjo6SGFzaFRh
YmxlRGVsZXRlZFZhbHVlVHlwZSkKLSAgICAgICAgICAgIDogcmVnaXN0cmFibGVEb21haW4oV1RG
OjpIYXNoVGFibGVEZWxldGVkVmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAg
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBTb3VyY2UmIG90aGVyKSBjb25zdAotICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gcmVnaXN0cmFibGVEb21haW4gPT0gb3RoZXIucmVnaXN0cmFibGVE
b21haW47Ci0gICAgICAgIH0KLQotICAgICAgICBib29sIG1hdGNoZXMoY29uc3QgVVJMJiB1cmwp
IGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiByZWdpc3RyYWJsZURvbWFpbi5t
YXRjaGVzKHVybCk7Ci0gICAgICAgIH0KLQotICAgICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhYmxl
RG9tYWluLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBz
dGF0aWMgU291cmNlIGRlbGV0ZWRWYWx1ZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBTb3VyY2UgeyBXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9OwotICAgICAgICB9Ci0KLSAg
ICAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFNvdXJjZSYgc291cmNlKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBuZXcgKCZzb3VyY2UpIFNvdXJjZTsKLSAgICAgICAgICAg
IHNvdXJjZSA9IFNvdXJjZTo6ZGVsZXRlZFZhbHVlKCk7Ci0gICAgICAgIH0KLQotICAgICAgICB2
b2lkIGRlbGV0ZVZhbHVlKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmVnaXN0cmFibGVEb21h
aW4gPSBSZWdpc3RyYWJsZURvbWFpbiB7IFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlIH07Ci0g
ICAgICAgIH0KLQotICAgICAgICBib29sIGlzRGVsZXRlZFZhbHVlKCkgY29uc3QKLSAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7Ci0gICAgICAg
IH0KLQotICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RyYWJsZURvbWFpbjsKLSAgICB9
OwotCi0gICAgc3RydWN0IFNvdXJjZUhhc2ggewotICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFz
aChjb25zdCBTb3VyY2UmIHNvdXJjZSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHNv
dXJjZS5yZWdpc3RyYWJsZURvbWFpbi5oYXNoKCk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAg
ICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFNvdXJjZSYgYSwgY29uc3QgU291cmNlJiBiKQot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYSA9PSBiOwotICAgICAgICB9Ci0KLSAgICAg
ICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxz
ZTsKLSAgICB9OwotCi0gICAgc3RydWN0IERlc3RpbmF0aW9uIHsKLSAgICAgICAgRGVzdGluYXRp
b24oKSA9IGRlZmF1bHQ7Ci0gICAgICAgIGV4cGxpY2l0IERlc3RpbmF0aW9uKGNvbnN0IFVSTCYg
dXJsKQotICAgICAgICAgICAgOiByZWdpc3RyYWJsZURvbWFpbiB7IFJlZ2lzdHJhYmxlRG9tYWlu
IHsgdXJsIH0gfQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBleHBsaWNpdCBEZXN0
aW5hdGlvbihXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpCi0gICAgICAgICAgICA6IHJl
Z2lzdHJhYmxlRG9tYWluIHsgV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWUgfQotICAgICAgICB7
Ci0gICAgICAgIH0KLQotICAgICAgICBleHBsaWNpdCBEZXN0aW5hdGlvbihSZWdpc3RyYWJsZURv
bWFpbiYmIGRvbWFpbikKLSAgICAgICAgICAgIDogcmVnaXN0cmFibGVEb21haW4geyBXVEZNb3Zl
KGRvbWFpbikgfQotICAgICAgICB7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBEZXN0aW5hdGlvbiYgb3RoZXIpIGNvbnN0Ci0gICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiByZWdpc3RyYWJsZURvbWFpbiA9PSBvdGhlci5yZWdpc3RyYWJsZURv
bWFpbjsKLSAgICAgICAgfQotCi0gICAgICAgIGJvb2wgbWF0Y2hlcyhjb25zdCBVUkwmIHVybCkg
Y29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhYmxlRG9tYWluID09
IFJlZ2lzdHJhYmxlRG9tYWluIHsgdXJsIH07Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAg
IGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdAotICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gcmVnaXN0cmFibGVEb21haW4uaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKTsK
LSAgICAgICAgfQotCi0gICAgICAgIHN0YXRpYyBEZXN0aW5hdGlvbiBkZWxldGVkVmFsdWUoKQot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gRGVzdGluYXRpb24geyBXVEY6Okhhc2hUYWJs
ZURlbGV0ZWRWYWx1ZSB9OwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIHZvaWQgY29uc3Ry
dWN0RGVsZXRlZFZhbHVlKERlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbikKLSAgICAgICAgewotICAg
ICAgICAgICAgbmV3ICgmZGVzdGluYXRpb24pIERlc3RpbmF0aW9uOwotICAgICAgICAgICAgZGVz
dGluYXRpb24gPSBEZXN0aW5hdGlvbjo6ZGVsZXRlZFZhbHVlKCk7Ci0gICAgICAgIH0KLQotICAg
ICAgICB2b2lkIGRlbGV0ZVZhbHVlKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmVnaXN0cmFi
bGVEb21haW4gPSBSZWdpc3RyYWJsZURvbWFpbiB7IFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVl
IH07Ci0gICAgICAgIH0KLQotICAgICAgICBib29sIGlzRGVsZXRlZFZhbHVlKCkgY29uc3QKLSAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7Ci0g
ICAgICAgIH0KLQotICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RyYWJsZURvbWFpbjsK
LSAgICB9OwotCi0gICAgc3RydWN0IERlc3RpbmF0aW9uSGFzaCB7Ci0gICAgICAgIHN0YXRpYyB1
bnNpZ25lZCBoYXNoKGNvbnN0IERlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbikKLSAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIGRlc3RpbmF0aW9uLnJlZ2lzdHJhYmxlRG9tYWluLmhhc2goKTsK
LSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgRGVz
dGluYXRpb24mIGEsIGNvbnN0IERlc3RpbmF0aW9uJiBiKQotICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gYSA9PSBiOwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wg
c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKLSAgICB9OwotCi0gICAgc3Ry
dWN0IFByaW9yaXR5IHsKLSAgICAgICAgZXhwbGljaXQgUHJpb3JpdHkoUHJpb3JpdHlWYWx1ZSB2
YWx1ZSkKLSAgICAgICAgOiB2YWx1ZSB7IHZhbHVlIH0KLSAgICAgICAgewotICAgICAgICB9Ci0g
ICAgICAgIAotICAgICAgICBQcmlvcml0eVZhbHVlIHZhbHVlOwotICAgIH07Ci0gICAgCi0gICAg
c3RydWN0IENvbnZlcnNpb24gewotICAgICAgICBlbnVtIGNsYXNzIFdhc1NlbnQgOiBib29sIHsg
Tm8sIFllcyB9OwotICAgICAgICAKLSAgICAgICAgQ29udmVyc2lvbihDb252ZXJzaW9uRGF0YSBk
YXRhLCBQcmlvcml0eSBwcmlvcml0eSwgV2FzU2VudCB3YXNTZW50ID0gV2FzU2VudDo6Tm8pCi0g
ICAgICAgICAgICA6IGRhdGEgeyBkYXRhIH0KLSAgICAgICAgICAgICwgcHJpb3JpdHkgeyBwcmlv
cml0eS52YWx1ZSB9Ci0gICAgICAgICAgICAsIHdhc1NlbnQgeyB3YXNTZW50IH0KLSAgICAgICAg
ewotICAgICAgICB9Ci0KLSAgICAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QKLSAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIGRhdGEgPD0gTWF4RW50cm9weSAmJiBwcmlvcml0eSA8PSBNYXhF
bnRyb3B5OwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBDb252ZXJzaW9uRGF0YSBkYXRh
OwotICAgICAgICBQcmlvcml0eVZhbHVlIHByaW9yaXR5OwotICAgICAgICBXYXNTZW50IHdhc1Nl
bnQgPSBXYXNTZW50OjpObzsKLQotICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBPcHRpb25hbDxDb252ZXJzaW9uPiBkZWNvZGUoRGVjb2RlciYpOwotICAgIH07Ci0K
LSAgICBBZENsaWNrQXR0cmlidXRpb24oKSA9IGRlZmF1bHQ7Ci0gICAgQWRDbGlja0F0dHJpYnV0
aW9uKENhbXBhaWduIGNhbXBhaWduLCBjb25zdCBTb3VyY2UmIHNvdXJjZSwgY29uc3QgRGVzdGlu
YXRpb24mIGRlc3RpbmF0aW9uKQotICAgICAgICA6IG1fY2FtcGFpZ24geyBjYW1wYWlnbiB9Ci0g
ICAgICAgICwgbV9zb3VyY2UgeyBzb3VyY2UgfQotICAgICAgICAsIG1fZGVzdGluYXRpb24geyBk
ZXN0aW5hdGlvbiB9Ci0gICAgICAgICwgbV90aW1lT2ZBZENsaWNrIHsgV2FsbFRpbWU6Om5vdygp
IH0KLSAgICB7Ci0gICAgfQotCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEV4cGVjdGVkPENv
bnZlcnNpb24sIFN0cmluZz4gcGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb25zdCBVUkwmIHJlZGly
ZWN0VVJMKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxTZWNvbmRzPiBjb252ZXJ0QW5k
R2V0RWFybGllc3RUaW1lVG9TZW5kKENvbnZlcnNpb24mJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
Ym9vbCBoYXNIaWdoZXJQcmlvcml0eVRoYW4oY29uc3QgQWRDbGlja0F0dHJpYnV0aW9uJikgY29u
c3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgVVJMIHJlcG9ydFVSTCgpIGNvbnN0OwotICAgIFdFQkNP
UkVfRVhQT1JUIFJlZjxKU09OOjpPYmplY3Q+IGpzb24oKSBjb25zdDsKLSAgICBjb25zdCBTb3Vy
Y2UmIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9OwotICAgIGNvbnN0IERlc3Rp
bmF0aW9uJiBkZXN0aW5hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb247IH07Ci0g
ICAgT3B0aW9uYWw8V2FsbFRpbWU+IGVhcmxpZXN0VGltZVRvU2VuZCgpIGNvbnN0IHsgcmV0dXJu
IG1fZWFybGllc3RUaW1lVG9TZW5kOyB9OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbWFya0Fz
RXhwaXJlZCgpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzRXhwaXJlZCgpIGNvbnN0Owot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbWFya0NvbnZlcnNpb25Bc1NlbnQoKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCBib29sIHdhc0NvbnZlcnNpb25TZW50KCkgY29uc3Q7Ci0KLSAgICBib29sIGlz
RW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbi5pc0VtcHR5
KCk7IH07Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKLQot
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsK
LSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8QWRDbGlja0F0dHJp
YnV0aW9uPiBkZWNvZGUoRGVjb2RlciYpOwotCi1wcml2YXRlOgotICAgIGJvb2wgaXNWYWxpZCgp
IGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlYnVnTW9kZUVuYWJsZWQoKTsKLQotICAgIENhbXBh
aWduIG1fY2FtcGFpZ247Ci0gICAgU291cmNlIG1fc291cmNlOwotICAgIERlc3RpbmF0aW9uIG1f
ZGVzdGluYXRpb247Ci0gICAgV2FsbFRpbWUgbV90aW1lT2ZBZENsaWNrOwotCi0gICAgT3B0aW9u
YWw8Q29udmVyc2lvbj4gbV9jb252ZXJzaW9uOwotICAgIE9wdGlvbmFsPFdhbGxUaW1lPiBtX2Vh
cmxpZXN0VGltZVRvU2VuZDsKLX07Ci0KLXRlbXBsYXRlPGNsYXNzIEVuY29kZXI+Ci12b2lkIEFk
Q2xpY2tBdHRyaWJ1dGlvbjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0gICAg
ZW5jb2RlciA8PCBtX2NhbXBhaWduLmlkIDw8IG1fc291cmNlLnJlZ2lzdHJhYmxlRG9tYWluIDw8
IG1fZGVzdGluYXRpb24ucmVnaXN0cmFibGVEb21haW4gPDwgbV90aW1lT2ZBZENsaWNrIDw8IG1f
Y29udmVyc2lvbiA8PCBtX2VhcmxpZXN0VGltZVRvU2VuZDsKLX0KLQotdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4KLU9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4gQWRDbGlja0F0dHJpYnV0aW9u
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBPcHRpb25hbDxDYW1wYWlnbklkPiBj
YW1wYWlnbklkOwotICAgIGRlY29kZXIgPj4gY2FtcGFpZ25JZDsKLSAgICBpZiAoIWNhbXBhaWdu
SWQpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCi0gICAgT3B0aW9uYWw8UmVn
aXN0cmFibGVEb21haW4+IHNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluOwotICAgIGRlY29kZXIgPj4g
c291cmNlUmVnaXN0cmFibGVEb21haW47Ci0gICAgaWYgKCFzb3VyY2VSZWdpc3RyYWJsZURvbWFp
bikKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAgICBPcHRpb25hbDxSZWdp
c3RyYWJsZURvbWFpbj4gZGVzdGluYXRpb25SZWdpc3RyYWJsZURvbWFpbjsKLSAgICBkZWNvZGVy
ID4+IGRlc3RpbmF0aW9uUmVnaXN0cmFibGVEb21haW47Ci0gICAgaWYgKCFkZXN0aW5hdGlvblJl
Z2lzdHJhYmxlRG9tYWluKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAg
IE9wdGlvbmFsPFdhbGxUaW1lPiB0aW1lT2ZBZENsaWNrOwotICAgIGRlY29kZXIgPj4gdGltZU9m
QWRDbGljazsKLSAgICBpZiAoIXRpbWVPZkFkQ2xpY2spCi0gICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7Ci0gICAgCi0gICAgT3B0aW9uYWw8T3B0aW9uYWw8Q29udmVyc2lvbj4+IGNvbnZlcnNp
b247Ci0gICAgZGVjb2RlciA+PiBjb252ZXJzaW9uOwotICAgIGlmICghY29udmVyc2lvbikKLSAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAgICBPcHRpb25hbDxPcHRpb25hbDxX
YWxsVGltZT4+IGVhcmxpZXN0VGltZVRvU2VuZDsKLSAgICBkZWNvZGVyID4+IGVhcmxpZXN0VGlt
ZVRvU2VuZDsKLSAgICBpZiAoIWVhcmxpZXN0VGltZVRvU2VuZCkKLSAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKLSAgICAKLSAgICBBZENsaWNrQXR0cmlidXRpb24gYXR0cmlidXRpb24geyBD
YW1wYWlnbiB7IFdURk1vdmUoKmNhbXBhaWduSWQpIH0sIFNvdXJjZSB7IFdURk1vdmUoKnNvdXJj
ZVJlZ2lzdHJhYmxlRG9tYWluKSB9LCBEZXN0aW5hdGlvbiB7IFdURk1vdmUoKmRlc3RpbmF0aW9u
UmVnaXN0cmFibGVEb21haW4pIH0gfTsKLSAgICBhdHRyaWJ1dGlvbi5tX2NvbnZlcnNpb24gPSBX
VEZNb3ZlKCpjb252ZXJzaW9uKTsKLSAgICBhdHRyaWJ1dGlvbi5tX2VhcmxpZXN0VGltZVRvU2Vu
ZCA9IFdURk1vdmUoKmVhcmxpZXN0VGltZVRvU2VuZCk7Ci0gICAgCi0gICAgcmV0dXJuIGF0dHJp
YnV0aW9uOwotfQotCi10ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgotdm9pZCBBZENsaWNrQXR0cmli
dXRpb246OkNvbnZlcnNpb246OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAotewotICAg
IGVuY29kZXIgPDwgZGF0YSA8PCBwcmlvcml0eSA8PCB3YXNTZW50OwotfQotCi10ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPgotT3B0aW9uYWw8QWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uPiBB
ZENsaWNrQXR0cmlidXRpb246OkNvbnZlcnNpb246OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQot
ewotICAgIE9wdGlvbmFsPENvbnZlcnNpb25EYXRhPiBkYXRhOwotICAgIGRlY29kZXIgPj4gZGF0
YTsKLSAgICBpZiAoIWRhdGEpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCi0g
ICAgT3B0aW9uYWw8UHJpb3JpdHlWYWx1ZT4gcHJpb3JpdHk7Ci0gICAgZGVjb2RlciA+PiBwcmlv
cml0eTsKLSAgICBpZiAoIXByaW9yaXR5KQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owot
ICAgIAotICAgIE9wdGlvbmFsPFdhc1NlbnQ+IHdhc1NlbnQ7Ci0gICAgZGVjb2RlciA+PiB3YXNT
ZW50OwotICAgIGlmICghd2FzU2VudCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAg
ICAKLSAgICByZXR1cm4gQ29udmVyc2lvbiB7IFdURk1vdmUoKmRhdGEpLCBQcmlvcml0eSB7ICpw
cmlvcml0eSB9LCAqd2FzU2VudCB9OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLW5h
bWVzcGFjZSBXVEYgewotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IERlZmF1bHRIYXNoOwot
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRp
b246OlNvdXJjZT4gOiBXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OlNvdXJjZUhhc2ggeyB9
OwotdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRp
b246OlNvdXJjZT4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRp
b246OlNvdXJjZT4gewotICAgIHN0YXRpYyBXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OlNv
dXJjZSBlbXB0eVZhbHVlKCkgeyByZXR1cm4geyB9OyB9Ci0gICAgc3RhdGljIHZvaWQgY29uc3Ry
dWN0RGVsZXRlZFZhbHVlKFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlJiBzbG90
KSB7IFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlOjpjb25zdHJ1Y3REZWxldGVk
VmFsdWUoc2xvdCk7IH0KLSAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJD
b3JlOjpBZENsaWNrQXR0cmlidXRpb246OlNvdXJjZSYgc2xvdCkgeyByZXR1cm4gc2xvdC5pc0Rl
bGV0ZWRWYWx1ZSgpOyB9Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJD
b3JlOjpBZENsaWNrQXR0cmlidXRpb246OkRlc3RpbmF0aW9uPiA6IFdlYkNvcmU6OkFkQ2xpY2tB
dHRyaWJ1dGlvbjo6RGVzdGluYXRpb25IYXNoIHsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEhhc2hU
cmFpdHM8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbj4gOiBHZW5lcmlj
SGFzaFRyYWl0czxXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OkRlc3RpbmF0aW9uPiB7Ci0g
ICAgc3RhdGljIFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb24gZW1wdHlW
YWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQotICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRW
YWx1ZShXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OkRlc3RpbmF0aW9uJiBzbG90KSB7IFdl
YkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb246OmNvbnN0cnVjdERlbGV0ZWRW
YWx1ZShzbG90KTsgfQotICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYkNv
cmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb24mIHNsb3QpIHsgcmV0dXJuIHNsb3Qu
aXNEZWxldGVkVmFsdWUoKTsgfQotfTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCmluZGV4IGJlNmNhNzY5Mzk5MDBiY2NlNjNkODMwNTJiODE0MDVlZmQ2MDRhOTQuLjc5YzU0
NDhiOGM5MDZkMmZiNmQzMWZhZTk0MWViYmQ0MDhkNTdkNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcApAQCAtNDIyLDcgKzQyMiw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNo
ZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUG9saWN5
Q2hlCiAgICAgY2xpZW50KCkuZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShyZXNwb25z
ZSwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+cmVxdWVzdCgpLCBpZGVudGlmaWVyLCBhY3RpdmVE
b2N1bWVudExvYWRlcigpLT5kb3dubG9hZEF0dHJpYnV0ZSgpLCBXVEZNb3ZlKGZ1bmN0aW9uKSk7
CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmNoYW5nZUxvY2F0aW9uKGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIHBhc3NlZFRhcmdldCwgRXZlbnQqIHRyaWdnZXJpbmdFdmVudCwgTG9ja0hp
c3RvcnkgbG9ja0hpc3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlz
dCwgY29uc3QgUmVmZXJyZXJQb2xpY3kmIHJlZmVycmVyUG9saWN5LCBTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIE9wdGlvbmFsPE5ld0Zy
YW1lT3BlbmVyUG9saWN5PiBvcGVuZXJQb2xpY3ksIGNvbnN0IEF0b21TdHJpbmcmIGRvd25sb2Fk
QXR0cmlidXRlLCBjb25zdCBTeXN0ZW1QcmV2aWV3SW5mbyYgc3lzdGVtUHJldmlld0luZm8sIE9w
dGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4mJiBhZENsaWNrQXR0cmlidXRpb24pCit2b2lkIEZy
YW1lTG9hZGVyOjpjaGFuZ2VMb2NhdGlvbihjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBw
YXNzZWRUYXJnZXQsIEV2ZW50KiB0cmlnZ2VyaW5nRXZlbnQsIExvY2tIaXN0b3J5IGxvY2tIaXN0
b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QsIGNvbnN0IFJlZmVy
cmVyUG9saWN5JiByZWZlcnJlclBvbGljeSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBz
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBPcHRpb25hbDxOZXdGcmFtZU9wZW5lclBvbGlj
eT4gb3BlbmVyUG9saWN5LCBjb25zdCBBdG9tU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgY29u
c3QgU3lzdGVtUHJldmlld0luZm8mIHN5c3RlbVByZXZpZXdJbmZvLCBPcHRpb25hbDxQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudD4mJiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkKIHsKICAgICBhdXRv
KiBmcmFtZSA9IGxleGljYWxGcmFtZUZyb21Db21tb25WTSgpOwogICAgIGF1dG8gaW5pdGlhdGVk
QnlNYWluRnJhbWUgPSBmcmFtZSAmJiBmcmFtZS0+aXNNYWluRnJhbWUoKSA/IEluaXRpYXRlZEJ5
TWFpbkZyYW1lOjpZZXMgOiBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93bjsKQEAgLTQzNSwx
MCArNDM1LDEwIEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNoYW5nZUxvY2F0aW9uKGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIHBhc3NlZFRhcmdldCwgRXZlCiAgICAgZnJhbWVMb2FkUmVxdWVz
dC5zZXRSZWZlcnJlclBvbGljeShyZWZlcnJlclBvbGljeSk7CiAgICAgZnJhbWVMb2FkUmVxdWVz
dC5zZXRTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3kpOwogICAgIGZyYW1lTG9hZFJlcXVlc3QuZGlzYWJsZVNob3VsZFJlcGxhY2VEb2N1bWVu
dElmSmF2YVNjcmlwdFVSTCgpOwotICAgIGNoYW5nZUxvY2F0aW9uKFdURk1vdmUoZnJhbWVMb2Fk
UmVxdWVzdCksIHRyaWdnZXJpbmdFdmVudCwgV1RGTW92ZShhZENsaWNrQXR0cmlidXRpb24pKTsK
KyAgICBjaGFuZ2VMb2NhdGlvbihXVEZNb3ZlKGZyYW1lTG9hZFJlcXVlc3QpLCB0cmlnZ2VyaW5n
RXZlbnQsIFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpKTsKIH0KIAotdm9pZCBGcmFt
ZUxvYWRlcjo6Y2hhbmdlTG9jYXRpb24oRnJhbWVMb2FkUmVxdWVzdCYmIGZyYW1lUmVxdWVzdCwg
RXZlbnQqIHRyaWdnZXJpbmdFdmVudCwgT3B0aW9uYWw8QWRDbGlja0F0dHJpYnV0aW9uPiYmIGFk
Q2xpY2tBdHRyaWJ1dGlvbikKK3ZvaWQgRnJhbWVMb2FkZXI6OmNoYW5nZUxvY2F0aW9uKEZyYW1l
TG9hZFJlcXVlc3QmJiBmcmFtZVJlcXVlc3QsIEV2ZW50KiB0cmlnZ2VyaW5nRXZlbnQsIE9wdGlv
bmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmIHByaXZhdGVDbGlja01lYXN1cmVtZW50KQog
ewogICAgIEZSQU1FTE9BREVSX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUmVzb3VyY2VMb2FkaW5n
LCAiY2hhbmdlTG9jYXRpb246IGZyYW1lIGxvYWQgc3RhcnRlZCIpOwogICAgIEFTU0VSVChmcmFt
ZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJHRVQiKTsKQEAgLTQ1
Niw3ICs0NTYsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGFuZ2VMb2NhdGlvbihGcmFtZUxvYWRS
ZXF1ZXN0JiYgZnJhbWVSZXF1ZXN0LCBFdmVudCogdHJpZ2dlcgogCiAgICAgbV9mcmFtZS5kb2N1
bWVudCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElm
TmVlZGVkKGZyYW1lUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgQ29udGVudFNlY3VyaXR5UG9s
aWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpOYXZpZ2F0aW9uKTsKIAotICAgIGxvYWRGcmFtZVJl
cXVlc3QoV1RGTW92ZShmcmFtZVJlcXVlc3QpLCB0cmlnZ2VyaW5nRXZlbnQsIHsgfSwgV1RGTW92
ZShhZENsaWNrQXR0cmlidXRpb24pKTsKKyAgICBsb2FkRnJhbWVSZXF1ZXN0KFdURk1vdmUoZnJh
bWVSZXF1ZXN0KSwgdHJpZ2dlcmluZ0V2ZW50LCB7IH0sIFdURk1vdmUocHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQpKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6c3VibWl0Rm9ybShSZWY8Rm9ybVN1
Ym1pc3Npb24+JiYgc3VibWlzc2lvbikKQEAgLTEyMzksNyArMTIzOSw3IEBAIHZvaWQgRnJhbWVM
b2FkZXI6OnNldHVwRm9yUmVwbGFjZSgpCiAgICAgZGV0YWNoQ2hpbGRyZW4oKTsKIH0KIAotdm9p
ZCBGcmFtZUxvYWRlcjo6bG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0JiYgcmVxdWVz
dCwgRXZlbnQqIGV2ZW50LCBSZWZQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgT3B0aW9uYWw8
QWRDbGlja0F0dHJpYnV0aW9uPiYmIGFkQ2xpY2tBdHRyaWJ1dGlvbikKK3ZvaWQgRnJhbWVMb2Fk
ZXI6OmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVlc3QsIEV2ZW50KiBl
dmVudCwgUmVmUHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIE9wdGlvbmFsPFByaXZhdGVDbGlj
a01lYXN1cmVtZW50PiYmIHByaXZhdGVDbGlja01lYXN1cmVtZW50KQogewogICAgIEZSQU1FTE9B
REVSX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUmVzb3VyY2VMb2FkaW5nLCAibG9hZEZyYW1lUmVx
dWVzdDogZnJhbWUgbG9hZCBzdGFydGVkIik7CiAKQEAgLTEyODcsNyArMTI4Nyw3IEBAIHZvaWQg
RnJhbWVMb2FkZXI6OmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVlc3Qs
IEV2ZW50KiBldmVudCwgUmVmCiAgICAgaWYgKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuaHR0
cE1ldGhvZCgpID09ICJQT1NUIikKICAgICAgICAgbG9hZFBvc3RSZXF1ZXN0KFdURk1vdmUocmVx
dWVzdCksIHJlZmVycmVyLCBsb2FkVHlwZSwgZXZlbnQsIFdURk1vdmUoZm9ybVN0YXRlKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgIGVsc2UKLSAgICAgICAgbG9hZFVSTChXVEZN
b3ZlKHJlcXVlc3QpLCByZWZlcnJlciwgbG9hZFR5cGUsIGV2ZW50LCBXVEZNb3ZlKGZvcm1TdGF0
ZSksIFdURk1vdmUoYWRDbGlja0F0dHJpYnV0aW9uKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOworICAgICAgICBsb2FkVVJMKFdURk1vdmUocmVxdWVzdCksIHJlZmVycmVyLCBsb2FkVHlw
ZSwgZXZlbnQsIFdURk1vdmUoZm9ybVN0YXRlKSwgV1RGTW92ZShwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogc3RhdGljIFNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvQXBwbHko
RnJhbWUmIGN1cnJlbnRGcmFtZSwgSW5pdGlhdGVkQnlNYWluRnJhbWUgaW5pdGlhdGVkQnlNYWlu
RnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgcHJvcGFnYXRlZFBvbGljeSkKQEAg
LTEzMjksNyArMTMyOSw3IEBAIGJvb2wgRnJhbWVMb2FkZXI6OmlzU3RvcExvYWRpbmdBbGxvd2Vk
KCkgY29uc3QKICAgICByZXR1cm4gbV9wYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQg
PT0gUGFnZURpc21pc3NhbFR5cGU6Ok5vbmU7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmxvYWRV
UkwoRnJhbWVMb2FkUmVxdWVzdCYmIGZyYW1lTG9hZFJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcmVm
ZXJyZXIsIEZyYW1lTG9hZFR5cGUgbmV3TG9hZFR5cGUsIEV2ZW50KiBldmVudCwgUmVmUHRyPEZv
cm1TdGF0ZT4mJiBmb3JtU3RhdGUsIE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4mJiBhZENs
aWNrQXR0cmlidXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgRnJhbWVMb2FkZXI6OmxvYWRVUkwoRnJhbWVMb2FkUmVxdWVzdCYmIGZyYW1l
TG9hZFJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIEZyYW1lTG9hZFR5cGUgbmV3TG9h
ZFR5cGUsIEV2ZW50KiBldmVudCwgUmVmUHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIE9wdGlv
bmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmIHByaXZhdGVDbGlja01lYXN1cmVtZW50LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgRlJB
TUVMT0FERVJfUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChSZXNvdXJjZUxvYWRpbmcsICJsb2FkVVJM
OiBmcmFtZSBsb2FkIHN0YXJ0ZWQiKTsKICAgICBBU1NFUlQoZnJhbWVMb2FkUmVxdWVzdC5yZXNv
dXJjZVJlcXVlc3QoKS5odHRwTWV0aG9kKCkgPT0gIkdFVCIpOwpAQCAtMTM0OCw3ICsxMzQ4LDcg
QEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFVSTChGcmFtZUxvYWRSZXF1ZXN0JiYgZnJhbWVMb2Fk
UmVxdWVzdCwgY29uc3QgU3RyaW5nJiByZWYKICAgICBhdXRvIHRhcmdldEZyYW1lID0gaXNGb3Jt
U3VibWlzc2lvbiA/IG51bGxwdHIgOiBtYWtlUmVmUHRyKGZpbmRGcmFtZUZvck5hdmlnYXRpb24o
ZWZmZWN0aXZlRnJhbWVOYW1lKSk7CiAgICAgaWYgKHRhcmdldEZyYW1lICYmIHRhcmdldEZyYW1l
ICE9ICZtX2ZyYW1lKSB7CiAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0RnJhbWVOYW1lKCJf
c2VsZiIpOwotICAgICAgICB0YXJnZXRGcmFtZS0+bG9hZGVyKCkubG9hZFVSTChXVEZNb3ZlKGZy
YW1lTG9hZFJlcXVlc3QpLCByZWZlcnJlciwgbmV3TG9hZFR5cGUsIGV2ZW50LCBXVEZNb3ZlKGZv
cm1TdGF0ZSksIFdURk1vdmUoYWRDbGlja0F0dHJpYnV0aW9uKSwgY29tcGxldGlvbkhhbmRsZXJD
YWxsZXIucmVsZWFzZSgpKTsKKyAgICAgICAgdGFyZ2V0RnJhbWUtPmxvYWRlcigpLmxvYWRVUkwo
V1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSwgcmVmZXJyZXIsIG5ld0xvYWRUeXBlLCBldmVudCwg
V1RGTW92ZShmb3JtU3RhdGUpLCBXVEZNb3ZlKHByaXZhdGVDbGlja01lYXN1cmVtZW50KSwgY29t
cGxldGlvbkhhbmRsZXJDYWxsZXIucmVsZWFzZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtMTM2Nyw4ICsxMzY3LDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFVSTChGcmFtZUxv
YWRSZXF1ZXN0JiYgZnJhbWVMb2FkUmVxdWVzdCwgY29uc3QgU3RyaW5nJiByZWYKICAgICBOYXZp
Z2F0aW9uQWN0aW9uIGFjdGlvbiB7IGZyYW1lTG9hZFJlcXVlc3QucmVxdWVzdGVyKCksIHJlcXVl
c3QsIGZyYW1lTG9hZFJlcXVlc3QuaW5pdGlhdGVkQnlNYWluRnJhbWUoKSwgbmV3TG9hZFR5cGUs
IGlzRm9ybVN1Ym1pc3Npb24sIGV2ZW50LCBmcmFtZUxvYWRSZXF1ZXN0LnNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3koKSwgZnJhbWVMb2FkUmVxdWVzdC5kb3dubG9hZEF0dHJpYnV0ZSgpIH07
CiAgICAgYWN0aW9uLnNldExvY2tIaXN0b3J5KGZyYW1lTG9hZFJlcXVlc3QubG9ja0hpc3Rvcnko
KSk7CiAgICAgYWN0aW9uLnNldExvY2tCYWNrRm9yd2FyZExpc3QoZnJhbWVMb2FkUmVxdWVzdC5s
b2NrQmFja0ZvcndhcmRMaXN0KCkpOwotICAgIGlmIChhZENsaWNrQXR0cmlidXRpb24gJiYgbV9m
cmFtZS5pc01haW5GcmFtZSgpKQotICAgICAgICBhY3Rpb24uc2V0QWRDbGlja0F0dHJpYnV0aW9u
KFdURk1vdmUoKmFkQ2xpY2tBdHRyaWJ1dGlvbikpOworICAgIGlmIChwcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCAmJiBtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpCisgICAgICAgIGFjdGlvbi5zZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudChXVEZNb3ZlKCpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkpOwog
CiAgICAgTmV3RnJhbWVPcGVuZXJQb2xpY3kgb3BlbmVyUG9saWN5ID0gZnJhbWVMb2FkUmVxdWVz
dC5uZXdGcmFtZU9wZW5lclBvbGljeSgpOwogICAgIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwgPSBmcmFtZUxvYWRSZXF1ZXN0LmFsbG93TmF2
aWdhdGlvblRvSW52YWxpZFVSTCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRl
eCA4NGIwODVlNjgwMDM2NTIxYWJlMjhkODY5YWRlN2FlYTkxMTAxZGMyLi5jMmY2MzlhY2VmOGVj
MzQzNjk1NTVhOTMxN2VkNjkyODI0MmU3YmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaApAQCAtMzEsNyArMzEsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkFkQ2xp
Y2tBdHRyaWJ1dGlvbi5oIgogI2luY2x1ZGUgIkNhY2hlUG9saWN5LmgiCiAjaW5jbHVkZSAiRnJh
bWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCIKQEAg
LTM5LDYgKzM4LDcgQEAKICNpbmNsdWRlICJMYXlvdXRNaWxlc3RvbmUuaCIKICNpbmNsdWRlICJN
aXhlZENvbnRlbnRDaGVja2VyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKKyNpbmNs
dWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkTm90aWZpZXIuaCIKICNpbmNsdWRlICJSZXNvdXJj
ZUxvYWRlck9wdGlvbnMuaCIKQEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXR1cEZvclJlcGxhY2UoKTsKIAogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgYWxsIGZ1bmN0aW9u
cyB3aGljaCBzdGFydCBsb2Fkcy4gV2UgaGF2ZSB0b28gbWFueS4KLSAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYmLCBFdmVudCosIFJlZlB0
cjxGb3JtU3RhdGU+JiYsIE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4mJiA9IFdURjo6bnVs
bG9wdCk7IC8vIENhbGxlZCBieSBzdWJtaXRGb3JtLCBjYWxscyBsb2FkUG9zdFJlcXVlc3QgYW5k
IGxvYWRVUkwuCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBsb2FkRnJhbWVSZXF1ZXN0KEZyYW1l
TG9hZFJlcXVlc3QmJiwgRXZlbnQqLCBSZWZQdHI8Rm9ybVN0YXRlPiYmLCBPcHRpb25hbDxQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudD4mJiA9IFdURjo6bnVsbG9wdCk7IC8vIENhbGxlZCBieSBzdWJt
aXRGb3JtLCBjYWxscyBsb2FkUG9zdFJlcXVlc3QgYW5kIGxvYWRVUkwuCiAKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGxvYWQoRnJhbWVMb2FkUmVxdWVzdCYmKTsKIApAQCAtMTMzLDggKzEzMyw4
IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIHVuc2lnbmVkIGxvbmcgbG9hZFJlc291cmNlU3luY2hy
b25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBDbGllbnRDcmVkZW50aWFsUG9saWN5LCBj
b25zdCBGZXRjaE9wdGlvbnMmLCBjb25zdCBIVFRQSGVhZGVyTWFwJiwgUmVzb3VyY2VFcnJvciYs
IFJlc291cmNlUmVzcG9uc2UmLCBSZWZQdHI8U2hhcmVkQnVmZmVyPiYgZGF0YSk7CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGNoYW5nZUxvY2F0aW9uKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmlu
ZyYgdGFyZ2V0LCBFdmVudCosIExvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0LCBjb25z
dCBSZWZlcnJlclBvbGljeSYsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIE9wdGlvbmFs
PE5ld0ZyYW1lT3BlbmVyUG9saWN5PiA9IFdURjo6bnVsbG9wdCwgY29uc3QgQXRvbVN0cmluZyYg
ZG93bmxvYWRBdHRyaWJ1dGUgPSBudWxsQXRvbSgpLCBjb25zdCBTeXN0ZW1QcmV2aWV3SW5mbyYg
PSB7IH0sIE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4mJiA9IFdURjo6bnVsbG9wdCk7Ci0g
ICAgdm9pZCBjaGFuZ2VMb2NhdGlvbihGcmFtZUxvYWRSZXF1ZXN0JiYsIEV2ZW50KiA9IG51bGxw
dHIsIE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4mJiA9IFdURjo6bnVsbG9wdCk7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBjaGFuZ2VMb2NhdGlvbihjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmIHRhcmdldCwgRXZlbnQqLCBMb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCwgY29u
c3QgUmVmZXJyZXJQb2xpY3kmLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBPcHRpb25h
bDxOZXdGcmFtZU9wZW5lclBvbGljeT4gPSBXVEY6Om51bGxvcHQsIGNvbnN0IEF0b21TdHJpbmcm
IGRvd25sb2FkQXR0cmlidXRlID0gbnVsbEF0b20oKSwgY29uc3QgU3lzdGVtUHJldmlld0luZm8m
ID0geyB9LCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mJiA9IFdURjo6bnVsbG9w
dCk7CisgICAgdm9pZCBjaGFuZ2VMb2NhdGlvbihGcmFtZUxvYWRSZXF1ZXN0JiYsIEV2ZW50KiA9
IG51bGxwdHIsIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmID0gV1RGOjpudWxs
b3B0KTsKICAgICB2b2lkIHN1Ym1pdEZvcm0oUmVmPEZvcm1TdWJtaXNzaW9uPiYmKTsKIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVsb2FkKE9wdGlvblNldDxSZWxvYWRPcHRpb24+ID0geyB9
KTsKQEAgLTM4Nyw3ICszODcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbG9hZFdpdGhOYXZpZ2F0
aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIE5hdmlnYXRpb25BY3Rpb24mJiwgRnJh
bWVMb2FkVHlwZSwgUmVmUHRyPEZvcm1TdGF0ZT4mJiwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlk
VVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgPSBbXSB7IH0pOyAvLyBDYWxscyBsb2Fk
V2l0aERvY3VtZW50TG9hZGVyCiAKICAgICB2b2lkIGxvYWRQb3N0UmVxdWVzdChGcmFtZUxvYWRS
ZXF1ZXN0JiYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIEZyYW1lTG9hZFR5cGUsIEV2ZW50Kiwg
UmVmUHRyPEZvcm1TdGF0ZT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2
b2lkIGxvYWRVUkwoRnJhbWVMb2FkUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBG
cmFtZUxvYWRUeXBlLCBFdmVudCosIFJlZlB0cjxGb3JtU3RhdGU+JiYsIE9wdGlvbmFsPEFkQ2xp
Y2tBdHRyaWJ1dGlvbj4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lk
IGxvYWRVUkwoRnJhbWVMb2FkUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBGcmFt
ZUxvYWRUeXBlLCBFdmVudCosIFJlZlB0cjxGb3JtU3RhdGU+JiYsIE9wdGlvbmFsPFByaXZhdGVD
bGlja01lYXN1cmVtZW50PiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAg
Ym9vbCBzaG91bGRSZWxvYWQoY29uc3QgVVJMJiBjdXJyZW50VVJMLCBjb25zdCBVUkwmIGRlc3Rp
bmF0aW9uVVJMKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRp
b25BY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgKaW5k
ZXggNjk5NGRmMzgwNzBiNzJmNmU2MmNkZGQ2NjM3ZjQwM2E1ZmI1NDQ2NC4uZGMyMDAxOTAwZjU1
ZDYyODk4Yzg3NDkzNWQ1ZGE3ZmQ4MjlmNTQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2
aWdhdGlvbkFjdGlvbi5oCkBAIC0yOCwxMSArMjgsMTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
bmNsdWRlICJBZENsaWNrQXR0cmlidXRpb24uaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZEl0ZW1J
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIkds
b2JhbEZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkxheW91dFBvaW50LmgiCisjaW5jbHVk
ZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3Qu
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5k
aWNhdG9yLmgiCkBAIC0xMzcsOCArMTM3LDggQEAgcHVibGljOgogICAgIExvY2tCYWNrRm9yd2Fy
ZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9ja0JhY2tGb3J3
YXJkTGlzdDsgfQogICAgIHZvaWQgc2V0TG9ja0JhY2tGb3J3YXJkTGlzdChMb2NrQmFja0Zvcndh
cmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QpIHsgbV9sb2NrQmFja0ZvcndhcmRMaXN0ID0gbG9j
a0JhY2tGb3J3YXJkTGlzdDsgfQogCi0gICAgY29uc3QgT3B0aW9uYWw8QWRDbGlja0F0dHJpYnV0
aW9uPiYgYWRDbGlja0F0dHJpYnV0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9hZENsaWNrQXR0cmli
dXRpb247IH07Ci0gICAgdm9pZCBzZXRBZENsaWNrQXR0cmlidXRpb24oQWRDbGlja0F0dHJpYnV0
aW9uJiYgYWRDbGlja0F0dHJpYnV0aW9uKSB7IG1fYWRDbGlja0F0dHJpYnV0aW9uID0gYWRDbGlj
a0F0dHJpYnV0aW9uOyB9OworICAgIGNvbnN0IE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVt
ZW50PiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGVD
bGlja01lYXN1cmVtZW50OyB9OworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQo
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkgeyBtX3By
aXZhdGVDbGlja01lYXN1cmVtZW50ID0gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7IH07CiAKIHBy
aXZhdGU6CiAgICAgLy8gRG8gbm90IGFkZCBhIHN0cm9uZyByZWZlcmVuY2UgdG8gdGhlIG9yaWdp
bmF0aW5nIGRvY3VtZW50IG9yIGEgc3Vib2JqZWN0IHRoYXQgaG9sZHMgdGhlCkBAIC0xNTksNyAr
MTU5LDcgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVy
PiBtX3NvdXJjZUJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXI7CiAgICAgTG9ja0hpc3RvcnkgbV9s
b2NrSGlzdG9yeSB7IExvY2tIaXN0b3J5OjpObyB9OwogICAgIExvY2tCYWNrRm9yd2FyZExpc3Qg
bV9sb2NrQmFja0ZvcndhcmRMaXN0IHsgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8gfTsKLSAgICBP
cHRpb25hbDxBZENsaWNrQXR0cmlidXRpb24+IG1fYWRDbGlja0F0dHJpYnV0aW9uOworICAgIE9w
dGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY3ZTZjZDhmODc3
MDFlODcwMmMyNWE4NzY5NDQ1MjY5OWE0YzcxZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTAsMCArMSwyMjkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuaCIKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJSdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSA8d3RmL0V4cGVjdGVkLmg+CisjaW5jbHVk
ZSA8d3RmL1JhbmRvbU51bWJlci5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBjb25zdCBjaGFyIHByaXZhdGVDbGlj
a01lYXN1cmVtZW50UGF0aFByZWZpeFtdID0gIi8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1l
YXN1cmVtZW50LyI7Citjb25zdCBzaXplX3QgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJz
aW9uRGF0YVBhdGhTZWdtZW50U2l6ZSA9IDI7Citjb25zdCBzaXplX3QgcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRQcmlvcml0eVBhdGhTZWdtZW50U2l6ZSA9IDI7Citjb25zdCBTZWNvbmRzIG1heEFn
ZSB7IDI0X2ggKiA3IH07CisKK2Jvb2wgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmlzVmFsaWQo
KSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnZlcnNpb24KKyAgICAgICAgJiYgbV9jb252ZXJz
aW9uLnZhbHVlKCkuaXNWYWxpZCgpCisgICAgICAgICYmIG1fY2FtcGFpZ24uaXNWYWxpZCgpCisg
ICAgICAgICYmICFtX3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbi5pc0VtcHR5KCkKKyAgICAgICAg
JiYgIW1fZGVzdGluYXRpb24ucmVnaXN0cmFibGVEb21haW4uaXNFbXB0eSgpCisgICAgICAgICYm
IG1fZWFybGllc3RUaW1lVG9TZW5kOworfQorCitFeHBlY3RlZDxQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6Q29udmVyc2lvbiwgU3RyaW5nPiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VD
b252ZXJzaW9uUmVxdWVzdChjb25zdCBVUkwmIHJlZGlyZWN0VVJMKQoreworICAgIGlmICghcmVk
aXJlY3RVUkwucHJvdG9jb2xJcygiaHR0cHMiKSB8fCByZWRpcmVjdFVSTC5oYXNDcmVkZW50aWFs
cygpIHx8IHJlZGlyZWN0VVJMLmhhc1F1ZXJ5KCkgfHwgcmVkaXJlY3RVUkwuaGFzRnJhZ21lbnRJ
ZGVudGlmaWVyKCkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkp
IHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQs
ICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMJ3MgcHJvdG9jb2wg
aXMgbm90IEhUVFBTIG9yIHRoZSBVUkwgY29udGFpbnMgb25lIG9yIG1vcmUgb2YgdXNlcm5hbWUs
IHBhc3N3b3JkLCBxdWVyeSBzdHJpbmcsIGFuZCBmcmFnbWVudC4iKTsKKyAgICAgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZCgiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIENvbnZlcnNp
b24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBVUkwncyBwcm90b2NvbCBpcyBub3QgSFRU
UFMgb3IgdGhlIFVSTCBjb250YWlucyBvbmUgb3IgbW9yZSBvZiB1c2VybmFtZSwgcGFzc3dvcmQs
IHF1ZXJ5IHN0cmluZywgYW5kIGZyYWdtZW50LiJfcyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKG51bGxTdHJpbmcoKSk7CisgICAgfQorCisgICAgYXV0byBwYXRo
ID0gU3RyaW5nVmlldyhyZWRpcmVjdFVSTC5zdHJpbmcoKSkuc3Vic3RyaW5nKHJlZGlyZWN0VVJM
LnBhdGhTdGFydCgpLCByZWRpcmVjdFVSTC5wYXRoRW5kKCkgLSByZWRpcmVjdFVSTC5wYXRoU3Rh
cnQoKSk7CisgICAgaWYgKHBhdGguaXNFbXB0eSgpIHx8ICFwYXRoLnN0YXJ0c1dpdGgocHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRQYXRoUHJlZml4KSkgeworICAgICAgICBpZiAoVU5MSUtFTFkoZGVi
dWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCwgIkNvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRo
ZSBVUkwgcGF0aCBkaWQgbm90IHN0YXJ0IHdpdGggJSIgUFVCTElDX0xPR19TVFJJTkcgIi4iLCBw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudFBhdGhQcmVmaXgpOworICAgICAgICAgICAgcmV0dXJuIG1h
a2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252
ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMIHBhdGggZGlkIG5vdCBzdGFy
dCB3aXRoICJfcywgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRQYXRoUHJlZml4LCAiLiJfcykpOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChudWxsU3RyaW5nKCkpOwor
ICAgIH0KKworICAgIGF1dG8gcHJlZml4TGVuZ3RoID0gc2l6ZW9mKHByaXZhdGVDbGlja01lYXN1
cmVtZW50UGF0aFByZWZpeCkgLSAxOworICAgIGlmIChwYXRoLmxlbmd0aCgpID09IHByZWZpeExl
bmd0aCArIHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbkRhdGFQYXRoU2VnbWVudFNp
emUpIHsKKyAgICAgICAgYXV0byBjb252ZXJzaW9uRGF0YVVJbnQ2NCA9IHBhdGguc3Vic3RyaW5n
KHByZWZpeExlbmd0aCwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uRGF0YVBhdGhT
ZWdtZW50U2l6ZSkudG9VSW50NjRTdHJpY3QoKTsKKyAgICAgICAgaWYgKCFjb252ZXJzaW9uRGF0
YVVJbnQ2NCB8fCAqY29udmVyc2lvbkRhdGFVSW50NjQgPiBNYXhFbnRyb3B5KSB7CisgICAgICAg
ICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJDb252ZXJzaW9uIHdh
cyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgY29udmVyc2lvbiBkYXRhIGNvdWxkIG5vdCBiZSBw
YXJzZWQgb3Igd2FzIGhpZ2hlciB0aGFuIHRoZSBhbGxvd2VkIG1heGltdW0gb2YgJXtwdWJsaWN9
dS4iLCBNYXhFbnRyb3B5KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQo
bWFrZVN0cmluZygiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIENvbnZlcnNpb24gd2FzIG5v
dCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBjb252ZXJzaW9uIGRhdGEgY291bGQgbm90IGJlIHBhcnNl
ZCBvciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQgbWF4aW11bSBvZiAiX3MsIE1heEVudHJv
cHksICIuIl9zKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhw
ZWN0ZWQobnVsbFN0cmluZygpKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBDb252ZXJz
aW9uIHsgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KCpjb252ZXJzaW9uRGF0YVVJbnQ2NCksIFByaW9y
aXR5IHsgMCB9IH07CisgICAgfQorICAgIAorICAgIGlmIChwYXRoLmxlbmd0aCgpID09IHByZWZp
eExlbmd0aCArIHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbkRhdGFQYXRoU2VnbWVu
dFNpemUgKyAxICsgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRQcmlvcml0eVBhdGhTZWdtZW50U2l6
ZSkgeworICAgICAgICBhdXRvIGNvbnZlcnNpb25EYXRhVUludDY0ID0gcGF0aC5zdWJzdHJpbmco
cHJlZml4TGVuZ3RoLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25EYXRhUGF0aFNl
Z21lbnRTaXplKS50b1VJbnQ2NFN0cmljdCgpOworICAgICAgICBpZiAoIWNvbnZlcnNpb25EYXRh
VUludDY0IHx8ICpjb252ZXJzaW9uRGF0YVVJbnQ2NCA+IE1heEVudHJvcHkpIHsKKyAgICAgICAg
ICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7CisgICAgICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkNvbnZlcnNpb24gd2Fz
IG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBjb252ZXJzaW9uIGRhdGEgY291bGQgbm90IGJlIHBh
cnNlZCBvciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQgbWF4aW11bSBvZiAle3B1YmxpY311
LiIsIE1heEVudHJvcHkpOworICAgICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCht
YWtlU3RyaW5nKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVyc2lvbiB3YXMgbm90
IGFjY2VwdGVkIGJlY2F1c2UgdGhlIGNvbnZlcnNpb24gZGF0YSBjb3VsZCBub3QgYmUgcGFyc2Vk
IG9yIHdhcyBoaWdoZXIgdGhhbiB0aGUgYWxsb3dlZCBtYXhpbXVtIG9mICJfcywgTWF4RW50cm9w
eSwgIi4iX3MpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZChudWxsU3RyaW5nKCkpOworICAgICAgICB9CisKKyAgICAgICAgYXV0byBjb252ZXJzaW9u
UHJpb3JpdHlVSW50NjQgPSBwYXRoLnN1YnN0cmluZyhwcmVmaXhMZW5ndGggKyBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRTaXplICsgMSwgcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRQcmlvcml0eVBhdGhTZWdtZW50U2l6ZSkudG9VSW50NjRTdHJpY3QoKTsK
KyAgICAgICAgaWYgKCFjb252ZXJzaW9uUHJpb3JpdHlVSW50NjQgfHwgKmNvbnZlcnNpb25Qcmlv
cml0eVVJbnQ2NCA+IE1heEVudHJvcHkpIHsKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShkZWJ1
Z01vZGVFbmFibGVkKCkpKSB7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkNvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNl
IHRoZSBwcmlvcml0eSBjb3VsZCBub3QgYmUgcGFyc2VkIG9yIHdhcyBoaWdoZXIgdGhhbiB0aGUg
YWxsb3dlZCBtYXhpbXVtIG9mICV7cHVibGljfXUuIiwgTWF4RW50cm9weSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1l
YXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgcHJpb3Jp
dHkgY291bGQgbm90IGJlIHBhcnNlZCBvciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQgbWF4
aW11bSBvZiAiX3MsIE1heEVudHJvcHksICIuIl9zKSk7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygpKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHJldHVybiBDb252ZXJzaW9uIHsgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KCpjb252ZXJz
aW9uRGF0YVVJbnQ2NCksIFByaW9yaXR5IHsgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KCpjb252ZXJz
aW9uUHJpb3JpdHlVSW50NjQpIH0gfTsKKyAgICB9CisKKyAgICBpZiAoVU5MSUtFTFkoZGVidWdN
b2RlRW5hYmxlZCgpKSkgeworICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01l
YXN1cmVtZW50LCAiQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIFVSTCBw
YXRoIGNvbnRhaW5lZCB1bnJlY29nbml6ZWQgcGFydHMuIik7CisgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZCgiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIENvbnZlcnNpb24gd2FzIG5v
dCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBVUkwgcGF0aCBjb250YWluZWQgdW5yZWNvZ25pemVkIHBh
cnRzLiJfcyk7CisgICAgfQorICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChudWxsU3RyaW5nKCkp
OworfQorCitPcHRpb25hbDxTZWNvbmRzPiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y29udmVy
dEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChDb252ZXJzaW9uJiYgY29udmVyc2lvbikKK3sKKyAg
ICBpZiAoIWNvbnZlcnNpb24uaXNWYWxpZCgpIHx8IChtX2NvbnZlcnNpb24gJiYgbV9jb252ZXJz
aW9uLT5wcmlvcml0eSA+PSBjb252ZXJzaW9uLnByaW9yaXR5KSkKKyAgICAgICAgcmV0dXJuIHsg
fTsKKworICAgIG1fY29udmVyc2lvbiA9IFdURk1vdmUoY29udmVyc2lvbik7CisgICAgLy8gMjQt
NDggaG91ciBkZWxheSBiZWZvcmUgc2VuZGluZy4gVGhpcyBoZWxwcyBwcml2YWN5IHNpbmNlIHRo
ZSBjb252ZXJzaW9uIGFuZCB0aGUgYXR0cmlidXRpb24KKyAgICAvLyByZXF1ZXN0cyBhcmUgZGV0
YWNoZWQgYW5kIHRoZSB0aW1lIG9mIHRoZSBhdHRyaWJ1dGlvbiBkb2VzIG5vdCByZXZlYWwgdGhl
IHRpbWUgb2YgdGhlIGNvbnZlcnNpb24uCisgICAgYXV0byBzZWNvbmRzID0gMjRfaCArIFNlY29u
ZHMocmFuZG9tTnVtYmVyKCkgKiAoMjRfaCkudmFsdWUoKSk7CisgICAgbV9lYXJsaWVzdFRpbWVU
b1NlbmQgPSBXYWxsVGltZTo6bm93KCkgKyBzZWNvbmRzOworICAgIHJldHVybiBzZWNvbmRzOwor
fQorCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjptYXJrQXNFeHBpcmVkKCkKK3sKKyAg
ICBtX3RpbWVPZkFkQ2xpY2sgPSB7IH07Cit9CisKK2Jvb2wgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6Omhhc0V4cGlyZWQoKSBjb25zdAoreworICAgIHJldHVybiBXYWxsVGltZTo6bm93KCkgPiBt
X3RpbWVPZkFkQ2xpY2sgKyBtYXhBZ2U7Cit9CisKK2Jvb2wgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6Omhhc0hpZ2hlclByaW9yaXR5VGhhbihjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYg
b3RoZXIpIGNvbnN0Cit7CisgICAgaWYgKCFvdGhlci5tX2NvbnZlcnNpb24pCisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIAorICAgIGlmICghbV9jb252ZXJzaW9uKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICByZXR1cm4gbV9jb252ZXJzaW9uLT5wcmlvcml0eSA+IG90aGVyLm1fY29u
dmVyc2lvbi0+cHJpb3JpdHk7Cit9CisKK1VSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cmVw
b3J0VVJMKCkgY29uc3QKK3sKKyAgICBpZiAoIWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIFVS
TCgpOworCisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiaHR0cHM6Ly8iKTsKKyAgICBidWlsZGVyLmFwcGVuZChtX3NvdXJjZS5yZWdpc3RyYWJs
ZURvbWFpbi5zdHJpbmcoKSk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKHByaXZhdGVDbGlj
a01lYXN1cmVtZW50UGF0aFByZWZpeCk7CisKKyAgICBVUkwgdXJsIHsgVVJMKCksIGJ1aWxkZXIu
dG9TdHJpbmcoKSB9OworICAgIGlmICh1cmwuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gdXJs
OworCisgICAgcmV0dXJuIFVSTCgpOworfQorCitSZWY8SlNPTjo6T2JqZWN0PiBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6anNvbigpIGNvbnN0Cit7CisgICAgYXV0byByZXBvcnREZXRhaWxzID0g
SlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAgICBpZiAoIW1fY29udmVyc2lvbikKKyAgICAgICAg
cmV0dXJuIHJlcG9ydERldGFpbHM7CisKKyAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoImNv
bnRlbnQtdHlwZSJfcywgImNsaWNrIl9zKTsKKyAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmco
ImNvbnRlbnQtc2l0ZSJfcywgbV9zb3VyY2UucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkpOwor
ICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoImNvbnRlbnQtaWQiX3MsIG1fY2FtcGFpZ24u
aWQpOworICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygiY29udmVyc2lvbi1zaXRlIl9zLCBt
X2Rlc3RpbmF0aW9uLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICByZXBvcnREZXRh
aWxzLT5zZXRJbnRlZ2VyKCJjb252ZXJzaW9uLWRhdGEiX3MsIG1fY29udmVyc2lvbi0+ZGF0YSk7
CisgICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigicmVwb3J0LXZlcnNpb24iX3MsIDEpOwor
ICAgIHJldHVybiByZXBvcnREZXRhaWxzOworfQorCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjptYXJrQ29udmVyc2lvbkFzU2VudCgpCit7CisgICAgQVNTRVJUKG1fY29udmVyc2lvbik7
CisgICAgaWYgKG1fY29udmVyc2lvbikKKyAgICAgICAgbV9jb252ZXJzaW9uLT53YXNTZW50ID0g
Q29udmVyc2lvbjo6V2FzU2VudDo6WWVzOworfQorCitib29sIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50Ojp3YXNDb252ZXJzaW9uU2VudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29udmVyc2lv
biAmJiBtX2NvbnZlcnNpb24tPndhc1NlbnQgPT0gQ29udmVyc2lvbjo6V2FzU2VudDo6WWVzOwor
fQorCitTdHJpbmcgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRvU3RyaW5nKCkgY29uc3QKK3sK
KyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJT
b3VyY2U6ICIpOworICAgIGJ1aWxkZXIuYXBwZW5kKG1fc291cmNlLnJlZ2lzdHJhYmxlRG9tYWlu
LnN0cmluZygpKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuRGVzdGluYXRpb246ICIp
OworICAgIGJ1aWxkZXIuYXBwZW5kKG1fZGVzdGluYXRpb24ucmVnaXN0cmFibGVEb21haW4uc3Ry
aW5nKCkpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5DYW1wYWlnbiBJRDogIik7Cisg
ICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9jYW1wYWlnbi5pZCk7CisgICAgaWYgKG1fY29udmVy
c2lvbikgeworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuQ29udmVyc2lvbiBkYXRh
OiAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9jb252ZXJzaW9uLnZhbHVlKCku
ZGF0YSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5Db252ZXJzaW9uIHByaW9y
aXR5OiAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV9jb252ZXJzaW9uLnZhbHVl
KCkucHJpb3JpdHkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuQ29udmVyc2lv
biBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6ICIpOworICAgICAgICBpZiAoIW1fZWFybGllc3RUaW1l
VG9TZW5kKQorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJOb3Qgc2V0Iik7Cisg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgYXV0byBzZWNvbmRzVW50aWxTZW5kID0gKm1fZWFy
bGllc3RUaW1lVG9TZW5kIC0gV2FsbFRpbWU6Om5vdygpOworICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQoKHNlY29uZHNVbnRpbFNlbmQgPj0gMjRfaCAmJiBzZWNvbmRzVW50aWxTZW5kIDw9IDQ4
X2gpID8gIldpdGhpbiAyNC00OCBob3VycyIgOiAiT3V0c2lkZSAyNC00OCBob3VycyIpOworICAg
ICAgICB9CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5Db252ZXJzaW9uIHJlcXVl
c3Qgc2VudDogIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCh3YXNDb252ZXJzaW9uU2VudCgp
ID8gInRydWUiIDogImZhbHNlIikpOworICAgIH0gZWxzZQorICAgICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIlxuTm8gY29udmVyc2lvbiBkYXRhLiIpOworICAgIGJ1aWxkZXIuYXBwZW5kKCdc
bicpOworCisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKK30KKworYm9vbCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6ZGVidWdNb2RlRW5hYmxlZCgpCit7CisgICAgcmV0dXJuIFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkucHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnREZWJ1Z01vZGVFbmFibGVkKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTYwMmY3Y2M2OWFkYWU4OTNh
OTcyZmVmMzQ1MDhhMGY1MTQzYTUyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oCkBAIC0wLDAgKzEsMzY4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgor
I2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwu
aD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50IHsKK3B1YmxpYzoKKyAgICB1c2luZyBDYW1wYWlnbklkID0gdWludDMyX3Q7CisgICAgdXNp
bmcgQ29udmVyc2lvbkRhdGEgPSB1aW50MzJfdDsKKyAgICB1c2luZyBQcmlvcml0eVZhbHVlID0g
dWludDMyX3Q7CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IE1heEVudHJvcHkgPSA2
MzsKKworICAgIHN0cnVjdCBDYW1wYWlnbiB7CisgICAgICAgIENhbXBhaWduKCkgPSBkZWZhdWx0
OworICAgICAgICBleHBsaWNpdCBDYW1wYWlnbihDYW1wYWlnbklkIGlkKQorICAgICAgICAgICAg
OiBpZCB7IGlkIH0KKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBib29s
IGlzVmFsaWQoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaWQgPD0gTWF4
RW50cm9weTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQ2FtcGFpZ25JZCBpZCB7IDAg
fTsKKyAgICB9OworCisgICAgc3RydWN0IFNvdXJjZSB7CisgICAgICAgIFNvdXJjZSgpID0gZGVm
YXVsdDsKKyAgICAgICAgZXhwbGljaXQgU291cmNlKGNvbnN0IFVSTCYgdXJsKQorICAgICAgICAg
ICAgOiByZWdpc3RyYWJsZURvbWFpbiB7IHVybCB9CisgICAgICAgIHsKKyAgICAgICAgfQorCisg
ICAgICAgIGV4cGxpY2l0IFNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQor
ICAgICAgICAgICAgOiByZWdpc3RyYWJsZURvbWFpbiB7IGRvbWFpbiB9CisgICAgICAgIHsKKyAg
ICAgICAgfQorCisgICAgICAgIGV4cGxpY2l0IFNvdXJjZShXVEY6Okhhc2hUYWJsZURlbGV0ZWRW
YWx1ZVR5cGUpCisgICAgICAgICAgICA6IHJlZ2lzdHJhYmxlRG9tYWluKFdURjo6SGFzaFRhYmxl
RGVsZXRlZFZhbHVlKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBib29sIG9wZXJh
dG9yPT0oY29uc3QgU291cmNlJiBvdGhlcikgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAg
cmV0dXJuIHJlZ2lzdHJhYmxlRG9tYWluID09IG90aGVyLnJlZ2lzdHJhYmxlRG9tYWluOworICAg
ICAgICB9CisKKyAgICAgICAgYm9vbCBtYXRjaGVzKGNvbnN0IFVSTCYgdXJsKSBjb25zdAorICAg
ICAgICB7CisgICAgICAgICAgICByZXR1cm4gcmVnaXN0cmFibGVEb21haW4ubWF0Y2hlcyh1cmwp
OworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNv
bnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByZWdpc3RyYWJsZURvbWFpbi5pc0hh
c2hUYWJsZURlbGV0ZWRWYWx1ZSgpOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIFNvdXJj
ZSBkZWxldGVkVmFsdWUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gU291cmNlIHsg
V1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWUgfTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRp
YyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShTb3VyY2UmIHNvdXJjZSkKKyAgICAgICAgewor
ICAgICAgICAgICAgbmV3ICgmc291cmNlKSBTb3VyY2U7CisgICAgICAgICAgICBzb3VyY2UgPSBT
b3VyY2U6OmRlbGV0ZWRWYWx1ZSgpOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkZWxldGVW
YWx1ZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJlZ2lzdHJhYmxlRG9tYWluID0gUmVnaXN0
cmFibGVEb21haW4geyBXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9OworICAgICAgICB9CisK
KyAgICAgICAgYm9vbCBpc0RlbGV0ZWRWYWx1ZSgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAg
ICAgIHJldHVybiBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOworICAgICAgICB9CisKKyAgICAg
ICAgUmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW47CisgICAgfTsKKworICAgIHN0
cnVjdCBTb3VyY2VIYXNoIHsKKyAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgU291
cmNlJiBzb3VyY2UpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2UucmVnaXN0
cmFibGVEb21haW4uaGFzaCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzdGF0aWMg
Ym9vbCBlcXVhbChjb25zdCBTb3VyY2UmIGEsIGNvbnN0IFNvdXJjZSYgYikKKyAgICAgICAgewor
ICAgICAgICAgICAgcmV0dXJuIGEgPT0gYjsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBj
b25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CisgICAgfTsK
KworICAgIHN0cnVjdCBEZXN0aW5hdGlvbiB7CisgICAgICAgIERlc3RpbmF0aW9uKCkgPSBkZWZh
dWx0OworICAgICAgICBleHBsaWNpdCBEZXN0aW5hdGlvbihjb25zdCBVUkwmIHVybCkKKyAgICAg
ICAgICAgIDogcmVnaXN0cmFibGVEb21haW4geyBSZWdpc3RyYWJsZURvbWFpbiB7IHVybCB9IH0K
KyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgZXhwbGljaXQgRGVzdGluYXRpb24oV1RG
OjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQorICAgICAgICAgICAgOiByZWdpc3RyYWJsZURv
bWFpbiB7IFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlIH0KKyAgICAgICAgeworICAgICAgICB9
CisKKyAgICAgICAgZXhwbGljaXQgRGVzdGluYXRpb24oUmVnaXN0cmFibGVEb21haW4mJiBkb21h
aW4pCisgICAgICAgICAgICA6IHJlZ2lzdHJhYmxlRG9tYWluIHsgV1RGTW92ZShkb21haW4pIH0K
KyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBib29sIG9wZXJhdG9yPT0o
Y29uc3QgRGVzdGluYXRpb24mIG90aGVyKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBy
ZXR1cm4gcmVnaXN0cmFibGVEb21haW4gPT0gb3RoZXIucmVnaXN0cmFibGVEb21haW47CisgICAg
ICAgIH0KKworICAgICAgICBib29sIG1hdGNoZXMoY29uc3QgVVJMJiB1cmwpIGNvbnN0CisgICAg
ICAgIHsKKyAgICAgICAgICAgIHJldHVybiByZWdpc3RyYWJsZURvbWFpbiA9PSBSZWdpc3RyYWJs
ZURvbWFpbiB7IHVybCB9OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBib29sIGlzSGFz
aFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJu
IHJlZ2lzdHJhYmxlRG9tYWluLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7CisgICAgICAgIH0K
KworICAgICAgICBzdGF0aWMgRGVzdGluYXRpb24gZGVsZXRlZFZhbHVlKCkKKyAgICAgICAgewor
ICAgICAgICAgICAgcmV0dXJuIERlc3RpbmF0aW9uIHsgV1RGOjpIYXNoVGFibGVEZWxldGVkVmFs
dWUgfTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRW
YWx1ZShEZXN0aW5hdGlvbiYgZGVzdGluYXRpb24pCisgICAgICAgIHsKKyAgICAgICAgICAgIG5l
dyAoJmRlc3RpbmF0aW9uKSBEZXN0aW5hdGlvbjsKKyAgICAgICAgICAgIGRlc3RpbmF0aW9uID0g
RGVzdGluYXRpb246OmRlbGV0ZWRWYWx1ZSgpOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBk
ZWxldGVWYWx1ZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJlZ2lzdHJhYmxlRG9tYWluID0g
UmVnaXN0cmFibGVEb21haW4geyBXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9OworICAgICAg
ICB9CisKKyAgICAgICAgYm9vbCBpc0RlbGV0ZWRWYWx1ZSgpIGNvbnN0CisgICAgICAgIHsKKyAg
ICAgICAgICAgIHJldHVybiBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOworICAgICAgICB9CisK
KyAgICAgICAgUmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW47CisgICAgfTsKKwor
ICAgIHN0cnVjdCBEZXN0aW5hdGlvbkhhc2ggeworICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFz
aChjb25zdCBEZXN0aW5hdGlvbiYgZGVzdGluYXRpb24pCisgICAgICAgIHsKKyAgICAgICAgICAg
IHJldHVybiBkZXN0aW5hdGlvbi5yZWdpc3RyYWJsZURvbWFpbi5oYXNoKCk7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IERlc3RpbmF0aW9uJiBh
LCBjb25zdCBEZXN0aW5hdGlvbiYgYikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGEg
PT0gYjsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBh
cmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CisgICAgfTsKKworICAgIHN0cnVjdCBQcmlvcml0
eSB7CisgICAgICAgIGV4cGxpY2l0IFByaW9yaXR5KFByaW9yaXR5VmFsdWUgdmFsdWUpCisgICAg
ICAgIDogdmFsdWUgeyB2YWx1ZSB9CisgICAgICAgIHsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgUHJpb3JpdHlWYWx1ZSB2YWx1ZTsKKyAgICB9OworICAgIAorICAgIHN0cnVjdCBDb252
ZXJzaW9uIHsKKyAgICAgICAgZW51bSBjbGFzcyBXYXNTZW50IDogYm9vbCB7IE5vLCBZZXMgfTsK
KyAgICAgICAgCisgICAgICAgIENvbnZlcnNpb24oQ29udmVyc2lvbkRhdGEgZGF0YSwgUHJpb3Jp
dHkgcHJpb3JpdHksIFdhc1NlbnQgd2FzU2VudCA9IFdhc1NlbnQ6Ok5vKQorICAgICAgICAgICAg
OiBkYXRhIHsgZGF0YSB9CisgICAgICAgICAgICAsIHByaW9yaXR5IHsgcHJpb3JpdHkudmFsdWUg
fQorICAgICAgICAgICAgLCB3YXNTZW50IHsgd2FzU2VudCB9CisgICAgICAgIHsKKyAgICAgICAg
fQorCisgICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAg
IHJldHVybiBkYXRhIDw9IE1heEVudHJvcHkgJiYgcHJpb3JpdHkgPD0gTWF4RW50cm9weTsKKyAg
ICAgICAgfQorICAgICAgICAKKyAgICAgICAgQ29udmVyc2lvbkRhdGEgZGF0YTsKKyAgICAgICAg
UHJpb3JpdHlWYWx1ZSBwcmlvcml0eTsKKyAgICAgICAgV2FzU2VudCB3YXNTZW50ID0gV2FzU2Vu
dDo6Tm87CisKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYpIGNvbnN0OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0
aW9uYWw8Q29udmVyc2lvbj4gZGVjb2RlKERlY29kZXImKTsKKyAgICB9OworCisgICAgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQoKSA9IGRlZmF1bHQ7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQoQ2FtcGFpZ24gY2FtcGFpZ24sIGNvbnN0IFNvdXJjZSYgc291cmNlLCBjb25zdCBEZXN0aW5h
dGlvbiYgZGVzdGluYXRpb24pCisgICAgICAgIDogbV9jYW1wYWlnbiB7IGNhbXBhaWduIH0KKyAg
ICAgICAgLCBtX3NvdXJjZSB7IHNvdXJjZSB9CisgICAgICAgICwgbV9kZXN0aW5hdGlvbiB7IGRl
c3RpbmF0aW9uIH0KKyAgICAgICAgLCBtX3RpbWVPZkFkQ2xpY2sgeyBXYWxsVGltZTo6bm93KCkg
fQorICAgIHsKKyAgICB9CisKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgRXhwZWN0ZWQ8Q29u
dmVyc2lvbiwgU3RyaW5nPiBwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnN0IFVSTCYgcmVkaXJl
Y3RVUkwpOworICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPFNlY29uZHM+IGNvbnZlcnRBbmRH
ZXRFYXJsaWVzdFRpbWVUb1NlbmQoQ29udmVyc2lvbiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIGhhc0hpZ2hlclByaW9yaXR5VGhhbihjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYp
IGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFVSTCByZXBvcnRVUkwoKSBjb25zdDsKKyAgICBX
RUJDT1JFX0VYUE9SVCBSZWY8SlNPTjo6T2JqZWN0PiBqc29uKCkgY29uc3Q7CisgICAgY29uc3Qg
U291cmNlJiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZTsgfTsKKyAgICBjb25zdCBE
ZXN0aW5hdGlvbiYgZGVzdGluYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uOyB9
OworICAgIE9wdGlvbmFsPFdhbGxUaW1lPiBlYXJsaWVzdFRpbWVUb1NlbmQoKSBjb25zdCB7IHJl
dHVybiBtX2VhcmxpZXN0VGltZVRvU2VuZDsgfTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1h
cmtBc0V4cGlyZWQoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhc0V4cGlyZWQoKSBjb25z
dDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1hcmtDb252ZXJzaW9uQXNTZW50KCk7CisgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCB3YXNDb252ZXJzaW9uU2VudCgpIGNvbnN0OworCisgICAgYm9v
bCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UucmVnaXN0cmFibGVEb21haW4uaXNF
bXB0eSgpOyB9OworCisgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7
CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29u
c3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFByaXZhdGVD
bGlja01lYXN1cmVtZW50PiBkZWNvZGUoRGVjb2RlciYpOworCitwcml2YXRlOgorICAgIGJvb2wg
aXNWYWxpZCgpIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRlYnVnTW9kZUVuYWJsZWQoKTsKKwor
ICAgIENhbXBhaWduIG1fY2FtcGFpZ247CisgICAgU291cmNlIG1fc291cmNlOworICAgIERlc3Rp
bmF0aW9uIG1fZGVzdGluYXRpb247CisgICAgV2FsbFRpbWUgbV90aW1lT2ZBZENsaWNrOworCisg
ICAgT3B0aW9uYWw8Q29udmVyc2lvbj4gbV9jb252ZXJzaW9uOworICAgIE9wdGlvbmFsPFdhbGxU
aW1lPiBtX2VhcmxpZXN0VGltZVRvU2VuZDsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+
Cit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fY2FtcGFpZ24uaWQgPDwgbV9zb3VyY2UucmVnaXN0
cmFibGVEb21haW4gPDwgbV9kZXN0aW5hdGlvbi5yZWdpc3RyYWJsZURvbWFpbiA8PCBtX3RpbWVP
ZkFkQ2xpY2sgPDwgbV9jb252ZXJzaW9uIDw8IG1fZWFybGllc3RUaW1lVG9TZW5kOworfQorCit0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAg
ICBPcHRpb25hbDxDYW1wYWlnbklkPiBjYW1wYWlnbklkOworICAgIGRlY29kZXIgPj4gY2FtcGFp
Z25JZDsKKyAgICBpZiAoIWNhbXBhaWduSWQpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisgICAgCisgICAgT3B0aW9uYWw8UmVnaXN0cmFibGVEb21haW4+IHNvdXJjZVJlZ2lzdHJhYmxl
RG9tYWluOworICAgIGRlY29kZXIgPj4gc291cmNlUmVnaXN0cmFibGVEb21haW47CisgICAgaWYg
KCFzb3VyY2VSZWdpc3RyYWJsZURvbWFpbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KyAgICAKKyAgICBPcHRpb25hbDxSZWdpc3RyYWJsZURvbWFpbj4gZGVzdGluYXRpb25SZWdpc3Ry
YWJsZURvbWFpbjsKKyAgICBkZWNvZGVyID4+IGRlc3RpbmF0aW9uUmVnaXN0cmFibGVEb21haW47
CisgICAgaWYgKCFkZXN0aW5hdGlvblJlZ2lzdHJhYmxlRG9tYWluKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworICAgIAorICAgIE9wdGlvbmFsPFdhbGxUaW1lPiB0aW1lT2ZBZENsaWNr
OworICAgIGRlY29kZXIgPj4gdGltZU9mQWRDbGljazsKKyAgICBpZiAoIXRpbWVPZkFkQ2xpY2sp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgT3B0aW9uYWw8T3B0aW9u
YWw8Q29udmVyc2lvbj4+IGNvbnZlcnNpb247CisgICAgZGVjb2RlciA+PiBjb252ZXJzaW9uOwor
ICAgIGlmICghY29udmVyc2lvbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAK
KyAgICBPcHRpb25hbDxPcHRpb25hbDxXYWxsVGltZT4+IGVhcmxpZXN0VGltZVRvU2VuZDsKKyAg
ICBkZWNvZGVyID4+IGVhcmxpZXN0VGltZVRvU2VuZDsKKyAgICBpZiAoIWVhcmxpZXN0VGltZVRv
U2VuZCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAKKyAgICBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IENhbXBhaWduIHsgV1RGTW92ZSgqY2FtcGFpZ25J
ZCkgfSwgU291cmNlIHsgV1RGTW92ZSgqc291cmNlUmVnaXN0cmFibGVEb21haW4pIH0sIERlc3Rp
bmF0aW9uIHsgV1RGTW92ZSgqZGVzdGluYXRpb25SZWdpc3RyYWJsZURvbWFpbikgfSB9OworICAg
IGF0dHJpYnV0aW9uLm1fY29udmVyc2lvbiA9IFdURk1vdmUoKmNvbnZlcnNpb24pOworICAgIGF0
dHJpYnV0aW9uLm1fZWFybGllc3RUaW1lVG9TZW5kID0gV1RGTW92ZSgqZWFybGllc3RUaW1lVG9T
ZW5kKTsKKyAgICAKKyAgICByZXR1cm4gYXR0cmlidXRpb247Cit9CisKK3RlbXBsYXRlPGNsYXNz
IEVuY29kZXI+Cit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uOjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IGRhdGEgPDwgcHJp
b3JpdHkgPDwgd2FzU2VudDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFs
PFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uPiBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6Q29udmVyc2lvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9u
YWw8Q29udmVyc2lvbkRhdGE+IGRhdGE7CisgICAgZGVjb2RlciA+PiBkYXRhOworICAgIGlmICgh
ZGF0YSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAKKyAgICBPcHRpb25hbDxQ
cmlvcml0eVZhbHVlPiBwcmlvcml0eTsKKyAgICBkZWNvZGVyID4+IHByaW9yaXR5OworICAgIGlm
ICghcHJpb3JpdHkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgT3B0
aW9uYWw8V2FzU2VudD4gd2FzU2VudDsKKyAgICBkZWNvZGVyID4+IHdhc1NlbnQ7CisgICAgaWYg
KCF3YXNTZW50KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIAorICAgIHJldHVy
biBDb252ZXJzaW9uIHsgV1RGTW92ZSgqZGF0YSksIFByaW9yaXR5IHsgKnByaW9yaXR5IH0sICp3
YXNTZW50IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgRGVmYXVsdEhhc2g7CisKK3RlbXBsYXRlPD4g
c3RydWN0IERlZmF1bHRIYXNoPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3Vy
Y2U+IDogV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUhhc2ggeyB9Owor
dGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6U291cmNlPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpTb3VyY2U+IHsKKyAgICBzdGF0aWMgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OlNvdXJjZSBlbXB0eVZhbHVlKCkgeyByZXR1cm4geyB9OyB9CisgICAgc3RhdGlj
IHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpTb3VyY2UmIHNsb3QpIHsgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZTo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKHNsb3QpOyB9CisgICAgc3RhdGljIGJvb2wgaXNE
ZWxldGVkVmFsdWUoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJj
ZSYgc2xvdCkgeyByZXR1cm4gc2xvdC5pc0RlbGV0ZWRWYWx1ZSgpOyB9Cit9OworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
RGVzdGluYXRpb24+IDogV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0
aW9uSGFzaCB7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbj4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24+IHsKKyAgICBzdGF0aWMg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uIGVtcHR5VmFsdWUo
KSB7IHJldHVybiB7IH07IH0KKyAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUo
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uJiBzbG90KSB7IFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbjo6Y29uc3RydWN0RGVs
ZXRlZFZhbHVlKHNsb3QpOyB9CisgICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3Qg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uJiBzbG90KSB7IHJl
dHVybiBzbG90LmlzRGVsZXRlZFZhbHVlKCk7IH0KK307Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IGZhMjAwZGExZjBmMzUwZDI3ZDA5NGVi
N2NlNTY0YTg2MmE4YmZlMDAuLmY4MDRmMDczZTA5ZjZmZjVhNGU1ZjRiNjQ5ODMyZjNhYWE0N2U1
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCkBA
IC0yMDMsOCArMjAzLDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0TGluZUhlaWdodFVuaXRzRW5h
YmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2xpbmVIZWlnaHRVbml0c0VuYWJsZWQgPSBpc0VuYWJs
ZWQ7IH0KICAgICBib29sIGxpbmVIZWlnaHRVbml0c0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X2xpbmVIZWlnaHRVbml0c0VuYWJsZWQ7IH0KIAotICAgIGJvb2wgYWRDbGlja0F0dHJpYnV0aW9u
RGVidWdNb2RlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWRDbGlja0F0dHJpYnV0aW9uRGVi
dWdNb2RlRW5hYmxlZDsgfQotICAgIHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2Rl
RW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2FkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVu
YWJsZWQgPSBpc0VuYWJsZWQ7IH0KKyAgICBib29sIHByaXZhdGVDbGlja01lYXN1cmVtZW50RGVi
dWdNb2RlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRE
ZWJ1Z01vZGVFbmFibGVkOyB9CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERl
YnVnTW9kZUVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dERlYnVnTW9kZUVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KIAogI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpCiAgICAgYm9vbCBtb3VzZUV2ZW50c1NpbXVsYXRpb25FbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV9tb3VzZUV2ZW50c1NpbXVsYXRpb25FbmFibGVkOyB9CkBAIC0zNDYsNyArMzQ2LDcgQEAg
cHJpdmF0ZToKICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1
ZXMvMzI1NyBoYXZlIGJlZW4gc29ydGVkIG91dC4KICAgICBib29sIG1fbGluZUhlaWdodFVuaXRz
RW5hYmxlZCB7IGZhbHNlIH07CiAKLSAgICBib29sIG1fYWRDbGlja0F0dHJpYnV0aW9uRGVidWdN
b2RlRW5hYmxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50
RGVidWdNb2RlRW5hYmxlZCB7IGZhbHNlIH07CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQog
ICAgIGJvb2wgbV9tb3VzZUV2ZW50c1NpbXVsYXRpb25FbmFibGVkIHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCBiNTM5YmRlMmNmOTM0YjBmMDI0ZjhkNjBmMTZkZjE0
YzlhNTNmODY5Li5iZjljOTVlNWM0MGU4MGI4Y2IwMDVkMjUwZDVmNzUwMWNmMWIyNDliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCkBAIC0zOSw3ICszOSw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogI2RlZmluZSBXRUJDT1JFX0xPR19DSEFOTkVMUyhNKSBcCiAgICAgTShBY2Nlc3Np
YmlsaXR5KSBcCi0gICAgTShBZENsaWNrQXR0cmlidXRpb24pIFwKICAgICBNKEFuaW1hdGlvbnMp
IFwKICAgICBNKEFwcGxlUGF5KSBcCiAgICAgTShBcmNoaXZlcykgXApAQCAtOTEsNiArOTAsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgTShQbGF0Zm9ybUxlYWtzKSBcCiAgICAgTShQbHVn
aW5zKSBcCiAgICAgTShQb3B1cEJsb2NraW5nKSBcCisgICAgTShQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCkgXAogICAgIE0oUHJvZ3Jlc3MpIFwKICAgICBNKFJlbW90ZUluc3BlY3RvcikgXAogICAg
IE0oUmVxdWVzdEFuaW1hdGlvbkZyYW1lKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5q
cwppbmRleCA1NGZhMjViNTBlZjAxNzNmYmY4NDNjZjkzYmUzYzBmZmVhMzFkZDJiLi5mZjFhNDcw
ZmQ0ZGNlZThmZjgwZDU2ZWMzZDkxMWFmM2QwMDgyNTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXpl
ZFN0cmluZ3MuanMKQEAgLTk4LDcgKzk4LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siQWNjZXNzaWJp
bGl0eSJdID0gIkFjY2Vzc2liaWxpdHkiOwogbG9jYWxpemVkU3RyaW5nc1siQWN0aW9uIl0gPSAi
QWN0aW9uIjsKIC8qIFRvb2x0aXAgZm9yIGEgdGltZSByYW5nZSBiYXIgdGhhdCByZXByZXNlbnRz
IHdoZW4gYSBDU1MgYW5pbWF0aW9uL3RyYW5zaXRpb24gaXMgcnVubmluZyAqLwogbG9jYWxpemVk
U3RyaW5nc1siQWN0aXZlIl0gPSAiQWN0aXZlIjsKLWxvY2FsaXplZFN0cmluZ3NbIkFkIENsaWNr
IEF0dHJpYnV0aW9uIERlYnVnIE1vZGUiXSA9ICJBZCBDbGljayBBdHRyaWJ1dGlvbiBEZWJ1ZyBN
b2RlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFkZCJdID0gIkFkZCI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJBZGQgJXMgUnVsZSJdID0gIkFkZCAlcyBSdWxlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFkZCBB
Y3Rpb24iXSA9ICJBZGQgQWN0aW9uIjsKQEAgLTk5Myw2ICs5OTIsNyBAQCBsb2NhbGl6ZWRTdHJp
bmdzWyJQcmV2aW91cyBTaWJsaW5nIl0gPSAiUHJldmlvdXMgU2libGluZyI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJQcmltYXJ5IEtleSJdID0gIlByaW1hcnkgS2V5IjsKIGxvY2FsaXplZFN0cmluZ3Nb
IlByaW1hcnkgS2V5IFx1MjAxNCAlcyJdID0gIlByaW1hcnkgS2V5IFx1MjAxNCAlcyI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJQcmlvcml0eSJdID0gIlByaW9yaXR5IjsKK2xvY2FsaXplZFN0cmluZ3Nb
IlByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgRGVidWcgTW9kZSJdID0gIlByaXZhdGUgQ2xpY2sg
TWVhc3VyZW1lbnQgRGVidWcgTW9kZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJQcm9iZSBFeHByZXNz
aW9uIl0gPSAiUHJvYmUgRXhwcmVzc2lvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJQcm9iZSBTYW1w
bGUgUmVjb3JkZWQiXSA9ICJQcm9iZSBTYW1wbGUgUmVjb3JkZWQiOwogbG9jYWxpemVkU3RyaW5n
c1siUHJvYmVzIl0gPSAiUHJvYmVzIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwppbmRleCAzMzgyYTIxYWJhMmQ4MDg4ODY5MjQyMTY5ZjNl
NzVkNDEwZDc5ODczLi4wOGQ0MWYwM2NmZjUzZTAyZjY4Mjk0NTIxMmVhYjZkOTM4MTdlMzQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4u
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpz
CkBAIC0yMzQ0LDggKzIzNDQsOSBAQCBXSS5faGFuZGxlRGV2aWNlU2V0dGluZ3NUYWJCYXJCdXR0
b25DbGlja2VkID0gZnVuY3Rpb24oZXZlbnQpCiAgICAgICAgICAgICBjb2x1bW5zOiBbCiAgICAg
ICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICB7bmFtZTogV0kuVUlTdHJpbmcoIklU
UCBEZWJ1ZyBNb2RlIiksIHNldHRpbmc6IEluc3BlY3RvckJhY2tlbmQuRW51bS5QYWdlLlNldHRp
bmcuSVRQRGVidWdNb2RlRW5hYmxlZCwgdmFsdWU6IHRydWV9LAotICAgICAgICAgICAgICAgICAg
ICB7bmFtZTogV0kuVUlTdHJpbmcoIkFkIENsaWNrIEF0dHJpYnV0aW9uIERlYnVnIE1vZGUiKSwg
c2V0dGluZzogSW5zcGVjdG9yQmFja2VuZC5FbnVtLlBhZ2UuU2V0dGluZy5BZENsaWNrQXR0cmli
dXRpb25EZWJ1Z01vZGVFbmFibGVkLCB2YWx1ZTogdHJ1ZX0sCi0gICAgICAgICAgICAgICAgXSwK
KyAgICAgICAgICAgICAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDE0LjApOiBgUGFnZS5T
ZXR0aW5nLkFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWRgIHdhcyByZW5hbWVkIHRv
IGBQYWdlLlNldHRpbmcuUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkYC4K
KyAgICAgICAgICAgICAgICAgICAge25hbWU6IFdJLlVJU3RyaW5nKCJQcml2YXRlIENsaWNrIE1l
YXN1cmVtZW50IERlYnVnIE1vZGUiKSwgc2V0dGluZzogSW5zcGVjdG9yQmFja2VuZC5FbnVtLlBh
Z2UuU2V0dGluZy5Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQsIHZhbHVl
OiB0cnVlfSwKKyAgICAgICAgICAgICAgICAgICAge25hbWU6IFdJLlVJU3RyaW5nKCJBZCBDbGlj
ayBBdHRyaWJ1dGlvbiBEZWJ1ZyBNb2RlIiksIHNldHRpbmc6IEluc3BlY3RvckJhY2tlbmQuRW51
bS5QYWdlLlNldHRpbmcuQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZCwgdmFsdWU6
IHRydWV9LCAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgXSwKICAgICAgICAgfSwKICAg
ICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0NvbnNvbGVNZXNzYWdlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0NvbnNvbGVNZXNzYWdlLmpzCmluZGV4IGJlNzg3OGUwYjc1MzBlZjc0YmUy
OTRhYmZkZjljNTA0YzE0YzE4MjIuLjQ5OGMyYTQyNjJhZDdiYTZiZDVlMjE5YzZkMGE3ZDZmOWM5
MDFlNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9Db25zb2xlTWVzc2FnZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQ29uc29sZU1lc3NhZ2UuanMKQEAgLTExMyw4ICsxMTMsMTEgQEAgV0ku
Q29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZSA9IHsKICAgICBNZWRpYVNvdXJjZTogIm1lZGlh
c291cmNlIiwKICAgICBXZWJSVEM6ICJ3ZWJydGMiLAogICAgIElUUERlYnVnOiAiaXRwLWRlYnVn
IiwKLSAgICBBZENsaWNrQXR0cmlidXRpb246ICJhZC1jbGljay1hdHRyaWJ1dGlvbiIsCisgICAg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6ICJwcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50IiwKICAg
ICBPdGhlcjogIm90aGVyIiwKKworICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxNC4wKTogYENv
bnNvbGUuQ2hhbm5lbFNvdXJjZS5BZENsaWNrQXR0cmlidXRpb25gIHdhcyByZW5hbWVkIHRvIGBD
b25zb2xlLkNoYW5uZWxTb3VyY2UuUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRgLgorICAgIEFkQ2xp
Y2tBdHRyaWJ1dGlvbjogImFkLWNsaWNrLWF0dHJpYnV0aW9uIiwKIH07CiAKIFdJLkNvbnNvbGVN
ZXNzYWdlLk1lc3NhZ2VUeXBlID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0lzc3VlTWVzc2FnZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Jc3N1ZU1lc3NhZ2UuanMKaW5kZXggMmQ4ODE3NWI2
ZWU2NzY3YzgzZGM0NTQ3OWJjYTkzZTk1NDNhYmI1Zi4uNzYyNWJmNmJkZmNkMWZlNzcxM2Y1YmNh
ZjI5NjY3YjVlNDA4MTM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0lzc3VlTWVzc2FnZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvSXNzdWVNZXNzYWdlLmpzCkBAIC02OSw3ICs2OSw4IEBA
IFdJLklzc3VlTWVzc2FnZSA9IGNsYXNzIElzc3VlTWVzc2FnZSBleHRlbmRzIFdJLk9iamVjdAog
ICAgICAgICBjYXNlIFdJLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UuTWVkaWFzb3VyY2U6
CiAgICAgICAgIGNhc2UgV0kuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5XZWJSVEM6CiAg
ICAgICAgIGNhc2UgV0kuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5JVFBEZWJ1ZzoKLSAg
ICAgICAgY2FzZSBXSS5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLkFkQ2xpY2tBdHRyaWJ1
dGlvbjoKKyAgICAgICAgY2FzZSBXSS5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLlByaXZh
dGVDbGlja01lYXN1cmVtZW50OgorICAgICAgICBjYXNlIFdJLkNvbnNvbGVNZXNzYWdlLk1lc3Nh
Z2VTb3VyY2UuQWRDbGlja0F0dHJpYnV0aW9uOiAvLyBDT01QQVRJQklMSVRZIChpT1MgMTQuMCk6
IGBDb25zb2xlLkNoYW5uZWxTb3VyY2UuQWRDbGlja0F0dHJpYnV0aW9uYCB3YXMgcmVuYW1lZCB0
byBgQ29uc29sZS5DaGFubmVsU291cmNlLlByaXZhdGVDbGlja01lYXN1cmVtZW50YC4KICAgICAg
ICAgY2FzZSBXSS5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLk90aGVyOgogICAgICAgICAg
ICAgdGhpcy5fdHlwZSA9IFdJLklzc3VlTWVzc2FnZS5UeXBlLk90aGVySXNzdWU7CiAgICAgICAg
ICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQWRD
bGlja0F0dHJpYnV0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0FkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwNzQ2MmU2NTBiNDA1MmVhYjFlNDc2NzZkMDFiMmNjNGRlNzQ3ZTIyLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSwzMzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmgiCi0KLSNpbmNsdWRlICJMb2dnaW5nLmgiCi0j
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9GZXRjaE9wdGlvbnMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Zvcm1EYXRhLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9IVFRQSGVhZGVyVmFsdWVzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUVycm9yLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrcy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7Ci0KLXVzaW5nIFNvdXJjZSA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNl
OwotdXNpbmcgRGVzdGluYXRpb24gPSBBZENsaWNrQXR0cmlidXRpb246OkRlc3RpbmF0aW9uOwot
dXNpbmcgRGVzdGluYXRpb25NYXAgPSBIYXNoTWFwPERlc3RpbmF0aW9uLCBBZENsaWNrQXR0cmli
dXRpb24+OwotdXNpbmcgQ29udmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lv
bjsKLQotY29uc3RleHByIFNlY29uZHMgZGVidWdNb2RlU2Vjb25kc1VudGlsU2VuZCB7IDYwX3Mg
fTsKLQotdm9pZCBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyOjpzdG9yZVVuY29udmVydGVkKEFk
Q2xpY2tBdHRyaWJ1dGlvbiYmIGF0dHJpYnV0aW9uKQotewotICAgIGNsZWFyRXhwaXJlZCgpOwot
Ci0gICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgUkVMRUFT
RV9MT0dfSU5GTyhBZENsaWNrQXR0cmlidXRpb24sICJTdG9yaW5nIGFuIGFkIGNsaWNrLiIpOwot
ICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Np
b25JRCwgTWVzc2FnZVNvdXJjZTo6QWRDbGlja0F0dHJpYnV0aW9uLCBNZXNzYWdlTGV2ZWw6OkVy
cm9yLCAiW0FkIENsaWNrIEF0dHJpYnV0aW9uXSBTdG9yaW5nIGFuIGFkIGNsaWNrLiJfcyk7Ci0g
ICAgfQotCi0gICAgbV91bmNvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcC5zZXQoc3RkOjpt
YWtlX3BhaXIoYXR0cmlidXRpb24uc291cmNlKCksIGF0dHJpYnV0aW9uLmRlc3RpbmF0aW9uKCkp
LCBXVEZNb3ZlKGF0dHJpYnV0aW9uKSk7Ci19Ci0KLXZvaWQgQWRDbGlja0F0dHJpYnV0aW9uTWFu
YWdlcjo6aGFuZGxlQ29udmVyc2lvbihDb252ZXJzaW9uJiYgY29udmVyc2lvbiwgY29uc3QgVVJM
JiByZXF1ZXN0VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVx
dWVzdCkKLXsKLSAgICBpZiAobV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgUmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3REb21haW4geyByZWRpcmVjdFJl
cXVlc3QudXJsKCkgfTsKLSAgICBhdXRvJiBmaXJzdFBhcnR5VVJMID0gcmVkaXJlY3RSZXF1ZXN0
LmZpcnN0UGFydHlGb3JDb29raWVzKCk7Ci0KLSAgICBpZiAoIXJlZGlyZWN0RG9tYWluLm1hdGNo
ZXMocmVxdWVzdFVSTCkpIHsKLSAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQo
KSkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oQWRDbGlja0F0dHJpYnV0aW9uLCAi
Q29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIEhUVFAgcmVkaXJlY3Qgd2Fz
IG5vdCBzYW1lLXNpdGUuIik7Ci0gICAgICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNh
c3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6QWRDbGlja0F0dHJp
YnV0aW9uLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiW0FkIENsaWNrIEF0dHJpYnV0aW9uXSBDb252
ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgSFRUUCByZWRpcmVjdCB3YXMgbm90
IHNhbWUtc2l0ZS4iX3MpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBpZiAocmVkaXJlY3REb21haW4ubWF0Y2hlcyhmaXJzdFBhcnR5VVJMKSkgewotICAgICAgICBp
ZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICAgICAgUkVMRUFTRV9M
T0dfSU5GTyhBZENsaWNrQXR0cmlidXRpb24sICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQg
YmVjYXVzZSBpdCB3YXMgcmVxdWVzdGVkIGluIGFuIEhUVFAgcmVkaXJlY3QgdGhhdCBpcyBzYW1l
LXNpdGUgYXMgdGhlIGZpcnN0LXBhcnR5LiIpOwotICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vz
cy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OkFk
Q2xpY2tBdHRyaWJ1dGlvbiwgTWVzc2FnZUxldmVsOjpFcnJvciwgIltBZCBDbGljayBBdHRyaWJ1
dGlvbl0gQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgaXQgd2FzIHJlcXVlc3Rl
ZCBpbiBhbiBIVFRQIHJlZGlyZWN0IHRoYXQgaXMgc2FtZS1zaXRlIGFzIHRoZSBmaXJzdC1wYXJ0
eS4iX3MpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBjb252ZXJ0
KEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlIHsgV1RGTW92ZShyZWRpcmVjdERvbWFpbikgfSwg
QWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbiB7IGZpcnN0UGFydHlVUkwgfSwgV1RGTW92
ZShjb252ZXJzaW9uKSk7Ci19Ci0KLXZvaWQgQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlcjo6c3Rh
cnRUaW1lcihTZWNvbmRzIHNlY29uZHMpCi17Ci0gICAgbV9maXJlUGVuZGluZ0NvbnZlcnNpb25S
ZXF1ZXN0c1RpbWVyLnN0YXJ0T25lU2hvdChtX2lzUnVubmluZ1Rlc3QgPyAwX3MgOiBzZWNvbmRz
KTsKLX0KLQotdm9pZCBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyOjpjb252ZXJ0KGNvbnN0IFNv
dXJjZSYgc291cmNlLCBjb25zdCBEZXN0aW5hdGlvbiYgZGVzdGluYXRpb24sIENvbnZlcnNpb24m
JiBjb252ZXJzaW9uKQotewotICAgIGNsZWFyRXhwaXJlZCgpOwotCi0gICAgaWYgKCFjb252ZXJz
aW9uLmlzVmFsaWQoKSkgewotICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgp
KSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhBZENsaWNrQXR0cmlidXRpb24sICJH
b3QgYW4gaW52YWxpZCBjb252ZXJzaW9uLiIpOwotICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vz
cy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OkFk
Q2xpY2tBdHRyaWJ1dGlvbiwgTWVzc2FnZUxldmVsOjpFcnJvciwgIltBZCBDbGljayBBdHRyaWJ1
dGlvbl0gR290IGFuIGludmFsaWQgY29udmVyc2lvbi4iX3MpOwotICAgICAgICB9Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIGNvbnZlcnNpb25EYXRhID0gY29udmVyc2lvbi5k
YXRhOwotICAgIGF1dG8gY29udmVyc2lvblByaW9yaXR5ID0gY29udmVyc2lvbi5wcmlvcml0eTsK
LQotICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7Ci0gICAgICAgIFJFTEVB
U0VfTE9HX0lORk8oQWRDbGlja0F0dHJpYnV0aW9uLCAiR290IGEgY29udmVyc2lvbiB3aXRoIGNv
bnZlcnNpb24gZGF0YTogJXtwdWJsaWN9dSBhbmQgcHJpb3JpdHk6ICV7cHVibGljfXUuIiwgY29u
dmVyc2lvbkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0eSk7Ci0gICAgICAgIG1fbmV0d29ya1Byb2Nl
c3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpB
ZENsaWNrQXR0cmlidXRpb24sIE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZygiW0FkIENs
aWNrIEF0dHJpYnV0aW9uXSBHb3QgYSBjb252ZXJzaW9uIHdpdGggY29udmVyc2lvbiBkYXRhOiAn
Il9zLCBjb252ZXJzaW9uRGF0YSwgIicgYW5kIHByaW9yaXR5OiAnIl9zLCBjb252ZXJzaW9uUHJp
b3JpdHksICInLiJfcykpOwotICAgIH0KLQotICAgIGF1dG8gc2Vjb25kc1VudGlsU2VuZCA9IFNl
Y29uZHM6OmluZmluaXR5KCk7Ci0KLSAgICBhdXRvIHBhaXIgPSBzdGQ6Om1ha2VfcGFpcihzb3Vy
Y2UsIGRlc3RpbmF0aW9uKTsKLSAgICBhdXRvIHByZXZpb3VzbHlVbmNvbnZlcnRlZEF0dHJpYnV0
aW9uID0gbV91bmNvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcC50YWtlKHBhaXIpOwotICAg
IGF1dG8gcHJldmlvdXNseUNvbnZlcnRlZEF0dHJpYnV0aW9uSXRlciA9IG1fY29udmVydGVkQWRD
bGlja0F0dHJpYnV0aW9uTWFwLmZpbmQocGFpcik7Ci0KLSAgICBpZiAoIXByZXZpb3VzbHlVbmNv
bnZlcnRlZEF0dHJpYnV0aW9uLmlzRW1wdHkoKSkgewotICAgICAgICAvLyBBbHdheXMgY29udmVy
dCB0aGUgcGVuZGluZyBhdHRyaWJ1dGlvbiBhbmQgcmVtb3ZlIGl0IGZyb20gdGhlIHVuY29udmVy
dGVkIG1hcC4KLSAgICAgICAgaWYgKGF1dG8gb3B0aW9uYWxTZWNvbmRzVW50aWxTZW5kID0gcHJl
dmlvdXNseVVuY29udmVydGVkQXR0cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRv
U2VuZChXVEZNb3ZlKGNvbnZlcnNpb24pKSkgewotICAgICAgICAgICAgc2Vjb25kc1VudGlsU2Vu
ZCA9ICpvcHRpb25hbFNlY29uZHNVbnRpbFNlbmQ7Ci0gICAgICAgICAgICBBU1NFUlQoc2Vjb25k
c1VudGlsU2VuZCAhPSBTZWNvbmRzOjppbmZpbml0eSgpKTsKLQotICAgICAgICAgICAgaWYgKFVO
TElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgICAgICAgICBSRUxFQVNFX0xP
R19JTkZPKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgIkNvbnZlcnRlZCBhIHN0b3JlZCBhZCBjbGljayB3
aXRoIGNvbnZlcnNpb24gZGF0YTogJXtwdWJsaWN9dSBhbmQgcHJpb3JpdHk6ICV7cHVibGljfXUu
IiwgY29udmVyc2lvbkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0eSk7Ci0gICAgICAgICAgICAgICAg
bV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1l
c3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbiwgTWVzc2FnZUxldmVsOjpJbmZvLCBtYWtl
U3RyaW5nKCJbQWQgQ2xpY2sgQXR0cmlidXRpb25dIENvbnZlcnRlZCBhIHN0b3JlZCBhZCBjbGlj
ayB3aXRoIGNvbnZlcnNpb24gZGF0YTogJyJfcywgY29udmVyc2lvbkRhdGEsICInIGFuZCBwcmlv
cml0eTogJyJfcywgY29udmVyc2lvblByaW9yaXR5LCAiJy4iX3MpKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotCi0gICAgICAgIGlmIChwcmV2aW91c2x5Q29udmVydGVkQXR0cmlidXRpb25J
dGVyID09IG1fY29udmVydGVkQWRDbGlja0F0dHJpYnV0aW9uTWFwLmVuZCgpKQotICAgICAgICAg
ICAgbV9jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25NYXAuYWRkKHBhaXIsIFdURk1vdmUocHJl
dmlvdXNseVVuY29udmVydGVkQXR0cmlidXRpb24pKTsKLSAgICAgICAgZWxzZSBpZiAocHJldmlv
dXNseVVuY29udmVydGVkQXR0cmlidXRpb24uaGFzSGlnaGVyUHJpb3JpdHlUaGFuKHByZXZpb3Vz
bHlDb252ZXJ0ZWRBdHRyaWJ1dGlvbkl0ZXItPnZhbHVlKSkgewotICAgICAgICAgICAgLy8gSWYg
dGhlIG5ld2x5IGNvbnZlcnRlZCBhdHRyaWJ1dGlvbiBoYXMgaGlnaGVyIHByaW9yaXR5LCByZXBs
YWNlIHRoZSBvbGQgb25lLgotICAgICAgICAgICAgbV9jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRp
b25NYXAuc2V0KHBhaXIsIFdURk1vdmUocHJldmlvdXNseVVuY29udmVydGVkQXR0cmlidXRpb24p
KTsKLQotICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAg
ICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgIlJlcGxh
Y2VkIGEgcHJldmlvdXNseSBjb252ZXJ0ZWQgYWQgY2xpY2sgd2l0aCBhIG5ldyBvbmUgd2l0aCBj
b252ZXJzaW9uIGRhdGE6ICV7cHVibGljfXUgYW5kIHByaW9yaXR5OiAle3B1YmxpY311IGJlY2F1
c2UgaXQgaGFkIGhpZ2hlciBwcmlvcml0eS4iLCBjb252ZXJzaW9uRGF0YSwgY29udmVyc2lvblBy
aW9yaXR5KTsKLSAgICAgICAgICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25z
b2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6QWRDbGlja0F0dHJpYnV0aW9u
LCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltBZCBDbGljayBBdHRyaWJ1dGlvbl0g
UmVwbGFjZWQgYSBwcmV2aW91c2x5IGNvbnZlcnRlZCBhZCBjbGljayB3aXRoIGEgbmV3IG9uZSB3
aXRoIGNvbnZlcnNpb24gZGF0YTogJyJfcywgY29udmVyc2lvbkRhdGEsICInIGFuZCBwcmlvcml0
eTogJyJfcywgY29udmVyc2lvblByaW9yaXR5LCAiJyBiZWNhdXNlIGl0IGhhZCBoaWdoZXIgcHJp
b3JpdHkuIl9zKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKHBy
ZXZpb3VzbHlDb252ZXJ0ZWRBdHRyaWJ1dGlvbkl0ZXIgIT0gbV9jb252ZXJ0ZWRBZENsaWNrQXR0
cmlidXRpb25NYXAuZW5kKCkpIHsKLSAgICAgICAgLy8gSWYgd2UgaGF2ZSBubyBuZXdseSBjb252
ZXJ0ZWQgYXR0cmlidXRpb24sIHJlLWNvbnZlcnQgdGhlIG9sZCBvbmUgdG8gcmVzcGVjdCB0aGUg
bmV3IHByaW9yaXR5LgotICAgICAgICBpZiAoYXV0byBvcHRpb25hbFNlY29uZHNVbnRpbFNlbmQg
PSBwcmV2aW91c2x5Q29udmVydGVkQXR0cmlidXRpb25JdGVyLT52YWx1ZS5jb252ZXJ0QW5kR2V0
RWFybGllc3RUaW1lVG9TZW5kKFdURk1vdmUoY29udmVyc2lvbikpKSB7Ci0gICAgICAgICAgICBz
ZWNvbmRzVW50aWxTZW5kID0gKm9wdGlvbmFsU2Vjb25kc1VudGlsU2VuZDsKLSAgICAgICAgICAg
IEFTU0VSVChzZWNvbmRzVW50aWxTZW5kICE9IFNlY29uZHM6OmluZmluaXR5KCkpOwotCi0gICAg
ICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0lORk8oQWRDbGlja0F0dHJpYnV0aW9uLCAiUmUtY29udmVydGVkIGFu
IGFkIGNsaWNrIHdpdGggYSBuZXcgb25lIHdpdGggY29udmVyc2lvbiBkYXRhOiAle3B1YmxpY311
IGFuZCBwcmlvcml0eTogJXtwdWJsaWN9dSBiZWNhdXNlIGl0IGhhZCBoaWdoZXIgcHJpb3JpdHku
IiwgY29udmVyc2lvbkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0eSk7Ci0gICAgICAgICAgICAgICAg
bV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1l
c3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbiwgTWVzc2FnZUxldmVsOjpJbmZvLCBtYWtl
U3RyaW5nKCJbQWQgQ2xpY2sgQXR0cmlidXRpb25dIFJlLWNvbnZlcnRlZCBhbiBhZCBjbGljayB3
aXRoIGEgbmV3IG9uZSB3aXRoIGNvbnZlcnNpb24gZGF0YTogJyJfcywgY29udmVyc2lvbkRhdGEs
ICInIGFuZCBwcmlvcml0eTogJyJfcywgY29udmVyc2lvblByaW9yaXR5LCAiJycgYmVjYXVzZSBp
dCBoYWQgaGlnaGVyIHByaW9yaXR5LiJfcykpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgfQotCi0gICAgaWYgKHNlY29uZHNVbnRpbFNlbmQgPT0gU2Vjb25kczo6aW5maW5pdHkoKSkK
LSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIGlmIChtX2ZpcmVQZW5kaW5nQ29udmVyc2lvblJl
cXVlc3RzVGltZXIuaXNBY3RpdmUoKSAmJiBtX2ZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3Rz
VGltZXIubmV4dEZpcmVJbnRlcnZhbCgpIDwgc2Vjb25kc1VudGlsU2VuZCkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAg
UkVMRUFTRV9MT0dfSU5GTyhBZENsaWNrQXR0cmlidXRpb24sICJTZXR0aW5nIHRpbWVyIGZvciBm
aXJpbmcgY29udmVyc2lvbiByZXF1ZXN0cyB0byB0aGUgZGVidWcgbW9kZSB0aW1lb3V0IG9mICV7
cHVibGljfWYgc2Vjb25kcyB3aGVyZSB0aGUgcmVndWxhciB0aW1lb3V0IHdvdWxkIGhhdmUgYmVl
biAle3B1YmxpY31mIHNlY29uZHMuIiwgZGVidWdNb2RlU2Vjb25kc1VudGlsU2VuZC5zZWNvbmRz
KCksIHNlY29uZHNVbnRpbFNlbmQuc2Vjb25kcygpKTsKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vz
cy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OkFk
Q2xpY2tBdHRyaWJ1dGlvbiwgTWVzc2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbQWQgQ2xp
Y2sgQXR0cmlidXRpb25dIFNldHRpbmcgdGltZXIgZm9yIGZpcmluZyBjb252ZXJzaW9uIHJlcXVl
c3RzIHRvIHRoZSBkZWJ1ZyBtb2RlIHRpbWVvdXQgb2YgIl9zLCBkZWJ1Z01vZGVTZWNvbmRzVW50
aWxTZW5kLnNlY29uZHMoKSwgIiBzZWNvbmRzIHdoZXJlIHRoZSByZWd1bGFyIHRpbWVvdXQgd291
bGQgaGF2ZSBiZWVuICJfcywgc2Vjb25kc1VudGlsU2VuZC5zZWNvbmRzKCksICIgc2Vjb25kcy4i
X3MpKTsKLSAgICAgICAgc2Vjb25kc1VudGlsU2VuZCA9IGRlYnVnTW9kZVNlY29uZHNVbnRpbFNl
bmQ7Ci0gICAgfQotCi0gICAgc3RhcnRUaW1lcihzZWNvbmRzVW50aWxTZW5kKTsKLX0KLQotdm9p
ZCBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJlcXVlc3QoY29uc3Qg
QWRDbGlja0F0dHJpYnV0aW9uJiBhdHRyaWJ1dGlvbikKLXsKLSAgICBhdXRvIGNvbnZlcnNpb25V
UkwgPSBtX2NvbnZlcnNpb25CYXNlVVJMRm9yVGVzdGluZyA/ICptX2NvbnZlcnNpb25CYXNlVVJM
Rm9yVGVzdGluZyA6IGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpOwotICAgIGlmIChjb252ZXJzaW9u
VVJMLmlzRW1wdHkoKSB8fCAhY29udmVyc2lvblVSTC5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsgV1RGTW92ZShjb252ZXJzaW9uVVJM
KSB9OwotICAgIAotICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZCgiUE9TVCJfcyk7Ci0gICAgcmVx
dWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNhY2hlQ29udHJvbCwgV2Vi
Q29yZTo6SFRUUEhlYWRlclZhbHVlczo6bWF4QWdlMCgpKTsKLQotICAgIHJlcXVlc3Quc2V0SFRU
UENvbnRlbnRUeXBlKFdlYkNvcmU6OkhUVFBIZWFkZXJWYWx1ZXM6OmFwcGxpY2F0aW9uSlNPTkNv
bnRlbnRUeXBlKCkpOwotICAgIHJlcXVlc3Quc2V0SFRUUEJvZHkoV2ViQ29yZTo6Rm9ybURhdGE6
OmNyZWF0ZShhdHRyaWJ1dGlvbi5qc29uKCktPnRvSlNPTlN0cmluZygpLnV0ZjgoKS5kYXRhKCkp
KTsKLQotICAgIEZldGNoT3B0aW9ucyBvcHRpb25zOwotICAgIG9wdGlvbnMuY3JlZGVudGlhbHMg
PSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpPbWl0OwotICAgIG9wdGlvbnMucmVkaXJlY3Qg
PSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpFcnJvcjsKLQotICAgIHN0YXRpYyB1aW50NjRfdCBp
ZGVudGlmaWVyID0gMDsKLSAgICAKLSAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBs
b2FkUGFyYW1ldGVyczsKLSAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyID0gKytpZGVudGlm
aWVyOwotICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwotICAgIGxvYWRQYXJh
bWV0ZXJzLnBhcmVudFBJRCA9IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOwotICAgIGxvYWRQ
YXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gU3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3k6OkVwaGVtZXJhbFN0YXRlbGVzczsKLSAgICBsb2FkUGFyYW1ldGVycy5vcHRpb25zID0gb3B0
aW9uczsKLSAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0ID0gdHJ1ZTsKLSAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRSZXN0cmljdEhUVFBS
ZXNwb25zZUFjY2VzcyA9IGZhbHNlOwotCi0gICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJs
ZWQoKSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhBZENsaWNrQXR0cmlidXRpb24sICJB
Ym91dCB0byBmaXJlIGFuIGF0dHJpYnV0aW9uIHJlcXVlc3QgZm9yIGEgY29udmVyc2lvbi4iKTsK
LSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNz
aW9uSUQsIE1lc3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbiwgTWVzc2FnZUxldmVsOjpF
cnJvciwgIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gQWJvdXQgdG8gZmlyZSBhbiBhdHRyaWJ1dGlv
biByZXF1ZXN0IGZvciBhIGNvbnZlcnNpb24uIl9zKTsKLSAgICB9Ci0KLSAgICBtX3BpbmdMb2Fk
RnVuY3Rpb24oV1RGTW92ZShsb2FkUGFyYW1ldGVycyksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKV0oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKSB7Ci0gICAgICAgIGlmICghd2Vha1RoaXMp
Ci0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKFVOTElLRUxZKHdlYWtUaGlzLT5k
ZWJ1Z01vZGVFbmFibGVkKCkpKSB7Ci0gICAgICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKSB7
Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
QWRDbGlja0F0dHJpYnV0aW9uLCAiUmVjZWl2ZWQgZXJyb3I6ICcle3B1YmxpY31zJyBmb3IgYWQg
Y2xpY2sgYXR0cmlidXRpb24gcmVxdWVzdC4iLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigp
LnV0ZjgoKS5kYXRhKCkpOwotI2Vsc2UKLSAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihBZENsaWNrQXR0cmlidXRpb24sICJSZWNlaXZlZCBlcnJvcjogJyVzJyBmb3IgYWQgY2xpY2sg
YXR0cmlidXRpb24gcmVxdWVzdC4iLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0Zjgo
KS5kYXRhKCkpOwotI2VuZGlmCi0gICAgICAgICAgICAgICAgd2Vha1RoaXMtPm1fbmV0d29ya1By
b2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKHdlYWtUaGlzLT5tX3Nlc3Npb25JRCwgTWVz
c2FnZVNvdXJjZTo6QWRDbGlja0F0dHJpYnV0aW9uLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtYWtl
U3RyaW5nKCJbQWQgQ2xpY2sgQXR0cmlidXRpb25dIFJlY2VpdmVkIGVycm9yOiAnIl9zLCBlcnJv
ci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLCAiJyBmb3IgYWQgY2xpY2sgYXR0cmlidXRpb24gcmVx
dWVzdC4iX3MpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0pOwotfQotCi12b2lk
IEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXI6OmZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3Rz
KCkKLXsKLSAgICBhdXRvIG5leHRUaW1lVG9GaXJlID0gU2Vjb25kczo6aW5maW5pdHkoKTsKLSAg
ICBmb3IgKGF1dG8mIGF0dHJpYnV0aW9uIDogbV9jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25N
YXAudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKGF0dHJpYnV0aW9uLndhc0NvbnZlcnNpb25TZW50
KCkpIHsKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgIH0KLSAgICAgICAgYXV0byBlYXJsaWVzdFRpbWVUb1NlbmQgPSBhdHRy
aWJ1dGlvbi5lYXJsaWVzdFRpbWVUb1NlbmQoKTsKLSAgICAgICAgaWYgKCFlYXJsaWVzdFRpbWVU
b1NlbmQpIHsKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBhdXRvIG5vdyA9IFdhbGxUaW1lOjpub3co
KTsKLSAgICAgICAgaWYgKCplYXJsaWVzdFRpbWVUb1NlbmQgPD0gbm93IHx8IG1faXNSdW5uaW5n
VGVzdCB8fCBkZWJ1Z01vZGVFbmFibGVkKCkpIHsKLSAgICAgICAgICAgIGZpcmVDb252ZXJzaW9u
UmVxdWVzdChhdHRyaWJ1dGlvbik7Ci0gICAgICAgICAgICBhdHRyaWJ1dGlvbi5tYXJrQ29udmVy
c2lvbkFzU2VudCgpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAg
ICBhdXRvIHNlY29uZHMgPSAqZWFybGllc3RUaW1lVG9TZW5kIC0gbm93OwotICAgICAgICBuZXh0
VGltZVRvRmlyZSA9IHN0ZDo6bWluKG5leHRUaW1lVG9GaXJlLCBzZWNvbmRzKTsKLSAgICB9Ci0K
LSAgICBtX2NvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcC5yZW1vdmVJZihbXShhdXRvJiBr
ZXlBbmRWYWx1ZSkgewotICAgICAgICByZXR1cm4ga2V5QW5kVmFsdWUudmFsdWUud2FzQ29udmVy
c2lvblNlbnQoKTsKLSAgICB9KTsKLQotICAgIGlmIChuZXh0VGltZVRvRmlyZSA8IFNlY29uZHM6
OmluZmluaXR5KCkpCi0gICAgICAgIHN0YXJ0VGltZXIobmV4dFRpbWVUb0ZpcmUpOwotfQotCi12
b2lkIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXI6OmNsZWFyKCkKLXsKLSAgICBtX2ZpcmVQZW5k
aW5nQ29udmVyc2lvblJlcXVlc3RzVGltZXIuc3RvcCgpOwotICAgIG1fdW5jb252ZXJ0ZWRBZENs
aWNrQXR0cmlidXRpb25NYXAuY2xlYXIoKTsKLSAgICBtX2NvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1
dGlvbk1hcC5jbGVhcigpOwotfQotCi12b2lkIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXI6OmNs
ZWFyRm9yUmVnaXN0cmFibGVEb21haW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikK
LXsKLSAgICBtX3VuY29udmVydGVkQWRDbGlja0F0dHJpYnV0aW9uTWFwLnJlbW92ZUlmKFsmZG9t
YWluXShhdXRvJiBrZXlBbmRWYWx1ZSkgewotICAgICAgICByZXR1cm4ga2V5QW5kVmFsdWUua2V5
LmZpcnN0LnJlZ2lzdHJhYmxlRG9tYWluID09IGRvbWFpbiB8fCBrZXlBbmRWYWx1ZS5rZXkuc2Vj
b25kLnJlZ2lzdHJhYmxlRG9tYWluID09IGRvbWFpbjsKLSAgICB9KTsKLQotICAgIG1fY29udmVy
dGVkQWRDbGlja0F0dHJpYnV0aW9uTWFwLnJlbW92ZUlmKFsmZG9tYWluXShhdXRvJiBrZXlBbmRW
YWx1ZSkgewotICAgICAgICByZXR1cm4ga2V5QW5kVmFsdWUua2V5LmZpcnN0LnJlZ2lzdHJhYmxl
RG9tYWluID09IGRvbWFpbiB8fCBrZXlBbmRWYWx1ZS5rZXkuc2Vjb25kLnJlZ2lzdHJhYmxlRG9t
YWluID09IGRvbWFpbjsKLSAgICB9KTsKLX0KLQotdm9pZCBBZENsaWNrQXR0cmlidXRpb25NYW5h
Z2VyOjpjbGVhckV4cGlyZWQoKQotewotICAgIG1fdW5jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRp
b25NYXAucmVtb3ZlSWYoW10oYXV0byYga2V5QW5kVmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIGtl
eUFuZFZhbHVlLnZhbHVlLmhhc0V4cGlyZWQoKTsKLSAgICB9KTsKLX0KLQotdm9pZCBBZENsaWNr
QXR0cmlidXRpb25NYW5hZ2VyOjp0b1N0cmluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmlu
Zyk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0Ci17Ci0gICAgaWYgKG1fdW5jb252ZXJ0ZWRB
ZENsaWNrQXR0cmlidXRpb25NYXAuaXNFbXB0eSgpICYmIG1fY29udmVydGVkQWRDbGlja0F0dHJp
YnV0aW9uTWFwLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCJc
bk5vIHN0b3JlZCBBZCBDbGljayBBdHRyaWJ1dGlvbiBkYXRhLlxuIl9zKTsKLQotICAgIHVuc2ln
bmVkIHVuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIgPSAwOwotICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKLSAgICBmb3IgKGF1dG8mIGF0dHJpYnV0aW9uIDogbV91bmNvbnZlcnRlZEFkQ2xp
Y2tBdHRyaWJ1dGlvbk1hcC52YWx1ZXMoKSkgewotICAgICAgICBpZiAoIXVuY29udmVydGVkQXR0
cmlidXRpb25OdW1iZXIpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlVuY29u
dmVydGVkIEFkIENsaWNrIEF0dHJpYnV0aW9uczpcbiIpOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24gIik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5k
TnVtYmVyKCsrdW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlcik7Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCdcbicpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChhdHRyaWJ1dGlvbi50b1N0cmlu
ZygpKTsKLX0KLQotICAgIHVuc2lnbmVkIGNvbnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyID0gMDsK
LSAgICBmb3IgKGF1dG8mIGF0dHJpYnV0aW9uIDogbV9jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRp
b25NYXAudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKHVuY29udmVydGVkQXR0cmlidXRpb25OdW1i
ZXIpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaWYgKCFjb252
ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlcikKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiQ29udmVydGVkIEFkIENsaWNrIEF0dHJpYnV0aW9uczpcbiIpOwotICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCJXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24gIik7Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kTnVtYmVyKCsrY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIgKyB1bmNvbnZlcnRlZEF0
dHJpYnV0aW9uTnVtYmVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGF0dHJpYnV0aW9uLnRvU3RyaW5nKCkpOwotICAgIH0KLQotICAgIGNv
bXBsZXRpb25IYW5kbGVyKGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci19Ci0KLXZvaWQgQWRDbGlja0F0
dHJpYnV0aW9uTWFuYWdlcjo6c2V0Q29udmVyc2lvblVSTEZvclRlc3RpbmcoVVJMJiYgdGVzdFVS
TCkKLXsKLSAgICBpZiAodGVzdFVSTC5pc0VtcHR5KCkpCi0gICAgICAgIG1fY29udmVyc2lvbkJh
c2VVUkxGb3JUZXN0aW5nID0geyB9OwotICAgIGVsc2UKLSAgICAgICAgbV9jb252ZXJzaW9uQmFz
ZVVSTEZvclRlc3RpbmcgPSBXVEZNb3ZlKHRlc3RVUkwpOwotfQotCi12b2lkIEFkQ2xpY2tBdHRy
aWJ1dGlvbk1hbmFnZXI6Om1hcmtBbGxVbmNvbnZlcnRlZEFzRXhwaXJlZEZvclRlc3RpbmcoKQot
ewotICAgIGZvciAoYXV0byYgYXR0cmlidXRpb24gOiBtX3VuY29udmVydGVkQWRDbGlja0F0dHJp
YnV0aW9uTWFwLnZhbHVlcygpKQotICAgICAgICBhdHRyaWJ1dGlvbi5tYXJrQXNFeHBpcmVkKCk7
Ci19Ci0KLWJvb2wgQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlcjo6ZGVidWdNb2RlRW5hYmxlZCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuYWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZCgpICYmICFtX3Nlc3Npb25J
RC5pc0VwaGVtZXJhbCgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9BZENsaWNrQXR0cmlidXRpb25NYW5hZ2Vy
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3NGIwYTVmMWYyNDU3ZGY5NWIyNGZl
ZGI1ZTU2MWJhMTY3NmIwMzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9BZENsaWNrQXR0cmlidXRpb25N
YW5hZ2VyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLSNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgotI2luY2x1ZGUgIk5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9BZENsaWNrQXR0
cmlidXRpb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZVJlc3BvbnNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgotI2luY2x1ZGUgPHBhbC9T
ZXNzaW9uSUQuaD4KLSNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KLSNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+Ci0jaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBBZENsaWNr
QXR0cmlidXRpb25NYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPEFkQ2xpY2tBdHRyaWJ1
dGlvbk1hbmFnZXI+IHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLQot
ICAgIHVzaW5nIFJlZ2lzdHJhYmxlRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47
Ci0gICAgdXNpbmcgQWRDbGlja0F0dHJpYnV0aW9uID0gV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0
aW9uOwotICAgIHVzaW5nIFNvdXJjZSA9IFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291
cmNlOwotICAgIHVzaW5nIERlc3RpbmF0aW9uID0gV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9u
OjpEZXN0aW5hdGlvbjsKLSAgICB1c2luZyBDb252ZXJzaW9uID0gV2ViQ29yZTo6QWRDbGlja0F0
dHJpYnV0aW9uOjpDb252ZXJzaW9uOwotCi0gICAgZXhwbGljaXQgQWRDbGlja0F0dHJpYnV0aW9u
TWFuYWdlcihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKLSAgICAgICAgOiBtX2ZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzVGltZXIo
KnRoaXMsICZBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyOjpmaXJlUGVuZGluZ0NvbnZlcnNpb25S
ZXF1ZXN0cykKLSAgICAgICAgLCBtX3BpbmdMb2FkRnVuY3Rpb24oW10oTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMmJiBwYXJhbXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikgewotICAgICAgICAgICAgVU5VU0VEX1BBUkFNKHBhcmFtcyk7
Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpSZXNvdXJjZUVycm9yKCks
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UoKSk7Ci0gICAgICAgIH0pCi0gICAgICAgICwgbV9u
ZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKLSAgICAgICAgLCBtX3Nlc3Npb25JRChzZXNz
aW9uSUQpCi0gICAgewotICAgIH0KLQotICAgIHZvaWQgc3RvcmVVbmNvbnZlcnRlZChBZENsaWNr
QXR0cmlidXRpb24mJik7Ci0gICAgdm9pZCBoYW5kbGVDb252ZXJzaW9uKENvbnZlcnNpb24mJiwg
Y29uc3QgVVJMJiByZXF1ZXN0VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
ZGlyZWN0UmVxdWVzdCk7Ci0gICAgdm9pZCBjbGVhcigpOwotICAgIHZvaWQgY2xlYXJGb3JSZWdp
c3RyYWJsZURvbWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwotICAgIHZvaWQgdG9TdHJp
bmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKSBjb25zdDsKLSAgICB2b2lkIHNl
dFBpbmdMb2FkRnVuY3Rpb24oRnVuY3Rpb248dm9pZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYpPiYmIHBpbmdMb2FkRnVu
Y3Rpb24pIHsgbV9waW5nTG9hZEZ1bmN0aW9uID0gV1RGTW92ZShwaW5nTG9hZEZ1bmN0aW9uKTsg
fQotICAgIHZvaWQgc2V0T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSkgeyBtX2lz
UnVubmluZ1Rlc3QgPSB2YWx1ZTsgfQotICAgIHZvaWQgc2V0Q29udmVyc2lvblVSTEZvclRlc3Rp
bmcoVVJMJiYpOwotICAgIHZvaWQgbWFya0FsbFVuY29udmVydGVkQXNFeHBpcmVkRm9yVGVzdGlu
ZygpOwotCi1wcml2YXRlOgotICAgIHZvaWQgc3RhcnRUaW1lcihTZWNvbmRzKTsKLSAgICB2b2lk
IGNvbnZlcnQoY29uc3QgU291cmNlJiwgY29uc3QgRGVzdGluYXRpb24mLCBDb252ZXJzaW9uJiYp
OwotICAgIHZvaWQgZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnN0IEFkQ2xpY2tBdHRyaWJ1dGlv
biYpOwotICAgIHZvaWQgZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHMoKTsKLSAgICB2b2lk
IGNsZWFyRXhwaXJlZCgpOwotICAgIGJvb2wgZGVidWdNb2RlRW5hYmxlZCgpIGNvbnN0OwotCi0g
ICAgSGFzaE1hcDxzdGQ6OnBhaXI8U291cmNlLCBEZXN0aW5hdGlvbj4sIEFkQ2xpY2tBdHRyaWJ1
dGlvbj4gbV91bmNvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcDsKLSAgICBIYXNoTWFwPHN0
ZDo6cGFpcjxTb3VyY2UsIERlc3RpbmF0aW9uPiwgQWRDbGlja0F0dHJpYnV0aW9uPiBtX2NvbnZl
cnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcDsKLSAgICBXZWJDb3JlOjpUaW1lciBtX2ZpcmVQZW5k
aW5nQ29udmVyc2lvblJlcXVlc3RzVGltZXI7Ci0gICAgRnVuY3Rpb248dm9pZChOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYp
PiBtX3BpbmdMb2FkRnVuY3Rpb247Ci0gICAgYm9vbCBtX2lzUnVubmluZ1Rlc3QgeyBmYWxzZSB9
OwotICAgIE9wdGlvbmFsPFVSTD4gbV9jb252ZXJzaW9uQmFzZVVSTEZvclRlc3Rpbmc7Ci0gICAg
UmVmPE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9jZXNzOwotICAgIFBBTDo6U2Vzc2lvbklE
IG1fc2Vzc2lvbklEOwotfTsKLSAgICAKLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAwYmI4NTcz
MDUzODRjYjM1ZDc4YTY0ZGFjOTQzNGQ3ZmM4MjRkOWY1Li44YTlkMmYzOTM5ZTcxODZiODFlOGE3
ZWZkNGJiZWI1MGE2M2IyZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMzMwLDcgKzMzMCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyYmCiAKICAgICBzZXRDYWNoZU1vZGVsKHBhcmFtZXRlcnMuY2FjaGVNb2RlbCk7CiAKLSAg
ICBzZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUocGFyYW1ldGVycy5lbmFibGVBZENsaWNr
QXR0cmlidXRpb25EZWJ1Z01vZGUpOworICAgIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVi
dWdNb2RlKHBhcmFtZXRlcnMuZW5hYmxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUp
OwogCiAgICAgZm9yIChhdXRvJiBzdXBwbGVtZW50IDogbV9zdXBwbGVtZW50cy52YWx1ZXMoKSkK
ICAgICAgICAgc3VwcGxlbWVudC0+aW5pdGlhbGl6ZShwYXJhbWV0ZXJzKTsKQEAgLTEzMTMsMTgg
KzEzMTMsMTggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0VGhpcmRQYXJ0eUNOQU1FRG9tYWlu
Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQKIH0KICNlbmRpZiAvLyBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRBZENs
aWNrQXR0cmlidXRpb25EZWJ1Z01vZGUoYm9vbCBkZWJ1Z01vZGUpCit2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZShib29sIGRlYnVnTW9kZSkK
IHsKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5hZENs
aWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkKCkgPT0gZGVidWdNb2RlKQorICAgIGlmIChS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnByaXZhdGVDbGlja01lYXN1
cmVtZW50RGVidWdNb2RlRW5hYmxlZCgpID09IGRlYnVnTW9kZSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRBZENsaWNr
QXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkKGRlYnVnTW9kZSk7CisgICAgUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERl
YnVnTW9kZUVuYWJsZWQoZGVidWdNb2RlKTsKIAotICAgIFN0cmluZyBtZXNzYWdlID0gZGVidWdN
b2RlID8gIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gVHVybmVkIERlYnVnIE1vZGUgb24uIl9zIDog
IltBZCBDbGljayBBdHRyaWJ1dGlvbl0gVHVybmVkIERlYnVnIE1vZGUgb2ZmLiJfczsKKyAgICBT
dHJpbmcgbWVzc2FnZSA9IGRlYnVnTW9kZSA/ICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0g
VHVybmVkIERlYnVnIE1vZGUgb24uIl9zIDogIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBU
dXJuZWQgRGVidWcgTW9kZSBvZmYuIl9zOwogICAgIGZvciAoYXV0byYgbmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MgOiBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy52YWx1ZXMoKSkgewogICAg
ICAgICBpZiAobmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPnNlc3Npb25JRCgpLmlzRXBo
ZW1lcmFsKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgbmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkFk
Q2xpY2tBdHRyaWJ1dGlvbiwgTWVzc2FnZUxldmVsOjpJbmZvLCBtZXNzYWdlKTsKKyAgICAgICAg
bmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkluZm8s
IG1lc3NhZ2UpOwogICAgIH0KIH0KIApAQCAtMTU4Myw5ICsxNTgzLDkgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRp
b25TZXQ8V2Vic2kKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0
YVR5cGU6OkRpc2tDYWNoZSkgJiYgIXNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKQogICAgICAgICBj
bGVhckRpc2tDYWNoZShtb2RpZmllZFNpbmNlLCBbY2xlYXJUYXNrc0hhbmRsZXIgPSBXVEZNb3Zl
KGNsZWFyVGFza3NIYW5kbGVyKV0geyB9KTsKIAotICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNv
bnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6QWRDbGlja0F0dHJpYnV0aW9ucykpIHsKKyAgICBpZiAo
d2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50cykpIHsKICAgICAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+
bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkKLSAgICAgICAgICAgIG5ldHdvcmtTZXNzaW9uLT5j
bGVhckFkQ2xpY2tBdHRyaWJ1dGlvbigpOworICAgICAgICAgICAgbmV0d29ya1Nlc3Npb24tPmNs
ZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKICAgICB9CiAKICNpZiBIQVZFKENGTkVUV09S
S19BTFRFUk5BVElWRV9TRVJWSUNFKQpAQCAtMTY0NCwxMCArMTY0NCwxMCBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBPcHRpbwogICAgIH0KICNlbmRpZgogCi0gICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMu
Y29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpBZENsaWNrQXR0cmlidXRpb25zKSkgeworICAgIGlm
ICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRzKSkgewogICAgICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0aGlz
LT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8mIG9y
aWdpbkRhdGEgOiBvcmlnaW5EYXRhcykKLSAgICAgICAgICAgICAgICBuZXR3b3JrU2Vzc2lvbi0+
Y2xlYXJBZENsaWNrQXR0cmlidXRpb25Gb3JSZWdpc3RyYWJsZURvbWFpbihSZWdpc3RyYWJsZURv
bWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3Qob3JpZ2luRGF0YS5ob3N0KSk7CisgICAgICAg
ICAgICAgICAgbmV0d29ya1Nlc3Npb24tPmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGb3JS
ZWdpc3RyYWJsZURvbWFpbihSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhv
c3Qob3JpZ2luRGF0YS5ob3N0KSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCkBAIC0yNTMyLDQ4
ICsyNTMyLDQ4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtRmx1c2hDb29raWVzKGNv
bnN0IFBBTDo6U2Vzc2lvbklEJiwgQ29tcGxldGlvbkhhbmRsCiAKICNlbmRpZgogCi12b2lkIE5l
dHdvcmtQcm9jZXNzOjpzdG9yZUFkQ2xpY2tBdHRyaWJ1dGlvbihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbiYmIGFkQ2xpY2tBdHRyaWJ1dGlvbikK
K3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnN0b3JlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmIHBy
aXZhdGVDbGlja01lYXN1cmVtZW50KQogewogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29y
a1Nlc3Npb24oc2Vzc2lvbklEKSkKLSAgICAgICAgc2Vzc2lvbi0+c3RvcmVBZENsaWNrQXR0cmli
dXRpb24oV1RGTW92ZShhZENsaWNrQXR0cmlidXRpb24pKTsKKyAgICAgICAgc2Vzc2lvbi0+c3Rv
cmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXVEZNb3ZlKHByaXZhdGVDbGlja01lYXN1cmVtZW50
KSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmR1bXBBZENsaWNrQXR0cmlidXRpb24oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpkdW1wUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFN0cmluZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIHNlc3Np
b24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQotICAgICAgICByZXR1cm4gc2Vzc2lvbi0+
ZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAg
ICAgIHJldHVybiBzZXNzaW9uLT5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogCiAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKIH0KIAot
dm9pZCBOZXR3b3JrUHJvY2Vzczo6Y2xlYXJBZENsaWNrQXR0cmlidXRpb24oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24o
c2Vzc2lvbklEKSkKLSAgICAgICAgc2Vzc2lvbi0+Y2xlYXJBZENsaWNrQXR0cmlidXRpb24oKTsK
KyAgICAgICAgc2Vzc2lvbi0+Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwogICAgIAog
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldEFk
Q2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wg
dmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCi0gICAg
ICAgIHNlc3Npb24tPnNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5n
KHZhbHVlKTsKKyAgICAgICAgc2Vzc2lvbi0+c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVy
cmlkZVRpbWVyRm9yVGVzdGluZyh2YWx1ZSk7CiAgICAgCiAgICAgY29tcGxldGlvbkhhbmRsZXIo
KTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVy
c2lvblVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwmJiB1cmwsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29y
a1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rp
bmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwmJiB1cmwsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9
IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCi0gICAgICAgIHNlc3Npb24tPnNldEFkQ2xpY2tB
dHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdURk1vdmUodXJsKSk7CisgICAgICAg
IHNlc3Npb24tPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rp
bmcoV1RGTW92ZSh1cmwpKTsKICAgICAKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCi12
b2lkIE5ldHdvcmtQcm9jZXNzOjptYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjptYXJrUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCi0gICAgICAg
IHNlc3Npb24tPm1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZygpOwor
ICAgICAgICBzZXNzaW9uLT5tYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9y
VGVzdGluZygpOwogCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAxYTc3ZmFiOTYxZGYyZTVl
MzA2MTI2OWY1OTJhMmM0Yzg2OTQ2ZjlkLi5iZTUyNmVmZjFlOGM5MWQzNmVhODliODdlN2I1Njc5
NThhOTU2ZmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCkBAIC0zOSw3ICszOSw2IEBACiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1
dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Dcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPgpAQCAtNDcsNiArNDYsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvSURCS2V5RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnRDaGFu
bmVsUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4KQEAg
LTI3NSw3ICsyNzUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUaGlyZFBhcnR5Q05BTUVEb21h
aW5Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogI2VuZGlmCiAKLSAgICB2b2lkIHNldEFk
Q2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZShib29sKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50RGVidWdNb2RlKGJvb2wpOwogCiAgICAgdXNpbmcgQ2FjaGVTdG9yYWdlUm9v
dFBhdGhDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPjsKICAgICB2
b2lkIGNhY2hlU3RvcmFnZVJvb3RQYXRoKFBBTDo6U2Vzc2lvbklELCBDYWNoZVN0b3JhZ2VSb290
UGF0aENhbGxiYWNrJiYpOwpAQCAtMzMyLDEyICszMzIsMTIgQEAgcHVibGljOgogICAgIHZvaWQg
cmVtb3ZlQ2FjaGVFbmdpbmUoY29uc3QgUEFMOjpTZXNzaW9uSUQmKTsKICAgICB2b2lkIHJlcXVl
c3RTdG9yYWdlU3BhY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdp
biYsIHVpbnQ2NF90IHF1b3RhLCB1aW50NjRfdCBjdXJyZW50U2l6ZSwgdWludDY0X3Qgc3BhY2VS
ZXF1aXJlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDx1aW50NjRfdD4pPiYmKTsK
IAotICAgIHZvaWQgc3RvcmVBZENsaWNrQXR0cmlidXRpb24oUEFMOjpTZXNzaW9uSUQsIFdlYkNv
cmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbiYmKTsKLSAgICB2b2lkIGR1bXBBZENsaWNrQXR0cmlidXRp
b24oUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJik7Ci0g
ICAgdm9pZCBjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbihQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJy
aWRlVGltZXJGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVy
c2lvblVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFVSTCYmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwotICAgIHZvaWQgbWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRG
b3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwor
ICAgIHZvaWQgc3RvcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChQQUw6OlNlc3Npb25JRCwgV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJik7CisgICAgdm9pZCBkdW1wUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Ry
aW5nKT4mJik7CisgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KFBBTDo6U2Vz
c2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwg
Ym9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQsIFVSTCYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgbWFya1By
aXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICBSZWZQdHI8V2ViQ29yZTo6U3Rv
cmFnZVF1b3RhTWFuYWdlcj4gc3RvcmFnZVF1b3RhTWFuYWdlcihQQUw6OlNlc3Npb25JRCwgY29u
c3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDIwZmZiY2Mz
ZmNkZmFkZWEzYzBhMzQ5NmM1MjgyMjQ4NGZmZGFhMTUuLjBmMDE5MDU2ZTViNTdmNTMzNGI4Y2U3
MzgyNmUyZmEwNTY4ODkzYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTQ4LDcgKzE0OCw3IEBAIG1l
c3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRUaGlyZFBh
cnR5Q05BTUVEb21haW5Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluKSAtPiAoKSBBc3luYwogI2VuZGlmCiAKLSAgICBT
ZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUoYm9vbCBkZWJ1Z01vZGUpCisgICAgU2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUoYm9vbCBkZWJ1Z01vZGUpCiAKICAgICBTZXRT
ZXNzaW9uSXNDb250cm9sbGVkQnlBdXRvbWF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Ym9vbCBjb250cm9sbGVkKTsKIApAQCAtMTYxLDEyICsxNjEsMTIgQEAgbWVzc2FnZXMgLT4gTmV0
d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgU3luY0xvY2FsU3RvcmFnZSgpIC0+
ICgpIEFzeW5jCiAKLSAgICBTdG9yZUFkQ2xpY2tBdHRyaWJ1dGlvbihQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbiBhZENsaWNrQXR0cmlidXRpb24p
Ci0gICAgRHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+
IChTdHJpbmcgYWRDbGlja0F0dHJpYnV0aW9uU3RhdGUpIEFzeW5jCi0gICAgQ2xlYXJBZENsaWNr
QXR0cmlidXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwotICAgIFNl
dEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkgLT4gKCkgQXN5bmMKLSAgICBTZXRBZENsaWNrQXR0cmli
dXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVS
TCB1cmwpIC0+ICgpIEFzeW5jCi0gICAgTWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRG
b3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKKyAgICBTdG9y
ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpCisgICAg
RHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4g
KFN0cmluZyBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0YXRlKSBBc3luYworICAgIENsZWFyUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3lu
YworICAgIFNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmco
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlKSAtPiAoKSBBc3luYworICAgIFNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBVUkwgdXJsKSAtPiAoKSBBc3luYworICAgIE1hcmtQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkgLT4gKCkgQXN5bmMKICAgICBHZXRMb2NhbFN0b3JhZ2VPcmlnaW5EZXRhaWxzKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkgLT4gKFZlY3RvcjxXZWJLaXQ6OkxvY2FsU3RvcmFnZURhdGFiYXNl
VHJhY2tlcjo6T3JpZ2luRGV0YWlscz4gZGV0YWlscykgQXN5bmMKIAogICAgIFNldFNlcnZpY2VX
b3JrZXJGZXRjaFRpbWVvdXRGb3JUZXN0aW5nKFNlY29uZHMgc2Vjb25kcykgLT4gKCkgU3luY2hy
b25vdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggNDlmYTg4MGE4OTY1
MTA4NGE1ODM5OTFkN2ExMGZlZTcwYjU1MjFmMC4uZmRhODE1MGQwOTFmMTUwMDQ5MmVkZGY5NWRh
NTY4YTM1YTIzMWQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTY1
LDcgKzY1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHVybFNjaGVtZXNS
ZWdpc3RlcmVkQXNMb2NhbDsKICAgICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdpc3RlcmVkQXNO
b0FjY2VzczsKIAotICAgIGVuY29kZXIgPDwgZW5hYmxlQWRDbGlja0F0dHJpYnV0aW9uRGVidWdN
b2RlOworICAgIGVuY29kZXIgPDwgZW5hYmxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01v
ZGU7CiB9CiAKIGJvb2wgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJ
UEM6OkRlY29kZXImIGRlY29kZXIsIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBy
ZXN1bHQpCkBAIC0xMjUsNyArMTI1LDcgQEAgYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTmV0d29ya1Byb2MKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzTm9BY2Nlc3Mp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3Vs
dC5lbmFibGVBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUpKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVzdWx0LmVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKaW5kZXggNzgyOWEyZGMxYzJiMmE4ZWZjMmRhOTJlYTJhZjRkNGY4MzYyMTc0
Yy4uYjA0ZmM0YzFkNmZhMzk5MTcwMGNlZWRiYjA0OTVhYzM0YmRiZWFlNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaApAQCAtNzksNyArNzksNyBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFZlY3RvcjxTdHJpbmc+IHVybFNjaGVtZXNSZWdp
c3RlcmVkQXNMb2NhbDsKICAgICBWZWN0b3I8U3RyaW5nPiB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFz
Tm9BY2Nlc3M7CiAKLSAgICBib29sIGVuYWJsZUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZSB7
IGZhbHNlIH07CisgICAgYm9vbCBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9k
ZSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRl
eCAyOWFlZmZmZDBiMmI4MGU3NzliNDE2OTFhMDA4MDRlNmIxMjlkM2E4Li4zNWU5OTk0ZDc0ZDUx
MGFhNGUxNDU4NDhjNzJkMmI1ODVlMGJjMGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC04MTQsMTIgKzgx
NCwxMiBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZWRpcmVjdGVkUmVx
dWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LAogICAgICsrbV9yZWRpcmVjdENvdW50Owog
ICAgIG1fcmVkaXJlY3RSZXNwb25zZSA9IHJlZGlyZWN0UmVzcG9uc2U7CiAKLSAgICBPcHRpb25h
bDxBZENsaWNrQXR0cmlidXRpb246OkNvbnZlcnNpb24+IGFkQ2xpY2tDb252ZXJzaW9uOworICAg
IE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uPiBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbnZlcnNpb247CiAgICAgaWYgKCFzZXNzaW9uSUQoKS5pc0VwaGVtZXJh
bCgpKSB7Ci0gICAgICAgIGlmIChhdXRvIHJlc3VsdCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFy
c2VDb252ZXJzaW9uUmVxdWVzdChyZWRpcmVjdFJlcXVlc3QudXJsKCkpKQotICAgICAgICAgICAg
YWRDbGlja0NvbnZlcnNpb24gPSByZXN1bHQudmFsdWUoKTsKKyAgICAgICAgaWYgKGF1dG8gcmVz
dWx0ID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QocmVk
aXJlY3RSZXF1ZXN0LnVybCgpKSkKKyAgICAgICAgICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29udmVyc2lvbiA9IHJlc3VsdC52YWx1ZSgpOwogICAgICAgICBlbHNlIGlmICghcmVzdWx0LmVy
cm9yKCkuaXNFbXB0eSgpKQotICAgICAgICAgICAgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6QWRDbGlja0F0dHJpYnV0aW9uLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCByZXN1bHQuZXJy
b3IoKSk7CisgICAgICAgICAgICBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwgcmVzdWx0LmVycm9yKCkp
OwogICAgIH0KIAogICAgIGF1dG8gbWF4QWdlQ2FwID0gdmFsaWRhdGVDYWNoZUVudHJ5Rm9yTWF4
QWdlQ2FwVmFsaWRhdGlvbihyZXF1ZXN0LCByZWRpcmVjdFJlcXVlc3QsIHJlZGlyZWN0UmVzcG9u
c2UpOwpAQCAtODI3LDEyICs4MjcsMTIgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6Ondp
bGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwKICAgICAg
ICAgbV9jYWNoZS0+c3RvcmVSZWRpcmVjdChyZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlLCByZWRp
cmVjdFJlcXVlc3QsIG1heEFnZUNhcCk7CiAKICAgICBpZiAobV9uZXR3b3JrTG9hZENoZWNrZXIp
IHsKLSAgICAgICAgaWYgKGFkQ2xpY2tDb252ZXJzaW9uKQorICAgICAgICBpZiAocHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKQogICAgICAgICAgICAgbV9uZXR3b3JrTG9hZENoZWNr
ZXItPmVuYWJsZUNvbnRlbnRFeHRlbnNpb25zQ2hlY2soKTsKICAgICAgICAgbV9uZXR3b3JrTG9h
ZENoZWNrZXItPnN0b3JlUmVkaXJlY3Rpb25JZk5lZWRlZChyZXF1ZXN0LCByZWRpcmVjdFJlc3Bv
bnNlKTsKIAogICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlZGlyZWN0
ZWRSZXF1ZXN0OiBDaGVja2luZyByZWRpcmVjdCB1c2luZyBOZXR3b3JrTG9hZENoZWNrZXIiKTsK
LSAgICAgICAgbV9uZXR3b3JrTG9hZENoZWNrZXItPmNoZWNrUmVkaXJlY3Rpb24oV1RGTW92ZShy
ZXF1ZXN0KSwgV1RGTW92ZShyZWRpcmVjdFJlcXVlc3QpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9u
c2UpLCB0aGlzLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzLCBzdG9yZWRD
cmVkZW50aWFsc1BvbGljeSA9IG1fbmV0d29ya0xvYWRDaGVja2VyLT5zdG9yZWRDcmVkZW50aWFs
c1BvbGljeSgpLCBhZENsaWNrQ29udmVyc2lvbiA9IFdURk1vdmUoYWRDbGlja0NvbnZlcnNpb24p
XShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgbV9uZXR3b3JrTG9hZENoZWNrZXIt
PmNoZWNrUmVkaXJlY3Rpb24oV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZWRpcmVjdFJlcXVl
c3QpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB0aGlzLCBbcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCB0aGlzLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IG1fbmV0d29ya0xv
YWRDaGVja2VyLT5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSgpLCBwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvbnZlcnNpb24gPSBXVEZNb3ZlKHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lv
bildKGF1dG8mJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCFyZXN1bHQuaGFz
X3ZhbHVlKCkpIHsKICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmVycm9yKCkuaXNDYW5jZWxs
YXRpb24oKSkgewogICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3
aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0OiBOZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrUmVkaXJl
Y3Rpb24gcmV0dXJuZWQgd2l0aCBhIGNhbmNlbGxhdGlvbiIpOwpAQCAtODY1LDE2ICs4NjUsMTYg
QEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
bV9zaG91bGRSZXN0YXJ0TG9hZCA9IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ICE9IG1fbmV0d29y
a0xvYWRDaGVja2VyLT5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSgpOwotICAgICAgICAgICAgdGhp
cy0+Y29udGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdURk1vdmUocmVzdWx0LT5yZXF1
ZXN0KSwgV1RGTW92ZShyZXN1bHQtPnJlZGlyZWN0UmVxdWVzdCksIFdURk1vdmUocmVzdWx0LT5y
ZWRpcmVjdFJlc3BvbnNlKSwgV1RGTW92ZShhZENsaWNrQ29udmVyc2lvbikpOworICAgICAgICAg
ICAgdGhpcy0+Y29udGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdURk1vdmUocmVzdWx0
LT5yZXF1ZXN0KSwgV1RGTW92ZShyZXN1bHQtPnJlZGlyZWN0UmVxdWVzdCksIFdURk1vdmUocmVz
dWx0LT5yZWRpcmVjdFJlc3BvbnNlKSwgV1RGTW92ZShwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
bnZlcnNpb24pKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY29u
dGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUo
cmVkaXJlY3RSZXF1ZXN0KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgV1RGTW92ZShhZENs
aWNrQ29udmVyc2lvbikpOworICAgIGNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChX
VEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlZGlyZWN0UmVxdWVzdCksIFdURk1vdmUocmVkaXJl
Y3RSZXNwb25zZSksIFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKSk7
CiB9CiAKLXZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVdpbGxTZW5kUmVkaXJl
Y3RlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXF1ZXN0JiYg
cmVkaXJlY3RSZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgT3B0
aW9uYWw8QWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uPiYmIGFkQ2xpY2tDb252ZXJzaW9u
KQordm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVk
UmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBSZXNvdXJjZVJlcXVlc3QmJiByZWRp
cmVjdFJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBPcHRpb25h
bDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbj4mJiBwcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvbnZlcnNpb24pCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiY29udGlu
dWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0OiAobV9pc0tlcHRBbGl2ZT0lZCwgaGFzQWRDbGlj
a0NvbnZlcnNpb249JWQpIiwgbV9pc0tlcHRBbGl2ZSwgISFhZENsaWNrQ29udmVyc2lvbik7Cisg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiY29udGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1
ZXN0OiAobV9pc0tlcHRBbGl2ZT0lZCwgaGFzQWRDbGlja0NvbnZlcnNpb249JWQpIiwgbV9pc0tl
cHRBbGl2ZSwgISFwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24pOwogICAgIEFTU0VS
VCghaXNTeW5jaHJvbm91cygpKTsKIAogICAgIGlmIChtX2lzS2VwdEFsaXZlKSB7CkBAIC04ODMs
OCArODgzLDggQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRS
ZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJgogICAgIH0KIAogICAgIE5ldHdvcmtT
ZXNzaW9uKiBuZXR3b3JrU2Vzc2lvbiA9IG51bGxwdHI7Ci0gICAgaWYgKGFkQ2xpY2tDb252ZXJz
aW9uICYmIChuZXR3b3JrU2Vzc2lvbiA9IG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5u
ZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQoKSkpKQotICAgICAgICBuZXR3b3JrU2Vzc2lvbi0+aGFu
ZGxlQWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvbihXVEZNb3ZlKCphZENsaWNrQ29udmVyc2lv
biksIHJlcXVlc3QudXJsKCksIHJlZGlyZWN0UmVxdWVzdCk7CisgICAgaWYgKHByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29udmVyc2lvbiAmJiAobmV0d29ya1Nlc3Npb24gPSBtX2Nvbm5lY3Rpb24t
Pm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKCkpKSkKKyAgICAgICAg
bmV0d29ya1Nlc3Npb24tPmhhbmRsZVByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbihX
VEZNb3ZlKCpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24pLCByZXF1ZXN0LnVybCgp
LCByZWRpcmVjdFJlcXVlc3QpOwogCiAgICAgLy8gV2Ugc2VuZCB0aGUgcmVxdWVzdCBib2R5IHNl
cGFyYXRlbHkgYmVjYXVzZSB0aGUgUmVzb3VyY2VSZXF1ZXN0IGJvZHkgbm9ybWFsbHkgZG9lcyBu
b3QgZ2V0IGVuY29kZWQgd2hlbiBzZW50IG92ZXIgSVBDLCBhcyBhbiBvcHRpbWl6YXRpb24uCiAg
ICAgLy8gSG93ZXZlciwgd2UgcmVhbGx5IG5lZWQgdGhlIGJvZHkgaGVyZSBiZWNhdXNlIGEgcmVk
aXJlY3QgY3Jvc3Mtc2l0ZSBtYXkgY2F1c2UgYSBwcm9jZXNzLXN3YXAgYW5kIHRoZSByZXF1ZXN0
IHRvIHN0YXJ0IGFnYWluIGluIGEgbmV3IFdlYkNvbnRlbnQgcHJvY2Vzcy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4
IDhlYmYyNzNjZDllYWY0MTIzMjA3ODhiMzg2YTI3OGY5MThmNzQwZTQuLjU2MTVmZmU3NTM0NWYy
NGUyNTFlYmE2YTUwNGVmM2MxMDk1MGRiZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtMzMsOSArMzMsOSBAQAog
I2luY2x1ZGUgIk5ldHdvcmtMb2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNl
TG9hZElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQWRDbGlja0F0dHJpYnV0aW9uLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Db250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1RpbWVyLmg+CkBAIC0xOTEsNyArMTkxLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGxvZ0Nvb2tpZUluZm9ybWF0aW9uKCkgY29uc3Q7CiAjZW5kaWYKIAotICAgIHZvaWQgY29u
dGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZWRpcmVjdFJlcXVlc3QsIFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmJiwgT3B0aW9uYWw8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpD
b252ZXJzaW9uPiYmKTsKKyAgICB2b2lkIGNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVz
dChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYg
cmVkaXJlY3RSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIE9wdGlvbmFsPFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uPiYmKTsKICAgICB2b2lk
IGRpZEZpbmlzaFdpdGhSZWRpcmVjdFJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZWRpcmVjdFJlcXVlc3QsIFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmJik7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBzYW5pdGl6
ZVJlc3BvbnNlSWZQb3NzaWJsZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2U6OlNhbml0aXphdGlvblR5cGUpOwogCkBAIC0yMDIsNyArMjAyLDcg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgbG9nU2xvd0NhY2hlUmV0cmlldmVJZk5lZWRlZChjb25z
dCBOZXR3b3JrQ2FjaGU6OkNhY2hlOjpSZXRyaWV2ZUluZm8mKTsKIAotICAgIHZvaWQgaGFuZGxl
QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvbihXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246
OkNvbnZlcnNpb24mJiwgY29uc3QgVVJMJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
Jik7CisgICAgdm9pZCBoYW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24oV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24mJiwgY29uc3QgVVJMJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAKICAgICBPcHRpb25hbDxTZWNvbmRz
PiB2YWxpZGF0ZUNhY2hlRW50cnlGb3JNYXhBZ2VDYXBWYWxpZGF0aW9uKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJl
Y3RSZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggYTFjZTc2
MmQ1ZWIyYmE4OWQzZDhjM2RlNmM2N2UwNjNhZDY3ZTNmOC4uOGNlNTkxNDEyMzRhZWJmNWU0OWUy
YmRjOGE2ODJmYjU4NGNhMjg1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgogCi0jaW5jbHVkZSAiQWRDbGlja0F0dHJp
YnV0aW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgpAQCAt
MzQsMTEgKzMzLDExIEBACiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCiAjaW5j
bHVkZSAiTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQaW5n
TG9hZC5oIgorI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0VGFzay5o
IgotI2luY2x1ZGUgPFdlYkNvcmUvQWRDbGlja0F0dHJpYnV0aW9uLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Db29raWVKYXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgog
CkBAIC05MSw3ICs5MCw3IEBAIE5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihOZXR3b3Jr
UHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzCiAgICAgLCBtX2ZpcnN0
UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlz
dGljc1BhcmFtZXRlcnMuZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUpCiAgICAgLCBt
X3N0YW5kYWxvbmVBcHBsaWNhdGlvbkRvbWFpbihwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRp
c3RpY3NQYXJhbWV0ZXJzLnN0YW5kYWxvbmVBcHBsaWNhdGlvbkRvbWFpbikKICNlbmRpZgotICAg
ICwgbV9hZENsaWNrQXR0cmlidXRpb24obWFrZVVuaXF1ZVJlZjxBZENsaWNrQXR0cmlidXRpb25N
YW5hZ2VyPihuZXR3b3JrUHJvY2VzcywgcGFyYW1ldGVycy5zZXNzaW9uSUQpKQorICAgICwgbV9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudChtYWtlVW5pcXVlUmVmPFByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlcj4obmV0d29ya1Byb2Nlc3MsIHBhcmFtZXRlcnMuc2Vzc2lvbklEKSkKICAgICAs
IG1fdGVzdFNwZWVkTXVsdGlwbGllcihwYXJhbWV0ZXJzLnRlc3RTcGVlZE11bHRpcGxpZXIpCiAg
ICAgLCBtX2FsbG93c1NlcnZlclByZWNvbm5lY3QocGFyYW1ldGVycy5hbGxvd3NTZXJ2ZXJQcmVj
b25uZWN0KQogewpAQCAtMTIwLDcgKzExOSw3IEBAIE5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vz
c2lvbihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzCiAK
ICAgICBtX2lzU3RhbGVXaGlsZVJldmFsaWRhdGVFbmFibGVkID0gcGFyYW1ldGVycy5zdGFsZVdo
aWxlUmV2YWxpZGF0ZUVuYWJsZWQ7CiAKLSAgICBtX2FkQ2xpY2tBdHRyaWJ1dGlvbi0+c2V0UGlu
Z0xvYWRGdW5jdGlvbihbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiBsb2FkUGFyYW1ldGVycywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7CisgICAgbV9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC0+c2V0UGluZ0xvYWRGdW5jdGlvbihbdGhpcywgd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cih0aGlzKV0oTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiBsb2FkUGFyYW1l
dGVycywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IC8vIFBpbmdMb2FkIG1hbmFnZXMgaXRzIG93biBsaWZldGltZSwgZGVsZXRpbmcgaXRzZWxmIHdo
ZW4gaXRzIHB1cnBvc2UgaGFzIGJlZW4gZnVsZmlsbGVkLgpAQCAtMzA0LDQ0ICszMDMsNDQgQEAg
dm9pZCBOZXR3b3JrU2Vzc2lvbjo6cmVzZXRDTkFNRURvbWFpbkRhdGEoKQogfQogI2VuZGlmIC8v
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAKLXZvaWQgTmV0d29ya1Nlc3Npb246
OnN0b3JlQWRDbGlja0F0dHJpYnV0aW9uKFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbiYmIGFk
Q2xpY2tBdHRyaWJ1dGlvbikKK3ZvaWQgTmV0d29ya1Nlc3Npb246OnN0b3JlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCkKIHsKLSAgICBtX2FkQ2xpY2tBdHRyaWJ1dGlvbi0+c3RvcmVVbmNvbnZl
cnRlZChXVEZNb3ZlKGFkQ2xpY2tBdHRyaWJ1dGlvbikpOworICAgIG1fcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQtPnN0b3JlVW5jb252ZXJ0ZWQoV1RGTW92ZShwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCkpOwogfQogCi12b2lkIE5ldHdvcmtTZXNzaW9uOjpoYW5kbGVBZENsaWNrQXR0cmlidXRpb25D
b252ZXJzaW9uKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lvbiYmIGNvbnZlcnNpb24sIGNv
bnN0IFVSTCYgcmVxdWVzdFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRp
cmVjdFJlcXVlc3QpCit2b2lkIE5ldHdvcmtTZXNzaW9uOjpoYW5kbGVQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24mJiBj
b252ZXJzaW9uLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KQogewotICAgIG1fYWRDbGlja0F0dHJpYnV0aW9uLT5o
YW5kbGVDb252ZXJzaW9uKFdURk1vdmUoY29udmVyc2lvbiksIHJlcXVlc3RVUkwsIHJlZGlyZWN0
UmVxdWVzdCk7CisgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+aGFuZGxlQ29udmVyc2lv
bihXVEZNb3ZlKGNvbnZlcnNpb24pLCByZXF1ZXN0VVJMLCByZWRpcmVjdFJlcXVlc3QpOwogfQog
Ci12b2lkIE5ldHdvcmtTZXNzaW9uOjpkdW1wQWRDbGlja0F0dHJpYnV0aW9uKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1Nl
c3Npb246OmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0cmluZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgbV9hZENsaWNrQXR0cmlidXRp
b24tPnRvU3RyaW5nKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBtX3ByaXZhdGVD
bGlja01lYXN1cmVtZW50LT50b1N0cmluZyhXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CiAKLXZvaWQgTmV0d29ya1Nlc3Npb246OmNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKCkKK3ZvaWQg
TmV0d29ya1Nlc3Npb246OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKQogewotICAgIG1f
YWRDbGlja0F0dHJpYnV0aW9uLT5jbGVhcigpOworICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQtPmNsZWFyKCk7CiB9CiAKLXZvaWQgTmV0d29ya1Nlc3Npb246OmNsZWFyQWRDbGlja0F0dHJp
YnV0aW9uRm9yUmVnaXN0cmFibGVEb21haW4oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBk
b21haW4pCit2b2lkIE5ldHdvcmtTZXNzaW9uOjpjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50
Rm9yUmVnaXN0cmFibGVEb21haW4oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBkb21haW4p
CiB7Ci0gICAgbV9hZENsaWNrQXR0cmlidXRpb24tPmNsZWFyRm9yUmVnaXN0cmFibGVEb21haW4o
V1RGTW92ZShkb21haW4pKTsKKyAgICBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50LT5jbGVhckZv
clJlZ2lzdHJhYmxlRG9tYWluKFdURk1vdmUoZG9tYWluKSk7CiB9CiAKLXZvaWQgTmV0d29ya1Nl
c3Npb246OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wg
dmFsdWUpCit2b2lkIE5ldHdvcmtTZXNzaW9uOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92
ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpCiB7Ci0gICAgbV9hZENsaWNrQXR0cmli
dXRpb24tPnNldE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHZhbHVlKTsKKyAgICBtX3ByaXZhdGVD
bGlja01lYXN1cmVtZW50LT5zZXRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyh2YWx1ZSk7CiB9CiAK
LXZvaWQgTmV0d29ya1Nlc3Npb246OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxG
b3JUZXN0aW5nKFVSTCYmIHVybCkKK3ZvaWQgTmV0d29ya1Nlc3Npb246OnNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoVVJMJiYgdXJsKQogewotICAgIG1f
YWRDbGlja0F0dHJpYnV0aW9uLT5zZXRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhXVEZNb3ZlKHVy
bCkpOworICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPnNldENvbnZlcnNpb25VUkxGb3JU
ZXN0aW5nKFdURk1vdmUodXJsKSk7CiB9CiAKLXZvaWQgTmV0d29ya1Nlc3Npb246Om1hcmtBZENs
aWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZygpCit2b2lkIE5ldHdvcmtTZXNzaW9u
OjptYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpCiB7Ci0g
ICAgbV9hZENsaWNrQXR0cmlidXRpb24tPm1hcmtBbGxVbmNvbnZlcnRlZEFzRXhwaXJlZEZvclRl
c3RpbmcoKTsKKyAgICBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50LT5tYXJrQWxsVW5jb252ZXJ0
ZWRBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CiB9CiAKIHZvaWQgTmV0d29ya1Nlc3Npb246OmFkZEtl
cHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJiBsb2FkZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggMmZhMjYyZDUw
NzEwMmMwZGJlMmE4Mzc2YTI1YTQyNDExOWVhODdiZS4uY2E0YTU3NjY3ZDRiNGFjOTIwNDdiYzc5
NDIxNzcxMDFmZjNiYmEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb24uaApAQCAtMjksOSArMjksOSBAQAogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNp
b24uaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRlci5oIgogI2luY2x1
ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUv
QWRDbGlja0F0dHJpYnV0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9CbG9iUmVnaXN0cnlJbXBs
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgpAQCAtNTEsNyArNTEsNyBAQCBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5E
YXRhOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgQWRDbGlja0F0dHJpYnV0aW9uTWFu
YWdlcjsKK2NsYXNzIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjsKIGNsYXNzIE5ldHdv
cmtEYXRhVGFzazsKIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwogY2xhc3MgTmV0d29ya1Jlc291cmNl
TG9hZGVyOwpAQCAtMTE2LDE0ICsxMTYsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBo
YXNBcHBCb3VuZFNlc3Npb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
dm9pZCBjbGVhckFwcEJvdW5kU2Vzc2lvbigpIHsgfQogI2VuZGlmCi0gICAgdm9pZCBzdG9yZUFk
Q2xpY2tBdHRyaWJ1dGlvbihXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24mJik7Ci0gICAgdm9p
ZCBoYW5kbGVBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uKFdlYkNvcmU6OkFkQ2xpY2tBdHRy
aWJ1dGlvbjo6Q29udmVyc2lvbiYmLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KTsKLSAgICB2b2lkIGR1bXBBZENs
aWNrQXR0cmlidXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKLSAgICB2
b2lkIGNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKCk7Ci0gICAgdm9pZCBjbGVhckFkQ2xpY2tBdHRy
aWJ1dGlvbkZvclJlZ2lzdHJhYmxlRG9tYWluKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYp
OwotICAgIHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3Rpbmco
Ym9vbCB2YWx1ZSk7Ci0gICAgdm9pZCBzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJM
Rm9yVGVzdGluZyhVUkwmJik7Ci0gICAgdm9pZCBtYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhw
aXJlZEZvclRlc3RpbmcoKTsKKyAgICB2b2lkIHN0b3JlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQo
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJik7CisgICAgdm9pZCBoYW5kbGVQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkNvbnZlcnNpb24mJiwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVzdCk7CisgICAgdm9pZCBkdW1wUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKKyAg
ICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICB2b2lkIGNsZWFyUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRGb3JSZWdpc3RyYWJsZURvbWFpbihXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYmKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJp
ZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTCYmKTsKKyAgICB2b2lkIG1hcmtQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CiAKICAgICB2b2lk
IGFkZEtlcHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJik7CiAgICAgdm9p
ZCByZW1vdmVLZXB0QWxpdmVMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRlciYpOwpAQCAtMTc1LDcg
KzE3NSw3IEBAIHByb3RlY3RlZDoKICAgICBPcHRpb25hbDxXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbj4gbV90aGlyZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0aW5nOwogI2VuZGlmCiAgICAgYm9v
bCBtX2lzU3RhbGVXaGlsZVJldmFsaWRhdGVFbmFibGVkIHsgZmFsc2UgfTsKLSAgICBVbmlxdWVS
ZWY8QWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlcj4gbV9hZENsaWNrQXR0cmlidXRpb247CisgICAg
VW5pcXVlUmVmPFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcj4gbV9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDsKIAogICAgIEhhc2hTZXQ8UmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4+IG1f
a2VwdEFsaXZlTG9hZHM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44OGJlYWFhNjQxZWZlZGUxYjczMDMzMmNjOWQ4NmYwZjJlZTI4YjU2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMzM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oIgorCisj
aW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBl
cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hPcHRpb25zLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9Gb3JtRGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUEhlYWRlclZhbHVlcy5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCit1c2luZyBTb3VyY2UgPSBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlOwordXNpbmcgRGVzdGluYXRpb24gPSBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb247Cit1c2luZyBEZXN0aW5hdGlvbk1hcCA9IEhh
c2hNYXA8RGVzdGluYXRpb24sIFByaXZhdGVDbGlja01lYXN1cmVtZW50PjsKK3VzaW5nIENvbnZl
cnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbjsKKworY29uc3RleHBy
IFNlY29uZHMgZGVidWdNb2RlU2Vjb25kc1VudGlsU2VuZCB7IDYwX3MgfTsKKwordm9pZCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0b3JlVW5jb252ZXJ0ZWQoUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQmJiBhdHRyaWJ1dGlvbikKK3sKKyAgICBjbGVhckV4cGlyZWQoKTsKKworICAg
IGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7CisgICAgICAgIFJFTEVBU0VfTE9H
X0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJTdG9yaW5nIGFuIGFkIGNsaWNrLiIpOwor
ICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Np
b25JRCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZl
bDo6RXJyb3IsICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gU3RvcmluZyBhbiBhZCBjbGlj
ay4iX3MpOworICAgIH0KKworICAgIG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hcC5zZXQoc3RkOjptYWtlX3BhaXIoYXR0cmlidXRpb24uc291cmNlKCksIGF0dHJpYnV0aW9u
LmRlc3RpbmF0aW9uKCkpLCBXVEZNb3ZlKGF0dHJpYnV0aW9uKSk7Cit9CisKK3ZvaWQgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpoYW5kbGVDb252ZXJzaW9uKENvbnZlcnNpb24mJiBj
b252ZXJzaW9uLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KQoreworICAgIGlmIChtX3Nlc3Npb25JRC5pc0VwaGVt
ZXJhbCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVj
dERvbWFpbiB7IHJlZGlyZWN0UmVxdWVzdC51cmwoKSB9OworICAgIGF1dG8mIGZpcnN0UGFydHlV
UkwgPSByZWRpcmVjdFJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKTsKKworICAgIGlmICgh
cmVkaXJlY3REb21haW4ubWF0Y2hlcyhyZXF1ZXN0VVJMKSkgeworICAgICAgICBpZiAoVU5MSUtF
TFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkNvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNh
dXNlIHRoZSBIVFRQIHJlZGlyZWN0IHdhcyBub3Qgc2FtZS1zaXRlLiIpOworICAgICAgICAgICAg
bV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1l
c3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkVycm9y
LCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIENvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRl
ZCBiZWNhdXNlIHRoZSBIVFRQIHJlZGlyZWN0IHdhcyBub3Qgc2FtZS1zaXRlLiJfcyk7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChyZWRpcmVjdERvbWFpbi5t
YXRjaGVzKGZpcnN0UGFydHlVUkwpKSB7CisgICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVF
bmFibGVkKCkpKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01l
YXN1cmVtZW50LCAiQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgaXQgd2FzIHJl
cXVlc3RlZCBpbiBhbiBIVFRQIHJlZGlyZWN0IHRoYXQgaXMgc2FtZS1zaXRlIGFzIHRoZSBmaXJz
dC1wYXJ0eS4iKTsKKyAgICAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNv
bGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwgIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBD
b252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSBpdCB3YXMgcmVxdWVzdGVkIGluIGFu
IEhUVFAgcmVkaXJlY3QgdGhhdCBpcyBzYW1lLXNpdGUgYXMgdGhlIGZpcnN0LXBhcnR5LiJfcyk7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnZlcnQoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSB7IFdURk1vdmUocmVkaXJlY3REb21haW4pIH0sIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGZpcnN0UGFydHlVUkwgfSwgV1RG
TW92ZShjb252ZXJzaW9uKSk7Cit9CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyOjpzdGFydFRpbWVyKFNlY29uZHMgc2Vjb25kcykKK3sKKyAgICBtX2ZpcmVQZW5kaW5nQ29u
dmVyc2lvblJlcXVlc3RzVGltZXIuc3RhcnRPbmVTaG90KG1faXNSdW5uaW5nVGVzdCA/IDBfcyA6
IHNlY29uZHMpOworfQorCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Y29u
dmVydChjb25zdCBTb3VyY2UmIHNvdXJjZSwgY29uc3QgRGVzdGluYXRpb24mIGRlc3RpbmF0aW9u
LCBDb252ZXJzaW9uJiYgY29udmVyc2lvbikKK3sKKyAgICBjbGVhckV4cGlyZWQoKTsKKworICAg
IGlmICghY29udmVyc2lvbi5pc1ZhbGlkKCkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVn
TW9kZUVuYWJsZWQoKSkpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQsICJHb3QgYW4gaW52YWxpZCBjb252ZXJzaW9uLiIpOworICAgICAgICAg
ICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQs
IE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkVy
cm9yLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEdvdCBhbiBpbnZhbGlkIGNvbnZlcnNp
b24uIl9zKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBj
b252ZXJzaW9uRGF0YSA9IGNvbnZlcnNpb24uZGF0YTsKKyAgICBhdXRvIGNvbnZlcnNpb25Qcmlv
cml0eSA9IGNvbnZlcnNpb24ucHJpb3JpdHk7CisKKyAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2Rl
RW5hYmxlZCgpKSkgeworICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1
cmVtZW50LCAiR290IGEgY29udmVyc2lvbiB3aXRoIGNvbnZlcnNpb24gZGF0YTogJXtwdWJsaWN9
dSBhbmQgcHJpb3JpdHk6ICV7cHVibGljfXUuIiwgY29udmVyc2lvbkRhdGEsIGNvbnZlcnNpb25Q
cmlvcml0eSk7CisgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNz
YWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwg
TWVzc2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVu
dF0gR290IGEgY29udmVyc2lvbiB3aXRoIGNvbnZlcnNpb24gZGF0YTogJyJfcywgY29udmVyc2lv
bkRhdGEsICInIGFuZCBwcmlvcml0eTogJyJfcywgY29udmVyc2lvblByaW9yaXR5LCAiJy4iX3Mp
KTsKKyAgICB9CisKKyAgICBhdXRvIHNlY29uZHNVbnRpbFNlbmQgPSBTZWNvbmRzOjppbmZpbml0
eSgpOworCisgICAgYXV0byBwYWlyID0gc3RkOjptYWtlX3BhaXIoc291cmNlLCBkZXN0aW5hdGlv
bik7CisgICAgYXV0byBwcmV2aW91c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbiA9IG1fdW5jb252
ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC50YWtlKHBhaXIpOworICAgIGF1dG8gcHJl
dmlvdXNseUNvbnZlcnRlZEF0dHJpYnV0aW9uSXRlciA9IG1fY29udmVydGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYXAuZmluZChwYWlyKTsKKworICAgIGlmICghcHJldmlvdXNseVVuY29udmVy
dGVkQXR0cmlidXRpb24uaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIEFsd2F5cyBjb252ZXJ0IHRo
ZSBwZW5kaW5nIGF0dHJpYnV0aW9uIGFuZCByZW1vdmUgaXQgZnJvbSB0aGUgdW5jb252ZXJ0ZWQg
bWFwLgorICAgICAgICBpZiAoYXV0byBvcHRpb25hbFNlY29uZHNVbnRpbFNlbmQgPSBwcmV2aW91
c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5k
KFdURk1vdmUoY29udmVyc2lvbikpKSB7CisgICAgICAgICAgICBzZWNvbmRzVW50aWxTZW5kID0g
Km9wdGlvbmFsU2Vjb25kc1VudGlsU2VuZDsKKyAgICAgICAgICAgIEFTU0VSVChzZWNvbmRzVW50
aWxTZW5kICE9IFNlY29uZHM6OmluZmluaXR5KCkpOworCisgICAgICAgICAgICBpZiAoVU5MSUtF
TFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lO
Rk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJDb252ZXJ0ZWQgYSBzdG9yZWQgYWQgY2xpY2sg
d2l0aCBjb252ZXJzaW9uIGRhdGE6ICV7cHVibGljfXUgYW5kIHByaW9yaXR5OiAle3B1YmxpY311
LiIsIGNvbnZlcnNpb25EYXRhLCBjb252ZXJzaW9uUHJpb3JpdHkpOworICAgICAgICAgICAgICAg
IG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBN
ZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpJbmZv
LCBtYWtlU3RyaW5nKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVydGVkIGEgc3Rv
cmVkIGFkIGNsaWNrIHdpdGggY29udmVyc2lvbiBkYXRhOiAnIl9zLCBjb252ZXJzaW9uRGF0YSwg
IicgYW5kIHByaW9yaXR5OiAnIl9zLCBjb252ZXJzaW9uUHJpb3JpdHksICInLiJfcykpOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHByZXZpb3VzbHlDb252ZXJ0ZWRB
dHRyaWJ1dGlvbkl0ZXIgPT0gbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5l
bmQoKSkKKyAgICAgICAgICAgIG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAu
YWRkKHBhaXIsIFdURk1vdmUocHJldmlvdXNseVVuY29udmVydGVkQXR0cmlidXRpb24pKTsKKyAg
ICAgICAgZWxzZSBpZiAocHJldmlvdXNseVVuY29udmVydGVkQXR0cmlidXRpb24uaGFzSGlnaGVy
UHJpb3JpdHlUaGFuKHByZXZpb3VzbHlDb252ZXJ0ZWRBdHRyaWJ1dGlvbkl0ZXItPnZhbHVlKSkg
eworICAgICAgICAgICAgLy8gSWYgdGhlIG5ld2x5IGNvbnZlcnRlZCBhdHRyaWJ1dGlvbiBoYXMg
aGlnaGVyIHByaW9yaXR5LCByZXBsYWNlIHRoZSBvbGQgb25lLgorICAgICAgICAgICAgbV9jb252
ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5zZXQocGFpciwgV1RGTW92ZShwcmV2aW91
c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbikpOworCisgICAgICAgICAgICBpZiAoVU5MSUtFTFko
ZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8o
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJSZXBsYWNlZCBhIHByZXZpb3VzbHkgY29udmVydGVk
IGFkIGNsaWNrIHdpdGggYSBuZXcgb25lIHdpdGggY29udmVyc2lvbiBkYXRhOiAle3B1YmxpY311
IGFuZCBwcmlvcml0eTogJXtwdWJsaWN9dSBiZWNhdXNlIGl0IGhhZCBoaWdoZXIgcHJpb3JpdHku
IiwgY29udmVyc2lvbkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0eSk7CisgICAgICAgICAgICAgICAg
bV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1l
c3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkluZm8s
IG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBSZXBsYWNlZCBhIHByZXZp
b3VzbHkgY29udmVydGVkIGFkIGNsaWNrIHdpdGggYSBuZXcgb25lIHdpdGggY29udmVyc2lvbiBk
YXRhOiAnIl9zLCBjb252ZXJzaW9uRGF0YSwgIicgYW5kIHByaW9yaXR5OiAnIl9zLCBjb252ZXJz
aW9uUHJpb3JpdHksICInIGJlY2F1c2UgaXQgaGFkIGhpZ2hlciBwcmlvcml0eS4iX3MpKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAocHJldmlvdXNseUNvbnZlcnRl
ZEF0dHJpYnV0aW9uSXRlciAhPSBtX2NvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFw
LmVuZCgpKSB7CisgICAgICAgIC8vIElmIHdlIGhhdmUgbm8gbmV3bHkgY29udmVydGVkIGF0dHJp
YnV0aW9uLCByZS1jb252ZXJ0IHRoZSBvbGQgb25lIHRvIHJlc3BlY3QgdGhlIG5ldyBwcmlvcml0
eS4KKyAgICAgICAgaWYgKGF1dG8gb3B0aW9uYWxTZWNvbmRzVW50aWxTZW5kID0gcHJldmlvdXNs
eUNvbnZlcnRlZEF0dHJpYnV0aW9uSXRlci0+dmFsdWUuY29udmVydEFuZEdldEVhcmxpZXN0VGlt
ZVRvU2VuZChXVEZNb3ZlKGNvbnZlcnNpb24pKSkgeworICAgICAgICAgICAgc2Vjb25kc1VudGls
U2VuZCA9ICpvcHRpb25hbFNlY29uZHNVbnRpbFNlbmQ7CisgICAgICAgICAgICBBU1NFUlQoc2Vj
b25kc1VudGlsU2VuZCAhPSBTZWNvbmRzOjppbmZpbml0eSgpKTsKKworICAgICAgICAgICAgaWYg
KFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKKyAgICAgICAgICAgICAgICBSRUxFQVNF
X0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiUmUtY29udmVydGVkIGFuIGFkIGNs
aWNrIHdpdGggYSBuZXcgb25lIHdpdGggY29udmVyc2lvbiBkYXRhOiAle3B1YmxpY311IGFuZCBw
cmlvcml0eTogJXtwdWJsaWN9dSBiZWNhdXNlIGl0IGhhZCBoaWdoZXIgcHJpb3JpdHkuIiwgY29u
dmVyc2lvbkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0eSk7CisgICAgICAgICAgICAgICAgbV9uZXR3
b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VT
b3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VT
dHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBSZS1jb252ZXJ0ZWQgYW4gYWQgY2xp
Y2sgd2l0aCBhIG5ldyBvbmUgd2l0aCBjb252ZXJzaW9uIGRhdGE6ICciX3MsIGNvbnZlcnNpb25E
YXRhLCAiJyBhbmQgcHJpb3JpdHk6ICciX3MsIGNvbnZlcnNpb25Qcmlvcml0eSwgIicnIGJlY2F1
c2UgaXQgaGFkIGhpZ2hlciBwcmlvcml0eS4iX3MpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgIH0KKworICAgIGlmIChzZWNvbmRzVW50aWxTZW5kID09IFNlY29uZHM6OmluZmluaXR5
KCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBpZiAobV9maXJlUGVuZGluZ0NvbnZlcnNp
b25SZXF1ZXN0c1RpbWVyLmlzQWN0aXZlKCkgJiYgbV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1
ZXN0c1RpbWVyLm5leHRGaXJlSW50ZXJ2YWwoKSA8IHNlY29uZHNVbnRpbFNlbmQpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7CisgICAg
ICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJTZXR0aW5nIHRp
bWVyIGZvciBmaXJpbmcgY29udmVyc2lvbiByZXF1ZXN0cyB0byB0aGUgZGVidWcgbW9kZSB0aW1l
b3V0IG9mICV7cHVibGljfWYgc2Vjb25kcyB3aGVyZSB0aGUgcmVndWxhciB0aW1lb3V0IHdvdWxk
IGhhdmUgYmVlbiAle3B1YmxpY31mIHNlY29uZHMuIiwgZGVidWdNb2RlU2Vjb25kc1VudGlsU2Vu
ZC5zZWNvbmRzKCksIHNlY29uZHNVbnRpbFNlbmQuc2Vjb25kcygpKTsKKyAgICAgICAgbV9uZXR3
b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VT
b3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VT
dHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBTZXR0aW5nIHRpbWVyIGZvciBmaXJp
bmcgY29udmVyc2lvbiByZXF1ZXN0cyB0byB0aGUgZGVidWcgbW9kZSB0aW1lb3V0IG9mICJfcywg
ZGVidWdNb2RlU2Vjb25kc1VudGlsU2VuZC5zZWNvbmRzKCksICIgc2Vjb25kcyB3aGVyZSB0aGUg
cmVndWxhciB0aW1lb3V0IHdvdWxkIGhhdmUgYmVlbiAiX3MsIHNlY29uZHNVbnRpbFNlbmQuc2Vj
b25kcygpLCAiIHNlY29uZHMuIl9zKSk7CisgICAgICAgIHNlY29uZHNVbnRpbFNlbmQgPSBkZWJ1
Z01vZGVTZWNvbmRzVW50aWxTZW5kOworICAgIH0KKworICAgIHN0YXJ0VGltZXIoc2Vjb25kc1Vu
dGlsU2VuZCk7Cit9CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJl
Q29udmVyc2lvblJlcXVlc3QoY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmIGF0dHJpYnV0
aW9uKQoreworICAgIGF1dG8gY29udmVyc2lvblVSTCA9IG1fY29udmVyc2lvbkJhc2VVUkxGb3JU
ZXN0aW5nID8gKm1fY29udmVyc2lvbkJhc2VVUkxGb3JUZXN0aW5nIDogYXR0cmlidXRpb24ucmVw
b3J0VVJMKCk7CisgICAgaWYgKGNvbnZlcnNpb25VUkwuaXNFbXB0eSgpIHx8ICFjb252ZXJzaW9u
VVJMLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QgeyBXVEZNb3ZlKGNvbnZlcnNpb25VUkwpIH07CisgICAgCisgICAgcmVxdWVzdC5zZXRI
VFRQTWV0aG9kKCJQT1NUIl9zKTsKKyAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQ
SGVhZGVyTmFtZTo6Q2FjaGVDb250cm9sLCBXZWJDb3JlOjpIVFRQSGVhZGVyVmFsdWVzOjptYXhB
Z2UwKCkpOworCisgICAgcmVxdWVzdC5zZXRIVFRQQ29udGVudFR5cGUoV2ViQ29yZTo6SFRUUEhl
YWRlclZhbHVlczo6YXBwbGljYXRpb25KU09OQ29udGVudFR5cGUoKSk7CisgICAgcmVxdWVzdC5z
ZXRIVFRQQm9keShXZWJDb3JlOjpGb3JtRGF0YTo6Y3JlYXRlKGF0dHJpYnV0aW9uLmpzb24oKS0+
dG9KU09OU3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworCisgICAgRmV0Y2hPcHRpb25zIG9wdGlv
bnM7CisgICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6
Ok9taXQ7CisgICAgb3B0aW9ucy5yZWRpcmVjdCA9IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkVy
cm9yOworCisgICAgc3RhdGljIHVpbnQ2NF90IGlkZW50aWZpZXIgPSAwOworICAgIAorICAgIE5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOworICAgIGxvYWRQYXJh
bWV0ZXJzLmlkZW50aWZpZXIgPSArK2lkZW50aWZpZXI7CisgICAgbG9hZFBhcmFtZXRlcnMucmVx
dWVzdCA9IHJlcXVlc3Q7CisgICAgbG9hZFBhcmFtZXRlcnMucGFyZW50UElEID0gcHJlc2VudGlu
Z0FwcGxpY2F0aW9uUElEKCk7CisgICAgbG9hZFBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3kgPSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RXBoZW1lcmFsU3RhdGVsZXNzOworICAg
IGxvYWRQYXJhbWV0ZXJzLm9wdGlvbnMgPSBvcHRpb25zOworICAgIGxvYWRQYXJhbWV0ZXJzLnNo
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QgPSB0cnVlOworICAgIGxvYWRQ
YXJhbWV0ZXJzLnNob3VsZFJlc3RyaWN0SFRUUFJlc3BvbnNlQWNjZXNzID0gZmFsc2U7CisKKyAg
ICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICBSRUxFQVNFX0xP
R19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiQWJvdXQgdG8gZmlyZSBhbiBhdHRyaWJ1
dGlvbiByZXF1ZXN0IGZvciBhIGNvbnZlcnNpb24uIik7CisgICAgICAgIG1fbmV0d29ya1Byb2Nl
c3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwgIltQcml2YXRlIENs
aWNrIE1lYXN1cmVtZW50XSBBYm91dCB0byBmaXJlIGFuIGF0dHJpYnV0aW9uIHJlcXVlc3QgZm9y
IGEgY29udmVyc2lvbi4iX3MpOworICAgIH0KKworICAgIG1fcGluZ0xvYWRGdW5jdGlvbihXVEZN
b3ZlKGxvYWRQYXJhbWV0ZXJzKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXShjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBpZiAoVU5MSUtFTFkod2Vha1RoaXMtPmRlYnVnTW9kZUVuYWJs
ZWQoKSkpIHsKKyAgICAgICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkpIHsKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCwgIlJlY2VpdmVkIGVycm9yOiAnJXtwdWJsaWN9cycgZm9yIGFkIGNsaWNrIGF0
dHJpYnV0aW9uIHJlcXVlc3QuIiwgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCku
ZGF0YSgpKTsKKyNlbHNlCisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQsICJSZWNlaXZlZCBlcnJvcjogJyVzJyBmb3IgYWQgY2xpY2sgYXR0
cmlidXRpb24gcmVxdWVzdC4iLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5k
YXRhKCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAgd2Vha1RoaXMtPm1fbmV0d29ya1Byb2Nl
c3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKHdlYWtUaGlzLT5tX3Nlc3Npb25JRCwgTWVzc2Fn
ZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1h
a2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBSZWNlaXZlZCBlcnJvcjogJyJf
cywgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSwgIicgZm9yIGFkIGNsaWNrIGF0dHJpYnV0
aW9uIHJlcXVlc3QuIl9zKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9KTsKK30K
Kwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVQZW5kaW5nQ29udmVy
c2lvblJlcXVlc3RzKCkKK3sKKyAgICBhdXRvIG5leHRUaW1lVG9GaXJlID0gU2Vjb25kczo6aW5m
aW5pdHkoKTsKKyAgICBmb3IgKGF1dG8mIGF0dHJpYnV0aW9uIDogbV9jb252ZXJ0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hcC52YWx1ZXMoKSkgeworICAgICAgICBpZiAoYXR0cmlidXRpb24u
d2FzQ29udmVyc2lvblNlbnQoKSkgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBhdXRvIGVhcmxpZXN0
VGltZVRvU2VuZCA9IGF0dHJpYnV0aW9uLmVhcmxpZXN0VGltZVRvU2VuZCgpOworICAgICAgICBp
ZiAoIWVhcmxpZXN0VGltZVRvU2VuZCkgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gbm93
ID0gV2FsbFRpbWU6Om5vdygpOworICAgICAgICBpZiAoKmVhcmxpZXN0VGltZVRvU2VuZCA8PSBu
b3cgfHwgbV9pc1J1bm5pbmdUZXN0IHx8IGRlYnVnTW9kZUVuYWJsZWQoKSkgeworICAgICAgICAg
ICAgZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGF0dHJpYnV0aW9uKTsKKyAgICAgICAgICAgIGF0dHJp
YnV0aW9uLm1hcmtDb252ZXJzaW9uQXNTZW50KCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgfQorCisgICAgICAgIGF1dG8gc2Vjb25kcyA9ICplYXJsaWVzdFRpbWVUb1NlbmQgLSBu
b3c7CisgICAgICAgIG5leHRUaW1lVG9GaXJlID0gc3RkOjptaW4obmV4dFRpbWVUb0ZpcmUsIHNl
Y29uZHMpOworICAgIH0KKworICAgIG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YXAucmVtb3ZlSWYoW10oYXV0byYga2V5QW5kVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIGtleUFu
ZFZhbHVlLnZhbHVlLndhc0NvbnZlcnNpb25TZW50KCk7CisgICAgfSk7CisKKyAgICBpZiAobmV4
dFRpbWVUb0ZpcmUgPCBTZWNvbmRzOjppbmZpbml0eSgpKQorICAgICAgICBzdGFydFRpbWVyKG5l
eHRUaW1lVG9GaXJlKTsKK30KKwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6
OmNsZWFyKCkKK3sKKyAgICBtX2ZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzVGltZXIuc3Rv
cCgpOworICAgIG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5jbGVhcigp
OworICAgIG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuY2xlYXIoKTsKK30K
Kwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmNsZWFyRm9yUmVnaXN0cmFi
bGVEb21haW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKK3sKKyAgICBtX3VuY29u
dmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAucmVtb3ZlSWYoWyZkb21haW5dKGF1dG8m
IGtleUFuZFZhbHVlKSB7CisgICAgICAgIHJldHVybiBrZXlBbmRWYWx1ZS5rZXkuZmlyc3QucmVn
aXN0cmFibGVEb21haW4gPT0gZG9tYWluIHx8IGtleUFuZFZhbHVlLmtleS5zZWNvbmQucmVnaXN0
cmFibGVEb21haW4gPT0gZG9tYWluOworICAgIH0pOworCisgICAgbV9jb252ZXJ0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hcC5yZW1vdmVJZihbJmRvbWFpbl0oYXV0byYga2V5QW5kVmFsdWUp
IHsKKyAgICAgICAgcmV0dXJuIGtleUFuZFZhbHVlLmtleS5maXJzdC5yZWdpc3RyYWJsZURvbWFp
biA9PSBkb21haW4gfHwga2V5QW5kVmFsdWUua2V5LnNlY29uZC5yZWdpc3RyYWJsZURvbWFpbiA9
PSBkb21haW47CisgICAgfSk7Cit9CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyOjpjbGVhckV4cGlyZWQoKQoreworICAgIG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hcC5yZW1vdmVJZihbXShhdXRvJiBrZXlBbmRWYWx1ZSkgeworICAgICAgICByZXR1
cm4ga2V5QW5kVmFsdWUudmFsdWUuaGFzRXhwaXJlZCgpOworICAgIH0pOworfQorCit2b2lkIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6dG9TdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdHJpbmcpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAoreworICAgIGlmIChtX3Vu
Y29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuaXNFbXB0eSgpICYmIG1fY29udmVy
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoIlxuTm8gc3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQg
ZGF0YS5cbiJfcyk7CisKKyAgICB1bnNpZ25lZCB1bmNvbnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVy
ID0gMDsKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgZm9yIChhdXRvJiBhdHRyaWJ1
dGlvbiA6IG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC52YWx1ZXMoKSkg
eworICAgICAgICBpZiAoIXVuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpCisgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlVuY29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3Vy
ZW1lbnRzOlxuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdc
bicpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIldlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50ICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcigrK3VuY29udmVy
dGVkQXR0cmlidXRpb25OdW1iZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoYXR0cmlidXRpb24udG9TdHJpbmcoKSk7Cit9CisKKyAgICB1
bnNpZ25lZCBjb252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlciA9IDA7CisgICAgZm9yIChhdXRvJiBh
dHRyaWJ1dGlvbiA6IG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAudmFsdWVz
KCkpIHsKKyAgICAgICAgaWYgKHVuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpCisgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgaWYgKCFjb252ZXJ0ZWRBdHRyaWJ1
dGlvbk51bWJlcikKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiQ29udmVydGVk
IFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOlxuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
IldlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50ICIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZE51bWJlcigrK2NvbnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyICsgdW5jb252ZXJ0ZWRBdHRy
aWJ1dGlvbk51bWJlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZChhdHRyaWJ1dGlvbi50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBjb21w
bGV0aW9uSGFuZGxlcihidWlsZGVyLnRvU3RyaW5nKCkpOworfQorCit2b2lkIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6c2V0Q29udmVyc2lvblVSTEZvclRlc3RpbmcoVVJMJiYgdGVz
dFVSTCkKK3sKKyAgICBpZiAodGVzdFVSTC5pc0VtcHR5KCkpCisgICAgICAgIG1fY29udmVyc2lv
bkJhc2VVUkxGb3JUZXN0aW5nID0geyB9OworICAgIGVsc2UKKyAgICAgICAgbV9jb252ZXJzaW9u
QmFzZVVSTEZvclRlc3RpbmcgPSBXVEZNb3ZlKHRlc3RVUkwpOworfQorCit2b2lkIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlcjo6bWFya0FsbFVuY29udmVydGVkQXNFeHBpcmVkRm9yVGVz
dGluZygpCit7CisgICAgZm9yIChhdXRvJiBhdHRyaWJ1dGlvbiA6IG1fdW5jb252ZXJ0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC52YWx1ZXMoKSkKKyAgICAgICAgYXR0cmlidXRpb24ubWFy
a0FzRXhwaXJlZCgpOworfQorCitib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6
ZGVidWdNb2RlRW5hYmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkucHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVF
bmFibGVkKCkgJiYgIW1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNkNDM3MWI2
N2RmNTk4OTJmYjdlYmQ0NWE1MTQ5ZDJlOWQ4YmQ2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgK
QEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
TmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZUVycm9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9UaW1lci5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNs
dWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgor
I2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisKKyAgICB1c2lu
ZyBSZWdpc3RyYWJsZURvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOworICAgIHVz
aW5nIFByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ7CisgICAgdXNpbmcgU291cmNlID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlNvdXJjZTsKKyAgICB1c2luZyBEZXN0aW5hdGlvbiA9IFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbjsKKyAgICB1c2luZyBDb252ZXJzaW9uID0gV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb247CisKKyAgICBleHBsaWNpdCBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9j
ZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgICAgIDogbV9maXJlUGVuZGluZ0Nv
bnZlcnNpb25SZXF1ZXN0c1RpbWVyKCp0aGlzLCAmUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyOjpmaXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0cykKKyAgICAgICAgLCBtX3BpbmdMb2Fk
RnVuY3Rpb24oW10oTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiBwYXJhbXMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeworICAgICAg
ICAgICAgVU5VU0VEX1BBUkFNKHBhcmFtcyk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihXZWJDb3JlOjpSZXNvdXJjZUVycm9yKCksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UoKSk7
CisgICAgICAgIH0pCisgICAgICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykK
KyAgICAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCisgICAgeworICAgIH0KKworICAgIHZv
aWQgc3RvcmVVbmNvbnZlcnRlZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKTsKKyAgICB2b2lk
IGhhbmRsZUNvbnZlcnNpb24oQ29udmVyc2lvbiYmLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KTsKKyAgICB2b2lk
IGNsZWFyKCk7CisgICAgdm9pZCBjbGVhckZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJik7CisgICAgdm9pZCB0b1N0cmluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0cmluZyk+JiYpIGNvbnN0OworICAgIHZvaWQgc2V0UGluZ0xvYWRGdW5jdGlvbihGdW5jdGlv
bjx2b2lkKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmKT4mJik+JiYgcGluZ0xvYWRGdW5jdGlvbikgeyBtX3BpbmdMb2FkRnVuY3Rp
b24gPSBXVEZNb3ZlKHBpbmdMb2FkRnVuY3Rpb24pOyB9CisgICAgdm9pZCBzZXRPdmVycmlkZVRp
bWVyRm9yVGVzdGluZyhib29sIHZhbHVlKSB7IG1faXNSdW5uaW5nVGVzdCA9IHZhbHVlOyB9Cisg
ICAgdm9pZCBzZXRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhVUkwmJik7CisgICAgdm9pZCBtYXJr
QWxsVW5jb252ZXJ0ZWRBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CisKK3ByaXZhdGU6CisgICAgdm9p
ZCBzdGFydFRpbWVyKFNlY29uZHMpOworICAgIHZvaWQgY29udmVydChjb25zdCBTb3VyY2UmLCBj
b25zdCBEZXN0aW5hdGlvbiYsIENvbnZlcnNpb24mJik7CisgICAgdm9pZCBmaXJlQ29udmVyc2lv
blJlcXVlc3QoY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKTsKKyAgICB2b2lkIGZpcmVQ
ZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzKCk7CisgICAgdm9pZCBjbGVhckV4cGlyZWQoKTsKKyAg
ICBib29sIGRlYnVnTW9kZUVuYWJsZWQoKSBjb25zdDsKKworICAgIEhhc2hNYXA8c3RkOjpwYWly
PFNvdXJjZSwgRGVzdGluYXRpb24+LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gbV91bmNvbnZl
cnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwOworICAgIEhhc2hNYXA8c3RkOjpwYWlyPFNv
dXJjZSwgRGVzdGluYXRpb24+LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gbV9jb252ZXJ0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcDsKKyAgICBXZWJDb3JlOjpUaW1lciBtX2ZpcmVQZW5k
aW5nQ29udmVyc2lvblJlcXVlc3RzVGltZXI7CisgICAgRnVuY3Rpb248dm9pZChOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYp
PiBtX3BpbmdMb2FkRnVuY3Rpb247CisgICAgYm9vbCBtX2lzUnVubmluZ1Rlc3QgeyBmYWxzZSB9
OworICAgIE9wdGlvbmFsPFVSTD4gbV9jb252ZXJzaW9uQmFzZVVSTEZvclRlc3Rpbmc7CisgICAg
UmVmPE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9jZXNzOworICAgIFBBTDo6U2Vzc2lvbklE
IG1fc2Vzc2lvbklEOworfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0xvZ2dpbmcuaAppbmRleCAzMjVhNDZmZmM1OTk0MTk0MTEyNDk2ODZkZjdhYzUyZWJhOWJh
MTE1Li4yMGRjYzVlODY0MWQ0Mzg3ZWQzNTk3MjhkZGE3NTNmZTViYmYwNzcwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0xvZ2dpbmcuaApAQCAtNDEsNyArNDEsNyBAQCBleHRlcm4gIkMiIHsKIAogI2RlZmlu
ZSBXRUJLSVQyX0xPR19DSEFOTkVMUyhNKSBcCiAgICAgTShBY3Rpdml0eVN0YXRlKSBcCi0gICAg
TShBZENsaWNrQXR0cmlidXRpb24pIFwKKyAgICBNKFByaXZhdGVDbGlja01lYXN1cmVtZW50KSBc
CiAgICAgTShBcHBTU08pIFwKICAgICBNKEF1dG9tYXRpb24pIFwKICAgICBNKEF1dG9tYXRpb25J
bnRlcmFjdGlvbnMpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRp
b25BY3Rpb25EYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25E
YXRhLmNwcAppbmRleCAwMmY3Mzg4NGE3M2QxYzQ5ZTY5ZmE5YTJlYTM0MDRiZTY1ZWE3NTMwLi40
YjJhNTYyYzRhN2Q3NThiYzQ3NTlhMmQ2ZDZhYzIzMjdjNWYxMGYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuY3BwCkBAIC01NCw3ICs1NCw3IEBAIHZv
aWQgTmF2aWdhdGlvbkFjdGlvbkRhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiAgICAgZW5jb2RlciA8PCBsb2NrSGlzdG9yeTsKICAgICBlbmNvZGVyIDw8IGxvY2tCYWNr
Rm9yd2FyZExpc3Q7CiAgICAgZW5jb2RlciA8PCBjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rv
cnk7Ci0gICAgZW5jb2RlciA8PCBhZENsaWNrQXR0cmlidXRpb247CisgICAgZW5jb2RlciA8PCBw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKIH0KIAogT3B0aW9uYWw8TmF2aWdhdGlvbkFjdGlvbkRh
dGE+IE5hdmlnYXRpb25BY3Rpb25EYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQpA
QCAtMTQ2LDE1ICsxNDYsMTUgQEAgT3B0aW9uYWw8TmF2aWdhdGlvbkFjdGlvbkRhdGE+IE5hdmln
YXRpb25BY3Rpb25EYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGUKICAgICBpZiAoIWNs
aWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKIAotICAgIE9wdGlvbmFsPE9wdGlvbmFsPFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbj4+
IGFkQ2xpY2tBdHRyaWJ1dGlvbjsKLSAgICBkZWNvZGVyID4+IGFkQ2xpY2tBdHRyaWJ1dGlvbjsK
LSAgICBpZiAoIWFkQ2xpY2tBdHRyaWJ1dGlvbikKKyAgICBPcHRpb25hbDxPcHRpb25hbDxXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4+IHByaXZhdGVDbGlja01lYXN1cmVtZW50Owor
ICAgIGRlY29kZXIgPj4gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CisgICAgaWYgKCFwcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgIHJl
dHVybiB7eyBXVEZNb3ZlKG5hdmlnYXRpb25UeXBlKSwgbW9kaWZpZXJzLCBXVEZNb3ZlKG1vdXNl
QnV0dG9uKSwgV1RGTW92ZShzeW50aGV0aWNDbGlja1R5cGUpLCBXVEZNb3ZlKCp1c2VyR2VzdHVy
ZVRva2VuSWRlbnRpZmllciksCiAgICAgICAgIFdURk1vdmUoKmNhbkhhbmRsZVJlcXVlc3QpLCBX
VEZNb3ZlKHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpLCBXVEZNb3ZlKCpkb3dubG9hZEF0
dHJpYnV0ZSksIFdURk1vdmUoY2xpY2tMb2NhdGlvbkluUm9vdFZpZXdDb29yZGluYXRlcyksCiAg
ICAgICAgIFdURk1vdmUoKmlzUmVkaXJlY3QpLCAqdHJlYXRBc1NhbWVPcmlnaW5OYXZpZ2F0aW9u
LCAqaGFzT3BlbmVkRnJhbWVzLCAqb3BlbmVkQnlET01XaXRoT3BlbmVyLCBXVEZNb3ZlKCpyZXF1
ZXN0ZXJPcmlnaW4pLAotICAgICAgICBXVEZNb3ZlKCp0YXJnZXRCYWNrRm9yd2FyZEl0ZW1JZGVu
dGlmaWVyKSwgV1RGTW92ZSgqc291cmNlQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciksIGxvY2tI
aXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0LCBXVEZNb3ZlKCpjbGllbnRSZWRpcmVjdFNvdXJj
ZUZvckhpc3RvcnkpLCBXVEZNb3ZlKCphZENsaWNrQXR0cmlidXRpb24pIH19OworICAgICAgICBX
VEZNb3ZlKCp0YXJnZXRCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyKSwgV1RGTW92ZSgqc291cmNl
QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciksIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRM
aXN0LCBXVEZNb3ZlKCpjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkpLCBXVEZNb3ZlKCpw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCkgfX07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmgKaW5kZXggY2JkNzcw
ZTU3ZjNlYTdkNGZjODkyZGNlYWY0NGRmYWZjMGI1ZjRkZC4uMzE5ZjJmOTgyZmM1MGFiMzQwYjRj
NjI4NWY3OTFlMGU0ZTUzYmM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2
aWdhdGlvbkFjdGlvbkRhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9u
QWN0aW9uRGF0YS5oCkBAIC0yNiwxMCArMjYsMTAgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSAiV2ViTW91c2VFdmVudC5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQWRDbGlja0F0dHJpYnV0aW9u
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9CYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRl
clR5cGVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAKIG5hbWVzcGFjZSBJUEMg
ewpAQCAtNjIsNyArNjIsNyBAQCBzdHJ1Y3QgTmF2aWdhdGlvbkFjdGlvbkRhdGEgewogICAgIFdl
YkNvcmU6OkxvY2tIaXN0b3J5IGxvY2tIaXN0b3J5IHsgV2ViQ29yZTo6TG9ja0hpc3Rvcnk6Ok5v
IH07CiAgICAgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0
IHsgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8gfTsKICAgICBXVEY6OlN0cmluZyBj
bGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rvcnk7Ci0gICAgT3B0aW9uYWw8V2ViQ29yZTo6QWRD
bGlja0F0dHJpYnV0aW9uPiBhZENsaWNrQXR0cmlidXRpb247CisgICAgT3B0aW9uYWw8V2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IHByaXZhdGVDbGlja01lYXN1cmVtZW50OwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGEuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEu
Y3BwCmluZGV4IGI2YzkxODQwOWYwMWEwZDJlMzY1YTMzMGNlZmVlNzc3NzZiYWZmMGEuLmFlYzE1
ZTVkMzgxYWQxYmRiMTE5N2YzNzRkM2IwMDdkNDNiNTJiOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5jcHAKQEAgLTEzMyw3ICsxMzMsNyBA
QCBXZWJzaXRlRGF0YVByb2Nlc3NUeXBlIFdlYnNpdGVEYXRhOjpvd25lclByb2Nlc3MoV2Vic2l0
ZURhdGFUeXBlIGRhdGFUeXBlKQogICAgICAgICByZXR1cm4gV2Vic2l0ZURhdGFQcm9jZXNzVHlw
ZTo6TmV0d29yazsKICAgICBjYXNlIFdlYnNpdGVEYXRhVHlwZTo6RGV2aWNlSWRIYXNoU2FsdDoK
ICAgICAgICAgcmV0dXJuIFdlYnNpdGVEYXRhUHJvY2Vzc1R5cGU6OlVJOwotICAgIGNhc2UgV2Vi
c2l0ZURhdGFUeXBlOjpBZENsaWNrQXR0cmlidXRpb25zOgorICAgIGNhc2UgV2Vic2l0ZURhdGFU
eXBlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHM6CiAgICAgICAgIHJldHVybiBXZWJzaXRlRGF0
YVByb2Nlc3NUeXBlOjpOZXR3b3JrOwogI2lmIEhBVkUoQ0ZORVRXT1JLX0FMVEVSTkFUSVZFX1NF
UlZJQ0UpCiAgICAgY2FzZSBXZWJzaXRlRGF0YVR5cGU6OkFsdGVybmF0aXZlU2VydmljZXM6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVR5
cGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhVHlwZS5o
CmluZGV4IDY2MzVkYzU3ZDkwMTY4YjQxMWJiZjkxMDczYTI2MDUzNTY3NzAyOGQuLjM1ZjcyOTk0
MTZjYjlkNGZiMDJiZjk1NjMzMTgyNmExNGM4YTdkNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhVHlwZS5oCkBAIC01MSw3ICs1MSw3IEBA
IGVudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBlIDogdWludDMyX3QgewogI2VuZGlmCiAgICAgRE9N
Q2FjaGUgPSAxIDw8IDE1LAogICAgIERldmljZUlkSGFzaFNhbHQgPSAxIDw8IDE2LAotICAgIEFk
Q2xpY2tBdHRyaWJ1dGlvbnMgPSAxIDw8IDE3LAorICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50
cyA9IDEgPDwgMTcsCiAjaWYgSEFWRShDRk5FVFdPUktfQUxURVJOQVRJVkVfU0VSVklDRSkKICAg
ICBBbHRlcm5hdGl2ZVNlcnZpY2VzID0gMSA8PCAxOCwKICNlbmRpZgpAQCAtODUsNyArODUsNyBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB7
CiAjZW5kaWYKICAgICAgICAgV2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU6OkRPTUNhY2hlLAogICAg
ICAgICBXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZTo6RGV2aWNlSWRIYXNoU2FsdCwKLSAgICAgICAg
V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU6OkFkQ2xpY2tBdHRyaWJ1dGlvbnMKKyAgICAgICAgV2Vi
S2l0OjpXZWJzaXRlRGF0YVR5cGU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50cwogI2lmIEhBVkUo
Q0ZORVRXT1JLX0FMVEVSTkFUSVZFX1NFUlZJQ0UpCiAgICAgICAgICwgV2ViS2l0OjpXZWJzaXRl
RGF0YVR5cGU6OkFsdGVybmF0aXZlU2VydmljZXMKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggODNk
MjgwYzc1ZWY1ZjViYjBhMmViNmQxMWFhOGMwZmE5MTliNzRkMC4uMzI5YmVkMDFiZDI0ZmI4YjEy
N2U2Yjk5NTI1NTgwZTdmMjQ0MGE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC01MSw3ICs1MSw3IEBAIEdQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKIEdQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCiAK
IAotTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5jcHAKK05ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuY3BwCiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1By
ZWZsaWdodENoZWNrZXIuY3BwCiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElO
YXZpZ2F0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5o
CmluZGV4IGQ4NjhmOGIyMzNlZTZmYTU1ODczNzE5MTM3ZjRjMzFjMTI4YzdlYzYuLjE5MDk1ZGE0
ODY2MWI4NWMwOTQ2MmVhZWIxNWNmMWZlZjQxYTkxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uaApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgIlBy
b2Nlc3NUaHJvdHRsZXIuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCiAj
aW5jbHVkZSAiV2ViQ29udGVudE1vZGUuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0FkQ2xpY2tBdHRy
aWJ1dGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0
YS5oPgpAQCAtMTUzLDcgKzE1Myw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IHN0ZDo6dW5pcXVl
X3B0cjxTdWJzdGl0dXRlRGF0YT4mIHN1YnN0aXR1dGVEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9z
dWJzdGl0dXRlRGF0YTsgfQogCi0gICAgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6QWRDbGlja0F0
dHJpYnV0aW9uPiYgYWRDbGlja0F0dHJpYnV0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TmF2
aWdhdGlvbkFjdGlvbi5hZENsaWNrQXR0cmlidXRpb247IH0KKyAgICBjb25zdCBPcHRpb25hbDxX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mIHByaXZhdGVDbGlja01lYXN1cmVtZW50
KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TmF2aWdhdGlvbkFjdGlvbi5wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDsgfQogCiAgICAgdm9pZCBzZXRDbGllbnROYXZpZ2F0aW9uQWN0aXZpdHkoV2ViS2l0
OjpQcm9jZXNzVGhyb3R0bGVyOjpBY3Rpdml0eVZhcmlhbnQmJiBhY3Rpdml0eSkgeyBtX2NsaWVu
dE5hdmlnYXRpb25BY3Rpdml0eSA9IFdURk1vdmUoYWN0aXZpdHkpOyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDQzNjljZGQ4MjViNTE1N2ZiMDEwYzNm
ODFhZTc4ZTY2MGRhYTc0ZmMuLmU3NmUwMDc4MGE0MTQ2NjIwNWVhMjlmNjEyMDU1M2I2YjNhNmU0
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMjg4MCwz
NyArMjg4MCwzNyBAQCB2b2lkIFdLUGFnZUdldEFwcGxpY2F0aW9uTWFuaWZlc3RfYihXS1BhZ2VS
ZWYgcGFnZSwgV0tQYWdlR2V0QXBwbGljYXRpb25NYW5pZmVzdAogfQogI2VuZGlmCiAKLXZvaWQg
V0tQYWdlRHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlRHVtcEFk
Q2xpY2tBdHRyaWJ1dGlvbkZ1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQp
Cit2b2lkIFdLUGFnZUR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXS1BhZ2VSZWYgcGFnZSwg
V0tQYWdlRHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50RnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQq
IGNhbGxiYWNrQ29udGV4dCkKIHsKLSAgICB0b0ltcGwocGFnZSktPmR1bXBBZENsaWNrQXR0cmli
dXRpb24oW2NhbGxiYWNrQ29udGV4dCwgY2FsbGJhY2tdIChjb25zdCBTdHJpbmcmIGFkQ2xpY2tB
dHRyaWJ1dGlvbikgewotICAgICAgICBjYWxsYmFjayhXZWJLaXQ6OnRvQVBJKGFkQ2xpY2tBdHRy
aWJ1dGlvbi5pbXBsKCkpLCBjYWxsYmFja0NvbnRleHQpOworICAgIHRvSW1wbChwYWdlKS0+ZHVt
cFByaXZhdGVDbGlja01lYXN1cmVtZW50KFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAoY29u
c3QgU3RyaW5nJiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkgeworICAgICAgICBjYWxsYmFjayhX
ZWJLaXQ6OnRvQVBJKHByaXZhdGVDbGlja01lYXN1cmVtZW50LmltcGwoKSksIGNhbGxiYWNrQ29u
dGV4dCk7CiAgICAgfSk7CiB9CiAKLXZvaWQgV0tQYWdlQ2xlYXJBZENsaWNrQXR0cmlidXRpb24o
V0tQYWdlUmVmIHBhZ2UsIFdLUGFnZUNsZWFyQWRDbGlja0F0dHJpYnV0aW9uRnVuY3Rpb24gY2Fs
bGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCkKK3ZvaWQgV0tQYWdlQ2xlYXJQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudChXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlQ2xlYXJQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEZ1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpCiB7Ci0gICAg
dG9JbXBsKHBhZ2UpLT5jbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbihbY2FsbGJhY2tDb250ZXh0LCBj
YWxsYmFja10gKCkgeworICAgIHRvSW1wbChwYWdlKS0+Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudChbY2FsbGJhY2tDb250ZXh0LCBjYWxsYmFja10gKCkgewogICAgICAgICBjYWxsYmFjayhj
YWxsYmFja0NvbnRleHQpOwogICAgIH0pOwogfQogCi12b2lkIFdLUGFnZVNldEFkQ2xpY2tBdHRy
aWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBib29sIHZhbHVl
LCBXS1BhZ2VTZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZ0Z1bmN0
aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpCit2b2lkIFdLUGFnZVNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2Us
IGJvb2wgdmFsdWUsIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1l
ckZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KQogewot
ICAgIHRvSW1wbChwYWdlKS0+c2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRl
c3RpbmcodmFsdWUsIFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAoKSB7CisgICAgdG9JbXBs
KHBhZ2UpLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5n
KHZhbHVlLCBbY2FsbGJhY2tDb250ZXh0LCBjYWxsYmFja10gKCkgewogICAgICAgICBjYWxsYmFj
ayhjYWxsYmFja0NvbnRleHQpOwogICAgIH0pOwogfQogCi12b2lkIFdLUGFnZVNldEFkQ2xpY2tB
dHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1VSTFJl
ZiBVUkxSZWYsIFdLUGFnZVNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0
aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCkKK3ZvaWQgV0tQYWdl
U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhXS1BhZ2VS
ZWYgcGFnZSwgV0tVUkxSZWYgVVJMUmVmLCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dENvbnZlcnNpb25VUkxGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNr
Q29udGV4dCkKIHsKLSAgICB0b0ltcGwocGFnZSktPnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZl
cnNpb25VUkxGb3JUZXN0aW5nKFVSTChVUkwoKSwgdG9XVEZTdHJpbmcoVVJMUmVmKSksIFtjYWxs
YmFja0NvbnRleHQsIGNhbGxiYWNrXSAoKSB7CisgICAgdG9JbXBsKHBhZ2UpLT5zZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTChVUkwoKSwgdG9XVEZT
dHJpbmcoVVJMUmVmKSksIFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAoKSB7CiAgICAgICAg
IGNhbGxiYWNrKGNhbGxiYWNrQ29udGV4dCk7CiAgICAgfSk7CiB9CiAKLXZvaWQgV0tQYWdlTWFy
a0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBX
S1BhZ2VNYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmdGdW5jdGlvbiBj
YWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KQordm9pZCBXS1BhZ2VNYXJrUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tQYWdl
TWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmdGdW5jdGlvbiBj
YWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KQogewotICAgIHRvSW1wbChwYWdlKS0+bWFy
a0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKFtjYWxsYmFja0NvbnRleHQs
IGNhbGxiYWNrXSAoKSB7CisgICAgdG9JbXBsKHBhZ2UpLT5tYXJrUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhbY2FsbGJhY2tDb250ZXh0LCBjYWxsYmFja10gKCkg
ewogICAgICAgICBjYWxsYmFjayhjYWxsYmFja0NvbnRleHQpOwogICAgIH0pOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCmluZGV4IDIwZDNlZTk2
ZjhhY2QzZWFkMmM3YjczNDEyYmQwNDE2ZTkzZjY0YTYuLmZiZDYxMTlhZmExMWFlMDVhMjJhNjNh
NjQ0NzhmM2M4NmRmODIxOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VQcml2YXRlLmgKQEAgLTE2OSwxNiArMTY5LDE2IEBAIHR5cGVkZWYgdm9pZCAoXldLUGFn
ZUdldEFwcGxpY2F0aW9uTWFuaWZlc3RCbG9jaykodm9pZCk7CiBXS19FWFBPUlQgdm9pZCBXS1Bh
Z2VHZXRBcHBsaWNhdGlvbk1hbmlmZXN0X2IoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZUdldEFwcGxp
Y2F0aW9uTWFuaWZlc3RCbG9jayBibG9jayk7CiAjZW5kaWYKIAotdHlwZWRlZiB2b2lkICgqV0tQ
YWdlRHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbkZ1bmN0aW9uKShXS1N0cmluZ1JlZiBhZENsaWNrQXR0
cmlidXRpb25SZXByZXNlbnRhdGlvbiwgdm9pZCogZnVuY3Rpb25Db250ZXh0KTsKLVdLX0VYUE9S
VCB2b2lkIFdLUGFnZUR1bXBBZENsaWNrQXR0cmlidXRpb24oV0tQYWdlUmVmLCBXS1BhZ2VEdW1w
QWRDbGlja0F0dHJpYnV0aW9uRnVuY3Rpb24sIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7Ci10eXBl
ZGVmIHZvaWQgKCpXS1BhZ2VDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbkZ1bmN0aW9uKSh2b2lkKiBm
dW5jdGlvbkNvbnRleHQpOwotV0tfRVhQT1JUIHZvaWQgV0tQYWdlQ2xlYXJBZENsaWNrQXR0cmli
dXRpb24oV0tQYWdlUmVmLCBXS1BhZ2VDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbkZ1bmN0aW9uLCB2
b2lkKiBjYWxsYmFja0NvbnRleHQpOwotdHlwZWRlZiB2b2lkICgqV0tQYWdlU2V0QWRDbGlja0F0
dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmdGdW5jdGlvbikodm9pZCogZnVuY3Rpb25D
b250ZXh0KTsKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJy
aWRlVGltZXJGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBib29sIHZhbHVlLCBXS1BhZ2VTZXRB
ZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNr
LCB2b2lkKiBjYWxsYmFja0NvbnRleHQpOwotdHlwZWRlZiB2b2lkICgqV0tQYWdlU2V0QWRDbGlj
a0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3RpbmdGdW5jdGlvbikodm9pZCogZnVuY3Rp
b25Db250ZXh0KTsKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNv
bnZlcnNpb25VUkxGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1VSTFJlZiB1cmxTdHJpbmcs
IFdLUGFnZVNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nRnVuY3Rp
b24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7Ci10eXBlZGVmIHZvaWQgKCpXS1Bh
Z2VNYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmdGdW5jdGlvbikodm9p
ZCogZnVuY3Rpb25Db250ZXh0KTsKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZU1hcmtBZENsaWNrQXR0
cmlidXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlTWFya0Fk
Q2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZv
aWQqIGNhbGxiYWNrQ29udGV4dCk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEdW1wUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRGdW5jdGlvbikoV0tTdHJpbmdSZWYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRSZXByZXNlbnRhdGlvbiwgdm9pZCogZnVuY3Rpb25Db250ZXh0KTsKK1dLX0VYUE9SVCB2b2lk
IFdLUGFnZUR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXS1BhZ2VSZWYsIFdLUGFnZUR1bXBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEZ1bmN0aW9uLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpOwor
dHlwZWRlZiB2b2lkICgqV0tQYWdlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZ1bmN0aW9u
KSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOworV0tfRVhQT1JUIHZvaWQgV0tQYWdlQ2xlYXJQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudChXS1BhZ2VSZWYsIFdLUGFnZUNsZWFyUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRGdW5jdGlvbiwgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKK3R5cGVkZWYgdm9pZCAo
KldLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmdG
dW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoV0tQYWdlUmVm
IHBhZ2UsIGJvb2wgdmFsdWUsIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJp
ZGVUaW1lckZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0
KTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVy
c2lvblVSTEZvclRlc3RpbmdGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKK1dLX0VY
UE9SVCB2b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZv
clRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVmIHVybFN0cmluZywgV0tQYWdlU2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxi
YWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpOwordHlwZWRlZiB2b2lkICgqV0tQYWdlTWFya1By
aXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmdGdW5jdGlvbikodm9pZCog
ZnVuY3Rpb25Db250ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZU1hcmtQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VNYXJr
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxi
YWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpOwogCiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRN
b2NrQ2FtZXJhT3JpZW50YXRpb24oV0tQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IG9yaWVudGF0aW9u
KTsKIFdLX0VYUE9SVCBib29sIFdLUGFnZUlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJF
bmFibGVkKFdLUGFnZVJlZiBwYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCmluZGV4IDE4NGJmZGVmNjQ2ZTRh
YWY2ZDk5ZmI4OWZhOTkwOWU2MDdiMDkxNzUuLjIwZWM3NGQxYjZkMDEwNzVmZGMxZTZiYzFjYTBj
ZWExNmI0ZGEwZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
V2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcApAQCAtODE3LDkgKzgxNyw5IEBAIHZvaWQgV0tX
ZWJzaXRlRGF0YVN0b3JlQ2xlYXJBbGxEZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25zKFdLV2Vi
c2l0ZURhdGFTdG9yZVJlCiAjZW5kaWYKIH0KIAotdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVDbGVh
ckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKFdLV2Vic2l0ZURh
dGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9y
ZUNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWxGdW5jdGlv
biBjYWxsYmFjaykKK3ZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBk
YXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbEZ1bmN0aW9uIGNhbGxi
YWNrKQogewotICAgIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVz
ID0gV2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU6OkFkQ2xpY2tBdHRyaWJ1dGlvbnM7CisgICAgT3B0
aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMgPSBXZWJLaXQ6OldlYnNp
dGVEYXRhVHlwZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzOwogICAgIFdlYktpdDo6dG9JbXBs
KGRhdGFTdG9yZVJlZiktPnJlbW92ZURhdGEoZGF0YVR5cGVzLCBXYWxsVGltZTo6ZnJvbVJhd1Nl
Y29uZHMoMCksIFtjb250ZXh0LCBjYWxsYmFja10gewogICAgICAgICBjYWxsYmFjayhjb250ZXh0
KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
V2Vic2l0ZURhdGFTdG9yZVJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tX
ZWJzaXRlRGF0YVN0b3JlUmVmLmgKaW5kZXggMWI2YjgzNThhOGI3MDkwZmM1NzQ1MzE5YzcxZTYw
MDkxYzI3ZjdiYy4uZmQ0MTc2ZDRmMmUyZTA0ZDY0MzQ4YzdhOTliMThhMGJlYjlmYWRmNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0
b3JlUmVmLmgKQEAgLTE4Niw4ICsxODYsOCBAQCBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRh
U3RvcmVHZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhXS1dlYnNpdGVEYXRhU3RvcmVSZQogCiBX
S19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhckFsbERldmljZU9yaWVudGF0aW9u
UGVybWlzc2lvbnMoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZik7CiAKLXR5cGVk
ZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91
Z2hXZWJzaXRlRGF0YVJlbW92YWxGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKLVdL
X0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Ro
cm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJl
Ziwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJBZENsaWNrQXR0cmlidXRp
b25zVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbEZ1bmN0aW9uIGNhbGxiYWNrKTsKK3R5cGVkZWYg
dm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhy
b3VnaFdlYnNpdGVEYXRhUmVtb3ZhbEZ1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwor
V0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRh
U3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbEZ1bmN0aW9uIGNhbGxiYWNr
KTsKIAogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0Q2FjaGVNb2RlbFN5bmNo
cm9ub3VzbHlGb3JUZXN0aW5nKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdL
Q2FjaGVNb2RlbCBjYWNoZU1vZGVsKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZC5tbQppbmRleCA0NTQwM2QxNjkz
NmVhYTgyNTRjZDUwNWZhODg0ZWRmMGRhZmUwNDljLi5lM2EwNDQ2YzBiNTdiZWFiNzA0ZjZiM2Zi
YjlhMzIzM2IyMDJhYzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZC5tbQpAQCAtNDgsNyArNDgsNyBAQCBOU1N0
cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZUhTVFNDYWNoZSA9IEAiX1dLV2Vic2l0ZURh
dGFUeXBlSFNUU0NhY2hlIjsKIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlU2Vh
cmNoRmllbGRSZWNlbnRTZWFyY2hlcyA9IEAiX1dLV2Vic2l0ZURhdGFUeXBlU2VhcmNoRmllbGRS
ZWNlbnRTZWFyY2hlcyI7CiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVJlc291
cmNlTG9hZFN0YXRpc3RpY3MgPSBAIl9XS1dlYnNpdGVEYXRhVHlwZVJlc291cmNlTG9hZFN0YXRp
c3RpY3MiOwogTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVDcmVkZW50aWFscyA9
IEAiX1dLV2Vic2l0ZURhdGFUeXBlQ3JlZGVudGlhbHMiOwotTlNTdHJpbmcgKiBjb25zdCBfV0tX
ZWJzaXRlRGF0YVR5cGVBZENsaWNrQXR0cmlidXRpb25zID0gQCJfV0tXZWJzaXRlRGF0YVR5cGVB
ZENsaWNrQXR0cmlidXRpb25zIjsKK05TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBl
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzID0gQCJfV0tXZWJzaXRlRGF0YVR5cGVQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudHMiOwogTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVBbHRl
cm5hdGl2ZVNlcnZpY2VzID0gQCJfV0tXZWJzaXRlRGF0YVR5cGVBbHRlcm5hdGl2ZVNlcnZpY2Vz
IjsKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTEwMiw4ICsxMDIsOCBAQCBzdGF0aWMgTlNTdHJp
bmcgKmRhdGFUeXBlc1RvU3RyaW5nKE5TU2V0ICpkYXRhVHlwZXMpCiAgICAgICAgIFthcnJheSBh
ZGRPYmplY3Q6QCJSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3MiXTsKICAgICBpZiAoW2RhdGFUeXBl
cyBjb250YWluc09iamVjdDpfV0tXZWJzaXRlRGF0YVR5cGVDcmVkZW50aWFsc10pCiAgICAgICAg
IFthcnJheSBhZGRPYmplY3Q6QCJDcmVkZW50aWFscyJdOwotICAgIGlmIChbZGF0YVR5cGVzIGNv
bnRhaW5zT2JqZWN0Ol9XS1dlYnNpdGVEYXRhVHlwZUFkQ2xpY2tBdHRyaWJ1dGlvbnNdKQotICAg
ICAgICBbYXJyYXkgYWRkT2JqZWN0OkAiQWQgQ2xpY2sgQXR0cmlidXRpb25zIl07CisgICAgaWYg
KFtkYXRhVHlwZXMgY29udGFpbnNPYmplY3Q6X1dLV2Vic2l0ZURhdGFUeXBlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRzXSkKKyAgICAgICAgW2FycmF5IGFkZE9iamVjdDpAIlByaXZhdGUgQ2xpY2sg
TWVhc3VyZW1lbnRzIl07CiAgICAgaWYgKFtkYXRhVHlwZXMgY29udGFpbnNPYmplY3Q6X1dLV2Vi
c2l0ZURhdGFUeXBlQWx0ZXJuYXRpdmVTZXJ2aWNlc10pCiAgICAgICAgIFthcnJheSBhZGRPYmpl
Y3Q6QCJBbHRlcm5hdGl2ZSBTZXJ2aWNlcyJdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZEludGVybmFsLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZEludGVybmFs
LmgKaW5kZXggMjFlZWNiMzdjNjNlYTQxODM2MGJkZTE1MDg2YWJkOWMyN2E0YTY5NS4uMzhjODM1
ZGM3ODIyNmYzZGM5ZTgwNjYwY2VkMzFkN2RkN2ZlZWZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRJbnRlcm5hbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3Jk
SW50ZXJuYWwuaApAQCAtNzQsOCArNzQsOCBAQCBzdGF0aWMgaW5saW5lIE9wdGlvbmFsPFdlYnNp
dGVEYXRhVHlwZT4gdG9XZWJzaXRlRGF0YVR5cGUoTlNTdHJpbmcgKndlYnNpdGVEYXRhVAogICAg
ICAgICByZXR1cm4gV2Vic2l0ZURhdGFUeXBlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOwogICAg
IGlmIChbd2Vic2l0ZURhdGFUeXBlIGlzRXF1YWxUb1N0cmluZzpfV0tXZWJzaXRlRGF0YVR5cGVD
cmVkZW50aWFsc10pCiAgICAgICAgIHJldHVybiBXZWJzaXRlRGF0YVR5cGU6OkNyZWRlbnRpYWxz
OwotICAgIGlmIChbd2Vic2l0ZURhdGFUeXBlIGlzRXF1YWxUb1N0cmluZzpfV0tXZWJzaXRlRGF0
YVR5cGVBZENsaWNrQXR0cmlidXRpb25zXSkKLSAgICAgICAgcmV0dXJuIFdlYnNpdGVEYXRhVHlw
ZTo6QWRDbGlja0F0dHJpYnV0aW9uczsKKyAgICBpZiAoW3dlYnNpdGVEYXRhVHlwZSBpc0VxdWFs
VG9TdHJpbmc6X1dLV2Vic2l0ZURhdGFUeXBlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzXSkKKyAg
ICAgICAgcmV0dXJuIFdlYnNpdGVEYXRhVHlwZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzOwog
I2lmIEhBVkUoQ0ZORVRXT1JLX0FMVEVSTkFUSVZFX1NFUlZJQ0UpCiAgICAgaWYgKFt3ZWJzaXRl
RGF0YVR5cGUgaXNFcXVhbFRvU3RyaW5nOl9XS1dlYnNpdGVEYXRhVHlwZUFsdGVybmF0aXZlU2Vy
dmljZXNdKQogICAgICAgICByZXR1cm4gV2Vic2l0ZURhdGFUeXBlOjpBbHRlcm5hdGl2ZVNlcnZp
Y2VzOwpAQCAtMTM1LDggKzEzNSw4IEBAIHN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPE5TU2V0PiB0
b1dLV2Vic2l0ZURhdGFUeXBlcyhPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0CiAgICAgICAg
IFt3a1dlYnNpdGVEYXRhVHlwZXMgYWRkT2JqZWN0Ol9XS1dlYnNpdGVEYXRhVHlwZVJlc291cmNl
TG9hZFN0YXRpc3RpY3NdOwogICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNp
dGVEYXRhVHlwZTo6Q3JlZGVudGlhbHMpKQogICAgICAgICBbd2tXZWJzaXRlRGF0YVR5cGVzIGFk
ZE9iamVjdDpfV0tXZWJzaXRlRGF0YVR5cGVDcmVkZW50aWFsc107Ci0gICAgaWYgKHdlYnNpdGVE
YXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpBZENsaWNrQXR0cmlidXRpb25zKSkK
LSAgICAgICAgW3drV2Vic2l0ZURhdGFUeXBlcyBhZGRPYmplY3Q6X1dLV2Vic2l0ZURhdGFUeXBl
QWRDbGlja0F0dHJpYnV0aW9uc107CisgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMo
V2Vic2l0ZURhdGFUeXBlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHMpKQorICAgICAgICBbd2tX
ZWJzaXRlRGF0YVR5cGVzIGFkZE9iamVjdDpfV0tXZWJzaXRlRGF0YVR5cGVQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudHNdOwogI2lmIEhBVkUoQ0ZORVRXT1JLX0FMVEVSTkFUSVZFX1NFUlZJQ0UpCiAg
ICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpBbHRlcm5h
dGl2ZVNlcnZpY2VzKSkKICAgICAgICAgW3drV2Vic2l0ZURhdGFUeXBlcyBhZGRPYmplY3Q6X1dL
V2Vic2l0ZURhdGFUeXBlQWx0ZXJuYXRpdmVTZXJ2aWNlc107CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZFByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkUHJp
dmF0ZS5oCmluZGV4IDZjZWRmZjdlNzZiNTRlZGI1ZjgwMTMyNDgwMDIwMGI3YjllODE4NGMuLjZk
ZTBmMWY4ZjE3OTBlOWJhMjNhNjFkN2QzNjdiYzIwNTBlNDc2MDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVj
b3JkUHJpdmF0ZS5oCkBAIC0zNCw3ICszNCw3IEBAIFdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0
IF9XS1dlYnNpdGVEYXRhVHlwZU1lZGlhS2V5cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwCiBX
S19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVTZWFyY2hGaWVsZFJl
Y2VudFNlYXJjaGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwog
V0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIFdL
X0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZUNyZWRlbnRpYWxzIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwotV0tfRVhURVJOIE5TU3Ry
aW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlQWRDbGlja0F0dHJpYnV0aW9ucyBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAq
IGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVByaXZhdGVDbGlja01lYXN1cmVtZW50cyBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKIFdLX0VYVEVSTiBOU1N0cmluZyAq
IGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZUFsdGVybmF0aXZlU2VydmljZXMgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogI2lmICFUQVJHRVRf
T1NfSVBIT05FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2Vic2l0ZURhdGFTdG9yZS5tbQppbmRleCA3NmZkYWMwZTkwMGY0ZTJmMGY1NGY2Y2YyMWQ4
YmY3MDZhMjBiMjEyLi4xYjA4ZjBkNjU5M2RiOWM1OWVhNGFlN2Q5ZjM5N2ViNjNmNTg2NGExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0
YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNp
dGVEYXRhU3RvcmUubW0KQEAgLTIzOSw3ICsyMzksNyBAQCArIChOU1NldDxOU1N0cmluZyAqPiAq
KV9hbGxXZWJzaXRlRGF0YVR5cGVzSW5jbHVkaW5nUHJpdmF0ZQogICAgICAgICAgICAgX1dLV2Vi
c2l0ZURhdGFUeXBlU2VhcmNoRmllbGRSZWNlbnRTZWFyY2hlcywKICAgICAgICAgICAgIF9XS1dl
YnNpdGVEYXRhVHlwZVJlc291cmNlTG9hZFN0YXRpc3RpY3MsCiAgICAgICAgICAgICBfV0tXZWJz
aXRlRGF0YVR5cGVDcmVkZW50aWFscywKLSAgICAgICAgICAgIF9XS1dlYnNpdGVEYXRhVHlwZUFk
Q2xpY2tBdHRyaWJ1dGlvbnMsCisgICAgICAgICAgICBfV0tXZWJzaXRlRGF0YVR5cGVQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudHMsCiAgICAgICAgICAgICBfV0tXZWJzaXRlRGF0YVR5cGVBbHRlcm5h
dGl2ZVNlcnZpY2VzCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUKICAgICAgICAgICAgICwgX1dLV2Vi
c2l0ZURhdGFUeXBlUGx1Z0luRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggZTE1NzAxYWFhNWI5MzFhZTYxMGM2
ZGUyZDNlZTIwOWYwOGY0OGMyOC4uYTc2NmVjNWY5N2M0NWM5MGYxNmU3N2QzZGEwNWYxYTBhZjA5
OGVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tCkBAIC00NzUsNyArNDc1LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6
cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmEKICAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyID0gaWRl
bnRpZnlpbmdEYXRhRnJvbUNvb2tpZVN0b3JhZ2UoW1tOU0hUVFBDb29raWVTdG9yYWdlIHNoYXJl
ZEhUVFBDb29raWVTdG9yYWdlXSBfY29va2llU3RvcmFnZV0pOwogI2VuZGlmCiAKLSAgICBwYXJh
bWV0ZXJzLmVuYWJsZUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZSA9IFtkZWZhdWx0cyBib29s
Rm9yS2V5OltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiRXhwZXJpbWVudGFsJUAiLCBXZWJQ
cmVmZXJlbmNlc0tleTo6YWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZEtleSgpLmNy
ZWF0ZUNGU3RyaW5nKCkuZ2V0KCldXTsKKyAgICBwYXJhbWV0ZXJzLmVuYWJsZVByaXZhdGVDbGlj
a01lYXN1cmVtZW50RGVidWdNb2RlID0gW2RlZmF1bHRzIGJvb2xGb3JLZXk6W05TU3RyaW5nIHN0
cmluZ1dpdGhGb3JtYXQ6QCJFeHBlcmltZW50YWwlQCIsIFdlYlByZWZlcmVuY2VzS2V5Ojpwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWRLZXkoKS5jcmVhdGVDRlN0cmluZygp
LmdldCgpXV07CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW52YWxpZGF0ZUNv
bnRleHQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dl
Ykluc3BlY3RvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JQcm94eS5jcHAKaW5kZXggZjBmN2IyZGY1ZTQxOTJhYzQ1NDhiOGY3YmNiOTk3
ZDFmMTMwZDQ2MC4uMmEyOWQ4ZGE3NjcwNWE4MTE0Yjc4YzlkOWYwM2U5MGFiZDQ3YjkzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yUHJveHkuY3BwCkBAIC02NTQsOSArNjU0LDkgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6
dGltZWxpbmVSZWNvcmRpbmdDaGFuZ2VkKGJvb2wgYWN0aXZlKQogdm9pZCBXZWJJbnNwZWN0b3JQ
cm94eTo6c2V0RGV2ZWxvcGVyUHJlZmVyZW5jZU92ZXJyaWRlKFdlYkNvcmU6Okluc3BlY3RvckNs
aWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5jZSBkZXZlbG9wZXJQcmVmZXJlbmNlLCBPcHRpb25hbDxi
b29sPiBvdmVycmlkZVZhbHVlKQogewogICAgIHN3aXRjaCAoZGV2ZWxvcGVyUHJlZmVyZW5jZSkg
ewotICAgIGNhc2UgSW5zcGVjdG9yQ2xpZW50OjpEZXZlbG9wZXJQcmVmZXJlbmNlOjpBZENsaWNr
QXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkOgorICAgIGNhc2UgSW5zcGVjdG9yQ2xpZW50OjpE
ZXZlbG9wZXJQcmVmZXJlbmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJs
ZWQ6CiAgICAgICAgIGlmIChtX2luc3BlY3RlZFBhZ2UpCi0gICAgICAgICAgICBtX2luc3BlY3Rl
ZFBhZ2UtPndlYnNpdGVEYXRhU3RvcmUoKS5zZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUo
b3ZlcnJpZGVWYWx1ZSAmJiBvdmVycmlkZVZhbHVlLnZhbHVlKCkpOworICAgICAgICAgICAgbV9p
bnNwZWN0ZWRQYWdlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnREZWJ1Z01vZGUob3ZlcnJpZGVWYWx1ZSAmJiBvdmVycmlkZVZhbHVlLnZhbHVlKCkpOwogICAg
ICAgICByZXR1cm47CiAKICAgICBjYXNlIEluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVy
ZW5jZTo6SVRQRGVidWdNb2RlRW5hYmxlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDZlZTI2ZDA0NmIw
YjIxODg3MDczZTZlZTczNDk4NDNkYWQzMzVhZmEuLjdiMjQ1ZTNjMDQ4NWM1M2NiNzkzZjNmNGMy
YjcwYWIzZGQwMWI4NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTI3MiwxMiArMTI3MiwxMiBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldERvbWFpbnNXaXRoVXNlckludGVyYWN0aW9uKEhh
c2hTZXQ8V2ViQ29yZTo6UmVnaXN0cgogfQogI2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0QWRDbGlja0F0dHJp
YnV0aW9uRGVidWdNb2RlKGJvb2wgZGVidWdNb2RlKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZShib29sIGRlYnVnTW9kZSkKIHsK
ICAgICBpZiAoIWNhblNlbmRNZXNzYWdlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUo
ZGVidWdNb2RlKSwgMCk7CisgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKGRlYnVnTW9kZSksIDApOwogfQogCiB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9y
VGVzdGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IGQwMzA0M2Y3OGQwMjEzMmY0MzkzMTFkMjYyN2IwOGMz
YzdkYWFkMjIuLmI2ZWY3NTRiYjUxMmFlMDg4ZDUwMjJkYmE4YTU0ZmU4NDA0YTI3NGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oCkBAIC0yMDIsNyArMjAyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RG9tYWluc1dp
dGhVc2VySW50ZXJhY3Rpb24oSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJik7
CiAjZW5kaWYKIAotICAgIHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlKGJvb2wp
OworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUoYm9vbCk7CiAg
ICAgCiAgICAgdm9pZCBzeW50aGVzaXplQXBwSXNCYWNrZ3JvdW5kKGJvb2wgYmFja2dyb3VuZCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGU4Y2M1MmZj
Y2Y3MTU4N2ZjMzFmZDk0N2UwZThmOGRmZmMxYjc5YmMuLjI1NzQxOTFlMWE5ZWEzMWM3YzNkNWFj
MzYyNDAwZWE3NjEyNzg2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcApAQCAtMTM5LDcgKzEzOSw2IEBACiAjaW5jbHVkZSAiV2ViVmlld0RpZE1vdmVUb1dpbmRv
d09ic2VydmVyLmgiCiAjaW5jbHVkZSAiV2ViV2hlZWxFdmVudENvYWxlc2Nlci5oIgogI2luY2x1
ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1
dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQml0bWFwSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0NvbXBvc2l0aW9uSGlnaGxpZ2h0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc1NpdGVO
YXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmg+CkBAIC0xNjMsNiArMTYyLDcgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL01lZGlhU3RyZWFtUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGVyZm9ybWFu
Y2VMb2dnaW5nQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUV2ZW50Lmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUHVibGljU3VmZml4Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJFbWJlZGRlZE9i
amVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oPgpAQCAt
NDY1MiwxNyArNDY1MiwxNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZy
YW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJgogICAgIGZyYW1lLT5k
aWRDb21taXRMb2FkKG1pbWVUeXBlLCB3ZWJDZXJ0aWZpY2F0ZUluZm8sIGNvbnRhaW5zUGx1Z2lu
RG9jdW1lbnQpOwogCiAgICAgaWYgKGZyYW1lLT5pc01haW5GcmFtZSgpKSB7Ci0gICAgICAgIE9w
dGlvbmFsPFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbj4gYWRDbGlja0F0dHJpYnV0aW9uOwot
ICAgICAgICBpZiAobV9uZXdQYWdlTmF2aWdhdGlvbkFkQ2xpY2tBdHRyaWJ1dGlvbikKLSAgICAg
ICAgICAgIGFkQ2xpY2tBdHRyaWJ1dGlvbiA9IG1fbmV3UGFnZU5hdmlnYXRpb25BZENsaWNrQXR0
cmlidXRpb247Ci0gICAgICAgIGVsc2UgaWYgKG5hdmlnYXRpb24gJiYgbmF2aWdhdGlvbi0+YWRD
bGlja0F0dHJpYnV0aW9uKCkpCi0gICAgICAgICAgICBhZENsaWNrQXR0cmlidXRpb24gPSBuYXZp
Z2F0aW9uLT5hZENsaWNrQXR0cmlidXRpb24oKTsKLSAgICAgICAgaWYgKGFkQ2xpY2tBdHRyaWJ1
dGlvbikgewotICAgICAgICAgICAgaWYgKGFkQ2xpY2tBdHRyaWJ1dGlvbi0+ZGVzdGluYXRpb24o
KS5tYXRjaGVzKGZyYW1lLT51cmwoKSkpCi0gICAgICAgICAgICAgICAgd2Vic2l0ZURhdGFTdG9y
ZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlN0b3Jl
QWRDbGlja0F0dHJpYnV0aW9uKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksICphZENs
aWNrQXR0cmlidXRpb24pLCAwKTsKKyAgICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ+IHByaXZhdGVDbGlja01lYXN1cmVtZW50OworICAgICAgICBpZiAobV9u
ZXdQYWdlTmF2aWdhdGlvblByaXZhdGVDbGlja01lYXN1cmVtZW50KQorICAgICAgICAgICAgcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBtX25ld1BhZ2VOYXZpZ2F0aW9uUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ7CisgICAgICAgIGVsc2UgaWYgKG5hdmlnYXRpb24gJiYgbmF2aWdhdGlvbi0+cHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoKSkKKyAgICAgICAgICAgIHByaXZhdGVDbGlja01lYXN1cmVt
ZW50ID0gbmF2aWdhdGlvbi0+cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgaWYg
KHByaXZhdGVDbGlja01lYXN1cmVtZW50KSB7CisgICAgICAgICAgICBpZiAocHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQtPmRlc3RpbmF0aW9uKCkubWF0Y2hlcyhmcmFtZS0+dXJsKCkpKQorICAgICAg
ICAgICAgICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmQoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzOjpTdG9yZVByaXZhdGVDbGlja01lYXN1cmVtZW50KG1fd2Vic2l0
ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksICpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCksIDApOwog
ICAgICAgICB9CiAgICAgfQotICAgIG1fbmV3UGFnZU5hdmlnYXRpb25BZENsaWNrQXR0cmlidXRp
b24ucmVzZXQoKTsKKyAgICBtX25ld1BhZ2VOYXZpZ2F0aW9uUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQucmVzZXQoKTsKIAogICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSkgewogICAgICAgICBt
X21haW5GcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciA9IGZyYW1lSGFzQ3VzdG9tQ29udGVu
dFByb3ZpZGVyOwpAQCAtNTUyNCw3ICs1NTI0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNyZWF0
ZU5ld1BhZ2UoRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgV2ViUGEK
ICAgICBhdXRvKiBvcmlnaW5hdGluZ1BhZ2UgPSBtX3Byb2Nlc3MtPndlYlBhZ2Uob3JpZ2luYXRp
bmdQYWdlSUQpOwogICAgIGF1dG8gb3JpZ2luYXRpbmdGcmFtZUluZm8gPSBBUEk6OkZyYW1lSW5m
bzo6Y3JlYXRlKFdURk1vdmUob3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQ
YWdlKTsKICAgICBhdXRvIG1haW5GcmFtZVVSTCA9IG1fbWFpbkZyYW1lID8gbV9tYWluRnJhbWUt
PnVybCgpIDogVVJMKCk7Ci0gICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1haW5GcmFtZVVSTCwgcmVxdWVzdCwgcmVwbHkg
PSBXVEZNb3ZlKHJlcGx5KSwgYWRDbGlja0F0dHJpYnV0aW9uID0gbmF2aWdhdGlvbkFjdGlvbkRh
dGEuYWRDbGlja0F0dHJpYnV0aW9uXSAoUmVmUHRyPFdlYlBhZ2VQcm94eT4gbmV3UGFnZSkgbXV0
YWJsZSB7CisgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIG1haW5GcmFtZVVSTCwgcmVxdWVzdCwgcmVwbHkgPSBXVEZNb3Zl
KHJlcGx5KSwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudF0gKFJlZlB0cjxXZWJQYWdlUHJveHk+IG5ld1BhZ2UpIG11
dGFibGUgewogICAgICAgICBpZiAoIW5ld1BhZ2UpIHsKICAgICAgICAgICAgIHJlcGx5KFdURjo6
bnVsbG9wdCwgV1RGOjpudWxsb3B0KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTU1MzYsNyAr
NTUzNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVOZXdQYWdlKEZyYW1lSW5mb0RhdGEm
JiBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIFdlYlBhCiAKICAgICAgICAgbmV3UGFnZS0+bV9z
aG91bGRTdXBwcmVzc0FwcExpbmtzSW5OZXh0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uID0gbWFp
bkZyYW1lVVJMLmhvc3QoKSA9PSByZXF1ZXN0LnVybCgpLmhvc3QoKTsKIAotICAgICAgICBuZXdQ
YWdlLT5tX25ld1BhZ2VOYXZpZ2F0aW9uQWRDbGlja0F0dHJpYnV0aW9uID0gYWRDbGlja0F0dHJp
YnV0aW9uOworICAgICAgICBuZXdQYWdlLT5tX25ld1BhZ2VOYXZpZ2F0aW9uUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQgPSBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKICNpZiBIQVZFKEFQUF9TU08p
CiAgICAgICAgIG5ld1BhZ2UtPm1fc2hvdWxkU3VwcHJlc3NTT0F1dGhvcml6YXRpb25Jbk5leHRO
YXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gPSB0cnVlOwogI2VuZGlmCkBAIC05OTU2LDI5ICs5OTU2
LDI5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzeXN0ZW1QcmV2aWV3QWN0aW9uVHJpZ2dlcmVkKGNv
bnN0IFdlYkNvcmU6OlN5c3RlbVByZXZpZXdJbmZvCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdl
UHJveHk6OmR1bXBBZENsaWNrQXR0cmlidXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBTdHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpkdW1w
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJp
bmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0
d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpEdW1wQWRDbGlja0F0dHJpYnV0aW9uKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCkp
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5l
dHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6RHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lv
bklEKCkpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5OjpjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7Ci0gICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Q2xlYXJBZENsaWNrQXR0cmlidXRpb24o
bV93ZWJzaXRlRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKKyAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDbGVhclByaXZhdGVDbGlja01lYXN1
cmVtZW50KG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCkpLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpzZXRBZENsaWNrQXR0cmlidXRp
b25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHVlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgd2Vic2l0
ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6U2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRl
c3RpbmcobV93ZWJzaXRlRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwgdmFsdWUpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CisgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNz
KCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhtX3dlYnNpdGVEYXRhU3Rv
cmUtPnNlc3Npb25JRCgpLCB2YWx1ZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxG
b3JUZXN0aW5nKGNvbnN0IFVSTCYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhjb25zdCBVUkwmIHVybCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHdlYnNpdGVEYXRhU3Rv
cmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OlNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKG1f
d2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksIHVybCksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKKyAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lv
bklEKCksIHVybCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6Om1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZyhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6bWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHdlYnNp
dGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6Ok1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVz
dGluZyhtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6Ok1hcmtQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lv
bklEKCkpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKICNpZiBFTkFCTEUoU1BF
RUNIX1NZTlRIRVNJUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXgg
N2NlZmJmYzY5NDVlZGZlNDNhZTU2YzJkNTY0YzBlODFlOTViYjRhNi4uOGE0Y2VhYWE1ZDM2MTUx
NDM2YWQ4YmRlZDMxYWI4Y2IxOTllYzdlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKQEAgLTE2ODQsMTEgKzE2ODQsMTEgQEAgcHVibGljOgogICAgIHZvaWQgY29udGVu
dEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYs
IGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllcik7CiAjZW5kaWYKIAotICAgIHZvaWQgZHVtcEFkQ2xpY2tBdHRyaWJ1dGlv
bihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmKTsKLSAgICB2b2lkIGNs
ZWFyQWRDbGlja0F0dHJpYnV0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAg
dm9pZCBzZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZh
bHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0QWRDbGlja0F0
dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3RpbmcoY29uc3QgVVJMJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIG1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBp
cmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgZHVt
cFByaXZhdGVDbGlja01lYXN1cmVtZW50KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3Ry
aW5nJik+JiYpOworICAgIHZvaWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9u
VVJMRm9yVGVzdGluZyhjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwor
ICAgIHZvaWQgbWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rpbmco
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhF
U0lTKQogICAgIHZvaWQgc3BlZWNoU3ludGhlc2lzVm9pY2VMaXN0KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoVmVjdG9yPFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlPiYmKT4mJik7CkBAIC0yODg3LDcg
KzI4ODcsNyBAQCBwcml2YXRlOgogCiAgICAgc2l6ZV90IG1fc3VzcGVuZE1lZGlhUGxheWJhY2tD
b3VudGVyIHsgMCB9OwogCi0gICAgT3B0aW9uYWw8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9u
PiBtX25ld1BhZ2VOYXZpZ2F0aW9uQWRDbGlja0F0dHJpYnV0aW9uOworICAgIE9wdGlvbmFsPFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiBtX25ld1BhZ2VOYXZpZ2F0aW9uUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAKaW5kZXggZGFkMjA3MDFiZDM5ODkzOTg1Yzg0MmM4YTE4NjZhNWY1MGNlNWZkNS4uMGU0
NDM5MjQ0ZmY4MWFiNTVkNmFlMWE0MjlkYTMzOWQ4NmQ2ZDY3MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAK
QEAgLTIwNTAsOSArMjA1MCw5IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6aXNSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRXBoZW1lcmFsKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoCiAjZW5kaWYKIH0K
IAotdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUo
Ym9vbCBlbmFibGVkKQordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudERlYnVnTW9kZShib29sIGVuYWJsZWQpCiB7Ci0gICAgbmV0d29ya1Byb2Nlc3MoKS5z
ZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUoZW5hYmxlZCk7CisgICAgbmV0d29ya1Byb2Nl
c3MoKS5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZShlbmFibGVkKTsKIH0KIAog
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggZjNm
ZTY2ZDA1OTQxYWEzZjE3ZGMyOTMyNTJmNTA3YzI1ZmJjMWJjZS4uZDViNGUzZDMyMTE1MjAxYjZh
MDk5NDNmOTY1OTdiMDViNmJkZmY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMTQ5LDcgKzE0OSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoYm9v
bCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGlzUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0VwaGVtZXJhbChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBjb25z
dDsKIAotICAgIHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlKGJvb2wpOworICAg
IHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUoYm9vbCk7CiAKICAgICB1
aW50NjRfdCBwZXJPcmlnaW5TdG9yYWdlUXVvdGEoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVk
Q29uZmlndXJhdGlvbi0+cGVyT3JpZ2luU3RvcmFnZVF1b3RhKCk7IH0KICAgICB1aW50NjRfdCBw
ZXJUaGlyZFBhcnR5T3JpZ2luU3RvcmFnZVF1b3RhKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjMDI3NDk0YjczYWNjZWM1
ZWZkODFjNjk0ZDNhODUzYjRlZGVmMGNhLi41MTlhNWM5M2U0M2UwYjBkYmI2OTZmZjRjNjJkZGNh
YjBjOWE1NWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTEyMzksNyArMTIzOSw3IEBACiAJCTYzQzMyQzI4MUU5ODExOTAwMDY5OUJE
MCAvKiBfV0tHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYzQzMyQzI3MUU5ODExOTAwMDY5OUJEMCAvKiBf
V0tHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaCAqLzsgfTsKIAkJNjVCODZGMUUxMkYxMURF
MzAwQjdERDhBIC8qIFdLQnVuZGxlSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUI4NkYxODEyRjExRDdCMDBCN0REOEEgLyogV0tCdW5k
bGVJbnNwZWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk2QTUwODBCRjFGMEVEQUFBMDBFNjE3QzUgLyogV0tXaW5kb3dGZWF0dXJlc1ByaXZh
dGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZBNTA4
MEJFMUYwRURBQUEwMEU2MTdDNSAvKiBXS1dpbmRvd0ZlYXR1cmVzUHJpdmF0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTZCRDA1ODY1MjIwQ0U4
QzIwMDBCRUQ1QyAvKiBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QkQwNTg2MzIyMENFOEMyMDAwQkVENUMg
LyogQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5oICovOyB9OworCQk2QkQwNTg2NTIyMENFOEMy
MDAwQkVENUMgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QkQwNTg2MzIyMENFOEMyMDAwQkVE
NUMgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmggKi87IH07CiAJCTZCRTk2OUMx
MUU1NEQ0NTIwMDhCNzQ4MyAvKiBjb3JlUHJlZGljdGlvbl9tb2RlbCBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkJFOTY5QzAxRTU0RDQ1MjAwOEI3NDgz
IC8qIGNvcmVQcmVkaWN0aW9uX21vZGVsICovOyB9OwogCQk2QkU5NjlDQjFFNTRENENGMDA4Qjc0
ODMgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXJDb2NvYS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkJFOTY5QzkxRTU0RDRDRjAwOEI3
NDgzIC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyQ29jb2EuaCAqLzsgfTsKIAkJ
NkJFOTY5Q0QxRTU0RTA1NDAwOEI3NDgzIC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lm
aWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QkU5
NjlDQzFFNTRFMDU0MDA4Qjc0ODMgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXIu
aCAqLzsgfTsKQEAgLTQyMjQsOCArNDIyNCw4IEBACiAJCTY1Qjg2RjE3MTJGMTFEN0IwMEI3REQ4
QSAvKiBXS0J1bmRsZUluc3BlY3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXS0J1bmRsZUluc3BlY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTY1Qjg2RjE4MTJGMTFEN0IwMEI3REQ4QSAvKiBXS0J1bmRsZUluc3BlY3Rvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZUluc3BlY3Rvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2QTUwODBCRTFGMEVEQUFBMDBFNjE3QzUgLyogV0tXaW5k
b3dGZWF0dXJlc1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXaW5kb3dGZWF0dXJlc1ByaXZh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkJEMDU4NjMyMjBDRThDMjAwMEJF
RDVDIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWRDbGlj
a0F0dHJpYnV0aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QkQw
NTg2NDIyMENFOEMyMDAwQkVENUMgLyogQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkJEMDU4NjMyMjBDRThDMjAwMEJFRDVDIC8qIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkJEMDU4NjQy
MjBDRThDMjAwMEJFRDVDIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QkU5NjlDMDFFNTRENDUyMDA4Qjc0ODMgLyogY29y
ZVByZWRpY3Rpb25fbW9kZWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29yZVByZWRpY3Rpb25f
bW9kZWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCRTk2OUM2MUU1NEQ0QjYwMDhC
NzQ4MyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmll
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCRTk2OUM4MUU1NEQ0Q0YwMDhC
NzQ4MyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllckNvY29hLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFz
c2lmaWVyQ29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzkxNiw4ICs3
OTE2LDYgQEAKIAkJCQk5M0JBMDREOTIxNTFBRENEMDA3RjQ1NUYgLyogU2VydmljZVdvcmtlciAq
LywKIAkJCQk0MTMwNzU5NzFERTg0RUQ3MDAzOUVDNjkgLyogd2VicnRjICovLAogCQkJCTkzQjI2
MTQzMjI3RDE0MzEwMEI5N0E3NiAvKiBXZWJTdG9yYWdlICovLAotCQkJCTZCRDA1ODY0MjIwQ0U4
QzIwMDBCRUQ1QyAvKiBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmNwcCAqLywKLQkJCQk2QkQw
NTg2MzIyMENFOEMyMDAwQkVENUMgLyogQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5oICovLAog
CQkJCTUzRjNDQUE1MjA2QzQ0M0UwMDg2NDkwRSAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmNw
cCAqLywKIAkJCQk1MzVCQ0I5MDIwNjlDNDlDMDBDQ0NFMDIgLyogTmV0d29ya0FjdGl2aXR5VHJh
Y2tlci5oICovLAogCQkJCTUxM0ExNjQ5MTYzMEE5QkYwMDVEN0QyMiAvKiBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAgKi8sCkBAIC03OTcyLDYgKzc5NzAsOCBAQAogCQkJCTVDRTg1
QjFGMUM4OEU2NDMwMDcwQkZDRSAvKiBQaW5nTG9hZC5oICovLAogCQkJCTgzQTBFRDMzMUY3NDdD
QzcwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5jcHAgKi8sCiAJCQkJODNBMEVEMzIxRjc0N0ND
NjAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmggKi8sCisJCQkJNkJEMDU4NjQyMjBDRThDMjAw
MEJFRDVDIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAgKi8sCisJCQkJNkJE
MDU4NjMyMjBDRThDMjAwMEJFRDVDIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5o
ICovLAogCQkJCUUxQjc4NDcwMTYzRjI0NjkwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dC5oICovLAogCQkJCTQxMjg3RDREMjI1QzE2MUYwMDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNr
LmggKi8sCiAJCQkpOwpAQCAtMTA4OTQsNyArMTA4OTQsNiBAQAogCQkJCUExODJENUI1MUJFNkJE
MjUwMDg3QTdDQyAvKiBBY2Nlc3NpYmlsaXR5SU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0NB
QUE0NDI0MTMyNzk5MDBDRUQyRTIgLyogQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE3RDc5MkQ4MTc2N0NDQTMwMDg4MUNCRSAvKiBBY3Rpdml0eUFzc2VydGlv
bi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkJEMDU4NjUyMjBDRThDMjAwMEJFRDVDIC8qIEFkQ2xp
Y2tBdHRyaWJ1dGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTYzNDg0MjUxMUZCMjZF
NzEwMDk0NkUzQyAvKiBBUElBcHBsaWNhdGlvbk1hbmlmZXN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzY0Njk3MDExREJFNjAzMDA2NDU1QjAgLyogQVBJQXJyYXkuaCBpbiBIZWFkZXJzICovLAog
CQkJCTJFNUM3NzBFMUZBN0Q0MjkwMDU5MzJDMyAvKiBBUElBdHRhY2htZW50LmggaW4gSGVhZGVy
cyAqLywKQEAgLTExMjg3LDYgKzExMjg2LDcgQEAKIAkJCQlDMTVDQkIzNjIzRjM3NzcxMDAzMDBD
QzcgLyogUHJlZmVyZW5jZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQUIxNDVFNjIy
M0Y5MzEyMDBFNDg5RDggLyogUHJlZmV0Y2hDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFD
QzFCOTAxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NkJEMDU4NjUyMjBDRThDMjAwMEJFRDVDIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZGOTUzNjUxOEZGNThGNTAwMURCMkVGIC8qIFByb2Nl
c3NBc3NlcnRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMUE3QzU4MTEzNkUxOUMwMEZCNzE2
NyAvKiBQcm9jZXNzTGF1bmNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2M0ZENDgyMUVCOTRF
QzAwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBmZWRjM2RiMTBhZDc3M2JkNTUzNjMyNmZhYjFjMTc0
MDg1Y2IxNmQwLi45ZGVkMjVkMTIzZTVlM2JmNzIxZTkyNTMyZDg1MWEwZGE3N2RlNWJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMjcwLDcgKzI3MCw3IEBAIFBhZ2UqIFdlYkNocm9tZUNs
aWVudDo6Y3JlYXRlV2luZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgV2luZG93RmVhdHVyZXMmIHdp
bmRvd0ZlCiAgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEuY2FuSGFuZGxlUmVxdWVzdCA9IG1fcGFn
ZS5jYW5IYW5kbGVSZXF1ZXN0KG5hdmlnYXRpb25BY3Rpb24ucmVzb3VyY2VSZXF1ZXN0KCkpOwog
ICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBu
YXZpZ2F0aW9uQWN0aW9uLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKTsKICAgICBuYXZp
Z2F0aW9uQWN0aW9uRGF0YS5kb3dubG9hZEF0dHJpYnV0ZSA9IG5hdmlnYXRpb25BY3Rpb24uZG93
bmxvYWRBdHRyaWJ1dGUoKTsKLSAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5hZENsaWNrQXR0cmli
dXRpb24gPSBuYXZpZ2F0aW9uQWN0aW9uLmFkQ2xpY2tBdHRyaWJ1dGlvbigpOworICAgIG5hdmln
YXRpb25BY3Rpb25EYXRhLnByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gbmF2aWdhdGlvbkFjdGlv
bi5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwogCiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0g
V2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcAppbmRleCBmZjcxYjgzMzM4ZjFlZGU5YWMzMmFjZmE2ZTJkMzU1N2EzN2RkNzkxLi42
MDNhZGY4YjJlOTQ5MzZhZjA3NDZkZWU5NjE3YTRmMjU1NDIxZTA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAKQEAgLTg3OCw3ICs4NzgsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZp
Z2F0aQogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLmNhbkhhbmRsZVJlcXVlc3QgPSB3ZWJQYWdl
LT5jYW5IYW5kbGVSZXF1ZXN0KHJlcXVlc3QpOwogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLnNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBuYXZpZ2F0aW9uQWN0aW9uLnNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3koKTsKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5kb3dubG9hZEF0
dHJpYnV0ZSA9IG5hdmlnYXRpb25BY3Rpb24uZG93bmxvYWRBdHRyaWJ1dGUoKTsKLSAgICBuYXZp
Z2F0aW9uQWN0aW9uRGF0YS5hZENsaWNrQXR0cmlidXRpb24gPSBuYXZpZ2F0aW9uQWN0aW9uLmFk
Q2xpY2tBdHRyaWJ1dGlvbigpOworICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLnByaXZhdGVDbGlj
a01lYXN1cmVtZW50ID0gbmF2aWdhdGlvbkFjdGlvbi5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgp
OwogCiAgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xp
Y3lGb3JOZXdXaW5kb3dBY3Rpb24obV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCks
IGlkZW50aWZpZXIsIG5hdmlnYXRpb25BY3Rpb25EYXRhLCByZXF1ZXN0LAogICAgICAgICBmcmFt
ZU5hbWUsIGxpc3RlbmVySUQsIFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5z
Zm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkpLmdldCgpKSkpOwpAQCAtOTg1LDcg
Kzk4NSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0CiAgICAgbmF2aWdhdGlvbkFjdGlvbkRh
dGEuc291cmNlQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciA9IG5hdmlnYXRpb25BY3Rpb24uc291
cmNlQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcigpOwogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRh
LmxvY2tIaXN0b3J5ID0gbmF2aWdhdGlvbkFjdGlvbi5sb2NrSGlzdG9yeSgpOwogICAgIG5hdmln
YXRpb25BY3Rpb25EYXRhLmxvY2tCYWNrRm9yd2FyZExpc3QgPSBuYXZpZ2F0aW9uQWN0aW9uLmxv
Y2tCYWNrRm9yd2FyZExpc3QoKTsKLSAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5hZENsaWNrQXR0
cmlidXRpb24gPSBuYXZpZ2F0aW9uQWN0aW9uLmFkQ2xpY2tBdHRyaWJ1dGlvbigpOworICAgIG5h
dmlnYXRpb25BY3Rpb25EYXRhLnByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gbmF2aWdhdGlvbkFj
dGlvbi5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwogCiAgICAgYXV0byogY29yZUZyYW1lID0g
bV9mcmFtZS0+Y29yZUZyYW1lKCk7CiAgICAgaWYgKCFjb3JlRnJhbWUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
bW0KaW5kZXggNmZkN2EyNjUzMjE1NWM5YzhkNTc1MzY1NTE0ZTRmNGExYThjYjhkNS4uM2U4NTQx
NzY3ZjJlMDkyNWIxYWFiNTBjODEwN2M2OTZlZjU3N2M1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpA
QCAtMTI0LDcgKzEyNCw3IEBAIE5TU3RyaW5nICpXZWJDb25zb2xlTWVzc2FnZU1lZGlhTWVzc2Fn
ZVNvdXJjZSA9IEAiTWVkaWFNZXNzYWdlU291cmNlIjsKIE5TU3RyaW5nICpXZWJDb25zb2xlTWVz
c2FnZU1lZGlhU291cmNlTWVzc2FnZVNvdXJjZSA9IEAiTWVkaWFTb3VyY2VNZXNzYWdlU291cmNl
IjsKIE5TU3RyaW5nICpXZWJDb25zb2xlTWVzc2FnZVdlYlJUQ01lc3NhZ2VTb3VyY2UgPSBAIldl
YlJUQ01lc3NhZ2VTb3VyY2UiOwogTlNTdHJpbmcgKldlYkNvbnNvbGVNZXNzYWdlSVRQRGVidWdN
ZXNzYWdlU291cmNlID0gQCJJVFBEZWJ1Z01lc3NhZ2VTb3VyY2UiOwotTlNTdHJpbmcgKldlYkNv
bnNvbGVNZXNzYWdlQWRDbGlja0F0dHJpYnV0aW9uTWVzc2FnZVNvdXJjZSA9IEAiQWRDbGlja0F0
dHJpYnV0aW9uTWVzc2FnZVNvdXJjZSI7CitOU1N0cmluZyAqV2ViQ29uc29sZU1lc3NhZ2VQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1lc3NhZ2VTb3VyY2UgPSBAIlByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWVzc2FnZVNvdXJjZSI7CiBOU1N0cmluZyAqV2ViQ29uc29sZU1lc3NhZ2VPdGhlck1lc3Nh
Z2VTb3VyY2UgPSBAIk90aGVyTWVzc2FnZVNvdXJjZSI7CiAKIE5TU3RyaW5nICpXZWJDb25zb2xl
TWVzc2FnZURlYnVnTWVzc2FnZUxldmVsID0gQCJEZWJ1Z01lc3NhZ2VMZXZlbCI7CkBAIC00MDMs
OCArNDAzLDggQEAgaW5saW5lIHN0YXRpYyBOU1N0cmluZyAqc3RyaW5nRm9yTWVzc2FnZVNvdXJj
ZShNZXNzYWdlU291cmNlIHNvdXJjZSkKICAgICAgICAgcmV0dXJuIFdlYkNvbnNvbGVNZXNzYWdl
V2ViUlRDTWVzc2FnZVNvdXJjZTsKICAgICBjYXNlIE1lc3NhZ2VTb3VyY2U6OklUUERlYnVnOgog
ICAgICAgICByZXR1cm4gV2ViQ29uc29sZU1lc3NhZ2VJVFBEZWJ1Z01lc3NhZ2VTb3VyY2U7Ci0g
ICAgY2FzZSBNZXNzYWdlU291cmNlOjpBZENsaWNrQXR0cmlidXRpb246Ci0gICAgICAgIHJldHVy
biBXZWJDb25zb2xlTWVzc2FnZUFkQ2xpY2tBdHRyaWJ1dGlvbk1lc3NhZ2VTb3VyY2U7CisgICAg
Y2FzZSBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDoKKyAgICAgICAgcmV0
dXJuIFdlYkNvbnNvbGVNZXNzYWdlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNZXNzYWdlU291cmNl
OwogICAgIGNhc2UgTWVzc2FnZVNvdXJjZTo6T3RoZXI6CiAgICAgICAgIHJldHVybiBXZWJDb25z
b2xlTWVzc2FnZU90aGVyTWVzc2FnZVNvdXJjZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApp
bmRleCA1ZmE5ZTkwYzEwNTc3OGM0YzJkOTg3YzZmYjFjMGY1YjA3ZGViYWM4Li5hYjMxN2IwNmIw
NWY4OWFiMTNkZTU2NGVkMjg5NDY4NzUyYWY2ZmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAg
LTI3Myw3ICsyNzMsNyBAQAogI2RlZmluZSBXZWJLaXRTZXJ2ZXJUaW1pbmdFbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdFNlcnZlclRpbWluZ0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdENTU0N1
c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENTU0N1
c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFibGVkIgogI2RlZmluZSBXZWJLaXRSZXNpemVPYnNl
cnZlckVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkIgot
I2RlZmluZSBXZWJLaXRBZENsaWNrQXR0cmlidXRpb25FbmFibGVkUHJlZmVyZW5jZUtleSBAIldl
YktpdEFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQiCisjZGVmaW5lIFdlYktpdFByaXZhdGVDbGlj
a01lYXN1cmVtZW50RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdEZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZFBy
ZWZlcmVuY2VLZXkgQCJXZWJLaXRGZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQiCiAjZGVmaW5lIFdl
YktpdEdlbmVyaWNDdWVBUElFbmFibGVkS2V5IEAiV2ViS2l0R2VuZXJpY0N1ZUFQSUVuYWJsZWQi
CiAjZGVmaW5lIFdlYktpdEFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFibGVk
UHJlZmVyZW5jZUtleSBAIldlYktpdEFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRF
bmFibGVkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW0KaW5kZXggNTdjMGQzNDQwNmVjMTkxYjFjYWM2NjM0ZDc1YmJkMGQ5ZjEzNGRiMS4u
ZjhmM2VhMDc5MDg4N2JlZTJiYjI0MTQ5ZDUxOGZlZThlM2Y3OWQ5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0zMjMzLDE0
ICszMjMzLDE0IEBAIC0gKHZvaWQpc2V0UmVzaXplT2JzZXJ2ZXJFbmFibGVkOihCT09MKWZsYWcK
ICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdFJlc2l6ZU9ic2VydmVy
RW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCi0tIChCT09MKWFkQ2xpY2tBdHRyaWJ1dGlvbkVu
YWJsZWQKKy0gKEJPT0wpcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkCiB7Ci0gICAgcmV0
dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0QWRDbGlja0F0dHJpYnV0aW9uRW5hYmxl
ZFByZWZlcmVuY2VLZXldOworICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktp
dFByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCi0tICh2
b2lkKXNldEFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ6KEJPT0wpZmxhZworLSAodm9pZClzZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQ6KEJPT0wpZmxhZwogewotICAgIFtzZWxmIF9z
ZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0QWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZFBy
ZWZlcmVuY2VLZXldOworICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKIC0gKEJP
T0wpZmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCBlZjBlODEzNGVm
NTI4MGY5YTNjODcxMTBmYzU4Zjc3YzgzOTUwYWI2Li40NTZhMDEzYjg4ZDU4MzdlYTk0N2ZlNGNm
NjQyYjNlNWE3Yjg2MGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTMzNCw3ICszMzQsNyBAQCBleHRl
cm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlm
aWNhdGlvbiBXRUJLSVRfREVQUgogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgc2VydmVyVGlt
aW5nRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIENTU0N1c3RvbVByb3BlcnRp
ZXNBbmRWYWx1ZXNFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcmVzaXplT2Jz
ZXJ2ZXJFbmFibGVkOwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWRDbGlja0F0dHJpYnV0
aW9uRW5hYmxlZDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHByaXZhdGVDbGlja01lYXN1
cmVtZW50RW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGZldGNoQVBJS2VlcEFs
aXZlRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGdlbmVyaWNDdWVBUElFbmFi
bGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYXNwZWN0UmF0aW9PZkltZ0Zyb21XaWR0
aEFuZEhlaWdodEVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggMzg1YTFiZWFjMWI4YjQ2Y2ZlYjZjNjJiODQwNzZlZTk3OGQyN2FkZC4u
YTU0N2E0MDVmN2EyNWFiMTQwMjViYjliMDM5ZmFjZDljMDVkZTFmZSAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDIw
LTExLTEwICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBD
TTogQ2hhbmdlIGZyb20gYWQtY2xpY2stYXR0cmlidXRpb24gdG8gcHJpdmF0ZS1jbGljay1tZWFz
dXJlbWVudCAoaW4gYWxsIGZvcm1zLCBpbmNsdWRpbmcgLndlbGwta25vd24gVVJMKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzMwCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83MTA5NDI5Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgdG8gdGhlIG9mZmljaWFsIG5hbWUgb2YgdGhlIHBy
b3Bvc2VkIHN0YW5kYXJkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQKKyAgICAgICAgaHR0cHM6
Ly9naXRodWIuY29tL3ByaXZhY3ljZy9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LgorCisgICAg
ICAgIFRoaXMgaW5jbHVkZXMgYSBjaGFuZ2Ugb2YgdGhlIHJlcG9ydGluZyBVUkwgZnJvbSAKKyAg
ICAgICAgIi8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8iIHRvCisgICAgICAgICIv
LndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8iLgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6
ZGVmYXVsdHMpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9BZENsaWNrQXR0cmlidXRpb24uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHA6IEFkZGVkLgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpU
ZXN0UnVubmVyOjpkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAoV1RSOjpU
ZXN0UnVubmVyOjpjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdUUjo6
VGVzdFJ1bm5lcjo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURh
dGFSZW1vdmFsKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyk6CisgICAgICAgIChXVFI6OlRlc3RSdW5u
ZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcpOgor
ICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjptYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNF
eHBpcmVkRm9yVGVzdGluZyk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmR1bXBBZENsaWNr
QXR0cmlidXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpjbGVhckFk
Q2xpY2tBdHRyaWJ1dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmNs
ZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwpOiBEZWxldGVk
LgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlk
ZVRpbWVyRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNl
dEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6bWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRG
b3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0Nv
bnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAoV1RSOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0
cmluZ1Jlc3VsdENhbGxiYWNrQ29udGV4dDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdHJpbmdS
ZXN1bHRDYWxsYmFja0NvbnRleHQpOgorICAgICAgICAoV1RSOjpwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFN0cmluZ1Jlc3VsdENhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgIChXVFI6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50Vm9pZENhbGxiYWNrQ29udGV4dDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRW
b2lkQ2FsbGJhY2tDb250ZXh0KToKKyAgICAgICAgKFdUUjo6cHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRWb2lkQ2FsbGJhY2spOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y2xlYXJQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjbGVh
clByaXZhdGVDbGlja01lYXN1cmVtZW50c1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwpOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVy
cmlkZVRpbWVyRm9yVGVzdGluZyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKToKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6Om1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGly
ZWRGb3JUZXN0aW5nKToKKyAgICAgICAgKFdUUjo6QWRDbGlja0F0dHJpYnV0aW9uU3RyaW5nUmVz
dWx0Q2FsbGJhY2tDb250ZXh0OjpBZENsaWNrQXR0cmlidXRpb25TdHJpbmdSZXN1bHRDYWxsYmFj
a0NvbnRleHQpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjphZENsaWNrQXR0cmlidXRpb25TdHJp
bmdSZXN1bHRDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
OjpkdW1wQWRDbGlja0F0dHJpYnV0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6QWRDbGlj
a0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrQ29udGV4dDo6QWRDbGlja0F0dHJpYnV0aW9uVm9pZENh
bGxiYWNrQ29udGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OmFkQ2xpY2tBdHRyaWJ1dGlv
blZvaWRDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpj
bGVhckFkQ2xpY2tBdHRyaWJ1dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFs
KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldEFkQ2xpY2tBdHRy
aWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0
aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6Om1hcmtBZENsaWNr
QXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZHVt
cFJlc3VsdHMpOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNo
cm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6OlRlc3RJbnZv
Y2F0aW9uOjpkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAoV1RSOjpUZXN0
SW52b2NhdGlvbjo6ZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbik6IERlbGV0ZWQuCisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oOgorCiAyMDIwLTExLTEwICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIy
Njk1MjUpOiBNYW55IGxheW91dCB0ZXN0cyBjcmFzaCB3aGVuIHJ1biB1bmRlciBBU2FuCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKaW5kZXggZmU2MDNlZmVhYmNlZTM1OWE2MzRkODg0
NmM3MzczMTRmMjA1OWY2OC4uN2Y0MzM3ZjczNTUxMDY3ZWFhYmZlMjA5MzQ4OWVjNjVhOTU2YWM4
NiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcApAQCAtNjYsNyArNjYsNiBAQCBj
b25zdCBUZXN0RmVhdHVyZXMmIFRlc3RPcHRpb25zOjpkZWZhdWx0cygpCiAgICAgICAgICAgICAv
LyBUaGVzZSBhcmUgV2ViUHJlZmVyZW5jZSB2YWx1ZXMgdGhhdCBtdXN0IGFsd2F5cyBiZSBzZXQg
YXMgdGhleSBtYXkKICAgICAgICAgICAgIC8vIGRpZmZlciBmcm9tIHRoZSBkZWZhdWx0IHNldCBp
biB0aGUgV2ViUHJlZmVyZW5jZXMqLnlhbWwgY29uZmlndXJhdGlvbi4KICAgICAgICAgICAgIHsg
IkFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQiLCBmYWxzZSB9LAotICAgICAgICAgICAgeyAiQWRD
bGlja0F0dHJpYnV0aW9uRW5hYmxlZCIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7ICJBbGxvd0Ny
b3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscyIsIGZhbHNlIH0sCiAgICAg
ICAgICAgICB7ICJBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMiLCB0cnVlIH0sCiAgICAgICAg
ICAgICB7ICJBbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzIiwgdHJ1ZSB9LApAQCAtOTYsNiAr
OTUsNyBAQCBjb25zdCBUZXN0RmVhdHVyZXMmIFRlc3RPcHRpb25zOjpkZWZhdWx0cygpCiAgICAg
ICAgICAgICB7ICJNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZCIsIHRydWUgfSwKICAgICAgICAg
ICAgIHsgIk5lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrIiwgZmFsc2UgfSwKICAg
ICAgICAgICAgIHsgIlBsdWdpbnNFbmFibGVkIiwgdHJ1ZSB9LAorICAgICAgICAgICAgeyAiUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIlJl
cXVlc3RJZGxlQ2FsbGJhY2tFbmFibGVkIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIlJlc2l6
ZU9ic2VydmVyRW5hYmxlZCIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7ICJTZWxlY3Rpb25BY3Jv
c3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxlZCIsIHRydWUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggMTJjODAxMGNlZmFjMzVmMDZlOGMzYmNiNDc4M2NkOTM3MTQ5NWY3Mi4uMGViZGFjMzZj
NWY4N2QyMzQ1OTNhNjUyYmM1NzcyYzYxYTVmNGZhZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTUwMiw3ICs1MDIsNyBAQAogCQk2MzcyODFBNzIxQUUxMzg2MDA5RTBERTYgLyogRG93bmxv
YWRQcm9ncmVzcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDYzNzI4MUE2MjFBRTEzODYwMDlFMERFNiAvKiBEb3dubG9hZFByb2dyZXNzLm1tICovOyB9
OwogCQk2M0E2MUI4QjFGQUQyNTExMDBGMDY4ODUgLyogZGlzcGxheS1tb2RlLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjNBNjFCOEEx
RkFEMjA0RDAwRjA2ODg1IC8qIGRpc3BsYXktbW9kZS5odG1sICovOyB9OwogCQk2M0Y2NjgyMjFG
OTdGN0Y5MDAzMkVFNTEgLyogQXBwbGljYXRpb25NYW5pZmVzdC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYzRjY2ODIwMUY5N0MzQUEwMDMyRUU1MSAv
KiBBcHBsaWNhdGlvbk1hbmlmZXN0Lm1tICovOyB9OwotCQk2QjBBMDdGNzIxRkE5QzJCMDBENTcz
OTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZCMEEwN0Y2MjFGQTlDMkIwMEQ1NzM5MSAvKiBBZENsaWNrQXR0
cmlidXRpb24uY3BwICovOyB9OworCQk2QjBBMDdGNzIxRkE5QzJCMDBENTczOTEgLyogUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNkIwQTA3RjYyMUZBOUMyQjAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1
cmVtZW50LmNwcCAqLzsgfTsKIAkJNkIzMDYxMDYyMThBMzcyOTAwRjVBODAyIC8qIENsb3NpbmdX
ZWJWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkIzMDYxMDUyMThBMzcyOTAwRjVBODAyIC8qIENsb3NpbmdXZWJWaWV3Lm1tICovOyB9OwogCQk2
QjRFODYxQzIyMjBBNTUyMDAyMkYzODkgLyogUmVnaXN0cmFibGVEb21haW4uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkI0RTg2MUIyMjIwQTU1MjAw
MjJGMzg5IC8qIFJlZ2lzdHJhYmxlRG9tYWluLmNwcCAqLzsgfTsKIAkJNkI5QUJFMTIyMDg2OTUy
RjAwRDc1REU2IC8qIEhUVFBQYXJzZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZCOUFCRTExMjA4Njk1MkYwMEQ3NURFNiAvKiBIVFRQUGFyc2Vy
cy5jcHAgKi87IH07CkBAIC0yMjY0LDcgKzIyNjQsNyBAQAogCQk2MzcyODFBNjIxQUUxMzg2MDA5
RTBERTYgLyogRG93bmxvYWRQcm9ncmVzcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERvd25s
b2FkUHJvZ3Jlc3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYzQTYxQjhBMUZB
RDIwNEQwMEYwNjg4NSAvKiBkaXNwbGF5LW1vZGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJkaXNwbGF5LW1v
ZGUuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYzRjY2ODIwMUY5N0MzQUEw
MDMyRUU1MSAvKiBBcHBsaWNhdGlvbk1hbmlmZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
QXBwbGljYXRpb25NYW5pZmVzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkIw
QTA3RjYyMUZBOUMyQjAwRDU3MzkxIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBBZENsaWNrQXR0cmlidXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk2QjBBMDdGNjIxRkE5QzJCMDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjMwNjEwNTIxOEEzNzI5MDBGNUE4MDIgLyog
Q2xvc2luZ1dlYlZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDbG9zaW5nV2ViVmlldy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkI0RTg2MUIyMjIwQTU1MjAwMjJGMzg5
IC8qIFJlZ2lzdHJhYmxlRG9tYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlZ2lzdHJhYmxl
RG9tYWluLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkI5QUJFMTEyMDg2OTUy
RjAwRDc1REU2IC8qIEhUVFBQYXJzZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUVFBQYXJz
ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM0NzAsNyArMzQ3MCw2IEBA
CiAJCQkJQ0Q4OUQwMzcxQzRFREIxMzAwMDQwQTA0IC8qIGNvY29hICovLAogCQkJCUExRUMxMTg1
MUY0MjUzRDkwMEQwMTQ2RSAvKiBpb3MgKi8sCiAJCQkJQUJGNTEwNjMyQTE5QjhBQzdFQzQwRTE3
IC8qIEFib3J0YWJsZVRhc2tRdWV1ZS5jcHAgKi8sCi0JCQkJNkIwQTA3RjYyMUZBOUMyQjAwRDU3
MzkxIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbi5jcHAgKi8sCiAJCQkJN0E5MDlBNkYxRDg3NzQ3NTAw
N0UxMEY4IC8qIEFmZmluZVRyYW5zZm9ybS5jcHAgKi8sCiAJCQkJNTcxNTJCNUQyMUNDMjA0NTAw
MEMzN0NBIC8qIEFwZHVUZXN0LmNwcCAqLywKIAkJCQk2MzU0RjREMDFGN0MzQUI1MDBEODlERjMg
LyogQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlci5jcHAgKi8sCkBAIC0zNTE2LDYgKzM1MTUsNyBA
QAogCQkJCUE1QjE0OUREMUY1QTE5REMwMEM2REFGRiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmNwcCAq
LywKIAkJCQlDRDIyNUMwNzFDNDVBNjkyMDAxNDA3NjEgLyogUGFyc2VkQ29udGVudFJhbmdlLmNw
cCAqLywKIAkJCQlBQTk2Q0FCNDIxQzdEQjQyMDBGRDJGOTcgLyogUGFyc2VkQ29udGVudFR5cGUu
Y3BwICovLAorCQkJCTZCMEEwN0Y2MjFGQTlDMkIwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5jcHAgKi8sCiAJCQkJMDQxQTFFMzMyMTZGRkRCQzAwNzg5RTBBIC8qIFB1YmxpY1N1
ZmZpeC5jcHAgKi8sCiAJCQkJNkI0RTg2MUIyMjIwQTU1MjAwMjJGMzg5IC8qIFJlZ2lzdHJhYmxl
RG9tYWluLmNwcCAqLywKIAkJCQlGNDE4QkUxNDFGNzFCN0RDMDAxOTcwRTYgLyogUm91bmRlZFJl
Y3RUZXN0cy5jcHAgKi8sCkBAIC01MDMwLDcgKzUwMzAsNiBAQAogCQkJCTJFMjA1QkE0MUY1Mjc3
NDYwMDU5NTJERCAvKiBBY2Nlc3NpYmlsaXR5VGVzdHNJT1MubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk5QkQ1MTExQzFGRThFMTE2MDBEMkI2MzAgLyogQWNjZXNzaW5nUGFzdGVkSW1hZ2UubW0gaW4g
U291cmNlcyAqLywKIAkJCQlGNDVCNjNGRTFGMTlENDEwMDA5RDM4QjkgLyogQWN0aW9uU2hlZXRU
ZXN0cy5tbSBpbiBTb3VyY2VzICovLAotCQkJCTZCMEEwN0Y3MjFGQTlDMkIwMEQ1NzM5MSAvKiBB
ZENsaWNrQXR0cmlidXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdFN0RENjQxRUEwNkZG
MjAwOUIzOTZEIC8qIEFkZGl0aW9uYWxSZWFkQWNjZXNzQWxsb3dlZFVSTHMubW0gaW4gU291cmNl
cyAqLywKIAkJCQk1NUE4MTdGQzIxODEwMEUwMDAwNEEzOUEgLyogQWRkaXRpb25hbFN1cHBvcnRl
ZEltYWdlVHlwZXMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1NUY5RDJFNTIyMDUwMzE4MDBBOUFC
MzggLyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gaW4gU291cmNlcyAqLywKQEAg
LTUzNzAsNiArNTM2OSw3IEBACiAJCQkJN0NDRTdGMkMxQTQxMUIxMDAwNDQ3QzRDIC8qIFByZXZl
bnRJbWFnZUxvYWRXaXRoQXV0b1Jlc2l6aW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFFQzEx
ODgxRjQyNTQxMjAwRDAxNDZFIC8qIFByZXZpZXdDb252ZXJ0ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0NDRTdGMEMxQTQxMUFFNjAwNDQ3QzRDIC8qIFByaXZhdGVCcm93c2luZ1B1c2hTdGF0
ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTZCMEEwN0Y3MjFGQTlD
MkIwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk0NjQ3QjEyNjFFQkEzQjg1MDA0MUQ3RUYgLyogUHJvY2Vzc0RpZFRlcm1pbmF0ZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0MTg4MkYwMzIxMDEwQzBEMDAyRkYyODggLyogUHJvY2Vzc1By
ZVdhcm1pbmcubW0gaW4gU291cmNlcyAqLywKIAkJCQlDREE0NDM4RTIxRjdBNDc3MDAzNzk0ODkg
LyogUHJvY2Vzc1N1c3BlbmRNZWRpYUJ1ZmZlcmluZy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlv
bi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQWRDbGlja0F0dHJpYnV0
aW9uLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDExMWYwZWEwYzBlMWQxOTU4
MGZkM2M2NDViZDM3YzAyZTVhZjk3Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQWRDbGlja0F0
dHJpYnV0aW9uLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI3OCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSA8V2ViQ29yZS9BZENsaWNrQXR0cmli
dXRpb24uaD4KLSNpbmNsdWRlIDx3dGYvVVJMLmg+Ci0jaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+
Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7
Ci0KLWNvbnN0ZXhwciB1aW50MzJfdCBtaW42Qml0VmFsdWUgeyAwIH07Ci0KLWNvbnN0IFVSTCB3
ZWJLaXRVUkwgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmciX3MgfTsKLWNvbnN0IFVSTCBleGFt
cGxlVVJMIHsgeyB9LCAiaHR0cHM6Ly9leGFtcGxlLmNvbSJfcyB9OwotY29uc3QgVVJMIGVtcHR5
VVJMIHsgfTsKLQotLy8gUG9zaXRpdmUgdGVzdCBjYXNlcy4KLQotVEVTVChBZENsaWNrQXR0cmli
dXRpb24sIFZhbGlkTWluVmFsdWVzKQotewotICAgIEFkQ2xpY2tBdHRyaWJ1dGlvbiBhdHRyaWJ1
dGlvbiB7IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q2FtcGFpZ24obWluNkJpdFZhbHVlKSwgQWRDbGlj
a0F0dHJpYnV0aW9uOjpTb3VyY2UgeyB3ZWJLaXRVUkwgfSwgQWRDbGlja0F0dHJpYnV0aW9uOjpE
ZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OwotICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRH
ZXRFYXJsaWVzdFRpbWVUb1NlbmQoQWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uKG1pbjZC
aXRWYWx1ZSwgQWRDbGlja0F0dHJpYnV0aW9uOjpQcmlvcml0eShtaW42Qml0VmFsdWUpKSk7Ci0K
LSAgICBhdXRvIGF0dHJpYnV0aW9uVVJMID0gYXR0cmlidXRpb24ucmVwb3J0VVJMKCk7Ci0gICAg
Ci0gICAgQVNTRVJUX0VRKGF0dHJpYnV0aW9uVVJMLnN0cmluZygpLCAiaHR0cHM6Ly93ZWJraXQu
b3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLyIpOwotCi0gICAgQVNTRVJUX0VR
KGF0dHJpYnV0aW9uLmpzb24oKS0+dG9KU09OU3RyaW5nKCksICJ7XCJjb250ZW50LXR5cGVcIjpc
ImNsaWNrXCIsXCJjb250ZW50LXNpdGVcIjpcIndlYmtpdC5vcmdcIixcImNvbnRlbnQtaWRcIjow
LFwiY29udmVyc2lvbi1zaXRlXCI6XCJleGFtcGxlLmNvbVwiLFwiY29udmVyc2lvbi1kYXRhXCI6
MCxcInJlcG9ydC12ZXJzaW9uXCI6MX0iKTsKLX0KLQotVEVTVChBZENsaWNrQXR0cmlidXRpb24s
IFZhbGlkTWlkVmFsdWVzKQotewotICAgIEFkQ2xpY2tBdHRyaWJ1dGlvbiBhdHRyaWJ1dGlvbiB7
IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q2FtcGFpZ24oKHVpbnQzMl90KTEyKSwgQWRDbGlja0F0dHJp
YnV0aW9uOjpTb3VyY2UgeyB3ZWJLaXRVUkwgfSwgQWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5h
dGlvbiB7IGV4YW1wbGVVUkwgfSB9OwotICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJs
aWVzdFRpbWVUb1NlbmQoQWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uKCh1aW50MzJfdCk0
NCwgQWRDbGlja0F0dHJpYnV0aW9uOjpQcmlvcml0eSgodWludDMyX3QpMjIpKSk7Ci0KLSAgICBh
dXRvIGF0dHJpYnV0aW9uVVJMID0gYXR0cmlidXRpb24ucmVwb3J0VVJMKCk7Ci0gICAgCi0gICAg
QVNTRVJUX0VRKGF0dHJpYnV0aW9uVVJMLnN0cmluZygpLCAiaHR0cHM6Ly93ZWJraXQub3JnLy53
ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLyIpOwotCi0gICAgQVNTRVJUX0VRKGF0dHJp
YnV0aW9uLmpzb24oKS0+dG9KU09OU3RyaW5nKCksICJ7XCJjb250ZW50LXR5cGVcIjpcImNsaWNr
XCIsXCJjb250ZW50LXNpdGVcIjpcIndlYmtpdC5vcmdcIixcImNvbnRlbnQtaWRcIjoxMixcImNv
bnZlcnNpb24tc2l0ZVwiOlwiZXhhbXBsZS5jb21cIixcImNvbnZlcnNpb24tZGF0YVwiOjQ0LFwi
cmVwb3J0LXZlcnNpb25cIjoxfSIpOwotfQotCi1URVNUKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgVmFs
aWRNYXhWYWx1ZXMpCi17Ci0gICAgQWRDbGlja0F0dHJpYnV0aW9uIGF0dHJpYnV0aW9uIHsgQWRD
bGlja0F0dHJpYnV0aW9uOjpDYW1wYWlnbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHkp
LCBBZENsaWNrQXR0cmlidXRpb246OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBBZENsaWNrQXR0cmli
dXRpb246OkRlc3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07Ci0gICAgYXR0cmlidXRpb24uY29u
dmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChBZENsaWNrQXR0cmlidXRpb246OkNvbnZlcnNp
b24oQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5LCBBZENsaWNrQXR0cmlidXRpb246OlBy
aW9yaXR5KEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSkpKTsKLQotICAgIGF1dG8gYXR0
cmlidXRpb25VUkwgPSBhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKTsKLSAgICAKLSAgICBBU1NFUlRf
RVEoYXR0cmlidXRpb25VUkwuc3RyaW5nKCksICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25v
d24vYWQtY2xpY2stYXR0cmlidXRpb24vIik7Ci0KLSAgICBBU1NFUlRfRVEoYXR0cmlidXRpb24u
anNvbigpLT50b0pTT05TdHJpbmcoKSwgIntcImNvbnRlbnQtdHlwZVwiOlwiY2xpY2tcIixcImNv
bnRlbnQtc2l0ZVwiOlwid2Via2l0Lm9yZ1wiLFwiY29udGVudC1pZFwiOjYzLFwiY29udmVyc2lv
bi1zaXRlXCI6XCJleGFtcGxlLmNvbVwiLFwiY29udmVyc2lvbi1kYXRhXCI6NjMsXCJyZXBvcnQt
dmVyc2lvblwiOjF9Iik7Ci19Ci0KLVRFU1QoQWRDbGlja0F0dHJpYnV0aW9uLCBFYXJsaWVzdFRp
bWVUb1NlbmRBdHRyaWJ1dGlvbk1pbmltdW1EZWxheSkKLXsKLSAgICBBZENsaWNrQXR0cmlidXRp
b24gYXR0cmlidXRpb24geyBBZENsaWNrQXR0cmlidXRpb246OkNhbXBhaWduKEFkQ2xpY2tBdHRy
aWJ1dGlvbjo6TWF4RW50cm9weSksIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlIHsgd2ViS2l0
VVJMIH0sIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsK
LSAgICBhdXRvIG5vdyA9IFdhbGxUaW1lOjpub3coKTsKLSAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0
QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lvbihB
ZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHksIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6UHJpb3Jp
dHkoQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5KSkpOwotICAgIGF1dG8gZWFybGllc3RU
aW1lVG9TZW5kID0gYXR0cmlidXRpb24uZWFybGllc3RUaW1lVG9TZW5kKCk7Ci0gICAgQVNTRVJU
X1RSVUUoZWFybGllc3RUaW1lVG9TZW5kKTsKLSAgICBBU1NFUlRfVFJVRShlYXJsaWVzdFRpbWVU
b1NlbmQudmFsdWUoKS5zZWNvbmRzU2luY2VFcG9jaCgpIC0gMjRfaCA+PSBub3cuc2Vjb25kc1Np
bmNlRXBvY2goKSk7Ci19Ci0KLVRFU1QoQWRDbGlja0F0dHJpYnV0aW9uLCBWYWxpZENvbnZlcnNp
b25VUkxzKQotewotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5IHsg
eyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9u
LzIyIl9zIH07Ci0gICAgYXV0byBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRp
b246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhvdXRQcmlvcml0eSk7
Ci0gICAgQVNTRVJUX1RSVUUob3B0aW9uYWxDb252ZXJzaW9uKTsKLSAgICBBU1NFUlRfRVEob3B0
aW9uYWxDb252ZXJzaW9uLT5kYXRhLCAodWludDMyX3QpMjIpOwotCi0gICAgY29uc3QgVVJMIGNv
bnZlcnNpb25VUkxXaXRob3V0UHJpb3JpdHlNYXhFbnRyb3B5IHsgeyB9LCAiaHR0cHM6Ly93ZWJr
aXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzYzIl9zIH07Ci0gICAgb3B0
aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1
ZXN0KGNvbnZlcnNpb25VUkxXaXRob3V0UHJpb3JpdHlNYXhFbnRyb3B5KTsKLSAgICBBU1NFUlRf
VFJVRShvcHRpb25hbENvbnZlcnNpb24pOwotICAgIEFTU0VSVF9FUShvcHRpb25hbENvbnZlcnNp
b24tPmRhdGEsICh1aW50MzJfdCk2Myk7Ci0gICAgCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25V
UkxXaXRob3V0UHJpb3JpdHlBbmRMZWFkaW5nWmVybyB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9y
Zy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8wMiJfcyB9OwotICAgIG9wdGlvbmFs
Q29udmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChj
b252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5QW5kTGVhZGluZ1plcm8pOwotICAgIEFTU0VSVF9U
UlVFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci0gICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lv
bi0+ZGF0YSwgKHVpbnQzMl90KTIpOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRo
UHJpb3JpdHkgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2st
YXR0cmlidXRpb24vMjIvMTIiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNr
QXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhQcmlv
cml0eSk7Ci0gICAgQVNTRVJUX1RSVUUob3B0aW9uYWxDb252ZXJzaW9uKTsKLSAgICBBU1NFUlRf
RVEob3B0aW9uYWxDb252ZXJzaW9uLT5kYXRhLCAodWludDMyX3QpMjIpOwotICAgIEFTU0VSVF9F
UShvcHRpb25hbENvbnZlcnNpb24tPnByaW9yaXR5LCAodWludDMyX3QpMTIpOwotCi0gICAgY29u
c3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHlNYXhFbnRyb3B5IHsgeyB9LCAiaHR0cHM6
Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzYzLzYzIl9zIH07
Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZl
cnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHlNYXhFbnRyb3B5KTsKLSAgICBB
U1NFUlRfVFJVRShvcHRpb25hbENvbnZlcnNpb24pOwotICAgIEFTU0VSVF9FUShvcHRpb25hbENv
bnZlcnNpb24tPmRhdGEsICh1aW50MzJfdCk2Myk7Ci0gICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29u
dmVyc2lvbi0+cHJpb3JpdHksICh1aW50MzJfdCk2Myk7Ci0gICAgCi0gICAgY29uc3QgVVJMIGNv
bnZlcnNpb25VUkxXaXRoUHJpb3JpdHlBbmRMZWFkaW5nWmVybyB7IHsgfSwgImh0dHBzOi8vd2Vi
a2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yMi8wMiJfcyB9OwotICAg
IG9wdGlvbmFsQ29udmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9u
UmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5QW5kTGVhZGluZ1plcm8pOwotICAgIEFT
U0VSVF9UUlVFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci0gICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29u
dmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90KTIyKTsKLSAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252
ZXJzaW9uLT5wcmlvcml0eSwgKHVpbnQzMl90KTIpOwotfQotCi0vLyBOZWdhdGl2ZSB0ZXN0IGNh
c2VzLgotCi1URVNUKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgSW52YWxpZENhbXBhaWduSWQpCi17Ci0g
ICAgQWRDbGlja0F0dHJpYnV0aW9uIGF0dHJpYnV0aW9uIHsgQWRDbGlja0F0dHJpYnV0aW9uOjpD
YW1wYWlnbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHkgKyAxKSwgQWRDbGlja0F0dHJp
YnV0aW9uOjpTb3VyY2UgeyB3ZWJLaXRVUkwgfSwgQWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5h
dGlvbiB7IGV4YW1wbGVVUkwgfSB9OwotICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJs
aWVzdFRpbWVUb1NlbmQoQWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uKEFkQ2xpY2tBdHRy
aWJ1dGlvbjo6TWF4RW50cm9weSwgQWRDbGlja0F0dHJpYnV0aW9uOjpQcmlvcml0eShBZENsaWNr
QXR0cmlidXRpb246Ok1heEVudHJvcHkpKSk7Ci0KLSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlv
bi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkpOwotfQotCi1URVNUKEFkQ2xpY2tBdHRyaWJ1dGlvbiwg
SW52YWxpZFNvdXJjZUhvc3QpCi17Ci0gICAgQWRDbGlja0F0dHJpYnV0aW9uIGF0dHJpYnV0aW9u
IHsgQWRDbGlja0F0dHJpYnV0aW9uOjpDYW1wYWlnbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVu
dHJvcHkpLCBBZENsaWNrQXR0cmlidXRpb246OlNvdXJjZSB7IGVtcHR5VVJMIH0sIEFkQ2xpY2tB
dHRyaWJ1dGlvbjo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKLSAgICBhdHRyaWJ1dGlv
bi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29u
dmVyc2lvbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHksIEFkQ2xpY2tBdHRyaWJ1dGlv
bjo6UHJpb3JpdHkoQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5KSkpOwotCi0gICAgQVNT
RVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKLX0KLQotVEVTVChB
ZENsaWNrQXR0cmlidXRpb24sIEludmFsaWREZXN0aW5hdGlvbkhvc3QpCi17Ci0gICAgQWRDbGlj
a0F0dHJpYnV0aW9uIGF0dHJpYnV0aW9uIHsgQWRDbGlja0F0dHJpYnV0aW9uOjpDYW1wYWlnbihB
ZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHkgKyAxKSwgQWRDbGlja0F0dHJpYnV0aW9uOjpT
b3VyY2UgeyB3ZWJLaXRVUkwgfSwgQWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbiB7IGVt
cHR5VVJMIH0gfTsKLSAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9T
ZW5kKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lvbihBZENsaWNrQXR0cmlidXRpb246Ok1h
eEVudHJvcHksIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6UHJpb3JpdHkoQWRDbGlja0F0dHJpYnV0aW9u
OjpNYXhFbnRyb3B5KSkpOwotCi0gICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJM
KCkuaXNFbXB0eSgpKTsKLX0KLQotVEVTVChBZENsaWNrQXR0cmlidXRpb24sIEludmFsaWRDb252
ZXJzaW9uRGF0YSkKLXsKLSAgICBBZENsaWNrQXR0cmlidXRpb24gYXR0cmlidXRpb24geyBBZENs
aWNrQXR0cmlidXRpb246OkNhbXBhaWduKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSks
IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlIHsgd2ViS2l0VVJMIH0sIEFkQ2xpY2tBdHRyaWJ1
dGlvbjo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKLSAgICBhdHRyaWJ1dGlvbi5jb252
ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lv
bigoQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5ICsgMSksIEFkQ2xpY2tBdHRyaWJ1dGlv
bjo6UHJpb3JpdHkoQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5KSkpOwotCi0gICAgQVNT
RVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKLX0KLQotVEVTVChB
ZENsaWNrQXR0cmlidXRpb24sIEludmFsaWRQcmlvcml0eSkKLXsKLSAgICBBZENsaWNrQXR0cmli
dXRpb24gYXR0cmlidXRpb24geyBBZENsaWNrQXR0cmlidXRpb246OkNhbXBhaWduKEFkQ2xpY2tB
dHRyaWJ1dGlvbjo6TWF4RW50cm9weSksIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlIHsgd2Vi
S2l0VVJMIH0sIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0g
fTsKLSAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKEFkQ2xp
Y2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lvbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHks
IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6UHJpb3JpdHkoQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRy
b3B5ICsgMSkpKTsKLQotICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlz
RW1wdHkoKSk7Ci19Ci0KLVRFU1QoQWRDbGlja0F0dHJpYnV0aW9uLCBJbnZhbGlkTWlzc2luZ0Nv
bnZlcnNpb24pCi17Ci0gICAgQWRDbGlja0F0dHJpYnV0aW9uIGF0dHJpYnV0aW9uIHsgQWRDbGlj
a0F0dHJpYnV0aW9uOjpDYW1wYWlnbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHkpLCBB
ZENsaWNrQXR0cmlidXRpb246OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBBZENsaWNrQXR0cmlidXRp
b246OkRlc3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07Ci0KLSAgICBBU1NFUlRfVFJVRShhdHRy
aWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkpOwotICAgIEFTU0VSVF9GQUxTRShhdHRyaWJ1
dGlvbi5lYXJsaWVzdFRpbWVUb1NlbmQoKSk7Ci19Ci0KLVRFU1QoQWRDbGlja0F0dHJpYnV0aW9u
LCBJbnZhbGlkQ29udmVyc2lvblVSTHMpCi17Ci0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxX
aXRoU2luZ2xlRGlnaXRDb252ZXJzaW9uRGF0YSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8u
d2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yIl9zIH07Ci0gICAgYXV0byBvcHRpb25h
bENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3Qo
Y29udmVyc2lvblVSTFdpdGhTaW5nbGVEaWdpdENvbnZlcnNpb25EYXRhKTsKLSAgICBBU1NFUlRf
RkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKLSAgICAKLSAgICBjb25zdCBVUkwgY29udmVyc2lv
blVSTFdpdGhOb25OdW1lcmFsQ29udmVyc2lvbkRhdGEgeyB7IH0sICJodHRwczovL3dlYmtpdC5v
cmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vMnMiX3MgfTsKLSAgICBvcHRpb25h
bENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3Qo
Y29udmVyc2lvblVSTFdpdGhOb25OdW1lcmFsQ29udmVyc2lvbkRhdGEpOwotICAgIEFTU0VSVF9G
QUxTRShvcHRpb25hbENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxX
aXRoTmVnYXRpdmVDb252ZXJzaW9uRGF0YSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2Vs
bC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8tMiJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVy
c2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJz
aW9uVVJMV2l0aE5lZ2F0aXZlQ29udmVyc2lvbkRhdGEpOwotICAgIEFTU0VSVF9GQUxTRShvcHRp
b25hbENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoVG9vTGFy
Z2VDb252ZXJzaW9uRGF0YSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9h
ZC1jbGljay1hdHRyaWJ1dGlvbi82NCJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IEFk
Q2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0
aFRvb0xhcmdlQ29udmVyc2lvbkRhdGEpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZl
cnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoU2luZ2xlRGlnaXRQcmlv
cml0eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRy
aWJ1dGlvbi8yMi8yIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJp
YnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoU2luZ2xlRGln
aXRQcmlvcml0eSk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci0gICAg
Ci0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoTm9uTnVtZXJhbFByaW9yaXR5IHsgeyB9
LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzIy
LzJzIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpw
YXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoTm9uTnVtZXJhbFByaW9yaXR5
KTsKLSAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKLSAgICAKLSAgICBjb25z
dCBVUkwgY29udmVyc2lvblVSTFdpdGhOZWdhdGl2ZVByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93
ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzIyLy0yIl9zIH07Ci0g
ICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNp
b25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoTmVnYXRpdmVQcmlvcml0eSk7Ci0gICAgQVNTRVJU
X0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci0gICAgCi0gICAgY29uc3QgVVJMIGNvbnZlcnNp
b25VUkxXaXRoVG9vTGFyZ2VQcmlvcml0eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2Vs
bC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yMi82NCJfcyB9OwotICAgIG9wdGlvbmFsQ29u
dmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252
ZXJzaW9uVVJMV2l0aFRvb0xhcmdlUHJpb3JpdHkpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25h
bENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VD
b252ZXJzaW9uRGF0YUFuZFByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxs
LWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzY0LzIyIl9zIH07Ci0gICAgb3B0aW9uYWxDb252
ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZl
cnNpb25VUkxXaXRoVG9vTGFyZ2VDb252ZXJzaW9uRGF0YUFuZFByaW9yaXR5KTsKLSAgICBBU1NF
UlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKLQotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9u
VVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRhdGFBbmRUb29MYXJnZVByaW9yaXR5IHsgeyB9LCAi
aHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzY0LzY0
Il9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJz
ZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VDb252ZXJzaW9uRGF0
YUFuZFRvb0xhcmdlUHJpb3JpdHkpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNp
b24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoRXh0cmFMZWFkaW5nU2xhc2gg
PSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1
dGlvbi8vMjIvMTIiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmli
dXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhFeHRyYUxlYWRp
bmdTbGFzaCk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci0KLSAgICBj
b25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhFeHRyYVRyYWlsaW5nU2xhc2ggPSB7IHsgfSwgImh0
dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yMi8xMi8i
X3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNl
Q29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhFeHRyYVRyYWlsaW5nU2xhc2gpOwot
ICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNv
bnZlcnNpb25VUkxXaXRoVHJhaWxpbmdRdWVzdGlvbk1hcmsgPSB7IHsgfSwgImh0dHBzOi8vd2Vi
a2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yMi8xMj8iX3MgfTsKLSAg
ICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lv
blJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhUcmFpbGluZ1F1ZXN0aW9uTWFyayk7Ci0gICAgQVNT
RVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci19Ci0KLVRFU1QoQWRDbGlja0F0dHJpYnV0
aW9uLCBJbnZhbGlkQ29udmVyc2lvbldpdGhEaXNhbGxvd2VkVVJMQ29tcG9uZW50cykKLXsKLSAg
ICAvLyBQcm90b2NvbC4KLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhIdHRwUHJvdG9j
b2wgeyB7IH0sICJodHRwOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1
dGlvbi8yIl9zIH07Ci0gICAgYXV0byBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmli
dXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhIdHRwUHJvdG9j
b2wpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwotCi0gICAgY29uc3Qg
VVJMIGNvbnZlcnNpb25VUkxXaXRoV3NzUHJvdG9jb2wgeyB7IH0sICJ3c3M6Ly93ZWJraXQub3Jn
Ly53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzIiX3MgfTsKLSAgICBvcHRpb25hbENv
bnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29u
dmVyc2lvblVSTFdpdGhXc3NQcm90b2NvbCk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29u
dmVyc2lvbik7Ci0KLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhGaWxlUHJvdG9jb2wg
eyB7IH0sICJmaWxlOi8vLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzIiX3MgfTsK
LSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVy
c2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhGaWxlUHJvdG9jb2wpOwotICAgIEFTU0VSVF9G
QUxTRShvcHRpb25hbENvbnZlcnNpb24pOwotCi0gICAgLy8gVXNlcm5hbWUgYW5kIHBhc3N3b3Jk
LgotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFVzZXJOYW1lIHsgeyB9LCAiaHR0cHM6
Ly91c2VyQHdlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vMiJfcyB9
OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252
ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFVzZXJOYW1lKTsKLSAgICBBU1NFUlRfRkFM
U0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKLQotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0
aFBhc3N3b3JkID0geyB7IH0sICJodHRwczovLzpwd2RAd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9h
ZC1jbGljay1hdHRyaWJ1dGlvbi8yMi8xMj8iX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24g
PSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVS
TFdpdGhQYXNzd29yZCk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci0K
LSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhVc2VybmFtZUFuZFBhc3N3b3JkID0geyB7
IH0sICJodHRwczovL3VzZXI6cHdkQHdlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0
cmlidXRpb24vMjIvMTI/Il9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0
dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVXNlcm5h
bWVBbmRQYXNzd29yZCk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci0K
LSAgICAvLyBRdWVyeSBzdHJpbmcuCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoVHJh
aWxpbmdRdWVzdGlvbk1hcmsgPSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93
bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yMi8xMj8iX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNp
b24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lv
blVSTFdpdGhUcmFpbGluZ1F1ZXN0aW9uTWFyayk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFs
Q29udmVyc2lvbik7Ci0KLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhRdWVyeVN0cmlu
ZyA9IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJp
YnV0aW9uLzIyLzEyP2V4dHJhPWRhdGEiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBB
ZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdp
dGhRdWVyeVN0cmluZyk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci0g
ICAgCi0gICAgLy8gRnJhZ21lbnQuCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoVHJh
aWxpbmdIYXNoID0geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xp
Y2stYXR0cmlidXRpb24vMjIvMTIjIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRD
bGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRo
VHJhaWxpbmdIYXNoKTsKLSAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKLQot
ICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aEZyYWdtZW50ID0geyB7IH0sICJodHRwczov
L3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vMjIvMTIjZnJhZ21l
bnQiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBh
cnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhGcmFnbWVudCk7Ci0gICAgQVNT
RVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiMzliMGRjZDY5
YzdkYmM5OWYxZmMyMGQwY2UzNjQ4ZTVkNjkwN2YKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCkBA
IC0wLDAgKzEsMjc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5j
bHVkZSA8V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgorI2luY2x1ZGUgPHd0Zi9V
UkwuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworY29uc3RleHByIHVpbnQzMl90IG1p
bjZCaXRWYWx1ZSB7IDAgfTsKKworY29uc3QgVVJMIHdlYktpdFVSTCB7IHsgfSwgImh0dHBzOi8v
d2Via2l0Lm9yZyJfcyB9OworY29uc3QgVVJMIGV4YW1wbGVVUkwgeyB7IH0sICJodHRwczovL2V4
YW1wbGUuY29tIl9zIH07Citjb25zdCBVUkwgZW1wdHlVUkwgeyB9OworCisvLyBQb3NpdGl2ZSB0
ZXN0IGNhc2VzLgorCitURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZE1pblZhbHVl
cykKK3sKKyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpDYW1wYWlnbihtaW42Qml0VmFsdWUpLCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpE
ZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OworICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRH
ZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24o
bWluNkJpdFZhbHVlLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkobWluNkJpdFZh
bHVlKSkpOworCisgICAgYXV0byBhdHRyaWJ1dGlvblVSTCA9IGF0dHJpYnV0aW9uLnJlcG9ydFVS
TCgpOworICAgIAorICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvblVSTC5zdHJpbmcoKSwgImh0dHBz
Oi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LyIpOwor
CisgICAgQVNTRVJUX0VRKGF0dHJpYnV0aW9uLmpzb24oKS0+dG9KU09OU3RyaW5nKCksICJ7XCJj
b250ZW50LXR5cGVcIjpcImNsaWNrXCIsXCJjb250ZW50LXNpdGVcIjpcIndlYmtpdC5vcmdcIixc
ImNvbnRlbnQtaWRcIjowLFwiY29udmVyc2lvbi1zaXRlXCI6XCJleGFtcGxlLmNvbVwiLFwiY29u
dmVyc2lvbi1kYXRhXCI6MCxcInJlcG9ydC12ZXJzaW9uXCI6MX0iKTsKK30KKworVEVTVChQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRNaWRWYWx1ZXMpCit7CisgICAgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFp
Z24oKHVpbnQzMl90KTEyKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSB7IHdlYktp
dFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24geyBleGFtcGxlVVJM
IH0gfTsKKyAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uKCh1aW50MzJfdCk0NCwgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KCh1aW50MzJfdCkyMikpKTsKKworICAgIGF1dG8gYXR0
cmlidXRpb25VUkwgPSBhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKTsKKyAgICAKKyAgICBBU1NFUlRf
RVEoYXR0cmlidXRpb25VUkwuc3RyaW5nKCksICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25v
d24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8iKTsKKworICAgIEFTU0VSVF9FUShhdHRyaWJ1
dGlvbi5qc29uKCktPnRvSlNPTlN0cmluZygpLCAie1wiY29udGVudC10eXBlXCI6XCJjbGlja1wi
LFwiY29udGVudC1zaXRlXCI6XCJ3ZWJraXQub3JnXCIsXCJjb250ZW50LWlkXCI6MTIsXCJjb252
ZXJzaW9uLXNpdGVcIjpcImV4YW1wbGUuY29tXCIsXCJjb252ZXJzaW9uLWRhdGFcIjo0NCxcInJl
cG9ydC12ZXJzaW9uXCI6MX0iKTsKK30KKworVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwg
VmFsaWRNYXhWYWx1ZXMpCit7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRp
b24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFpZ24oUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlIHsgd2Vi
S2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVV
UkwgfSB9OworICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQo
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSkpKTsKKworICAgIGF1dG8gYXR0cmlidXRpb25V
UkwgPSBhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKTsKKyAgICAKKyAgICBBU1NFUlRfRVEoYXR0cmli
dXRpb25VUkwuc3RyaW5nKCksICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0
ZS1jbGljay1tZWFzdXJlbWVudC8iKTsKKworICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvbi5qc29u
KCktPnRvSlNPTlN0cmluZygpLCAie1wiY29udGVudC10eXBlXCI6XCJjbGlja1wiLFwiY29udGVu
dC1zaXRlXCI6XCJ3ZWJraXQub3JnXCIsXCJjb250ZW50LWlkXCI6NjMsXCJjb252ZXJzaW9uLXNp
dGVcIjpcImV4YW1wbGUuY29tXCIsXCJjb252ZXJzaW9uLWRhdGFcIjo2MyxcInJlcG9ydC12ZXJz
aW9uXCI6MX0iKTsKK30KKworVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgRWFybGllc3RU
aW1lVG9TZW5kQXR0cmlidXRpb25NaW5pbXVtRGVsYXkpCit7CisgICAgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFpZ24o
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0
aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OworICAgIGF1dG8gbm93ID0gV2FsbFRpbWU6Om5vdygp
OworICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1h
eEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6TWF4RW50cm9weSkpKTsKKyAgICBhdXRvIGVhcmxpZXN0VGltZVRvU2VuZCA9
IGF0dHJpYnV0aW9uLmVhcmxpZXN0VGltZVRvU2VuZCgpOworICAgIEFTU0VSVF9UUlVFKGVhcmxp
ZXN0VGltZVRvU2VuZCk7CisgICAgQVNTRVJUX1RSVUUoZWFybGllc3RUaW1lVG9TZW5kLnZhbHVl
KCkuc2Vjb25kc1NpbmNlRXBvY2goKSAtIDI0X2ggPj0gbm93LnNlY29uZHNTaW5jZUVwb2NoKCkp
OworfQorCitURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZENvbnZlcnNpb25VUkxz
KQoreworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5IHsgeyB9LCAi
aHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQv
MjIiX3MgfTsKKyAgICBhdXRvIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRob3V0UHJpb3Jp
dHkpOworICAgIEFTU0VSVF9UUlVFKG9wdGlvbmFsQ29udmVyc2lvbik7CisgICAgQVNTRVJUX0VR
KG9wdGlvbmFsQ29udmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90KTIyKTsKKworICAgIGNvbnN0IFVS
TCBjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5TWF4RW50cm9weSB7IHsgfSwgImh0dHBzOi8v
d2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzYzIl9zIH07
CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNl
Q29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhvdXRQcmlvcml0eU1heEVudHJvcHkp
OworICAgIEFTU0VSVF9UUlVFKG9wdGlvbmFsQ29udmVyc2lvbik7CisgICAgQVNTRVJUX0VRKG9w
dGlvbmFsQ29udmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90KTYzKTsKKyAgICAKKyAgICBjb25zdCBV
UkwgY29udmVyc2lvblVSTFdpdGhvdXRQcmlvcml0eUFuZExlYWRpbmdaZXJvIHsgeyB9LCAiaHR0
cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMDIi
X3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5QW5kTGVh
ZGluZ1plcm8pOworICAgIEFTU0VSVF9UUlVFKG9wdGlvbmFsQ29udmVyc2lvbik7CisgICAgQVNT
RVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90KTIpOworCisgICAgY29u
c3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHkgeyB7IH0sICJodHRwczovL3dlYmtpdC5v
cmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8xMiJfcyB9OworICAg
IG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZl
cnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHkpOworICAgIEFTU0VSVF9UUlVF
KG9wdGlvbmFsQ29udmVyc2lvbik7CisgICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+
ZGF0YSwgKHVpbnQzMl90KTIyKTsKKyAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5w
cmlvcml0eSwgKHVpbnQzMl90KTEyKTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0
aFByaW9yaXR5TWF4RW50cm9weSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93
bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzYzLzYzIl9zIH07CisgICAgb3B0aW9uYWxDb252
ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3Qo
Y29udmVyc2lvblVSTFdpdGhQcmlvcml0eU1heEVudHJvcHkpOworICAgIEFTU0VSVF9UUlVFKG9w
dGlvbmFsQ29udmVyc2lvbik7CisgICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+ZGF0
YSwgKHVpbnQzMl90KTYzKTsKKyAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5wcmlv
cml0eSwgKHVpbnQzMl90KTYzKTsKKyAgICAKKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdp
dGhQcmlvcml0eUFuZExlYWRpbmdaZXJvIHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxs
LWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMjIvMDIiX3MgfTsKKyAgICBvcHRpb25h
bENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVx
dWVzdChjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5QW5kTGVhZGluZ1plcm8pOworICAgIEFTU0VS
VF9UUlVFKG9wdGlvbmFsQ29udmVyc2lvbik7CisgICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29udmVy
c2lvbi0+ZGF0YSwgKHVpbnQzMl90KTIyKTsKKyAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJz
aW9uLT5wcmlvcml0eSwgKHVpbnQzMl90KTIpOworfQorCisvLyBOZWdhdGl2ZSB0ZXN0IGNhc2Vz
LgorCitURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkQ2FtcGFpZ25JZCkKK3sK
KyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpDYW1wYWlnbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSAr
IDEpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OworICAgIGF0
dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkNvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHks
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6TWF4RW50cm9weSkpKTsKKworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVS
TCgpLmlzRW1wdHkoKSk7Cit9CisKK1RFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFs
aWRTb3VyY2VIb3N0KQoreworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9u
IHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNhbXBhaWduKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpNYXhFbnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSB7IGVtcHR5
VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwg
fSB9OworICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSkpKTsKKworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0
aW9uLnJlcG9ydFVSTCgpLmlzRW1wdHkoKSk7Cit9CisKK1RFU1QoUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQsIEludmFsaWREZXN0aW5hdGlvbkhvc3QpCit7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFpZ24oUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkgKyAxKSwgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVz
dGluYXRpb24geyBlbXB0eVVSTCB9IH07CisgICAgYXR0cmlidXRpb24uY29udmVydEFuZEdldEVh
cmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbihQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSkpOworCisgICAg
QVNTRVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKK30KKworVEVT
VChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZENvbnZlcnNpb25EYXRhKQoreworICAg
IFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkNhbXBhaWduKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSwgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKKyAgICBhdHRyaWJ1dGlv
bi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpDb252ZXJzaW9uKChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSArIDEpLCBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
Ok1heEVudHJvcHkpKSk7CisKKyAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwo
KS5pc0VtcHR5KCkpOworfQorCitURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlk
UHJpb3JpdHkpCit7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFpZ24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJM
IH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9
OworICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1h
eEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6TWF4RW50cm9weSArIDEpKSk7CisKKyAgICBBU1NFUlRfVFJVRShhdHRyaWJ1
dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkpOworfQorCitURVNUKFByaXZhdGVDbGlja01lYXN1
cmVtZW50LCBJbnZhbGlkTWlzc2luZ0NvbnZlcnNpb24pCit7CisgICAgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFpZ24o
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0
aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OworCisgICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24u
cmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlRfRkFMU0UoYXR0cmlidXRpb24uZWFy
bGllc3RUaW1lVG9TZW5kKCkpOworfQorCitURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJ
bnZhbGlkQ29udmVyc2lvblVSTHMpCit7CisgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRo
U2luZ2xlRGlnaXRDb252ZXJzaW9uRGF0YSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2Vs
bC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIiX3MgfTsKKyAgICBhdXRvIG9wdGlv
bmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25S
ZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoU2luZ2xlRGlnaXRDb252ZXJzaW9uRGF0YSk7CisgICAg
QVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CisgICAgCisgICAgY29uc3QgVVJMIGNv
bnZlcnNpb25VUkxXaXRoTm9uTnVtZXJhbENvbnZlcnNpb25EYXRhIHsgeyB9LCAiaHR0cHM6Ly93
ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMnMiX3MgfTsK
KyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VD
b252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aE5vbk51bWVyYWxDb252ZXJzaW9uRGF0
YSk7CisgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CisKKyAgICBjb25zdCBV
UkwgY29udmVyc2lvblVSTFdpdGhOZWdhdGl2ZUNvbnZlcnNpb25EYXRhIHsgeyB9LCAiaHR0cHM6
Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvLTIiX3Mg
fTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFy
c2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aE5lZ2F0aXZlQ29udmVyc2lvbkRh
dGEpOworICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworCisgICAgY29uc3Qg
VVJMIGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VDb252ZXJzaW9uRGF0YSB7IHsgfSwgImh0dHBz
Oi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzY0Il9z
IH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBh
cnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhUb29MYXJnZUNvbnZlcnNpb25E
YXRhKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKworICAgIGNvbnN0
IFVSTCBjb252ZXJzaW9uVVJMV2l0aFNpbmdsZURpZ2l0UHJpb3JpdHkgeyB7IH0sICJodHRwczov
L3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8yIl9z
IH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBh
cnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhTaW5nbGVEaWdpdFByaW9yaXR5
KTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKyAgICAKKyAgICBjb25z
dCBVUkwgY29udmVyc2lvblVSTFdpdGhOb25OdW1lcmFsUHJpb3JpdHkgeyB7IH0sICJodHRwczov
L3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8ycyJf
cyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpw
YXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoTm9uTnVtZXJhbFByaW9yaXR5
KTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKyAgICAKKyAgICBjb25z
dCBVUkwgY29udmVyc2lvblVSTFdpdGhOZWdhdGl2ZVByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93
ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMjIvLTIiX3Mg
fTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFy
c2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aE5lZ2F0aXZlUHJpb3JpdHkpOwor
ICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworICAgIAorICAgIGNvbnN0IFVS
TCBjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlUHJpb3JpdHkgeyB7IH0sICJodHRwczovL3dlYmtp
dC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi82NCJfcyB9Owor
ICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNv
bnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VQcmlvcml0eSk7CisgICAg
QVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CisKKyAgICBjb25zdCBVUkwgY29udmVy
c2lvblVSTFdpdGhUb29MYXJnZUNvbnZlcnNpb25EYXRhQW5kUHJpb3JpdHkgeyB7IH0sICJodHRw
czovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC82NC8y
MiJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VDb252ZXJz
aW9uRGF0YUFuZFByaW9yaXR5KTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9u
KTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRh
dGFBbmRUb29MYXJnZVByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtu
b3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvNjQvNjQiX3MgfTsKKyAgICBvcHRpb25hbENv
bnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVz
dChjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRhdGFBbmRUb29MYXJnZVByaW9y
aXR5KTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKworICAgIGNvbnN0
IFVSTCBjb252ZXJzaW9uVVJMV2l0aEV4dHJhTGVhZGluZ1NsYXNoID0geyB7IH0sICJodHRwczov
L3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8vMjIvMTIi
X3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aEV4dHJhTGVhZGluZ1NsYXNo
KTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKworICAgIGNvbnN0IFVS
TCBjb252ZXJzaW9uVVJMV2l0aEV4dHJhVHJhaWxpbmdTbGFzaCA9IHsgeyB9LCAiaHR0cHM6Ly93
ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMjIvMTIvIl9z
IH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBh
cnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhFeHRyYVRyYWlsaW5nU2xhc2gp
OworICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworCisgICAgY29uc3QgVVJM
IGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdRdWVzdGlvbk1hcmsgPSB7IHsgfSwgImh0dHBzOi8v
d2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIyLzEyPyJf
cyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpw
YXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdRdWVzdGlvbk1h
cmspOworICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworfQorCitURVNUKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkQ29udmVyc2lvbldpdGhEaXNhbGxvd2VkVVJM
Q29tcG9uZW50cykKK3sKKyAgICAvLyBQcm90b2NvbC4KKyAgICBjb25zdCBVUkwgY29udmVyc2lv
blVSTFdpdGhIdHRwUHJvdG9jb2wgeyB7IH0sICJodHRwOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93
bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIiX3MgfTsKKyAgICBhdXRvIG9wdGlvbmFsQ29u
dmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0
KGNvbnZlcnNpb25VUkxXaXRoSHR0cFByb3RvY29sKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9u
YWxDb252ZXJzaW9uKTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFdzc1Byb3Rv
Y29sIHsgeyB9LCAid3NzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1l
YXN1cmVtZW50LzIiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFdzc1By
b3RvY29sKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKworICAgIGNv
bnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aEZpbGVQcm90b2NvbCB7IHsgfSwgImZpbGU6Ly8vLndl
bGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yIl9zIH07CisgICAgb3B0aW9uYWxD
b252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVl
c3QoY29udmVyc2lvblVSTFdpdGhGaWxlUHJvdG9jb2wpOworICAgIEFTU0VSVF9GQUxTRShvcHRp
b25hbENvbnZlcnNpb24pOworCisgICAgLy8gVXNlcm5hbWUgYW5kIHBhc3N3b3JkLgorICAgIGNv
bnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFVzZXJOYW1lIHsgeyB9LCAiaHR0cHM6Ly91c2VyQHdl
YmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yIl9zIH07Cisg
ICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29u
dmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhVc2VyTmFtZSk7CisgICAgQVNTRVJUX0ZB
TFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CisKKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdp
dGhQYXNzd29yZCA9IHsgeyB9LCAiaHR0cHM6Ly86cHdkQHdlYmtpdC5vcmcvLndlbGwta25vd24v
cHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8xMj8iX3MgfTsKKyAgICBvcHRpb25hbENvbnZl
cnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChj
b252ZXJzaW9uVVJMV2l0aFBhc3N3b3JkKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252
ZXJzaW9uKTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFVzZXJuYW1lQW5kUGFz
c3dvcmQgPSB7IHsgfSwgImh0dHBzOi8vdXNlcjpwd2RAd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9w
cml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIyLzEyPyJfcyB9OworICAgIG9wdGlvbmFsQ29udmVy
c2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNv
bnZlcnNpb25VUkxXaXRoVXNlcm5hbWVBbmRQYXNzd29yZCk7CisgICAgQVNTRVJUX0ZBTFNFKG9w
dGlvbmFsQ29udmVyc2lvbik7CisKKyAgICAvLyBRdWVyeSBzdHJpbmcuCisgICAgY29uc3QgVVJM
IGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdRdWVzdGlvbk1hcmsgPSB7IHsgfSwgImh0dHBzOi8v
d2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIyLzEyPyJf
cyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpw
YXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdRdWVzdGlvbk1h
cmspOworICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworCisgICAgY29uc3Qg
VVJMIGNvbnZlcnNpb25VUkxXaXRoUXVlcnlTdHJpbmcgPSB7IHsgfSwgImh0dHBzOi8vd2Via2l0
Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIyLzEyP2V4dHJhPWRh
dGEiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFF1ZXJ5U3RyaW5nKTsK
KyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKyAgICAKKyAgICAvLyBGcmFn
bWVudC4KKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhUcmFpbGluZ0hhc2ggPSB7IHsg
fSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVt
ZW50LzIyLzEyIyJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVHJhaWxp
bmdIYXNoKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKworICAgIGNv
bnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aEZyYWdtZW50ID0geyB7IH0sICJodHRwczovL3dlYmtp
dC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8xMiNmcmFnbWVu
dCJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoRnJhZ21lbnQpOworICAg
IEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworfQorCit9IC8vIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA1NTE2MmZmMzQzZDI1
ZjY5MDZjMzkyNzZmZDVhODkxZWRmMjliODY5Li5mZTg1MzlmMzUxOGZlNjU3MGQ3NDM1OGRhNzcw
MDRhZTA5YmY5Y2RkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTY2LDcgKzY2LDcg
QEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHVuZGVmaW5lZCBkdW1wRE9NQXNXZWJBcmNo
aXZlKCk7CiAgICAgdW5kZWZpbmVkIGR1bXBQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrcygpOwogICAg
IHVuZGVmaW5lZCBkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOwotICAgIHVuZGVmaW5lZCBk
dW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7CisgICAgdW5kZWZpbmVkIGR1bXBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCgpOwogCiAgICAgdW5kZWZpbmVkIGNsZWFyRE9NQ2FjaGVzKCk7CiAgICAgdW5k
ZWZpbmVkIGNsZWFyRE9NQ2FjaGUoRE9NU3RyaW5nIG9yaWdpbik7CkBAIC0zOTcsMTAgKzM5Nywx
MCBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdW5kZWZpbmVkIGNsZWFuVXBLZXljaGFp
bihET01TdHJpbmcgYXR0ckxhYmVsLCBvcHRpb25hbCBET01TdHJpbmcgYXBwbGljYXRpb25MYWJl
bEJhc2U2NCk7CiAgICAgYm9vbGVhbiBrZXlFeGlzdHNJbktleWNoYWluKERPTVN0cmluZyBhdHRy
TGFiZWwsIERPTVN0cmluZyBhcHBsaWNhdGlvbkxhYmVsQmFzZTY0KTsKIAotICAgIC8vIEFkIENs
aWNrIEF0dHJpYnV0aW9uCi0gICAgdW5kZWZpbmVkIGNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKCk7
Ci0gICAgdW5kZWZpbmVkIGNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRlRGF0
YVJlbW92YWwoKTsKLSAgICB1bmRlZmluZWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVU
aW1lckZvclRlc3RpbmcoYm9vbGVhbiB2YWx1ZSk7Ci0gICAgdW5kZWZpbmVkIHNldEFkQ2xpY2tB
dHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKERPTVN0cmluZyB1cmwpOwotICAgIHVu
ZGVmaW5lZCBtYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAg
ICAvLyBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50CisgICAgdW5kZWZpbmVkIGNsZWFyUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICB1bmRlZmluZWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCk7CisgICAgdW5kZWZpbmVkIHNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbGVhbiB2YWx1
ZSk7CisgICAgdW5kZWZpbmVkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVS
TEZvclRlc3RpbmcoRE9NU3RyaW5nIHVybCk7CisgICAgdW5kZWZpbmVkIG1hcmtQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CiB9OwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggZGZk
MDFhMzJmMzExZTEyNDRhYTc4NzliNDM3NTk3YWZhYzNlZmQ5ZS4uM2NiZTQ3YzhlOWFjM2U5NTE4
N2QwYzVmZjZjM2VmYjE1ZjNjMzFhZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xOTk1LDM1ICsxOTk1LDM1IEBA
IHZvaWQgVGVzdFJ1bm5lcjo6YWJvcnRNb2RhbCgpCiAgICAgcG9zdFN5bmNocm9ub3VzTWVzc2Fn
ZSgiQWJvcnRNb2RhbCIpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OmR1bXBBZENsaWNrQXR0cmli
dXRpb24oKQordm9pZCBUZXN0UnVubmVyOjpkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKQog
ewotICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJEdW1wQWRDbGlja0F0dHJpYnV0aW9u
Iik7CisgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIkR1bXBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCIpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OmNsZWFyQWRDbGlja0F0dHJpYnV0aW9u
KCkKK3ZvaWQgVGVzdFJ1bm5lcjo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpCiB7Ci0g
ICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIkNsZWFyQWRDbGlja0F0dHJpYnV0aW9uIik7
CisgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIkNsZWFyUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQiKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNU
aHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCkKK3ZvaWQgVGVzdFJ1bm5lcjo6Y2xlYXJQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCkKIHsKLSAgICBwb3N0
U3luY2hyb25vdXNNZXNzYWdlKCJDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJvdWdoV2Vic2l0
ZURhdGFSZW1vdmFsIik7CisgICAgcG9zdFN5bmNocm9ub3VzTWVzc2FnZSgiQ2xlYXJQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsIik7CiB9CiAKLXZvaWQg
VGVzdFJ1bm5lcjo6c2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3Rpbmco
Ym9vbCB2YWx1ZSkKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRP
dmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHVlKQogewotICAgIHBvc3RTeW5jaHJvbm91
c1BhZ2VNZXNzYWdlKCJTZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGlu
ZyIsIHZhbHVlKTsKKyAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiU2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyIsIHZhbHVlKTsKIH0KIAotdm9p
ZCBUZXN0UnVubmVyOjpzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGlu
ZyhKU1N0cmluZ1JlZiB1cmxTdHJpbmcpCit2b2lkIFRlc3RSdW5uZXI6OnNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoSlNTdHJpbmdSZWYgdXJsU3RyaW5n
KQogewotICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJTZXRBZENsaWNrQXR0cmlidXRp
b25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyIsCisgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3Nh
Z2UoIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmciLAog
ICAgICAgICBhZG9wdFdLKFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHRvV1RGU3RyaW5nKHVy
bFN0cmluZykudXRmOCgpLmRhdGEoKSkpKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjptYXJrQWRD
bGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoKQordm9pZCBUZXN0UnVubmVyOjpt
YXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpCiB7Ci0gICAg
cG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIk1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBp
cmVkRm9yVGVzdGluZyIpOworICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJNYXJrUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyIpOwogfQogCiBib29sIFRl
c3RSdW5uZXI6Omhhc0FwcEJvdW5kU2Vzc2lvbigpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDBiZDNhMDllMzJkNzFiMzUx
NmU0ZjhlMDViZWEyMmFmOTk0YjFkMjMuLjE0ZTUzYzUxM2EyOTJiMWEwMDNjZWZkMjM1MzdiNjA5
NDg4YTdhZGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5oCkBAIC01MDcsMTMgKzUwNywxMyBAQCBwdWJsaWM6CiAKICAgICB1bnNp
Z25lZCBsb25nIHNlcnZlclRydXN0RXZhbHVhdGlvbkNhbGxiYWNrQ2FsbHNDb3VudCgpOwogCi0g
ICAgLy8gQWQgQ2xpY2sgQXR0cmlidXRpb24uCi0gICAgdm9pZCBkdW1wQWRDbGlja0F0dHJpYnV0
aW9uKCk7Ci0gICAgdm9pZCBjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbigpOwotICAgIHZvaWQgY2xl
YXJBZENsaWNrQXR0cmlidXRpb25zVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCgpOwotICAgIHZv
aWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1
ZSk7Ci0gICAgdm9pZCBzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGlu
ZyhKU1N0cmluZ1JlZik7Ci0gICAgdm9pZCBtYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJl
ZEZvclRlc3RpbmcoKTsKKyAgICAvLyBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50LgorICAgIHZv
aWQgZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgdm9pZCBjbGVhclByaXZhdGVD
bGlja01lYXN1cmVtZW50KCk7CisgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50
c1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7CisgICAgdm9pZCBz
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKEpTU3RyaW5n
UmVmKTsKKyAgICB2b2lkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JU
ZXN0aW5nKCk7CiAKIHByaXZhdGU6CiAgICAgVGVzdFJ1bm5lcigpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBlNGFhZjM4YjU4YmMyZGYwNTYwYzUyOTBm
MWFkOGY0ZDRkZmIzNTVhLi4xNmFkMTdlMjRiYTNlYjFkZTc3Mzc5ZWZiODUyNGI4NjZlM2M3YjY3
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMTA0Niw3
ICsxMDQ2LDcgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZh
bHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUKICAgICBzdGF0aXN0aWNzUmVzZXRU
b0NvbnNpc3RlbnRTdGF0ZSgpOwogICAgIGNsZWFyTG9hZGVkU3VicmVzb3VyY2VEb21haW5zKCk7
CiAgICAgY2xlYXJBcHBCb3VuZFNlc3Npb24oKTsKLSAgICBjbGVhckFkQ2xpY2tBdHRyaWJ1dGlv
bigpOworICAgIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKIAogICAgIFdLUGFnZURp
c3BhdGNoQWN0aXZpdHlTdGF0ZVVwZGF0ZUZvclRlc3RpbmcobV9tYWluV2ViVmlldy0+cGFnZSgp
KTsKIApAQCAtMzUwOCwzNSArMzUwOCwzNSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTZXJ2
aWNlV29ya2VyRmV0Y2hUaW1lb3V0Rm9yVGVzdGluZyhkb3VibGUgc2Vjb25kcykKICAgICBXS1dl
YnNpdGVEYXRhU3RvcmVTZXRTZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0Rm9yVGVzdGluZyh3ZWJz
aXRlRGF0YVN0b3JlKCksIHNlY29uZHMpOwogfQogCi1zdHJ1Y3QgQWRDbGlja0F0dHJpYnV0aW9u
U3RyaW5nUmVzdWx0Q2FsbGJhY2tDb250ZXh0IHsKLSAgICBleHBsaWNpdCBBZENsaWNrQXR0cmli
dXRpb25TdHJpbmdSZXN1bHRDYWxsYmFja0NvbnRleHQoVGVzdENvbnRyb2xsZXImIGNvbnRyb2xs
ZXIpCitzdHJ1Y3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdHJpbmdSZXN1bHRDYWxsYmFja0Nv
bnRleHQgeworICAgIGV4cGxpY2l0IFByaXZhdGVDbGlja01lYXN1cmVtZW50U3RyaW5nUmVzdWx0
Q2FsbGJhY2tDb250ZXh0KFRlc3RDb250cm9sbGVyJiBjb250cm9sbGVyKQogICAgICAgICA6IHRl
c3RDb250cm9sbGVyKGNvbnRyb2xsZXIpCiAgICAgewogICAgIH0KICAgICAKICAgICBUZXN0Q29u
dHJvbGxlciYgdGVzdENvbnRyb2xsZXI7CiAgICAgYm9vbCBkb25lIHsgZmFsc2UgfTsKLSAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gYWRDbGlja0F0dHJpYnV0aW9uUmVwcmVzZW50YXRpb247
CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHByaXZhdGVDbGlja01lYXN1cmVtZW50UmVw
cmVzZW50YXRpb247CiB9OwogCi1zdGF0aWMgdm9pZCBhZENsaWNrQXR0cmlidXRpb25TdHJpbmdS
ZXN1bHRDYWxsYmFjayhXS1N0cmluZ1JlZiBhZENsaWNrQXR0cmlidXRpb25SZXByZXNlbnRhdGlv
biwgdm9pZCogdXNlckRhdGEpCitzdGF0aWMgdm9pZCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0
cmluZ1Jlc3VsdENhbGxiYWNrKFdLU3RyaW5nUmVmIHByaXZhdGVDbGlja01lYXN1cmVtZW50UmVw
cmVzZW50YXRpb24sIHZvaWQqIHVzZXJEYXRhKQogewotICAgIGF1dG8qIGNvbnRleHQgPSBzdGF0
aWNfY2FzdDxBZENsaWNrQXR0cmlidXRpb25TdHJpbmdSZXN1bHRDYWxsYmFja0NvbnRleHQqPih1
c2VyRGF0YSk7Ci0gICAgY29udGV4dC0+YWRDbGlja0F0dHJpYnV0aW9uUmVwcmVzZW50YXRpb24g
PSBhZENsaWNrQXR0cmlidXRpb25SZXByZXNlbnRhdGlvbjsKKyAgICBhdXRvKiBjb250ZXh0ID0g
c3RhdGljX2Nhc3Q8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdHJpbmdSZXN1bHRDYWxsYmFja0Nv
bnRleHQqPih1c2VyRGF0YSk7CisgICAgY29udGV4dC0+cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRS
ZXByZXNlbnRhdGlvbiA9IHByaXZhdGVDbGlja01lYXN1cmVtZW50UmVwcmVzZW50YXRpb247CiAg
ICAgY29udGV4dC0+ZG9uZSA9IHRydWU7CiAgICAgY29udGV4dC0+dGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOwogfQogCi1TdHJpbmcgVGVzdENvbnRyb2xsZXI6OmR1bXBBZENsaWNrQXR0cmli
dXRpb24oKQorU3RyaW5nIFRlc3RDb250cm9sbGVyOjpkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQoKQogewotICAgIEFkQ2xpY2tBdHRyaWJ1dGlvblN0cmluZ1Jlc3VsdENhbGxiYWNrQ29udGV4
dCBjYWxsYmFja0NvbnRleHQoKnRoaXMpOwotICAgIFdLUGFnZUR1bXBBZENsaWNrQXR0cmlidXRp
b24obV9tYWluV2ViVmlldy0+cGFnZSgpLCBhZENsaWNrQXR0cmlidXRpb25TdHJpbmdSZXN1bHRD
YWxsYmFjaywgJmNhbGxiYWNrQ29udGV4dCk7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRT
dHJpbmdSZXN1bHRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKKyAgICBX
S1BhZ2VEdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCBw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0cmluZ1Jlc3VsdENhbGxiYWNrLCAmY2FsbGJhY2tDb250
ZXh0KTsKICAgICBydW5VbnRpbChjYWxsYmFja0NvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKLSAg
ICByZXR1cm4gdG9XVEZTdHJpbmcoY2FsbGJhY2tDb250ZXh0LmFkQ2xpY2tBdHRyaWJ1dGlvblJl
cHJlc2VudGF0aW9uLmdldCgpKTsKKyAgICByZXR1cm4gdG9XVEZTdHJpbmcoY2FsbGJhY2tDb250
ZXh0LnByaXZhdGVDbGlja01lYXN1cmVtZW50UmVwcmVzZW50YXRpb24uZ2V0KCkpOwogfQogCi1z
dHJ1Y3QgQWRDbGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrQ29udGV4dCB7Ci0gICAgZXhwbGlj
aXQgQWRDbGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrQ29udGV4dChUZXN0Q29udHJvbGxlciYg
Y29udHJvbGxlcikKK3N0cnVjdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFja0Nv
bnRleHQgeworICAgIGV4cGxpY2l0IFByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNr
Q29udGV4dChUZXN0Q29udHJvbGxlciYgY29udHJvbGxlcikKICAgICAgICAgOiB0ZXN0Q29udHJv
bGxlcihjb250cm9sbGVyKQogICAgIHsKICAgICB9CkBAIC0zNTQ1LDQ1ICszNTQ1LDQ1IEBAIHN0
cnVjdCBBZENsaWNrQXR0cmlidXRpb25Wb2lkQ2FsbGJhY2tDb250ZXh0IHsKICAgICBib29sIGRv
bmUgeyBmYWxzZSB9OwogfTsKIAotc3RhdGljIHZvaWQgYWRDbGlja0F0dHJpYnV0aW9uVm9pZENh
bGxiYWNrKHZvaWQqIHVzZXJEYXRhKQorc3RhdGljIHZvaWQgcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRWb2lkQ2FsbGJhY2sodm9pZCogdXNlckRhdGEpCiB7Ci0gICAgYXV0byogY29udGV4dCA9IHN0
YXRpY19jYXN0PEFkQ2xpY2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFja0NvbnRleHQqPih1c2VyRGF0
YSk7CisgICAgYXV0byogY29udGV4dCA9IHN0YXRpY19jYXN0PFByaXZhdGVDbGlja01lYXN1cmVt
ZW50Vm9pZENhbGxiYWNrQ29udGV4dCo+KHVzZXJEYXRhKTsKICAgICBjb250ZXh0LT5kb25lID0g
dHJ1ZTsKICAgICBjb250ZXh0LT50ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CiB9CiAKLXZv
aWQgVGVzdENvbnRyb2xsZXI6OmNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKCkKK3ZvaWQgVGVzdENv
bnRyb2xsZXI6OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKQogewotICAgIEFkQ2xpY2tB
dHRyaWJ1dGlvblZvaWRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKLSAg
ICBXS1BhZ2VDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbihtX21haW5XZWJWaWV3LT5wYWdlKCksIGFk
Q2xpY2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4dCk7CisgICAgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2tDb250ZXh0IGNhbGxiYWNrQ29udGV4dCgq
dGhpcyk7CisgICAgV0tQYWdlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChtX21haW5XZWJW
aWV3LT5wYWdlKCksIHByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrLCAmY2FsbGJh
Y2tDb250ZXh0KTsKICAgICBydW5VbnRpbChjYWxsYmFja0NvbnRleHQuZG9uZSwgbm9UaW1lb3V0
KTsKIH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6Y2xlYXJBZENsaWNrQXR0cmlidXRpb25zVGhy
b3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCgpCit2b2lkIFRlc3RDb250cm9sbGVyOjpjbGVhclByaXZh
dGVDbGlja01lYXN1cmVtZW50c1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoKQogewotICAgIEFk
Q2xpY2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlz
KTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJvdWdo
V2Vic2l0ZURhdGFSZW1vdmFsKHdlYnNpdGVEYXRhU3RvcmUoKSwgJmNhbGxiYWNrQ29udGV4dCwg
YWRDbGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrKTsKKyAgICBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFZvaWRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKKyAgICBXS1dl
YnNpdGVEYXRhU3RvcmVDbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Rocm91Z2hXZWJzaXRl
RGF0YVJlbW92YWwod2Vic2l0ZURhdGFTdG9yZSgpLCAmY2FsbGJhY2tDb250ZXh0LCBwcml2YXRl
Q2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY2FsbGJhY2tDb250
ZXh0LmRvbmUsIG5vVGltZW91dCk7CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEFkQ2xp
Y2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpCit2b2lkIFRl
c3RDb250cm9sbGVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JU
ZXN0aW5nKGJvb2wgdmFsdWUpCiB7Ci0gICAgQWRDbGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNr
Q29udGV4dCBjYWxsYmFja0NvbnRleHQoKnRoaXMpOwotICAgIFdLUGFnZVNldEFkQ2xpY2tBdHRy
aWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgdmFs
dWUsIGFkQ2xpY2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4dCk7Cisg
ICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2tDb250ZXh0IGNhbGxiYWNrQ29u
dGV4dCgqdGhpcyk7CisgICAgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlk
ZVRpbWVyRm9yVGVzdGluZyhtX21haW5XZWJWaWV3LT5wYWdlKCksIHZhbHVlLCBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudFZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4dCk7CiAgICAgcnVuVW50
aWwoY2FsbGJhY2tDb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiB9CiAKLXZvaWQgVGVzdENvbnRy
b2xsZXI6OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdLVVJM
UmVmIHVybCkKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29udmVyc2lvblVSTEZvclRlc3RpbmcoV0tVUkxSZWYgdXJsKQogewotICAgIEFkQ2xpY2tBdHRy
aWJ1dGlvblZvaWRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKLSAgICBX
S1BhZ2VTZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyhtX21haW5X
ZWJWaWV3LT5wYWdlKCksIHVybCwgYWRDbGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrLCAmY2Fs
bGJhY2tDb250ZXh0KTsKKyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFja0Nv
bnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKKyAgICBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwg
dXJsLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4
dCk7CiAgICAgcnVuVW50aWwoY2FsbGJhY2tDb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiB9CiAK
LXZvaWQgVGVzdENvbnRyb2xsZXI6Om1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9y
VGVzdGluZygpCit2b2lkIFRlc3RDb250cm9sbGVyOjptYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRzQXNFeHBpcmVkRm9yVGVzdGluZygpCiB7Ci0gICAgQWRDbGlja0F0dHJpYnV0aW9uVm9pZENh
bGxiYWNrQ29udGV4dCBjYWxsYmFja0NvbnRleHQoKnRoaXMpOwotICAgIFdLUGFnZU1hcmtBZENs
aWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZyhtX21haW5XZWJWaWV3LT5wYWdlKCks
IGFkQ2xpY2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4dCk7CisgICAg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2tDb250ZXh0IGNhbGxiYWNrQ29udGV4
dCgqdGhpcyk7CisgICAgV0tQYWdlTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJl
ZEZvclRlc3RpbmcobV9tYWluV2ViVmlldy0+cGFnZSgpLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4dCk7CiAgICAgcnVuVW50aWwoY2FsbGJhY2tD
b250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuaAppbmRleCAzM2I2NDk0YWM2MjQ0YjkyZmNiNzgwOWE1OGQ3MjAzYzdjMTI1OGE4
Li4wOTE1ZWQ4Y2ZiNWVjNGM1NzhlMjg4YTk5ODk1YTQ4YjA5ZWM0M2RhIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0zNDAsMTIgKzM0MCwxMiBAQCBwdWJsaWM6
CiAKICAgICBib29sIGlzRG9pbmdNZWRpYUNhcHR1cmUoKSBjb25zdDsKIAotICAgIFN0cmluZyBk
dW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7Ci0gICAgdm9pZCBjbGVhckFkQ2xpY2tBdHRyaWJ1dGlv
bigpOwotICAgIHZvaWQgY2xlYXJBZENsaWNrQXR0cmlidXRpb25zVGhyb3VnaFdlYnNpdGVEYXRh
UmVtb3ZhbCgpOwotICAgIHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZv
clRlc3RpbmcoYm9vbCB2YWx1ZSk7Ci0gICAgdm9pZCBzZXRBZENsaWNrQXR0cmlidXRpb25Db252
ZXJzaW9uVVJMRm9yVGVzdGluZyhXS1VSTFJlZik7Ci0gICAgdm9pZCBtYXJrQWRDbGlja0F0dHJp
YnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICBTdHJpbmcgZHVtcFByaXZhdGVDbGlj
a01lYXN1cmVtZW50KCk7CisgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7
CisgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Rocm91Z2hXZWJzaXRlRGF0
YVJlbW92YWwoKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVU
aW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdLVVJMUmVmKTsKKyAgICB2b2lkIG1hcmtQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CiAKICAgICB2b2lk
IGRpZFNldEFwcEJvdW5kRG9tYWlucygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uY3BwCmluZGV4IDE0YzA0ZWQxZmE5Mzk0ZjU3MmY2NDlhOTFiNDdlZmIy
MDZlZjg1NGUuLmYyNDdmYjU2YTA1NjgzZDI4ZmUzOGY0NTk2ZDMzZjNhMDg0N2ViMWMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0yNDMsOCArMjQzLDgg
QEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6ZHVtcFJlc3VsdHMoKQogICAgIGlmIChtX3Nob3VsZER1
bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKQogICAgICAgICBtX3RleHRPdXRwdXQuYXBwZW5kKG1f
c2F2ZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmlzTnVsbCgpID8gVGVzdENvbnRyb2xsZXI6OnNp
bmdsZXRvbigpLmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkgOiBtX3NhdmVkUmVzb3VyY2VM
b2FkU3RhdGlzdGljcyk7CiAKLSAgICBpZiAobV9zaG91bGREdW1wQWRDbGlja0F0dHJpYnV0aW9u
KQotICAgICAgICBtX3RleHRPdXRwdXQuYXBwZW5kKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24o
KS5kdW1wQWRDbGlja0F0dHJpYnV0aW9uKCkpOworICAgIGlmIChtX3Nob3VsZER1bXBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCkKKyAgICAgICAgbV90ZXh0T3V0cHV0LmFwcGVuZChUZXN0Q29udHJv
bGxlcjo6c2luZ2xldG9uKCkuZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KCkpOwogICAgIAog
ICAgIGlmIChtX3RleHRPdXRwdXQubGVuZ3RoKCkgfHwgIW1fYXVkaW9SZXN1bHQpCiAgICAgICAg
IGR1bXAobV90ZXh0T3V0cHV0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CkBAIC0xMzA0LDE4
ICsxMzA0LDE4IEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJl
Y2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KIAotICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3Nh
Z2VOYW1lLCAiRHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbiIpKSB7Ci0gICAgICAgIGR1bXBBZENsaWNr
QXR0cmlidXRpb24oKTsKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNz
YWdlTmFtZSwgIkR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCIpKSB7CisgICAgICAgIGR1bXBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CiAgICAgCi0gICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUs
ICJDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbiIpKSB7Ci0gICAgICAgIFRlc3RDb250cm9sbGVyOjpz
aW5nbGV0b24oKS5jbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbigpOworICAgIGlmIChXS1N0cmluZ0lz
RXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCIpKSB7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jbGVhclByaXZh
dGVDbGlja01lYXN1cmVtZW50KCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAot
ICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiQ2xlYXJB
ZENsaWNrQXR0cmlidXRpb25zVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCIpKSB7Ci0gICAgICAg
IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJv
dWdoV2Vic2l0ZURhdGFSZW1vdmFsKCk7CisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENT
dHJpbmcobWVzc2FnZU5hbWUsICJDbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Rocm91Z2hX
ZWJzaXRlRGF0YVJlbW92YWwiKSkgeworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9u
KCkuY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFs
KCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICAKQEAgLTEzMjQsMTkgKzEz
MjQsMTkgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2
ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQogCi0gICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5h
bWUsICJTZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyIpKSB7Ci0g
ICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRBZENsaWNrQXR0cmlidXRpb25P
dmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sZWFuVmFsdWUobWVzc2FnZUJvZHkpKTsKKyAgICBp
ZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmciKSkgeworICAgICAgICBUZXN0
Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlk
ZVRpbWVyRm9yVGVzdGluZyhib29sZWFuVmFsdWUobWVzc2FnZUJvZHkpKTsKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAotICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZv
clRlc3RpbmciKSkgeworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3Nh
Z2VOYW1lLCAiU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGlu
ZyIpKSB7CiAgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tVUkxH
ZXRUeXBlSUQoKSk7Ci0gICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRBZENs
aWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyhzdGF0aWNfY2FzdDxXS1VSTFJl
Zj4obWVzc2FnZUJvZHkpKTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rpbmcoc3RhdGljX2Nh
c3Q8V0tVUkxSZWY+KG1lc3NhZ2VCb2R5KSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KIAotICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAi
TWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nIikpIHsKLSAgICAgICAg
VGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBp
cmVkRm9yVGVzdGluZygpOworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1l
c3NhZ2VOYW1lLCAiTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rp
bmciKSkgeworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFya1ByaXZhdGVD
bGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogCkBAIC0xNTMzLDkgKzE1MzMsOSBAQCB2b2lkIFRlc3RJbnZvY2F0aW9u
OjpkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpCiAgICAgbV9zaG91bGREdW1wUmVzb3VyY2VM
b2FkU3RhdGlzdGljcyA9IHRydWU7CiB9CiAKLXZvaWQgVGVzdEludm9jYXRpb246OmR1bXBBZENs
aWNrQXR0cmlidXRpb24oKQordm9pZCBUZXN0SW52b2NhdGlvbjo6ZHVtcFByaXZhdGVDbGlja01l
YXN1cmVtZW50KCkKIHsKLSAgICBtX3Nob3VsZER1bXBBZENsaWNrQXR0cmlidXRpb24gPSB0cnVl
OworICAgIG1fc2hvdWxkRHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gdHJ1ZTsKIH0KIAog
dm9pZCBUZXN0SW52b2NhdGlvbjo6cGVyZm9ybUN1c3RvbU1lbnVBY3Rpb24oKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCmluZGV4IGI4Y2E2YjdiZGNmZDM0NzQ1NTYyZDBj
YzdiYjllZTc2NGEwZDBkMjEuLmQ5NGY1NGUxNzczMzkxZGZmZDkxMWMzZTU2ODNiNTdjOTg5Yzgz
NzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKQEAgLTEwMCw3ICsx
MDAsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGNhbk9wZW5XaW5kb3dzKCkgY29uc3QgeyByZXR1
cm4gbV9jYW5PcGVuV2luZG93czsgfQogCi0gICAgdm9pZCBkdW1wQWRDbGlja0F0dHJpYnV0aW9u
KCk7CisgICAgdm9pZCBkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKICAgICB2b2lkIHBl
cmZvcm1DdXN0b21NZW51QWN0aW9uKCk7CiAKICAgICB2b2lkIHdpbGxDcmVhdGVOZXdQYWdlKCk7
CkBAIC0xNjIsNyArMTYyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcGl4ZWxSZXN1bHRJc1Bl
bmRpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGREdW1wUmVzb3VyY2VMb2FkU3RhdGlz
dGljcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Nhbk9wZW5XaW5kb3dzIHsgZmFsc2UgfTsKLSAg
ICBib29sIG1fc2hvdWxkRHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbiB7IGZhbHNlIH07CisgICAgYm9v
bCBtX3Nob3VsZER1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB7IGZhbHNlIH07CiAgICAgV2hh
dFRvRHVtcCBtX3doYXRUb0R1bXAgeyBXaGF0VG9EdW1wOjpSZW5kZXJUcmVlIH07CiAKICAgICBT
dHJpbmdCdWlsZGVyIG1fdGV4dE91dHB1dDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2MTIyYWVkNDA3ZmU2Zjk0YTIxYmFl
MGYzZjQ3NzUxMGRkZTdjYjY4Li44YTRiYjljZjUyZTU0ZTA5MDE1Y2VhMTE2M2UwYjMzOTgwOTUy
NzM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIwMjAtMTEtMTAgIEpvaG4gV2lsYW5kZXIgIDx3
aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBDaGFuZ2UgZnJvbSBhZC1jbGljay1h
dHRyaWJ1dGlvbiB0byBwcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50IChpbiBhbGwgZm9ybXMsIGlu
Y2x1ZGluZyAud2VsbC1rbm93biBVUkwpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTg3MzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMDk0Mjk2
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5n
ZSB0byB0aGUgb2ZmaWNpYWwgbmFtZSBvZiB0aGUgcHJvcG9zZWQgc3RhbmRhcmQgUHJpdmF0ZSBD
bGljayBNZWFzdXJlbWVudAorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vcHJpdmFjeWNnL3By
aXZhdGUtY2xpY2stbWVhc3VyZW1lbnQuCisKKyAgICAgICAgVGhpcyBpbmNsdWRlcyBhIGNoYW5n
ZSBvZiB0aGUgcmVwb3J0aW5nIFVSTCBmcm9tIAorICAgICAgICAiLy53ZWxsLWtub3duL2FkLWNs
aWNrLWF0dHJpYnV0aW9uLyIgdG8KKyAgICAgICAgIi8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNr
LW1lYXN1cmVtZW50LyIuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAq
IGh0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhy
b3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9leHBpcmVkLWF0dHJpYnV0aW9u
cy1yZW1vdmVkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb25PbklQQWRkcmVz
cy5waHA6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24v
c3RvcmUtYWQtY2xpY2stYXR0cmlidXRpb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWRpc2FibGVkLWluLWVwaGVt
ZXJhbC1zZXNzaW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2Nr
LXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVhc3Vy
ZW1lbnQuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4
dGVuc2lvbnMvYmxvY2stYWQtY2xpY2stYXR0cmlidXRpb24uaHRtbC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQu
aHRtbC5qc29uOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0
ZW5zaW9ucy9ibG9jay1hZC1jbGljay1hdHRyaWJ1dGlvbi5odG1sLmpzb24uCisgICAgICAgICog
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hbmNob3ItdGFnLWF0dHJpYnV0ZXMt
cmVmbGVjdC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FkQ2xpY2tBdHRyaWJ1dGlvbi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtcmVmbGVjdC1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hbmNo
b3ItdGFnLWF0dHJpYnV0ZXMtcmVmbGVjdC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXJlZmxl
Y3QuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2Fu
Y2hvci10YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2FuY2hvci10YWctYXR0
cmlidXRlcy12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L2FuY2hvci10YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLmh0
bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtdmFsaWRhdGlvbi5odG1sLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJv
dWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZl
cnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0Lmh0bWw6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1j
b252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC5odG1sLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVy
c2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3ctZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0
cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3ct
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13
aW5kb3cuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0
dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1p
bi1uZXctd2luZG93Lmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0
aC1wcmlvcml0eS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1h
Z2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91
Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lv
bi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHkuaHRtbC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24t
dGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5LWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJp
YnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0
LXByaW9yaXR5Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJl
Y3Qtd2l0aG91dC1wcmlvcml0eS5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvY2xlYXItdGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1
dGlvbi9jbGVhci10aHJvdWdoLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWV4cGVjdGVkLnR4dC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NsZWFyLXRocm91Z2gt
d2Vic2l0ZS1kYXRhLXJlbW92YWwuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NsZWFyLXRocm91Z2gtd2Vic2l0ZS1kYXRhLXJlbW92
YWwuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2Nv
bnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0OiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vY29udmVy
c2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1leHBlY3RlZC50eHQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRpc2FibGVk
LWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJh
bC1zZXNzaW9uLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJp
YnV0aW9ucy1yZW1vdmVkLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FkQ2xpY2tBdHRyaWJ1dGlvbi9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLmh0bWwuCisg
ICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29u
dmVyc2lvbkZpbGVQYXRoLnBocDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
YWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252ZXJzaW9uRmlsZVBhdGgucGhwLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZl
cnNpb25SZXBvcnQucGhwOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENs
aWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnRBbmRQ
b3N0TWVzc2FnZUJhY2suaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
YWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252ZXJ0QW5kUG9zdE1lc3NhZ2VCYWNrLmh0
bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJj
ZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhwOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBocC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9y
ZWRpcmVjdFRvQ29udmVyc2lvbi5waHA6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhw
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2Vz
L3JlZGlyZWN0VG9Db252ZXJzaW9uT25JUEFkZHJlc3MucGhwOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy91dGlsLmpzOiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3Vy
Y2VzL3V0aWwuanMuCisgICAgICAgIChwcmVwYXJlVGVzdCk6CisgICAgICAgICh0ZWFyRG93bkFu
ZEZpbmlzaCk6CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9z
ZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0
aW9uL3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1oaWdoZXItcHJpb3JpdHktZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
c2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sOiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vj
b25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0
aW9uLWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1hdHRy
aWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRp
b24tY29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1hdHRyaWJ1dGlvbi1j
b252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJp
b3JpdHktZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
ZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHkt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1jb252
ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9y
aXR5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRD
bGlja0F0dHJpYnV0aW9uL3NlY29uZC1jb252ZXJzaW9uLXdpdGgtbG93ZXItcHJpb3JpdHktZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
c2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS5odG1sOiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWNvbnZlcnNp
b24td2l0aC1sb3dlci1wcmlvcml0eS5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QtZXhw
ZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0
cmlidXRpb24vc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QtZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRy
aWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lv
bi1yZXF1ZXN0Lmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9zdG9yZS1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUt
ZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWRpc2FibGVkLWluLWVwaGVt
ZXJhbC1zZXNzaW9uLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1w
cml2YXRlLWNsaWNrLW1lYXN1cmVtZW50Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zdG9yZS1hZC1jbGljay1hdHRyaWJ1dGlvbi5o
dG1sLgorICAgICAgICAqIGluc3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1BZENsaWNrQXR0
cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRE
ZWJ1Z01vZGVFbmFibGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9y
L3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5h
YmxlZC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJp
ZGVTZXR0aW5nLUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQuaHRtbC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZv
cm0vd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjAtMTEtMTAgIEFuZHJlcyBHb256YWxleiAg
PGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBmb3IgTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvc2VhcmNoLXN1YnJvbGUuaHRtbCBpbiBpc29sYXRlZCB0cmVlIG1vZGUu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCAzODMyNGQxZDY1Zjc5OWU4MGVmZmYxNGM5ZTk1NWEyZGQx
NzkxMWYwLi5lYjQ0MmUxZmY0ZGVlZDQzMGI2YTYxN2NmNzk4ZDI3MTk2MDliNTAxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTExMDEsOCArMTEwMSw4IEBAIGluc3BlY3Rvci9ydW50aW1lL2NhbGxG
dW5jdGlvbk9uLWVtdWxhdGVVc2VyR2VzdHVyZS11c2VySXNJbnRlcmFjdGluZy5odG1sIFsgU2tp
CiAjIFRhcmdldCBkb21haW4gaXMgb25seSBwcmVzZW50IGluIFdLMi4KIGh0dHAvdGVzdHMvaW5z
cGVjdG9yL3RhcmdldCBbIFNraXAgXQogCi0jIElUUCBhbmQgQWRDbGlja0F0dHJpYnV0aW9uIGFy
ZSBXSzIgb25seS4KLWluc3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1BZENsaWNrQXR0cmli
dXRpb25EZWJ1Z01vZGVFbmFibGVkLmh0bWwgWyBTa2lwIF0KKyMgSVRQIGFuZCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCBhcmUgV0syIG9ubHkuCitpbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRp
bmctUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkLmh0bWwgWyBTa2lwIF0K
IGluc3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1JVFBEZWJ1Z01vZGVFbmFibGVkLmh0bWwg
WyBTa2lwIF0KIAogIyBUaGVzZSBjb25mb3JtYW5jZSB0ZXN0cyBhcmUgbm8gbG9uZ2VyIGluIHN5
bmMgd2l0aCB0aGUgbGF0ZXN0IHNwZWNpZmljYXRpb24KQEAgLTI3NzIsNyArMjc3Miw3IEBAIHdl
YmtpdC5vcmcvYi8xNzkwNjkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9lbWJlZGRlZC1jb250CiB3ZWJraXQub3JnL2IvMTU3MDY4IFsgRGVidWcgXSBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL25vc25pZmYvaW1wb3J0c2NyaXB0cy5o
dG1sIFsgUGFzcyBDcmFzaCBdCiB3ZWJraXQub3JnL2IvMTU3MDY4IFsgUmVsZWFzZSBdIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbm9zbmlmZi9pbXBvcnRzY3JpcHRzLmh0
bWwgWyBQYXNzIEZhaWx1cmUgXQogCi1odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbiBbIFNr
aXAgXQoraHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBbIFNraXAgXQogCiAjIEFw
cGxpY2F0aW9uIE1hbmlmZXN0IHRlc3RzCiB3ZWJraXQub3JnL2IvMTUzMTUyIGh0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L21hbmlmZXN0LXNyYy1hbGxvd2VkLmh0bWwg
WyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJp
YnV0aW9uL2FuY2hvci10YWctYXR0cmlidXRlcy1yZWZsZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2FuY2hvci10YWctYXR0cmlidXRl
cy1yZWZsZWN0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWM3
YTk1ZWFlNGU4MGNlY2M1MzI2MGYwYWY3NDVhMTFiNjg1YmFiZS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtcmVmbGVjdC1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1UZXN0IGZvciB0aGUgbmV3IGFkIGNsaWNr
IGF0dHJpYnV0aW9uIGF0dHJpYnV0ZXMgb24gYW5jaG9yIHRhZ3MuCi0KLU9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KLQotCi1QQVNTIGFuY2hvclRhZy5hZGNhbXBhaWduaWQgaXMgIjQwIgotUEFT
UyBhbmNob3JUYWcuYWRkZXN0aW5hdGlvbiBpcyAiZGVzdGluYXRpb24uZXhhbXBsZSIKLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hbmNob3ItdGFnLWF0
dHJpYnV0ZXMtcmVmbGVjdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0
cmlidXRpb24vYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXJlZmxlY3QuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOGQ5OTU2ZmRlZWM3OGVkNzBiMmZiNDgyMDAxZmRkZDViNTM5ODI5
NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMt
cmVmbGVjdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgQWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZD10
cnVlIF0gLS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJV
VEYtOCI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGEgaWQ9InRlc3RUYWciIGhyZWY9Imh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCIgYWRjYW1wYWlnbmlkPSI0MCIgYWRkZXN0aW5hdGlvbj0iZGVzdGluYXRp
b24uZXhhbXBsZSI+PC9hPgotPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgdGhl
IG5ldyBhZCBjbGljayBhdHRyaWJ1dGlvbiBhdHRyaWJ1dGVzIG9uIGFuY2hvciB0YWdzLiIpOwot
Ci0gICAgY29uc3QgYW5jaG9yVGFnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RUYWci
KTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFuY2hvclRhZy5hZGNhbXBhaWduaWQiLCAi
NDAiKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFuY2hvclRhZy5hZGRlc3RpbmF0aW9u
IiwgImRlc3RpbmF0aW9uLmV4YW1wbGUiKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5j
aG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlk
YXRpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYjU0OTlm
NGFkNDE0N2ExZThiYTAyZjk0OTZhOTEwN2MyYTkwMTlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0
dHJpYnV0aW9uL2FuY2hvci10YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogYWRjYW1wYWln
bmlkIG11c3QgaGF2ZSBhIG5vbi1uZWdhdGl2ZSB2YWx1ZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8g
NjMgZm9yIEFkIENsaWNrIEF0dHJpYnV0aW9uLgotQ09OU09MRSBNRVNTQUdFOiBhZGNhbXBhaWdu
aWQgbXVzdCBoYXZlIGEgbm9uLW5lZ2F0aXZlIHZhbHVlIGxlc3MgdGhhbiBvciBlcXVhbCB0byA2
MyBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24uCi1DT05TT0xFIE1FU1NBR0U6IGFkY2FtcGFpZ25p
ZCBjYW4gbm90IGJlIGNvbnZlcnRlZCB0byBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHdoaWNoIGlz
IHJlcXVpcmVkIGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbi4KLUNPTlNPTEUgTUVTU0FHRTogYWRj
YW1wYWlnbmlkIGNhbiBub3QgYmUgY29udmVydGVkIHRvIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIg
d2hpY2ggaXMgcmVxdWlyZWQgZm9yIEFkIENsaWNrIEF0dHJpYnV0aW9uLgotQ09OU09MRSBNRVNT
QUdFOiBhZGNhbXBhaWduaWQgY2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSBub24tbmVnYXRpdmUg
aW50ZWdlciB3aGljaCBpcyByZXF1aXJlZCBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24uCi1DT05T
T0xFIE1FU1NBR0U6IGFkZGVzdGluYXRpb24gY291bGQgbm90IGJlIGNvbnZlcnRlZCB0byBhIHZh
bGlkIEhUVFAtZmFtaWx5IFVSTC4KLUNPTlNPTEUgTUVTU0FHRTogYWRkZXN0aW5hdGlvbiBjb3Vs
ZCBub3QgYmUgY29udmVydGVkIHRvIGEgdmFsaWQgSFRUUC1mYW1pbHkgVVJMLgotQ09OU09MRSBN
RVNTQUdFOiBhZGRlc3RpbmF0aW9uIGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSB2YWxpZCBI
VFRQLWZhbWlseSBVUkwuCi1DT05TT0xFIE1FU1NBR0U6IEJvdGggYWRjYW1wYWlnbmlkIGFuZCBh
ZGRlc3RpbmF0aW9uIG5lZWQgdG8gYmUgc2V0IGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbiB0byB3
b3JrLgotQ09OU09MRSBNRVNTQUdFOiBCb3RoIGFkY2FtcGFpZ25pZCBhbmQgYWRkZXN0aW5hdGlv
biBuZWVkIHRvIGJlIHNldCBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24gdG8gd29yay4KLUNPTlNP
TEUgTUVTU0FHRTogYWRkZXN0aW5hdGlvbiBjYW4gbm90IGJlIHRoZSBzYW1lIHNpdGUgYXMgdGhl
IGN1cnJlbnQgd2Vic2l0ZS4KLVRlc3QgZm9yIHZhbGlkaXR5IG9mIGFkIGNsaWNrIGF0dHJpYnV0
aW9uIGF0dHJpYnV0ZXMgb24gYW5jaG9yIHRhZ3MuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24v
YW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlkYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2FuY2hvci10YWctYXR0cmlidXRlcy12YWxpZGF0aW9u
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlMmZkNjNlNDM1ODc3MzM1ZWRi
YTc5ZmJhNjUwNDhlOWIwOGVkOTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5j
aG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlkYXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg1
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZs
ZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgotPGh0bWwgbGFuZz0iZW4iPgotPGhlYWQ+Ci0gICAg
PG1ldGEgY2hhcnNldD0iVVRGLTgiPgotICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50
PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+
Ci0gICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+Ci0gICAgPHN0eWxlPgotICAgICAgICAud2lkZS1saW5rIHsKLSAgICAgICAgICAgIHdp
ZHRoOiAxNTBweDsKLSAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKLSAgICAgICAg
fQotICAgIDwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1bkFsbFRlc3RzKCkiPgot
PGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj48YnI+
Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgZGVzY3JpcHRpb24oIlRl
c3QgZm9yIHZhbGlkaXR5IG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uIGF0dHJpYnV0ZXMgb24gYW5j
aG9yIHRhZ3MuIik7Ci0gICAganNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLSAgICBmdW5jdGlvbiBj
cmVhdGVBZENsaWNrQXR0cmlidXRpb25BbmNob3JFbGVtZW50KGVsZW1lbnRJRCwgYWRDYW1wYWln
bklELCBhZERlc3RpbmF0aW9uKSB7Ci0gICAgICAgIGxldCBhbmNob3JFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiYSIpOwotICAgICAgICBhbmNob3JFbGVtZW50LmlkID0gZWxlbWVu
dElEOwotICAgICAgICBhbmNob3JFbGVtZW50LmNsYXNzTGlzdC5hZGQoIndpZGUtbGluayIpOwot
ICAgICAgICBhbmNob3JFbGVtZW50LmFkY2FtcGFpZ25pZCA9IGFkQ2FtcGFpZ25JRDsKLSAgICAg
ICAgYW5jaG9yRWxlbWVudC5hZGRlc3RpbmF0aW9uID0gYWREZXN0aW5hdGlvbjsKLSAgICAgICAg
YW5jaG9yRWxlbWVudC5ocmVmID0gIiMiOwotICAgICAgICBhbmNob3JFbGVtZW50LmlubmVyVGV4
dCA9ICJMaW5rIiArIGN1cnJlbnRUZXN0OwotICAgICAgICByZXR1cm4gYW5jaG9yRWxlbWVudDsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElELCBjYWxsYmFj
aykgewotICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnQoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoZWxlbWVudElEKSkudGhlbigKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIp
OwotICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgfQotICAgICAg
ICApOwotICAgIH0KLQotICAgIGxldCBjdXJyZW50VGVzdCA9IDA7Ci0gICAgZnVuY3Rpb24gcnVu
T25lVGVzdChhZENhbXBhaWduSUQsIGFkRGVzdGluYXRpb24sIGNhbGxiYWNrKSB7Ci0gICAgICAg
IGNvbnN0IGN1cnJlbnRFbGVtZW50SUQgPSAidGVzdCIgKyBjdXJyZW50VGVzdCsrOwotICAgICAg
ICBjb25zdCBhbmNob3JFbGVtZW50ID0gY3JlYXRlQWRDbGlja0F0dHJpYnV0aW9uQW5jaG9yRWxl
bWVudChjdXJyZW50RWxlbWVudElELCBhZENhbXBhaWduSUQsIGFkRGVzdGluYXRpb24pOwotICAg
ICAgICBvdXRwdXQuYXBwZW5kQ2hpbGQoYW5jaG9yRWxlbWVudCk7Ci0gICAgICAgIGFjdGl2YXRl
RWxlbWVudChjdXJyZW50RWxlbWVudElELCBjYWxsYmFjayk7Ci0gICAgfQotCi0gICAgY29uc3Qg
dmFsaWRBZENhbXBhaWduSUQgPSAiMDMiOwotICAgIGNvbnN0IHZhbGlkQWREZXN0aW5hdGlvbiA9
ICJodHRwOi8vd2Via2l0Lm9yZyI7Ci0gICAgY29uc3Qgc2FtZVNpdGUgPSBkb2N1bWVudC5sb2Nh
dGlvbi5vcmlnaW47Ci0gICAgY29uc3QgdGVzdENhc2VzID0gWwotICAgICAgICBbIHZhbGlkQWRD
YW1wYWlnbklELCB2YWxpZEFkRGVzdGluYXRpb24gXSwKLSAgICAgICAgWyAiMTAwIiwgdmFsaWRB
ZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAvLyBUb28gbWFueSBjaGFyYWN0ZXJzLgotICAgICAg
ICBbICIxIiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAgIC8vIFRvbyBmZXcgY2hh
cmFjdGVycy4KLSAgICAgICAgWyAiOTgiLCB2YWxpZEFkRGVzdGluYXRpb24gXSwgICAgICAgICAg
ICAvLyBUb28gaGlnaCB2YWx1ZS4KLSAgICAgICAgWyAiLTEiLCB2YWxpZEFkRGVzdGluYXRpb24g
XSwgICAgICAgICAgICAvLyBOZWdhdGl2ZSB2YWx1ZS4KLSAgICAgICAgWyAiYWIiLCB2YWxpZEFk
RGVzdGluYXRpb24gXSwgICAgICAgICAgICAvLyBOb24tZGlnaXRzLgotICAgICAgICBbICLvo78x
IiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAgLy8gTm9uLUFTQ0lJLgotICAgICAg
ICBbICIgMSIsIHZhbGlkQWREZXN0aW5hdGlvbiBdLCAgICAgICAgICAgIC8vIExlYWRpbmcgc3Bh
Y2UuCi0gICAgICAgIFsgIjEgIiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAgLy8g
VHJhaWxpbmcgc3BhY2UuCi0gICAgICAgIFsgdmFsaWRBZENhbXBhaWduSUQsICJ3ZWJraXQub3Jn
IiBdLCAgICAgLy8gTWlzc2luZyBwcm90b2NvbC4KLSAgICAgICAgWyB2YWxpZEFkQ2FtcGFpZ25J
RCwgIjovL3dlYmtpdC5vcmciIF0sICAvLyBQYXJ0aWFsbHkgbWlzc2luZyBwcm90b2NvbC4KLSAg
ICAgICAgWyB2YWxpZEFkQ2FtcGFpZ25JRCwgIu+jv++jv++jvyIgXSwgICAgICAgICAgIC8vIE5v
bi1BU0NJSSBjaGFyYWN0ZXJzIGFzIGRlc3RpbmF0aW9uLgotICAgICAgICBbICIiLCB2YWxpZEFk
RGVzdGluYXRpb24gXSwgICAgICAgICAgICAgIC8vIEVtcHR5IGNhbXBhaWduIElELgotICAgICAg
ICBbIHZhbGlkQWRDYW1wYWlnbklELCAiIiBdLCAgICAgICAgICAgICAgIC8vIEVtcHR5IGRlc3Rp
bmF0aW9uLgotICAgICAgICBbIHZhbGlkQWRDYW1wYWlnbklELCBzYW1lU2l0ZSBdICAgICAgICAg
IC8vIFNhbWUtc2l0ZSBkZXN0aW5hdGlvbi4KLSAgICBdOwotCi0gICAgZnVuY3Rpb24gcnVuQWxs
VGVzdHMoKSB7Ci0gICAgICAgIGlmIChjdXJyZW50VGVzdCA8IHRlc3RDYXNlcy5sZW5ndGgpCi0g
ICAgICAgICAgICBydW5PbmVUZXN0KHRlc3RDYXNlc1tjdXJyZW50VGVzdF1bMF0sIHRlc3RDYXNl
c1tjdXJyZW50VGVzdF1bMV0sIHJ1bkFsbFRlc3RzKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG91dHB1dCk7Ci0gICAgICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKLSAgICAgICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24v
YXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3Qt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24v
YXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3Qt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZWE1ZTYxZmM4NWNk
ZjU0MmY5MTc1MzNmYWJmYmI4MzVkNjhlNjU4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0
aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGly
ZWN0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotVGVzdHMgdGhh
dCB0cmlnZ2VyaW5nIG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uIGNvbnZlcnNpb25zIHRocm91Z2gg
Y3Jvc3Mtc2l0ZSByZWRpcmVjdHMgZG8gbm90IHdvcmsuCi0KLQotVW5jb252ZXJ0ZWQgQWQgQ2xp
Y2sgQXR0cmlidXRpb25zOgotV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uIDEKLVNvdXJjZTog
MTI3LjAuMC4xCi1EZXN0aW5hdGlvbjogbG9jYWxob3N0Ci1DYW1wYWlnbiBJRDogMwotTm8gY29u
dmVyc2lvbiBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNr
QXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1h
Z2UtcmVkaXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0
aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGly
ZWN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY1NzI2ZTkwOWZmYzkwYjIx
MDlmZmJhMDRiNDA2ZDA4NTMxNjhhOWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24v
YXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3Qu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBBZENsaWNrQXR0
cmlidXRpb25FbmFibGVkPXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAg
IDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVu
dD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8i
PgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj5UZXN0cyB0aGF0IHRyaWdnZXJpbmcgb2YgYWQgY2xpY2sgYXR0cmlidXRpb24g
Y29udmVyc2lvbnMgdGhyb3VnaCBjcm9zcy1zaXRlIHJlZGlyZWN0cyBkbyBub3Qgd29yay48L2Rp
dj4KLTxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvYWRDbGlj
a0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWlt
YWdlLXJlZGlyZWN0Lmh0bWw/c3RlcFR3byIgYWRjYW1wYWlnbmlkPSIzIiBhZGRlc3RpbmF0aW9u
PSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgotPGRpdiBpZD0ib3V0cHV0Ij48
L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgcHJlcGFyZVRlc3QoKTsKLQotICAgIGZ1bmN0aW9uIGFjdGl2
YXRlRWxlbWVudChlbGVtZW50SUQpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOwotICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQu
b2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICB2YXIgY2VudGVy
WSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwotICAgICAg
ICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCi0gICAgICAgICAg
ICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgZnVuY3Rpb24gKCkg
ewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5l
clRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7Ci0gICAgICAgICAgICAgICAgdGVhckRv
d25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAg
ICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7Ci0g
ICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImltZyIpOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly9sb2Nh
bGhvc3Q6ODQ0My9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJz
aW9uT25JUEFkZHJlc3MucGhwP2NvbnZlcnNpb25EYXRhPTEyIjsKLSAgICAgICAgICAgICAgICBp
bWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5v
bmVycm9yID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBZENsaWNrQXR0cmlidXRpb24oKTsKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKLSAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicGl4ZWwiKSk7Ci0gICAgICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmlu
aXNoKCk7Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwotICAgICAgICAgICAgfQot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91
dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKLSAgICAgICAgfQotICAg
IH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJv
dWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10
aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3ctZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODQzNmIwOTY5MzU2YzU2M2I4NWNiYWFhOWFkNTYyYTVi
M2IzNmY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZl
cnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRlc3RzIHRyaWdnZXJpbmcgb2YgYWQgY2xp
Y2sgYXR0cmlidXRpb24gY29udmVyc2lvbnMgaW4gYSBuZXcgd2luZG93LgotCi0KLUNvbnZlcnRl
ZCBBZCBDbGljayBBdHRyaWJ1dGlvbnM6Ci1XZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24gMQot
U291cmNlOiAxMjcuMC4wLjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWduIElEOiAz
Ci1Db252ZXJzaW9uIGRhdGE6IDEyCi1Db252ZXJzaW9uIHByaW9yaXR5OiAzCi1Db252ZXJzaW9u
IGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCi1Db252ZXJzaW9uIHJl
cXVlc3Qgc2VudDogZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRD
bGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRp
cmVjdC1pbi1uZXctd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tB
dHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qt
aW4tbmV3LXdpbmRvdy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYWQyYjQz
NDdiZDZmZjllNmE2OGRkZDliMWQxOWU1NjViY2NhZTI2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0
dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1p
bi1uZXctd2luZG93Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRy
dWUgQWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZD10cnVlIF0gLS0+Ci08aHRtbCBsYW5nPSJlbiI+
Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAgPG1ldGEgbmFtZT0idmll
d3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2Vy
LXNjYWxhYmxlPW5vIj4KLSAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+
Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdHJpZ2dlcmluZyBvZiBhZCBjbGljayBhdHRy
aWJ1dGlvbiBjb252ZXJzaW9ucyBpbiBhIG5ldyB3aW5kb3cuPC9kaXY+Ci08YSB0YXJnZXQ9Il9i
bGFuayIgcmVsPSJvcGVuZXIiIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0
OjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252ZXJ0QW5kUG9zdE1lc3NhZ2VC
YWNrLmh0bWwiIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9z
dDo4MDAwIj5MaW5rPC9hPjxicj4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0Pgot
ICAgIHByZXBhcmVUZXN0KCk7Ci0KLSAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVu
dElEKSB7Ci0gICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxl
bWVudElEKTsKLSAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVt
ZW50Lm9mZnNldFdpZHRoIC8gMjsKLSAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNl
dFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgVUlIZWxwZXIuYWN0aXZh
dGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewot
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJv
bWlzZSByZWplY3RlZC4iOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcmVjZWl2ZU1l
c3NhZ2UoZXZlbnQpIHsKLSAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIpIHsKLSAgICAgICAgICAgIGlmIChldmVudC5kYXRhID09PSAiRG9uZSIpIHsK
LSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsKLSAg
ICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXRMaW5rIikpOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNo
KCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJl
Y2VpdmVkIHVua25vd24gbWVzc2FnZTogIiArIGV2ZW50LmRhdGEpOwotICAgICAgICAgICAgICAg
IHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVj
dGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7Ci0gICAgICAgICAgICB0ZWFyRG93bkFuZEZp
bmlzaCgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
Im1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOwotCi0gICAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0
UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCk7Ci0gICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQo
InRhcmdldExpbmsiKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7
Ci0gICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICB9Ci0gICAgfQotPC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1h
Z2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gt
aW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDU5N2Y2NWNkMThkNTk0MDgxOTc3MDhmNzBlYTQyZTQwM2VkMGFkZDMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10
aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHktZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTIgKzAsMCBAQAotVGVzdHMgdHJpZ2dlcmluZyBvZiBhZCBjbGljayBhdHRy
aWJ1dGlvbiBjb252ZXJzaW9ucyB3aXRoIHByaW9yaXR5LgotCi0KLUNvbnZlcnRlZCBBZCBDbGlj
ayBBdHRyaWJ1dGlvbnM6Ci1XZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24gMQotU291cmNlOiAx
MjcuMC4wLjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWduIElEOiAzCi1Db252ZXJz
aW9uIGRhdGE6IDEyCi1Db252ZXJzaW9uIHByaW9yaXR5OiAzCi1Db252ZXJzaW9uIGVhcmxpZXN0
IHRpbWUgdG8gc2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCi1Db252ZXJzaW9uIHJlcXVlc3Qgc2Vu
dDogZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJp
YnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRo
LXByaW9yaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlv
cml0eS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NTZiNDI1MzYwYTNjMjVm
OWIyZDJkNWI1ZDkxNDM0NDllZTg0ZjMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9u
L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9y
aXR5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4g
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgQWRDbGlj
a0F0dHJpYnV0aW9uRW5hYmxlZD10cnVlIF0gLS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4K
LSAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNv
bnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxl
PW5vIj4KLSAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+
PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlk
PSJkZXNjcmlwdGlvbiI+VGVzdHMgdHJpZ2dlcmluZyBvZiBhZCBjbGljayBhdHRyaWJ1dGlvbiBj
b252ZXJzaW9ucyB3aXRoIHByaW9yaXR5LjwvZGl2PgotPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29u
dmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHkuaHRtbD9zdGVwVHdv
IiBhZGNhbXBhaWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+
TGluazwvYT48YnI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBwcmVw
YXJlVGVzdCgpOwotCi0gICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewot
ICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7
Ci0gICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZz
ZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBl
bGVtZW50Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2Vu
dGVyWCwgY2VudGVyWSkudGhlbigKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAg
ICAgIH0sCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVq
ZWN0ZWQuIjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAg
ICAgfQotICAgICAgICApOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2Nh
dGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKLSAgICAgICAgICAgICAgICBsZXQgaW1hZ2VF
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgICAgICAgICAg
aW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tBdHRyaWJ1
dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEy
JnByaW9yaXR5PTAzIjsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwi
OwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oZSkgewot
ICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsK
LSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7Ci0g
ICAgICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICAgICAg
fTsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVu
dCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVu
dCgidGFyZ2V0TGluayIpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlM
IE5vIHRlc3RSdW5uZXIuIjsKLSAgICAgICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmli
dXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhv
dXQtcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNr
QXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0
LXdpdGhvdXQtcHJpb3JpdHktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA5ZTBhMjgwZmFkMTg2YTc2ZmFhOTQyZjYyZjliMTA0NThjOGQxMmMxLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFn
ZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDEyICswLDAgQEAKLVRlc3RzIHRyaWdnZXJpbmcgb2YgYWQgY2xpY2sgYXR0cmlidXRpb24g
Y29udmVyc2lvbnMgd2l0aG91dCBwcmlvcml0eS4KLQotCi1Db252ZXJ0ZWQgQWQgQ2xpY2sgQXR0
cmlidXRpb25zOgotV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uIDEKLVNvdXJjZTogMTI3LjAu
MC4xCi1EZXN0aW5hdGlvbjogbG9jYWxob3N0Ci1DYW1wYWlnbiBJRDogMwotQ29udmVyc2lvbiBk
YXRhOiAxMgotQ29udmVyc2lvbiBwcmlvcml0eTogMAotQ29udmVyc2lvbiBlYXJsaWVzdCB0aW1l
IHRvIHNlbmQ6IFdpdGhpbiAyNC00OCBob3VycwotQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6IGZh
bHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1w
cmlvcml0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24v
YXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJp
b3JpdHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGEwYjJkODk2ZGM0MTAw
MzI1ODJlM2YxNzNjNGI1MWNkYzZkY2QxMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1w
cmlvcml0eS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0g
LS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+
Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwg
aW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2V0
VGltZW91dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdHJpZ2dl
cmluZyBvZiBhZCBjbGljayBhdHRyaWJ1dGlvbiBjb252ZXJzaW9ucyB3aXRob3V0IHByaW9yaXR5
LjwvZGl2PgotPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9h
ZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJl
ZGlyZWN0LXdpdGhvdXQtcHJpb3JpdHkuaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMiIGFk
ZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Ci08ZGl2IGlk
PSJvdXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBwcmVwYXJlVGVzdCgpOwotCi0gICAgZnVu
Y3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBjZW50ZXJY
ID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAg
IHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAv
IDI7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigK
LSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91
dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAgICAgICAg
ICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICApOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3Rl
cFR3byIpIHsKLSAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJo
dHRwczovLzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJl
Y3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyIjsKLSAgICAgICAgICAgICAgICBp
bWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5v
bmVycm9yID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFkQ2xpY2tBdHRyaWJ1dGlvbigpOwotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5
LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOwotICAg
ICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJwaXhlbCIpKTsKLSAgICAgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5p
c2goKTsKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0
cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOwotICAgICAgICB9Ci0gICAg
fQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jbGVhci10aHJvdWdoLXdlYnNpdGUtZGF0YS1y
ZW1vdmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJp
YnV0aW9uL2NsZWFyLXRocm91Z2gtd2Vic2l0ZS1kYXRhLXJlbW92YWwtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMmVlNmE5M2NhZDBiNWU1Y2E4NTFlNmJiMmYy
MWI5YWY5YTk2YzViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NsZWFyLXRocm91
Z2gtd2Vic2l0ZS1kYXRhLXJlbW92YWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NSArMCwwIEBACi1UZXN0cyB0aGF0IGJvdGggdW5jb252ZXJ0ZWQgYW5kIGNvbnZlcnRlZCBhdHRy
aWJ1dGlvbnMgYXJlIGNsZWFyZWQgb24gd2Vic2l0ZSBkYXRhIHJlbW92YWwuCi0KLQotCi1ObyBz
dG9yZWQgQWQgQ2xpY2sgQXR0cmlidXRpb24gZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NsZWFyLXRocm91Z2gtd2Vic2l0ZS1kYXRh
LXJlbW92YWwuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9u
L2NsZWFyLXRocm91Z2gtd2Vic2l0ZS1kYXRhLXJlbW92YWwuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNmQ2ZWNiNTAyZmJhYTJkNjJhNWQ3YmUwZGViNTE2YmQ2NzI4ODgzYi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jbGVhci10aHJvdWdoLXdlYnNpdGUtZGF0
YS1yZW1vdmFsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4MyArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUg
QWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZD10cnVlIF0gLS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08
aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAgPG1ldGEgbmFtZT0idmlld3Bv
cnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNj
YWxhYmxlPW5vIj4KLSAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBl
ci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Ci08
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBib3RoIHVuY29udmVydGVkIGFuZCBjb252
ZXJ0ZWQgYXR0cmlidXRpb25zIGFyZSBjbGVhcmVkIG9uIHdlYnNpdGUgZGF0YSByZW1vdmFsLjwv
ZGl2PgotPGEgaWQ9InRhcmdldExpbmsiPkxpbms8L2E+PGJyPgotPGRpdiBpZD0ib3V0cHV0Ij48
L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgY29uc3QgcGF0aCA9ICIvYWRDbGlja0F0dHJpYnV0aW9uL2Ns
ZWFyLXRocm91Z2gtd2Vic2l0ZS1kYXRhLXJlbW92YWwuaHRtbCI7Ci0gICAgY29uc3QgY29uZmln
dXJhdGlvbiA9IFsKLSAgICAgICAgewotICAgICAgICAgICAgaHJlZjogImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIgKyBwYXRoICsgIj9zdGVwVHdvIiwKLSAgICAgICAgICAgIGFkY2FtcGFpZ25pZDog
IjMiLAotICAgICAgICAgICAgYWRkZXN0aW5hdGlvbjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIK
LSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgaHJlZjogImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIgKyBwYXRoICsgIj9zdGVwVGhyZWUiLAotICAgICAgICAgICAgYWRjYW1wYWlnbmlk
OiAiNCIsCi0gICAgICAgICAgICBhZGRlc3RpbmF0aW9uOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IgotICAgICAgICB9Ci0gICAgXTsKLQotICAgIHByZXBhcmVUZXN0KCk7Ci0KLSAgICBmdW5jdGlv
biBjb25maWd1cmVMaW5rKGluZGV4KSB7Ci0gICAgICAgIGxldCBsaW5rRWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgIGxpbmtFbGVtZW50LnNl
dEF0dHJpYnV0ZSgiaHJlZiIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmhyZWYpOwotICAgICAgICBs
aW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFkY2FtcGFpZ25pZCIsIGNvbmZpZ3VyYXRpb25baW5k
ZXhdLmFkY2FtcGFpZ25pZCk7Ci0gICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRk
ZXN0aW5hdGlvbiIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmFkZGVzdGluYXRpb24pOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKLSAgICAgICAgdmFy
IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOwotICAgICAgICB2
YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAy
OwotICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZz
ZXRIZWlnaHQgLyAyOwotICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRl
clkpLnRoZW4oCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICB9LAotICAg
ICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7Ci0g
ICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNo
ID09PSAiIikgewotICAgICAgICAgICAgICAgIC8vIEZpcnN0IGFkIGNsaWNrIDEyNy4wLjAuMSDi
gJM+IGxvY2FsaG9zdC4KLSAgICAgICAgICAgICAgICBjb25maWd1cmVMaW5rKDApOwotICAgICAg
ICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwotICAgICAgICAgICAgfSBl
bHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7Ci0gICAgICAg
ICAgICAgICAgLy8gQ29udmVydCB0aGUgZmlyc3QgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSA0LCB0
aGVuIGRvIGEgcmV2ZXJzZSBhZCBjbGljay4KLSAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgICAgICAgICAgaW1h
Z2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnBy
aW9yaXR5PTA0IjsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOwot
ICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oZSkgewotICAg
ICAgICAgICAgICAgICAgICAvLyBTZWNvbmQgYWQgY2xpY2sgbG9jYWxob3N0IOKAkz4gMTI3LjAu
MC4xLgotICAgICAgICAgICAgICAgICAgICBjb25maWd1cmVMaW5rKDEpOwotICAgICAgICAgICAg
ICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKLSAgICAgICAgICAgICAgICB9
OwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50
KTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9z
dGVwVGhyZWUiKSB7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5jbGVhckFkQ2xpY2tBdHRy
aWJ1dGlvbnNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCk7Ci0gICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7Ci0gICAgICAgICAgICAgICAgZG9jdW1l
bnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIp
KTsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iiku
aW5uZXJUZXh0ID0gIkZBSUwgVW5rbm93biB3aW5kb3cubG9jYXRpb24uc2VhcmNoID09ICIgKyB3
aW5kb3cubG9jYXRpb24uc2VhcmNoICsgIi4iOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5k
RmluaXNoKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVz
dFJ1bm5lci4iOwotICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9j
b252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NvbnZlcnNpb24tZGlzYWJs
ZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjMzRhYjVkOTEyNTk0NTgzMGEyYjg0M2U3MTc0ZTE1MDlkMmNkNTgwLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1l
cmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAot
VGVzdHMgdGhhdCBzdG9yZWQgYXR0cmlidXRpb25zIGNhbm5vdCBiZSBjb252ZXJ0ZWQgaW4gYW4g
ZXBoZW1lcmFsIHNlc3Npb24uCi0KLQotCi0tLS0tLS0tLQotRnJhbWU6ICc8IS0tZnJhbWUxLS0+
JwotLS0tLS0tLS0KLUNvbnZlcnNpb24gbm90IHJlY2VpdmVkIC0gdGltZWQgb3V0LgotCi1VbmNv
bnZlcnRlZCBBZCBDbGljayBBdHRyaWJ1dGlvbnM6Ci1XZWJDb3JlOjpBZENsaWNrQXR0cmlidXRp
b24gMQotU291cmNlOiAxMjcuMC4wLjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWdu
IElEOiAzCi1ObyBjb252ZXJzaW9uIGRhdGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJh
bC1zZXNzaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhOGYxODRmYTlmMTYyZjY2Yzk0NWYzNjMzODQ0ZTQwYjY5
ZWQ1ZmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vY29udmVyc2lvbi1kaXNhYmxl
ZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVW
aWV3cG9ydD10cnVlIF0gLS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBj
aGFyc2V0PSJVVEYtOCI+Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRo
PWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci0g
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlv
biI+VGVzdHMgdGhhdCBzdG9yZWQgYXR0cmlidXRpb25zIGNhbm5vdCBiZSBjb252ZXJ0ZWQgaW4g
YW4gZXBoZW1lcmFsIHNlc3Npb24uPC9kaXY+Ci08YSBpZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0
cDovL2xvY2FsaG9zdDo4MDAwL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252ZXJzaW9uLWRpc2FibGVk
LWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWw/c3RlcFR3byIgYWRjYW1wYWlnbmlkPSIzIiBhZGRl
c3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgotPGRpdiBpZD0i
b3V0cHV0Ij48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgY29uc3QgY3VycmVudFRpbWVNaWxsaXMgPSAo
bmV3IERhdGUoKSkuZ2V0VGltZSgpOwotICAgIGNvbnN0IGhpZ2hFbnRyb3B5Qml0cyA9IGN1cnJl
bnRUaW1lTWlsbGlzIC0gKE1hdGguZmxvb3IoY3VycmVudFRpbWVNaWxsaXMgLyAxMDAwMDAwKSAq
IDEwMDAwMDApOwotICAgIGNvbnN0IG5vbmNlID0gaGlnaEVudHJvcHlCaXRzICsgIiIgKyBNYXRo
LmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApOwotCi0gICAgcHJlcGFyZVRlc3QoKTsKLQotICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRBZENsaWNrQXR0
cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZygiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHA/bm9uY2U9IiAr
IG5vbmNlKTsKLQotICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKLSAg
ICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOwot
ICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0
V2lkdGggLyAyOwotICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxl
bWVudC5vZmZzZXRIZWlnaHQgLyAyOwotICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRl
clgsIGNlbnRlclkpLnRoZW4oCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAg
ICB9LAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVj
dGVkLiI7Ci0gICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhcHBlbmRJZnJhbWUodXJsLCBv
bmxvYWRDYWxsYmFjaykgewotICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9IHVybDsK
LSAgICAgICAgaWYgKG9ubG9hZENhbGxiYWNrKQotICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5v
bmxvYWQgPSBvbmxvYWRDYWxsYmFjazsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChpZnJhbWVFbGVtZW50KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhcHBlbmRDb252ZXJzaW9u
RGF0YUlmcmFtZUFuZEZpbmlzaCgpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQWRDbGlja0F0
dHJpYnV0aW9uKCk7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7Ci0KLSAgICAgICAgYXBwZW5kSWZyYW1lKCJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9nZXRDb252
ZXJzaW9uRGF0YS5waHA/dGltZW91dF9tcz0xMDAwJm5vbmNlPSIgKyBub25jZSwgZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICB9KTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBU
d28iKSB7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRTd2FwVG9FcGhlbWVy
YWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbih0cnVlKTsKLSAgICAgICAgICAgICAgICB3aW5kb3cu
bG9jYXRpb24gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252
ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWw/c3RlcFRocmVlIjsKLSAg
ICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVGhy
ZWUiKSB7Ci0gICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImltZyIpOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0
cHM6Ly8xMjcuMC4wLjE6ODQ0My9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0
VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZub25jZT0iICsgbm9uY2U7Ci0gICAg
ICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKLSAgICAgICAgICAgICAgICBp
bWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFNob3VsZFN3YXBUb0RlZmF1bHRTZXNzaW9uT25OZXh0TmF2aWdhdGlvbih0
cnVlKTsKLSAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhl
bWVyYWwtc2Vzc2lvbi5odG1sP3N0ZXBGb3VyIjsKLSAgICAgICAgICAgICAgICB9OwotICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAgICAg
ICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwRm91ciIp
IHsKLSAgICAgICAgICAgICAgICBhcHBlbmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZpbmlzaCgp
OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUg
PSAiY29va2llU2V0QXNGaXJzdFBhcnR5PTE7IHBhdGg9LyI7Ci0gICAgICAgICAgICAgICAgYWN0
aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJU
ZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOwotICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2V4cGlyZWQtYXR0
cmlidXRpb25zLXJlbW92ZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1ZTdhZWRkMWZmNjY4MWNkOGY3MGQwZjg0ODQ5MTM2NDRhNjU2YzEzLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYWRDbGlja0F0dHJpYnV0aW9uL2V4cGlyZWQtYXR0cmlidXRpb25zLXJlbW92ZWQtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1UZXN0cyBleHBpcmF0aW9uIG9m
IGFkIGNsaWNrIGF0dHJpYnV0aW9uLgotCi0KLQotTm8gc3RvcmVkIEFkIENsaWNrIEF0dHJpYnV0
aW9uIGRhdGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRy
aWJ1dGlvbi9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVk
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhMzU5MzE2NmUyZWQzNGViMTg4
ZGJjOWIwM2FjMmNjM2U4ZDQyODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vZXhw
aXJlZC1hdHRyaWJ1dGlvbnMtcmVtb3ZlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGli
bGVWaWV3cG9ydD10cnVlIF0gLS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0
YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9Indp
ZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+VGVzdHMgZXhwaXJhdGlvbiBvZiBhZCBjbGljayBhdHRyaWJ1dGlvbi48L2Rpdj4KLTxh
IGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvYWRDbGlja0F0dHJp
YnV0aW9uL2V4cGlyZWQtYXR0cmlidXRpb25zLXJlbW92ZWQuaHRtbD9zdGVwVHdvIiBhZGNhbXBh
aWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48
YnI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBwcmVwYXJlVGVzdCgp
OwotCi0gICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2
YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAg
IHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAv
IDI7Ci0gICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9m
ZnNldEhlaWdodCAvIDI7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2Vu
dGVyWSkudGhlbigKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0g
ICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsK
LSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAg
ICAgICApOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFy
Y2ggPT09ICI/c3RlcFR3byIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm1hcmtBZENs
aWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZygpOwotICAgICAgICAgICAgICAgIGxl
dCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAg
ICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvYWRDbGlj
a0F0dHJpYnV0aW9uL3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lv
bkRhdGE9MTIiOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0g
ICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7Ci0gICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldExpbmsiKSk7Ci0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJv
ZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOwotICAgICAg
ICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgICAgIH07Ci0g
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOwot
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRh
cmdldExpbmsiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0
ZXN0UnVubmVyLiI7Ci0gICAgICAgIH0KLSAgICB9Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9u
L3Jlc291cmNlcy9jb252ZXJzaW9uRmlsZVBhdGgucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2NvbnZlcnNpb25GaWxlUGF0aC5waHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhMTEyNDBjMWQ5OGMzODg4YjhlOWYwNzk2YjZj
NjQ3ODQ4ZGNlOWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2Nv
bnZlcnNpb25GaWxlUGF0aC5waHAKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLTw/cGhw
Ci1yZXF1aXJlX29uY2UgJy4uLy4uL3Jlc291cmNlcy9wb3J0YWJpbGl0eUxheWVyLnBocCc7Ci0K
LWlmIChpc3NldCgkX0dFVFsibm9uY2UiXSkpCi0gICAgJGNvbnZlcnNpb25GaWxlTmFtZSA9ICIv
YWRDbGlja0NvbnZlcnNpb24iIC4gJF9HRVRbIm5vbmNlIl0gLiAiLnR4dCI7Ci1lbHNlCi0gICAg
JGNvbnZlcnNpb25GaWxlTmFtZSA9ICIvYWRDbGlja0NvbnZlcnNpb24udHh0IjsKLSRjb252ZXJz
aW9uRmlsZVBhdGggPSBzeXNfZ2V0X3RlbXBfZGlyKCkgLiAkY29udmVyc2lvbkZpbGVOYW1lOwot
Pz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9u
L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjVjMjAyNjljNzg0OTA2ZmZmNzQ3NDQ4YjM4ODFmNDA2
MzdhYmMwMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvY29udmVy
c2lvblJlcG9ydC5waHAKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi08P3BocAotcmVx
dWlyZV9vbmNlICdjb252ZXJzaW9uRmlsZVBhdGgucGhwJzsKLQotJGNvbnZlcnNpb25GaWxlID0g
Zm9wZW4oJGNvbnZlcnNpb25GaWxlUGF0aCAuICIudG1wIiwgJ3cnKTsKLSRodHRwSGVhZGVycyA9
ICRfU0VSVkVSOwotJGNvb2tpZXNGb3VuZCA9IGZhbHNlOwotZm9yZWFjaCAoJGh0dHBIZWFkZXJz
IGFzICRuYW1lID0+ICR2YWx1ZSkgewotICAgIGlmICgkbmFtZSA9PT0gIkhUVFBfSE9TVCIpIHsK
LSAgICAgICAgZndyaXRlKCRjb252ZXJzaW9uRmlsZSwgIiRuYW1lOiAkdmFsdWVcbiIpOwotICAg
IH0gZWxzZSBpZiAoJG5hbWUgPT09ICJSRVFVRVNUX1VSSSIpIHsKLSAgICAgICAgJHBvc2l0aW9u
T2ZOb25jZSA9IHN0cnBvcygkdmFsdWUsICI/bm9uY2U9Iik7Ci0gICAgICAgIGlmICgkcG9zaXRp
b25PZk5vbmNlID09PSBmYWxzZSkKLSAgICAgICAgICAgICRvdXRwdXRVUkwgPSAkdmFsdWU7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICRvdXRwdXRVUkwgPSBzdWJzdHIoJHZhbHVlLCAwLCAk
cG9zaXRpb25PZk5vbmNlKTsKLSAgICAgICAgZndyaXRlKCRjb252ZXJzaW9uRmlsZSwgIiRuYW1l
OiAkb3V0cHV0VVJMXG4iKTsKLSAgICB9IGVsc2UgaWYgKCRuYW1lID09PSAiSFRUUF9DT09LSUUi
KSB7Ci0gICAgICAgIGZ3cml0ZSgkY29udmVyc2lvbkZpbGUsICJDb29raWVzIGluIGNvbnZlcnNp
b24gcmVxdWVzdDogJHZhbHVlXG4iKTsKLSAgICAgICAgJGNvb2tpZXNGb3VuZCA9IHRydWU7Ci0g
ICAgfSBlbHNlIGlmICgkbmFtZSA9PT0gIkNPTlRFTlRfVFlQRSIpIHsKLSAgICAgICAgZndyaXRl
KCRjb252ZXJzaW9uRmlsZSwgIkNvbnRlbnQgdHlwZTogJHZhbHVlXG4iKTsKLSAgICB9Ci19Ci1p
ZiAoISRjb29raWVzRm91bmQpIHsKLSAgICBmd3JpdGUoJGNvbnZlcnNpb25GaWxlLCAiTm8gY29v
a2llcyBpbiBjb252ZXJzaW9uIHJlcXVlc3QuXG4iKTsKLX0KLQotJHJlcXVlc3RCb2R5ID0gZmls
ZV9nZXRfY29udGVudHMoJ3BocDovL2lucHV0Jyk7Ci1md3JpdGUoJGNvbnZlcnNpb25GaWxlLCAi
UmVxdWVzdCBib2R5OlxuJHJlcXVlc3RCb2R5XG4iKTsKLQotZmNsb3NlKCRjb252ZXJzaW9uRmls
ZSk7Ci1yZW5hbWUoJGNvbnZlcnNpb25GaWxlUGF0aCAuICIudG1wIiwgJGNvbnZlcnNpb25GaWxl
UGF0aCk7Ci0KLWhlYWRlcigiSFRUUC8xLjEgMjAwIE9LIik7Ci1zZXRjb29raWUoImNvb2tpZVNl
dEluQ29udmVyc2lvblJlcG9ydCIsICIxIiwgMCwgIi8iKTsKLQotPz4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252ZXJ0
QW5kUG9zdE1lc3NhZ2VCYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tB
dHRyaWJ1dGlvbi9yZXNvdXJjZXMvY29udmVydEFuZFBvc3RNZXNzYWdlQmFjay5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNDgzNWE3MTIxODU1ZGViMjgwMGY2OTgzOTNkNmMy
ODgzOGEyMzIxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252
ZXJ0QW5kUG9zdE1lc3NhZ2VCYWNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxtZXRhIGNo
YXJzZXQ9IlVURi04Ij4KLSAgICA8c2NyaXB0PgotICAgICAgICBmdW5jdGlvbiBmaXJlQ29udmVy
c2lvblBpeGVsKCkgewotICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImltZyIpOwotICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRw
czovLzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RU
b0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PTAzIjsKLSAgICAgICAg
ICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0gICAgICAgICAgICBpbWFnZUVsZW1lbnQu
b25lcnJvciA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVt
b3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOwotICAgICAgICAgICAg
ICAgIHBvc3RNZXNzYWdlQmFjaygpOwotICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAgICAgICAgfQotCi0gICAgICAg
IGZ1bmN0aW9uIHBvc3RNZXNzYWdlQmFjaygpIHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cub3Bl
bmVyKSB7Ci0gICAgICAgICAgICAgICAgd2luZG93Lm9wZW5lci5wb3N0TWVzc2FnZSgiRG9uZSIs
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiKTsKLSAgICAgICAgICAgICAgICB3aW5kb3cuY2xvc2Uo
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIDwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHkgb25sb2FkPSJzZXRUaW1lb3V0KGZpcmVDb252ZXJzaW9uUGl4ZWwsIDApIj4KLTwvYm9keT4K
LTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvZ2V0Q29udmVyc2lv
bkRhdGEucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVz
b3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBocApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNmYxMTI0Yjg5Y2ZkNDk3ZDYxOWY3ZTljZGRjYTUxZjdlOTM3NTZmNC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhwCisrKyAv
ZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotPD9waHAKLXJlcXVpcmVfb25jZSAnY29udmVyc2lv
bkZpbGVQYXRoLnBocCc7Ci0KLSRub1RpbWVvdXQgPSBUcnVlOwotJHRpbWVvdXRNc2VjcyA9IDA7
Ci1pZiAoaXNzZXQoJF9HRVRbJ3RpbWVvdXRfbXMnXSkpIHsKLSAgICAkbm9UaW1lb3V0ID0gRmFs
c2U7Ci0gICAgJHRpbWVvdXRNc2VjcyA9IChpbnQpICRfR0VUWyd0aW1lb3V0X21zJ107Ci19Ci0K
LSRjb252ZXJzaW9uRmlsZUZvdW5kID0gRmFsc2U7Ci13aGlsZSAoJG5vVGltZW91dCB8fCAkdGlt
ZW91dE1zZWNzID4gMCkgewotICAgIGlmIChmaWxlX2V4aXN0cygkY29udmVyc2lvbkZpbGVQYXRo
KSkgewotICAgICAgICAkY29udmVyc2lvbkZpbGVGb3VuZCA9IFRydWU7Ci0gICAgICAgIGJyZWFr
OwotICAgIH0KLSAgICAkc2xlZXBNc2VjcyA9IDEwOwotICAgIHVzbGVlcCgkc2xlZXBNc2VjcyAq
IDEwMDApOwotICAgIGlmICghJG5vVGltZW91dCkgewotICAgICAgICAkdGltZW91dE1zZWNzIC09
ICRzbGVlcE1zZWNzOwotICAgIH0KLSAgICAvLyBmaWxlX2V4aXN0cygpIGNhY2hlcyByZXN1bHRz
LCB3ZSB3YW50IHRvIGludmFsaWRhdGUgdGhlIGNhY2hlLgotICAgIGNsZWFyc3RhdGNhY2hlKCk7
Ci19Ci0KLQotZWNobyAiPGh0bWw+PGJvZHk+XG4iOwotCi1pZiAoJGNvbnZlcnNpb25GaWxlRm91
bmQpIHsKLSAgICBlY2hvICJDb252ZXJzaW9uIHJlY2VpdmVkLiI7Ci0gICAgJGNvbnZlcnNpb25G
aWxlID0gZm9wZW4oJGNvbnZlcnNpb25GaWxlUGF0aCwgJ3InKTsKLSAgICB3aGlsZSAoJGxpbmUg
PSBmZ2V0cygkY29udmVyc2lvbkZpbGUpKSB7Ci0gICAgICAgIGVjaG8gIjxicj4iOwotICAgICAg
ICBlY2hvIHRyaW0oJGxpbmUpOwotICAgIH0KLSAgICBlY2hvICI8YnI+IjsKLSAgICBmY2xvc2Uo
JGNvbnZlcnNpb25GaWxlKTsKLSAgICB1bmxpbmsoJGNvbnZlcnNpb25GaWxlUGF0aCk7Ci19IGVs
c2UgewotICAgIGVjaG8gIkNvbnZlcnNpb24gbm90IHJlY2VpdmVkIC0gdGltZWQgb3V0Ljxicj4i
OwotfQotCi1pZiAoaXNzZXQoJF9HRVRbJ2VuZFRlc3QnXSkpIHsKLSAgICBlY2hvICI8c2NyaXB0
PiI7Ci0gICAgZWNobyAiaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7IjsKLSAgICBlY2hvICIgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7IjsKLSAgICBlY2hvICIgICAgdGVzdFJ1bm5lci5zZXRB
ZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhmYWxzZSk7IjsKLSAgICBl
Y2hvICIgICAgdGVzdFJ1bm5lci5zZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9y
VGVzdGluZygnJyk7IjsKLSAgICBlY2hvICJ9IjsKLSAgICBlY2hvICI8L3NjcmlwdD4iOwotfQot
Ci1lY2hvICI8L2JvZHk+PC9odG1sPiI7Ci0/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9u
LnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNl
cy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDcwY2ViNDYxN2QwZWViMWUzNzVkZmRiNjMzZThjY2Q3N2RhNWUxM2UuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
ZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocAorKysg
L2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotPD9waHAKLWhlYWRlcigiSFRUUC8xLjEgMzAyIEZv
dW5kIik7Ci1oZWFkZXIoIkNhY2hlLUNvbnRyb2w6IG5vLWNhY2hlLCBuby1zdG9yZSwgbXVzdC1y
ZXZhbGlkYXRlIik7Ci1pZiAoaXNzZXQoJF9HRVRbImNvbnZlcnNpb25EYXRhIl0pICYmIGlzc2V0
KCRfR0VUWyJwcmlvcml0eSJdKSkgewotICBoZWFkZXIoIkxvY2F0aW9uOiAvLndlbGwta25vd24v
YWQtY2xpY2stYXR0cmlidXRpb24vIiAuICRfR0VUWyJjb252ZXJzaW9uRGF0YSJdIC4gIi8iIC4g
JF9HRVRbInByaW9yaXR5Il0pOwotfSBlbHNlIGlmIChpc3NldCgkX0dFVFsiY29udmVyc2lvbkRh
dGEiXSkpIHsKLSAgaGVhZGVyKCJMb2NhdGlvbjogLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJp
YnV0aW9uLyIgLiAkX0dFVFsiY29udmVyc2lvbkRhdGEiXSk7Ci19Ci0/PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGly
ZWN0VG9Db252ZXJzaW9uT25JUEFkZHJlc3MucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
ZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uT25JUEFkZHJl
c3MucGhwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZmUxYWE5ODc0ODM4MDg2NWU5
MTZmMTUyMTg1NWQzYzgyNjhiMjc3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jl
c291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbk9uSVBBZGRyZXNzLnBocAorKysgL2Rldi9udWxs
CkBAIC0xLDggKzAsMCBAQAotPD9waHAKLWhlYWRlcigiSFRUUC8xLjAgMzAyIEZvdW5kIik7Ci1p
ZiAoaXNzZXQoJF9HRVRbImNvbnZlcnNpb25EYXRhIl0pICYmIGlzc2V0KCRfR0VUWyJwcmlvcml0
eSJdKSkgewotICBoZWFkZXIoIkxvY2F0aW9uOiBodHRwczovLzEyNy4wLjAuMTo4MDAwLy53ZWxs
LWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLyIgLiAkX0dFVFsiY29udmVyc2lvbkRhdGEiXSAu
ICIvIiAuICRfR0VUWyJwcmlvcml0eSJdKTsKLX0gZWxzZSBpZiAoaXNzZXQoJF9HRVRbImNvbnZl
cnNpb25EYXRhIl0pKSB7Ci0gIGhlYWRlcigiTG9jYXRpb246IGh0dHBzOi8vMTI3LjAuMC4xOjgw
MDAvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vIiAuICRfR0VUWyJjb252ZXJzaW9u
RGF0YSJdKTsKLX0KLT8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvdXRpbC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy91dGlsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyYjYyNTQ1M2QwYzAzYTE2ZGFiNmYyODRmM2JkMjU0MDBjOGQ3OTZhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy91dGlsLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMTcgKzAsMCBAQAotZnVuY3Rpb24gcHJlcGFyZVRlc3QoKSB7Ci0gICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwot
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOwotICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRBbGxvd3NBbnlTU0xD
ZXJ0aWZpY2F0ZSh0cnVlKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIHRlYXJEb3duQW5kRmluaXNo
KCkgewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLnNl
dEFsbG93c0FueVNTTENlcnRpZmljYXRlKGZhbHNlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRB
ZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhmYWxzZSk7Ci0gICAgICAg
IHRlc3RSdW5uZXIuc2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3Rpbmco
IiIpOwotICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICB9Ci19CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtYXR0
cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1hdHRyaWJ1dGlv
bi1jb252ZXJ0ZWQtd2l0aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhOTBmY2JjYmZkZjFjODE1ZGRhNDI1YjU0NmIyMGRlMTMzYTNm
MWE4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1hdHRyaWJ1dGlvbi1j
b252ZXJ0ZWQtd2l0aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTIgKzAsMCBAQAotVGVzdHMgdGhhdCBhIHNlY29uZCBhdHRyaWJ1dGlvbiBjb252ZXJz
aW9uIHdpdGggaGlnaGVyIHByaW9yaXR5IHJlcGxhY2VzIGFuIG9sZGVyIHdpdGggbG93ZXIgcHJp
b3JpdHkuCi0KLQotQ29udmVydGVkIEFkIENsaWNrIEF0dHJpYnV0aW9uczoKLVdlYkNvcmU6OkFk
Q2xpY2tBdHRyaWJ1dGlvbiAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRpb246IGxvY2Fs
aG9zdAotQ2FtcGFpZ24gSUQ6IDQKLUNvbnZlcnNpb24gZGF0YTogMTIKLUNvbnZlcnNpb24gcHJp
b3JpdHk6IDQKLUNvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDgg
aG91cnMKLUNvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJpYnV0aW9uLWNv
bnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhp
Z2hlci1wcmlvcml0eS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzN2UyYTBj
MmNjNzQ2YzUyNmFmY2IxYmVhODMxNGIxY2UwYzlkMDQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0
dHJpYnV0aW9uL3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1oaWdoZXItcHJpb3Jp
dHkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDkyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPiA8
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgot
PGh0bWwgbGFuZz0iZW4iPgotPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgotICAg
IDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRp
YWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNldFRpbWVv
dXQocnVuVGVzdCwgMCkiPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgYSBzZWNv
bmQgYXR0cmlidXRpb24gY29udmVyc2lvbiB3aXRoIGhpZ2hlciBwcmlvcml0eSByZXBsYWNlcyBh
biBvbGRlciB3aXRoIGxvd2VyIHByaW9yaXR5LjwvZGl2PgotPGEgaWQ9InRhcmdldExpbmsiPkxp
bms8L2E+PGJyPgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgY29uc3Qg
cGF0aCA9ICIvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQt
d2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbCI7Ci0gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFsK
LSAgICAgICAgewotICAgICAgICAgICAgaHJlZjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgKyBw
YXRoICsgIj9zdGVwVHdvIiwKLSAgICAgICAgICAgIGFkY2FtcGFpZ25pZDogIjMiLAotICAgICAg
ICAgICAgYWRkZXN0aW5hdGlvbjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKLSAgICAgICAgfSwK
LSAgICAgICAgewotICAgICAgICAgICAgaHJlZjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgKyBw
YXRoICsgIj9zdGVwRm91ciIsCi0gICAgICAgICAgICBhZGNhbXBhaWduaWQ6ICI0IiwKLSAgICAg
ICAgICAgIGFkZGVzdGluYXRpb246ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiCi0gICAgICAgIH0K
LSAgICBdOwotCi0gICAgcHJlcGFyZVRlc3QoKTsKLQotICAgIGZ1bmN0aW9uIGNvbmZpZ3VyZUxp
bmsoaW5kZXgpIHsKLSAgICAgICAgbGV0IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldExpbmsiKTsKLSAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJo
cmVmIiwgY29uZmlndXJhdGlvbltpbmRleF0uaHJlZik7Ci0gICAgICAgIGxpbmtFbGVtZW50LnNl
dEF0dHJpYnV0ZSgiYWRjYW1wYWlnbmlkIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRjYW1wYWln
bmlkKTsKLSAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhZGRlc3RpbmF0aW9uIiwg
Y29uZmlndXJhdGlvbltpbmRleF0uYWRkZXN0aW5hdGlvbik7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBjZW50ZXJYID0g
ZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZh
ciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7
Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKLSAg
ICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBmdW5j
dGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1
dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAgICAgICAgICAg
ICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICApOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICIiKSB7Ci0g
ICAgICAgICAgICAgICAgLy8gRmlyc3QgYWQgY2xpY2sgMTI3LjAuMC4xIOKAkz4gbG9jYWxob3N0
LgotICAgICAgICAgICAgICAgIGNvbmZpZ3VyZUxpbmsoMCk7Ci0gICAgICAgICAgICAgICAgYWN0
aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRv
dy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKLSAgICAgICAgICAgICAgICAvLyBD
b252ZXJ0IHRoZSBmaXJzdCBhZCBjbGljayB3aXRoIHByaW9yaXR5IDMgYW5kIG5hdmlnYXRlIGJh
Y2sgdG8gMTI3LjAuMC4xLgotICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQu
c3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNl
cy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImcHJpb3JpdHk9MDMi
OwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0gICAgICAgICAg
ICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiAr
IHBhdGggKyAiP3N0ZXBUaHJlZSI7Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7Ci0gICAgICAgICAgICB9
IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFRocmVlIikgewotICAg
ICAgICAgICAgICAgIC8vIFNlY29uZCBhZCBjbGljayAxMjcuMC4wLjEg4oCTPiBsb2NhbGhvc3Qu
Ci0gICAgICAgICAgICAgICAgY29uZmlndXJlTGluaygxKTsKLSAgICAgICAgICAgICAgICBhY3Rp
dmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93
LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwRm91ciIpIHsKLSAgICAgICAgICAgICAgICAvLyBD
b252ZXJ0IHRoZSBzZWNvbmQgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSA0IGFuZCBmaW5pc2guCi0g
ICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImltZyIpOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcu
MC4wLjE6ODQ0My9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJz
aW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZwcmlvcml0eT0wNCI7Ci0gICAgICAgICAgICAgICAg
aW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQu
b25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7Ci0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJv
ZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7Ci0g
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInBpeGVsIikpOwotICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZp
bmlzaCgpOwotICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0g
IkZBSUwgVW5rbm93biB3aW5kb3cubG9jYXRpb24uc2VhcmNoID09ICIgKyB3aW5kb3cubG9jYXRp
b24uc2VhcmNoICsgIi4iOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOwot
ICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtYXR0cmli
dXRpb24tY29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJpYnV0aW9uLWNv
bnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYTdlMmRmNzBjYzlmYmUzNWE4ZTQzN2NkZTY0MjA4Yzc2Y2I4N2ExOC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtYXR0cmlidXRpb24tY29udmVy
dGVkLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MTIgKzAsMCBAQAotVGVzdHMgdGhhdCBhIHNlY29uZCBhdHRyaWJ1dGlvbiBjb252ZXJzaW9uIHdp
dGggbG93ZXIgcHJpb3JpdHkgZG9lcyBub3QgcmVwbGFjZSBhbiBvbGRlciB3aXRoIGhpZ2hlciBw
cmlvcml0eS4KLQotCi1Db252ZXJ0ZWQgQWQgQ2xpY2sgQXR0cmlidXRpb25zOgotV2ViQ29yZTo6
QWRDbGlja0F0dHJpYnV0aW9uIDEKLVNvdXJjZTogMTI3LjAuMC4xCi1EZXN0aW5hdGlvbjogbG9j
YWxob3N0Ci1DYW1wYWlnbiBJRDogMwotQ29udmVyc2lvbiBkYXRhOiAxMgotQ29udmVyc2lvbiBw
cmlvcml0eTogNAotQ29udmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAyNC00
OCBob3VycwotQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtYXR0cmlidXRpb24t
Y29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1s
b3dlci1wcmlvcml0eS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YTM1NzJk
YmQwYzJmMGJkNjU2YTk0ZTA1MWMxMDc5ZmEyMmY4OWFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0
dHJpYnV0aW9uL3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0
eS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+IDwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Ci08
aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAg
PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlh
bC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2V0VGltZW91
dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBhIHNlY29u
ZCBhdHRyaWJ1dGlvbiBjb252ZXJzaW9uIHdpdGggbG93ZXIgcHJpb3JpdHkgZG9lcyBub3QgcmVw
bGFjZSBhbiBvbGRlciB3aXRoIGhpZ2hlciBwcmlvcml0eS48L2Rpdj4KLTxhIGlkPSJ0YXJnZXRM
aW5rIj5MaW5rPC9hPjxicj4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0PgotICAg
IGNvbnN0IHBhdGggPSAiL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtYXR0cmlidXRpb24tY29u
dmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHkuaHRtbCI7Ci0gICAgY29uc3QgY29uZmlndXJhdGlv
biA9IFsKLSAgICAgICAgewotICAgICAgICAgICAgaHJlZjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MCIgKyBwYXRoICsgIj9zdGVwVHdvIiwKLSAgICAgICAgICAgIGFkY2FtcGFpZ25pZDogIjMiLAot
ICAgICAgICAgICAgYWRkZXN0aW5hdGlvbjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKLSAgICAg
ICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgaHJlZjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MCIgKyBwYXRoICsgIj9zdGVwRm91ciIsCi0gICAgICAgICAgICBhZGNhbXBhaWduaWQ6ICI0IiwK
LSAgICAgICAgICAgIGFkZGVzdGluYXRpb246ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiCi0gICAg
ICAgIH0KLSAgICBdOwotCi0gICAgcHJlcGFyZVRlc3QoKTsKLQotICAgIGZ1bmN0aW9uIGNvbmZp
Z3VyZUxpbmsoaW5kZXgpIHsKLSAgICAgICAgbGV0IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKTsKLSAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmli
dXRlKCJocmVmIiwgY29uZmlndXJhdGlvbltpbmRleF0uaHJlZik7Ci0gICAgICAgIGxpbmtFbGVt
ZW50LnNldEF0dHJpYnV0ZSgiYWRjYW1wYWlnbmlkIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRj
YW1wYWlnbmlkKTsKLSAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhZGRlc3RpbmF0
aW9uIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRkZXN0aW5hdGlvbik7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBjZW50
ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAg
ICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdo
dCAvIDI7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhl
bigKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
Im91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAgICAg
ICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICApOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICIi
KSB7Ci0gICAgICAgICAgICAgICAgLy8gRmlyc3QgYWQgY2xpY2sgMTI3LjAuMC4xIOKAkz4gbG9j
YWxob3N0LgotICAgICAgICAgICAgICAgIGNvbmZpZ3VyZUxpbmsoMCk7Ci0gICAgICAgICAgICAg
ICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgICAgICB9IGVsc2UgaWYg
KHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKLSAgICAgICAgICAgICAg
ICAvLyBDb252ZXJ0IHRoZSBmaXJzdCBhZCBjbGljayB3aXRoIHByaW9yaXR5IDQgYW5kIG5hdmln
YXRlIGJhY2sgdG8gMTI3LjAuMC4xLgotICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAgICAgICAgICBpbWFnZUVs
ZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvYWRDbGlja0F0dHJpYnV0aW9uL3Jl
c291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImcHJpb3Jp
dHk9MDQiOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0gICAg
ICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwIiArIHBhdGggKyAiP3N0ZXBUaHJlZSI7Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7Ci0gICAgICAg
ICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFRocmVlIikg
ewotICAgICAgICAgICAgICAgIC8vIFNlY29uZCBhZCBjbGljayAxMjcuMC4wLjEg4oCTPiBsb2Nh
bGhvc3QuCi0gICAgICAgICAgICAgICAgY29uZmlndXJlTGluaygxKTsKLSAgICAgICAgICAgICAg
ICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAo
d2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwRm91ciIpIHsKLSAgICAgICAgICAgICAg
ICAvLyBDb252ZXJ0IHRoZSBzZWNvbmQgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSAzIGFuZCBmaW5p
c2guCi0gICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImltZyIpOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6
Ly8xMjcuMC4wLjE6ODQ0My9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9D
b252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZwcmlvcml0eT0wMyI7Ci0gICAgICAgICAg
ICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKLSAgICAgICAgICAgICAgICBpbWFnZUVs
ZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7Ci0gICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsi
KSk7Ci0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOwotICAgICAgICAgICAgICAgICAgICB0ZWFyRG93
bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOwotICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJU
ZXh0ID0gIkZBSUwgVW5rbm93biB3aW5kb3cubG9jYXRpb24uc2VhcmNoID09ICIgKyB3aW5kb3cu
bG9jYXRpb24uc2VhcmNoICsgIi4iOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNo
KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5l
ci4iOwotICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQt
Y29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhp
Z2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDNlMWIxYmEzODY1YTI1NWFkNzlkZjg2MjIxZDU0MGFmNTY3OTI4NzEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
ZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHkt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotVGVzdHMgdGhhdCB0
aGUgYXR0cmlidXRpb24gaXMgdXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGNvbnZlcnNpb24g
d2l0aCBoaWdoZXIgcHJpb3JpdHkuCi0KLQotQ29udmVydGVkIEFkIENsaWNrIEF0dHJpYnV0aW9u
czoKLVdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbiAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVz
dGluYXRpb246IGxvY2FsaG9zdAotQ2FtcGFpZ24gSUQ6IDMKLUNvbnZlcnNpb24gZGF0YTogMTIK
LUNvbnZlcnNpb24gcHJpb3JpdHk6IDQKLUNvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5k
OiBXaXRoaW4gMjQtNDggaG91cnMKLUNvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25k
LWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXBy
aW9yaXR5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkZmY1OTJmNzFkOGM0
ZTkxNGYxMDkwZDViOWUzNzJkNjlhNjc3ZDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRp
b24vc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDg1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgotPGh0bWwgbGFuZz0iZW4iPgot
PGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgotICAgIDxtZXRhIG5hbWU9InZpZXdw
b3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1z
Y2FsYWJsZT1ubyI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxw
ZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgot
PGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgdGhlIGF0dHJpYnV0aW9uIGlzIHVwZGF0
ZWQgaWYgaXQgZ2V0cyBhIHNlY29uZCBjb252ZXJzaW9uIHdpdGggaGlnaGVyIHByaW9yaXR5Ljwv
ZGl2PgotPGEgaWQ9InRhcmdldExpbmsiPkxpbms8L2E+PGJyPgotPGRpdiBpZD0ib3V0cHV0Ij48
L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgY29uc3QgcGF0aCA9ICIvYWRDbGlja0F0dHJpYnV0aW9uL3Nl
Y29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwiOwotICAgIGNvbnN0IGNv
bmZpZ3VyYXRpb24gPSBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIGhyZWY6ICJodHRwOi8vbG9j
YWxob3N0OjgwMDAiICsgcGF0aCArICI/c3RlcFR3byIsCi0gICAgICAgICAgICBhZGNhbXBhaWdu
aWQ6ICIzIiwKLSAgICAgICAgICAgIGFkZGVzdGluYXRpb246ICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiCi0gICAgICAgIH0KLSAgICBdOwotCi0gICAgcHJlcGFyZVRlc3QoKTsKLQotICAgIGZ1bmN0
aW9uIGNvbmZpZ3VyZUxpbmsoaW5kZXgpIHsKLSAgICAgICAgbGV0IGxpbmtFbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKTsKLSAgICAgICAgbGlua0VsZW1lbnQu
c2V0QXR0cmlidXRlKCJocmVmIiwgY29uZmlndXJhdGlvbltpbmRleF0uaHJlZik7Ci0gICAgICAg
IGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRjYW1wYWlnbmlkIiwgY29uZmlndXJhdGlvbltp
bmRleF0uYWRjYW1wYWlnbmlkKTsKLSAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJh
ZGRlc3RpbmF0aW9uIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRkZXN0aW5hdGlvbik7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2
YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAg
IHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAv
IDI7Ci0gICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9m
ZnNldEhlaWdodCAvIDI7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2Vu
dGVyWSkudGhlbigKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0g
ICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsK
LSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAg
ICAgICApOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNvbnZlcnQocHJpb3JpdHksIGNhbGxiYWNr
KSB7Ci0gICAgICAgIGxldCBwaXhlbEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cGl4ZWwiKTsKLSAgICAgICAgaWYgKHBpeGVsRWxlbWVudCkKLSAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkucmVtb3ZlQ2hpbGQocGl4ZWxFbGVtZW50KTsKLQotICAgICAgICBsZXQgaW1hZ2VFbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgIGltYWdlRWxlbWVu
dC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9hZENsaWNrQXR0cmlidXRpb24vcmVzb3Vy
Y2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZwcmlvcml0eT0i
ICsgcHJpb3JpdHk7Ci0gICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0gICAgICAg
IGltYWdlRWxlbWVudC5vbmVycm9yID0gY2FsbGJhY2s7Ci0gICAgICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0
KCkgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgIGlmICh3
aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiIikgewotICAgICAgICAgICAgICAgIC8vIEFkIGNs
aWNrIDEyNy4wLjAuMSDigJM+IGxvY2FsaG9zdC4KLSAgICAgICAgICAgICAgICBjb25maWd1cmVM
aW5rKDApOwotICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwot
ICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBU
d28iKSB7Ci0gICAgICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgYWQgY2xpY2sgd2l0aCBwcmlv
cml0eSAzLgotICAgICAgICAgICAgICAgIGNvbnZlcnQoIjAzIiwgZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIGFkIGNsaWNrIHdpdGggcHJpb3JpdHkgNC4K
LSAgICAgICAgICAgICAgICAgICAgY29udmVydCgiMDQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbigpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIikp
OwotICAgICAgICAgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5l
clRleHQgPSAiRkFJTCBVbmtub3duIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT0gIiArIHdpbmRv
dy5sb2NhdGlvbi5zZWFyY2ggKyAiLiI7Ci0gICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5p
c2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVu
bmVyLiI7Ci0gICAgICAgIH0KLSAgICB9Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29u
ZC1jb252ZXJzaW9uLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWNvbnZlcnNpb24td2l0aC1s
b3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDcwM2NmZGJhM2VmZjUwOTE4MjVmZWNmNDJhY2FmNGMxZjE4MWFlOGYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
ZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UZXN0cyB0aGF0IHRo
ZSBhdHRyaWJ1dGlvbiBpcyBub3QgdXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGNvbnZlcnNp
b24gd2l0aCBsb3dlciBwcmlvcml0eS4KLQotCi1Db252ZXJ0ZWQgQWQgQ2xpY2sgQXR0cmlidXRp
b25zOgotV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uIDEKLVNvdXJjZTogMTI3LjAuMC4xCi1E
ZXN0aW5hdGlvbjogbG9jYWxob3N0Ci1DYW1wYWlnbiBJRDogMwotQ29udmVyc2lvbiBkYXRhOiAx
MgotQ29udmVyc2lvbiBwcmlvcml0eTogNAotQ29udmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNl
bmQ6IFdpdGhpbiAyNC00OCBob3VycwotQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNv
bmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXBy
aW9yaXR5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjZmY5NmFhNTlhNDRh
NjFjOTdiYzZiNTY4YmQwNzA5MWEwZWNjZGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRp
b24vc2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsODUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08
aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAgPG1ldGEgbmFtZT0idmlld3Bv
cnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNj
YWxhYmxlPW5vIj4KLSAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBl
ci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Ci08
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCB0aGUgYXR0cmlidXRpb24gaXMgbm90IHVw
ZGF0ZWQgaWYgaXQgZ2V0cyBhIHNlY29uZCBjb252ZXJzaW9uIHdpdGggbG93ZXIgcHJpb3JpdHku
PC9kaXY+Ci08YSBpZD0idGFyZ2V0TGluayI+TGluazwvYT48YnI+Ci08ZGl2IGlkPSJvdXRwdXQi
PjwvZGl2PgotPHNjcmlwdD4KLSAgICBjb25zdCBwYXRoID0gIi9hZENsaWNrQXR0cmlidXRpb24v
c2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS5odG1sIjsKLSAgICBjb25zdCBj
b25maWd1cmF0aW9uID0gWwotICAgICAgICB7Ci0gICAgICAgICAgICBocmVmOiAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIiArIHBhdGggKyAiP3N0ZXBUd28iLAotICAgICAgICAgICAgYWRjYW1wYWln
bmlkOiAiMyIsCi0gICAgICAgICAgICBhZGRlc3RpbmF0aW9uOiAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIgotICAgICAgICB9Ci0gICAgXTsKLQotICAgIHByZXBhcmVUZXN0KCk7Ci0KLSAgICBmdW5j
dGlvbiBjb25maWd1cmVMaW5rKGluZGV4KSB7Ci0gICAgICAgIGxldCBsaW5rRWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgIGxpbmtFbGVtZW50
LnNldEF0dHJpYnV0ZSgiaHJlZiIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmhyZWYpOwotICAgICAg
ICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFkY2FtcGFpZ25pZCIsIGNvbmZpZ3VyYXRpb25b
aW5kZXhdLmFkY2FtcGFpZ25pZCk7Ci0gICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgi
YWRkZXN0aW5hdGlvbiIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmFkZGVzdGluYXRpb24pOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKLSAgICAgICAg
dmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOwotICAgICAg
ICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGgg
LyAyOwotICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5v
ZmZzZXRIZWlnaHQgLyAyOwotICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNl
bnRlclkpLnRoZW4oCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICB9LAot
ICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7
Ci0gICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjb252ZXJ0KHByaW9yaXR5LCBjYWxsYmFj
aykgewotICAgICAgICBsZXQgcGl4ZWxFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InBpeGVsIik7Ci0gICAgICAgIGlmIChwaXhlbEVsZW1lbnQpCi0gICAgICAgICAgICBkb2N1bWVu
dC5ib2R5LnJlbW92ZUNoaWxkKHBpeGVsRWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IGltYWdlRWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwotICAgICAgICBpbWFnZUVsZW1l
bnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291
cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImcHJpb3JpdHk9
IiArIHByaW9yaXR5OwotICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOwotICAgICAg
ICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGNhbGxiYWNrOwotICAgICAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAo
d2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIiIpIHsKLSAgICAgICAgICAgICAgICAvLyBBZCBj
bGljayAxMjcuMC4wLjEg4oCTPiBsb2NhbGhvc3QuCi0gICAgICAgICAgICAgICAgY29uZmlndXJl
TGluaygwKTsKLSAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsK
LSAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVw
VHdvIikgewotICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIGFkIGNsaWNrIHdpdGggcHJp
b3JpdHkgNC4KLSAgICAgICAgICAgICAgICBjb252ZXJ0KCIwNCIsIGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBhZCBjbGljayB3aXRoIHByaW9yaXR5IDMu
Ci0gICAgICAgICAgICAgICAgICAgIGNvbnZlcnQoIjAzIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIp
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAg
ICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5u
ZXJUZXh0ID0gIkZBSUwgVW5rbm93biB3aW5kb3cubG9jYXRpb24uc2VhcmNoID09ICIgKyB3aW5k
b3cubG9jYXRpb24uc2VhcmNoICsgIi4iOwotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRl
c3RSdW5uZXIuIjsKLSAgICAgICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24v
c2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2VuZC1hdHRyaWJ1dGlvbi1jb252
ZXJzaW9uLXJlcXVlc3QtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBhODIzN2QxNTNmYzdmMGI4MWJkOTAxMTRiYjJhMmU3MGVhOGJiZDliLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YWRDbGlja0F0dHJpYnV0aW9uL3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLVRlc3RzIHNlbmRpbmcg
b2YgYWQgY2xpY2sgYXR0cmlidXRpb24gcmVxdWVzdHMgYWZ0ZXIgYSBjb252ZXJzaW9uLiBBbHNv
IHRlc3RzIHRoYXQgY29va2llcyBhcmUgbm90IHNlbnQgaW4gdGhvc2UgcmVxdWVzdHMgYW5kIGNv
b2tpZXMgYXJlIG5vdCBhY2NlcHRlZCBpbiB0aGUgcmVzcG9uc2VzLgotCi0KLQotLS0tLS0tLS0K
LUZyYW1lOiAnPCEtLWZyYW1lMS0tPicKLS0tLS0tLS0tCi1Db29raWVzIGFyZTogY29va2llU2V0
QXNGaXJzdFBhcnR5ID0gMQotCi0tLS0tLS0tLQotRnJhbWU6ICc8IS0tZnJhbWUyLS0+JwotLS0t
LS0tLS0KLUNvbnZlcnNpb24gcmVjZWl2ZWQuCi1IVFRQX0hPU1Q6IDEyNy4wLjAuMTo4MDAwCi1D
b250ZW50IHR5cGU6IGFwcGxpY2F0aW9uL2pzb24KLVJFUVVFU1RfVVJJOiAvYWRDbGlja0F0dHJp
YnV0aW9uL3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocAotTm8gY29va2llcyBpbiBjb252
ZXJzaW9uIHJlcXVlc3QuCi1SZXF1ZXN0IGJvZHk6Ci17ImNvbnRlbnQtdHlwZSI6ImNsaWNrIiwi
Y29udGVudC1zaXRlIjoiMTI3LjAuMC4xIiwiY29udGVudC1pZCI6MywiY29udmVyc2lvbi1zaXRl
IjoibG9jYWxob3N0IiwiY29udmVyc2lvbi1kYXRhIjoxMiwicmVwb3J0LXZlcnNpb24iOjF9Ci0K
LQotLS0tLS0tLS0KLUZyYW1lOiAnPCEtLWZyYW1lMy0tPicKLS0tLS0tLS0tCi1Db29raWVzIGFy
ZTogY29va2llU2V0QXNGaXJzdFBhcnR5ID0gMQotCi1ObyBzdG9yZWQgQWQgQ2xpY2sgQXR0cmli
dXRpb24gZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0
dHJpYnV0aW9uL3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZW5kLWF0dHJpYnV0aW9uLWNv
bnZlcnNpb24tcmVxdWVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OGZj
YmZhMjVlM2Y1ZTNkYzgxOGJhMGNhOTU1MjlkYzNjMWQyMzNjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlj
a0F0dHJpYnV0aW9uL3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw4MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KLTxodG1sIGxhbmc9
ImVuIj4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1l
PSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEs
IHVzZXItc2NhbGFibGU9bm8iPgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
dWktaGVscGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3Qs
IDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyBzZW5kaW5nIG9mIGFkIGNsaWNrIGF0
dHJpYnV0aW9uIHJlcXVlc3RzIGFmdGVyIGEgY29udmVyc2lvbi4gQWxzbyB0ZXN0cyB0aGF0IGNv
b2tpZXMgYXJlIG5vdCBzZW50IGluIHRob3NlIHJlcXVlc3RzIGFuZCBjb29raWVzIGFyZSBub3Qg
YWNjZXB0ZWQgaW4gdGhlIHJlc3BvbnNlcy48L2Rpdj4KLTxhIGlkPSJ0YXJnZXRMaW5rIiBocmVm
PSJodHRwOi8vbG9jYWxob3N0OjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL3NlbmQtYXR0cmlidXRp
b24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWw/c3RlcFR3byIgYWRjYW1wYWlnbmlkPSIzIiBhZGRl
c3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgotPGRpdiBpZD0i
b3V0cHV0Ij48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgY29uc3QgY3VycmVudFRpbWVNaWxsaXMgPSAo
bmV3IERhdGUoKSkuZ2V0VGltZSgpOwotICAgIGNvbnN0IGhpZ2hFbnRyb3B5Qml0cyA9IGN1cnJl
bnRUaW1lTWlsbGlzIC0gKE1hdGguZmxvb3IoY3VycmVudFRpbWVNaWxsaXMgLyAxMDAwMDAwKSAq
IDEwMDAwMDApOwotICAgIGNvbnN0IG5vbmNlID0gaGlnaEVudHJvcHlCaXRzICsgIiIgKyBNYXRo
LmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApOwotCi0gICAgcHJlcGFyZVRlc3QoKTsKLQotICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLnNldEFkQ2xpY2tB
dHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHRydWUpOwotICAgICAgICB0ZXN0UnVu
bmVyLnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKCJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252ZXJzaW9uUmVw
b3J0LnBocD9ub25jZT0iICsgbm9uY2UpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFjdGl2YXRl
RWxlbWVudChlbGVtZW50SUQpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChlbGVtZW50SUQpOwotICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zm
c2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICB2YXIgY2VudGVyWSA9
IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwotICAgICAgICBV
SUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCi0gICAgICAgICAgICBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewot
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRl
eHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7Ci0gICAgICAgICAgICAgICAgdGVhckRvd25B
bmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBhcHBlbmRJZnJhbWUodXJsLCBvbmxvYWRDYWxsYmFjaykgewotICAgICAgICBsZXQgaWZy
YW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICAgICAgICBp
ZnJhbWVFbGVtZW50LnNyYyA9IHVybDsKLSAgICAgICAgaWYgKG9ubG9hZENhbGxiYWNrKQotICAg
ICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBvbmxvYWRDYWxsYmFjazsKLSAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBhcHBlbmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZpbmlzaCgpIHsKLSAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7Ci0gICAgICAgIGRvY3VtZW50LmJv
ZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7Ci0g
ICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InBpeGVsIikpOwotCi0gICAgICAgIGFwcGVuZElmcmFtZSgiaHR0cDovLzEyNy4wLjAuMTo4MDAw
L2Nvb2tpZXMvcmVzb3VyY2VzL2VjaG8tY29va2llcy5waHAiKTsKLSAgICAgICAgYXBwZW5kSWZy
YW1lKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9n
ZXRDb252ZXJzaW9uRGF0YS5waHA/dGltZW91dF9tcz0yMDAwJm5vbmNlPSIgKyBub25jZSwgZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICBhcHBlbmRJZnJhbWUoImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9jb29raWVzL3Jlc291cmNlcy9lY2hvLWNvb2tpZXMucGhwIiwgZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICB9KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNo
ID09PSAiP3N0ZXBUd28iKSB7Ci0gICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVu
dC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9hZENsaWNrQXR0cmlidXRpb24vcmVzb3Vy
Y2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZub25jZT0iICsg
bm9uY2U7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKLSAgICAg
ICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgICAgICAgICBhcHBlbmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZpbmlzaCgpOwotICAgICAg
ICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChp
bWFnZUVsZW1lbnQpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBkb2N1
bWVudC5jb29raWUgPSAiY29va2llU2V0QXNGaXJzdFBhcnR5PTE7IHBhdGg9LyI7Ci0gICAgICAg
ICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0
cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOwotICAgICAgICB9Ci0gICAg
fQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zdG9yZS1hZC1jbGljay1hdHRyaWJ1dGlvbi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9z
dG9yZS1hZC1jbGljay1hdHRyaWJ1dGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGNmZDMxYTk3YmYxY2ZhY2Y2NTUyYmY1ZjIyNGUyMTMxNDBlMDFhOTQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUtYWQtY2xpY2stYXR0cmlidXRpb24t
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1UZXN0cyBzdG9yYWdl
IG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uLgotCi0KLVVuY29udmVydGVkIEFkIENsaWNrIEF0dHJp
YnV0aW9uczoKLVdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbiAxCi1Tb3VyY2U6IDEyNy4wLjAu
MQotRGVzdGluYXRpb246IGxvY2FsaG9zdAotQ2FtcGFpZ24gSUQ6IDMKLU5vIGNvbnZlcnNpb24g
ZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0
aW9uL3N0b3JlLWFkLWNsaWNrLWF0dHJpYnV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zdG9yZS1hZC1jbGljay1hdHRyaWJ1dGlvbi5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZGY3NmIwNGY1OWJmYmNiYjRmODAwOTliNmYy
OGI3MWNjMGU2MDM3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWFkLWNs
aWNrLWF0dHJpYnV0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0
PXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9
IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl
LXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgotICAgIDxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25s
b2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0
cyBzdG9yYWdlIG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uLjwvZGl2PgotPGEgaWQ9InRhcmdldExp
bmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUt
YWQtY2xpY2stYXR0cmlidXRpb24uaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMiIGFkZGVz
dGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Ci08ZGl2IGlkPSJv
dXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBwcmVwYXJlVGVzdCgpOwotCi0gICAgZnVuY3Rp
b24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBjZW50ZXJYID0g
ZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZh
ciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7
Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKLSAg
ICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBmdW5j
dGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1
dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAgICAgICAgICAg
ICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICApOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3
byIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24o
KTsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5k
RmluaXNoKCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGFjdGl2YXRl
RWxlbWVudCgidGFyZ2V0TGluayIpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9
ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKLSAgICAgICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNr
QXR0cmlidXRpb24vc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUtZGlz
YWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwZTMzYjc1NzBiODJiZjQxNzYzZGFkYzFkNTNkZTU2ZGUyYzIwMDUwLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJh
bC1zZXNzaW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotVGVz
dHMgdGhhdCBzdG9yYWdlIG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uIGlzIGRpc2FibGVkIGluIGVw
aGVtZXJhbCBzZXNzaW9ucy4KLQotCi0KLU5vIHN0b3JlZCBBZCBDbGljayBBdHRyaWJ1dGlvbiBk
YXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRp
b24vc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJh
bC1zZXNzaW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmYzI3NDFhYjEx
YmMxYzdhOTYwZTQ5ZWEyNzM2ZTRlNjQ4NjQ2ZGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmli
dXRpb24vc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDQ2ICswLDAgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGli
bGVWaWV3cG9ydD10cnVlIHVzZUVwaGVtZXJhbFNlc3Npb249dHJ1ZSBdIC0tPgotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYt
OCI+Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0
aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0i
c2V0VGltZW91dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhh
dCBzdG9yYWdlIG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uIGlzIGRpc2FibGVkIGluIGVwaGVtZXJh
bCBzZXNzaW9ucy48L2Rpdj4KLTxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJhbC1z
ZXNzaW9uLmh0bWw/c3RlcFR3byIgYWRjYW1wYWlnbmlkPSIzIiBhZGRlc3RpbmF0aW9uPSJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4K
LTxzY3JpcHQ+Ci0gICAgcHJlcGFyZVRlc3QoKTsKLQotICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxl
bWVudChlbGVtZW50SUQpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChlbGVtZW50SUQpOwotICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0
TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICB2YXIgY2VudGVyWSA9IGVs
ZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwotICAgICAgICBVSUhl
bHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCi0gICAgICAgICAgICBmdW5j
dGlvbiAoKSB7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQg
PSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7Ci0gICAgICAgICAgICAgICAgdGVhckRvd25BbmRG
aW5pc2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBydW5UZXN0KCkgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAg
ICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7Ci0gICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7Ci0gICAgICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0TGluayIpKTsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdl
dExpbmsiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0
UnVubmVyLiI7Ci0gICAgICAgIH0KLSAgICB9Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxv
Y2stYWQtY2xpY2stYXR0cmlidXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1hZC1jbGljay1hdHRyaWJ1dGlvbi1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3MDc0Zjc5OTViMWI4OWQ1ZTg3
ZDA0NjEzYjZlYjA0NWFkNTViOGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9j
ay1hZC1jbGljay1hdHRyaWJ1dGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwx
NyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IEJsb2NrZWQgYnkgY29udGVudCBleHRlbnNpb24K
LUNPTlNPTEUgTUVTU0FHRTogQ2Fubm90IGxvYWQgaW1hZ2UgaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0
My9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9j
b252ZXJzaW9uRGF0YT0xMiBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotVGVzdHMgdGhh
dCBhZCBjbGljayBhdHRyaWJ1dGlvbiByZWRpcmVjdHMgdG8gd2VsbC1rbm93biBsb2NhdGlvbiBk
b24ndCB0cmlnZ2VyIGEgY29udmVyc2lvbiBpZiB0aGV5IGFyZSBibG9ja2VkIGJ5IGNvbnRlbnQg
YmxvY2tlcnMuCi0KLQotCi0tLS0tLS0tLQotRnJhbWU6ICc8IS0tZnJhbWUxLS0+JwotLS0tLS0t
LS0KLUNvbnZlcnNpb24gbm90IHJlY2VpdmVkIC0gdGltZWQgb3V0LgotCi1VbmNvbnZlcnRlZCBB
ZCBDbGljayBBdHRyaWJ1dGlvbnM6Ci1XZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24gMQotU291
cmNlOiAxMjcuMC4wLjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWduIElEOiAzCi1O
byBjb252ZXJzaW9uIGRhdGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nv
bnRlbnRleHRlbnNpb25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0
aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxNGNjZTg2MDU0YjYzMDhm
YmIyMzI2NTY2ZWZkMGM5ZTYxYTYwYWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9i
bG9jay1hZC1jbGljay1hdHRyaWJ1dGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGli
bGVWaWV3cG9ydD10cnVlIF0gLS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0
YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9Indp
ZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwg
MCkiPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgYWQgY2xpY2sgYXR0cmlidXRp
b24gcmVkaXJlY3RzIHRvIHdlbGwta25vd24gbG9jYXRpb24gZG9uJ3QgdHJpZ2dlciBhIGNvbnZl
cnNpb24gaWYgdGhleSBhcmUgYmxvY2tlZCBieSBjb250ZW50IGJsb2NrZXJzLjwvZGl2PgotPGEg
aWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9jb250ZW50ZXh0ZW5z
aW9ucy9ibG9jay1hZC1jbGljay1hdHRyaWJ1dGlvbi5odG1sP3N0ZXBUd28iIGFkY2FtcGFpZ25p
ZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4K
LTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHByZXBhcmVUZXN0KCk7Ci0K
LSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRBZENs
aWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyh0cnVlKTsKLSAgICAgICAgdGVz
dFJ1bm5lci5zZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZygiaHR0
cDovLzEyNy4wLjAuMTo4MDAwL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvY29udmVyc2lv
blJlcG9ydC5waHAiKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxl
bWVudElEKSB7Ci0gICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ZWxlbWVudElEKTsKLSAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBl
bGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKLSAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9m
ZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgVUlIZWxwZXIuYWN0
aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAotICAgICAgICAgICAgZnVuY3Rpb24gKCkg
ewotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwg
UHJvbWlzZSByZWplY3RlZC4iOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYXBwZW5k
SWZyYW1lKHVybCwgb25sb2FkQ2FsbGJhY2spIHsKLSAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKLSAgICAgICAgaWZyYW1lRWxlbWVu
dC5zcmMgPSB1cmw7Ci0gICAgICAgIGlmIChvbmxvYWRDYWxsYmFjaykKLSAgICAgICAgICAgIGlm
cmFtZUVsZW1lbnQub25sb2FkID0gb25sb2FkQ2FsbGJhY2s7Ci0gICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYXBw
ZW5kQ29udmVyc2lvbkRhdGFJZnJhbWVBbmRGaW5pc2goKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbigpOwotICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNo
aWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOwotICAgICAgICBkb2N1
bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsK
LQotICAgICAgICBhcHBlbmRJZnJhbWUoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9hZENsaWNrQXR0
cmlidXRpb24vcmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBocD90aW1lb3V0X21zPTEwMDAi
LCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAg
IH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gg
PT09ICI/c3RlcFR3byIpIHsKLSAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50
LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJj
ZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyIjsKLSAgICAgICAg
ICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOwotICAgICAgICAgICAgICAgIGltYWdl
RWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFwcGVu
ZENvbnZlcnNpb25EYXRhSWZyYW1lQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICAgICAgfTsKLSAg
ICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7Ci0g
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFy
Z2V0TGluayIpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRl
c3RSdW5uZXIuIjsKLSAgICAgICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9i
bG9jay1hZC1jbGljay1hdHRyaWJ1dGlvbi5odG1sLmpzb24gYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLmh0bWwuanNv
bgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWUzOTRlZjExODBiYzhmYmE2ODc2ZTE1
NjMxNDRlODRhNjQ5NGQxNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLWFk
LWNsaWNrLWF0dHJpYnV0aW9uLmh0bWwuanNvbgorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAg
QEAKLVsKLSAgewotICAgICJ0cmlnZ2VyIjogewotICAgICAgInVybC1maWx0ZXIiOiAiLy53ZWxs
LWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLyIKLSAgICB9LAotICAgICJhY3Rpb24iOiB7Ci0g
ICAgICAidHlwZSI6ICJibG9jayIKLSAgICB9Ci0gIH0KLV0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2stcHJpdmF0ZS1jbGljay1tZWFz
dXJlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRl
bnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmIxZmFhYmU5YjI5YzVmNTJhMWM2ZjUxMTM5ZmVlMjUxMmZjMDc5ODMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2Nr
LXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAK
K0NPTlNPTEUgTUVTU0FHRTogQmxvY2tlZCBieSBjb250ZW50IGV4dGVuc2lvbgorQ09OU09MRSBN
RVNTQUdFOiBDYW5ub3QgbG9hZCBpbWFnZSBodHRwczovLzEyNy4wLjAuMTo4NDQzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVy
c2lvbkRhdGE9MTIgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KK1Rlc3RzIHRoYXQgcHJp
dmF0ZSBjbGljayBtZWFzdXJlbWVudCByZWRpcmVjdHMgdG8gd2VsbC1rbm93biBsb2NhdGlvbiBk
b24ndCB0cmlnZ2VyIGEgY29udmVyc2lvbiBpZiB0aGV5IGFyZSBibG9ja2VkIGJ5IGNvbnRlbnQg
YmxvY2tlcnMuCisKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0t
LS0KK0NvbnZlcnNpb24gbm90IHJlY2VpdmVkIC0gdGltZWQgb3V0LgorCitVbmNvbnZlcnRlZCBQ
cml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKK1dlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50IDEKK1NvdXJjZTogMTI3LjAuMC4xCitEZXN0aW5hdGlvbjogbG9jYWxob3N0CitDYW1wYWln
biBJRDogMworTm8gY29udmVyc2lvbiBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXBy
aXZhdGUtY2xpY2stbWVhc3VyZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTkxMDdmNTIyYTRhN2Zl
YzNhZGEzMTliOTI4NDljZTIyODJkZTFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1wcml2YXRlLWNsaWNrLW1lYXN1cmVt
ZW50Lmh0bWwKQEAgLTAsMCArMSw3MiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJl
biI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0i
dmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1
c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3Vp
LWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVz
dHMgdGhhdCBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IHJlZGlyZWN0cyB0byB3ZWxsLWtub3du
IGxvY2F0aW9uIGRvbid0IHRyaWdnZXIgYSBjb252ZXJzaW9uIGlmIHRoZXkgYXJlIGJsb2NrZWQg
YnkgY29udGVudCBibG9ja2Vycy48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvY29udGVudGV4dGVuc2lvbnMvYmxvY2stcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC5odG1sP3N0ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0i
aHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9k
aXY+Cis8c2NyaXB0PgorICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92
ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9y
dC5waHAiKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElE
KSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVu
dElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50
Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRv
cCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVB
dChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlz
ZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAg
ICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYXBwZW5kSWZyYW1l
KHVybCwgb25sb2FkQ2FsbGJhY2spIHsKKyAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMg
PSB1cmw7CisgICAgICAgIGlmIChvbmxvYWRDYWxsYmFjaykKKyAgICAgICAgICAgIGlmcmFtZUVs
ZW1lbnQub25sb2FkID0gb25sb2FkQ2FsbGJhY2s7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYXBwZW5kQ29u
dmVyc2lvbkRhdGFJZnJhbWVBbmRGaW5pc2goKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcFBy
aXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgIGRvY3Vt
ZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOwor
CisgICAgICAgIGFwcGVuZElmcmFtZSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHA/dGltZW91dF9tcz0x
MDAwIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2Vh
cmNoID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAgICAgICAgICAgICAgIGltYWdlRWxl
bWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyIjsK
KyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICAgICAg
ICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIGFwcGVuZENvbnZlcnNpb25EYXRhSWZyYW1lQW5kRmluaXNoKCk7CisgICAgICAgICAgICAg
ICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxl
bWVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxl
bWVudCgidGFyZ2V0TGluayIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJG
QUlMIE5vIHRlc3RSdW5uZXIuIjsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0
ZW5zaW9ucy9ibG9jay1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50Lmh0bWwuanNvbiBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2stcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC5odG1sLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODhmNTFkZTdhYTExODVmMzNmZWM2MDVh
Yjg1MTkwZTlhYjVhYTExNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2stcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC5odG1s
Lmpzb24KQEAgLTAsMCArMSwxMCBAQAorWworICB7CisgICAgInRyaWdnZXIiOiB7CisgICAgICAi
dXJsLWZpbHRlciI6ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8iCisg
ICAgfSwKKyAgICAiYWN0aW9uIjogeworICAgICAgInR5cGUiOiAiYmxvY2siCisgICAgfQorICB9
CitdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L2FuY2hvci10YWctYXR0cmlidXRlcy1yZWZsZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRy
aWJ1dGVzLXJlZmxlY3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzZDMwYmQ2ZDdkY2E5Zjdh
ODNhNzU2ZGNiZTQ2YTFhZGM2ZTcwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2FuY2hvci10YWctYXR0cmlidXRlcy1y
ZWZsZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0IGZvciB0aGUgbmV3IHBy
aXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgYXR0cmlidXRlcyBvbiBhbmNob3IgdGFncy4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYW5jaG9yVGFnLmFkY2FtcGFpZ25pZCBp
cyAiNDAiCitQQVNTIGFuY2hvclRhZy5hZGRlc3RpbmF0aW9uIGlzICJkZXN0aW5hdGlvbi5leGFt
cGxlIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXJlZmxlY3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXJlZmxl
Y3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yMjE2OWZkNmMzZTkxZmQwZmViODJmOTVkZDhhYzY0MjliMGU1
ZDY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtcmVmbGVjdC5odG1sCkBAIC0wLDAg
KzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFByaXZh
dGVDbGlja01lYXN1cmVtZW50RW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8
aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGEg
aWQ9InRlc3RUYWciIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgYWRjYW1wYWlnbmlkPSI0
MCIgYWRkZXN0aW5hdGlvbj0iZGVzdGluYXRpb24uZXhhbXBsZSI+PC9hPgorPHNjcmlwdD4KKyAg
ICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgdGhlIG5ldyBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50
IGF0dHJpYnV0ZXMgb24gYW5jaG9yIHRhZ3MuIik7CisKKyAgICBjb25zdCBhbmNob3JUYWcgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdFRhZyIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiYW5jaG9yVGFnLmFkY2FtcGFpZ25pZCIsICI0MCIpOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiYW5jaG9yVGFnLmFkZGVzdGluYXRpb24iLCAiZGVzdGluYXRpb24uZXhhbXBsZSIp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2FuY2hvci10YWctYXR0cmlidXRlcy12
YWxpZGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlkYXRpb24tZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjgwZTlkMTQ2ZTU0ZGJiMzI1N2RhNjRiZDI3OTMwY2UyZmYwMWJjMGMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L2FuY2hvci10YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDIwIEBACitDT05TT0xFIE1FU1NBR0U6IGFkY2FtcGFpZ25pZCBtdXN0IGhhdmUg
YSBub24tbmVnYXRpdmUgdmFsdWUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDYzIGZvciBQcml2YXRl
IENsaWNrIE1lYXN1cmVtZW50LgorQ09OU09MRSBNRVNTQUdFOiBhZGNhbXBhaWduaWQgbXVzdCBo
YXZlIGEgbm9uLW5lZ2F0aXZlIHZhbHVlIGxlc3MgdGhhbiBvciBlcXVhbCB0byA2MyBmb3IgUHJp
dmF0ZSBDbGljayBNZWFzdXJlbWVudC4KK0NPTlNPTEUgTUVTU0FHRTogYWRjYW1wYWlnbmlkIGNh
biBub3QgYmUgY29udmVydGVkIHRvIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgd2hpY2ggaXMgcmVx
dWlyZWQgZm9yIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQuCitDT05TT0xFIE1FU1NBR0U6IGFk
Y2FtcGFpZ25pZCBjYW4gbm90IGJlIGNvbnZlcnRlZCB0byBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2Vy
IHdoaWNoIGlzIHJlcXVpcmVkIGZvciBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50LgorQ09OU09M
RSBNRVNTQUdFOiBhZGNhbXBhaWduaWQgY2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSBub24tbmVn
YXRpdmUgaW50ZWdlciB3aGljaCBpcyByZXF1aXJlZCBmb3IgUHJpdmF0ZSBDbGljayBNZWFzdXJl
bWVudC4KK0NPTlNPTEUgTUVTU0FHRTogYWRkZXN0aW5hdGlvbiBjb3VsZCBub3QgYmUgY29udmVy
dGVkIHRvIGEgdmFsaWQgSFRUUC1mYW1pbHkgVVJMLgorQ09OU09MRSBNRVNTQUdFOiBhZGRlc3Rp
bmF0aW9uIGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSB2YWxpZCBIVFRQLWZhbWlseSBVUkwu
CitDT05TT0xFIE1FU1NBR0U6IGFkZGVzdGluYXRpb24gY291bGQgbm90IGJlIGNvbnZlcnRlZCB0
byBhIHZhbGlkIEhUVFAtZmFtaWx5IFVSTC4KK0NPTlNPTEUgTUVTU0FHRTogQm90aCBhZGNhbXBh
aWduaWQgYW5kIGFkZGVzdGluYXRpb24gbmVlZCB0byBiZSBzZXQgZm9yIFByaXZhdGUgQ2xpY2sg
TWVhc3VyZW1lbnQgdG8gd29yay4KK0NPTlNPTEUgTUVTU0FHRTogQm90aCBhZGNhbXBhaWduaWQg
YW5kIGFkZGVzdGluYXRpb24gbmVlZCB0byBiZSBzZXQgZm9yIFByaXZhdGUgQ2xpY2sgTWVhc3Vy
ZW1lbnQgdG8gd29yay4KK0NPTlNPTEUgTUVTU0FHRTogYWRkZXN0aW5hdGlvbiBjYW4gbm90IGJl
IHRoZSBzYW1lIHNpdGUgYXMgdGhlIGN1cnJlbnQgd2Vic2l0ZS4KK1Rlc3QgZm9yIHZhbGlkaXR5
IG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgYXR0cmlidXRlcyBvbiBhbmNob3IgdGFncy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2FuY2hvci10YWctYXR0cmlidXRlcy12YWxp
ZGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L2FuY2hvci10YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWMz
YTZmOGIzZTM0MDJhNjBhZTViYjQ0NzRmMWI2OTE5YWEwZGIzNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRh
Zy1hdHRyaWJ1dGVzLXZhbGlkYXRpb24uaHRtbApAQCAtMCwwICsxLDg1IEBACis8IURPQ1RZUEUg
aHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUg
XSAtLT4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRo
LCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIv
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzdHlsZT4K
KyAgICAgICAgLndpZGUtbGluayB7CisgICAgICAgICAgICB3aWR0aDogMTUwcHg7CisgICAgICAg
ICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJydW5BbGxUZXN0cygpIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9u
Ij48L2Rpdj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+PGJyPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZvciB2YWxpZGl0eSBvZiBw
cml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGF0dHJpYnV0ZXMgb24gYW5jaG9yIHRhZ3MuIik7Cisg
ICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBmdW5jdGlvbiBjcmVhdGVQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEFuY2hvckVsZW1lbnQoZWxlbWVudElELCBhZENhbXBhaWduSUQsIGFkRGVz
dGluYXRpb24pIHsKKyAgICAgICAgbGV0IGFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJhIik7CisgICAgICAgIGFuY2hvckVsZW1lbnQuaWQgPSBlbGVtZW50SUQ7CisgICAg
ICAgIGFuY2hvckVsZW1lbnQuY2xhc3NMaXN0LmFkZCgid2lkZS1saW5rIik7CisgICAgICAgIGFu
Y2hvckVsZW1lbnQuYWRjYW1wYWlnbmlkID0gYWRDYW1wYWlnbklEOworICAgICAgICBhbmNob3JF
bGVtZW50LmFkZGVzdGluYXRpb24gPSBhZERlc3RpbmF0aW9uOworICAgICAgICBhbmNob3JFbGVt
ZW50LmhyZWYgPSAiIyI7CisgICAgICAgIGFuY2hvckVsZW1lbnQuaW5uZXJUZXh0ID0gIkxpbmsi
ICsgY3VycmVudFRlc3Q7CisgICAgICAgIHJldHVybiBhbmNob3JFbGVtZW50OworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQsIGNhbGxiYWNrKSB7CisgICAg
ICAgIFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVt
ZW50SUQpKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAg
IGNhbGxiYWNrKCk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByb21pc2UgcmVqZWN0ZWQuIik7CisgICAgICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAg
fQorCisgICAgbGV0IGN1cnJlbnRUZXN0ID0gMDsKKyAgICBmdW5jdGlvbiBydW5PbmVUZXN0KGFk
Q2FtcGFpZ25JRCwgYWREZXN0aW5hdGlvbiwgY2FsbGJhY2spIHsKKyAgICAgICAgY29uc3QgY3Vy
cmVudEVsZW1lbnRJRCA9ICJ0ZXN0IiArIGN1cnJlbnRUZXN0Kys7CisgICAgICAgIGNvbnN0IGFu
Y2hvckVsZW1lbnQgPSBjcmVhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFuY2hvckVsZW1lbnQo
Y3VycmVudEVsZW1lbnRJRCwgYWRDYW1wYWlnbklELCBhZERlc3RpbmF0aW9uKTsKKyAgICAgICAg
b3V0cHV0LmFwcGVuZENoaWxkKGFuY2hvckVsZW1lbnQpOworICAgICAgICBhY3RpdmF0ZUVsZW1l
bnQoY3VycmVudEVsZW1lbnRJRCwgY2FsbGJhY2spOworICAgIH0KKworICAgIGNvbnN0IHZhbGlk
QWRDYW1wYWlnbklEID0gIjAzIjsKKyAgICBjb25zdCB2YWxpZEFkRGVzdGluYXRpb24gPSAiaHR0
cDovL3dlYmtpdC5vcmciOworICAgIGNvbnN0IHNhbWVTaXRlID0gZG9jdW1lbnQubG9jYXRpb24u
b3JpZ2luOworICAgIGNvbnN0IHRlc3RDYXNlcyA9IFsKKyAgICAgICAgWyB2YWxpZEFkQ2FtcGFp
Z25JRCwgdmFsaWRBZERlc3RpbmF0aW9uIF0sCisgICAgICAgIFsgIjEwMCIsIHZhbGlkQWREZXN0
aW5hdGlvbiBdLCAgICAgICAgICAgLy8gVG9vIG1hbnkgY2hhcmFjdGVycy4KKyAgICAgICAgWyAi
MSIsIHZhbGlkQWREZXN0aW5hdGlvbiBdLCAgICAgICAgICAgICAvLyBUb28gZmV3IGNoYXJhY3Rl
cnMuCisgICAgICAgIFsgIjk4IiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAgLy8g
VG9vIGhpZ2ggdmFsdWUuCisgICAgICAgIFsgIi0xIiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAg
ICAgICAgICAgLy8gTmVnYXRpdmUgdmFsdWUuCisgICAgICAgIFsgImFiIiwgdmFsaWRBZERlc3Rp
bmF0aW9uIF0sICAgICAgICAgICAgLy8gTm9uLWRpZ2l0cy4KKyAgICAgICAgWyAi76O/MSIsIHZh
bGlkQWREZXN0aW5hdGlvbiBdLCAgICAgICAgICAgIC8vIE5vbi1BU0NJSS4KKyAgICAgICAgWyAi
IDEiLCB2YWxpZEFkRGVzdGluYXRpb24gXSwgICAgICAgICAgICAvLyBMZWFkaW5nIHNwYWNlLgor
ICAgICAgICBbICIxICIsIHZhbGlkQWREZXN0aW5hdGlvbiBdLCAgICAgICAgICAgIC8vIFRyYWls
aW5nIHNwYWNlLgorICAgICAgICBbIHZhbGlkQWRDYW1wYWlnbklELCAid2Via2l0Lm9yZyIgXSwg
ICAgIC8vIE1pc3NpbmcgcHJvdG9jb2wuCisgICAgICAgIFsgdmFsaWRBZENhbXBhaWduSUQsICI6
Ly93ZWJraXQub3JnIiBdLCAgLy8gUGFydGlhbGx5IG1pc3NpbmcgcHJvdG9jb2wuCisgICAgICAg
IFsgdmFsaWRBZENhbXBhaWduSUQsICLvo7/vo7/vo78iIF0sICAgICAgICAgICAvLyBOb24tQVND
SUkgY2hhcmFjdGVycyBhcyBkZXN0aW5hdGlvbi4KKyAgICAgICAgWyAiIiwgdmFsaWRBZERlc3Rp
bmF0aW9uIF0sICAgICAgICAgICAgICAvLyBFbXB0eSBjYW1wYWlnbiBJRC4KKyAgICAgICAgWyB2
YWxpZEFkQ2FtcGFpZ25JRCwgIiIgXSwgICAgICAgICAgICAgICAvLyBFbXB0eSBkZXN0aW5hdGlv
bi4KKyAgICAgICAgWyB2YWxpZEFkQ2FtcGFpZ25JRCwgc2FtZVNpdGUgXSAgICAgICAgICAvLyBT
YW1lLXNpdGUgZGVzdGluYXRpb24uCisgICAgXTsKKworICAgIGZ1bmN0aW9uIHJ1bkFsbFRlc3Rz
KCkgeworICAgICAgICBpZiAoY3VycmVudFRlc3QgPCB0ZXN0Q2FzZXMubGVuZ3RoKQorICAgICAg
ICAgICAgcnVuT25lVGVzdCh0ZXN0Q2FzZXNbY3VycmVudFRlc3RdWzBdLCB0ZXN0Q2FzZXNbY3Vy
cmVudFRlc3RdWzFdLCBydW5BbGxUZXN0cyk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChvdXRwdXQpOworICAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
YXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3Qt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRp
cmVjdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTdkODY3ZmM2MjA2ODg0NWQ5ZWQyZjlkODhh
OTMyNTNiMjI1MDVhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNy
b3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVz
dHMgdGhhdCB0cmlnZ2VyaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgY29udmVyc2lv
bnMgdGhyb3VnaCBjcm9zcy1zaXRlIHJlZGlyZWN0cyBkbyBub3Qgd29yay4KKworCitVbmNvbnZl
cnRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKK1dlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50IDEKK1NvdXJjZTogMTI3LjAuMC4xCitEZXN0aW5hdGlvbjogbG9jYWxob3N0CitD
YW1wYWlnbiBJRDogMworTm8gY29udmVyc2lvbiBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJz
aW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9u
LXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3NzFi
ZDYwNmUzNjA2ODIyMzEyMjkwMjRlNDM0OTAwY2M4MmEyMjcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9u
LWNvbnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0Lmh0bWwKQEAgLTAs
MCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNl
RmxleGlibGVWaWV3cG9ydD10cnVlIFByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZD10cnVl
IF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYt
OCI+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0
aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
c2V0VGltZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhh
dCB0cmlnZ2VyaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgY29udmVyc2lvbnMgdGhy
b3VnaCBjcm9zcy1zaXRlIHJlZGlyZWN0cyBkbyBub3Qgd29yay48L2Rpdj4KKzxhIGlkPSJ0YXJn
ZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJl
Y3QuaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNj
cmlwdD4KKyAgICBwcmVwYXJlVGVzdCgpOworCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50
KGVsZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0
ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVu
dC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVy
LmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJG
QUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlz
aCgpOworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAg
aWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAgICAgICAg
ICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Cisg
ICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovL2xvY2FsaG9zdDo4NDQz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbk9u
SVBBZGRyZXNzLnBocD9jb252ZXJzaW9uRGF0YT0xMiI7CisgICAgICAgICAgICAgICAgaW1hZ2VF
bGVtZW50LmlkID0gInBpeGVsIjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJv
ciA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKKyAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicGl4ZWwiKSk7CisgICAgICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmlu
aXNoKCk7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOworICAgICAgICAgICAgfQor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91
dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKKyAgICAgICAgfQorICAg
IH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9u
LXRocm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNv
bnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lNDFkMmJmZjVkZDM1YjU5ZmE1M2EyNjBlNjRkZWI4Y2I0NWJhOTc1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4t
bmV3LXdpbmRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdHJpZ2dlcmlu
ZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGNvbnZlcnNpb25zIGluIGEgbmV3IHdpbmRv
dy4KKworCitDb252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CitXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCitTb3VyY2U6IDEyNy4wLjAuMQorRGVzdGluYXRpb246
IGxvY2FsaG9zdAorQ2FtcGFpZ24gSUQ6IDMKK0NvbnZlcnNpb24gZGF0YTogMTIKK0NvbnZlcnNp
b24gcHJpb3JpdHk6IDMKK0NvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4g
MjQtNDggaG91cnMKK0NvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlv
bi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlv
bi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU3MjIzMDI2ZmU2YmNhZGMyZjJhNWZiNWZkODI2MTFiMWEzZTZjOWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1uZXct
d2luZG93Lmh0bWwKQEAgLTAsMCArMSw1OSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIFByaXZhdGVDbGlja01lYXN1
cmVtZW50RW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9
IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+VGVzdHMgdHJpZ2dlcmluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGNv
bnZlcnNpb25zIGluIGEgbmV3IHdpbmRvdy48L2Rpdj4KKzxhIHRhcmdldD0iX2JsYW5rIiByZWw9
Im9wZW5lciIgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVydEFuZFBvc3RNZXNzYWdlQmFjay5o
dG1sIiBhZGNhbXBhaWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MCI+TGluazwvYT48YnI+Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBw
cmVwYXJlVGVzdCgpOworCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkg
eworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJ
RCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5v
ZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3Ag
KyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQo
Y2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2Ug
cmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAg
ICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdl
KGV2ZW50KSB7CisgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0
OjgwMDAiKSB7CisgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YSA9PT0gIkRvbmUiKSB7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXRMaW5rIikpOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNo
KCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJl
Y2VpdmVkIHVua25vd24gbWVzc2FnZTogIiArIGV2ZW50LmRhdGEpOworICAgICAgICAgICAgICAg
IHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVj
dGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisgICAgICAgICAgICB0ZWFyRG93bkFuZEZp
bmlzaCgpOworICAgICAgICB9CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
Im1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCk7CisgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQo
InRhcmdldExpbmsiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7
CisgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICB9CisgICAgfQorPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3Vn
aC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lv
bi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHktZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjg0YjI3MjRmNGZiNTU5ZTU2Y2QxZDlmNGQxZmZjNTk1ZDI0YjY0YjMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9y
aXR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0cmlnZ2VyaW5nIG9mIHBy
aXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgY29udmVyc2lvbnMgd2l0aCBwcmlvcml0eS4KKworCitD
b252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CitXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCAxCitTb3VyY2U6IDEyNy4wLjAuMQorRGVzdGluYXRpb246IGxvY2FsaG9z
dAorQ2FtcGFpZ24gSUQ6IDMKK0NvbnZlcnNpb24gZGF0YTogMTIKK0NvbnZlcnNpb24gcHJpb3Jp
dHk6IDMKK0NvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91
cnMKK0NvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJz
aW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJz
aW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU5Zjk0NTEwZWNjODA0MGQ5OWNmMmY2ZDYyZjhkNGQ1M2VmOWI5ZjEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJp
YnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5Lmh0
bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIFByaXZhdGVDbGlja01lYXN1cmVtZW50RW5h
YmxlZD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFy
c2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRl
dmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+
VGVzdHMgdHJpZ2dlcmluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGNvbnZlcnNpb25z
IHdpdGggcHJpb3JpdHkuPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNp
b24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5Lmh0bWw/c3RlcFR3byIgYWRj
YW1wYWlnbmlkPSIzIiBhZGRlc3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8
L2E+PGJyPgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAgcHJlcGFyZVRl
c3QoKTsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKKyAgICAg
ICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOworICAg
ICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lk
dGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVu
dC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgs
IGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB9
LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVk
LiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24u
c2VhcmNoID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAgICAgICAgICAgICAgIGltYWdl
RWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEy
JnByaW9yaXR5PTAzIjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwi
OworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCgpOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOworICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIp
KTsKKyAgICAgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAg
ICAgICB9OworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VF
bGVtZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYWN0aXZhdGVF
bGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0g
IkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRp
cmVjdC13aXRob3V0LXByaW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdo
LWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJpb3JpdHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjcxZjQ2MmNkMGVjMzBjNmEwMzgyNDE1ZTAzNGUxNjc1ZjFmMDIzYjEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJp
YnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0cmlnZ2VyaW5nIG9mIHByaXZh
dGUgY2xpY2sgbWVhc3VyZW1lbnQgY29udmVyc2lvbnMgd2l0aG91dCBwcmlvcml0eS4KKworCitD
b252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CitXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCAxCitTb3VyY2U6IDEyNy4wLjAuMQorRGVzdGluYXRpb246IGxvY2FsaG9z
dAorQ2FtcGFpZ24gSUQ6IDMKK0NvbnZlcnNpb24gZGF0YTogMTIKK0NvbnZlcnNpb24gcHJpb3Jp
dHk6IDAKK0NvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91
cnMKK0NvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJz
aW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlvcml0eS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252
ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlvcml0eS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmMyMzBiNjlkNzk0YzZlMWE1YmNlNjRhOTY0NGRmNjliZTNlM2VkYWEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXBy
aW9yaXR5Lmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbCBsYW5n
PSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFt
ZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0x
LCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGls
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0
LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdHJpZ2dlcmluZyBvZiBwcml2YXRl
IGNsaWNrIG1lYXN1cmVtZW50IGNvbnZlcnNpb25zIHdpdGhvdXQgcHJpb3JpdHkuPC9kaXY+Cis8
YSBpZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVj
dC13aXRob3V0LXByaW9yaXR5Lmh0bWw/c3RlcFR3byIgYWRjYW1wYWlnbmlkPSIzIiBhZGRlc3Rp
bmF0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgorPGRpdiBpZD0ib3V0
cHV0Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAgcHJlcGFyZVRlc3QoKTsKKworICAgIGZ1bmN0aW9u
IGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVs
ZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIg
Y2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwor
ICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAg
ICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQi
KS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7CisgICAgICAgICAgICAgICAg
dGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28i
KSB7CisgICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImltZyIpOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6
Ly8xMjcuMC4wLjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJl
Y3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyIjsKKyAgICAgICAgICAgICAgICBp
bWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5v
bmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7
CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOworICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFu
ZEZpbmlzaCgpOworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAgIH0K
KyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY2xlYXItdGhyb3VnaC13ZWJz
aXRlLWRhdGEtcmVtb3ZhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L2NsZWFyLXRocm91Z2gtd2Vic2l0ZS1kYXRhLXJlbW92YWwt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjYjVkMzZiNjM0YmEwZjViNWI1NjY3MzFkMDMzMDJk
ZTNjOTA3ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L2NsZWFyLXRocm91Z2gtd2Vic2l0ZS1kYXRhLXJlbW92YWwtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGVzdHMgdGhhdCBib3RoIHVuY29udmVydGVkIGFu
ZCBjb252ZXJ0ZWQgYXR0cmlidXRpb25zIGFyZSBjbGVhcmVkIG9uIHdlYnNpdGUgZGF0YSByZW1v
dmFsLgorCisKKworTm8gc3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgZGF0YS4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
Y2xlYXItdGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jbGVhci10aHJvdWdoLXdlYnNpdGUtZGF0
YS1yZW1vdmFsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWU3NGFlYmMzZjIxYzYwODUxN2U2NDNkNzA3YTE4
OTdiZjc1NzZhZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvY2xlYXItdGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC5o
dG1sCkBAIC0wLDAgKzEsODMgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVu
YWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hh
cnNldD0iVVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1k
ZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24i
PlRlc3RzIHRoYXQgYm90aCB1bmNvbnZlcnRlZCBhbmQgY29udmVydGVkIGF0dHJpYnV0aW9ucyBh
cmUgY2xlYXJlZCBvbiB3ZWJzaXRlIGRhdGEgcmVtb3ZhbC48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRM
aW5rIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0PgorICAg
IGNvbnN0IHBhdGggPSAiL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NsZWFyLXRocm91Z2gtd2Vi
c2l0ZS1kYXRhLXJlbW92YWwuaHRtbCI7CisgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFsKKyAg
ICAgICAgeworICAgICAgICAgICAgaHJlZjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgKyBwYXRo
ICsgIj9zdGVwVHdvIiwKKyAgICAgICAgICAgIGFkY2FtcGFpZ25pZDogIjMiLAorICAgICAgICAg
ICAgYWRkZXN0aW5hdGlvbjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgaHJlZjogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgKyBwYXRo
ICsgIj9zdGVwVGhyZWUiLAorICAgICAgICAgICAgYWRjYW1wYWlnbmlkOiAiNCIsCisgICAgICAg
ICAgICBhZGRlc3RpbmF0aW9uOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIgorICAgICAgICB9Cisg
ICAgXTsKKworICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBmdW5jdGlvbiBjb25maWd1cmVMaW5r
KGluZGV4KSB7CisgICAgICAgIGxldCBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXRMaW5rIik7CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiaHJl
ZiIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmhyZWYpOworICAgICAgICBsaW5rRWxlbWVudC5zZXRB
dHRyaWJ1dGUoImFkY2FtcGFpZ25pZCIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmFkY2FtcGFpZ25p
ZCk7CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRkZXN0aW5hdGlvbiIsIGNv
bmZpZ3VyYXRpb25baW5kZXhdLmFkZGVzdGluYXRpb24pOworICAgIH0KKworICAgIGZ1bmN0aW9u
IGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVs
ZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIg
Y2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwor
ICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAg
ICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQi
KS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7CisgICAgICAgICAgICAgICAg
dGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiIikgeworICAg
ICAgICAgICAgICAgIC8vIEZpcnN0IGFkIGNsaWNrIDEyNy4wLjAuMSDigJM+IGxvY2FsaG9zdC4K
KyAgICAgICAgICAgICAgICBjb25maWd1cmVMaW5rKDApOworICAgICAgICAgICAgICAgIGFjdGl2
YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cu
bG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgLy8gQ29u
dmVydCB0aGUgZmlyc3QgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSA0LCB0aGVuIGRvIGEgcmV2ZXJz
ZSBhZCBjbGljay4KKyAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW1nIik7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9
ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNl
cy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImcHJpb3JpdHk9MDQi
OworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7CisgICAgICAgICAg
ICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAg
ICAgICAgIC8vIFNlY29uZCBhZCBjbGljayBsb2NhbGhvc3Qg4oCTPiAxMjcuMC4wLjEuCisgICAg
ICAgICAgICAgICAgICAgIGNvbmZpZ3VyZUxpbmsoMSk7CisgICAgICAgICAgICAgICAgICAgIGFj
dGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOworICAgICAgICAgICAgICAgIH07CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOworICAgICAg
ICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUaHJlZSIp
IHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIp
KTsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iiku
aW5uZXJUZXh0ID0gIkZBSUwgVW5rbm93biB3aW5kb3cubG9jYXRpb24uc2VhcmNoID09ICIgKyB3
aW5kb3cubG9jYXRpb24uc2VhcmNoICsgIi4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5k
RmluaXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVz
dFJ1bm5lci4iOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJz
aW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xZjFhYTA0MmIxMDI3MzkwNDYyNzdmMWQ4YmNiMGM3OTliZDZiNTk0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252
ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE1IEBACitUZXN0cyB0aGF0IHN0b3JlZCBhdHRyaWJ1dGlvbnMgY2Fubm90IGJlIGNvbnZl
cnRlZCBpbiBhbiBlcGhlbWVyYWwgc2Vzc2lvbi4KKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwh
LS1mcmFtZTEtLT4nCistLS0tLS0tLQorQ29udmVyc2lvbiBub3QgcmVjZWl2ZWQgLSB0aW1lZCBv
dXQuCisKK1VuY29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgorV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQorU291cmNlOiAxMjcuMC4wLjEKK0Rlc3RpbmF0aW9u
OiBsb2NhbGhvc3QKK0NhbXBhaWduIElEOiAzCitObyBjb252ZXJzaW9uIGRhdGEuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvbnZl
cnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29udmVyc2lvbi1kaXNhYmxlZC1pbi1l
cGhlbWVyYWwtc2Vzc2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjMDc4NDY2MmM1MDVjNmIxYjY5MTgw
NTU5MDg4YjhjZjNjOTYxOTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1l
cmFsLXNlc3Npb24uaHRtbApAQCAtMCwwICsxLDgwIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1s
IGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8bWV0
YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNj
YWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1
blRlc3QsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IHN0b3JlZCBhdHRy
aWJ1dGlvbnMgY2Fubm90IGJlIGNvbnZlcnRlZCBpbiBhbiBlcGhlbWVyYWwgc2Vzc2lvbi48L2Rp
dj4KKzxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lv
bi5odG1sP3N0ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2Ny
aXB0PgorICAgIGNvbnN0IGN1cnJlbnRUaW1lTWlsbGlzID0gKG5ldyBEYXRlKCkpLmdldFRpbWUo
KTsKKyAgICBjb25zdCBoaWdoRW50cm9weUJpdHMgPSBjdXJyZW50VGltZU1pbGxpcyAtIChNYXRo
LmZsb29yKGN1cnJlbnRUaW1lTWlsbGlzIC8gMTAwMDAwMCkgKiAxMDAwMDAwKTsKKyAgICBjb25z
dCBub25jZSA9IGhpZ2hFbnRyb3B5Qml0cyArICIiICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgp
ICogMTAwKTsKKworICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJz
aW9uVVJMRm9yVGVzdGluZygiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocD9ub25jZT0iICsgbm9uY2UpOwor
CisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2YXIg
ZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZh
ciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7
CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNl
dEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVy
WSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKKyAg
ICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAgICAg
ICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFwcGVuZElmcmFtZSh1cmwsIG9ubG9hZENhbGxi
YWNrKSB7CisgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaWZyYW1lIik7CisgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBp
ZiAob25sb2FkQ2FsbGJhY2spCisgICAgICAgICAgICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IG9u
bG9hZENhbGxiYWNrOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVs
ZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFwcGVuZENvbnZlcnNpb25EYXRhSWZyYW1l
QW5kRmluaXNoKCkgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCgpOworICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOworCisgICAgICAgIGFwcGVuZElmcmFtZSgiaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRDb252
ZXJzaW9uRGF0YS5waHA/dGltZW91dF9tcz0xMDAwJm5vbmNlPSIgKyBub25jZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBU
d28iKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRTd2FwVG9FcGhlbWVy
YWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbih0cnVlKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cu
bG9jYXRpb24gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbD9zdGVwVGhyZWUi
OworICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0
ZXBUaHJlZSIpIHsKKyAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW1nIik7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9
ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNl
cy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImbm9uY2U9IiArIG5v
bmNlOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7CisgICAgICAg
ICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4dE5h
dmlnYXRpb24odHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29udmVyc2lvbi1k
aXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sP3N0ZXBGb3VyIjsKKyAgICAgICAgICAg
ICAgICB9OworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VF
bGVtZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9
PT0gIj9zdGVwRm91ciIpIHsKKyAgICAgICAgICAgICAgICBhcHBlbmRDb252ZXJzaW9uRGF0YUlm
cmFtZUFuZEZpbmlzaCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5jb29raWUgPSAiY29va2llU2V0QXNGaXJzdFBhcnR5PTE7IHBhdGg9LyI7CisgICAg
ICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAgICB9
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
b3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9Cisg
ICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb25z
LXJlbW92ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44YjNlMmI4ZDEyZmMyYWVhZmJlOTAyNDkyMjUzOGU3OGJkMjU4N2RlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDUgQEAKK1Rlc3RzIGV4cGlyYXRpb24gb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudC4KKwor
CisKK05vIHN0b3JlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50IGRhdGEuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQt
YXR0cmlidXRpb25zLXJlbW92ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hdHRyaWJ1dGlvbnMtcmVtb3ZlZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU3ZjMwMjRjMDFhMzcxZDc0YTI3ODAyMzZjMTk1ZTcwYzI2MzQ4Y2YKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L2V4cGlyZWQtYXR0cmlidXRpb25zLXJlbW92ZWQuaHRtbApAQCAtMCwwICsxLDUzIEBACis8IURP
Q1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0
PXRydWUgXSAtLT4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9
IlVURi04Ij4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl
LXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0
cyBleHBpcmF0aW9uIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQuPC9kaXY+Cis8YSBpZD0i
dGFyZ2V0TGluayIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb25zLXJlbW92ZWQuaHRtbD9zdGVwVHdvIiBhZGNhbXBh
aWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48
YnI+Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBwcmVwYXJlVGVzdCgp
OworCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2
YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAg
IHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAv
IDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9m
ZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2Vu
dGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsK
KyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAg
ICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFy
Y2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm1hcmtQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CisgICAgICAgICAgICAg
ICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAg
ICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhw
P2NvbnZlcnNpb25EYXRhPTEyIjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAi
cGl4ZWwiOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZhdGVDbGlja01lYXN1
cmVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBp
eGVsIikpOworICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAg
ICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChp
bWFnZUVsZW1lbnQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhY3Rp
dmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRl
eHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25GaWxlUGF0aC5waHAgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9j
b252ZXJzaW9uRmlsZVBhdGgucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjZTk0NzI2NjUxNTdmZWViMzdjZjll
NWVkNTFkYzNjYjVkNjdhYmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uRmlsZVBhdGgu
cGhwCkBAIC0wLDAgKzEsOSBAQAorPD9waHAKK3JlcXVpcmVfb25jZSAnLi4vLi4vcmVzb3VyY2Vz
L3BvcnRhYmlsaXR5TGF5ZXIucGhwJzsKKworaWYgKGlzc2V0KCRfR0VUWyJub25jZSJdKSkKKyAg
ICAkY29udmVyc2lvbkZpbGVOYW1lID0gIi9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNp
b24iIC4gJF9HRVRbIm5vbmNlIl0gLiAiLnR4dCI7CitlbHNlCisgICAgJGNvbnZlcnNpb25GaWxl
TmFtZSA9ICIvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uLnR4dCI7CiskY29udmVy
c2lvbkZpbGVQYXRoID0gc3lzX2dldF90ZW1wX2RpcigpIC4gJGNvbnZlcnNpb25GaWxlTmFtZTsK
Kz8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQu
cGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmI1YzIwMjY5Yzc4NDkwNmZmZjc0NzQ0OGIzODgxZjQwNjM3YWJjMDEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocApAQCAtMCwwICsxLDM3IEBA
Cis8P3BocAorcmVxdWlyZV9vbmNlICdjb252ZXJzaW9uRmlsZVBhdGgucGhwJzsKKworJGNvbnZl
cnNpb25GaWxlID0gZm9wZW4oJGNvbnZlcnNpb25GaWxlUGF0aCAuICIudG1wIiwgJ3cnKTsKKyRo
dHRwSGVhZGVycyA9ICRfU0VSVkVSOworJGNvb2tpZXNGb3VuZCA9IGZhbHNlOworZm9yZWFjaCAo
JGh0dHBIZWFkZXJzIGFzICRuYW1lID0+ICR2YWx1ZSkgeworICAgIGlmICgkbmFtZSA9PT0gIkhU
VFBfSE9TVCIpIHsKKyAgICAgICAgZndyaXRlKCRjb252ZXJzaW9uRmlsZSwgIiRuYW1lOiAkdmFs
dWVcbiIpOworICAgIH0gZWxzZSBpZiAoJG5hbWUgPT09ICJSRVFVRVNUX1VSSSIpIHsKKyAgICAg
ICAgJHBvc2l0aW9uT2ZOb25jZSA9IHN0cnBvcygkdmFsdWUsICI/bm9uY2U9Iik7CisgICAgICAg
IGlmICgkcG9zaXRpb25PZk5vbmNlID09PSBmYWxzZSkKKyAgICAgICAgICAgICRvdXRwdXRVUkwg
PSAkdmFsdWU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRvdXRwdXRVUkwgPSBzdWJzdHIo
JHZhbHVlLCAwLCAkcG9zaXRpb25PZk5vbmNlKTsKKyAgICAgICAgZndyaXRlKCRjb252ZXJzaW9u
RmlsZSwgIiRuYW1lOiAkb3V0cHV0VVJMXG4iKTsKKyAgICB9IGVsc2UgaWYgKCRuYW1lID09PSAi
SFRUUF9DT09LSUUiKSB7CisgICAgICAgIGZ3cml0ZSgkY29udmVyc2lvbkZpbGUsICJDb29raWVz
IGluIGNvbnZlcnNpb24gcmVxdWVzdDogJHZhbHVlXG4iKTsKKyAgICAgICAgJGNvb2tpZXNGb3Vu
ZCA9IHRydWU7CisgICAgfSBlbHNlIGlmICgkbmFtZSA9PT0gIkNPTlRFTlRfVFlQRSIpIHsKKyAg
ICAgICAgZndyaXRlKCRjb252ZXJzaW9uRmlsZSwgIkNvbnRlbnQgdHlwZTogJHZhbHVlXG4iKTsK
KyAgICB9Cit9CitpZiAoISRjb29raWVzRm91bmQpIHsKKyAgICBmd3JpdGUoJGNvbnZlcnNpb25G
aWxlLCAiTm8gY29va2llcyBpbiBjb252ZXJzaW9uIHJlcXVlc3QuXG4iKTsKK30KKworJHJlcXVl
c3RCb2R5ID0gZmlsZV9nZXRfY29udGVudHMoJ3BocDovL2lucHV0Jyk7Citmd3JpdGUoJGNvbnZl
cnNpb25GaWxlLCAiUmVxdWVzdCBib2R5OlxuJHJlcXVlc3RCb2R5XG4iKTsKKworZmNsb3NlKCRj
b252ZXJzaW9uRmlsZSk7CityZW5hbWUoJGNvbnZlcnNpb25GaWxlUGF0aCAuICIudG1wIiwgJGNv
bnZlcnNpb25GaWxlUGF0aCk7CisKK2hlYWRlcigiSFRUUC8xLjEgMjAwIE9LIik7CitzZXRjb29r
aWUoImNvb2tpZVNldEluQ29udmVyc2lvblJlcG9ydCIsICIxIiwgMCwgIi8iKTsKKworPz4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
cmVzb3VyY2VzL2NvbnZlcnRBbmRQb3N0TWVzc2FnZUJhY2suaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnRBbmRQb3N0
TWVzc2FnZUJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTgxOTNmYTEwNjk0NDU5MGRmNjgyYmE2NGIz
M2FmNTg5NzUwYjk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVydEFuZFBvc3RNZXNzYWdlQmFj
ay5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4i
PgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQ+CisgICAg
ICAgIGZ1bmN0aW9uIGZpcmVDb252ZXJzaW9uUGl4ZWwoKSB7CisgICAgICAgICAgICBsZXQgaW1h
Z2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CisgICAgICAgICAgICBp
bWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0
YT0xMiZwcmlvcml0eT0wMyI7CisgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwi
OworICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJwaXhlbCIpKTsKKyAgICAgICAgICAgICAgICBwb3N0TWVzc2FnZUJhY2soKTsKKyAgICAg
ICAgICAgIH07CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxl
bWVudCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBwb3N0TWVzc2FnZUJhY2soKSB7
CisgICAgICAgICAgICBpZiAod2luZG93Lm9wZW5lcikgeworICAgICAgICAgICAgICAgIHdpbmRv
dy5vcGVuZXIucG9zdE1lc3NhZ2UoIkRvbmUiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIik7Cisg
ICAgICAgICAgICAgICAgd2luZG93LmNsb3NlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChmaXJlQ29u
dmVyc2lvblBpeGVsLCAwKSI+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhwIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29udmVyc2lv
bkRhdGEucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1ZTIyMDcxNWFmZDY3ZTBiOGVhODk1Njc5MmY0OTBhNGJl
MDNhY2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHAKQEAgLTAsMCAr
MSw1NCBAQAorPD9waHAKK3JlcXVpcmVfb25jZSAnY29udmVyc2lvbkZpbGVQYXRoLnBocCc7CisK
KyRub1RpbWVvdXQgPSBUcnVlOworJHRpbWVvdXRNc2VjcyA9IDA7CitpZiAoaXNzZXQoJF9HRVRb
J3RpbWVvdXRfbXMnXSkpIHsKKyAgICAkbm9UaW1lb3V0ID0gRmFsc2U7CisgICAgJHRpbWVvdXRN
c2VjcyA9IChpbnQpICRfR0VUWyd0aW1lb3V0X21zJ107Cit9CisKKyRjb252ZXJzaW9uRmlsZUZv
dW5kID0gRmFsc2U7Cit3aGlsZSAoJG5vVGltZW91dCB8fCAkdGltZW91dE1zZWNzID4gMCkgewor
ICAgIGlmIChmaWxlX2V4aXN0cygkY29udmVyc2lvbkZpbGVQYXRoKSkgeworICAgICAgICAkY29u
dmVyc2lvbkZpbGVGb3VuZCA9IFRydWU7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICAkc2xl
ZXBNc2VjcyA9IDEwOworICAgIHVzbGVlcCgkc2xlZXBNc2VjcyAqIDEwMDApOworICAgIGlmICgh
JG5vVGltZW91dCkgeworICAgICAgICAkdGltZW91dE1zZWNzIC09ICRzbGVlcE1zZWNzOworICAg
IH0KKyAgICAvLyBmaWxlX2V4aXN0cygpIGNhY2hlcyByZXN1bHRzLCB3ZSB3YW50IHRvIGludmFs
aWRhdGUgdGhlIGNhY2hlLgorICAgIGNsZWFyc3RhdGNhY2hlKCk7Cit9CisKKworZWNobyAiPGh0
bWw+PGJvZHk+XG4iOworCitpZiAoJGNvbnZlcnNpb25GaWxlRm91bmQpIHsKKyAgICBlY2hvICJD
b252ZXJzaW9uIHJlY2VpdmVkLiI7CisgICAgJGNvbnZlcnNpb25GaWxlID0gZm9wZW4oJGNvbnZl
cnNpb25GaWxlUGF0aCwgJ3InKTsKKyAgICB3aGlsZSAoJGxpbmUgPSBmZ2V0cygkY29udmVyc2lv
bkZpbGUpKSB7CisgICAgICAgIGVjaG8gIjxicj4iOworICAgICAgICBlY2hvIHRyaW0oJGxpbmUp
OworICAgIH0KKyAgICBlY2hvICI8YnI+IjsKKyAgICBmY2xvc2UoJGNvbnZlcnNpb25GaWxlKTsK
KyAgICB1bmxpbmsoJGNvbnZlcnNpb25GaWxlUGF0aCk7Cit9IGVsc2UgeworICAgIGVjaG8gIkNv
bnZlcnNpb24gbm90IHJlY2VpdmVkIC0gdGltZWQgb3V0Ljxicj4iOworfQorCitpZiAoaXNzZXQo
JF9HRVRbJ2VuZFRlc3QnXSkpIHsKKyAgICBlY2hvICI8c2NyaXB0PiI7CisgICAgZWNobyAiaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7IjsKKyAgICBlY2hvICIgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7IjsKKyAgICBlY2hvICIgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGZhbHNlKTsiOworICAgIGVjaG8gIiAgICB0ZXN0
UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rpbmco
JycpOyI7CisgICAgZWNobyAifSI7CisgICAgZWNobyAiPC9zY3JpcHQ+IjsKK30KKworZWNobyAi
PC9ib2R5PjwvaHRtbD4iOworPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBo
cCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3Vy
Y2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOGEzNjY3MDNlZDkzMjFi
ZGUyNTNkMmEwZjVhZTU3OTk2ZGYwMGZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0Nv
bnZlcnNpb24ucGhwCkBAIC0wLDAgKzEsOSBAQAorPD9waHAKK2hlYWRlcigiSFRUUC8xLjEgMzAy
IEZvdW5kIik7CitoZWFkZXIoIkNhY2hlLUNvbnRyb2w6IG5vLWNhY2hlLCBuby1zdG9yZSwgbXVz
dC1yZXZhbGlkYXRlIik7CitpZiAoaXNzZXQoJF9HRVRbImNvbnZlcnNpb25EYXRhIl0pICYmIGlz
c2V0KCRfR0VUWyJwcmlvcml0eSJdKSkgeworICBoZWFkZXIoIkxvY2F0aW9uOiAvLndlbGwta25v
d24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8iIC4gJF9HRVRbImNvbnZlcnNpb25EYXRhIl0g
LiAiLyIgLiAkX0dFVFsicHJpb3JpdHkiXSk7Cit9IGVsc2UgaWYgKGlzc2V0KCRfR0VUWyJjb252
ZXJzaW9uRGF0YSJdKSkgeworICBoZWFkZXIoIkxvY2F0aW9uOiAvLndlbGwta25vd24vcHJpdmF0
ZS1jbGljay1tZWFzdXJlbWVudC8iIC4gJF9HRVRbImNvbnZlcnNpb25EYXRhIl0pOworfQorPz4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uT25JUEFkZHJlc3MucGhwIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJl
Y3RUb0NvbnZlcnNpb25PbklQQWRkcmVzcy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjg0YWVhOGQ0Mjc5NDhj
MTlhZmRhZjYxZDJlYmNlMWJlM2I2YmY3ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9D
b252ZXJzaW9uT25JUEFkZHJlc3MucGhwCkBAIC0wLDAgKzEsOCBAQAorPD9waHAKK2hlYWRlcigi
SFRUUC8xLjAgMzAyIEZvdW5kIik7CitpZiAoaXNzZXQoJF9HRVRbImNvbnZlcnNpb25EYXRhIl0p
ICYmIGlzc2V0KCRfR0VUWyJwcmlvcml0eSJdKSkgeworICBoZWFkZXIoIkxvY2F0aW9uOiBodHRw
czovLzEyNy4wLjAuMTo4MDAwLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQv
IiAuICRfR0VUWyJjb252ZXJzaW9uRGF0YSJdIC4gIi8iIC4gJF9HRVRbInByaW9yaXR5Il0pOwor
fSBlbHNlIGlmIChpc3NldCgkX0dFVFsiY29udmVyc2lvbkRhdGEiXSkpIHsKKyAgaGVhZGVyKCJM
b2NhdGlvbjogaHR0cHM6Ly8xMjcuMC4wLjE6ODAwMC8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNr
LW1lYXN1cmVtZW50LyIgLiAkX0dFVFsiY29udmVyc2lvbkRhdGEiXSk7Cit9Cis/PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNv
dXJjZXMvdXRpbC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvcmVzb3VyY2VzL3V0aWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTdiMzM2YTk5OTdmN2VhOWYyZGJh
ZWU4Y2NhNjYxYzk0YWRkMjE3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3V0aWwuanMKQEAgLTAsMCAr
MSwxNyBAQAorZnVuY3Rpb24gcHJlcGFyZVRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB0ZXN0
UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSh0
cnVlKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRlYXJEb3duQW5kRmluaXNoKCkgeworICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldEFsbG93c0FueVNT
TENlcnRpZmljYXRlKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKCIi
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQt
YXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0
dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTkwZDI2ZjZhZmRiZDNlY2RjMjEzYmZlMjNhMzYzZGQxNzQ3YmNhMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCBhIHNlY29uZCBhdHRyaWJ1dGlv
biBjb252ZXJzaW9uIHdpdGggaGlnaGVyIHByaW9yaXR5IHJlcGxhY2VzIGFuIG9sZGVyIHdpdGgg
bG93ZXIgcHJpb3JpdHkuCisKKworQ29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRz
OgorV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQorU291cmNlOiAxMjcuMC4wLjEK
K0Rlc3RpbmF0aW9uOiBsb2NhbGhvc3QKK0NhbXBhaWduIElEOiA0CitDb252ZXJzaW9uIGRhdGE6
IDEyCitDb252ZXJzaW9uIHByaW9yaXR5OiA0CitDb252ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8g
c2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCitDb252ZXJzaW9uIHJlcXVlc3Qgc2VudDogZmFsc2UK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQt
YXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjE2OWFiYTAyNTg2ZmNmNTdlYThkOTA2OTI4NDRmMDliZGYwNTU2MwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vj
b25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sCkBAIC0w
LDAgKzEsOTIgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVz
ZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250
ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1u
byI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRpdiBpZD0i
ZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgYSBzZWNvbmQgYXR0cmlidXRpb24gY29udmVyc2lvbiB3
aXRoIGhpZ2hlciBwcmlvcml0eSByZXBsYWNlcyBhbiBvbGRlciB3aXRoIGxvd2VyIHByaW9yaXR5
LjwvZGl2PgorPGEgaWQ9InRhcmdldExpbmsiPkxpbms8L2E+PGJyPgorPGRpdiBpZD0ib3V0cHV0
Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAgY29uc3QgcGF0aCA9ICIvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5o
dG1sIjsKKyAgICBjb25zdCBjb25maWd1cmF0aW9uID0gWworICAgICAgICB7CisgICAgICAgICAg
ICBocmVmOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiArIHBhdGggKyAiP3N0ZXBUd28iLAorICAg
ICAgICAgICAgYWRjYW1wYWlnbmlkOiAiMyIsCisgICAgICAgICAgICBhZGRlc3RpbmF0aW9uOiAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
ICBocmVmOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiArIHBhdGggKyAiP3N0ZXBGb3VyIiwKKyAg
ICAgICAgICAgIGFkY2FtcGFpZ25pZDogIjQiLAorICAgICAgICAgICAgYWRkZXN0aW5hdGlvbjog
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKKyAgICAgICAgfQorICAgIF07CisKKyAgICBwcmVwYXJl
VGVzdCgpOworCisgICAgZnVuY3Rpb24gY29uZmlndXJlTGluayhpbmRleCkgeworICAgICAgICBs
ZXQgbGlua0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpOwor
ICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImhyZWYiLCBjb25maWd1cmF0aW9uW2lu
ZGV4XS5ocmVmKTsKKyAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhZGNhbXBhaWdu
aWQiLCBjb25maWd1cmF0aW9uW2luZGV4XS5hZGNhbXBhaWduaWQpOworICAgICAgICBsaW5rRWxl
bWVudC5zZXRBdHRyaWJ1dGUoImFkZGVzdGluYXRpb24iLCBjb25maWd1cmF0aW9uW2luZGV4XS5h
ZGRlc3RpbmF0aW9uKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxl
bWVudElEKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ZWxlbWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBl
bGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9m
ZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0
aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwg
UHJvbWlzZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7
CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBpZiAo
d2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIiIpIHsKKyAgICAgICAgICAgICAgICAvLyBGaXJz
dCBhZCBjbGljayAxMjcuMC4wLjEg4oCTPiBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgY29u
ZmlndXJlTGluaygwKTsKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExp
bmsiKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0g
Ij9zdGVwVHdvIikgeworICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIGZpcnN0IGFkIGNs
aWNrIHdpdGggcHJpb3JpdHkgMyBhbmQgbmF2aWdhdGUgYmFjayB0byAxMjcuMC4wLjEuCisgICAg
ICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlt
ZyIpOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4w
LjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZl
cnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PTAzIjsKKyAgICAgICAgICAgICAg
ICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVu
dC5vbmVycm9yID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5s
b2NhdGlvbi5ocmVmID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgKyBwYXRoICsgIj9zdGVwVGhy
ZWUiOworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cu
bG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUaHJlZSIpIHsKKyAgICAgICAgICAgICAgICAvLyBT
ZWNvbmQgYWQgY2xpY2sgMTI3LjAuMC4xIOKAkz4gbG9jYWxob3N0LgorICAgICAgICAgICAgICAg
IGNvbmZpZ3VyZUxpbmsoMSk7CisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJn
ZXRMaW5rIik7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gg
PT09ICI/c3RlcEZvdXIiKSB7CisgICAgICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgc2Vjb25k
IGFkIGNsaWNrIHdpdGggcHJpb3JpdHkgNCBhbmQgZmluaXNoLgorICAgICAgICAgICAgICAgIGxl
dCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAgICAg
ICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252
ZXJzaW9uRGF0YT0xMiZwcmlvcml0eT0wNCI7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50
LmlkID0gInBpeGVsIjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1v
dmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKKyAgICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicGl4ZWwiKSk7CisgICAgICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7
CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGltYWdlRWxlbWVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBV
bmtub3duIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT0gIiArIHdpbmRvdy5sb2NhdGlvbi5zZWFy
Y2ggKyAiLiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAg
IH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0
aW9uLWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9u
LWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
MzdmMzE4ZmM3NjlhZjFlNmMxOTU3NWQ1MDg0YzAyNTc1MmVjNmRlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQt
YXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgYSBzZWNvbmQgYXR0cmlidXRpb24gY29udmVyc2lv
biB3aXRoIGxvd2VyIHByaW9yaXR5IGRvZXMgbm90IHJlcGxhY2UgYW4gb2xkZXIgd2l0aCBoaWdo
ZXIgcHJpb3JpdHkuCisKKworQ29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgor
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQorU291cmNlOiAxMjcuMC4wLjEKK0Rl
c3RpbmF0aW9uOiBsb2NhbGhvc3QKK0NhbXBhaWduIElEOiAzCitDb252ZXJzaW9uIGRhdGE6IDEy
CitDb252ZXJzaW9uIHByaW9yaXR5OiA0CitDb252ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8gc2Vu
ZDogV2l0aGluIDI0LTQ4IGhvdXJzCitDb252ZXJzaW9uIHJlcXVlc3Qgc2VudDogZmFsc2UKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
c2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRy
aWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5
MjVmYWIyMTg2YzQ4NzYxMGQxM2NiZjA2NjNlOWI4NjQ1NjliNTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1h
dHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS5odG1sCkBAIC0wLDAgKzEs
OTIgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhp
YmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1l
dGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3
aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRpdiBpZD0iZGVzY3Jp
cHRpb24iPlRlc3RzIHRoYXQgYSBzZWNvbmQgYXR0cmlidXRpb24gY29udmVyc2lvbiB3aXRoIGxv
d2VyIHByaW9yaXR5IGRvZXMgbm90IHJlcGxhY2UgYW4gb2xkZXIgd2l0aCBoaWdoZXIgcHJpb3Jp
dHkuPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluayI+TGluazwvYT48YnI+Cis8ZGl2IGlkPSJvdXRw
dXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBjb25zdCBwYXRoID0gIi9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHku
aHRtbCI7CisgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFsKKyAgICAgICAgeworICAgICAgICAg
ICAgaHJlZjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgKyBwYXRoICsgIj9zdGVwVHdvIiwKKyAg
ICAgICAgICAgIGFkY2FtcGFpZ25pZDogIjMiLAorICAgICAgICAgICAgYWRkZXN0aW5hdGlvbjog
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg
ICAgaHJlZjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgKyBwYXRoICsgIj9zdGVwRm91ciIsCisg
ICAgICAgICAgICBhZGNhbXBhaWduaWQ6ICI0IiwKKyAgICAgICAgICAgIGFkZGVzdGluYXRpb246
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiCisgICAgICAgIH0KKyAgICBdOworCisgICAgcHJlcGFy
ZVRlc3QoKTsKKworICAgIGZ1bmN0aW9uIGNvbmZpZ3VyZUxpbmsoaW5kZXgpIHsKKyAgICAgICAg
bGV0IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKTsK
KyAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJocmVmIiwgY29uZmlndXJhdGlvbltp
bmRleF0uaHJlZik7CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRjYW1wYWln
bmlkIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRjYW1wYWlnbmlkKTsKKyAgICAgICAgbGlua0Vs
ZW1lbnQuc2V0QXR0cmlidXRlKCJhZGRlc3RpbmF0aW9uIiwgY29uZmlndXJhdGlvbltpbmRleF0u
YWRkZXN0aW5hdGlvbik7CisgICAgfQorCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVs
ZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsg
ZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5v
ZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFj
dGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlM
IFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgp
OworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYg
KHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICIiKSB7CisgICAgICAgICAgICAgICAgLy8gRmly
c3QgYWQgY2xpY2sgMTI3LjAuMC4xIOKAkz4gbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGNv
bmZpZ3VyZUxpbmsoMCk7CisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRM
aW5rIik7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09
ICI/c3RlcFR3byIpIHsKKyAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBmaXJzdCBhZCBj
bGljayB3aXRoIHByaW9yaXR5IDQgYW5kIG5hdmlnYXRlIGJhY2sgdG8gMTI3LjAuMC4xLgorICAg
ICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJp
bWciKTsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAu
MC4xOjg0NDMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252
ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZwcmlvcml0eT0wNCI7CisgICAgICAgICAgICAg
ICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1l
bnQub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaHJlZiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiICsgcGF0aCArICI/c3RlcFRo
cmVlIjsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93
LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVGhyZWUiKSB7CisgICAgICAgICAgICAgICAgLy8g
U2Vjb25kIGFkIGNsaWNrIDEyNy4wLjAuMSDigJM+IGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAg
ICBjb25maWd1cmVMaW5rKDEpOworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFy
Z2V0TGluayIpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNo
ID09PSAiP3N0ZXBGb3VyIikgeworICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIHNlY29u
ZCBhZCBjbGljayB3aXRoIHByaW9yaXR5IDMgYW5kIGZpbmlzaC4KKyAgICAgICAgICAgICAgICBs
ZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CisgICAgICAg
ICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29u
dmVyc2lvbkRhdGE9MTImcHJpb3JpdHk9MDMiOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVu
dC5pZCA9ICJwaXhlbCI7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZhdGVD
bGlja01lYXN1cmVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVt
b3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInBpeGVsIikpOworICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgp
OworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChpbWFnZUVsZW1lbnQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwg
VW5rbm93biB3aW5kb3cubG9jYXRpb24uc2VhcmNoID09ICIgKyB3aW5kb3cubG9jYXRpb24uc2Vh
cmNoICsgIi4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAg
ICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJz
aW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdo
ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwYTRmZmVlZDZkZmE4MmU5ODAz
ZjZmNmQxMjdhOTY0OThmM2I4MGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGln
aGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHRo
ZSBhdHRyaWJ1dGlvbiBpcyB1cGRhdGVkIGlmIGl0IGdldHMgYSBzZWNvbmQgY29udmVyc2lvbiB3
aXRoIGhpZ2hlciBwcmlvcml0eS4KKworCitDb252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJl
bWVudHM6CitXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCitTb3VyY2U6IDEyNy4w
LjAuMQorRGVzdGluYXRpb246IGxvY2FsaG9zdAorQ2FtcGFpZ24gSUQ6IDMKK0NvbnZlcnNpb24g
ZGF0YTogMTIKK0NvbnZlcnNpb24gcHJpb3JpdHk6IDQKK0NvbnZlcnNpb24gZWFybGllc3QgdGlt
ZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKK0NvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBm
YWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVy
c2lvbi13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhOGIzOGE5NDA2YmNh
OWE3ZWJmMzQxYjI1YjExOTI0NjI4NDMwNDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdp
dGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFET0NUWVBFIGh0bWw+
IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+
Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Cisg
ICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5p
dGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGlt
ZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCB0aGUg
YXR0cmlidXRpb24gaXMgdXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGNvbnZlcnNpb24gd2l0
aCBoaWdoZXIgcHJpb3JpdHkuPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluayI+TGluazwvYT48YnI+
Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBjb25zdCBwYXRoID0gIi9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlv
cml0eS5odG1sIjsKKyAgICBjb25zdCBjb25maWd1cmF0aW9uID0gWworICAgICAgICB7CisgICAg
ICAgICAgICBocmVmOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiArIHBhdGggKyAiP3N0ZXBUd28i
LAorICAgICAgICAgICAgYWRjYW1wYWlnbmlkOiAiMyIsCisgICAgICAgICAgICBhZGRlc3RpbmF0
aW9uOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIgorICAgICAgICB9CisgICAgXTsKKworICAgIHBy
ZXBhcmVUZXN0KCk7CisKKyAgICBmdW5jdGlvbiBjb25maWd1cmVMaW5rKGluZGV4KSB7CisgICAg
ICAgIGxldCBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5r
Iik7CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiaHJlZiIsIGNvbmZpZ3VyYXRp
b25baW5kZXhdLmhyZWYpOworICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFkY2Ft
cGFpZ25pZCIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmFkY2FtcGFpZ25pZCk7CisgICAgICAgIGxp
bmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRkZXN0aW5hdGlvbiIsIGNvbmZpZ3VyYXRpb25baW5k
ZXhdLmFkZGVzdGluYXRpb24pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVu
dChlbGVtZW50SUQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChlbGVtZW50SUQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVm
dCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1l
bnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBl
ci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAi
RkFJTCBQcm9taXNlIHJlamVjdGVkLiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5p
c2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBj
b252ZXJ0KHByaW9yaXR5LCBjYWxsYmFjaykgeworICAgICAgICBsZXQgcGl4ZWxFbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIik7CisgICAgICAgIGlmIChwaXhlbEVsZW1l
bnQpCisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHBpeGVsRWxlbWVudCk7
CisKKyAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlt
ZyIpOworICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBo
cD9jb252ZXJzaW9uRGF0YT0xMiZwcmlvcml0eT0iICsgcHJpb3JpdHk7CisgICAgICAgIGltYWdl
RWxlbWVudC5pZCA9ICJwaXhlbCI7CisgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gY2Fs
bGJhY2s7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAi
IikgeworICAgICAgICAgICAgICAgIC8vIEFkIGNsaWNrIDEyNy4wLjAuMSDigJM+IGxvY2FsaG9z
dC4KKyAgICAgICAgICAgICAgICBjb25maWd1cmVMaW5rKDApOworICAgICAgICAgICAgICAgIGFj
dGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5k
b3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgLy8g
Q29udmVydCB0aGUgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSAzLgorICAgICAgICAgICAgICAgIGNv
bnZlcnQoIjAzIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIENvbnZlcnQg
dGhlIGFkIGNsaWNrIHdpdGggcHJpb3JpdHkgNC4KKyAgICAgICAgICAgICAgICAgICAgY29udmVy
dCgiMDQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRM
aW5rIikpOworICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGls
ZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFVua25vd24g
d2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PSAiICsgd2luZG93LmxvY2F0aW9uLnNlYXJjaCArICIu
IjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91
dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKKyAgICAgICAgfQorICAg
IH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRo
LWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0
eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjNmNWRjZDg5NGMwNDgzNTdjOTE4M2ZmNjAwNDE2
NTMyZGI4MmI0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0
eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCB0aGUgYXR0cmlidXRp
b24gaXMgbm90IHVwZGF0ZWQgaWYgaXQgZ2V0cyBhIHNlY29uZCBjb252ZXJzaW9uIHdpdGggbG93
ZXIgcHJpb3JpdHkuCisKKworQ29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgor
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQorU291cmNlOiAxMjcuMC4wLjEKK0Rl
c3RpbmF0aW9uOiBsb2NhbGhvc3QKK0NhbXBhaWduIElEOiAzCitDb252ZXJzaW9uIGRhdGE6IDEy
CitDb252ZXJzaW9uIHByaW9yaXR5OiA0CitDb252ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8gc2Vu
ZDogV2l0aGluIDI0LTQ4IGhvdXJzCitDb252ZXJzaW9uIHJlcXVlc3Qgc2VudDogZmFsc2UKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
c2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRo
LWxvd2VyLXByaW9yaXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM5NjJjOGI0MjRkNDI5NGI4YmMxN2Y0
OWFiZGNiOTMyMTE3MDkyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1w
cmlvcml0eS5odG1sCkBAIC0wLDAgKzEsODUgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWwgbGFu
Zz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxtZXRhIG5h
bWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9
MSwgdXNlci1zY2FsYWJsZT1ubyI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRp
bC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVz
dCwgMCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgdGhlIGF0dHJpYnV0aW9u
IGlzIG5vdCB1cGRhdGVkIGlmIGl0IGdldHMgYSBzZWNvbmQgY29udmVyc2lvbiB3aXRoIGxvd2Vy
IHByaW9yaXR5LjwvZGl2PgorPGEgaWQ9InRhcmdldExpbmsiPkxpbms8L2E+PGJyPgorPGRpdiBp
ZD0ib3V0cHV0Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAgY29uc3QgcGF0aCA9ICIvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS5odG1s
IjsKKyAgICBjb25zdCBjb25maWd1cmF0aW9uID0gWworICAgICAgICB7CisgICAgICAgICAgICBo
cmVmOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiArIHBhdGggKyAiP3N0ZXBUd28iLAorICAgICAg
ICAgICAgYWRjYW1wYWlnbmlkOiAiMyIsCisgICAgICAgICAgICBhZGRlc3RpbmF0aW9uOiAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIgorICAgICAgICB9CisgICAgXTsKKworICAgIHByZXBhcmVUZXN0
KCk7CisKKyAgICBmdW5jdGlvbiBjb25maWd1cmVMaW5rKGluZGV4KSB7CisgICAgICAgIGxldCBs
aW5rRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIik7CisgICAg
ICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiaHJlZiIsIGNvbmZpZ3VyYXRpb25baW5kZXhd
LmhyZWYpOworICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFkY2FtcGFpZ25pZCIs
IGNvbmZpZ3VyYXRpb25baW5kZXhdLmFkY2FtcGFpZ25pZCk7CisgICAgICAgIGxpbmtFbGVtZW50
LnNldEF0dHJpYnV0ZSgiYWRkZXN0aW5hdGlvbiIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmFkZGVz
dGluYXRpb24pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50
SUQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVt
ZW50SUQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1l
bnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0
VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0
ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9t
aXNlIHJlamVjdGVkLiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjb252ZXJ0KHBy
aW9yaXR5LCBjYWxsYmFjaykgeworICAgICAgICBsZXQgcGl4ZWxFbGVtZW50ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInBpeGVsIik7CisgICAgICAgIGlmIChwaXhlbEVsZW1lbnQpCisgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHBpeGVsRWxlbWVudCk7CisKKyAgICAg
ICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAg
ICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJz
aW9uRGF0YT0xMiZwcmlvcml0eT0iICsgcHJpb3JpdHk7CisgICAgICAgIGltYWdlRWxlbWVudC5p
ZCA9ICJwaXhlbCI7CisgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gY2FsbGJhY2s7Cisg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiIikgeworICAg
ICAgICAgICAgICAgIC8vIEFkIGNsaWNrIDEyNy4wLjAuMSDigJM+IGxvY2FsaG9zdC4KKyAgICAg
ICAgICAgICAgICBjb25maWd1cmVMaW5rKDApOworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxl
bWVudCgidGFyZ2V0TGluayIpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRp
b24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgLy8gQ29udmVydCB0
aGUgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSA0LgorICAgICAgICAgICAgICAgIGNvbnZlcnQoIjA0
IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIGFkIGNs
aWNrIHdpdGggcHJpb3JpdHkgMy4KKyAgICAgICAgICAgICAgICAgICAgY29udmVydCgiMDMiLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZh
dGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5i
b2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZWFy
RG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFVua25vd24gd2luZG93Lmxv
Y2F0aW9uLnNlYXJjaCA9PSAiICsgd2luZG93LmxvY2F0aW9uLnNlYXJjaCArICIuIjsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQi
KS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAgIH0KKyAgICB9Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9u
LXJlcXVlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWNlMjA3Njg1MmZmZDhmYTczZGVjOGFmN2I4YTFkMjBiMTE3M2Ex
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjcgQEAKK1Rlc3RzIHNlbmRpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFz
dXJlbWVudCByZXF1ZXN0cyBhZnRlciBhIGNvbnZlcnNpb24uIEFsc28gdGVzdHMgdGhhdCBjb29r
aWVzIGFyZSBub3Qgc2VudCBpbiB0aG9zZSByZXF1ZXN0cyBhbmQgY29va2llcyBhcmUgbm90IGFj
Y2VwdGVkIGluIHRoZSByZXNwb25zZXMuCisKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJh
bWUxLS0+JworLS0tLS0tLS0KK0Nvb2tpZXMgYXJlOiBjb29raWVTZXRBc0ZpcnN0UGFydHkgPSAx
CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTItLT4nCistLS0tLS0tLQorQ29udmVyc2lv
biByZWNlaXZlZC4KK0hUVFBfSE9TVDogMTI3LjAuMC4xOjgwMDAKK0NvbnRlbnQgdHlwZTogYXBw
bGljYXRpb24vanNvbgorUkVRVUVTVF9VUkk6IC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNv
dXJjZXMvY29udmVyc2lvblJlcG9ydC5waHAKK05vIGNvb2tpZXMgaW4gY29udmVyc2lvbiByZXF1
ZXN0LgorUmVxdWVzdCBib2R5OgoreyJjb250ZW50LXR5cGUiOiJjbGljayIsImNvbnRlbnQtc2l0
ZSI6IjEyNy4wLjAuMSIsImNvbnRlbnQtaWQiOjMsImNvbnZlcnNpb24tc2l0ZSI6ImxvY2FsaG9z
dCIsImNvbnZlcnNpb24tZGF0YSI6MTIsInJlcG9ydC12ZXJzaW9uIjoxfQorCisKKy0tLS0tLS0t
CitGcmFtZTogJzwhLS1mcmFtZTMtLT4nCistLS0tLS0tLQorQ29va2llcyBhcmU6IGNvb2tpZVNl
dEFzRmlyc3RQYXJ0eSA9IDEKKworTm8gc3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQg
ZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlv
bi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDY1ZDA3YzdlMGQ5M2I4Mzgw
YmVlYWM0ZTczNzI5N2MwMjI2MGQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNp
b24tcmVxdWVzdC5odG1sCkBAIC0wLDAgKzEsODAgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWwg
bGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxtZXRh
IG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2Nh
bGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVu
VGVzdCwgMCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHNlbmRpbmcgb2YgcHJpdmF0
ZSBjbGljayBtZWFzdXJlbWVudCByZXF1ZXN0cyBhZnRlciBhIGNvbnZlcnNpb24uIEFsc28gdGVz
dHMgdGhhdCBjb29raWVzIGFyZSBub3Qgc2VudCBpbiB0aG9zZSByZXF1ZXN0cyBhbmQgY29va2ll
cyBhcmUgbm90IGFjY2VwdGVkIGluIHRoZSByZXNwb25zZXMuPC9kaXY+Cis8YSBpZD0idGFyZ2V0
TGluayIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWw/c3RlcFR3byIgYWRjYW1w
YWlnbmlkPSIzIiBhZGRlc3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+
PGJyPgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAgY29uc3QgY3VycmVu
dFRpbWVNaWxsaXMgPSAobmV3IERhdGUoKSkuZ2V0VGltZSgpOworICAgIGNvbnN0IGhpZ2hFbnRy
b3B5Qml0cyA9IGN1cnJlbnRUaW1lTWlsbGlzIC0gKE1hdGguZmxvb3IoY3VycmVudFRpbWVNaWxs
aXMgLyAxMDAwMDAwKSAqIDEwMDAwMDApOworICAgIGNvbnN0IG5vbmNlID0gaGlnaEVudHJvcHlC
aXRzICsgIiIgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApOworCisgICAgcHJlcGFy
ZVRlc3QoKTsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcodHJ1
ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJz
aW9uVVJMRm9yVGVzdGluZygiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocD9ub25jZT0iICsgbm9uY2UpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKKyAgICAg
ICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOworICAg
ICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lk
dGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVu
dC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgs
IGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB9
LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVk
LiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhcHBlbmRJZnJhbWUodXJsLCBvbmxv
YWRDYWxsYmFjaykgeworICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9IHVybDsKKyAg
ICAgICAgaWYgKG9ubG9hZENhbGxiYWNrKQorICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxv
YWQgPSBvbmxvYWRDYWxsYmFjazsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChp
ZnJhbWVFbGVtZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhcHBlbmRDb252ZXJzaW9uRGF0
YUlmcmFtZUFuZEZpbmlzaCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQoKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5y
ZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7CisKKyAgICAgICAg
YXBwZW5kSWZyYW1lKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvY29va2llcy9yZXNvdXJjZXMvZWNo
by1jb29raWVzLnBocCIpOworICAgICAgICBhcHBlbmRJZnJhbWUoImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEu
cGhwP3RpbWVvdXRfbXM9MjAwMCZub25jZT0iICsgbm9uY2UsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgYXBwZW5kSWZyYW1lKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvY29va2llcy9yZXNvdXJj
ZXMvZWNoby1jb29raWVzLnBocCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlYXJE
b3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikg
eworICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJpbWciKTsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8v
MTI3LjAuMC4xOjg0NDMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0
VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZub25jZT0iICsgbm9uY2U7CisgICAg
ICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKKyAgICAgICAgICAgICAgICBp
bWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBh
cHBlbmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZpbmlzaCgpOworICAgICAgICAgICAgICAgIH07
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQp
OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUg
PSAiY29va2llU2V0QXNGaXJzdFBhcnR5PTE7IHBhdGg9LyI7CisgICAgICAgICAgICAgICAgYWN0
aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJU
ZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9u
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjEyYTliZTg4MDMzYjE0NWQxYTk1NTRhM2VhYTVkZmNhYjM0ODc1MWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDUgQEAKK1Rlc3RzIHRoYXQgc3RvcmFnZSBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVt
ZW50IGlzIGRpc2FibGVkIGluIGVwaGVtZXJhbCBzZXNzaW9ucy4KKworCisKK05vIHN0b3JlZCBQ
cml2YXRlIENsaWNrIE1lYXN1cmVtZW50IGRhdGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLWRpc2FibGVkLWluLWVwaGVt
ZXJhbC1zZXNzaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDNlODJkNWM5OGYzMDJiNDEzY2ExODE4NzI0NWVmMGYwYjY0NWNmYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
c3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbApAQCAtMCwwICsxLDQ2IEBA
Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSB1c2VF
cGhlbWVyYWxTZXNzaW9uPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0i
ZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxtZXRhIG5hbWU9
InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwg
dXNlci1zY2FsYWJsZT1ubyI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91
aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwg
MCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgc3RvcmFnZSBvZiBwcml2YXRl
IGNsaWNrIG1lYXN1cmVtZW50IGlzIGRpc2FibGVkIGluIGVwaGVtZXJhbCBzZXNzaW9ucy48L2Rp
dj4KKzxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRt
bD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCI+TGluazwvYT48YnI+Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4K
KyAgICBwcmVwYXJlVGVzdCgpOworCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1l
bnRJRCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVs
ZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxl
bWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZz
ZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2
YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFBy
b21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwor
ICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKHdp
bmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOworICAgICAgICAgICAgICAg
IGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dExpbmsiKSk7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5r
Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5l
ci4iOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0
b3JlLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1l
YXN1cmVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzhiMTBlZTVkZTgwNjc1MWZiN2Mw
NGYzNWRiYWVkMDNhOTczMTE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVt
ZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3RzIHN0b3JhZ2Ugb2YgcHJpdmF0
ZSBjbGljayBtZWFzdXJlbWVudC4KKworCitVbmNvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1
cmVtZW50czoKK1dlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEKK1NvdXJjZTogMTI3
LjAuMC4xCitEZXN0aW5hdGlvbjogbG9jYWxob3N0CitDYW1wYWlnbiBJRDogMworTm8gY29udmVy
c2lvbiBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50Lmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUt
Y2xpY2stbWVhc3VyZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZWFlNmU5M2E4NzFkYWNlMzU5ZDBl
ZjkzNTBjZTg4ZGMxYjYwZmY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVt
ZW50Lmh0bWwKQEAgLTAsMCArMSw0NSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJl
biI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0i
dmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1
c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3Vp
LWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAw
KSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgc3RvcmFnZSBvZiBwcml2YXRlIGNsaWNr
IG1lYXN1cmVtZW50LjwvZGl2PgorPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1l
YXN1cmVtZW50Lmh0bWw/c3RlcFR3byIgYWRjYW1wYWlnbmlkPSIzIiBhZGRlc3RpbmF0aW9uPSJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rp
dj4KKzxzY3JpcHQ+CisgICAgcHJlcGFyZVRlc3QoKTsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRl
RWxlbWVudChlbGVtZW50SUQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChlbGVtZW50SUQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zm
c2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9
IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBV
SUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRl
eHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25B
bmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXRMaW5rIikpOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNo
KCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVu
dCgidGFyZ2V0TGluayIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlM
IE5vIHRlc3RSdW5uZXIuIjsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVT
ZXR0aW5nLUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLUFkQ2xpY2tBdHRyaWJ1
dGlvbkRlYnVnTW9kZUVuYWJsZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxZjE1NDQ5MGU1MGM5M2U5YzhhNDU3YmIwNTM2ZWFkYzRmM2U4NWQ1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1BZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFi
bGVkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotQ09OU09MRSBN
RVNTQUdFOiBbQWQgQ2xpY2sgQXR0cmlidXRpb25dIFR1cm5lZCBEZWJ1ZyBNb2RlIG9uLgotVGVz
dHMgZm9yIHRoZSBQYWdlLm92ZXJyaWRlU2V0dGluZyBjb21tYW5kLgotCi0KLT09IFJ1bm5pbmcg
dGVzdCBzdWl0ZTogUGFnZS5vdmVycmlkZVNldHRpbmcKLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBQ
YWdlLm92ZXJyaWRlU2V0dGluZy5BZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkCi1F
bmFibGluZyBhZCBjbGljayBhdHRyaWJ1dGlvbiBkZWJ1ZyBtb2RlLi4uCi1QQVNTOiBTaG91bGQg
YnJvYWRjYXN0IGF0IGxlYXN0IG9uZSBjb25zb2xlIG1lc3NhZ2UuCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1BZENsaWNrQXR0cmlidXRp
b25EZWJ1Z01vZGVFbmFibGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9vdmVy
cmlkZVNldHRpbmctQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZC5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYWRmMTFkN2MxYzE1ZjQ4YWE0MzA1ZTEwNDRmNzc1
NjQ5NmVlZDgyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1BZENsaWNrQXR0cmli
dXRpb25EZWJ1Z01vZGVFbmFibGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JU
ZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlBhZ2Uub3ZlcnJpZGVTZXR0aW5nIik7Ci0KLSAgICBzdWl0
ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJQYWdlLm92ZXJyaWRlU2V0dGluZy5BZENs
aWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkIiwKLSAgICAgICAgZGVzY3JpcHRpb246ICJU
ZXN0IHRoYXQgY2hhbmdpbmcgd2hldGhlciBhZCBjbGljayBhdHRyaWJ1dGlvbiBkZWJ1ZyBtb2Rl
IGlzIGVuYWJsZWQgaGFzIGFuIGVmZmVjdC4iLAotICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVj
dCkgewotICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuY29uc29sZU1hbmFnZXIuYWRkRXZl
bnRMaXN0ZW5lcihXSS5Db25zb2xlTWFuYWdlci5FdmVudC5NZXNzYWdlQWRkZWQsIChldmVudCkg
PT4gewotICAgICAgICAgICAgICAgIGxldCB7bWVzc2FnZX0gPSBldmVudC5kYXRhOwotICAgICAg
ICAgICAgICAgIGlmIChtZXNzYWdlLnNvdXJjZSAhPT0gV0kuQ29uc29sZU1lc3NhZ2UuTWVzc2Fn
ZVNvdXJjZS5BZENsaWNrQXR0cmlidXRpb24pCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGFzcygiU2hvdWxkIGJyb2FkY2FzdCBh
dCBsZWFzdCBvbmUgY29uc29sZSBtZXNzYWdlLiIpOwotCi0gICAgICAgICAgICAgICAgV0kuY29u
c29sZU1hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Db25zb2xlTWFuYWdlci5FdmVudC5N
ZXNzYWdlQWRkZWQsIGxpc3RlbmVyKTsKLSAgICAgICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAg
ICAgICAgICB9KTsKLQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVuYWJsaW5nIGFk
IGNsaWNrIGF0dHJpYnV0aW9uIGRlYnVnIG1vZGUuLi4iKTsKLSAgICAgICAgICAgIFBhZ2VBZ2Vu
dC5vdmVycmlkZVNldHRpbmcoSW5zcGVjdG9yQmFja2VuZC5FbnVtLlBhZ2UuU2V0dGluZy5BZENs
aWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkLCB0cnVlKS5jYXRjaChyZWplY3QpOwotICAg
ICAgICB9LAotICAgIH0pOwotCi0gICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Ci19
Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotICAgIDxw
PlRlc3RzIGZvciB0aGUgUGFnZS5vdmVycmlkZVNldHRpbmcgY29tbWFuZC48L3A+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9vdmVycmlk
ZVNldHRpbmctUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljg1ZDhlNTUyNzRiODg5MDIwNjJhNmRjMmNlMDIwYWFkYzU5ZTJhYzIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkg
QEAKK0NPTlNPTEUgTUVTU0FHRTogW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFR1cm5lZCBE
ZWJ1ZyBNb2RlIG9uLgorVGVzdHMgZm9yIHRoZSBQYWdlLm92ZXJyaWRlU2V0dGluZyBjb21tYW5k
LgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUGFnZS5vdmVycmlkZVNldHRpbmcKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBQYWdlLm92ZXJyaWRlU2V0dGluZy5Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudERlYnVnTW9kZUVuYWJsZWQKK0VuYWJsaW5nIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQg
ZGVidWcgbW9kZS4uLgorUEFTUzogU2hvdWxkIGJyb2FkY2FzdCBhdCBsZWFzdCBvbmUgY29uc29s
ZSBtZXNzYWdlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9vdmVy
cmlkZVNldHRpbmctUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTdiMjVjYzgzMDE4
NWFmMzE1NDQwMmY5NTA2ZjJmNWRjZWExOTNiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dERlYnVnTW9kZUVuYWJsZWQuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlv
biB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3Vp
dGUoIlBhZ2Uub3ZlcnJpZGVTZXR0aW5nIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Cisg
ICAgICAgIG5hbWU6ICJQYWdlLm92ZXJyaWRlU2V0dGluZy5Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dERlYnVnTW9kZUVuYWJsZWQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3QgdGhhdCBjaGFu
Z2luZyB3aGV0aGVyIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgZGVidWcgbW9kZSBpcyBlbmFi
bGVkIGhhcyBhbiBlZmZlY3QuIiwKKyAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAg
ICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNvbnNvbGVNYW5hZ2VyLmFkZEV2ZW50TGlzdGVu
ZXIoV0kuQ29uc29sZU1hbmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCAoZXZlbnQpID0+IHsKKyAg
ICAgICAgICAgICAgICBsZXQge21lc3NhZ2V9ID0gZXZlbnQuZGF0YTsKKyAgICAgICAgICAgICAg
ICBpZiAobWVzc2FnZS5zb3VyY2UgIT09IFdJLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2Uu
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGFzcygiU2hvdWxkIGJyb2FkY2FzdCBhdCBs
ZWFzdCBvbmUgY29uc29sZSBtZXNzYWdlLiIpOworCisgICAgICAgICAgICAgICAgV0kuY29uc29s
ZU1hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Db25zb2xlTWFuYWdlci5FdmVudC5NZXNz
YWdlQWRkZWQsIGxpc3RlbmVyKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAg
ICAgICB9KTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVuYWJsaW5nIHByaXZh
dGUgY2xpY2sgbWVhc3VyZW1lbnQgZGVidWcgbW9kZS4uLiIpOworICAgICAgICAgICAgUGFnZUFn
ZW50Lm92ZXJyaWRlU2V0dGluZyhJbnNwZWN0b3JCYWNrZW5kLkVudW0uUGFnZS5TZXR0aW5nLlBy
aXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZCwgdHJ1ZSkuY2F0Y2gocmVqZWN0
KTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlz
aCgpOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
KyAgICA8cD5UZXN0cyBmb3IgdGhlIFBhZ2Uub3ZlcnJpZGVTZXR0aW5nIGNvbW1hbmQuPC9wPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
Mi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDZhYzNlNzBiYmM1YjE4ZjU0MTllNzA4Mjk1N2E4OTYyZjRmMTFmYTcu
LmYzY2Q2M2ZmZjA0ODM5MzgxY2U5MDhmNWZmMTNhYzM0MGM2NzUyZWMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEwODAsOSArMTA4MCw2
IEBAIHdlYmtpdC5vcmcvYi82ODI3OCBodHRwL3Rlc3RzL2hpc3RvcnkvYmFjay13aXRoLWZyYWdt
ZW50LWNoYW5nZS5waHAgWyBQYXNzIEZhaWx1CiAjIDxyZGFyOi8vcHJvYmxlbS8zNzMzMDM3Nz4g
QVNhbiB0ZXN0cyBleGl0aW5nIGVhcmx5IGR1ZSB0byB0aW1lb3V0cwogWyBSZWxlYXNlIF0gaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZGVyaXZlX2JpdHNfa2V5
cyBbIFNraXAgXQogCi0jIDxyZGFyOi8vcHJvYmxlbS82MDA2MzAwMj4gUkVHUkVTU0lPTjogKHIy
NTc3NTgpIGh0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NvbnZlcnNpb24tZGlzYWJsZWQt
aW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbCBpcyBjcmFzaGluZwotaHR0cC90ZXN0cy9hZENsaWNr
QXR0cmlidXRpb24vY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1s
IFsgUGFzcyBDcmFzaCBdCi0KICMgPHJkYXI6Ly9wcm9ibGVtLzYwMTA1OTI3PiBbIE1hYyB3azIg
UmVsZWFzZSBdIHdlYmdwdS93aGxzbC9tYWtlLWFycmF5LXJlZmVyZW5jZS5odG1sIGlzIGZsYWt5
IGZhaWxpbmcKIFsgUmVsZWFzZSBdIHdlYmdwdS93aGxzbC9tYWtlLWFycmF5LXJlZmVyZW5jZS5o
dG1sIFsgUGFzcyBGYWlsdXJlIF0KIApAQCAtMTEzMSw4ICsxMTI4LDggQEAgd2VicnRjL3NpbXVs
Y2FzdC1oMjY0Lmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogIyA8cmRhcjovL3Byb2JsZW0vNjMyNzUy
MTM+IFJFR1JFU1NJT046IGh0dHAvdGVzdHMvSW5kZXhlZERCL3N0b3JhZ2UtbGltaXQtMS5odHRw
cy5odG1sIGlzIGEgZmxha3kgZmFpbHVyZQogWyBCaWdTdXIrIFJlbGVhc2UgXSBodHRwL3Rlc3Rz
L0luZGV4ZWREQi9zdG9yYWdlLWxpbWl0LTEuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAK
LSMgPHJkYXI6Ly9wcm9ibGVtLzYzMzU3NDgxPiBodHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1sIGlzIGEgc3VwZXIgZmxh
a3kgZmFpbHVyZQotWyBCaWdTdXIrIERlYnVnIF0gaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRp
b24vc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbCBbIFBhc3MgRmFpbHVy
ZSBdCisjIDxyZGFyOi8vcHJvYmxlbS82MzM1NzQ4MT4gaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1sIGlzIGEg
c3VwZXIgZmxha3kgZmFpbHVyZQorWyBCaWdTdXIrIERlYnVnIF0gaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1s
IFsgUGFzcyBGYWlsdXJlIF0KIAogIyA8cmRhcjovL3Byb2JsZW0vNjM1NTQyNDk+IFsyMEEyNzld
IERRIGJvdHMgYXJlIHNlZWluZyBodHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvZGlzay1jYWNo
ZS12YWxpZGF0aW9uLWJhY2stbmF2aWdhdGlvbi1wb2xpY3kuaHRtbCBhbmQgaHR0cC90ZXN0cy9j
YWNoZS9kaXNrLWNhY2hlL2Rpc2stY2FjaGUtdmFsaWRhdGlvbi1uby1ib2R5Lmh0bWwgYXJlIHRp
bWluZyBvdXQKIHdlYmtpdC5vcmcvYi8xNzk3OTYgaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hl
L2Rpc2stY2FjaGUtdmFsaWRhdGlvbi1iYWNrLW5hdmlnYXRpb24tcG9saWN5Lmh0bWwgWyBQYXNz
IEZhaWx1cmUgVGltZW91dCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDhkN2Q0OTBlYjMyODRjMzA5ZGNjZDJhMGUxODZkOTgwNDM2MjdlOTQuLjE0OWFm
NzhlMTVlMGExMjBmNzcyNzRlMjUxZDliMzk4NGNmODc1NzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCkBAIC03NDYsNyArNzQ2LDcgQEAgc3RvcmFnZS9pbmRl
eGVkZGIvSURCT2JqZWN0LWxlYWsuaHRtbCBbIFBhc3MgXQogCiBmYXN0L2Zvcm1zL2NhbGwtdGV4
dC1kaWQtY2hhbmdlLWluLXRleHQtZmllbGQtd2hlbi10eXBpbmcuaHRtbCBbIFBhc3MgXQogCi1o
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbiBbIFBhc3MgXQoraHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCBbIFBhc3MgXQogCiAjIFVzZXIgaW50ZXJhY3Rpb24gaXMgYSBXZWJL
aXQyIGNvbmNlcHQuCiBpbnNwZWN0b3IvZGVidWdnZXIvZXZhbHVhdGVPbkNhbGxGcmFtZS1lbXVs
YXRlVXNlckdlc3R1cmUtdXNlcklzSW50ZXJhY3RpbmcuaHRtbCBbIFBhc3MgXQpAQCAtNzU2LDgg
Kzc1Niw4IEBAIGluc3BlY3Rvci9ydW50aW1lL2NhbGxGdW5jdGlvbk9uLWVtdWxhdGVVc2VyR2Vz
dHVyZS11c2VySXNJbnRlcmFjdGluZy5odG1sIFsgUGFzCiAjIFRhcmdldCBkb21haW4gaXMgb25s
eSBwcmVzZW50IGluIFdlYktpdDIuCiBodHRwL3Rlc3RzL2luc3BlY3Rvci90YXJnZXQgWyBQYXNz
IF0KIAotIyBJVFAgYW5kIEFkQ2xpY2tBdHRyaWJ1dGlvbiBhcmUgV0syIG9ubHkuCi1pbnNwZWN0
b3IvcGFnZS9vdmVycmlkZVNldHRpbmctQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxl
ZC5odG1sIFsgUGFzcyBdCisjIElUUCBhbmQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXJlIFdL
MiBvbmx5LgoraW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLVByaXZhdGVDbGlja01lYXN1
cmVtZW50RGVidWdNb2RlRW5hYmxlZC5odG1sIFsgUGFzcyBdCiBpbnNwZWN0b3IvcGFnZS9vdmVy
cmlkZVNldHRpbmctSVRQRGVidWdNb2RlRW5hYmxlZC5odG1sIFsgUGFzcyBdCiAKICMgSGlnaGxp
Z2h0aW5nIG1hcmtlZCB0ZXh0IHJhbmdlcyBmcm9tIGxheW91dCB0ZXN0cyBpcyBvbmx5IHN1cHBv
cnRlZCBpbiBXZWJLaXQyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCA2MzllZDIxMjNjMGM5ZmY1Y2UwMDJiMGYzYTAwZTZkYjEyMzRkYjUwLi41YzAwMDk4
MWVlM2E0MjAyZmM0MzlhZWZhZjFjMGVhZGEwYTY0Y2EzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93cGUvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjQ4LDcgKzI0OCw3IEBAIHdlYmtpdC5vcmcvYi8y
MTU1MDIgZmFzdC9mbGV4Ym94L2ltYWdlLXBlcmNlbnQtbWF4LWhlaWdodC5odG1sIFsgRmFpbHVy
ZSBQYXNzIEltCiB3ZWJraXQub3JnL2IvMjE4Njg5IGltcG9ydGVkL2JsaW5rL2Zhc3QvZm9ybXMv
dGV4dGFyZWEtcGxhY2Vob2xkZXItdmlzaWJpbGl0eS0zLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIAogIyBMaW5rIHRhcmdldAotd2Via2l0Lm9yZy9iLzIxODU1MyBodHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJl
Y3QtaW4tbmV3LXdpbmRvdy5odG1sIFsgVGltZW91dCBdCit3ZWJraXQub3JnL2IvMjE4NTUzIGh0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10
aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3cuaHRtbCBbIFRpbWVvdXQgXQogd2Vi
a2l0Lm9yZy9iLzIxMjA4MyBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0
ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGgtZmxhZy1mcm9tLXN1YmZy
YW1lLmh0bWwKIHdlYmtpdC5vcmcvYi8yMTIwODMgbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3No
b3VsZC1vcGVuLWV4dGVybmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZs
YWcuaHRtbAogd2Via2l0Lm9yZy9iLzIxMjA4MyBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hv
dWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhvdXQt
ZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413751</attachid>
            <date>2020-11-10 15:52:13 -0800</date>
            <delta_ts>2020-11-11 14:32:52 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-218730-20201110155211.patch</filename>
            <type>text/plain</type>
            <size>479183</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MzczYWYzYjM4MmJiNzQ1MzJmMWNiMDZiN2FjZDlkNmY5N2E3M2EwLi5hYThjZmZmNzFlYzBiZmY2
OTA3ZmFmMGUxZTQ4Mjc1YWFmYTAwNDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAyMC0xMS0wOSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KKworICAgICAgICBQQ006IENoYW5nZSBmcm9tIGFkLWNsaWNrLWF0dHJpYnV0aW9uIHRvIHBy
aXZhdGUtY2xpY2stbWVhc3VyZW1lbnQgKGluIGFsbCBmb3JtcywgaW5jbHVkaW5nIC53ZWxsLWtu
b3duIFVSTCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxODczMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzEwOTQyOTY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgIENoYW5nZSB0byB0aGUgb2ZmaWNpYWwg
bmFtZSBvZiB0aGUgcHJvcG9zZWQgc3RhbmRhcmQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudAor
ICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vcHJpdmFjeWNnL3ByaXZhdGUtY2xpY2stbWVhc3Vy
ZW1lbnQuCisKKyAgICAgICAgVGhpcyBpbmNsdWRlcyBhIGNoYW5nZSBvZiB0aGUgcmVwb3J0aW5n
IFVSTCBmcm9tIAorICAgICAgICAiLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLyIg
dG8KKyAgICAgICAgIi8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LyIuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwOgorICAgICAgICAoSW5zcGVj
dG9yOjptZXNzYWdlU291cmNlVmFsdWUpOgorICAgICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9D
b25zb2xlLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL1BhZ2UuanNvbjoKKyAg
ICAgICAgKiBydW50aW1lL0NvbnNvbGVDbGllbnQuY3BwOgorICAgICAgICAoSlNDOjphcHBlbmRN
ZXNzYWdlUHJlZml4KToKKyAgICAgICAgKiBydW50aW1lL0NvbnNvbGVUeXBlcy5oOgorCiAyMDIw
LTExLTA5ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCB0b3RhbCBjb3VudHMgdG8gc2FtcGxpbmcgcHJvZmlsZXIgZHVtcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBmNTRmOWUy
MmVjMmNhMzJmYWE3ZmNmMmEwYjEwM2Y5MDFjOGRjZjI2Li41ZjA0ZjY2NmZhMzJjMDI3ZWQ0NTg0
MzM1NTkxMzkwOGQyZjhlYTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTExLTEwICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogQ2hhbmdlIGZy
b20gYWQtY2xpY2stYXR0cmlidXRpb24gdG8gcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudCAoaW4g
YWxsIGZvcm1zLCBpbmNsdWRpbmcgLndlbGwta25vd24gVVJMKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzMwCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTA5NDI5Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBEZXZpbiBSb3Vzc28uCisKKyAg
ICAgICAgQ2hhbmdlIHRvIHRoZSBvZmZpY2lhbCBuYW1lIG9mIHRoZSBwcm9wb3NlZCBzdGFuZGFy
ZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9w
cml2YWN5Y2cvcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC4KKworICAgICAgICBUaGlzIGluY2x1
ZGVzIGEgY2hhbmdlIG9mIHRoZSByZXBvcnRpbmcgVVJMIGZyb20gCisgICAgICAgICIvLndlbGwt
a25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vIiB0bworICAgICAgICAiLy53ZWxsLWtub3duL3By
aXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvIi4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0xMS0xMCAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGludGVybmFs
IG1hY09TIGJ1aWxkLWZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1OWNjMGFiYzQwMTYyMjY0OGI0NzVhZjkz
MzM2NzVkYmEzYTllMjhkLi5hOGZjNmY1MmM2Njk5MDM5OWVjYzEwY2JiNzZlZjY0NzE4M2I5YmY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIzIEBACisyMDIwLTExLTEwICBKb2huIFdpbGFuZGVy
ICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogQ2hhbmdlIGZyb20gYWQtY2xp
Y2stYXR0cmlidXRpb24gdG8gcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudCAoaW4gYWxsIGZvcm1z
LCBpbmNsdWRpbmcgLndlbGwta25vd24gVVJMKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzMwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTA5
NDI5Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBEZXZpbiBSb3Vzc28uCisKKyAgICAgICAgQ2hh
bmdlIHRvIHRoZSBvZmZpY2lhbCBuYW1lIG9mIHRoZSBwcm9wb3NlZCBzdGFuZGFyZCBQcml2YXRl
IENsaWNrIE1lYXN1cmVtZW50CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9wcml2YWN5Y2cv
cHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC4KKworICAgICAgICBUaGlzIGluY2x1ZGVzIGEgY2hh
bmdlIG9mIHRoZSByZXBvcnRpbmcgVVJMIGZyb20gCisgICAgICAgICIvLndlbGwta25vd24vYWQt
Y2xpY2stYXR0cmlidXRpb24vIiB0bworICAgICAgICAiLy53ZWxsLWtub3duL3ByaXZhdGUtY2xp
Y2stbWVhc3VyZW1lbnQvIi4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9jb250ZW50ZXh0
ZW5zaW9ucy9ibG9jay1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50Lmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1
dGVzLXJlZmxlY3QuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtdmFsaWRhdGlvbi5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNv
bnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0Lmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29u
dmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3cuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1j
b252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9u
LWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5Lmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY2xlYXIt
dGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1l
cmFsLXNlc3Npb24uaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9u
LWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0
ZWQtd2l0aC1sb3dlci1wcmlvcml0eS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9y
aXR5Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmlidXRpb24t
Y29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9y
ZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rv
ci9wYWdlL292ZXJyaWRlU2V0dGluZy1Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVu
YWJsZWQuaHRtbAorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
QW5jaG9yRWxlbWVudDo6cGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6aGFuZGxlQ2xpY2spOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlQWRDbGlja0F0dHJpYnV0aW9uIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50Lmg6CisgICAgICAg
ICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGw6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckNsaWVudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZGlzYWJsZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6Om92ZXJyaWRlU2V0dGluZyk6
CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGVBZ2VudDo6Z2V0TG9nZ2luZ0NoYW5uZWxzKToK
KyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXI6OmNoYW5nZUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Ojpsb2FkRnJhbWVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2Fk
VVJMKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIv
TmF2aWdhdGlvbkFjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbjo6
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdh
dGlvbkFjdGlvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6TmF2aWdhdGlvbkFjdGlvbjo6YWRDbGlja0F0dHJpYnV0aW9uIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb246OnNldEFkQ2xpY2tBdHRyaWJ1dGlv
bik6IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNw
cDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9BZENsaWNrQXR0cmlidXRpb24u
Y3BwLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmlzVmFsaWQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNl
Q29udmVyc2lvblJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Om1hcmtBc0V4cGlyZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Omhhc0V4cGlyZWQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Omhhc0hpZ2hlclByaW9yaXR5VGhh
biBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cmVw
b3J0VVJMIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
Ojpqc29uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OjptYXJrQ29udmVyc2lvbkFzU2VudCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6d2FzQ29udmVyc2lvblNlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWJ1Z01vZGVFbmFibGVkKToKKyAgICAgICAg
KiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9BZENsaWNrQXR0cmlidXRpb24uaC4KKyAgICAgICAgKFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbjo6Q2FtcGFpZ24pOgorICAgICAgICAoV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNhbXBhaWduOjppc1ZhbGlkIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2U6OlNvdXJj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlOjpv
cGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpTb3VyY2U6Om1hdGNoZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTo6aXNIYXNoVGFibGVEZWxldGVkVmFsdWUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTo6ZGVsZXRl
ZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3Vy
Y2U6OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6U291cmNlOjpkZWxldGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlOjppc0RlbGV0ZWRWYWx1ZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSGFzaDo6aGFz
aCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSGFz
aDo6ZXF1YWwpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRl
c3RpbmF0aW9uOjpEZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6RGVzdGluYXRpb246Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOjptYXRjaGVzIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlv
bjo6aXNIYXNoVGFibGVEZWxldGVkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOjpkZWxldGVkVmFsdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOjpjb25zdHJ1
Y3REZWxldGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkRlc3RpbmF0aW9uOjpkZWxldGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb246OmlzRGVsZXRlZFZhbHVlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbkhhc2g6
Omhhc2gpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3Rp
bmF0aW9uSGFzaDo6ZXF1YWwpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlByaW9yaXR5OjpQcmlvcml0eSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbjo6Q29udmVyc2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbjo6aXNWYWxpZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNv
dXJjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
ZGVzdGluYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OmVhcmxpZXN0VGltZVRvU2VuZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6aXNFbXB0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb246OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbjo6ZGVjb2RlKToK
KyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6U291cmNlPjo6ZW1wdHlWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZT46OmNvbnN0cnVjdERlbGV0ZWRWYWx1
ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlNvdXJjZT46OmlzRGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0
czxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24+OjplbXB0eVZh
bHVlKToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6RGVzdGluYXRpb24+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOgorICAgICAgICAo
V1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5h
dGlvbj46OmlzRGVsZXRlZFZhbHVlKToKKyAgICAgICAgKiBwYWdlL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnByaXZh
dGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERl
YnVnTW9kZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJl
czo6YWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZCBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRBZENsaWNrQXR0cmli
dXRpb25EZWJ1Z01vZGVFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2dn
aW5nLmg6CisKIDIwMjAtMTEtMTAgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTEZDXVtJRkNdIEFkZCBzdXBwb3J0IGZvciByZXBsYWNlZCBlbGVtZW50IGJhc2Vs
aW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA1YTA1ODY2ZGRlNWI0NmRjOTM4N2E4YWFl
YzYwODQ5NjQ4Mzk0ZmFhLi43NWViZmQ3Zjk1MTg5NGQ1MGZjMjk5ZjRmYjlmN2Q5MjFiNDA2ZDE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMC0xMS0xMCAg
Sm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IENoYW5n
ZSBmcm9tIGFkLWNsaWNrLWF0dHJpYnV0aW9uIHRvIHByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQg
KGluIGFsbCBmb3JtcywgaW5jbHVkaW5nIC53ZWxsLWtub3duIFVSTCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODczMAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNzEwOTQyOTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgor
CisgICAgICAgIENoYW5nZSB0byB0aGUgb2ZmaWNpYWwgbmFtZSBvZiB0aGUgcHJvcG9zZWQgc3Rh
bmRhcmQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudAorICAgICAgICBodHRwczovL2dpdGh1Yi5j
b20vcHJpdmFjeWNnL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQuCisKKyAgICAgICAgVGhpcyBp
bmNsdWRlcyBhIGNoYW5nZSBvZiB0aGUgcmVwb3J0aW5nIFVSTCBmcm9tIAorICAgICAgICAiLy53
ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLyIgdG8KKyAgICAgICAgIi8ud2VsbC1rbm93
bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LyIuCisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25z
L2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9C
YXNlL01haW4uanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ29uc29sZU1lc3Nh
Z2UuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvSXNzdWVNZXNzYWdlLmpzOgor
ICAgICAgICAoV0kuSXNzdWVNZXNzYWdlKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3Rv
Y29sL0xlZ2FjeS8xNC4wL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qczoKKwogMjAyMC0xMS0w
NiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogU291cmNlczogZGVmYXVsdCBicmVha3BvaW50IGFjdGlvbiBzaG91bGQgYmUgZXZhbHVh
dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggM2E0MGQ1YjA5YmY3NTZjMTY5OTQyZmIyZGRhYmI4MTIyYjMzMjkwNi4u
YWI1YTJmNzkwZjQ3OWI3MDVmYTJkN2NlOWNiZGM5NDVjNDBiZDlkZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNTMgQEAKKzIwMjAtMTEtMTAgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5j
b20+CisKKyAgICAgICAgUENNOiBDaGFuZ2UgZnJvbSBhZC1jbGljay1hdHRyaWJ1dGlvbiB0byBw
cml2YXRlLWNsaWNrLW1lYXN1cmVtZW50IChpbiBhbGwgZm9ybXMsIGluY2x1ZGluZyAud2VsbC1r
bm93biBVUkwpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTg3MzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMDk0Mjk2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICBDaGFuZ2UgdG8gdGhlIG9mZmljaWFs
IG5hbWUgb2YgdGhlIHByb3Bvc2VkIHN0YW5kYXJkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQK
KyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3ByaXZhY3ljZy9wcml2YXRlLWNsaWNrLW1lYXN1
cmVtZW50LgorCisgICAgICAgIFRoaXMgaW5jbHVkZXMgYSBjaGFuZ2Ugb2YgdGhlIHJlcG9ydGlu
ZyBVUkwgZnJvbSAKKyAgICAgICAgIi8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8i
IHRvCisgICAgICAgICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8iLgor
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVi
dWdNb2RlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVE
YXRhKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRh
Rm9yT3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzdG9yZVByaXZh
dGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmR1
bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRl
c3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjptYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVz
dGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRBZENsaWNrQXR0cmli
dXRpb25EZWJ1Z01vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6c3RvcmVBZENsaWNrQXR0cmlidXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6ZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRBZENsaWNrQXR0cmlidXRp
b25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGlu
Zyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjptYXJrQWRDbGlj
a0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlV2ls
bFNlbmRSZWRpcmVjdGVkUmVxdWVzdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24p
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6c3RvcmVQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpoYW5kbGVQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vz
c2lvbjo6ZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Nlc3Npb246OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrU2Vzc2lvbjo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZvclJlZ2lz
dHJhYmxlRG9tYWluKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OnNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9u
VVJMRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjptYXJrUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtTZXNzaW9uOjpzdG9yZUFkQ2xpY2tBdHRyaWJ1dGlvbik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpoYW5kbGVBZENsaWNrQXR0cmlidXRpb25D
b252ZXJzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OmR1
bXBBZENsaWNrQXR0cmlidXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
U2Vzc2lvbjo6Y2xlYXJBZENsaWNrQXR0cmlidXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrU2Vzc2lvbjo6Y2xlYXJBZENsaWNrQXR0cmlidXRpb25Gb3JSZWdpc3RyYWJs
ZURvbWFpbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpzZXRB
ZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJz
aW9uVVJMRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNz
aW9uOjptYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcpOiBEZWxldGVk
LgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFu
YWdlci5jcHAuCisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
cjo6c3RvcmVVbmNvbnZlcnRlZCk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlcjo6aGFuZGxlQ29udmVyc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RhcnRUaW1lcik6CisgICAgICAgIChXZWJLaXQ6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Y29udmVydCk6CisgICAgICAgIChXZWJL
aXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZUNvbnZlcnNpb25SZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJl
UGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0cyk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXI6OmNsZWFyRm9yUmVnaXN0cmFibGVEb21haW4pOgorICAgICAg
ICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmNsZWFyRXhwaXJlZCk6
CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6dG9TdHJp
bmcgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OnNldENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjptYXJrQWxsVW5jb252ZXJ0ZWRBc0V4cGlyZWRGb3JU
ZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
OjpkZWJ1Z01vZGVFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5oLgorICAgICAgICAoV2Vi
S2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlcjo6bV9zZXNzaW9uSUQpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXI6OnNldFBpbmdMb2FkRnVuY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnNldE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKToK
KyAgICAgICAgKiBQbGF0Zm9ybS9Mb2dnaW5nLmg6CisgICAgICAgICogU2hhcmVkL05hdmlnYXRp
b25BY3Rpb25EYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGE6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhOjpk
ZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oOgorICAgICAg
ICAqIFNoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYnNpdGVEYXRhOjpvd25lclByb2Nlc3MpOgorICAgICAgICAqIFNoYXJlZC9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVR5cGUuaDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uaDoKKyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbjo6
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgY29uc3QpOgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9u
OjphZENsaWNrQXR0cmlidXRpb24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlRHVtcFByaXZhdGVDbGlja01lYXN1
cmVtZW50KToKKyAgICAgICAgKFdLUGFnZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgor
ICAgICAgICAoV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9y
VGVzdGluZyk6CisgICAgICAgIChXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZl
cnNpb25VUkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdLUGFnZU1hcmtQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKToKKyAgICAgICAgKFdLUGFnZUR1bXBBZENsaWNr
QXR0cmlidXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV0tQYWdlQ2xlYXJBZENsaWNrQXR0cmli
dXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV0tQYWdlU2V0QWRDbGlja0F0dHJpYnV0aW9uT3Zl
cnJpZGVUaW1lckZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAoV0tQYWdlU2V0QWRDbGlj
a0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAo
V0tQYWdlTWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwOgorICAgICAgICAoV0tX
ZWJzaXRlRGF0YVN0b3JlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0
ZURhdGFSZW1vdmFsKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQWRDbGlja0F0
dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwpOiBEZWxldGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmQubW06CisgICAgICAgIChkYXRhVHlw
ZXNUb1N0cmluZyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRh
UmVjb3JkSW50ZXJuYWwuaDoKKyAgICAgICAgKFdlYktpdDo6dG9XZWJzaXRlRGF0YVR5cGUpOgor
ICAgICAgICAoV2ViS2l0Ojp0b1dLV2Vic2l0ZURhdGFUeXBlcyk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoK1tXS1dl
YnNpdGVEYXRhU3RvcmUgX2FsbFdlYnNpdGVEYXRhVHlwZXNJbmNsdWRpbmdQcml2YXRlXSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vz
cyk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpzZXREZXZlbG9wZXJQcmVmZXJl
bmNlT3ZlcnJpZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzUHJveHk6OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZSk6IERlbGV0ZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6Y3JlYXRlTmV3UGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZHVt
cFByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5n
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjptYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2xlYXJBZENsaWNrQXR0cmli
dXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldEFkQ2xp
Y2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJM
Rm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWFy
a0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0
YVN0b3JlOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZSk6
IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
TmV3V2luZG93QWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisKIDIwMjAtMTEtMTAg
IFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0g
U2VuZCBHUFUgc2FuZGJveCBleHRlbnNpb25zIGluIFdlYiBwYWdlIGNyZWF0aW9uIHBhcmFtZXRl
cnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA4YWZlMWMzODM2ZjE2ZmY1MzRhMmZh
NGVmMDg5N2JkNzk4ZmU1NTQ3Li5iNmUwNWExMzI4MzVkZWFmNjllYzk3YTQyNTVmMzk3OWE5YzMy
ZjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMjAt
MTEtMTAgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUENN
OiBDaGFuZ2UgZnJvbSBhZC1jbGljay1hdHRyaWJ1dGlvbiB0byBwcml2YXRlLWNsaWNrLW1lYXN1
cmVtZW50IChpbiBhbGwgZm9ybXMsIGluY2x1ZGluZyAud2VsbC1rbm93biBVUkwpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg3MzAKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzcxMDk0Mjk2PgorCisgICAgICAgIFJldmlld2VkIGJ5IERldmluIFJv
dXNzby4KKworICAgICAgICBDaGFuZ2UgdG8gdGhlIG9mZmljaWFsIG5hbWUgb2YgdGhlIHByb3Bv
c2VkIHN0YW5kYXJkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9n
aXRodWIuY29tL3ByaXZhY3ljZy9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LgorCisgICAgICAg
IFRoaXMgaW5jbHVkZXMgYSBjaGFuZ2Ugb2YgdGhlIHJlcG9ydGluZyBVUkwgZnJvbSAKKyAgICAg
ICAgIi8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8iIHRvCisgICAgICAgICIvLndl
bGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8iLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoc3RyaW5nRm9yTWVzc2FnZVNv
dXJjZSk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXZWJQcmVmZXJl
bmNlcyBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWRdKToKKyAgICAgICAgKC1bV2ViUHJl
ZmVyZW5jZXMgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkOl0pOgorICAgICAgICAo
LVtXZWJQcmVmZXJlbmNlcyBhZENsaWNrQXR0cmlidXRpb25FbmFibGVkXSk6IERlbGV0ZWQuCisg
ICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldEFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ6XSk6
IERlbGV0ZWQuCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKwog
MjAyMC0xMS0wOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbR1BVIFByb2Nlc3NdIENvbnRyb2wgdGhlIGxpZmUgY3ljbGUgb2YgdGhlIHBsYXRmb3JtIGlt
YWdlIGJ5IGEgbmV3IGNsYXNzIG5hbWVkIE5hdGl2ZUltYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IDkwYTFkZDk2MDQ3
MGE1NGVkM2IxNDY2Y2VjZmRlZmE4MzQ5NDU4MGYuLjAzOTRhNzM3MjdlZjBhNzQzN2Q0NzYwMDU4
NjQxZGU4NWJhMjAxYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvQ29uc29sZU1lc3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvQ29uc29sZU1lc3NhZ2UuY3BwCkBAIC0xOTEsNyArMTkxLDcgQEAgc3RhdGljIFByb3RvY29s
OjpDb25zb2xlOjpDaGFubmVsU291cmNlIG1lc3NhZ2VTb3VyY2VWYWx1ZShNZXNzYWdlU291cmNl
IHNvdXJjZSkKICAgICBjYXNlIE1lc3NhZ2VTb3VyY2U6Ok1lZGlhU291cmNlOiByZXR1cm4gUHJv
dG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxTb3VyY2U6Ok1lZGlhU291cmNlOwogICAgIGNhc2UgTWVz
c2FnZVNvdXJjZTo6V2ViUlRDOiByZXR1cm4gUHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxTb3Vy
Y2U6OldlYlJUQzsKICAgICBjYXNlIE1lc3NhZ2VTb3VyY2U6OklUUERlYnVnOiByZXR1cm4gUHJv
dG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxTb3VyY2U6OklUUERlYnVnOwotICAgIGNhc2UgTWVzc2Fn
ZVNvdXJjZTo6QWRDbGlja0F0dHJpYnV0aW9uOiByZXR1cm4gUHJvdG9jb2w6OkNvbnNvbGU6OkNo
YW5uZWxTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbjsKKyAgICBjYXNlIE1lc3NhZ2VTb3VyY2U6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OiByZXR1cm4gUHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5u
ZWxTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OwogICAgIGNhc2UgTWVzc2FnZVNvdXJj
ZTo6T3RoZXI6IHJldHVybiBQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbFNvdXJjZTo6T3RoZXI7
CiAgICAgfQogICAgIHJldHVybiBQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbFNvdXJjZTo6T3Ro
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29s
L0NvbnNvbGUuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wv
Q29uc29sZS5qc29uCmluZGV4IGIzNmEwZWU2N2YwNjUzNTg5N2ExNzY1YjgwYTQxMWQ0NDIwNmUw
YzMuLmU2YWVkNjE4MzFjZmQzYWZiYjE1YTU4OTVhYmU4YTQ3OGI5MWU2YTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ29uc29sZS5qc29uCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ29uc29sZS5qc29u
CkBAIC0yMiw3ICsyMiw3IEBACiAgICAgICAgICAgICAgICAgIm1lZGlhc291cmNlIiwKICAgICAg
ICAgICAgICAgICAid2VicnRjIiwKICAgICAgICAgICAgICAgICAiaXRwLWRlYnVnIiwKLSAgICAg
ICAgICAgICAgICAiYWQtY2xpY2stYXR0cmlidXRpb24iLAorICAgICAgICAgICAgICAgICJwcml2
YXRlLWNsaWNrLW1lYXN1cmVtZW50IiwKICAgICAgICAgICAgICAgICAib3RoZXIiCiAgICAgICAg
ICAgICBdLAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWxzIGZvciBkaWZmZXJl
bnQgdHlwZXMgb2YgbG9nIG1lc3NhZ2VzLiIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpzb24KaW5kZXggODI1Mjc5MjY0OTU0OWY3MDhhOWU4
OGY4YzY0NTA2ZTM0ODM5ZGUxNS4uZGI1MjQ3OWE3MmQ0NTliZTIzZDRkOGQwODBjMGVkMTVlYTlm
YzRjMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2Nv
bC9QYWdlLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2Nv
bC9QYWdlLmpzb24KQEAgLTksNyArOSw3IEBACiAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmci
LAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkxpc3Qgb2Ygc2V0dGluZ3MgYWJsZSB0byBi
ZSBvdmVycmlkZGVuIGJ5IFdlYkluc3BlY3Rvci4iLAogICAgICAgICAgICAgImVudW0iOiBbCi0g
ICAgICAgICAgICAgICAgIkFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQiLAorICAg
ICAgICAgICAgICAgICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQiLAog
ICAgICAgICAgICAgICAgICJBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCIsCiAgICAgICAgICAg
ICAgICAgIklDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQiLAogICAgICAgICAgICAgICAgICJJ
VFBEZWJ1Z01vZGVFbmFibGVkIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbnNvbGVDbGllbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29uc29sZUNsaWVudC5jcHAKaW5kZXggM2Q0MDJkZWYyNzc1ZDI4OWQ2NDQwNmQ5OGI3ZGQwZDQ3
ZWZlMTE4Zi4uOTljZDA1NzdmM2I3MjBhYjZmNDRjY2QyNDU3ZmEzOWI5MzQxZDg0OSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAKQEAgLTEw
NSw4ICsxMDUsOCBAQCBzdGF0aWMgdm9pZCBhcHBlbmRNZXNzYWdlUHJlZml4KFN0cmluZ0J1aWxk
ZXImIGJ1aWxkZXIsIE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZQogICAgIGNhc2UgTWVzc2FnZVNv
dXJjZTo6SVRQRGVidWc6CiAgICAgICAgIHNvdXJjZVN0cmluZyA9ICJJVFBERUJVRyJfczsKICAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBNZXNzYWdlU291cmNlOjpBZENsaWNrQXR0cmlidXRpb246
Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJBRENMSUNLQVRUUklCVVRJT04iX3M7CisgICAgY2Fz
ZSBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDoKKyAgICAgICAgc291cmNl
U3RyaW5nID0gIlBSSVZBVEVDTElDS01FQVNVUkVNRU5UIl9zOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIE1lc3NhZ2VTb3VyY2U6Ok90aGVyOgogICAgICAgICBzb3VyY2VTdHJpbmcgPSAiT1RI
RVIiX3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xl
VHlwZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVUeXBlcy5oCmlu
ZGV4IGM1ZTQwODRiMmMzYjJhZDYyNjI4OGIzNzk2NWNhZWUzMmZmN2JiZmYuLjExMWY1MjRhNmIx
NTMwZjZmMTRlMWJjOWIxMmMwZDRhZTg1Mjc5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbnNvbGVUeXBlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbnNvbGVUeXBlcy5oCkBAIC00NCw3ICs0NCw3IEBAIGVudW0gY2xhc3MgTWVz
c2FnZVNvdXJjZSA6IHVpbnQ4X3QgewogICAgIE1lZGlhU291cmNlLAogICAgIFdlYlJUQywKICAg
ICBJVFBEZWJ1ZywKLSAgICBBZENsaWNrQXR0cmlidXRpb24sCisgICAgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQsCiAgICAgT3RoZXIsCiB9OwogCkBAIC05NCw3ICs5NCw3IEBAIHRlbXBsYXRlPD4g
c3RydWN0IEVudW1UcmFpdHM8SlNDOjpNZXNzYWdlU291cmNlPiB7CiAgICAgICAgIEpTQzo6TWVz
c2FnZVNvdXJjZTo6TWVkaWFTb3VyY2UsCiAgICAgICAgIEpTQzo6TWVzc2FnZVNvdXJjZTo6V2Vi
UlRDLAogICAgICAgICBKU0M6Ok1lc3NhZ2VTb3VyY2U6OklUUERlYnVnLAotICAgICAgICBKU0M6
Ok1lc3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbiwKKyAgICAgICAgSlNDOjpNZXNzYWdl
U291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwKICAgICAgICAgSlNDOjpNZXNzYWdlU291
cmNlOjpPdGhlcgogICAgID47CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1Nj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBi
MDE2YWM5ZjczMmIxMjY4OGY5YTg1MjNlMDBmNGFmMTNiYmE1YzZiLi4yNDhhMjc1ZGZiNzY3YjA4
YjgxMjYyMzc1NjdiM2UxMjU3ZGVkZDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApA
QCAtMzcsMjkgKzM3LDYgQEAgQWNjZXNzaWJpbGl0eU9iamVjdE1vZGVsRW5hYmxlZDoKICAgICBX
ZWJLaXQ6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCi1BZENsaWNrQXR0cmlidXRpb25EZWJ1Z01v
ZGVFbmFibGVkOgotICB0eXBlOiBib29sCi0gIGh1bWFuUmVhZGFibGVOYW1lOiAiQWQgQ2xpY2sg
QXR0cmlidXRpb24gRGVidWcgTW9kZSIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5h
YmxlIEFkIENsaWNrIEF0dHJpYnV0aW9uIERlYnVnIE1vZGUiCi0gIHdlYmNvcmVCaW5kaW5nOiBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzCi0gIGRlZmF1bHRWYWx1ZToKLSAgICBXZWJLaXRMZWdhY3k6
Ci0gICAgICBkZWZhdWx0OiBmYWxzZQotICAgIFdlYktpdDoKLSAgICAgIGRlZmF1bHQ6IGZhbHNl
Ci0KLUFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ6Ci0gIHR5cGU6IGJvb2wKLSAgaHVtYW5SZWFk
YWJsZU5hbWU6ICJBZCBDbGljayBBdHRyaWJ1dGlvbiIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0
aW9uOiAiRW5hYmxlIEFkIENsaWNrIEF0dHJpYnV0aW9uIGZvciBDcm9zcy1TaXRlIExpbmsgTmF2
aWdhdGlvbnMiCi0gIGRlZmF1bHRWYWx1ZToKLSAgICBXZWJLaXRMZWdhY3k6Ci0gICAgICBkZWZh
dWx0OiBmYWxzZQotICAgIFdlYktpdDoKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0gICAgV2ViQ29y
ZToKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0KIEFzcGVjdFJhdGlvRW5hYmxlZDoKICAgdHlwZTog
Ym9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkNTUyBBc3BlY3QgUmF0aW8iCkBAIC02MzgsNiAr
NjE1LDI5IEBAIFBlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9uRW5hYmxlZDoKICAgICBXZWJDb3Jl
OgogICAgICAgZGVmYXVsdDogZmFsc2UKIAorUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01v
ZGVFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiUHJpdmF0ZSBD
bGljayBNZWFzdXJlbWVudCBEZWJ1ZyBNb2RlIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246
ICJFbmFibGUgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudCBEZWJ1ZyBNb2RlIgorICB3ZWJjb3Jl
QmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcworICBkZWZhdWx0VmFsdWU6CisgICAgV2Vi
S2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXQ6CisgICAgICBkZWZh
dWx0OiBmYWxzZQorCitQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQ6CisgIHR5cGU6IGJv
b2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50IgorICBo
dW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVu
dCBmb3IgQ3Jvc3MtU2l0ZSBMaW5rIE5hdmlnYXRpb25zIgorICBkZWZhdWx0VmFsdWU6CisgICAg
V2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXQ6CisgICAgICBk
ZWZhdWx0OiBmYWxzZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiBQcm9j
ZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbkVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVt
YW5SZWFkYWJsZU5hbWU6ICJTd2FwIFByb2Nlc3NlcyBvbiBDcm9zcy1TaXRlIE5hdmlnYXRpb24i
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZQppbmRleCAyNDcyMjNmOGM0ZjMxYTcwYmE0YmFhYTQ1OTM1MTlkMjdm
NjQzMzgzLi5jMGRiNjkzMTBjZjUyZjdmNjI4YWFiMzY0OGJjNmRkZWMzZjc0YmRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKQEAgLTczMyw3ICs3MzMsNiBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVu
SXRlcmF0b3JNb2Rlcm5QYXRoLmgKICAgICBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaAog
Ci0gICAgbG9hZGVyL0FkQ2xpY2tBdHRyaWJ1dGlvbi5oCiAgICAgbG9hZGVyL0NhbnZhc0FjdGl2
aXR5UmVjb3JkLmgKICAgICBsb2FkZXIvQ29udGVudEZpbHRlckNsaWVudC5oCiAgICAgbG9hZGVy
L0Nvb2tpZUphci5oCkBAIC03NjYsNiArNzY1LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFN
RVdPUktfSEVBREVSUwogICAgIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oCiAg
ICAgbG9hZGVyL1BpbmdMb2FkZXIuaAogICAgIGxvYWRlci9Qb2xpY3lDaGVja2VyLmgKKyAgICBs
b2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaAogICAgIGxvYWRlci9Qcm9ncmVzc1RyYWNr
ZXIuaAogICAgIGxvYWRlci9Qcm9ncmVzc1RyYWNrZXJDbGllbnQuaAogICAgIGxvYWRlci9SZXNv
dXJjZUNyeXB0b2dyYXBoaWNEaWdlc3QuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBmOTVhZmY2N2M5NDU2
MzQyNjJhYzM5YTFiMzljODA0MTc5NGM0NmRiLi43N2Q5OTk2OTQ1YzRkZTFmMjZkNzJiOGJhNDlh
ZDNiMDk4Yzc3MzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTUxNyw3ICsxNTE3LDcgQEAgbGF5b3V0
L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAogbGF5b3V0
L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdTdGF0ZS5jcHAKIGxheW91dC90YWJsZWZv
cm1hdHRpbmcvVGFibGVHcmlkLmNwcAogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUxheW91
dC5jcHAKLWxvYWRlci9BZENsaWNrQXR0cmlidXRpb24uY3BwCitsb2FkZXIvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQuY3BwCiBsb2FkZXIvQXBwbGljYXRpb25NYW5pZmVzdExvYWRlci5jcHAKIGxv
YWRlci9DYW52YXNBY3Rpdml0eVJlY29yZC5jcHAKIGxvYWRlci9Db250ZW50RmlsdGVyLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGJiODI0ODZmYjk0ZTY1Yzc5NWE2Nzc3NjZhZGYxMzQxOGY5ZmU3M2YuLjUxYjBkOTk0MTEz
YmQzZDUwYzFmNDI5NjkwZDMyNTg0OGI3NDc5MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwMDYsNyArMjAwNiw3IEBACiAJ
CTY5QTZDQkFEMUM2QkU0MkMwMEI4MzZFOSAvKiBBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjk3MTAxMDgxQzZC
RTE1NTAwMThDN0YxIC8qIEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50LmggKi87IH07CiAJCTZBMjJF
ODcwMUYxMDQxODYwMEY1NDZDMyAvKiBJbnNwZWN0b3JDYW52YXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZBMjJFODZGMUYxMDQxODYwMEY1NDZDMyAv
KiBJbnNwZWN0b3JDYW52YXMuaCAqLzsgfTsKIAkJNkE3Mjc5OEIxRjE2QzI5QzAwM0YzOUI4IC8q
IEluc3BlY3RvclNoYWRlclByb2dyYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZBNzI3OTg4MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFk
ZXJQcm9ncmFtLmggKi87IH07Ci0JCTZCMEEwN0YyMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNr
QXR0cmlidXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2QjBBMDdGMjIx
RkE0QjVDMDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5
MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZCMUY0ODExMjI5OEEzN0UwMERFOEI4MiAvKiBDcm9z
c1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2QjFGNDgwRjIyOTg5RUM0MDBERThCODIgLyogQ3Jvc3NTaXRl
TmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTZCNEQ0MTJEMjM5ODNGODgwMDI0OTRDMiAvKiBMb2dnZWRJblN0
YXR1cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkI0
RDQxMkIyMzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkI0RTg2MTMyMjFCNzEzRjAwMjJG
Mzg5IC8qIFJlZ2lzdHJhYmxlRG9tYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2QjRFODYxMjIyMUI3MTNGMDAyMkYzODkgLyogUmVnaXN0cmFibGVE
b21haW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtOTUyOCw4ICs5NTI4LDggQEAKIAkJNkEyMkU4NzIxRjEwNDJDNDAwRjU0NkMzIC8qIEluc3Bl
Y3RvckNhbnZhcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JDYW52YXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QTcyNzk4ODFGMTZDMjlCMDAzRjM5QjggLyog
SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTZBNzI3OTg5MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclNoYWRlclByb2dy
YW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QjBBMDdGMDIxRkE0QjVDMDBE
NTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFkQ2xpY2tBdHRy
aWJ1dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QjBBMDdGMTIxRkE0QjVD
MDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFk
Q2xpY2tBdHRyaWJ1dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZCMEEw
N0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk2QjBBMDdGMTIxRkE0QjVDMDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjFGNDgwRjIyOTg5RUM0MDBERThCODIgLyog
Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcm9zc1Np
dGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTZCNEQ0MTJCMjM5ODNGODgwMDI0OTRDMiAvKiBMb2dnZWRJblN0YXR1cy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBMb2dnZWRJblN0YXR1cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjRE
NDEyQzIzOTgzRjg4MDAyNDk0QzIgLyogTG9nZ2VkSW5TdGF0dXMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTG9nZ2VkSW5TdGF0dXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjY5OTYsOCArMjY5OTYsNiBAQAogCQkJCTUxMjZFNkI2MEEyRTNBRUYwMDVDMjlGQSAvKiBpY29u
ICovLAogCQkJCUExNUUzMUYwMUUwQ0IwNzUwMDRCMzcxQyAvKiBpb3MgKi8sCiAJCQkJOTNBMUVB
QTIwQTU2MzREODAwNjk2MEEwIC8qIG1hYyAqLywKLQkJCQk2QjBBMDdGMTIxRkE0QjVDMDBENTcz
OTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmNwcCAqLywKLQkJCQk2QjBBMDdGMDIxRkE0QjVDMDBE
NTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmggKi8sCiAJCQkJNjMxNTJEMTgxRjk1MzFFRTAw
N0E1RTRCIC8qIEFwcGxpY2F0aW9uTWFuaWZlc3RMb2FkZXIuY3BwICovLAogCQkJCTYzMTUyRDE3
MUY5NTMxRUUwMDdBNUU0QiAvKiBBcHBsaWNhdGlvbk1hbmlmZXN0TG9hZGVyLmggKi8sCiAJCQkJ
RUZCNzI4N0IyMTI0QzczRDAwNUMyNTU4IC8qIENhbnZhc0FjdGl2aXR5UmVjb3JkLmNwcCAqLywK
QEAgLTI3MDc2LDYgKzI3MDc0LDggQEAKIAkJCQlEMEZGMkE1QzExRjhDNDVBMDA3RTc0RTAgLyog
UGluZ0xvYWRlci5oICovLAogCQkJCTk3MDU5OTc1MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lD
aGVja2VyLmNwcCAqLywKIAkJCQk5NzA1OTk3NjEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hl
Y2tlci5oICovLAorCQkJCTZCMEEwN0YxMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC5jcHAgKi8sCisJCQkJNkIwQTA3RjAyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZh
dGVDbGlja01lYXN1cmVtZW50LmggKi8sCiAJCQkJMUEyQTY4MjEwQjVCRURFNzAwMDJBNDgwIC8q
IFByb2dyZXNzVHJhY2tlci5jcHAgKi8sCiAJCQkJMUEyQTY4MjIwQjVCRURFNzAwMDJBNDgwIC8q
IFByb2dyZXNzVHJhY2tlci5oICovLAogCQkJCTFBQ0FERDc4MTg4MEQ5MUMwMEQ4QjcxRCAvKiBQ
cm9ncmVzc1RyYWNrZXJDbGllbnQuaCAqLywKQEAgLTMwNzE5LDcgKzMwNzE5LDYgQEAKIAkJCQlF
MUM0REU2OTBFQTc1QzFFMDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk3MjRFRTU1MDFEQzgwRDdGMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNzI0RUU1NTExREM4MEQ4NDAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGVD
aGFuZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkIwQTA3RjIyMUZBNEI1QzAwRDU3
MzkxIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE2NzdFMEUy
MTNFMDJBMDAwQTA4QzM0IC8qIEFkZHJlc3NFcnJvcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
RjdFNDkxMTM3Q0Q3QzcwMDFEREFFNyAvKiBBZGp1c3RWaWV3U2l6ZU9yTm90LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NEQwQzQwNjExMTVGMUVBMDAxOEFBMzQgLyogQWZmaW5lVHJhbnNmb3JtLmgg
aW4gSGVhZGVycyAqLywKQEAgLTMzNzI4LDYgKzMzNzI3LDcgQEAKIAkJCQlBMUFEQUY3RTIzNjBG
RDNFMDA5Q0I3NzYgLyogUHJldmlld0NvbnZlcnRlclByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFNDYwNUZFQzIxNjY0ODA5MDBFNTMwNDYgLyogUHJld2FybUluZm9ybWF0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCNzFGRTZERjExMDkxQ0IzMDBEQUVGNzcgLyogUHJpbnRDb250ZXh0
LmggaW4gSGVhZGVycyAqLywKKwkJCQk2QjBBMDdGMjIxRkE0QjVDMDBENTczOTEgLyogUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjY0NUQ1MUZFQ0RCQ0Uw
MEI1NERFRCAvKiBQcm9jZXNzSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTdF
QkMwQTE5NDVEMDAwQThFRjVGIC8qIFByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTQyMDUwMTcyMTQxOTAxQjAwNjZFRjNCIC8qIFByb2Nlc3NXYXJtaW5nLmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKaW5k
ZXggOWNjOGI2NDgyYTcyNmVmZWYyMDhjZTI5OWFjZDIxM2I2ZmQzNGY2Ni4uOGU4MDUzMjNjOTcy
Zjg3NGFkODI2NGVhMzVlNDExZjQ2ZjRjMDFiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QW5jaG9yRWxlbWVudC5jcHAKQEAgLTI0LDcgKzI0LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJIVE1MQW5jaG9yRWxlbWVudC5oIgogCi0jaW5jbHVkZSAiQWRDbGlja0F0dHJp
YnV0aW9uLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCkBAIC00NCw2ICs0Myw3IEBACiAjaW5jbHVkZSAi
TW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBpbmdMb2FkZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIgogI2lu
Y2x1ZGUgIlJlZ2lzdHJhYmxlRG9tYWluLmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNp
bmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKQEAgLTQwNCwxNSArNDA0LDE1IEBAIGJvb2wgSFRN
TEFuY2hvckVsZW1lbnQ6OmlzU3lzdGVtUHJldmlld0xpbmsoKQogfQogI2VuZGlmCiAKLU9wdGlv
bmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4gSFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlQWRDbGlja0F0
dHJpYnV0aW9uKCkgY29uc3QKK09wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBIVE1M
QW5jaG9yRWxlbWVudDo6cGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpIGNvbnN0CiB7Ci0g
ICAgdXNpbmcgQ2FtcGFpZ24gPSBBZENsaWNrQXR0cmlidXRpb246OkNhbXBhaWduOwotICAgIHVz
aW5nIFNvdXJjZSA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlOwotICAgIHVzaW5nIERlc3Rp
bmF0aW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbjsKKyAgICB1c2luZyBDYW1w
YWlnbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbjsKKyAgICB1c2luZyBTb3Vy
Y2UgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlOworICAgIHVzaW5nIERlc3RpbmF0
aW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOwogCiAgICAgYXV0byog
cGFnZSA9IGRvY3VtZW50KCkucGFnZSgpOwogICAgIGlmICghcGFnZSB8fCBwYWdlLT5zZXNzaW9u
SUQoKS5pc0VwaGVtZXJhbCgpCi0gICAgICAgIHx8ICFkb2N1bWVudCgpLnNldHRpbmdzKCkuYWRD
bGlja0F0dHJpYnV0aW9uRW5hYmxlZCgpCisgICAgICAgIHx8ICFkb2N1bWVudCgpLnNldHRpbmdz
KCkucHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkKCkKICAgICAgICAgfHwgIVVzZXJHZXN0
dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKIApAQCAtNDIzLDI0ICs0MjMsMjQgQEAgT3B0aW9uYWw8QWRDbGlja0F0dHJp
YnV0aW9uPiBIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VBZENsaWNrQXR0cmlidXRpb24oKSBjb25z
dAogICAgIGF1dG8gYWREZXN0aW5hdGlvbkF0dHIgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKGFkZGVzdGluYXRpb25BdHRyKTsKICAgICAKICAgICBpZiAoYWRDYW1wYWlnbklEQXR0
ci5pc0VtcHR5KCkgfHwgYWREZXN0aW5hdGlvbkF0dHIuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGRv
Y3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VM
ZXZlbDo6V2FybmluZywgIkJvdGggYWRjYW1wYWlnbmlkIGFuZCBhZGRlc3RpbmF0aW9uIG5lZWQg
dG8gYmUgc2V0IGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbiB0byB3b3JrLiJfcyk7CisgICAgICAg
IGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3Nh
Z2VMZXZlbDo6V2FybmluZywgIkJvdGggYWRjYW1wYWlnbmlkIGFuZCBhZGRlc3RpbmF0aW9uIG5l
ZWQgdG8gYmUgc2V0IGZvciBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50IHRvIHdvcmsuIl9zKTsK
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9CiAKICAgICBSZWZQdHI8RnJhbWU+
IGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwogICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5p
c01haW5GcmFtZSgpKSB7Ci0gICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVz
c2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkFkIENsaWNrIEF0dHJp
YnV0aW9uIGlzIG9ubHkgc3VwcG9ydGVkIGluIHRoZSBtYWluIGZyYW1lLiJfcyk7CisgICAgICAg
IGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3Nh
Z2VMZXZlbDo6V2FybmluZywgIlByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgaXMgb25seSBzdXBw
b3J0ZWQgaW4gdGhlIG1haW4gZnJhbWUuIl9zKTsKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKICAgICB9CiAgICAgCiAgICAgYXV0byBhZENhbXBhaWduSUQgPSBwYXJzZUhUTUxOb25OZWdh
dGl2ZUludGVnZXIoYWRDYW1wYWlnbklEQXR0cik7CiAgICAgaWYgKCFhZENhbXBhaWduSUQpIHsK
LSAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhl
ciwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiYWRjYW1wYWlnbmlkIGNhbiBub3QgYmUgY29udmVy
dGVkIHRvIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgd2hpY2ggaXMgcmVxdWlyZWQgZm9yIEFkIENs
aWNrIEF0dHJpYnV0aW9uLiJfcyk7CisgICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgImFkY2FtcGFp
Z25pZCBjYW4gbm90IGJlIGNvbnZlcnRlZCB0byBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHdoaWNo
IGlzIHJlcXVpcmVkIGZvciBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50LiJfcyk7CiAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgfQogICAgIAotICAgIGlmIChhZENhbXBhaWduSUQu
dmFsdWUoKSA+IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSkgewotICAgICAgICBkb2N1
bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2
ZWw6Oldhcm5pbmcsIG1ha2VTdHJpbmcoImFkY2FtcGFpZ25pZCBtdXN0IGhhdmUgYSBub24tbmVn
YXRpdmUgdmFsdWUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICIsIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6
TWF4RW50cm9weSwgIiBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24uIikpOworICAgIGlmIChhZENh
bXBhaWduSUQudmFsdWUoKSA+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSB7
CisgICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3Ro
ZXIsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWFrZVN0cmluZygiYWRjYW1wYWlnbmlkIG11c3Qg
aGF2ZSBhIG5vbi1uZWdhdGl2ZSB2YWx1ZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gIiwgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHksICIgZm9yIFByaXZhdGUgQ2xpY2sgTWVhc3Vy
ZW1lbnQuIikpOwogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIApAQCAtNDU2
LDcgKzQ1Niw3IEBAIE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4gSFRNTEFuY2hvckVsZW1l
bnQ6OnBhcnNlQWRDbGlja0F0dHJpYnV0aW9uKCkgY29uc3QKICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKICAgICB9CiAKLSAgICByZXR1cm4gQWRDbGlja0F0dHJpYnV0aW9uIHsgQ2FtcGFp
Z24oYWRDYW1wYWlnbklELnZhbHVlKCkpLCBTb3VyY2UoZG9jdW1lbnRSZWdpc3RyYWJsZURvbWFp
biksIERlc3RpbmF0aW9uKGFkRGVzdGluYXRpb25VUkwpIH07CisgICAgcmV0dXJuIFByaXZhdGVD
bGlja01lYXN1cmVtZW50IHsgQ2FtcGFpZ24oYWRDYW1wYWlnbklELnZhbHVlKCkpLCBTb3VyY2Uo
ZG9jdW1lbnRSZWdpc3RyYWJsZURvbWFpbiksIERlc3RpbmF0aW9uKGFkRGVzdGluYXRpb25VUkwp
IH07CiB9CiAKIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKEV2ZW50JiBldmVu
dCkKQEAgLTUxOCwxMiArNTE4LDEyIEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNs
aWNrKEV2ZW50JiBldmVudCkKICAgICBlbHNlIGlmIChoYXNSZWwoUmVsYXRpb246Ok5vT3BlbmVy
KSB8fCAoZG9jdW1lbnQoKS5zZXR0aW5ncygpLmJsYW5rQW5jaG9yVGFyZ2V0SW1wbGllc05vT3Bl
bmVyRW5hYmxlZCgpICYmIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoZWZmZWN0aXZlVGFyZ2V0LCAi
X2JsYW5rIikpKQogICAgICAgICBuZXdGcmFtZU9wZW5lclBvbGljeSA9IE5ld0ZyYW1lT3BlbmVy
UG9saWN5OjpTdXBwcmVzczsKIAotICAgIGF1dG8gYWRDbGlja0F0dHJpYnV0aW9uID0gcGFyc2VB
ZENsaWNrQXR0cmlidXRpb24oKTsKLSAgICAvLyBBIG1hdGNoaW5nIGNvbnZlcnNpb24gZXZlbnQg
bmVlZHMgdG8gaGFwcGVuIGJlZm9yZSB0aGUgY29tcGxldGUgYWQgY2xpY2sgYXR0cmlidXRpb25V
UkwgY2FuIGJlCi0gICAgLy8gY3JlYXRlZC4gVGh1cywgaXQgc2hvdWxkIGJlIGVtcHR5IGZvciBu
b3cuCi0gICAgQVNTRVJUKCFhZENsaWNrQXR0cmlidXRpb24gfHwgYWRDbGlja0F0dHJpYnV0aW9u
LT5yZXBvcnRVUkwoKS5pc051bGwoKSk7CisgICAgYXV0byBwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCA9IHBhcnNlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAvLyBBIG1hdGNoaW5nIGNv
bnZlcnNpb24gZXZlbnQgbmVlZHMgdG8gaGFwcGVuIGJlZm9yZSB0aGUgY29tcGxldGUgcHJpdmF0
ZSBjbGljayBtZWFzdXJlbWVudAorICAgIC8vIFVSTCBjYW4gYmUgY3JlYXRlZC4gVGh1cywgaXQg
c2hvdWxkIGJlIGVtcHR5IGZvciBub3cuCisgICAgQVNTRVJUKCFwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCB8fCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+cmVwb3J0VVJMKCkuaXNOdWxsKCkpOwog
ICAgIAotICAgIGZyYW1lLT5sb2FkZXIoKS5jaGFuZ2VMb2NhdGlvbihjb21wbGV0ZWRVUkwsIGVm
ZmVjdGl2ZVRhcmdldCwgJmV2ZW50LCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExp
c3Q6Ok5vLCByZWZlcnJlclBvbGljeSwgZG9jdW1lbnQoKS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5VG9Qcm9wYWdhdGUoKSwgbmV3RnJhbWVPcGVuZXJQb2xpY3ksIGRvd25sb2FkQXR0cmli
dXRlLCBzeXN0ZW1QcmV2aWV3SW5mbywgV1RGTW92ZShhZENsaWNrQXR0cmlidXRpb24pKTsKKyAg
ICBmcmFtZS0+bG9hZGVyKCkuY2hhbmdlTG9jYXRpb24oY29tcGxldGVkVVJMLCBlZmZlY3RpdmVU
YXJnZXQsICZldmVudCwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywg
cmVmZXJyZXJQb2xpY3ksIGRvY3VtZW50KCkuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRv
UHJvcGFnYXRlKCksIG5ld0ZyYW1lT3BlbmVyUG9saWN5LCBkb3dubG9hZEF0dHJpYnV0ZSwgc3lz
dGVtUHJldmlld0luZm8sIFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpKTsKIAogICAg
IHNlbmRQaW5ncyhjb21wbGV0ZWRVUkwpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9y
RWxlbWVudC5oCmluZGV4IDA0MTEwYzYyZDU3ZGE0ODZmY2M1NDNjYTk5MmNlZmU0ZGQyZDI4OGIu
LjY3ZGYwMWUwYTg1ZmU5NWViNDBjMmQ4MGU5ZDFmMzg0Y2Y1NTcxYjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBBZENsaWNrQXR0cmlidXRpb247CitjbGFzcyBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDsKIGNsYXNzIERPTVRva2VuTGlzdDsKIAogLy8gTGluayByZWxhdGlvbiBi
aXRtYXNrIHZhbHVlcy4KQEAgLTEwMCw3ICsxMDAsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBz
ZW5kUGluZ3MoY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCk7CiAKLSAgICBPcHRpb25hbDxBZENs
aWNrQXR0cmlidXRpb24+IHBhcnNlQWRDbGlja0F0dHJpYnV0aW9uKCkgY29uc3Q7CisgICAgT3B0
aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IHBhcnNlUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQoKSBjb25zdDsKIAogICAgIHZvaWQgaGFuZGxlQ2xpY2soRXZlbnQmKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAppbmRleCBjYWFmYjMxNGY4NzFmOWZhZWNk
ZjVlNjJmNDFmY2UxNzRmNzE1NDEyLi5iZDFkZDY2ODMzY2QyMDQxOGViZGFkMTAwYjdhODI0Nzk2
MWQ2ZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbApAQCAt
MjEsOCArMjEsOCBAQAogWwogICAgIEV4cG9zZWQ9V2luZG93CiBdIGludGVyZmFjZSBIVE1MQW5j
aG9yRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICBbQ0VSZWFjdGlvbnM9Tm90TmVlZGVkLCBF
bmFibGVkQnlTZXR0aW5nPUFkQ2xpY2tBdHRyaWJ1dGlvbiwgUmVmbGVjdF0gYXR0cmlidXRlIERP
TVN0cmluZyBhZGNhbXBhaWduaWQ7Ci0gICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZCwgRW5hYmxl
ZEJ5U2V0dGluZz1BZENsaWNrQXR0cmlidXRpb24sIFJlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJp
bmcgYWRkZXN0aW5hdGlvbjsKKyAgICBbQ0VSZWFjdGlvbnM9Tm90TmVlZGVkLCBFbmFibGVkQnlT
ZXR0aW5nPVByaXZhdGVDbGlja01lYXN1cmVtZW50LCBSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGFkY2FtcGFpZ25pZDsKKyAgICBbQ0VSZWFjdGlvbnM9Tm90TmVlZGVkLCBFbmFibGVkQnlT
ZXR0aW5nPVByaXZhdGVDbGlja01lYXN1cmVtZW50LCBSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGFkZGVzdGluYXRpb247CiAgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZCwgUmVmbGVjdF0g
YXR0cmlidXRlIERPTVN0cmluZyBjaGFyc2V0OwogICAgIFtDRVJlYWN0aW9ucz1Ob3ROZWVkZWQs
IFJlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgY29vcmRzOwogICAgIFtDRVJlYWN0aW9ucz1O
b3ROZWVkZWQsIENvbmRpdGlvbmFsPURPV05MT0FEX0FUVFJJQlVURSwgRW5hYmxlZEJ5U2V0dGlu
Zz1Eb3dubG9hZEF0dHJpYnV0ZSwgUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBkb3dubG9h
ZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaAppbmRleCA5N2E0
N2Q4NTM0Y2JkN2UzMTFkZTMzNDM3ZjUxYzRkNDRmYzEyNWRiLi5hNjcwZTMyOGE1YmZjODgwYmQ1
NDVkODc5N2E2MmE2MDJiMTljYzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNsaWVudC5oCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
dGltZWxpbmVSZWNvcmRpbmdDaGFuZ2VkKGJvb2wpIHsgfQogCiAgICAgZW51bSBjbGFzcyBEZXZl
bG9wZXJQcmVmZXJlbmNlIHsKLSAgICAgICAgQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5h
YmxlZCwKKyAgICAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkLAog
ICAgICAgICBJVFBEZWJ1Z01vZGVFbmFibGVkLAogICAgICAgICBNb2NrQ2FwdHVyZURldmljZXNF
bmFibGVkLAogICAgIH07CkBAIC04Myw3ICs4Myw3IEBAIG5hbWVzcGFjZSBXVEYgewogdGVtcGxh
dGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQ6OkRldmVsb3Bl
clByZWZlcmVuY2U+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgICAgICBX
ZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQ6OkRldmVsb3BlclByZWZlcmVuY2UsCi0gICAgICAgIFdl
YkNvcmU6Okluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5jZTo6QWRDbGlja0F0dHJp
YnV0aW9uRGVidWdNb2RlRW5hYmxlZCwKKyAgICAgICAgV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50
OjpEZXZlbG9wZXJQcmVmZXJlbmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVu
YWJsZWQsCiAgICAgICAgIFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVy
ZW5jZTo6SVRQRGVidWdNb2RlRW5hYmxlZCwKICAgICAgICAgV2ViQ29yZTo6SW5zcGVjdG9yQ2xp
ZW50OjpEZXZlbG9wZXJQcmVmZXJlbmNlOjpNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkCiAgICAg
PjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcAppbmRleCBhNjkzYjhkODUxYTRmMDJjZjgyMTI5YjI4NDMxODg5MGRjYTc0
MjFhLi5hZjBhMDUxYmRhZTUyYjJkYWY3MGIxZmVlNzZlZWUwODY2YjdiMDQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQu
Y3BwCkBAIC0zODIsNyArMzgyLDcgQEAgUHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gSW5z
cGVjdG9yUGFnZUFnZW50OjpkaXNhYmxlKCkKICAgICBpbnNwZWN0ZWRQYWdlU2V0dGluZ3Muc2V0
V2ViUlRDRW5jcnlwdGlvbkVuYWJsZWRJbnNwZWN0b3JPdmVycmlkZShXVEY6Om51bGxvcHQpOwog
ICAgIGluc3BlY3RlZFBhZ2VTZXR0aW5ncy5zZXRXZWJTZWN1cml0eUVuYWJsZWRJbnNwZWN0b3JP
dmVycmlkZShXVEY6Om51bGxvcHQpOwogCi0gICAgbV9jbGllbnQtPnNldERldmVsb3BlclByZWZl
cmVuY2VPdmVycmlkZShJbnNwZWN0b3JDbGllbnQ6OkRldmVsb3BlclByZWZlcmVuY2U6OkFkQ2xp
Y2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQsIFdURjo6bnVsbG9wdCk7CisgICAgbV9jbGll
bnQtPnNldERldmVsb3BlclByZWZlcmVuY2VPdmVycmlkZShJbnNwZWN0b3JDbGllbnQ6OkRldmVs
b3BlclByZWZlcmVuY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZCwg
V1RGOjpudWxsb3B0KTsKICAgICBtX2NsaWVudC0+c2V0RGV2ZWxvcGVyUHJlZmVyZW5jZU92ZXJy
aWRlKEluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5jZTo6SVRQRGVidWdNb2RlRW5h
YmxlZCwgV1RGOjpudWxsb3B0KTsKICAgICBtX2NsaWVudC0+c2V0RGV2ZWxvcGVyUHJlZmVyZW5j
ZU92ZXJyaWRlKEluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5jZTo6TW9ja0NhcHR1
cmVEZXZpY2VzRW5hYmxlZCwgV1RGOjpudWxsb3B0KTsKIApAQCAtNDMxLDggKzQzMSw4IEBAIFBy
b3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IEluc3BlY3RvclBhZ2VBZ2VudDo6b3ZlcnJpZGVT
ZXR0aW5nKFByb3RvY29sOjpQYWdlCiAgICAgYXV0byYgaW5zcGVjdGVkUGFnZVNldHRpbmdzID0g
bV9pbnNwZWN0ZWRQYWdlLnNldHRpbmdzKCk7CiAKICAgICBzd2l0Y2ggKHNldHRpbmcpIHsKLSAg
ICBjYXNlIFByb3RvY29sOjpQYWdlOjpTZXR0aW5nOjpBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01v
ZGVFbmFibGVkOgotICAgICAgICBtX2NsaWVudC0+c2V0RGV2ZWxvcGVyUHJlZmVyZW5jZU92ZXJy
aWRlKEluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5jZTo6QWRDbGlja0F0dHJpYnV0
aW9uRGVidWdNb2RlRW5hYmxlZCwgdmFsdWUpOworICAgIGNhc2UgUHJvdG9jb2w6OlBhZ2U6OlNl
dHRpbmc6OlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZDoKKyAgICAgICAg
bV9jbGllbnQtPnNldERldmVsb3BlclByZWZlcmVuY2VPdmVycmlkZShJbnNwZWN0b3JDbGllbnQ6
OkRldmVsb3BlclByZWZlcmVuY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5h
YmxlZCwgdmFsdWUpOwogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgY2FzZSBQcm90b2NvbDo6
UGFnZTo6U2V0dGluZzo6QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQ6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNvbGVBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNvbGVBZ2VudC5j
cHAKaW5kZXggZDQ5MDFmMzViMDg1MzIwZDRjMTRhZWJhMWRiNmIyN2JjNmIyODYxZi4uYjgyZDZl
ZjM4NmJmNjcwY2FmNDQ3NTEzM2ZlOGNkMDE2YjdkNzEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50LmNwcApA
QCAtMTA3LDcgKzEwNyw3IEBAIFByb3RvY29sOjpFcnJvclN0cmluZ09yPFJlZjxKU09OOjpBcnJh
eU9mPFByb3RvY29sOjpDb25zb2xlOjpDaGFubmVsPj4+IFBhZ2VDb25zCiAgICAgYWRkTG9nQ2hh
bm5lbChQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbFNvdXJjZTo6TWVkaWFTb3VyY2UpOwogICAg
IGFkZExvZ0NoYW5uZWwoUHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxTb3VyY2U6OldlYlJUQyk7
CiAgICAgYWRkTG9nQ2hhbm5lbChQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbFNvdXJjZTo6SVRQ
RGVidWcpOwotICAgIGFkZExvZ0NoYW5uZWwoUHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxTb3Vy
Y2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbik7CisgICAgYWRkTG9nQ2hhbm5lbChQcm90b2NvbDo6Q29u
c29sZTo6Q2hhbm5lbFNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOwogICAgIGFkZExv
Z0NoYW5uZWwoUHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxTb3VyY2U6Ok90aGVyKTsKIAogICAg
IHJldHVybiBjaGFubmVsczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9BZENs
aWNrQXR0cmlidXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0FkQ2xpY2tBdHRyaWJ1
dGlvbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyMzExYmU4ZDk5YTIzMWI5
YTQ2NTUxYjBlNDkzYTA1YWU4MTg0ZDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0FkQ2xpY2tBdHRyaWJ1dGlvbi5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSwyMjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJBZENsaWNrQXR0cmlidXRpb24uaCIKLQotI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCi0jaW5jbHVk
ZSA8d3RmL0V4cGVjdGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JhbmRvbU51bWJlci5oPgotI2luY2x1
ZGUgPHd0Zi9VUkwuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+Ci0jaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0
YXRpYyBjb25zdCBjaGFyIGFkQ2xpY2tBdHRyaWJ1dGlvblBhdGhQcmVmaXhbXSA9ICIvLndlbGwt
a25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vIjsKLWNvbnN0IHNpemVfdCBhZENsaWNrQ29udmVy
c2lvbkRhdGFQYXRoU2VnbWVudFNpemUgPSAyOwotY29uc3Qgc2l6ZV90IGFkQ2xpY2tQcmlvcml0
eVBhdGhTZWdtZW50U2l6ZSA9IDI7Ci1jb25zdCBTZWNvbmRzIG1heEFnZSB7IDI0X2ggKiA3IH07
Ci0KLWJvb2wgQWRDbGlja0F0dHJpYnV0aW9uOjppc1ZhbGlkKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9jb252ZXJzaW9uCi0gICAgICAgICYmIG1fY29udmVyc2lvbi52YWx1ZSgpLmlzVmFsaWQo
KQotICAgICAgICAmJiBtX2NhbXBhaWduLmlzVmFsaWQoKQotICAgICAgICAmJiAhbV9zb3VyY2Uu
cmVnaXN0cmFibGVEb21haW4uaXNFbXB0eSgpCi0gICAgICAgICYmICFtX2Rlc3RpbmF0aW9uLnJl
Z2lzdHJhYmxlRG9tYWluLmlzRW1wdHkoKQotICAgICAgICAmJiBtX2VhcmxpZXN0VGltZVRvU2Vu
ZDsKLX0KLQotRXhwZWN0ZWQ8QWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uLCBTdHJpbmc+
IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb25zdCBVUkwmIHJl
ZGlyZWN0VVJMKQotewotICAgIGlmICghcmVkaXJlY3RVUkwucHJvdG9jb2xJcygiaHR0cHMiKSB8
fCByZWRpcmVjdFVSTC5oYXNDcmVkZW50aWFscygpIHx8IHJlZGlyZWN0VVJMLmhhc1F1ZXJ5KCkg
fHwgcmVkaXJlY3RVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpIHsKLSAgICAgICAgaWYgKFVO
TElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lO
Rk8oQWRDbGlja0F0dHJpYnV0aW9uLCAiQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1
c2UgdGhlIFVSTCdzIHByb3RvY29sIGlzIG5vdCBIVFRQUyBvciB0aGUgVVJMIGNvbnRhaW5zIG9u
ZSBvciBtb3JlIG9mIHVzZXJuYW1lLCBwYXNzd29yZCwgcXVlcnkgc3RyaW5nLCBhbmQgZnJhZ21l
bnQuIik7Ci0gICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIltBZCBDbGljayBBdHRy
aWJ1dGlvbl0gQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIFVSTCdzIHBy
b3RvY29sIGlzIG5vdCBIVFRQUyBvciB0aGUgVVJMIGNvbnRhaW5zIG9uZSBvciBtb3JlIG9mIHVz
ZXJuYW1lLCBwYXNzd29yZCwgcXVlcnkgc3RyaW5nLCBhbmQgZnJhZ21lbnQuIl9zKTsKLSAgICAg
ICAgfQotICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygpKTsKLSAgICB9
Ci0KLSAgICBhdXRvIHBhdGggPSBTdHJpbmdWaWV3KHJlZGlyZWN0VVJMLnN0cmluZygpKS5zdWJz
dHJpbmcocmVkaXJlY3RVUkwucGF0aFN0YXJ0KCksIHJlZGlyZWN0VVJMLnBhdGhFbmQoKSAtIHJl
ZGlyZWN0VVJMLnBhdGhTdGFydCgpKTsKLSAgICBpZiAocGF0aC5pc0VtcHR5KCkgfHwgIXBhdGgu
c3RhcnRzV2l0aChhZENsaWNrQXR0cmlidXRpb25QYXRoUHJlZml4KSkgewotICAgICAgICBpZiAo
VU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0df
SU5GTyhBZENsaWNrQXR0cmlidXRpb24sICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVj
YXVzZSB0aGUgVVJMIHBhdGggZGlkIG5vdCBzdGFydCB3aXRoICUiIFBVQkxJQ19MT0dfU1RSSU5H
ICIuIiwgYWRDbGlja0F0dHJpYnV0aW9uUGF0aFByZWZpeCk7Ci0gICAgICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiW0FkIENsaWNrIEF0dHJpYnV0aW9uXSBDb252ZXJz
aW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMIHBhdGggZGlkIG5vdCBzdGFydCB3
aXRoICJfcywgYWRDbGlja0F0dHJpYnV0aW9uUGF0aFByZWZpeCwgIi4iX3MpKTsKLSAgICAgICAg
fQotICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygpKTsKLSAgICB9Ci0K
LSAgICBhdXRvIHByZWZpeExlbmd0aCA9IHNpemVvZihhZENsaWNrQXR0cmlidXRpb25QYXRoUHJl
Zml4KSAtIDE7Ci0gICAgaWYgKHBhdGgubGVuZ3RoKCkgPT0gcHJlZml4TGVuZ3RoICsgYWRDbGlj
a0NvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRTaXplKSB7Ci0gICAgICAgIGF1dG8gY29udmVyc2lv
bkRhdGFVSW50NjQgPSBwYXRoLnN1YnN0cmluZyhwcmVmaXhMZW5ndGgsIGFkQ2xpY2tDb252ZXJz
aW9uRGF0YVBhdGhTZWdtZW50U2l6ZSkudG9VSW50NjRTdHJpY3QoKTsKLSAgICAgICAgaWYgKCFj
b252ZXJzaW9uRGF0YVVJbnQ2NCB8fCAqY29udmVyc2lvbkRhdGFVSW50NjQgPiBNYXhFbnRyb3B5
KSB7Ci0gICAgICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAg
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oQWRDbGlja0F0dHJpYnV0aW9uLCAiQ29udmVy
c2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIGNvbnZlcnNpb24gZGF0YSBjb3VsZCBu
b3QgYmUgcGFyc2VkIG9yIHdhcyBoaWdoZXIgdGhhbiB0aGUgYWxsb3dlZCBtYXhpbXVtIG9mICV7
cHVibGljfXUuIiwgTWF4RW50cm9weSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKG1ha2VTdHJpbmcoIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gQ29udmVyc2lvbiB3YXMg
bm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIGNvbnZlcnNpb24gZGF0YSBjb3VsZCBub3QgYmUgcGFy
c2VkIG9yIHdhcyBoaWdoZXIgdGhhbiB0aGUgYWxsb3dlZCBtYXhpbXVtIG9mICJfcywgTWF4RW50
cm9weSwgIi4iX3MpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChudWxsU3RyaW5nKCkpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIENvbnZl
cnNpb24geyBzdGF0aWNfY2FzdDx1aW50MzJfdD4oKmNvbnZlcnNpb25EYXRhVUludDY0KSwgUHJp
b3JpdHkgeyAwIH0gfTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKHBhdGgubGVuZ3RoKCkgPT0gcHJl
Zml4TGVuZ3RoICsgYWRDbGlja0NvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRTaXplICsgMSArIGFk
Q2xpY2tQcmlvcml0eVBhdGhTZWdtZW50U2l6ZSkgewotICAgICAgICBhdXRvIGNvbnZlcnNpb25E
YXRhVUludDY0ID0gcGF0aC5zdWJzdHJpbmcocHJlZml4TGVuZ3RoLCBhZENsaWNrQ29udmVyc2lv
bkRhdGFQYXRoU2VnbWVudFNpemUpLnRvVUludDY0U3RyaWN0KCk7Ci0gICAgICAgIGlmICghY29u
dmVyc2lvbkRhdGFVSW50NjQgfHwgKmNvbnZlcnNpb25EYXRhVUludDY0ID4gTWF4RW50cm9weSkg
ewotICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAg
ICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgIkNvbnZlcnNp
b24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBjb252ZXJzaW9uIGRhdGEgY291bGQgbm90
IGJlIHBhcnNlZCBvciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQgbWF4aW11bSBvZiAle3B1
YmxpY311LiIsIE1heEVudHJvcHkpOwotICAgICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZChtYWtlU3RyaW5nKCJbQWQgQ2xpY2sgQXR0cmlidXRpb25dIENvbnZlcnNpb24gd2FzIG5v
dCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBjb252ZXJzaW9uIGRhdGEgY291bGQgbm90IGJlIHBhcnNl
ZCBvciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQgbWF4aW11bSBvZiAiX3MsIE1heEVudHJv
cHksICIuIl9zKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhw
ZWN0ZWQobnVsbFN0cmluZygpKTsKLSAgICAgICAgfQotCi0gICAgICAgIGF1dG8gY29udmVyc2lv
blByaW9yaXR5VUludDY0ID0gcGF0aC5zdWJzdHJpbmcocHJlZml4TGVuZ3RoICsgYWRDbGlja0Nv
bnZlcnNpb25EYXRhUGF0aFNlZ21lbnRTaXplICsgMSwgYWRDbGlja1ByaW9yaXR5UGF0aFNlZ21l
bnRTaXplKS50b1VJbnQ2NFN0cmljdCgpOwotICAgICAgICBpZiAoIWNvbnZlcnNpb25Qcmlvcml0
eVVJbnQ2NCB8fCAqY29udmVyc2lvblByaW9yaXR5VUludDY0ID4gTWF4RW50cm9weSkgewotICAg
ICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgICAg
ICAgICBSRUxFQVNFX0xPR19JTkZPKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgIkNvbnZlcnNpb24gd2Fz
IG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBwcmlvcml0eSBjb3VsZCBub3QgYmUgcGFyc2VkIG9y
IHdhcyBoaWdoZXIgdGhhbiB0aGUgYWxsb3dlZCBtYXhpbXVtIG9mICV7cHVibGljfXUuIiwgTWF4
RW50cm9weSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJp
bmcoIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJl
Y2F1c2UgdGhlIHByaW9yaXR5IGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2FzIGhpZ2hlciB0aGFu
IHRoZSBhbGxvd2VkIG1heGltdW0gb2YgIl9zLCBNYXhFbnRyb3B5LCAiLiJfcykpOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG51bGxTdHJpbmcoKSk7
Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gQ29udmVyc2lvbiB7IHN0YXRpY19jYXN0PHVp
bnQzMl90PigqY29udmVyc2lvbkRhdGFVSW50NjQpLCBQcmlvcml0eSB7IHN0YXRpY19jYXN0PHVp
bnQzMl90PigqY29udmVyc2lvblByaW9yaXR5VUludDY0KSB9IH07Ci0gICAgfQotCi0gICAgaWYg
KFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSU5G
TyhBZENsaWNrQXR0cmlidXRpb24sICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVz
ZSB0aGUgVVJMIHBhdGggY29udGFpbmVkIHVucmVjb2duaXplZCBwYXJ0cy4iKTsKLSAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKCJbQWQgQ2xpY2sgQXR0cmlidXRpb25dIENvbnZlcnNpb24g
d2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBVUkwgcGF0aCBjb250YWluZWQgdW5yZWNvZ25p
emVkIHBhcnRzLiJfcyk7Ci0gICAgfQotICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChudWxsU3Ry
aW5nKCkpOwotfQotCi1PcHRpb25hbDxTZWNvbmRzPiBBZENsaWNrQXR0cmlidXRpb246OmNvbnZl
cnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoQ29udmVyc2lvbiYmIGNvbnZlcnNpb24pCi17Ci0g
ICAgaWYgKCFjb252ZXJzaW9uLmlzVmFsaWQoKSB8fCAobV9jb252ZXJzaW9uICYmIG1fY29udmVy
c2lvbi0+cHJpb3JpdHkgPj0gY29udmVyc2lvbi5wcmlvcml0eSkpCi0gICAgICAgIHJldHVybiB7
IH07Ci0KLSAgICBtX2NvbnZlcnNpb24gPSBXVEZNb3ZlKGNvbnZlcnNpb24pOwotICAgIC8vIDI0
LTQ4IGhvdXIgZGVsYXkgYmVmb3JlIHNlbmRpbmcuIFRoaXMgaGVscHMgcHJpdmFjeSBzaW5jZSB0
aGUgY29udmVyc2lvbiBhbmQgdGhlIGF0dHJpYnV0aW9uCi0gICAgLy8gcmVxdWVzdHMgYXJlIGRl
dGFjaGVkIGFuZCB0aGUgdGltZSBvZiB0aGUgYXR0cmlidXRpb24gZG9lcyBub3QgcmV2ZWFsIHRo
ZSB0aW1lIG9mIHRoZSBjb252ZXJzaW9uLgotICAgIGF1dG8gc2Vjb25kcyA9IDI0X2ggKyBTZWNv
bmRzKHJhbmRvbU51bWJlcigpICogKDI0X2gpLnZhbHVlKCkpOwotICAgIG1fZWFybGllc3RUaW1l
VG9TZW5kID0gV2FsbFRpbWU6Om5vdygpICsgc2Vjb25kczsKLSAgICByZXR1cm4gc2Vjb25kczsK
LX0KLQotdm9pZCBBZENsaWNrQXR0cmlidXRpb246Om1hcmtBc0V4cGlyZWQoKQotewotICAgIG1f
dGltZU9mQWRDbGljayA9IHsgfTsKLX0KLQotYm9vbCBBZENsaWNrQXR0cmlidXRpb246Omhhc0V4
cGlyZWQoKSBjb25zdAotewotICAgIHJldHVybiBXYWxsVGltZTo6bm93KCkgPiBtX3RpbWVPZkFk
Q2xpY2sgKyBtYXhBZ2U7Ci19Ci0KLWJvb2wgQWRDbGlja0F0dHJpYnV0aW9uOjpoYXNIaWdoZXJQ
cmlvcml0eVRoYW4oY29uc3QgQWRDbGlja0F0dHJpYnV0aW9uJiBvdGhlcikgY29uc3QKLXsKLSAg
ICBpZiAoIW90aGVyLm1fY29udmVyc2lvbikKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCi0g
ICAgaWYgKCFtX2NvbnZlcnNpb24pCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVy
biBtX2NvbnZlcnNpb24tPnByaW9yaXR5ID4gb3RoZXIubV9jb252ZXJzaW9uLT5wcmlvcml0eTsK
LX0KLQotVVJMIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cmVwb3J0VVJMKCkgY29uc3QKLXsKLSAgICBp
ZiAoIWlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIFVSTCgpOwotCi0gICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiaHR0cHM6Ly8iKTsKLSAgICBi
dWlsZGVyLmFwcGVuZChtX3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKGFkQ2xpY2tBdHRyaWJ1dGlvblBhdGhQcmVmaXgpOwotCi0g
ICAgVVJMIHVybCB7IFVSTCgpLCBidWlsZGVyLnRvU3RyaW5nKCkgfTsKLSAgICBpZiAodXJsLmlz
VmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIHVybDsKLQotICAgIHJldHVybiBVUkwoKTsKLX0KLQot
UmVmPEpTT046Ok9iamVjdD4gQWRDbGlja0F0dHJpYnV0aW9uOjpqc29uKCkgY29uc3QKLXsKLSAg
ICBhdXRvIHJlcG9ydERldGFpbHMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwotICAgIGlmICgh
bV9jb252ZXJzaW9uKQotICAgICAgICByZXR1cm4gcmVwb3J0RGV0YWlsczsKLQotICAgIHJlcG9y
dERldGFpbHMtPnNldFN0cmluZygiY29udGVudC10eXBlIl9zLCAiY2xpY2siX3MpOwotICAgIHJl
cG9ydERldGFpbHMtPnNldFN0cmluZygiY29udGVudC1zaXRlIl9zLCBtX3NvdXJjZS5yZWdpc3Ry
YWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigiY29u
dGVudC1pZCJfcywgbV9jYW1wYWlnbi5pZCk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5n
KCJjb252ZXJzaW9uLXNpdGUiX3MsIG1fZGVzdGluYXRpb24ucmVnaXN0cmFibGVEb21haW4uc3Ry
aW5nKCkpOwotICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoImNvbnZlcnNpb24tZGF0YSJf
cywgbV9jb252ZXJzaW9uLT5kYXRhKTsKLSAgICByZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2VyKCJy
ZXBvcnQtdmVyc2lvbiJfcywgMSk7Ci0gICAgcmV0dXJuIHJlcG9ydERldGFpbHM7Ci19Ci0KLXZv
aWQgQWRDbGlja0F0dHJpYnV0aW9uOjptYXJrQ29udmVyc2lvbkFzU2VudCgpCi17Ci0gICAgQVNT
RVJUKG1fY29udmVyc2lvbik7Ci0gICAgaWYgKG1fY29udmVyc2lvbikKLSAgICAgICAgbV9jb252
ZXJzaW9uLT53YXNTZW50ID0gQ29udmVyc2lvbjo6V2FzU2VudDo6WWVzOwotfQotCi1ib29sIEFk
Q2xpY2tBdHRyaWJ1dGlvbjo6d2FzQ29udmVyc2lvblNlbnQoKSBjb25zdAotewotICAgIHJldHVy
biBtX2NvbnZlcnNpb24gJiYgbV9jb252ZXJzaW9uLT53YXNTZW50ID09IENvbnZlcnNpb246Oldh
c1NlbnQ6OlllczsKLX0KLQotU3RyaW5nIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6dG9TdHJpbmcoKSBj
b25zdAotewotICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIlNvdXJjZTogIik7Ci0gICAgYnVpbGRlci5hcHBlbmQobV9zb3VyY2UucmVnaXN0cmFi
bGVEb21haW4uc3RyaW5nKCkpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5EZXN0aW5h
dGlvbjogIik7Ci0gICAgYnVpbGRlci5hcHBlbmQobV9kZXN0aW5hdGlvbi5yZWdpc3RyYWJsZURv
bWFpbi5zdHJpbmcoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkNhbXBhaWduIElE
OiAiKTsKLSAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2NhbXBhaWduLmlkKTsKLSAgICBpZiAo
bV9jb252ZXJzaW9uKSB7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5Db252ZXJz
aW9uIGRhdGE6ICIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2NvbnZlcnNpb24u
dmFsdWUoKS5kYXRhKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkNvbnZlcnNp
b24gcHJpb3JpdHk6ICIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2NvbnZlcnNp
b24udmFsdWUoKS5wcmlvcml0eSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5D
b252ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogIik7Ci0gICAgICAgIGlmICghbV9lYXJs
aWVzdFRpbWVUb1NlbmQpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIk5vdCBz
ZXQiKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIHNlY29uZHNVbnRpbFNlbmQg
PSAqbV9lYXJsaWVzdFRpbWVUb1NlbmQgLSBXYWxsVGltZTo6bm93KCk7Ci0gICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZCgoc2Vjb25kc1VudGlsU2VuZCA+PSAyNF9oICYmIHNlY29uZHNVbnRpbFNl
bmQgPD0gNDhfaCkgPyAiV2l0aGluIDI0LTQ4IGhvdXJzIiA6ICJPdXRzaWRlIDI0LTQ4IGhvdXJz
Iik7Ci0gICAgICAgIH0KLSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkNvbnZlcnNp
b24gcmVxdWVzdCBzZW50OiAiKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoKHdhc0NvbnZlcnNp
b25TZW50KCkgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiXG5ObyBjb252ZXJzaW9uIGRhdGEuIik7Ci0gICAgYnVpbGRlci5h
cHBlbmQoJ1xuJyk7Ci0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwotfQotCi1ib29s
IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6ZGVidWdNb2RlRW5hYmxlZCgpCi17Ci0gICAgcmV0dXJuIFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuYWRDbGlja0F0dHJpYnV0aW9u
RGVidWdNb2RlRW5hYmxlZCgpOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvQWRDbGlja0F0dHJpYnV0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQWRDbGlj
a0F0dHJpYnV0aW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkMTllY2EwMGJh
NDNjMTgxZGQxNGY0YTM3MDU1YjgwODk0ZmE3ODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0FkQ2xpY2tBdHRyaWJ1
dGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsMzY4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJh
Z21hIG9uY2UKLQotI2luY2x1ZGUgIlJlZ2lzdHJhYmxlRG9tYWluLmgiCi0jaW5jbHVkZSA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRl
IDx3dGYvSlNPTlZhbHVlcy5oPgotI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgotI2luY2x1ZGUg
PHd0Zi9VUkwuaD4KLSNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdIYXNoLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQWRDbGlja0F0dHJpYnV0aW9uIHsKLXB1YmxpYzoKLSAg
ICB1c2luZyBDYW1wYWlnbklkID0gdWludDMyX3Q7Ci0gICAgdXNpbmcgQ29udmVyc2lvbkRhdGEg
PSB1aW50MzJfdDsKLSAgICB1c2luZyBQcmlvcml0eVZhbHVlID0gdWludDMyX3Q7Ci0KLSAgICBz
dGF0aWMgY29uc3RleHByIHVpbnQzMl90IE1heEVudHJvcHkgPSA2MzsKLQotICAgIHN0cnVjdCBD
YW1wYWlnbiB7Ci0gICAgICAgIENhbXBhaWduKCkgPSBkZWZhdWx0OwotICAgICAgICBleHBsaWNp
dCBDYW1wYWlnbihDYW1wYWlnbklkIGlkKQotICAgICAgICAgICAgOiBpZCB7IGlkIH0KLSAgICAg
ICAgewotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBib29sIGlzVmFsaWQoKSBjb25zdAot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gaWQgPD0gTWF4RW50cm9weTsKLSAgICAgICAg
fQotICAgICAgICAKLSAgICAgICAgQ2FtcGFpZ25JZCBpZCB7IDAgfTsKLSAgICB9OwotCi0gICAg
c3RydWN0IFNvdXJjZSB7Ci0gICAgICAgIFNvdXJjZSgpID0gZGVmYXVsdDsKLSAgICAgICAgZXhw
bGljaXQgU291cmNlKGNvbnN0IFVSTCYgdXJsKQotICAgICAgICAgICAgOiByZWdpc3RyYWJsZURv
bWFpbiB7IHVybCB9Ci0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIGV4cGxpY2l0IFNv
dXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQotICAgICAgICAgICAgOiByZWdp
c3RyYWJsZURvbWFpbiB7IGRvbWFpbiB9Ci0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAg
IGV4cGxpY2l0IFNvdXJjZShXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpCi0gICAgICAg
ICAgICA6IHJlZ2lzdHJhYmxlRG9tYWluKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlKQotICAg
ICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU291cmNl
JiBvdGhlcikgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhYmxl
RG9tYWluID09IG90aGVyLnJlZ2lzdHJhYmxlRG9tYWluOwotICAgICAgICB9Ci0KLSAgICAgICAg
Ym9vbCBtYXRjaGVzKGNvbnN0IFVSTCYgdXJsKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gcmVnaXN0cmFibGVEb21haW4ubWF0Y2hlcyh1cmwpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0Ci0gICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiByZWdpc3RyYWJsZURvbWFpbi5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1
ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIFNvdXJjZSBkZWxldGVkVmFsdWUoKQot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU291cmNlIHsgV1RGOjpIYXNoVGFibGVEZWxl
dGVkVmFsdWUgfTsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERl
bGV0ZWRWYWx1ZShTb3VyY2UmIHNvdXJjZSkKLSAgICAgICAgewotICAgICAgICAgICAgbmV3ICgm
c291cmNlKSBTb3VyY2U7Ci0gICAgICAgICAgICBzb3VyY2UgPSBTb3VyY2U6OmRlbGV0ZWRWYWx1
ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgdm9pZCBkZWxldGVWYWx1ZSgpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHJlZ2lzdHJhYmxlRG9tYWluID0gUmVnaXN0cmFibGVEb21haW4geyBXVEY6
Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9OwotICAgICAgICB9Ci0KLSAgICAgICAgYm9vbCBpc0Rl
bGV0ZWRWYWx1ZSgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBpc0hhc2hU
YWJsZURlbGV0ZWRWYWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgUmVnaXN0cmFibGVEb21h
aW4gcmVnaXN0cmFibGVEb21haW47Ci0gICAgfTsKLQotICAgIHN0cnVjdCBTb3VyY2VIYXNoIHsK
LSAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgU291cmNlJiBzb3VyY2UpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBzb3VyY2UucmVnaXN0cmFibGVEb21haW4uaGFzaCgp
OwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBT
b3VyY2UmIGEsIGNvbnN0IFNvdXJjZSYgYikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IGEgPT0gYjsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0Nv
bXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7Ci0gICAgfTsKLQotICAgIHN0cnVjdCBEZXN0
aW5hdGlvbiB7Ci0gICAgICAgIERlc3RpbmF0aW9uKCkgPSBkZWZhdWx0OwotICAgICAgICBleHBs
aWNpdCBEZXN0aW5hdGlvbihjb25zdCBVUkwmIHVybCkKLSAgICAgICAgICAgIDogcmVnaXN0cmFi
bGVEb21haW4geyBSZWdpc3RyYWJsZURvbWFpbiB7IHVybCB9IH0KLSAgICAgICAgewotICAgICAg
ICB9Ci0KLSAgICAgICAgZXhwbGljaXQgRGVzdGluYXRpb24oV1RGOjpIYXNoVGFibGVEZWxldGVk
VmFsdWVUeXBlKQotICAgICAgICAgICAgOiByZWdpc3RyYWJsZURvbWFpbiB7IFdURjo6SGFzaFRh
YmxlRGVsZXRlZFZhbHVlIH0KLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgZXhwbGlj
aXQgRGVzdGluYXRpb24oUmVnaXN0cmFibGVEb21haW4mJiBkb21haW4pCi0gICAgICAgICAgICA6
IHJlZ2lzdHJhYmxlRG9tYWluIHsgV1RGTW92ZShkb21haW4pIH0KLSAgICAgICAgewotICAgICAg
ICB9Ci0gICAgICAgIAotICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRGVzdGluYXRpb24m
IG90aGVyKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gcmVnaXN0cmFibGVE
b21haW4gPT0gb3RoZXIucmVnaXN0cmFibGVEb21haW47Ci0gICAgICAgIH0KLQotICAgICAgICBi
b29sIG1hdGNoZXMoY29uc3QgVVJMJiB1cmwpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiByZWdpc3RyYWJsZURvbWFpbiA9PSBSZWdpc3RyYWJsZURvbWFpbiB7IHVybCB9Owot
ICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVl
KCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhYmxlRG9tYWlu
LmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0aWMg
RGVzdGluYXRpb24gZGVsZXRlZFZhbHVlKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IERlc3RpbmF0aW9uIHsgV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWUgfTsKLSAgICAgICAgfQot
Ci0gICAgICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShEZXN0aW5hdGlvbiYg
ZGVzdGluYXRpb24pCi0gICAgICAgIHsKLSAgICAgICAgICAgIG5ldyAoJmRlc3RpbmF0aW9uKSBE
ZXN0aW5hdGlvbjsKLSAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gRGVzdGluYXRpb246OmRlbGV0
ZWRWYWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgdm9pZCBkZWxldGVWYWx1ZSgpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHJlZ2lzdHJhYmxlRG9tYWluID0gUmVnaXN0cmFibGVEb21haW4g
eyBXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9OwotICAgICAgICB9Ci0KLSAgICAgICAgYm9v
bCBpc0RlbGV0ZWRWYWx1ZSgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBp
c0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgUmVnaXN0cmFi
bGVEb21haW4gcmVnaXN0cmFibGVEb21haW47Ci0gICAgfTsKLQotICAgIHN0cnVjdCBEZXN0aW5h
dGlvbkhhc2ggewotICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBEZXN0aW5hdGlv
biYgZGVzdGluYXRpb24pCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBkZXN0aW5hdGlv
bi5yZWdpc3RyYWJsZURvbWFpbi5oYXNoKCk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAg
IHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IERlc3RpbmF0aW9uJiBhLCBjb25zdCBEZXN0aW5hdGlv
biYgYikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGEgPT0gYjsKLSAgICAgICAgfQot
Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVk
ID0gZmFsc2U7Ci0gICAgfTsKLQotICAgIHN0cnVjdCBQcmlvcml0eSB7Ci0gICAgICAgIGV4cGxp
Y2l0IFByaW9yaXR5KFByaW9yaXR5VmFsdWUgdmFsdWUpCi0gICAgICAgIDogdmFsdWUgeyB2YWx1
ZSB9Ci0gICAgICAgIHsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgUHJpb3JpdHlWYWx1
ZSB2YWx1ZTsKLSAgICB9OwotICAgIAotICAgIHN0cnVjdCBDb252ZXJzaW9uIHsKLSAgICAgICAg
ZW51bSBjbGFzcyBXYXNTZW50IDogYm9vbCB7IE5vLCBZZXMgfTsKLSAgICAgICAgCi0gICAgICAg
IENvbnZlcnNpb24oQ29udmVyc2lvbkRhdGEgZGF0YSwgUHJpb3JpdHkgcHJpb3JpdHksIFdhc1Nl
bnQgd2FzU2VudCA9IFdhc1NlbnQ6Ok5vKQotICAgICAgICAgICAgOiBkYXRhIHsgZGF0YSB9Ci0g
ICAgICAgICAgICAsIHByaW9yaXR5IHsgcHJpb3JpdHkudmFsdWUgfQotICAgICAgICAgICAgLCB3
YXNTZW50IHsgd2FzU2VudCB9Ci0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIGJvb2wg
aXNWYWxpZCgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBkYXRhIDw9IE1h
eEVudHJvcHkgJiYgcHJpb3JpdHkgPD0gTWF4RW50cm9weTsKLSAgICAgICAgfQotICAgICAgICAK
LSAgICAgICAgQ29udmVyc2lvbkRhdGEgZGF0YTsKLSAgICAgICAgUHJpb3JpdHlWYWx1ZSBwcmlv
cml0eTsKLSAgICAgICAgV2FzU2VudCB3YXNTZW50ID0gV2FzU2VudDo6Tm87Ci0KLSAgICAgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAg
ICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8Q29udmVyc2lvbj4g
ZGVjb2RlKERlY29kZXImKTsKLSAgICB9OwotCi0gICAgQWRDbGlja0F0dHJpYnV0aW9uKCkgPSBk
ZWZhdWx0OwotICAgIEFkQ2xpY2tBdHRyaWJ1dGlvbihDYW1wYWlnbiBjYW1wYWlnbiwgY29uc3Qg
U291cmNlJiBzb3VyY2UsIGNvbnN0IERlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbikKLSAgICAgICAg
OiBtX2NhbXBhaWduIHsgY2FtcGFpZ24gfQotICAgICAgICAsIG1fc291cmNlIHsgc291cmNlIH0K
LSAgICAgICAgLCBtX2Rlc3RpbmF0aW9uIHsgZGVzdGluYXRpb24gfQotICAgICAgICAsIG1fdGlt
ZU9mQWRDbGljayB7IFdhbGxUaW1lOjpub3coKSB9Ci0gICAgewotICAgIH0KLQotICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBFeHBlY3RlZDxDb252ZXJzaW9uLCBTdHJpbmc+IHBhcnNlQ29udmVy
c2lvblJlcXVlc3QoY29uc3QgVVJMJiByZWRpcmVjdFVSTCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
T3B0aW9uYWw8U2Vjb25kcz4gY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChDb252ZXJz
aW9uJiYpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzSGlnaGVyUHJpb3JpdHlUaGFuKGNv
bnN0IEFkQ2xpY2tBdHRyaWJ1dGlvbiYpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIFVSTCBy
ZXBvcnRVUkwoKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBSZWY8SlNPTjo6T2JqZWN0PiBq
c29uKCkgY29uc3Q7Ci0gICAgY29uc3QgU291cmNlJiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBt
X3NvdXJjZTsgfTsKLSAgICBjb25zdCBEZXN0aW5hdGlvbiYgZGVzdGluYXRpb24oKSBjb25zdCB7
IHJldHVybiBtX2Rlc3RpbmF0aW9uOyB9OwotICAgIE9wdGlvbmFsPFdhbGxUaW1lPiBlYXJsaWVz
dFRpbWVUb1NlbmQoKSBjb25zdCB7IHJldHVybiBtX2VhcmxpZXN0VGltZVRvU2VuZDsgfTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1hcmtBc0V4cGlyZWQoKTsKLSAgICBXRUJDT1JFX0VYUE9S
VCBib29sIGhhc0V4cGlyZWQoKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1hcmtD
b252ZXJzaW9uQXNTZW50KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCB3YXNDb252ZXJzaW9u
U2VudCgpIGNvbnN0OwotCi0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9zb3Vy
Y2UucmVnaXN0cmFibGVEb21haW4uaXNFbXB0eSgpOyB9OwotCi0gICAgV0VCQ09SRV9FWFBPUlQg
U3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7Ci0KLSAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4gZGVjb2RlKERlY29kZXImKTsKLQot
cHJpdmF0ZToKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWJ1
Z01vZGVFbmFibGVkKCk7Ci0KLSAgICBDYW1wYWlnbiBtX2NhbXBhaWduOwotICAgIFNvdXJjZSBt
X3NvdXJjZTsKLSAgICBEZXN0aW5hdGlvbiBtX2Rlc3RpbmF0aW9uOwotICAgIFdhbGxUaW1lIG1f
dGltZU9mQWRDbGljazsKLQotICAgIE9wdGlvbmFsPENvbnZlcnNpb24+IG1fY29udmVyc2lvbjsK
LSAgICBPcHRpb25hbDxXYWxsVGltZT4gbV9lYXJsaWVzdFRpbWVUb1NlbmQ7Ci19OwotCi10ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPgotdm9pZCBBZENsaWNrQXR0cmlidXRpb246OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAotewotICAgIGVuY29kZXIgPDwgbV9jYW1wYWlnbi5pZCA8PCBt
X3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbiA8PCBtX2Rlc3RpbmF0aW9uLnJlZ2lzdHJhYmxlRG9t
YWluIDw8IG1fdGltZU9mQWRDbGljayA8PCBtX2NvbnZlcnNpb24gPDwgbV9lYXJsaWVzdFRpbWVU
b1NlbmQ7Ci19Ci0KLXRlbXBsYXRlPGNsYXNzIERlY29kZXI+Ci1PcHRpb25hbDxBZENsaWNrQXR0
cmlidXRpb24+IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17
Ci0gICAgT3B0aW9uYWw8Q2FtcGFpZ25JZD4gY2FtcGFpZ25JZDsKLSAgICBkZWNvZGVyID4+IGNh
bXBhaWduSWQ7Ci0gICAgaWYgKCFjYW1wYWlnbklkKQotICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwotICAgIAotICAgIE9wdGlvbmFsPFJlZ2lzdHJhYmxlRG9tYWluPiBzb3VyY2VSZWdpc3Ry
YWJsZURvbWFpbjsKLSAgICBkZWNvZGVyID4+IHNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluOwotICAg
IGlmICghc291cmNlUmVnaXN0cmFibGVEb21haW4pCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7Ci0gICAgCi0gICAgT3B0aW9uYWw8UmVnaXN0cmFibGVEb21haW4+IGRlc3RpbmF0aW9uUmVn
aXN0cmFibGVEb21haW47Ci0gICAgZGVjb2RlciA+PiBkZXN0aW5hdGlvblJlZ2lzdHJhYmxlRG9t
YWluOwotICAgIGlmICghZGVzdGluYXRpb25SZWdpc3RyYWJsZURvbWFpbikKLSAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAgICBPcHRpb25hbDxXYWxsVGltZT4gdGltZU9mQWRD
bGljazsKLSAgICBkZWNvZGVyID4+IHRpbWVPZkFkQ2xpY2s7Ci0gICAgaWYgKCF0aW1lT2ZBZENs
aWNrKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAgIE9wdGlvbmFsPE9w
dGlvbmFsPENvbnZlcnNpb24+PiBjb252ZXJzaW9uOwotICAgIGRlY29kZXIgPj4gY29udmVyc2lv
bjsKLSAgICBpZiAoIWNvbnZlcnNpb24pCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0g
ICAgCi0gICAgT3B0aW9uYWw8T3B0aW9uYWw8V2FsbFRpbWU+PiBlYXJsaWVzdFRpbWVUb1NlbmQ7
Ci0gICAgZGVjb2RlciA+PiBlYXJsaWVzdFRpbWVUb1NlbmQ7Ci0gICAgaWYgKCFlYXJsaWVzdFRp
bWVUb1NlbmQpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCi0gICAgQWRDbGlj
a0F0dHJpYnV0aW9uIGF0dHJpYnV0aW9uIHsgQ2FtcGFpZ24geyBXVEZNb3ZlKCpjYW1wYWlnbklk
KSB9LCBTb3VyY2UgeyBXVEZNb3ZlKCpzb3VyY2VSZWdpc3RyYWJsZURvbWFpbikgfSwgRGVzdGlu
YXRpb24geyBXVEZNb3ZlKCpkZXN0aW5hdGlvblJlZ2lzdHJhYmxlRG9tYWluKSB9IH07Ci0gICAg
YXR0cmlidXRpb24ubV9jb252ZXJzaW9uID0gV1RGTW92ZSgqY29udmVyc2lvbik7Ci0gICAgYXR0
cmlidXRpb24ubV9lYXJsaWVzdFRpbWVUb1NlbmQgPSBXVEZNb3ZlKCplYXJsaWVzdFRpbWVUb1Nl
bmQpOwotICAgIAotICAgIHJldHVybiBhdHRyaWJ1dGlvbjsKLX0KLQotdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4KLXZvaWQgQWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uOjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSAgICBlbmNvZGVyIDw8IGRhdGEgPDwgcHJpb3JpdHkg
PDwgd2FzU2VudDsKLX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLU9wdGlvbmFsPEFkQ2xp
Y2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lvbj4gQWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9u
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBPcHRpb25hbDxDb252ZXJzaW9uRGF0
YT4gZGF0YTsKLSAgICBkZWNvZGVyID4+IGRhdGE7Ci0gICAgaWYgKCFkYXRhKQotICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAgIE9wdGlvbmFsPFByaW9yaXR5VmFsdWU+IHBy
aW9yaXR5OwotICAgIGRlY29kZXIgPj4gcHJpb3JpdHk7Ci0gICAgaWYgKCFwcmlvcml0eSkKLSAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAgICBPcHRpb25hbDxXYXNTZW50PiB3
YXNTZW50OwotICAgIGRlY29kZXIgPj4gd2FzU2VudDsKLSAgICBpZiAoIXdhc1NlbnQpCi0gICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCi0gICAgcmV0dXJuIENvbnZlcnNpb24geyBX
VEZNb3ZlKCpkYXRhKSwgUHJpb3JpdHkgeyAqcHJpb3JpdHkgfSwgKndhc1NlbnQgfTsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1uYW1lc3BhY2UgV1RGIHsKLXRlbXBsYXRlPHR5cGVu
YW1lIFQ+IHN0cnVjdCBEZWZhdWx0SGFzaDsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhh
c2g8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2U+IDogV2ViQ29yZTo6QWRDbGlj
a0F0dHJpYnV0aW9uOjpTb3VyY2VIYXNoIHsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFp
dHM8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2U+IDogR2VuZXJpY0hhc2hUcmFp
dHM8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2U+IHsKLSAgICBzdGF0aWMgV2Vi
Q29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2UgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHsg
fTsgfQotICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJDb3JlOjpBZENs
aWNrQXR0cmlidXRpb246OlNvdXJjZSYgc2xvdCkgeyBXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRp
b246OlNvdXJjZTo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKHNsb3QpOyB9Ci0gICAgc3RhdGljIGJv
b2wgaXNEZWxldGVkVmFsdWUoY29uc3QgV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpTb3Vy
Y2UmIHNsb3QpIHsgcmV0dXJuIHNsb3QuaXNEZWxldGVkVmFsdWUoKTsgfQotfTsKLQotdGVtcGxh
dGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0
aW5hdGlvbj4gOiBXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OkRlc3RpbmF0aW9uSGFzaCB7
IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1
dGlvbjo6RGVzdGluYXRpb24+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViQ29yZTo6QWRDbGlja0F0
dHJpYnV0aW9uOjpEZXN0aW5hdGlvbj4gewotICAgIHN0YXRpYyBXZWJDb3JlOjpBZENsaWNrQXR0
cmlidXRpb246OkRlc3RpbmF0aW9uIGVtcHR5VmFsdWUoKSB7IHJldHVybiB7IH07IH0KLSAgICBz
dGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0
aW9uOjpEZXN0aW5hdGlvbiYgc2xvdCkgeyBXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OkRl
c3RpbmF0aW9uOjpjb25zdHJ1Y3REZWxldGVkVmFsdWUoc2xvdCk7IH0KLSAgICBzdGF0aWMgYm9v
bCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OkRlc3Rp
bmF0aW9uJiBzbG90KSB7IHJldHVybiBzbG90LmlzRGVsZXRlZFZhbHVlKCk7IH0KLX07Ci19CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBiZTZjYTc2OTM5OTAwYmNjZTYz
ZDgzMDUyYjgxNDA1ZWZkNjA0YTk0Li43OWM1NDQ4YjhjOTA2ZDJmYjZkMzFmYWU5NDFlYmJkNDA4
ZDU3ZDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTQyMiw3ICs0
MjIsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0NvbnRlbnRQb2xpY3koY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIFBvbGljeUNoZQogICAgIGNsaWVudCgpLmRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnJl
cXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+ZG93bmxvYWRBdHRy
aWJ1dGUoKSwgV1RGTW92ZShmdW5jdGlvbikpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyOjpjaGFu
Z2VMb2NhdGlvbihjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwYXNzZWRUYXJnZXQsIEV2
ZW50KiB0cmlnZ2VyaW5nRXZlbnQsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFja0Zv
cndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QsIGNvbnN0IFJlZmVycmVyUG9saWN5JiByZWZl
cnJlclBvbGljeSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5LCBPcHRpb25hbDxOZXdGcmFtZU9wZW5lclBvbGljeT4gb3BlbmVyUG9saWN5
LCBjb25zdCBBdG9tU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgY29uc3QgU3lzdGVtUHJldmll
d0luZm8mIHN5c3RlbVByZXZpZXdJbmZvLCBPcHRpb25hbDxBZENsaWNrQXR0cmlidXRpb24+JiYg
YWRDbGlja0F0dHJpYnV0aW9uKQordm9pZCBGcmFtZUxvYWRlcjo6Y2hhbmdlTG9jYXRpb24oY29u
c3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcGFzc2VkVGFyZ2V0LCBFdmVudCogdHJpZ2dlcmlu
Z0V2ZW50LCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2Nr
QmFja0ZvcndhcmRMaXN0LCBjb25zdCBSZWZlcnJlclBvbGljeSYgcmVmZXJyZXJQb2xpY3ksIFNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwg
T3B0aW9uYWw8TmV3RnJhbWVPcGVuZXJQb2xpY3k+IG9wZW5lclBvbGljeSwgY29uc3QgQXRvbVN0
cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGNvbnN0IFN5c3RlbVByZXZpZXdJbmZvJiBzeXN0ZW1Q
cmV2aWV3SW5mbywgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQpCiB7CiAgICAgYXV0byogZnJhbWUgPSBsZXhpY2FsRnJhbWVGcm9tQ29t
bW9uVk0oKTsKICAgICBhdXRvIGluaXRpYXRlZEJ5TWFpbkZyYW1lID0gZnJhbWUgJiYgZnJhbWUt
PmlzTWFpbkZyYW1lKCkgPyBJbml0aWF0ZWRCeU1haW5GcmFtZTo6WWVzIDogSW5pdGlhdGVkQnlN
YWluRnJhbWU6OlVua25vd247CkBAIC00MzUsMTAgKzQzNSwxMCBAQCB2b2lkIEZyYW1lTG9hZGVy
OjpjaGFuZ2VMb2NhdGlvbihjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwYXNzZWRUYXJn
ZXQsIEV2ZQogICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0UmVmZXJyZXJQb2xpY3kocmVmZXJyZXJQ
b2xpY3kpOwogICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKICAgICBmcmFtZUxvYWRSZXF1ZXN0
LmRpc2FibGVTaG91bGRSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwoKTsKLSAgICBjaGFu
Z2VMb2NhdGlvbihXVEZNb3ZlKGZyYW1lTG9hZFJlcXVlc3QpLCB0cmlnZ2VyaW5nRXZlbnQsIFdU
Rk1vdmUoYWRDbGlja0F0dHJpYnV0aW9uKSk7CisgICAgY2hhbmdlTG9jYXRpb24oV1RGTW92ZShm
cmFtZUxvYWRSZXF1ZXN0KSwgdHJpZ2dlcmluZ0V2ZW50LCBXVEZNb3ZlKHByaXZhdGVDbGlja01l
YXN1cmVtZW50KSk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmNoYW5nZUxvY2F0aW9uKEZyYW1l
TG9hZFJlcXVlc3QmJiBmcmFtZVJlcXVlc3QsIEV2ZW50KiB0cmlnZ2VyaW5nRXZlbnQsIE9wdGlv
bmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4mJiBhZENsaWNrQXR0cmlidXRpb24pCit2b2lkIEZyYW1l
TG9hZGVyOjpjaGFuZ2VMb2NhdGlvbihGcmFtZUxvYWRSZXF1ZXN0JiYgZnJhbWVSZXF1ZXN0LCBF
dmVudCogdHJpZ2dlcmluZ0V2ZW50LCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4m
JiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkKIHsKICAgICBGUkFNRUxPQURFUl9SRUxFQVNFX0xP
R19JRl9BTExPV0VEKFJlc291cmNlTG9hZGluZywgImNoYW5nZUxvY2F0aW9uOiBmcmFtZSBsb2Fk
IHN0YXJ0ZWQiKTsKICAgICBBU1NFUlQoZnJhbWVSZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLmh0
dHBNZXRob2QoKSA9PSAiR0VUIik7CkBAIC00NTYsNyArNDU2LDcgQEAgdm9pZCBGcmFtZUxvYWRl
cjo6Y2hhbmdlTG9jYXRpb24oRnJhbWVMb2FkUmVxdWVzdCYmIGZyYW1lUmVxdWVzdCwgRXZlbnQq
IHRyaWdnZXIKIAogICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5
KCktPnVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RJZk5lZWRlZChmcmFtZVJlcXVlc3QucmVzb3VyY2VS
ZXF1ZXN0KCksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TmF2
aWdhdGlvbik7CiAKLSAgICBsb2FkRnJhbWVSZXF1ZXN0KFdURk1vdmUoZnJhbWVSZXF1ZXN0KSwg
dHJpZ2dlcmluZ0V2ZW50LCB7IH0sIFdURk1vdmUoYWRDbGlja0F0dHJpYnV0aW9uKSk7CisgICAg
bG9hZEZyYW1lUmVxdWVzdChXVEZNb3ZlKGZyYW1lUmVxdWVzdCksIHRyaWdnZXJpbmdFdmVudCwg
eyB9LCBXVEZNb3ZlKHByaXZhdGVDbGlja01lYXN1cmVtZW50KSk7CiB9CiAKIHZvaWQgRnJhbWVM
b2FkZXI6OnN1Ym1pdEZvcm0oUmVmPEZvcm1TdWJtaXNzaW9uPiYmIHN1Ym1pc3Npb24pCkBAIC0x
MjM5LDcgKzEyMzksNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzZXR1cEZvclJlcGxhY2UoKQogICAg
IGRldGFjaENoaWxkcmVuKCk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmxvYWRGcmFtZVJlcXVl
c3QoRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVlc3QsIEV2ZW50KiBldmVudCwgUmVmUHRyPEZvcm1T
dGF0ZT4mJiBmb3JtU3RhdGUsIE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4mJiBhZENsaWNr
QXR0cmlidXRpb24pCit2b2lkIEZyYW1lTG9hZGVyOjpsb2FkRnJhbWVSZXF1ZXN0KEZyYW1lTG9h
ZFJlcXVlc3QmJiByZXF1ZXN0LCBFdmVudCogZXZlbnQsIFJlZlB0cjxGb3JtU3RhdGU+JiYgZm9y
bVN0YXRlLCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mJiBwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCkKIHsKICAgICBGUkFNRUxPQURFUl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKFJl
c291cmNlTG9hZGluZywgImxvYWRGcmFtZVJlcXVlc3Q6IGZyYW1lIGxvYWQgc3RhcnRlZCIpOwog
CkBAIC0xMjg3LDcgKzEyODcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkRnJhbWVSZXF1ZXN0
KEZyYW1lTG9hZFJlcXVlc3QmJiByZXF1ZXN0LCBFdmVudCogZXZlbnQsIFJlZgogICAgIGlmIChy
ZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiUE9TVCIpCiAgICAgICAg
IGxvYWRQb3N0UmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpLCByZWZlcnJlciwgbG9hZFR5cGUsIGV2
ZW50LCBXVEZNb3ZlKGZvcm1TdGF0ZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAg
ICBlbHNlCi0gICAgICAgIGxvYWRVUkwoV1RGTW92ZShyZXF1ZXN0KSwgcmVmZXJyZXIsIGxvYWRU
eXBlLCBldmVudCwgV1RGTW92ZShmb3JtU3RhdGUpLCBXVEZNb3ZlKGFkQ2xpY2tBdHRyaWJ1dGlv
biksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgbG9hZFVSTChXVEZNb3Zl
KHJlcXVlc3QpLCByZWZlcnJlciwgbG9hZFR5cGUsIGV2ZW50LCBXVEZNb3ZlKGZvcm1TdGF0ZSks
IFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiB9CiAKIHN0YXRpYyBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3lUb0FwcGx5KEZyYW1lJiBjdXJyZW50RnJhbWUsIEluaXRpYXRl
ZEJ5TWFpbkZyYW1lIGluaXRpYXRlZEJ5TWFpbkZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5IHByb3BhZ2F0ZWRQb2xpY3kpCkBAIC0xMzI5LDcgKzEzMjksNyBAQCBib29sIEZyYW1l
TG9hZGVyOjppc1N0b3BMb2FkaW5nQWxsb3dlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZURp
c21pc3NhbEV2ZW50QmVpbmdEaXNwYXRjaGVkID09IFBhZ2VEaXNtaXNzYWxUeXBlOjpOb25lOwog
fQogCi12b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMKEZyYW1lTG9hZFJlcXVlc3QmJiBmcmFtZUxv
YWRSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBGcmFtZUxvYWRUeXBlIG5ld0xvYWRU
eXBlLCBFdmVudCogZXZlbnQsIFJlZlB0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBPcHRpb25h
bDxBZENsaWNrQXR0cmlidXRpb24+JiYgYWRDbGlja0F0dHJpYnV0aW9uLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIEZyYW1lTG9hZGVyOjpsb2Fk
VVJMKEZyYW1lTG9hZFJlcXVlc3QmJiBmcmFtZUxvYWRSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHJl
ZmVycmVyLCBGcmFtZUxvYWRUeXBlIG5ld0xvYWRUeXBlLCBFdmVudCogZXZlbnQsIFJlZlB0cjxG
b3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4m
JiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIEZSQU1FTE9BREVSX1JFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoUmVzb3VyY2VMb2FkaW5nLCAibG9hZFVSTDogZnJhbWUgbG9hZCBzdGFydGVkIik7CiAgICAg
QVNTRVJUKGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09
ICJHRVQiKTsKQEAgLTEzNDgsNyArMTM0OCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRVUkwo
RnJhbWVMb2FkUmVxdWVzdCYmIGZyYW1lTG9hZFJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcmVmCiAg
ICAgYXV0byB0YXJnZXRGcmFtZSA9IGlzRm9ybVN1Ym1pc3Npb24gPyBudWxscHRyIDogbWFrZVJl
ZlB0cihmaW5kRnJhbWVGb3JOYXZpZ2F0aW9uKGVmZmVjdGl2ZUZyYW1lTmFtZSkpOwogICAgIGlm
ICh0YXJnZXRGcmFtZSAmJiB0YXJnZXRGcmFtZSAhPSAmbV9mcmFtZSkgewogICAgICAgICBmcmFt
ZUxvYWRSZXF1ZXN0LnNldEZyYW1lTmFtZSgiX3NlbGYiKTsKLSAgICAgICAgdGFyZ2V0RnJhbWUt
PmxvYWRlcigpLmxvYWRVUkwoV1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSwgcmVmZXJyZXIsIG5l
d0xvYWRUeXBlLCBldmVudCwgV1RGTW92ZShmb3JtU3RhdGUpLCBXVEZNb3ZlKGFkQ2xpY2tBdHRy
aWJ1dGlvbiksIGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJlbGVhc2UoKSk7CisgICAgICAgIHRh
cmdldEZyYW1lLT5sb2FkZXIoKS5sb2FkVVJMKFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdCksIHJl
ZmVycmVyLCBuZXdMb2FkVHlwZSwgZXZlbnQsIFdURk1vdmUoZm9ybVN0YXRlKSwgV1RGTW92ZShw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCksIGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJlbGVhc2Uo
KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEzNjcsOCArMTM2Nyw4IEBAIHZvaWQg
RnJhbWVMb2FkZXI6OmxvYWRVUkwoRnJhbWVMb2FkUmVxdWVzdCYmIGZyYW1lTG9hZFJlcXVlc3Qs
IGNvbnN0IFN0cmluZyYgcmVmCiAgICAgTmF2aWdhdGlvbkFjdGlvbiBhY3Rpb24geyBmcmFtZUxv
YWRSZXF1ZXN0LnJlcXVlc3RlcigpLCByZXF1ZXN0LCBmcmFtZUxvYWRSZXF1ZXN0LmluaXRpYXRl
ZEJ5TWFpbkZyYW1lKCksIG5ld0xvYWRUeXBlLCBpc0Zvcm1TdWJtaXNzaW9uLCBldmVudCwgZnJh
bWVMb2FkUmVxdWVzdC5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCksIGZyYW1lTG9hZFJl
cXVlc3QuZG93bmxvYWRBdHRyaWJ1dGUoKSB9OwogICAgIGFjdGlvbi5zZXRMb2NrSGlzdG9yeShm
cmFtZUxvYWRSZXF1ZXN0LmxvY2tIaXN0b3J5KCkpOwogICAgIGFjdGlvbi5zZXRMb2NrQmFja0Zv
cndhcmRMaXN0KGZyYW1lTG9hZFJlcXVlc3QubG9ja0JhY2tGb3J3YXJkTGlzdCgpKTsKLSAgICBp
ZiAoYWRDbGlja0F0dHJpYnV0aW9uICYmIG1fZnJhbWUuaXNNYWluRnJhbWUoKSkKLSAgICAgICAg
YWN0aW9uLnNldEFkQ2xpY2tBdHRyaWJ1dGlvbihXVEZNb3ZlKCphZENsaWNrQXR0cmlidXRpb24p
KTsKKyAgICBpZiAocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgJiYgbV9mcmFtZS5pc01haW5GcmFt
ZSgpKQorICAgICAgICBhY3Rpb24uc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV1RGTW92ZSgq
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpKTsKIAogICAgIE5ld0ZyYW1lT3BlbmVyUG9saWN5IG9w
ZW5lclBvbGljeSA9IGZyYW1lTG9hZFJlcXVlc3QubmV3RnJhbWVPcGVuZXJQb2xpY3koKTsKICAg
ICBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJM
ID0gZnJhbWVMb2FkUmVxdWVzdC5hbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggODRiMDg1ZTY4MDAzNjUyMWFiZTI4ZDg2OWFk
ZTdhZWE5MTEwMWRjMi4uYzJmNjM5YWNlZjhlYzM0MzY5NTU1YTkzMTdlZDY5MjgyNDJlN2JiNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTMxLDcgKzMxLDYgQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpbmNsdWRlICJBZENsaWNrQXR0cmlidXRpb24uaCIKICNpbmNsdWRlICJD
YWNoZVBvbGljeS5oIgogI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZy
YW1lTG9hZGVyU3RhdGVNYWNoaW5lLmgiCkBAIC0zOSw2ICszOCw3IEBACiAjaW5jbHVkZSAiTGF5
b3V0TWlsZXN0b25lLmgiCiAjaW5jbHVkZSAiTWl4ZWRDb250ZW50Q2hlY2tlci5oIgogI2luY2x1
ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQu
aCIKICNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZE5v
dGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCkBAIC0xMjQsNyAr
MTI0LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0dXBGb3JSZXBsYWNlKCk7CiAKICAgICAvLyBG
SVhNRTogVGhlc2UgYXJlIGFsbCBmdW5jdGlvbnMgd2hpY2ggc3RhcnQgbG9hZHMuIFdlIGhhdmUg
dG9vIG1hbnkuCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBsb2FkRnJhbWVSZXF1ZXN0KEZyYW1l
TG9hZFJlcXVlc3QmJiwgRXZlbnQqLCBSZWZQdHI8Rm9ybVN0YXRlPiYmLCBPcHRpb25hbDxBZENs
aWNrQXR0cmlidXRpb24+JiYgPSBXVEY6Om51bGxvcHQpOyAvLyBDYWxsZWQgYnkgc3VibWl0Rm9y
bSwgY2FsbHMgbG9hZFBvc3RSZXF1ZXN0IGFuZCBsb2FkVVJMLgorICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgbG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0JiYsIEV2ZW50KiwgUmVmUHRy
PEZvcm1TdGF0ZT4mJiwgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgPSBXVEY6
Om51bGxvcHQpOyAvLyBDYWxsZWQgYnkgc3VibWl0Rm9ybSwgY2FsbHMgbG9hZFBvc3RSZXF1ZXN0
IGFuZCBsb2FkVVJMLgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBsb2FkKEZyYW1lTG9hZFJl
cXVlc3QmJik7CiAKQEAgLTEzMyw4ICsxMzMsOCBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB1bnNp
Z25lZCBsb25nIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgQ2xpZW50Q3JlZGVudGlhbFBvbGljeSwgY29uc3QgRmV0Y2hPcHRpb25zJiwgY29uc3QgSFRU
UEhlYWRlck1hcCYsIFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4mIGRhdGEpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjaGFuZ2VMb2Nh
dGlvbihjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHRhcmdldCwgRXZlbnQqLCBMb2NrSGlzdG9y
eSwgTG9ja0JhY2tGb3J3YXJkTGlzdCwgY29uc3QgUmVmZXJyZXJQb2xpY3kmLCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5LCBPcHRpb25hbDxOZXdGcmFtZU9wZW5lclBvbGljeT4gPSBXVEY6
Om51bGxvcHQsIGNvbnN0IEF0b21TdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlID0gbnVsbEF0b20o
KSwgY29uc3QgU3lzdGVtUHJldmlld0luZm8mID0geyB9LCBPcHRpb25hbDxBZENsaWNrQXR0cmli
dXRpb24+JiYgPSBXVEY6Om51bGxvcHQpOwotICAgIHZvaWQgY2hhbmdlTG9jYXRpb24oRnJhbWVM
b2FkUmVxdWVzdCYmLCBFdmVudCogPSBudWxscHRyLCBPcHRpb25hbDxBZENsaWNrQXR0cmlidXRp
b24+JiYgPSBXVEY6Om51bGxvcHQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2hhbmdlTG9j
YXRpb24oY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB0YXJnZXQsIEV2ZW50KiwgTG9ja0hpc3Rv
cnksIExvY2tCYWNrRm9yd2FyZExpc3QsIGNvbnN0IFJlZmVycmVyUG9saWN5JiwgU2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSwgT3B0aW9uYWw8TmV3RnJhbWVPcGVuZXJQb2xpY3k+ID0gV1RG
OjpudWxsb3B0LCBjb25zdCBBdG9tU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSA9IG51bGxBdG9t
KCksIGNvbnN0IFN5c3RlbVByZXZpZXdJbmZvJiA9IHsgfSwgT3B0aW9uYWw8UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ+JiYgPSBXVEY6Om51bGxvcHQpOworICAgIHZvaWQgY2hhbmdlTG9jYXRpb24o
RnJhbWVMb2FkUmVxdWVzdCYmLCBFdmVudCogPSBudWxscHRyLCBPcHRpb25hbDxQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudD4mJiA9IFdURjo6bnVsbG9wdCk7CiAgICAgdm9pZCBzdWJtaXRGb3JtKFJl
ZjxGb3JtU3VibWlzc2lvbj4mJik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbG9hZChP
cHRpb25TZXQ8UmVsb2FkT3B0aW9uPiA9IHsgfSk7CkBAIC0zODcsNyArMzg3LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBOYXZpZ2F0aW9uQWN0aW9uJiYsIEZyYW1lTG9hZFR5cGUsIFJlZlB0cjxGb3JtU3RhdGU+
JiYsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmID0gW10geyB9KTsgLy8gQ2FsbHMgbG9hZFdpdGhEb2N1bWVudExvYWRlcgogCiAgICAgdm9p
ZCBsb2FkUG9zdFJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIHJlZmVy
cmVyLCBGcmFtZUxvYWRUeXBlLCBFdmVudCosIFJlZlB0cjxGb3JtU3RhdGU+JiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBsb2FkVVJMKEZyYW1lTG9hZFJlcXVlc3Qm
JiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgRnJhbWVMb2FkVHlwZSwgRXZlbnQqLCBSZWZQdHI8
Rm9ybVN0YXRlPiYmLCBPcHRpb25hbDxBZENsaWNrQXR0cmlidXRpb24+JiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBsb2FkVVJMKEZyYW1lTG9hZFJlcXVlc3QmJiwg
Y29uc3QgU3RyaW5nJiByZWZlcnJlciwgRnJhbWVMb2FkVHlwZSwgRXZlbnQqLCBSZWZQdHI8Rm9y
bVN0YXRlPiYmLCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIGJvb2wgc2hvdWxkUmVsb2FkKGNvbnN0IFVSTCYg
Y3VycmVudFVSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oCmluZGV4IDY5OTRkZjM4MDcwYjcyZjZlNjJjZGRkNjYz
N2Y0MDNhNWZiNTQ0NjQuLmRjMjAwMTkwMGY1NWQ2Mjg5OGM4NzQ5MzVkNWRhN2ZkODI5ZjU0MDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaApAQCAtMjgsMTEgKzI4
LDExIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiQWRDbGlja0F0dHJpYnV0aW9uLmgi
CiAjaW5jbHVkZSAiQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJHbG9iYWxGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNs
dWRlICJMYXlvdXRQb2ludC5oIgorI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50Lmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4u
aCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgpAQCAtMTM3LDggKzEzNyw4IEBA
IHB1YmxpYzoKICAgICBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QoKSBj
b25zdCB7IHJldHVybiBtX2xvY2tCYWNrRm9yd2FyZExpc3Q7IH0KICAgICB2b2lkIHNldExvY2tC
YWNrRm9yd2FyZExpc3QoTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KSB7
IG1fbG9ja0JhY2tGb3J3YXJkTGlzdCA9IGxvY2tCYWNrRm9yd2FyZExpc3Q7IH0KIAotICAgIGNv
bnN0IE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4mIGFkQ2xpY2tBdHRyaWJ1dGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fYWRDbGlja0F0dHJpYnV0aW9uOyB9OwotICAgIHZvaWQgc2V0QWRDbGlj
a0F0dHJpYnV0aW9uKEFkQ2xpY2tBdHRyaWJ1dGlvbiYmIGFkQ2xpY2tBdHRyaWJ1dGlvbikgeyBt
X2FkQ2xpY2tBdHRyaWJ1dGlvbiA9IGFkQ2xpY2tBdHRyaWJ1dGlvbjsgfTsKKyAgICBjb25zdCBP
cHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mIHByaXZhdGVDbGlja01lYXN1cmVtZW50
KCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsgfTsKKyAgICB2b2lk
IHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50KFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQpIHsgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IHByaXZh
dGVDbGlja01lYXN1cmVtZW50OyB9OwogCiBwcml2YXRlOgogICAgIC8vIERvIG5vdCBhZGQgYSBz
dHJvbmcgcmVmZXJlbmNlIHRvIHRoZSBvcmlnaW5hdGluZyBkb2N1bWVudCBvciBhIHN1Ym9iamVj
dCB0aGF0IGhvbGRzIHRoZQpAQCAtMTU5LDcgKzE1OSw3IEBAIHByaXZhdGU6CiAgICAgT3B0aW9u
YWw8QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcj4gbV9zb3VyY2VCYWNrRm9yd2FyZEl0ZW1JZGVu
dGlmaWVyOwogICAgIExvY2tIaXN0b3J5IG1fbG9ja0hpc3RvcnkgeyBMb2NrSGlzdG9yeTo6Tm8g
fTsKICAgICBMb2NrQmFja0ZvcndhcmRMaXN0IG1fbG9ja0JhY2tGb3J3YXJkTGlzdCB7IExvY2tC
YWNrRm9yd2FyZExpc3Q6Ok5vIH07Ci0gICAgT3B0aW9uYWw8QWRDbGlja0F0dHJpYnV0aW9uPiBt
X2FkQ2xpY2tBdHRyaWJ1dGlvbjsKKyAgICBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dD4gbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE2N2U2Y2Q4Zjg3NzAxZTg3MDJjMjVhODc2OTQ0NTI2OTlhNGM3MWQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQuY3BwCkBAIC0wLDAgKzEsMjI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50LmgiCisKKyNpbmNsdWRl
ICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1
ZGUgPHd0Zi9FeHBlY3RlZC5oPgorI2luY2x1ZGUgPHd0Zi9SYW5kb21OdW1iZXIuaD4KKyNpbmNs
dWRlIDx3dGYvVVJMLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitz
dGF0aWMgY29uc3QgY2hhciBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFBhdGhQcmVmaXhbXSA9ICIv
LndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8iOworY29uc3Qgc2l6ZV90IHBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbkRhdGFQYXRoU2VnbWVudFNpemUgPSAyOwor
Y29uc3Qgc2l6ZV90IHByaXZhdGVDbGlja01lYXN1cmVtZW50UHJpb3JpdHlQYXRoU2VnbWVudFNp
emUgPSAyOworY29uc3QgU2Vjb25kcyBtYXhBZ2UgeyAyNF9oICogNyB9OworCitib29sIFByaXZh
dGVDbGlja01lYXN1cmVtZW50Ojppc1ZhbGlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb252
ZXJzaW9uCisgICAgICAgICYmIG1fY29udmVyc2lvbi52YWx1ZSgpLmlzVmFsaWQoKQorICAgICAg
ICAmJiBtX2NhbXBhaWduLmlzVmFsaWQoKQorICAgICAgICAmJiAhbV9zb3VyY2UucmVnaXN0cmFi
bGVEb21haW4uaXNFbXB0eSgpCisgICAgICAgICYmICFtX2Rlc3RpbmF0aW9uLnJlZ2lzdHJhYmxl
RG9tYWluLmlzRW1wdHkoKQorICAgICAgICAmJiBtX2VhcmxpZXN0VGltZVRvU2VuZDsKK30KKwor
RXhwZWN0ZWQ8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24sIFN0cmluZz4gUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29uc3QgVVJMJiBy
ZWRpcmVjdFVSTCkKK3sKKyAgICBpZiAoIXJlZGlyZWN0VVJMLnByb3RvY29sSXMoImh0dHBzIikg
fHwgcmVkaXJlY3RVUkwuaGFzQ3JlZGVudGlhbHMoKSB8fCByZWRpcmVjdFVSTC5oYXNRdWVyeSgp
IHx8IHJlZGlyZWN0VVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKSB7CisgICAgICAgIGlmIChV
TkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19J
TkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVk
IGJlY2F1c2UgdGhlIFVSTCdzIHByb3RvY29sIGlzIG5vdCBIVFRQUyBvciB0aGUgVVJMIGNvbnRh
aW5zIG9uZSBvciBtb3JlIG9mIHVzZXJuYW1lLCBwYXNzd29yZCwgcXVlcnkgc3RyaW5nLCBhbmQg
ZnJhZ21lbnQuIik7CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIltQcml2YXRl
IENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0
aGUgVVJMJ3MgcHJvdG9jb2wgaXMgbm90IEhUVFBTIG9yIHRoZSBVUkwgY29udGFpbnMgb25lIG9y
IG1vcmUgb2YgdXNlcm5hbWUsIHBhc3N3b3JkLCBxdWVyeSBzdHJpbmcsIGFuZCBmcmFnbWVudC4i
X3MpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChudWxsU3RyaW5n
KCkpOworICAgIH0KKworICAgIGF1dG8gcGF0aCA9IFN0cmluZ1ZpZXcocmVkaXJlY3RVUkwuc3Ry
aW5nKCkpLnN1YnN0cmluZyhyZWRpcmVjdFVSTC5wYXRoU3RhcnQoKSwgcmVkaXJlY3RVUkwucGF0
aEVuZCgpIC0gcmVkaXJlY3RVUkwucGF0aFN0YXJ0KCkpOworICAgIGlmIChwYXRoLmlzRW1wdHko
KSB8fCAhcGF0aC5zdGFydHNXaXRoKHByaXZhdGVDbGlja01lYXN1cmVtZW50UGF0aFByZWZpeCkp
IHsKKyAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKKyAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJDb252ZXJzaW9u
IHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMIHBhdGggZGlkIG5vdCBzdGFydCB3aXRo
ICUiIFBVQkxJQ19MT0dfU1RSSU5HICIuIiwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRQYXRoUHJl
Zml4KTsKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJbUHJp
dmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1
c2UgdGhlIFVSTCBwYXRoIGRpZCBub3Qgc3RhcnQgd2l0aCAiX3MsIHByaXZhdGVDbGlja01lYXN1
cmVtZW50UGF0aFByZWZpeCwgIi4iX3MpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQobnVsbFN0cmluZygpKTsKKyAgICB9CisKKyAgICBhdXRvIHByZWZpeExlbmd0
aCA9IHNpemVvZihwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFBhdGhQcmVmaXgpIC0gMTsKKyAgICBp
ZiAocGF0aC5sZW5ndGgoKSA9PSBwcmVmaXhMZW5ndGggKyBwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dENvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRTaXplKSB7CisgICAgICAgIGF1dG8gY29udmVyc2lv
bkRhdGFVSW50NjQgPSBwYXRoLnN1YnN0cmluZyhwcmVmaXhMZW5ndGgsIHByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29udmVyc2lvbkRhdGFQYXRoU2VnbWVudFNpemUpLnRvVUludDY0U3RyaWN0KCk7
CisgICAgICAgIGlmICghY29udmVyc2lvbkRhdGFVSW50NjQgfHwgKmNvbnZlcnNpb25EYXRhVUlu
dDY0ID4gTWF4RW50cm9weSkgeworICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVu
YWJsZWQoKSkpIHsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50LCAiQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIGNv
bnZlcnNpb24gZGF0YSBjb3VsZCBub3QgYmUgcGFyc2VkIG9yIHdhcyBoaWdoZXIgdGhhbiB0aGUg
YWxsb3dlZCBtYXhpbXVtIG9mICV7cHVibGljfXUuIiwgTWF4RW50cm9weSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1l
YXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgY29udmVy
c2lvbiBkYXRhIGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2FzIGhpZ2hlciB0aGFuIHRoZSBhbGxv
d2VkIG1heGltdW0gb2YgIl9zLCBNYXhFbnRyb3B5LCAiLiJfcykpOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG51bGxTdHJpbmcoKSk7CisgICAgICAg
IH0KKworICAgICAgICByZXR1cm4gQ29udmVyc2lvbiB7IHN0YXRpY19jYXN0PHVpbnQzMl90Pigq
Y29udmVyc2lvbkRhdGFVSW50NjQpLCBQcmlvcml0eSB7IDAgfSB9OworICAgIH0KKyAgICAKKyAg
ICBpZiAocGF0aC5sZW5ndGgoKSA9PSBwcmVmaXhMZW5ndGggKyBwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRTaXplICsgMSArIHByaXZhdGVDbGlja01lYXN1
cmVtZW50UHJpb3JpdHlQYXRoU2VnbWVudFNpemUpIHsKKyAgICAgICAgYXV0byBjb252ZXJzaW9u
RGF0YVVJbnQ2NCA9IHBhdGguc3Vic3RyaW5nKHByZWZpeExlbmd0aCwgcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRDb252ZXJzaW9uRGF0YVBhdGhTZWdtZW50U2l6ZSkudG9VSW50NjRTdHJpY3QoKTsK
KyAgICAgICAgaWYgKCFjb252ZXJzaW9uRGF0YVVJbnQ2NCB8fCAqY29udmVyc2lvbkRhdGFVSW50
NjQgPiBNYXhFbnRyb3B5KSB7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5h
YmxlZCgpKSkgeworICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQsICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgY29u
dmVyc2lvbiBkYXRhIGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2FzIGhpZ2hlciB0aGFuIHRoZSBh
bGxvd2VkIG1heGltdW0gb2YgJXtwdWJsaWN9dS4iLCBNYXhFbnRyb3B5KTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiW1ByaXZhdGUgQ2xpY2sgTWVh
c3VyZW1lbnRdIENvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBjb252ZXJz
aW9uIGRhdGEgY291bGQgbm90IGJlIHBhcnNlZCBvciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93
ZWQgbWF4aW11bSBvZiAiX3MsIE1heEVudHJvcHksICIuIl9zKSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygpKTsKKyAgICAgICAg
fQorCisgICAgICAgIGF1dG8gY29udmVyc2lvblByaW9yaXR5VUludDY0ID0gcGF0aC5zdWJzdHJp
bmcocHJlZml4TGVuZ3RoICsgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uRGF0YVBh
dGhTZWdtZW50U2l6ZSArIDEsIHByaXZhdGVDbGlja01lYXN1cmVtZW50UHJpb3JpdHlQYXRoU2Vn
bWVudFNpemUpLnRvVUludDY0U3RyaWN0KCk7CisgICAgICAgIGlmICghY29udmVyc2lvblByaW9y
aXR5VUludDY0IHx8ICpjb252ZXJzaW9uUHJpb3JpdHlVSW50NjQgPiBNYXhFbnRyb3B5KSB7Cisg
ICAgICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJDb252ZXJz
aW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgcHJpb3JpdHkgY291bGQgbm90IGJlIHBh
cnNlZCBvciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQgbWF4aW11bSBvZiAle3B1YmxpY311
LiIsIE1heEVudHJvcHkpOworICAgICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCht
YWtlU3RyaW5nKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVyc2lvbiB3YXMgbm90
IGFjY2VwdGVkIGJlY2F1c2UgdGhlIHByaW9yaXR5IGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2Fz
IGhpZ2hlciB0aGFuIHRoZSBhbGxvd2VkIG1heGltdW0gb2YgIl9zLCBNYXhFbnRyb3B5LCAiLiJf
cykpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG51
bGxTdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gQ29udmVyc2lvbiB7IHN0
YXRpY19jYXN0PHVpbnQzMl90PigqY29udmVyc2lvbkRhdGFVSW50NjQpLCBQcmlvcml0eSB7IHN0
YXRpY19jYXN0PHVpbnQzMl90PigqY29udmVyc2lvblByaW9yaXR5VUludDY0KSB9IH07CisgICAg
fQorCisgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKKyAgICAgICAgUkVM
RUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkNvbnZlcnNpb24gd2FzIG5v
dCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBVUkwgcGF0aCBjb250YWluZWQgdW5yZWNvZ25pemVkIHBh
cnRzLiIpOworICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIltQcml2YXRlIENsaWNrIE1l
YXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMIHBh
dGggY29udGFpbmVkIHVucmVjb2duaXplZCBwYXJ0cy4iX3MpOworICAgIH0KKyAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygpKTsKK30KKworT3B0aW9uYWw8U2Vjb25kcz4gUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoQ29u
dmVyc2lvbiYmIGNvbnZlcnNpb24pCit7CisgICAgaWYgKCFjb252ZXJzaW9uLmlzVmFsaWQoKSB8
fCAobV9jb252ZXJzaW9uICYmIG1fY29udmVyc2lvbi0+cHJpb3JpdHkgPj0gY29udmVyc2lvbi5w
cmlvcml0eSkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBtX2NvbnZlcnNpb24gPSBXVEZN
b3ZlKGNvbnZlcnNpb24pOworICAgIC8vIDI0LTQ4IGhvdXIgZGVsYXkgYmVmb3JlIHNlbmRpbmcu
IFRoaXMgaGVscHMgcHJpdmFjeSBzaW5jZSB0aGUgY29udmVyc2lvbiBhbmQgdGhlIGF0dHJpYnV0
aW9uCisgICAgLy8gcmVxdWVzdHMgYXJlIGRldGFjaGVkIGFuZCB0aGUgdGltZSBvZiB0aGUgYXR0
cmlidXRpb24gZG9lcyBub3QgcmV2ZWFsIHRoZSB0aW1lIG9mIHRoZSBjb252ZXJzaW9uLgorICAg
IGF1dG8gc2Vjb25kcyA9IDI0X2ggKyBTZWNvbmRzKHJhbmRvbU51bWJlcigpICogKDI0X2gpLnZh
bHVlKCkpOworICAgIG1fZWFybGllc3RUaW1lVG9TZW5kID0gV2FsbFRpbWU6Om5vdygpICsgc2Vj
b25kczsKKyAgICByZXR1cm4gc2Vjb25kczsKK30KKwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6bWFya0FzRXhwaXJlZCgpCit7CisgICAgbV90aW1lT2ZBZENsaWNrID0geyB9OworfQor
Citib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpoYXNFeHBpcmVkKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gV2FsbFRpbWU6Om5vdygpID4gbV90aW1lT2ZBZENsaWNrICsgbWF4QWdlOworfQor
Citib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpoYXNIaWdoZXJQcmlvcml0eVRoYW4oY29u
c3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmIG90aGVyKSBjb25zdAoreworICAgIGlmICghb3Ro
ZXIubV9jb252ZXJzaW9uKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAKKyAgICBpZiAoIW1f
Y29udmVyc2lvbikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIG1fY29udmVy
c2lvbi0+cHJpb3JpdHkgPiBvdGhlci5tX2NvbnZlcnNpb24tPnByaW9yaXR5OworfQorCitVUkwg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnJlcG9ydFVSTCgpIGNvbnN0Cit7CisgICAgaWYgKCFp
c1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBVUkwoKTsKKworICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImh0dHBzOi8vIik7CisgICAgYnVpbGRl
ci5hcHBlbmQobV9zb3VyY2UucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkpOworICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFBhdGhQcmVmaXgpOworCisg
ICAgVVJMIHVybCB7IFVSTCgpLCBidWlsZGVyLnRvU3RyaW5nKCkgfTsKKyAgICBpZiAodXJsLmlz
VmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIHVybDsKKworICAgIHJldHVybiBVUkwoKTsKK30KKwor
UmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ompzb24oKSBjb25zdAor
eworICAgIGF1dG8gcmVwb3J0RGV0YWlscyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAg
aWYgKCFtX2NvbnZlcnNpb24pCisgICAgICAgIHJldHVybiByZXBvcnREZXRhaWxzOworCisgICAg
cmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJjb250ZW50LXR5cGUiX3MsICJjbGljayJfcyk7Cisg
ICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJjb250ZW50LXNpdGUiX3MsIG1fc291cmNlLnJl
Z2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICByZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2Vy
KCJjb250ZW50LWlkIl9zLCBtX2NhbXBhaWduLmlkKTsKKyAgICByZXBvcnREZXRhaWxzLT5zZXRT
dHJpbmcoImNvbnZlcnNpb24tc2l0ZSJfcywgbV9kZXN0aW5hdGlvbi5yZWdpc3RyYWJsZURvbWFp
bi5zdHJpbmcoKSk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigiY29udmVyc2lvbi1k
YXRhIl9zLCBtX2NvbnZlcnNpb24tPmRhdGEpOworICAgIHJlcG9ydERldGFpbHMtPnNldEludGVn
ZXIoInJlcG9ydC12ZXJzaW9uIl9zLCAxKTsKKyAgICByZXR1cm4gcmVwb3J0RGV0YWlsczsKK30K
Kwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6bWFya0NvbnZlcnNpb25Bc1NlbnQoKQor
eworICAgIEFTU0VSVChtX2NvbnZlcnNpb24pOworICAgIGlmIChtX2NvbnZlcnNpb24pCisgICAg
ICAgIG1fY29udmVyc2lvbi0+d2FzU2VudCA9IENvbnZlcnNpb246Oldhc1NlbnQ6OlllczsKK30K
KworYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6d2FzQ29udmVyc2lvblNlbnQoKSBjb25z
dAoreworICAgIHJldHVybiBtX2NvbnZlcnNpb24gJiYgbV9jb252ZXJzaW9uLT53YXNTZW50ID09
IENvbnZlcnNpb246Oldhc1NlbnQ6OlllczsKK30KKworU3RyaW5nIFByaXZhdGVDbGlja01lYXN1
cmVtZW50Ojp0b1N0cmluZygpIGNvbnN0Cit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwor
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiU291cmNlOiAiKTsKKyAgICBidWlsZGVyLmFwcGVu
ZChtX3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CisgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJcbkRlc3RpbmF0aW9uOiAiKTsKKyAgICBidWlsZGVyLmFwcGVuZChtX2Rlc3Rp
bmF0aW9uLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIlxuQ2FtcGFpZ24gSUQ6ICIpOworICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fY2Ft
cGFpZ24uaWQpOworICAgIGlmIChtX2NvbnZlcnNpb24pIHsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJcbkNvbnZlcnNpb24gZGF0YTogIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
TnVtYmVyKG1fY29udmVyc2lvbi52YWx1ZSgpLmRhdGEpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIlxuQ29udmVyc2lvbiBwcmlvcml0eTogIik7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTnVtYmVyKG1fY29udmVyc2lvbi52YWx1ZSgpLnByaW9yaXR5KTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCJcbkNvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiAiKTsK
KyAgICAgICAgaWYgKCFtX2VhcmxpZXN0VGltZVRvU2VuZCkKKyAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiTm90IHNldCIpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGF1
dG8gc2Vjb25kc1VudGlsU2VuZCA9ICptX2VhcmxpZXN0VGltZVRvU2VuZCAtIFdhbGxUaW1lOjpu
b3coKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKChzZWNvbmRzVW50aWxTZW5kID49IDI0
X2ggJiYgc2Vjb25kc1VudGlsU2VuZCA8PSA0OF9oKSA/ICJXaXRoaW4gMjQtNDggaG91cnMiIDog
Ik91dHNpZGUgMjQtNDggaG91cnMiKTsKKyAgICAgICAgfQorICAgICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIlxuQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6ICIpOworICAgICAgICBidWlsZGVy
LmFwcGVuZCgod2FzQ29udmVyc2lvblNlbnQoKSA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAgICB9
IGVsc2UKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbk5vIGNvbnZlcnNpb24gZGF0
YS4iKTsKKyAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKKworICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7Cit9CisKK2Jvb2wgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmRlYnVnTW9kZUVu
YWJsZWQoKQoreworICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLnByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZCgpOworfQorCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE2MDJmN2NjNjlhZGFlODkzYTk3MmZlZjM0NTA4YTBmNTE0M2E1MjAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQuaApAQCAtMCwwICsxLDM2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiUmVnaXN0cmFibGVEb21haW4uaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRs
ZXIuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVz
Lmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgorI2lu
Y2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB7CitwdWJsaWM6CisgICAgdXNpbmcgQ2Ft
cGFpZ25JZCA9IHVpbnQzMl90OworICAgIHVzaW5nIENvbnZlcnNpb25EYXRhID0gdWludDMyX3Q7
CisgICAgdXNpbmcgUHJpb3JpdHlWYWx1ZSA9IHVpbnQzMl90OworCisgICAgc3RhdGljIGNvbnN0
ZXhwciB1aW50MzJfdCBNYXhFbnRyb3B5ID0gNjM7CisKKyAgICBzdHJ1Y3QgQ2FtcGFpZ24gewor
ICAgICAgICBDYW1wYWlnbigpID0gZGVmYXVsdDsKKyAgICAgICAgZXhwbGljaXQgQ2FtcGFpZ24o
Q2FtcGFpZ25JZCBpZCkKKyAgICAgICAgICAgIDogaWQgeyBpZCB9CisgICAgICAgIHsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QKKyAgICAgICAgewor
ICAgICAgICAgICAgcmV0dXJuIGlkIDw9IE1heEVudHJvcHk7CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIENhbXBhaWduSWQgaWQgeyAwIH07CisgICAgfTsKKworICAgIHN0cnVjdCBTb3Vy
Y2UgeworICAgICAgICBTb3VyY2UoKSA9IGRlZmF1bHQ7CisgICAgICAgIGV4cGxpY2l0IFNvdXJj
ZShjb25zdCBVUkwmIHVybCkKKyAgICAgICAgICAgIDogcmVnaXN0cmFibGVEb21haW4geyB1cmwg
fQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBleHBsaWNpdCBTb3VyY2UoY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKKyAgICAgICAgICAgIDogcmVnaXN0cmFibGVEb21h
aW4geyBkb21haW4gfQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBleHBsaWNpdCBT
b3VyY2UoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQorICAgICAgICAgICAgOiByZWdp
c3RyYWJsZURvbWFpbihXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSkKKyAgICAgICAgeworICAg
ICAgICB9CisKKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNvdXJjZSYgb3RoZXIpIGNv
bnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByZWdpc3RyYWJsZURvbWFpbiA9PSBv
dGhlci5yZWdpc3RyYWJsZURvbWFpbjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgbWF0Y2hl
cyhjb25zdCBVUkwmIHVybCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHJl
Z2lzdHJhYmxlRG9tYWluLm1hdGNoZXModXJsKTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wg
aXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBy
ZXR1cm4gcmVnaXN0cmFibGVEb21haW4uaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKTsKKyAgICAg
ICAgfQorCisgICAgICAgIHN0YXRpYyBTb3VyY2UgZGVsZXRlZFZhbHVlKCkKKyAgICAgICAgewor
ICAgICAgICAgICAgcmV0dXJuIFNvdXJjZSB7IFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlIH07
CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUo
U291cmNlJiBzb3VyY2UpCisgICAgICAgIHsKKyAgICAgICAgICAgIG5ldyAoJnNvdXJjZSkgU291
cmNlOworICAgICAgICAgICAgc291cmNlID0gU291cmNlOjpkZWxldGVkVmFsdWUoKTsKKyAgICAg
ICAgfQorCisgICAgICAgIHZvaWQgZGVsZXRlVmFsdWUoKQorICAgICAgICB7CisgICAgICAgICAg
ICByZWdpc3RyYWJsZURvbWFpbiA9IFJlZ2lzdHJhYmxlRG9tYWluIHsgV1RGOjpIYXNoVGFibGVE
ZWxldGVkVmFsdWUgfTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgaXNEZWxldGVkVmFsdWUo
KSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaXNIYXNoVGFibGVEZWxldGVk
VmFsdWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlZ2lzdHJh
YmxlRG9tYWluOworICAgIH07CisKKyAgICBzdHJ1Y3QgU291cmNlSGFzaCB7CisgICAgICAgIHN0
YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFNvdXJjZSYgc291cmNlKQorICAgICAgICB7CisgICAg
ICAgICAgICByZXR1cm4gc291cmNlLnJlZ2lzdHJhYmxlRG9tYWluLmhhc2goKTsKKyAgICAgICAg
fQorICAgICAgICAKKyAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgU291cmNlJiBhLCBj
b25zdCBTb3VyY2UmIGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBhID09IGI7Cisg
ICAgICAgIH0KKworICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0
eU9yRGVsZXRlZCA9IGZhbHNlOworICAgIH07CisKKyAgICBzdHJ1Y3QgRGVzdGluYXRpb24gewor
ICAgICAgICBEZXN0aW5hdGlvbigpID0gZGVmYXVsdDsKKyAgICAgICAgZXhwbGljaXQgRGVzdGlu
YXRpb24oY29uc3QgVVJMJiB1cmwpCisgICAgICAgICAgICA6IHJlZ2lzdHJhYmxlRG9tYWluIHsg
UmVnaXN0cmFibGVEb21haW4geyB1cmwgfSB9CisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAg
ICAgIGV4cGxpY2l0IERlc3RpbmF0aW9uKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkK
KyAgICAgICAgICAgIDogcmVnaXN0cmFibGVEb21haW4geyBXVEY6Okhhc2hUYWJsZURlbGV0ZWRW
YWx1ZSB9CisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIGV4cGxpY2l0IERlc3RpbmF0
aW9uKFJlZ2lzdHJhYmxlRG9tYWluJiYgZG9tYWluKQorICAgICAgICAgICAgOiByZWdpc3RyYWJs
ZURvbWFpbiB7IFdURk1vdmUoZG9tYWluKSB9CisgICAgICAgIHsKKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IERlc3RpbmF0aW9uJiBvdGhlcikgY29u
c3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhYmxlRG9tYWluID09IG90
aGVyLnJlZ2lzdHJhYmxlRG9tYWluOworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBtYXRjaGVz
KGNvbnN0IFVSTCYgdXJsKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcmVn
aXN0cmFibGVEb21haW4gPT0gUmVnaXN0cmFibGVEb21haW4geyB1cmwgfTsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0Cisg
ICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByZWdpc3RyYWJsZURvbWFpbi5pc0hhc2hUYWJs
ZURlbGV0ZWRWYWx1ZSgpOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIERlc3RpbmF0aW9u
IGRlbGV0ZWRWYWx1ZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBEZXN0aW5hdGlv
biB7IFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlIH07CisgICAgICAgIH0KKworICAgICAgICBz
dGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoRGVzdGluYXRpb24mIGRlc3RpbmF0aW9u
KQorICAgICAgICB7CisgICAgICAgICAgICBuZXcgKCZkZXN0aW5hdGlvbikgRGVzdGluYXRpb247
CisgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IERlc3RpbmF0aW9uOjpkZWxldGVkVmFsdWUoKTsK
KyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZGVsZXRlVmFsdWUoKQorICAgICAgICB7CisgICAg
ICAgICAgICByZWdpc3RyYWJsZURvbWFpbiA9IFJlZ2lzdHJhYmxlRG9tYWluIHsgV1RGOjpIYXNo
VGFibGVEZWxldGVkVmFsdWUgfTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgaXNEZWxldGVk
VmFsdWUoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaXNIYXNoVGFibGVE
ZWxldGVkVmFsdWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJl
Z2lzdHJhYmxlRG9tYWluOworICAgIH07CisKKyAgICBzdHJ1Y3QgRGVzdGluYXRpb25IYXNoIHsK
KyAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgRGVzdGluYXRpb24mIGRlc3RpbmF0
aW9uKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZGVzdGluYXRpb24ucmVnaXN0cmFi
bGVEb21haW4uaGFzaCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzdGF0aWMgYm9v
bCBlcXVhbChjb25zdCBEZXN0aW5hdGlvbiYgYSwgY29uc3QgRGVzdGluYXRpb24mIGIpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHJldHVybiBhID09IGI7CisgICAgICAgIH0KKworICAgICAgICBz
dGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwor
ICAgIH07CisKKyAgICBzdHJ1Y3QgUHJpb3JpdHkgeworICAgICAgICBleHBsaWNpdCBQcmlvcml0
eShQcmlvcml0eVZhbHVlIHZhbHVlKQorICAgICAgICA6IHZhbHVlIHsgdmFsdWUgfQorICAgICAg
ICB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFByaW9yaXR5VmFsdWUgdmFsdWU7Cisg
ICAgfTsKKyAgICAKKyAgICBzdHJ1Y3QgQ29udmVyc2lvbiB7CisgICAgICAgIGVudW0gY2xhc3Mg
V2FzU2VudCA6IGJvb2wgeyBObywgWWVzIH07CisgICAgICAgIAorICAgICAgICBDb252ZXJzaW9u
KENvbnZlcnNpb25EYXRhIGRhdGEsIFByaW9yaXR5IHByaW9yaXR5LCBXYXNTZW50IHdhc1NlbnQg
PSBXYXNTZW50OjpObykKKyAgICAgICAgICAgIDogZGF0YSB7IGRhdGEgfQorICAgICAgICAgICAg
LCBwcmlvcml0eSB7IHByaW9yaXR5LnZhbHVlIH0KKyAgICAgICAgICAgICwgd2FzU2VudCB7IHdh
c1NlbnQgfQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBib29sIGlzVmFsaWQoKSBj
b25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZGF0YSA8PSBNYXhFbnRyb3B5ICYm
IHByaW9yaXR5IDw9IE1heEVudHJvcHk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIENv
bnZlcnNpb25EYXRhIGRhdGE7CisgICAgICAgIFByaW9yaXR5VmFsdWUgcHJpb3JpdHk7CisgICAg
ICAgIFdhc1NlbnQgd2FzU2VudCA9IFdhc1NlbnQ6Ok5vOworCisgICAgICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICAgICAgdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPENvbnZlcnNpb24+IGRlY29kZShEZWNv
ZGVyJik7CisgICAgfTsKKworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50KCkgPSBkZWZhdWx0
OworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50KENhbXBhaWduIGNhbXBhaWduLCBjb25zdCBT
b3VyY2UmIHNvdXJjZSwgY29uc3QgRGVzdGluYXRpb24mIGRlc3RpbmF0aW9uKQorICAgICAgICA6
IG1fY2FtcGFpZ24geyBjYW1wYWlnbiB9CisgICAgICAgICwgbV9zb3VyY2UgeyBzb3VyY2UgfQor
ICAgICAgICAsIG1fZGVzdGluYXRpb24geyBkZXN0aW5hdGlvbiB9CisgICAgICAgICwgbV90aW1l
T2ZBZENsaWNrIHsgV2FsbFRpbWU6Om5vdygpIH0KKyAgICB7CisgICAgfQorCisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIEV4cGVjdGVkPENvbnZlcnNpb24sIFN0cmluZz4gcGFyc2VDb252ZXJz
aW9uUmVxdWVzdChjb25zdCBVUkwmIHJlZGlyZWN0VVJMKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBP
cHRpb25hbDxTZWNvbmRzPiBjb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKENvbnZlcnNp
b24mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNIaWdoZXJQcmlvcml0eVRoYW4oY29u
c3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBV
UkwgcmVwb3J0VVJMKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmPEpTT046Ok9iamVj
dD4ganNvbigpIGNvbnN0OworICAgIGNvbnN0IFNvdXJjZSYgc291cmNlKCkgY29uc3QgeyByZXR1
cm4gbV9zb3VyY2U7IH07CisgICAgY29uc3QgRGVzdGluYXRpb24mIGRlc3RpbmF0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvbjsgfTsKKyAgICBPcHRpb25hbDxXYWxsVGltZT4gZWFy
bGllc3RUaW1lVG9TZW5kKCkgY29uc3QgeyByZXR1cm4gbV9lYXJsaWVzdFRpbWVUb1NlbmQ7IH07
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtYXJrQXNFeHBpcmVkKCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBoYXNFeHBpcmVkKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBt
YXJrQ29udmVyc2lvbkFzU2VudCgpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgd2FzQ29udmVy
c2lvblNlbnQoKSBjb25zdDsKKworICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1f
c291cmNlLnJlZ2lzdHJhYmxlRG9tYWluLmlzRW1wdHkoKTsgfTsKKworICAgIFdFQkNPUkVfRVhQ
T1JUIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gZGVjb2RlKERlY29k
ZXImKTsKKworcHJpdmF0ZToKKyAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKKyAgICBzdGF0aWMg
Ym9vbCBkZWJ1Z01vZGVFbmFibGVkKCk7CisKKyAgICBDYW1wYWlnbiBtX2NhbXBhaWduOworICAg
IFNvdXJjZSBtX3NvdXJjZTsKKyAgICBEZXN0aW5hdGlvbiBtX2Rlc3RpbmF0aW9uOworICAgIFdh
bGxUaW1lIG1fdGltZU9mQWRDbGljazsKKworICAgIE9wdGlvbmFsPENvbnZlcnNpb24+IG1fY29u
dmVyc2lvbjsKKyAgICBPcHRpb25hbDxXYWxsVGltZT4gbV9lYXJsaWVzdFRpbWVUb1NlbmQ7Cit9
OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX2Nh
bXBhaWduLmlkIDw8IG1fc291cmNlLnJlZ2lzdHJhYmxlRG9tYWluIDw8IG1fZGVzdGluYXRpb24u
cmVnaXN0cmFibGVEb21haW4gPDwgbV90aW1lT2ZBZENsaWNrIDw8IG1fY29udmVyc2lvbiA8PCBt
X2VhcmxpZXN0VGltZVRvU2VuZDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlv
bmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8Q2FtcGFpZ25JZD4gY2FtcGFp
Z25JZDsKKyAgICBkZWNvZGVyID4+IGNhbXBhaWduSWQ7CisgICAgaWYgKCFjYW1wYWlnbklkKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIAorICAgIE9wdGlvbmFsPFJlZ2lzdHJh
YmxlRG9tYWluPiBzb3VyY2VSZWdpc3RyYWJsZURvbWFpbjsKKyAgICBkZWNvZGVyID4+IHNvdXJj
ZVJlZ2lzdHJhYmxlRG9tYWluOworICAgIGlmICghc291cmNlUmVnaXN0cmFibGVEb21haW4pCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgT3B0aW9uYWw8UmVnaXN0cmFi
bGVEb21haW4+IGRlc3RpbmF0aW9uUmVnaXN0cmFibGVEb21haW47CisgICAgZGVjb2RlciA+PiBk
ZXN0aW5hdGlvblJlZ2lzdHJhYmxlRG9tYWluOworICAgIGlmICghZGVzdGluYXRpb25SZWdpc3Ry
YWJsZURvbWFpbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAKKyAgICBPcHRp
b25hbDxXYWxsVGltZT4gdGltZU9mQWRDbGljazsKKyAgICBkZWNvZGVyID4+IHRpbWVPZkFkQ2xp
Y2s7CisgICAgaWYgKCF0aW1lT2ZBZENsaWNrKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworICAgIAorICAgIE9wdGlvbmFsPE9wdGlvbmFsPENvbnZlcnNpb24+PiBjb252ZXJzaW9uOwor
ICAgIGRlY29kZXIgPj4gY29udmVyc2lvbjsKKyAgICBpZiAoIWNvbnZlcnNpb24pCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgT3B0aW9uYWw8T3B0aW9uYWw8V2FsbFRp
bWU+PiBlYXJsaWVzdFRpbWVUb1NlbmQ7CisgICAgZGVjb2RlciA+PiBlYXJsaWVzdFRpbWVUb1Nl
bmQ7CisgICAgaWYgKCFlYXJsaWVzdFRpbWVUb1NlbmQpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisgICAgCisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBD
YW1wYWlnbiB7IFdURk1vdmUoKmNhbXBhaWduSWQpIH0sIFNvdXJjZSB7IFdURk1vdmUoKnNvdXJj
ZVJlZ2lzdHJhYmxlRG9tYWluKSB9LCBEZXN0aW5hdGlvbiB7IFdURk1vdmUoKmRlc3RpbmF0aW9u
UmVnaXN0cmFibGVEb21haW4pIH0gfTsKKyAgICBhdHRyaWJ1dGlvbi5tX2NvbnZlcnNpb24gPSBX
VEZNb3ZlKCpjb252ZXJzaW9uKTsKKyAgICBhdHRyaWJ1dGlvbi5tX2VhcmxpZXN0VGltZVRvU2Vu
ZCA9IFdURk1vdmUoKmVhcmxpZXN0VGltZVRvU2VuZCk7CisgICAgCisgICAgcmV0dXJuIGF0dHJp
YnV0aW9uOworfQorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6Q29udmVyc2lvbjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7
CisgICAgZW5jb2RlciA8PCBkYXRhIDw8IHByaW9yaXR5IDw8IHdhc1NlbnQ7Cit9CisKK3RlbXBs
YXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29u
dmVyc2lvbj4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb246OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPENvbnZlcnNpb25EYXRhPiBkYXRhOworICAg
IGRlY29kZXIgPj4gZGF0YTsKKyAgICBpZiAoIWRhdGEpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisgICAgCisgICAgT3B0aW9uYWw8UHJpb3JpdHlWYWx1ZT4gcHJpb3JpdHk7CisgICAg
ZGVjb2RlciA+PiBwcmlvcml0eTsKKyAgICBpZiAoIXByaW9yaXR5KQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworICAgIAorICAgIE9wdGlvbmFsPFdhc1NlbnQ+IHdhc1NlbnQ7CisgICAg
ZGVjb2RlciA+PiB3YXNTZW50OworICAgIGlmICghd2FzU2VudCkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKyAgICAKKyAgICByZXR1cm4gQ29udmVyc2lvbiB7IFdURk1vdmUoKmRhdGEp
LCBQcmlvcml0eSB7ICpwcmlvcml0eSB9LCAqd2FzU2VudCB9OworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgewordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0
IERlZmF1bHRIYXNoOworCit0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlPiA6IFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpTb3VyY2VIYXNoIHsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZT4gOiBHZW5lcmljSGFzaFRy
YWl0czxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlPiB7CisgICAgc3Rh
dGljIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UgZW1wdHlWYWx1ZSgp
IHsgcmV0dXJuIHsgfTsgfQorICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlJiBzbG90KSB7IFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2U6OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZShz
bG90KTsgfQorICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UmIHNsb3QpIHsgcmV0dXJuIHNsb3QuaXNEZWxl
dGVkVmFsdWUoKTsgfQorfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uPiA6IFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbkhhc2ggeyB9OwordGVtcGxhdGU8PiBzdHJ1
Y3QgSGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRp
b24+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkRlc3RpbmF0aW9uPiB7CisgICAgc3RhdGljIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpEZXN0aW5hdGlvbiBlbXB0eVZhbHVlKCkgeyByZXR1cm4geyB9OyB9CisgICAgc3RhdGlj
IHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpEZXN0aW5hdGlvbiYgc2xvdCkgeyBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6RGVzdGluYXRpb246OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZShzbG90KTsgfQorICAgIHN0YXRp
YyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpEZXN0aW5hdGlvbiYgc2xvdCkgeyByZXR1cm4gc2xvdC5pc0RlbGV0ZWRWYWx1ZSgpOyB9
Cit9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApp
bmRleCBmYTIwMGRhMWYwZjM1MGQyN2QwOTRlYjdjZTU2NGE4NjJhOGJmZTAwLi5mODA0ZjA3M2Uw
OWY2ZmY1YTRlNWY0YjY0OTgzMmYzYWFhNDdlNTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMjAzLDggKzIwMyw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldExpbmVIZWlnaHRVbml0c0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9saW5l
SGVpZ2h0VW5pdHNFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCBsaW5lSGVpZ2h0VW5p
dHNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9saW5lSGVpZ2h0VW5pdHNFbmFibGVkOyB9CiAK
LSAgICBib29sIGFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX2FkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQ7IH0KLSAgICB2b2lkIHNl
dEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9h
ZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAgYm9v
bCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZDsgfQorICAgIHZvaWQg
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkKGJvb2wgaXNFbmFibGVk
KSB7IG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkID0gaXNFbmFibGVk
OyB9CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIGJvb2wgbW91c2VFdmVudHNTaW11
bGF0aW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2VFdmVudHNTaW11bGF0aW9uRW5h
YmxlZDsgfQpAQCAtMzQ2LDcgKzM0Niw3IEBAIHByaXZhdGU6CiAgICAgLy8gaHR0cHM6Ly9naXRo
dWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzMyNTcgaGF2ZSBiZWVuIHNvcnRlZCBvdXQu
CiAgICAgYm9vbCBtX2xpbmVIZWlnaHRVbml0c0VuYWJsZWQgeyBmYWxzZSB9OwogCi0gICAgYm9v
bCBtX2FkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQgeyBmYWxzZSB9Owog
CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBib29sIG1fbW91c2VFdmVudHNTaW11bGF0
aW9uRW5hYmxlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKaW5kZXggYjUz
OWJkZTJjZjkzNGIwZjAyNGY4ZDYwZjE2ZGYxNGM5YTUzZjg2OS4uYmY5Yzk1ZTVjNDBlODBiOGNi
MDA1ZDI1MGQ1Zjc1MDFjZjFiMjQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaApAQCAt
MzksNyArMzksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNkZWZpbmUgV0VCQ09SRV9MT0df
Q0hBTk5FTFMoTSkgXAogICAgIE0oQWNjZXNzaWJpbGl0eSkgXAotICAgIE0oQWRDbGlja0F0dHJp
YnV0aW9uKSBcCiAgICAgTShBbmltYXRpb25zKSBcCiAgICAgTShBcHBsZVBheSkgXAogICAgIE0o
QXJjaGl2ZXMpIFwKQEAgLTkxLDYgKzkwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIE0o
UGxhdGZvcm1MZWFrcykgXAogICAgIE0oUGx1Z2lucykgXAogICAgIE0oUG9wdXBCbG9ja2luZykg
XAorICAgIE0oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIFwKICAgICBNKFByb2dyZXNzKSBcCiAg
ICAgTShSZW1vdGVJbnNwZWN0b3IpIFwKICAgICBNKFJlcXVlc3RBbmltYXRpb25GcmFtZSkgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ov
bG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25z
L2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggNTRmYTI1YjUwZWYwMTczZmJmODQz
Y2Y5M2JlM2MwZmZlYTMxZGQyYi4uYjk4ZTQ4NGE1ODcyMTIzM2NmN2MzMWM5Y2Y3ODUwYzY4MTBk
YTRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4u
bHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9j
YWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC05OTMsNiArOTkzLDcg
QEAgbG9jYWxpemVkU3RyaW5nc1siUHJldmlvdXMgU2libGluZyJdID0gIlByZXZpb3VzIFNpYmxp
bmciOwogbG9jYWxpemVkU3RyaW5nc1siUHJpbWFyeSBLZXkiXSA9ICJQcmltYXJ5IEtleSI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJQcmltYXJ5IEtleSBcdTIwMTQgJXMiXSA9ICJQcmltYXJ5IEtleSBc
dTIwMTQgJXMiOwogbG9jYWxpemVkU3RyaW5nc1siUHJpb3JpdHkiXSA9ICJQcmlvcml0eSI7Cits
b2NhbGl6ZWRTdHJpbmdzWyJQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50IERlYnVnIE1vZGUiXSA9
ICJQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50IERlYnVnIE1vZGUiOwogbG9jYWxpemVkU3RyaW5n
c1siUHJvYmUgRXhwcmVzc2lvbiJdID0gIlByb2JlIEV4cHJlc3Npb24iOwogbG9jYWxpemVkU3Ry
aW5nc1siUHJvYmUgU2FtcGxlIFJlY29yZGVkIl0gPSAiUHJvYmUgU2FtcGxlIFJlY29yZGVkIjsK
IGxvY2FsaXplZFN0cmluZ3NbIlByb2JlcyJdID0gIlByb2JlcyI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKaW5kZXggMzM4MmEyMWFiYTJk
ODA4ODg2OTI0MjE2OWYzZTc1ZDQxMGQ3OTg3My4uMDU0ZTQxODFjOGIxMDMzMzYxZTFmMWY1Njgw
MTlmMjhjMzUzMDBkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0Jhc2UvTWFpbi5qcwpAQCAtMjM0NCw4ICsyMzQ0LDEwIEBAIFdJLl9oYW5kbGVEZXZpY2VT
ZXR0aW5nc1RhYkJhckJ1dHRvbkNsaWNrZWQgPSBmdW5jdGlvbihldmVudCkKICAgICAgICAgICAg
IGNvbHVtbnM6IFsKICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgIHtuYW1l
OiBXSS5VSVN0cmluZygiSVRQIERlYnVnIE1vZGUiKSwgc2V0dGluZzogSW5zcGVjdG9yQmFja2Vu
ZC5FbnVtLlBhZ2UuU2V0dGluZy5JVFBEZWJ1Z01vZGVFbmFibGVkLCB2YWx1ZTogdHJ1ZX0sCisg
ICAgICAgICAgICAgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxNC4wKTogYFBhZ2UuU2V0
dGluZy5BZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkYCB3YXMgcmVuYW1lZCB0byBg
UGFnZS5TZXR0aW5nLlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZGAuCisg
ICAgICAgICAgICAgICAgICAgIHtuYW1lOiBXSS5VSVN0cmluZygiUHJpdmF0ZSBDbGljayBNZWFz
dXJlbWVudCBEZWJ1ZyBNb2RlIiksIHNldHRpbmc6IEluc3BlY3RvckJhY2tlbmQuRW51bS5QYWdl
LlNldHRpbmcuUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkLCB2YWx1ZTog
dHJ1ZX0sCiAgICAgICAgICAgICAgICAgICAgIHtuYW1lOiBXSS5VSVN0cmluZygiQWQgQ2xpY2sg
QXR0cmlidXRpb24gRGVidWcgTW9kZSIpLCBzZXR0aW5nOiBJbnNwZWN0b3JCYWNrZW5kLkVudW0u
UGFnZS5TZXR0aW5nLkFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQsIHZhbHVlOiB0
cnVlfSwKLSAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICBdLAogICAgICAgICAg
ICAgXSwKICAgICAgICAgfSwKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NvbnNvbGVNZXNzYWdlLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NvbnNvbGVNZXNzYWdlLmpzCmluZGV4
IGJlNzg3OGUwYjc1MzBlZjc0YmUyOTRhYmZkZjljNTA0YzE0YzE4MjIuLjQ5OGMyYTQyNjJhZDdi
YTZiZDVlMjE5YzZkMGE3ZDZmOWM5MDFlNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Db25zb2xlTWVzc2FnZS5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ29uc29sZU1lc3NhZ2UuanMKQEAg
LTExMyw4ICsxMTMsMTEgQEAgV0kuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZSA9IHsKICAg
ICBNZWRpYVNvdXJjZTogIm1lZGlhc291cmNlIiwKICAgICBXZWJSVEM6ICJ3ZWJydGMiLAogICAg
IElUUERlYnVnOiAiaXRwLWRlYnVnIiwKLSAgICBBZENsaWNrQXR0cmlidXRpb246ICJhZC1jbGlj
ay1hdHRyaWJ1dGlvbiIsCisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6ICJwcml2YXRlLWNs
aWNrLW1lYXN1cmVtZW50IiwKICAgICBPdGhlcjogIm90aGVyIiwKKworICAgIC8vIENPTVBBVElC
SUxJVFkgKGlPUyAxNC4wKTogYENvbnNvbGUuQ2hhbm5lbFNvdXJjZS5BZENsaWNrQXR0cmlidXRp
b25gIHdhcyByZW5hbWVkIHRvIGBDb25zb2xlLkNoYW5uZWxTb3VyY2UuUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRgLgorICAgIEFkQ2xpY2tBdHRyaWJ1dGlvbjogImFkLWNsaWNrLWF0dHJpYnV0aW9u
IiwKIH07CiAKIFdJLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlID0gewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0lzc3VlTWVzc2FnZS5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Jc3N1ZU1lc3Nh
Z2UuanMKaW5kZXggMmQ4ODE3NWI2ZWU2NzY3YzgzZGM0NTQ3OWJjYTkzZTk1NDNhYmI1Zi4uNzYy
NWJmNmJkZmNkMWZlNzcxM2Y1YmNhZjI5NjY3YjVlNDA4MTM4NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0lzc3VlTWVzc2FnZS5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvSXNzdWVNZXNzYWdl
LmpzCkBAIC02OSw3ICs2OSw4IEBAIFdJLklzc3VlTWVzc2FnZSA9IGNsYXNzIElzc3VlTWVzc2Fn
ZSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBjYXNlIFdJLkNvbnNvbGVNZXNzYWdlLk1lc3Nh
Z2VTb3VyY2UuTWVkaWFzb3VyY2U6CiAgICAgICAgIGNhc2UgV0kuQ29uc29sZU1lc3NhZ2UuTWVz
c2FnZVNvdXJjZS5XZWJSVEM6CiAgICAgICAgIGNhc2UgV0kuQ29uc29sZU1lc3NhZ2UuTWVzc2Fn
ZVNvdXJjZS5JVFBEZWJ1ZzoKLSAgICAgICAgY2FzZSBXSS5Db25zb2xlTWVzc2FnZS5NZXNzYWdl
U291cmNlLkFkQ2xpY2tBdHRyaWJ1dGlvbjoKKyAgICAgICAgY2FzZSBXSS5Db25zb2xlTWVzc2Fn
ZS5NZXNzYWdlU291cmNlLlByaXZhdGVDbGlja01lYXN1cmVtZW50OgorICAgICAgICBjYXNlIFdJ
LkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UuQWRDbGlja0F0dHJpYnV0aW9uOiAvLyBDT01Q
QVRJQklMSVRZIChpT1MgMTQuMCk6IGBDb25zb2xlLkNoYW5uZWxTb3VyY2UuQWRDbGlja0F0dHJp
YnV0aW9uYCB3YXMgcmVuYW1lZCB0byBgQ29uc29sZS5DaGFubmVsU291cmNlLlByaXZhdGVDbGlj
a01lYXN1cmVtZW50YC4KICAgICAgICAgY2FzZSBXSS5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291
cmNlLk90aGVyOgogICAgICAgICAgICAgdGhpcy5fdHlwZSA9IFdJLklzc3VlTWVzc2FnZS5UeXBl
Lk90aGVySXNzdWU7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0FkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNzQ2MmU2NTBiNDA1MmVhYjFlNDc2NzZkMDFiMmNj
NGRlNzQ3ZTIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSwzMzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmgiCi0KLSNp
bmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVz
Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9GZXRjaE9wdGlvbnMuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L0Zvcm1EYXRhLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9IVFRQSGVhZGVyVmFsdWVzLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLXVzaW5nIFNvdXJjZSA9IEFkQ2xp
Y2tBdHRyaWJ1dGlvbjo6U291cmNlOwotdXNpbmcgRGVzdGluYXRpb24gPSBBZENsaWNrQXR0cmli
dXRpb246OkRlc3RpbmF0aW9uOwotdXNpbmcgRGVzdGluYXRpb25NYXAgPSBIYXNoTWFwPERlc3Rp
bmF0aW9uLCBBZENsaWNrQXR0cmlidXRpb24+OwotdXNpbmcgQ29udmVyc2lvbiA9IEFkQ2xpY2tB
dHRyaWJ1dGlvbjo6Q29udmVyc2lvbjsKLQotY29uc3RleHByIFNlY29uZHMgZGVidWdNb2RlU2Vj
b25kc1VudGlsU2VuZCB7IDYwX3MgfTsKLQotdm9pZCBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2Vy
OjpzdG9yZVVuY29udmVydGVkKEFkQ2xpY2tBdHRyaWJ1dGlvbiYmIGF0dHJpYnV0aW9uKQotewot
ICAgIGNsZWFyRXhwaXJlZCgpOwotCi0gICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQo
KSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhBZENsaWNrQXR0cmlidXRpb24sICJTdG9y
aW5nIGFuIGFkIGNsaWNrLiIpOwotICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RD
b25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6QWRDbGlja0F0dHJpYnV0
aW9uLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiW0FkIENsaWNrIEF0dHJpYnV0aW9uXSBTdG9yaW5n
IGFuIGFkIGNsaWNrLiJfcyk7Ci0gICAgfQotCi0gICAgbV91bmNvbnZlcnRlZEFkQ2xpY2tBdHRy
aWJ1dGlvbk1hcC5zZXQoc3RkOjptYWtlX3BhaXIoYXR0cmlidXRpb24uc291cmNlKCksIGF0dHJp
YnV0aW9uLmRlc3RpbmF0aW9uKCkpLCBXVEZNb3ZlKGF0dHJpYnV0aW9uKSk7Ci19Ci0KLXZvaWQg
QWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlcjo6aGFuZGxlQ29udmVyc2lvbihDb252ZXJzaW9uJiYg
Y29udmVyc2lvbiwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVzdCkKLXsKLSAgICBpZiAobV9zZXNzaW9uSUQuaXNFcGhl
bWVyYWwoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVnaXN0cmFibGVEb21haW4gcmVkaXJl
Y3REb21haW4geyByZWRpcmVjdFJlcXVlc3QudXJsKCkgfTsKLSAgICBhdXRvJiBmaXJzdFBhcnR5
VVJMID0gcmVkaXJlY3RSZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCk7Ci0KLSAgICBpZiAo
IXJlZGlyZWN0RG9tYWluLm1hdGNoZXMocmVxdWVzdFVSTCkpIHsKLSAgICAgICAgaWYgKFVOTElL
RUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8o
QWRDbGlja0F0dHJpYnV0aW9uLCAiQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2Ug
dGhlIEhUVFAgcmVkaXJlY3Qgd2FzIG5vdCBzYW1lLXNpdGUuIik7Ci0gICAgICAgICAgICBtX25l
dHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2Fn
ZVNvdXJjZTo6QWRDbGlja0F0dHJpYnV0aW9uLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiW0FkIENs
aWNrIEF0dHJpYnV0aW9uXSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUg
SFRUUCByZWRpcmVjdCB3YXMgbm90IHNhbWUtc2l0ZS4iX3MpOwotICAgICAgICB9Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAocmVkaXJlY3REb21haW4ubWF0Y2hlcyhmaXJzdFBh
cnR5VVJMKSkgewotICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewot
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhBZENsaWNrQXR0cmlidXRpb24sICJDb252ZXJz
aW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSBpdCB3YXMgcmVxdWVzdGVkIGluIGFuIEhUVFAg
cmVkaXJlY3QgdGhhdCBpcyBzYW1lLXNpdGUgYXMgdGhlIGZpcnN0LXBhcnR5LiIpOwotICAgICAg
ICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9u
SUQsIE1lc3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbiwgTWVzc2FnZUxldmVsOjpFcnJv
ciwgIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJl
Y2F1c2UgaXQgd2FzIHJlcXVlc3RlZCBpbiBhbiBIVFRQIHJlZGlyZWN0IHRoYXQgaXMgc2FtZS1z
aXRlIGFzIHRoZSBmaXJzdC1wYXJ0eS4iX3MpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBjb252ZXJ0KEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlIHsgV1RGTW92
ZShyZWRpcmVjdERvbWFpbikgfSwgQWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbiB7IGZp
cnN0UGFydHlVUkwgfSwgV1RGTW92ZShjb252ZXJzaW9uKSk7Ci19Ci0KLXZvaWQgQWRDbGlja0F0
dHJpYnV0aW9uTWFuYWdlcjo6c3RhcnRUaW1lcihTZWNvbmRzIHNlY29uZHMpCi17Ci0gICAgbV9m
aXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVyLnN0YXJ0T25lU2hvdChtX2lzUnVubmlu
Z1Rlc3QgPyAwX3MgOiBzZWNvbmRzKTsKLX0KLQotdm9pZCBBZENsaWNrQXR0cmlidXRpb25NYW5h
Z2VyOjpjb252ZXJ0KGNvbnN0IFNvdXJjZSYgc291cmNlLCBjb25zdCBEZXN0aW5hdGlvbiYgZGVz
dGluYXRpb24sIENvbnZlcnNpb24mJiBjb252ZXJzaW9uKQotewotICAgIGNsZWFyRXhwaXJlZCgp
OwotCi0gICAgaWYgKCFjb252ZXJzaW9uLmlzVmFsaWQoKSkgewotICAgICAgICBpZiAoVU5MSUtF
TFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhB
ZENsaWNrQXR0cmlidXRpb24sICJHb3QgYW4gaW52YWxpZCBjb252ZXJzaW9uLiIpOwotICAgICAg
ICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9u
SUQsIE1lc3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbiwgTWVzc2FnZUxldmVsOjpFcnJv
ciwgIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gR290IGFuIGludmFsaWQgY29udmVyc2lvbi4iX3Mp
OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIGNvbnZlcnNp
b25EYXRhID0gY29udmVyc2lvbi5kYXRhOwotICAgIGF1dG8gY29udmVyc2lvblByaW9yaXR5ID0g
Y29udmVyc2lvbi5wcmlvcml0eTsKLQotICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVk
KCkpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lORk8oQWRDbGlja0F0dHJpYnV0aW9uLCAiR290
IGEgY29udmVyc2lvbiB3aXRoIGNvbnZlcnNpb24gZGF0YTogJXtwdWJsaWN9dSBhbmQgcHJpb3Jp
dHk6ICV7cHVibGljfXUuIiwgY29udmVyc2lvbkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0eSk7Ci0g
ICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lv
bklELCBNZXNzYWdlU291cmNlOjpBZENsaWNrQXR0cmlidXRpb24sIE1lc3NhZ2VMZXZlbDo6SW5m
bywgbWFrZVN0cmluZygiW0FkIENsaWNrIEF0dHJpYnV0aW9uXSBHb3QgYSBjb252ZXJzaW9uIHdp
dGggY29udmVyc2lvbiBkYXRhOiAnIl9zLCBjb252ZXJzaW9uRGF0YSwgIicgYW5kIHByaW9yaXR5
OiAnIl9zLCBjb252ZXJzaW9uUHJpb3JpdHksICInLiJfcykpOwotICAgIH0KLQotICAgIGF1dG8g
c2Vjb25kc1VudGlsU2VuZCA9IFNlY29uZHM6OmluZmluaXR5KCk7Ci0KLSAgICBhdXRvIHBhaXIg
PSBzdGQ6Om1ha2VfcGFpcihzb3VyY2UsIGRlc3RpbmF0aW9uKTsKLSAgICBhdXRvIHByZXZpb3Vz
bHlVbmNvbnZlcnRlZEF0dHJpYnV0aW9uID0gbV91bmNvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlv
bk1hcC50YWtlKHBhaXIpOwotICAgIGF1dG8gcHJldmlvdXNseUNvbnZlcnRlZEF0dHJpYnV0aW9u
SXRlciA9IG1fY29udmVydGVkQWRDbGlja0F0dHJpYnV0aW9uTWFwLmZpbmQocGFpcik7Ci0KLSAg
ICBpZiAoIXByZXZpb3VzbHlVbmNvbnZlcnRlZEF0dHJpYnV0aW9uLmlzRW1wdHkoKSkgewotICAg
ICAgICAvLyBBbHdheXMgY29udmVydCB0aGUgcGVuZGluZyBhdHRyaWJ1dGlvbiBhbmQgcmVtb3Zl
IGl0IGZyb20gdGhlIHVuY29udmVydGVkIG1hcC4KLSAgICAgICAgaWYgKGF1dG8gb3B0aW9uYWxT
ZWNvbmRzVW50aWxTZW5kID0gcHJldmlvdXNseVVuY29udmVydGVkQXR0cmlidXRpb24uY29udmVy
dEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChXVEZNb3ZlKGNvbnZlcnNpb24pKSkgewotICAgICAg
ICAgICAgc2Vjb25kc1VudGlsU2VuZCA9ICpvcHRpb25hbFNlY29uZHNVbnRpbFNlbmQ7Ci0gICAg
ICAgICAgICBBU1NFUlQoc2Vjb25kc1VudGlsU2VuZCAhPSBTZWNvbmRzOjppbmZpbml0eSgpKTsK
LQotICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAg
ICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgIkNvbnZlcnRl
ZCBhIHN0b3JlZCBhZCBjbGljayB3aXRoIGNvbnZlcnNpb24gZGF0YTogJXtwdWJsaWN9dSBhbmQg
cHJpb3JpdHk6ICV7cHVibGljfXUuIiwgY29udmVyc2lvbkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0
eSk7Ci0gICAgICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1l
c3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbiwgTWVz
c2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbQWQgQ2xpY2sgQXR0cmlidXRpb25dIENvbnZl
cnRlZCBhIHN0b3JlZCBhZCBjbGljayB3aXRoIGNvbnZlcnNpb24gZGF0YTogJyJfcywgY29udmVy
c2lvbkRhdGEsICInIGFuZCBwcmlvcml0eTogJyJfcywgY29udmVyc2lvblByaW9yaXR5LCAiJy4i
X3MpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmIChwcmV2aW91c2x5
Q29udmVydGVkQXR0cmlidXRpb25JdGVyID09IG1fY29udmVydGVkQWRDbGlja0F0dHJpYnV0aW9u
TWFwLmVuZCgpKQotICAgICAgICAgICAgbV9jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25NYXAu
YWRkKHBhaXIsIFdURk1vdmUocHJldmlvdXNseVVuY29udmVydGVkQXR0cmlidXRpb24pKTsKLSAg
ICAgICAgZWxzZSBpZiAocHJldmlvdXNseVVuY29udmVydGVkQXR0cmlidXRpb24uaGFzSGlnaGVy
UHJpb3JpdHlUaGFuKHByZXZpb3VzbHlDb252ZXJ0ZWRBdHRyaWJ1dGlvbkl0ZXItPnZhbHVlKSkg
ewotICAgICAgICAgICAgLy8gSWYgdGhlIG5ld2x5IGNvbnZlcnRlZCBhdHRyaWJ1dGlvbiBoYXMg
aGlnaGVyIHByaW9yaXR5LCByZXBsYWNlIHRoZSBvbGQgb25lLgotICAgICAgICAgICAgbV9jb252
ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25NYXAuc2V0KHBhaXIsIFdURk1vdmUocHJldmlvdXNseVVu
Y29udmVydGVkQXR0cmlidXRpb24pKTsKLQotICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVn
TW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKEFkQ2xp
Y2tBdHRyaWJ1dGlvbiwgIlJlcGxhY2VkIGEgcHJldmlvdXNseSBjb252ZXJ0ZWQgYWQgY2xpY2sg
d2l0aCBhIG5ldyBvbmUgd2l0aCBjb252ZXJzaW9uIGRhdGE6ICV7cHVibGljfXUgYW5kIHByaW9y
aXR5OiAle3B1YmxpY311IGJlY2F1c2UgaXQgaGFkIGhpZ2hlciBwcmlvcml0eS4iLCBjb252ZXJz
aW9uRGF0YSwgY29udmVyc2lvblByaW9yaXR5KTsKLSAgICAgICAgICAgICAgICBtX25ldHdvcmtQ
cm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJj
ZTo6QWRDbGlja0F0dHJpYnV0aW9uLCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltB
ZCBDbGljayBBdHRyaWJ1dGlvbl0gUmVwbGFjZWQgYSBwcmV2aW91c2x5IGNvbnZlcnRlZCBhZCBj
bGljayB3aXRoIGEgbmV3IG9uZSB3aXRoIGNvbnZlcnNpb24gZGF0YTogJyJfcywgY29udmVyc2lv
bkRhdGEsICInIGFuZCBwcmlvcml0eTogJyJfcywgY29udmVyc2lvblByaW9yaXR5LCAiJyBiZWNh
dXNlIGl0IGhhZCBoaWdoZXIgcHJpb3JpdHkuIl9zKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICB9IGVsc2UgaWYgKHByZXZpb3VzbHlDb252ZXJ0ZWRBdHRyaWJ1dGlvbkl0ZXIgIT0g
bV9jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25NYXAuZW5kKCkpIHsKLSAgICAgICAgLy8gSWYg
d2UgaGF2ZSBubyBuZXdseSBjb252ZXJ0ZWQgYXR0cmlidXRpb24sIHJlLWNvbnZlcnQgdGhlIG9s
ZCBvbmUgdG8gcmVzcGVjdCB0aGUgbmV3IHByaW9yaXR5LgotICAgICAgICBpZiAoYXV0byBvcHRp
b25hbFNlY29uZHNVbnRpbFNlbmQgPSBwcmV2aW91c2x5Q29udmVydGVkQXR0cmlidXRpb25JdGVy
LT52YWx1ZS5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFdURk1vdmUoY29udmVyc2lv
bikpKSB7Ci0gICAgICAgICAgICBzZWNvbmRzVW50aWxTZW5kID0gKm9wdGlvbmFsU2Vjb25kc1Vu
dGlsU2VuZDsKLSAgICAgICAgICAgIEFTU0VSVChzZWNvbmRzVW50aWxTZW5kICE9IFNlY29uZHM6
OmluZmluaXR5KCkpOwotCi0gICAgICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxl
ZCgpKSkgewotICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oQWRDbGlja0F0dHJpYnV0
aW9uLCAiUmUtY29udmVydGVkIGFuIGFkIGNsaWNrIHdpdGggYSBuZXcgb25lIHdpdGggY29udmVy
c2lvbiBkYXRhOiAle3B1YmxpY311IGFuZCBwcmlvcml0eTogJXtwdWJsaWN9dSBiZWNhdXNlIGl0
IGhhZCBoaWdoZXIgcHJpb3JpdHkuIiwgY29udmVyc2lvbkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0
eSk7Ci0gICAgICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1l
c3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbiwgTWVz
c2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbQWQgQ2xpY2sgQXR0cmlidXRpb25dIFJlLWNv
bnZlcnRlZCBhbiBhZCBjbGljayB3aXRoIGEgbmV3IG9uZSB3aXRoIGNvbnZlcnNpb24gZGF0YTog
JyJfcywgY29udmVyc2lvbkRhdGEsICInIGFuZCBwcmlvcml0eTogJyJfcywgY29udmVyc2lvblBy
aW9yaXR5LCAiJycgYmVjYXVzZSBpdCBoYWQgaGlnaGVyIHByaW9yaXR5LiJfcykpOwotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHNlY29uZHNVbnRpbFNlbmQgPT0g
U2Vjb25kczo6aW5maW5pdHkoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIGlmIChtX2Zp
cmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzVGltZXIuaXNBY3RpdmUoKSAmJiBtX2ZpcmVQZW5k
aW5nQ29udmVyc2lvblJlcXVlc3RzVGltZXIubmV4dEZpcmVJbnRlcnZhbCgpIDwgc2Vjb25kc1Vu
dGlsU2VuZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVu
YWJsZWQoKSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhBZENsaWNrQXR0cmlidXRpb24s
ICJTZXR0aW5nIHRpbWVyIGZvciBmaXJpbmcgY29udmVyc2lvbiByZXF1ZXN0cyB0byB0aGUgZGVi
dWcgbW9kZSB0aW1lb3V0IG9mICV7cHVibGljfWYgc2Vjb25kcyB3aGVyZSB0aGUgcmVndWxhciB0
aW1lb3V0IHdvdWxkIGhhdmUgYmVlbiAle3B1YmxpY31mIHNlY29uZHMuIiwgZGVidWdNb2RlU2Vj
b25kc1VudGlsU2VuZC5zZWNvbmRzKCksIHNlY29uZHNVbnRpbFNlbmQuc2Vjb25kcygpKTsKLSAg
ICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9u
SUQsIE1lc3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbiwgTWVzc2FnZUxldmVsOjpJbmZv
LCBtYWtlU3RyaW5nKCJbQWQgQ2xpY2sgQXR0cmlidXRpb25dIFNldHRpbmcgdGltZXIgZm9yIGZp
cmluZyBjb252ZXJzaW9uIHJlcXVlc3RzIHRvIHRoZSBkZWJ1ZyBtb2RlIHRpbWVvdXQgb2YgIl9z
LCBkZWJ1Z01vZGVTZWNvbmRzVW50aWxTZW5kLnNlY29uZHMoKSwgIiBzZWNvbmRzIHdoZXJlIHRo
ZSByZWd1bGFyIHRpbWVvdXQgd291bGQgaGF2ZSBiZWVuICJfcywgc2Vjb25kc1VudGlsU2VuZC5z
ZWNvbmRzKCksICIgc2Vjb25kcy4iX3MpKTsKLSAgICAgICAgc2Vjb25kc1VudGlsU2VuZCA9IGRl
YnVnTW9kZVNlY29uZHNVbnRpbFNlbmQ7Ci0gICAgfQotCi0gICAgc3RhcnRUaW1lcihzZWNvbmRz
VW50aWxTZW5kKTsKLX0KLQotdm9pZCBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyOjpmaXJlQ29u
dmVyc2lvblJlcXVlc3QoY29uc3QgQWRDbGlja0F0dHJpYnV0aW9uJiBhdHRyaWJ1dGlvbikKLXsK
LSAgICBhdXRvIGNvbnZlcnNpb25VUkwgPSBtX2NvbnZlcnNpb25CYXNlVVJMRm9yVGVzdGluZyA/
ICptX2NvbnZlcnNpb25CYXNlVVJMRm9yVGVzdGluZyA6IGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgp
OwotICAgIGlmIChjb252ZXJzaW9uVVJMLmlzRW1wdHkoKSB8fCAhY29udmVyc2lvblVSTC5pc1Zh
bGlkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsg
V1RGTW92ZShjb252ZXJzaW9uVVJMKSB9OwotICAgIAotICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhv
ZCgiUE9TVCJfcyk7Ci0gICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5h
bWU6OkNhY2hlQ29udHJvbCwgV2ViQ29yZTo6SFRUUEhlYWRlclZhbHVlczo6bWF4QWdlMCgpKTsK
LQotICAgIHJlcXVlc3Quc2V0SFRUUENvbnRlbnRUeXBlKFdlYkNvcmU6OkhUVFBIZWFkZXJWYWx1
ZXM6OmFwcGxpY2F0aW9uSlNPTkNvbnRlbnRUeXBlKCkpOwotICAgIHJlcXVlc3Quc2V0SFRUUEJv
ZHkoV2ViQ29yZTo6Rm9ybURhdGE6OmNyZWF0ZShhdHRyaWJ1dGlvbi5qc29uKCktPnRvSlNPTlN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKLQotICAgIEZldGNoT3B0aW9ucyBvcHRpb25zOwotICAg
IG9wdGlvbnMuY3JlZGVudGlhbHMgPSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpPbWl0Owot
ICAgIG9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpFcnJvcjsKLQot
ICAgIHN0YXRpYyB1aW50NjRfdCBpZGVudGlmaWVyID0gMDsKLSAgICAKLSAgICBOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVyczsKLSAgICBsb2FkUGFyYW1ldGVycy5p
ZGVudGlmaWVyID0gKytpZGVudGlmaWVyOwotICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSBy
ZXF1ZXN0OwotICAgIGxvYWRQYXJhbWV0ZXJzLnBhcmVudFBJRCA9IHByZXNlbnRpbmdBcHBsaWNh
dGlvblBJRCgpOwotICAgIGxvYWRQYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0g
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkVwaGVtZXJhbFN0YXRlbGVzczsKLSAgICBsb2FkUGFy
YW1ldGVycy5vcHRpb25zID0gb3B0aW9uczsKLSAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0ID0gdHJ1ZTsKLSAgICBsb2FkUGFyYW1ldGVy
cy5zaG91bGRSZXN0cmljdEhUVFBSZXNwb25zZUFjY2VzcyA9IGZhbHNlOwotCi0gICAgaWYgKFVO
TElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhB
ZENsaWNrQXR0cmlidXRpb24sICJBYm91dCB0byBmaXJlIGFuIGF0dHJpYnV0aW9uIHJlcXVlc3Qg
Zm9yIGEgY29udmVyc2lvbi4iKTsKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0
Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1
dGlvbiwgTWVzc2FnZUxldmVsOjpFcnJvciwgIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gQWJvdXQg
dG8gZmlyZSBhbiBhdHRyaWJ1dGlvbiByZXF1ZXN0IGZvciBhIGNvbnZlcnNpb24uIl9zKTsKLSAg
ICB9Ci0KLSAgICBtX3BpbmdMb2FkRnVuY3Rpb24oV1RGTW92ZShsb2FkUGFyYW1ldGVycyksIFt3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYgZXJyb3IsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKSB7Ci0g
ICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYg
KFVOTElLRUxZKHdlYWtUaGlzLT5kZWJ1Z01vZGVFbmFibGVkKCkpKSB7Ci0gICAgICAgICAgICBp
ZiAoIWVycm9yLmlzTnVsbCgpKSB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoQWRDbGlja0F0dHJpYnV0aW9uLCAiUmVjZWl2ZWQgZXJyb3I6
ICcle3B1YmxpY31zJyBmb3IgYWQgY2xpY2sgYXR0cmlidXRpb24gcmVxdWVzdC4iLCBlcnJvci5s
b2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpOwotI2Vsc2UKLSAgICAgICAgICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihBZENsaWNrQXR0cmlidXRpb24sICJSZWNlaXZlZCBlcnJv
cjogJyVzJyBmb3IgYWQgY2xpY2sgYXR0cmlidXRpb24gcmVxdWVzdC4iLCBlcnJvci5sb2NhbGl6
ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpOwotI2VuZGlmCi0gICAgICAgICAgICAgICAg
d2Vha1RoaXMtPm1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKHdlYWtU
aGlzLT5tX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6QWRDbGlja0F0dHJpYnV0aW9uLCBNZXNz
YWdlTGV2ZWw6OkVycm9yLCBtYWtlU3RyaW5nKCJbQWQgQ2xpY2sgQXR0cmlidXRpb25dIFJlY2Vp
dmVkIGVycm9yOiAnIl9zLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLCAiJyBmb3IgYWQg
Y2xpY2sgYXR0cmlidXRpb24gcmVxdWVzdC4iX3MpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgIH0pOwotfQotCi12b2lkIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXI6OmZpcmVQZW5k
aW5nQ29udmVyc2lvblJlcXVlc3RzKCkKLXsKLSAgICBhdXRvIG5leHRUaW1lVG9GaXJlID0gU2Vj
b25kczo6aW5maW5pdHkoKTsKLSAgICBmb3IgKGF1dG8mIGF0dHJpYnV0aW9uIDogbV9jb252ZXJ0
ZWRBZENsaWNrQXR0cmlidXRpb25NYXAudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKGF0dHJpYnV0
aW9uLndhc0NvbnZlcnNpb25TZW50KCkpIHsKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAgYXV0byBlYXJs
aWVzdFRpbWVUb1NlbmQgPSBhdHRyaWJ1dGlvbi5lYXJsaWVzdFRpbWVUb1NlbmQoKTsKLSAgICAg
ICAgaWYgKCFlYXJsaWVzdFRpbWVUb1NlbmQpIHsKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBhdXRv
IG5vdyA9IFdhbGxUaW1lOjpub3coKTsKLSAgICAgICAgaWYgKCplYXJsaWVzdFRpbWVUb1NlbmQg
PD0gbm93IHx8IG1faXNSdW5uaW5nVGVzdCB8fCBkZWJ1Z01vZGVFbmFibGVkKCkpIHsKLSAgICAg
ICAgICAgIGZpcmVDb252ZXJzaW9uUmVxdWVzdChhdHRyaWJ1dGlvbik7Ci0gICAgICAgICAgICBh
dHRyaWJ1dGlvbi5tYXJrQ29udmVyc2lvbkFzU2VudCgpOwotICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgIH0KLQotICAgICAgICBhdXRvIHNlY29uZHMgPSAqZWFybGllc3RUaW1lVG9TZW5k
IC0gbm93OwotICAgICAgICBuZXh0VGltZVRvRmlyZSA9IHN0ZDo6bWluKG5leHRUaW1lVG9GaXJl
LCBzZWNvbmRzKTsKLSAgICB9Ci0KLSAgICBtX2NvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1h
cC5yZW1vdmVJZihbXShhdXRvJiBrZXlBbmRWYWx1ZSkgewotICAgICAgICByZXR1cm4ga2V5QW5k
VmFsdWUudmFsdWUud2FzQ29udmVyc2lvblNlbnQoKTsKLSAgICB9KTsKLQotICAgIGlmIChuZXh0
VGltZVRvRmlyZSA8IFNlY29uZHM6OmluZmluaXR5KCkpCi0gICAgICAgIHN0YXJ0VGltZXIobmV4
dFRpbWVUb0ZpcmUpOwotfQotCi12b2lkIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXI6OmNsZWFy
KCkKLXsKLSAgICBtX2ZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzVGltZXIuc3RvcCgpOwot
ICAgIG1fdW5jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25NYXAuY2xlYXIoKTsKLSAgICBtX2Nv
bnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcC5jbGVhcigpOwotfQotCi12b2lkIEFkQ2xpY2tB
dHRyaWJ1dGlvbk1hbmFnZXI6OmNsZWFyRm9yUmVnaXN0cmFibGVEb21haW4oY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIGRvbWFpbikKLXsKLSAgICBtX3VuY29udmVydGVkQWRDbGlja0F0dHJpYnV0
aW9uTWFwLnJlbW92ZUlmKFsmZG9tYWluXShhdXRvJiBrZXlBbmRWYWx1ZSkgewotICAgICAgICBy
ZXR1cm4ga2V5QW5kVmFsdWUua2V5LmZpcnN0LnJlZ2lzdHJhYmxlRG9tYWluID09IGRvbWFpbiB8
fCBrZXlBbmRWYWx1ZS5rZXkuc2Vjb25kLnJlZ2lzdHJhYmxlRG9tYWluID09IGRvbWFpbjsKLSAg
ICB9KTsKLQotICAgIG1fY29udmVydGVkQWRDbGlja0F0dHJpYnV0aW9uTWFwLnJlbW92ZUlmKFsm
ZG9tYWluXShhdXRvJiBrZXlBbmRWYWx1ZSkgewotICAgICAgICByZXR1cm4ga2V5QW5kVmFsdWUu
a2V5LmZpcnN0LnJlZ2lzdHJhYmxlRG9tYWluID09IGRvbWFpbiB8fCBrZXlBbmRWYWx1ZS5rZXku
c2Vjb25kLnJlZ2lzdHJhYmxlRG9tYWluID09IGRvbWFpbjsKLSAgICB9KTsKLX0KLQotdm9pZCBB
ZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyOjpjbGVhckV4cGlyZWQoKQotewotICAgIG1fdW5jb252
ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25NYXAucmVtb3ZlSWYoW10oYXV0byYga2V5QW5kVmFsdWUp
IHsKLSAgICAgICAgcmV0dXJuIGtleUFuZFZhbHVlLnZhbHVlLmhhc0V4cGlyZWQoKTsKLSAgICB9
KTsKLX0KLQotdm9pZCBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyOjp0b1N0cmluZyhDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0Ci17Ci0g
ICAgaWYgKG1fdW5jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25NYXAuaXNFbXB0eSgpICYmIG1f
Y29udmVydGVkQWRDbGlja0F0dHJpYnV0aW9uTWFwLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJu
IGNvbXBsZXRpb25IYW5kbGVyKCJcbk5vIHN0b3JlZCBBZCBDbGljayBBdHRyaWJ1dGlvbiBkYXRh
LlxuIl9zKTsKLQotICAgIHVuc2lnbmVkIHVuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIgPSAw
OwotICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBmb3IgKGF1dG8mIGF0dHJpYnV0aW9u
IDogbV91bmNvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcC52YWx1ZXMoKSkgewotICAgICAg
ICBpZiAoIXVuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpCi0gICAgICAgICAgICBidWlsZGVy
LmFwcGVuZExpdGVyYWwoIlVuY29udmVydGVkIEFkIENsaWNrIEF0dHJpYnV0aW9uczpcbiIpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCJXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24gIik7Ci0g
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKCsrdW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJl
cik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBidWlsZGVyLmFwcGVu
ZChhdHRyaWJ1dGlvbi50b1N0cmluZygpKTsKLX0KLQotICAgIHVuc2lnbmVkIGNvbnZlcnRlZEF0
dHJpYnV0aW9uTnVtYmVyID0gMDsKLSAgICBmb3IgKGF1dG8mIGF0dHJpYnV0aW9uIDogbV9jb252
ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25NYXAudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKHVuY29u
dmVydGVkQXR0cmlidXRpb25OdW1iZXIpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4n
KTsKLSAgICAgICAgaWYgKCFjb252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlcikKLSAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiQ29udmVydGVkIEFkIENsaWNrIEF0dHJpYnV0aW9uczpc
biIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24g
Iik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKCsrY29udmVydGVkQXR0cmlidXRpb25O
dW1iZXIgKyB1bmNvbnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyKTsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmQoJ1xuJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0dHJpYnV0aW9uLnRvU3RyaW5n
KCkpOwotICAgIH0KLQotICAgIGNvbXBsZXRpb25IYW5kbGVyKGJ1aWxkZXIudG9TdHJpbmcoKSk7
Ci19Ci0KLXZvaWQgQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlcjo6c2V0Q29udmVyc2lvblVSTEZv
clRlc3RpbmcoVVJMJiYgdGVzdFVSTCkKLXsKLSAgICBpZiAodGVzdFVSTC5pc0VtcHR5KCkpCi0g
ICAgICAgIG1fY29udmVyc2lvbkJhc2VVUkxGb3JUZXN0aW5nID0geyB9OwotICAgIGVsc2UKLSAg
ICAgICAgbV9jb252ZXJzaW9uQmFzZVVSTEZvclRlc3RpbmcgPSBXVEZNb3ZlKHRlc3RVUkwpOwot
fQotCi12b2lkIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXI6Om1hcmtBbGxVbmNvbnZlcnRlZEFz
RXhwaXJlZEZvclRlc3RpbmcoKQotewotICAgIGZvciAoYXV0byYgYXR0cmlidXRpb24gOiBtX3Vu
Y29udmVydGVkQWRDbGlja0F0dHJpYnV0aW9uTWFwLnZhbHVlcygpKQotICAgICAgICBhdHRyaWJ1
dGlvbi5tYXJrQXNFeHBpcmVkKCk7Ci19Ci0KLWJvb2wgQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdl
cjo6ZGVidWdNb2RlRW5hYmxlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuYWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5h
YmxlZCgpICYmICFtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpOwotfQotCi19IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQWRDbGlj
a0F0dHJpYnV0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9BZENs
aWNrQXR0cmlidXRpb25NYW5hZ2VyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3
NGIwYTVmMWYyNDU3ZGY5NWIyNGZlZGI1ZTU2MWJhMTY3NmIwMzIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9BZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5MiArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJOZXR3b3JrUHJvY2Vz
cy5oIgotI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgiCi0jaW5jbHVk
ZSA8V2ViQ29yZS9BZENsaWNrQXR0cmlidXRpb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lz
dHJhYmxlRG9tYWluLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9UaW1l
ci5oPgotI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KLSNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9XZWFr
UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJL
aXQgewotCi1jbGFzcyBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyIDogcHVibGljIENhbk1ha2VX
ZWFrUHRyPEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXI+IHsKLSAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKLXB1YmxpYzoKLQotICAgIHVzaW5nIFJlZ2lzdHJhYmxlRG9tYWluID0gV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW47Ci0gICAgdXNpbmcgQWRDbGlja0F0dHJpYnV0aW9uID0gV2Vi
Q29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOwotICAgIHVzaW5nIFNvdXJjZSA9IFdlYkNvcmU6OkFk
Q2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlOwotICAgIHVzaW5nIERlc3RpbmF0aW9uID0gV2ViQ29y
ZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbjsKLSAgICB1c2luZyBDb252ZXJzaW9u
ID0gV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uOwotCi0gICAgZXhwbGlj
aXQgQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlcihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nl
c3MsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKLSAgICAgICAgOiBtX2ZpcmVQZW5kaW5nQ29u
dmVyc2lvblJlcXVlc3RzVGltZXIoKnRoaXMsICZBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyOjpm
aXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0cykKLSAgICAgICAgLCBtX3BpbmdMb2FkRnVuY3Rp
b24oW10oTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiBwYXJhbXMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgewotICAgICAgICAgICAg
VU5VU0VEX1BBUkFNKHBhcmFtcyk7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJD
b3JlOjpSZXNvdXJjZUVycm9yKCksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UoKSk7Ci0gICAg
ICAgIH0pCi0gICAgICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKLSAgICAg
ICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCi0gICAgewotICAgIH0KLQotICAgIHZvaWQgc3Rv
cmVVbmNvbnZlcnRlZChBZENsaWNrQXR0cmlidXRpb24mJik7Ci0gICAgdm9pZCBoYW5kbGVDb252
ZXJzaW9uKENvbnZlcnNpb24mJiwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVzdCk7Ci0gICAgdm9pZCBjbGVhcigpOwot
ICAgIHZvaWQgY2xlYXJGb3JSZWdpc3RyYWJsZURvbWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYpOwotICAgIHZvaWQgdG9TdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYm
KSBjb25zdDsKLSAgICB2b2lkIHNldFBpbmdMb2FkRnVuY3Rpb24oRnVuY3Rpb248dm9pZChOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
Jik+JiYpPiYmIHBpbmdMb2FkRnVuY3Rpb24pIHsgbV9waW5nTG9hZEZ1bmN0aW9uID0gV1RGTW92
ZShwaW5nTG9hZEZ1bmN0aW9uKTsgfQotICAgIHZvaWQgc2V0T3ZlcnJpZGVUaW1lckZvclRlc3Rp
bmcoYm9vbCB2YWx1ZSkgeyBtX2lzUnVubmluZ1Rlc3QgPSB2YWx1ZTsgfQotICAgIHZvaWQgc2V0
Q29udmVyc2lvblVSTEZvclRlc3RpbmcoVVJMJiYpOwotICAgIHZvaWQgbWFya0FsbFVuY29udmVy
dGVkQXNFeHBpcmVkRm9yVGVzdGluZygpOwotCi1wcml2YXRlOgotICAgIHZvaWQgc3RhcnRUaW1l
cihTZWNvbmRzKTsKLSAgICB2b2lkIGNvbnZlcnQoY29uc3QgU291cmNlJiwgY29uc3QgRGVzdGlu
YXRpb24mLCBDb252ZXJzaW9uJiYpOwotICAgIHZvaWQgZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGNv
bnN0IEFkQ2xpY2tBdHRyaWJ1dGlvbiYpOwotICAgIHZvaWQgZmlyZVBlbmRpbmdDb252ZXJzaW9u
UmVxdWVzdHMoKTsKLSAgICB2b2lkIGNsZWFyRXhwaXJlZCgpOwotICAgIGJvb2wgZGVidWdNb2Rl
RW5hYmxlZCgpIGNvbnN0OwotCi0gICAgSGFzaE1hcDxzdGQ6OnBhaXI8U291cmNlLCBEZXN0aW5h
dGlvbj4sIEFkQ2xpY2tBdHRyaWJ1dGlvbj4gbV91bmNvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlv
bk1hcDsKLSAgICBIYXNoTWFwPHN0ZDo6cGFpcjxTb3VyY2UsIERlc3RpbmF0aW9uPiwgQWRDbGlj
a0F0dHJpYnV0aW9uPiBtX2NvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcDsKLSAgICBXZWJD
b3JlOjpUaW1lciBtX2ZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzVGltZXI7Ci0gICAgRnVu
Y3Rpb248dm9pZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJik+JiYpPiBtX3BpbmdMb2FkRnVuY3Rpb247Ci0gICAgYm9vbCBtX2lz
UnVubmluZ1Rlc3QgeyBmYWxzZSB9OwotICAgIE9wdGlvbmFsPFVSTD4gbV9jb252ZXJzaW9uQmFz
ZVVSTEZvclRlc3Rpbmc7Ci0gICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9jZXNz
OwotICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwotfTsKLSAgICAKLX0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcAppbmRleCAwYmI4NTczMDUzODRjYjM1ZDc4YTY0ZGFjOTQzNGQ3ZmM4MjRkOWY1Li44
YTlkMmYzOTM5ZTcxODZiODFlOGE3ZWZkNGJiZWI1MGE2M2IyZjU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMzMwLDcgKzMzMCw3
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmCiAKICAgICBzZXRDYWNoZU1vZGVsKHBhcmFtZXRl
cnMuY2FjaGVNb2RlbCk7CiAKLSAgICBzZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUocGFy
YW1ldGVycy5lbmFibGVBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUpOworICAgIHNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKHBhcmFtZXRlcnMuZW5hYmxlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnREZWJ1Z01vZGUpOwogCiAgICAgZm9yIChhdXRvJiBzdXBwbGVtZW50IDogbV9z
dXBwbGVtZW50cy52YWx1ZXMoKSkKICAgICAgICAgc3VwcGxlbWVudC0+aW5pdGlhbGl6ZShwYXJh
bWV0ZXJzKTsKQEAgLTEzMTMsMTggKzEzMTMsMTggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0
VGhpcmRQYXJ0eUNOQU1FRG9tYWluRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQK
IH0KICNlbmRpZiAvLyBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogCi12b2lkIE5l
dHdvcmtQcm9jZXNzOjpzZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUoYm9vbCBkZWJ1Z01v
ZGUpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVn
TW9kZShib29sIGRlYnVnTW9kZSkKIHsKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS5hZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkKCkgPT0g
ZGVidWdNb2RlKQorICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJl
cygpLnByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZCgpID09IGRlYnVnTW9k
ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5zZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkKGRlYnVnTW9k
ZSk7CisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQoZGVidWdNb2RlKTsKIAotICAgIFN0
cmluZyBtZXNzYWdlID0gZGVidWdNb2RlID8gIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gVHVybmVk
IERlYnVnIE1vZGUgb24uIl9zIDogIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gVHVybmVkIERlYnVn
IE1vZGUgb2ZmLiJfczsKKyAgICBTdHJpbmcgbWVzc2FnZSA9IGRlYnVnTW9kZSA/ICJbUHJpdmF0
ZSBDbGljayBNZWFzdXJlbWVudF0gVHVybmVkIERlYnVnIE1vZGUgb24uIl9zIDogIltQcml2YXRl
IENsaWNrIE1lYXN1cmVtZW50XSBUdXJuZWQgRGVidWcgTW9kZSBvZmYuIl9zOwogICAgIGZvciAo
YXV0byYgbmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgOiBtX3dlYlByb2Nlc3NDb25uZWN0
aW9ucy52YWx1ZXMoKSkgewogICAgICAgICBpZiAobmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MtPnNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgbmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNz
YWdlKE1lc3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbiwgTWVzc2FnZUxldmVsOjpJbmZv
LCBtZXNzYWdlKTsKKyAgICAgICAgbmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPmJyb2Fk
Y2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
LCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1lc3NhZ2UpOwogICAgIH0KIH0KIApAQCAtMTU4Myw5ICsx
NTgzLDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2kKICAgICBpZiAod2Vic2l0ZURhdGFUeXBl
cy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkRpc2tDYWNoZSkgJiYgIXNlc3Npb25JRC5pc0Vw
aGVtZXJhbCgpKQogICAgICAgICBjbGVhckRpc2tDYWNoZShtb2RpZmllZFNpbmNlLCBbY2xlYXJU
YXNrc0hhbmRsZXIgPSBXVEZNb3ZlKGNsZWFyVGFza3NIYW5kbGVyKV0geyB9KTsKIAotICAgIGlm
ICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6QWRDbGlja0F0dHJp
YnV0aW9ucykpIHsKKyAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0
YVR5cGU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50cykpIHsKICAgICAgICAgaWYgKGF1dG8qIG5l
dHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkKLSAgICAgICAg
ICAgIG5ldHdvcmtTZXNzaW9uLT5jbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbigpOworICAgICAgICAg
ICAgbmV0d29ya1Nlc3Npb24tPmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKICAgICB9
CiAKICNpZiBIQVZFKENGTkVUV09SS19BTFRFUk5BVElWRV9TRVJWSUNFKQpAQCAtMTY0NCwxMCAr
MTY0NCwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdp
bnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpbwogICAgIH0KICNlbmRpZgogCi0gICAg
aWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpBZENsaWNrQXR0
cmlidXRpb25zKSkgeworICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVE
YXRhVHlwZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzKSkgewogICAgICAgICBpZiAoYXV0byog
bmV0d29ya1Nlc3Npb24gPSB0aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAg
ICAgICAgICBmb3IgKGF1dG8mIG9yaWdpbkRhdGEgOiBvcmlnaW5EYXRhcykKLSAgICAgICAgICAg
ICAgICBuZXR3b3JrU2Vzc2lvbi0+Y2xlYXJBZENsaWNrQXR0cmlidXRpb25Gb3JSZWdpc3RyYWJs
ZURvbWFpbihSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3Qob3JpZ2lu
RGF0YS5ob3N0KSk7CisgICAgICAgICAgICAgICAgbmV0d29ya1Nlc3Npb24tPmNsZWFyUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRGb3JSZWdpc3RyYWJsZURvbWFpbihSZWdpc3RyYWJsZURvbWFpbjo6
dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3Qob3JpZ2luRGF0YS5ob3N0KSk7CiAgICAgICAgIH0KICAg
ICB9CiAgICAgCkBAIC0yNTMyLDQ4ICsyNTMyLDQ4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBs
YXRmb3JtRmx1c2hDb29raWVzKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgQ29tcGxldGlvbkhhbmRs
CiAKICNlbmRpZgogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzdG9yZUFkQ2xpY2tBdHRyaWJ1dGlv
bihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbiYm
IGFkQ2xpY2tBdHRyaWJ1dGlvbikKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnN0b3JlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCYmIHByaXZhdGVDbGlja01lYXN1cmVtZW50KQogewogICAgIGlmIChh
dXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkKLSAgICAgICAgc2Vzc2lv
bi0+c3RvcmVBZENsaWNrQXR0cmlidXRpb24oV1RGTW92ZShhZENsaWNrQXR0cmlidXRpb24pKTsK
KyAgICAgICAgc2Vzc2lvbi0+c3RvcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXVEZNb3ZlKHBy
aXZhdGVDbGlja01lYXN1cmVtZW50KSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmR1bXBB
ZENsaWNrQXR0cmlidXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0cmluZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQotICAg
ICAgICByZXR1cm4gc2Vzc2lvbi0+ZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbihXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CisgICAgICAgIHJldHVybiBzZXNzaW9uLT5kdW1wUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogCiAgICAgY29tcGxldGlv
bkhhbmRsZXIoeyB9KTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y2xlYXJBZENsaWNrQXR0
cmlidXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVhclByaXZh
dGVDbGlja01lYXN1cmVtZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRvKiBzZXNz
aW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkKLSAgICAgICAgc2Vzc2lvbi0+Y2xlYXJB
ZENsaWNrQXR0cmlidXRpb24oKTsKKyAgICAgICAgc2Vzc2lvbi0+Y2xlYXJQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCgpOwogICAgIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKLXZvaWQg
TmV0d29ya1Byb2Nlc3M6OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0
aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNz
aW9uKHNlc3Npb25JRCkpCi0gICAgICAgIHNlc3Npb24tPnNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92
ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHZhbHVlKTsKKyAgICAgICAgc2Vzc2lvbi0+c2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyh2YWx1ZSk7CiAgICAgCiAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0QWRD
bGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBVUkwmJiB1cmwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29udmVyc2lvblVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwmJiB1
cmwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCi0gICAgICAg
IHNlc3Npb24tPnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdU
Rk1vdmUodXJsKSk7CisgICAgICAgIHNlc3Npb24tPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29udmVyc2lvblVSTEZvclRlc3RpbmcoV1RGTW92ZSh1cmwpKTsKICAgICAKICAgICBjb21wbGV0
aW9uSGFuZGxlcigpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjptYXJrQWRDbGlja0F0dHJp
YnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQ
cm9jZXNzOjptYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9u
KHNlc3Npb25JRCkpCi0gICAgICAgIHNlc3Npb24tPm1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNF
eHBpcmVkRm9yVGVzdGluZygpOworICAgICAgICBzZXNzaW9uLT5tYXJrUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOwogCiAgICAgY29tcGxldGlvbkhhbmRsZXIo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApp
bmRleCAxYTc3ZmFiOTYxZGYyZTVlMzA2MTI2OWY1OTJhMmM0Yzg2OTQ2ZjlkLi5iZTUyNmVmZjFl
OGM5MWQzNmVhODliODdlN2I1Njc5NThhOTU2ZmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0zOSw3ICszOSw2IEBACiAjaW5jbHVkZSAi
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGEu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3Jp
Z2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPgpAQCAtNDcs
NiArNDYsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSURCS2V5RGF0YS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bh
Z2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2
aWNlV29ya2VyVHlwZXMuaD4KQEAgLTI3NSw3ICsyNzUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRUaGlyZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogI2Vu
ZGlmCiAKLSAgICB2b2lkIHNldEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZShib29sKTsKKyAg
ICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKGJvb2wpOwogCiAgICAg
dXNpbmcgQ2FjaGVTdG9yYWdlUm9vdFBhdGhDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RyaW5nJiYpPjsKICAgICB2b2lkIGNhY2hlU3RvcmFnZVJvb3RQYXRoKFBBTDo6U2Vzc2lv
bklELCBDYWNoZVN0b3JhZ2VSb290UGF0aENhbGxiYWNrJiYpOwpAQCAtMzMyLDEyICszMzIsMTIg
QEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlQ2FjaGVFbmdpbmUoY29uc3QgUEFMOjpTZXNzaW9u
SUQmKTsKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlU3BhY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIHVpbnQ2NF90IHF1b3RhLCB1aW50NjRfdCBjdXJyZW50
U2l6ZSwgdWludDY0X3Qgc3BhY2VSZXF1aXJlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRp
b25hbDx1aW50NjRfdD4pPiYmKTsKIAotICAgIHZvaWQgc3RvcmVBZENsaWNrQXR0cmlidXRpb24o
UEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbiYmKTsKLSAgICB2b2lk
IGR1bXBBZENsaWNrQXR0cmlidXRpb24oUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU3RyaW5nKT4mJik7Ci0gICAgdm9pZCBjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbihQQUw6
OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldEFk
Q2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBi
b29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0QWRD
bGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFVS
TCYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgbWFya0FkQ2xpY2tB
dHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc3RvcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dChQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJik7Cisg
ICAgdm9pZCBkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUEFMOjpTZXNzaW9uSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJik7CisgICAgdm9pZCBjbGVhclByaXZhdGVDbGlj
a01lYXN1cmVtZW50KFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVz
dGluZyhQQUw6OlNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZv
clRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFVSTCYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOworICAgIHZvaWQgbWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAg
ICBSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZVF1b3RhTWFuYWdlcj4gc3RvcmFnZVF1b3RhTWFuYWdl
cihQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3Nh
Z2VzLmluCmluZGV4IDIwZmZiY2MzZmNkZmFkZWEzYzBhMzQ5NmM1MjgyMjQ4NGZmZGFhMTUuLjBm
MDE5MDU2ZTViNTdmNTMzNGI4Y2U3MzgyNmUyZmEwNTY4ODkzYmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpA
QCAtMTQ4LDcgKzE0OCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2Vp
dmVyIHsKICAgICBTZXRUaGlyZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluKSAtPiAoKSBB
c3luYwogI2VuZGlmCiAKLSAgICBTZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUoYm9vbCBk
ZWJ1Z01vZGUpCisgICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUoYm9vbCBk
ZWJ1Z01vZGUpCiAKICAgICBTZXRTZXNzaW9uSXNDb250cm9sbGVkQnlBdXRvbWF0aW9uKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBjb250cm9sbGVkKTsKIApAQCAtMTYxLDEyICsxNjEs
MTIgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAg
U3luY0xvY2FsU3RvcmFnZSgpIC0+ICgpIEFzeW5jCiAKLSAgICBTdG9yZUFkQ2xpY2tBdHRyaWJ1
dGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlv
biBhZENsaWNrQXR0cmlidXRpb24pCi0gICAgRHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbihQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQpIC0+IChTdHJpbmcgYWRDbGlja0F0dHJpYnV0aW9uU3RhdGUpIEFz
eW5jCi0gICAgQ2xlYXJBZENsaWNrQXR0cmlidXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KSAtPiAoKSBBc3luYwotICAgIFNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JU
ZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkgLT4gKCkgQXN5bmMK
LSAgICBTZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFVSTCB1cmwpIC0+ICgpIEFzeW5jCi0gICAgTWFya0FkQ2xpY2tB
dHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkg
LT4gKCkgQXN5bmMKKyAgICBTdG9yZVByaXZhdGVDbGlja01lYXN1cmVtZW50KFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQpCisgICAgRHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkgLT4gKFN0cmluZyBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0YXRl
KSBBc3luYworICAgIENsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKSAtPiAoKSBBc3luYworICAgIFNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3Zl
cnJpZGVUaW1lckZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVl
KSAtPiAoKSBBc3luYworICAgIFNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVS
TEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgdXJsKSAtPiAoKSBBc3lu
YworICAgIE1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKICAgICBHZXRMb2NhbFN0b3JhZ2VP
cmlnaW5EZXRhaWxzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFZlY3RvcjxXZWJLaXQ6
OkxvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcjo6T3JpZ2luRGV0YWlscz4gZGV0YWlscykgQXN5
bmMKIAogICAgIFNldFNlcnZpY2VXb3JrZXJGZXRjaFRpbWVvdXRGb3JUZXN0aW5nKFNlY29uZHMg
c2Vjb25kcykgLT4gKCkgU3luY2hyb25vdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAKaW5kZXggNDlmYTg4MGE4OTY1MTA4NGE1ODM5OTFkN2ExMGZlZTcwYjU1MjFmMC4uZmRhODE1
MGQwOTFmMTUwMDQ5MmVkZGY5NWRhNTY4YTM1YTIzMWQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBl
bmNvZGVyIDw8IHVybFNjaGVtZXNSZWdpc3RlcmVkQXNMb2NhbDsKICAgICBlbmNvZGVyIDw8IHVy
bFNjaGVtZXNSZWdpc3RlcmVkQXNOb0FjY2VzczsKIAotICAgIGVuY29kZXIgPDwgZW5hYmxlQWRD
bGlja0F0dHJpYnV0aW9uRGVidWdNb2RlOworICAgIGVuY29kZXIgPDwgZW5hYmxlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnREZWJ1Z01vZGU7CiB9CiAKIGJvb2wgTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIE5ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzJiByZXN1bHQpCkBAIC0xMjUsNyArMTI1LDcgQEAgYm9vbCBOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rl
ciwgTmV0d29ya1Byb2MKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC51cmxTY2hlbWVz
UmVnaXN0ZXJlZEFzTm9BY2Nlc3MpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5lbmFibGVBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUp
KQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmVuYWJsZVByaXZhdGVDbGlja01lYXN1
cmVtZW50RGVidWdNb2RlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRy
dWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNzgyOWEyZGMxYzJiMmE4ZWZj
MmRhOTJlYTJhZjRkNGY4MzYyMTc0Yy4uYjA0ZmM0YzFkNmZhMzk5MTcwMGNlZWRiYjA0OTVhYzM0
YmRiZWFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtNzksNyArNzksNyBA
QCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFZlY3RvcjxT
dHJpbmc+IHVybFNjaGVtZXNSZWdpc3RlcmVkQXNMb2NhbDsKICAgICBWZWN0b3I8U3RyaW5nPiB1
cmxTY2hlbWVzUmVnaXN0ZXJlZEFzTm9BY2Nlc3M7CiAKLSAgICBib29sIGVuYWJsZUFkQ2xpY2tB
dHRyaWJ1dGlvbkRlYnVnTW9kZSB7IGZhbHNlIH07CisgICAgYm9vbCBlbmFibGVQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudERlYnVnTW9kZSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcAppbmRleCAyOWFlZmZmZDBiMmI4MGU3NzliNDE2OTFhMDA4MDRlNmIx
MjlkM2E4Li4zNWU5OTk0ZDc0ZDUxMGFhNGUxNDU4NDhjNzJkMmI1ODVlMGJjMGM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuY3BwCkBAIC04MTQsMTIgKzgxNCwxMiBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
d2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LAogICAg
ICsrbV9yZWRpcmVjdENvdW50OwogICAgIG1fcmVkaXJlY3RSZXNwb25zZSA9IHJlZGlyZWN0UmVz
cG9uc2U7CiAKLSAgICBPcHRpb25hbDxBZENsaWNrQXR0cmlidXRpb246OkNvbnZlcnNpb24+IGFk
Q2xpY2tDb252ZXJzaW9uOworICAgIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpD
b252ZXJzaW9uPiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb247CiAgICAgaWYgKCFz
ZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpKSB7Ci0gICAgICAgIGlmIChhdXRvIHJlc3VsdCA9IEFk
Q2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChyZWRpcmVjdFJlcXVlc3Qu
dXJsKCkpKQotICAgICAgICAgICAgYWRDbGlja0NvbnZlcnNpb24gPSByZXN1bHQudmFsdWUoKTsK
KyAgICAgICAgaWYgKGF1dG8gcmVzdWx0ID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNl
Q29udmVyc2lvblJlcXVlc3QocmVkaXJlY3RSZXF1ZXN0LnVybCgpKSkKKyAgICAgICAgICAgIHBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbiA9IHJlc3VsdC52YWx1ZSgpOwogICAgICAg
ICBlbHNlIGlmICghcmVzdWx0LmVycm9yKCkuaXNFbXB0eSgpKQotICAgICAgICAgICAgYWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6QWRDbGlja0F0dHJpYnV0aW9uLCBNZXNzYWdlTGV2
ZWw6OkVycm9yLCByZXN1bHQuZXJyb3IoKSk7CisgICAgICAgICAgICBhZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpF
cnJvciwgcmVzdWx0LmVycm9yKCkpOwogICAgIH0KIAogICAgIGF1dG8gbWF4QWdlQ2FwID0gdmFs
aWRhdGVDYWNoZUVudHJ5Rm9yTWF4QWdlQ2FwVmFsaWRhdGlvbihyZXF1ZXN0LCByZWRpcmVjdFJl
cXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwpAQCAtODI3LDEyICs4MjcsMTIgQEAgdm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwKICAgICAgICAgbV9jYWNoZS0+c3RvcmVSZWRpcmVjdChyZXF1ZXN0LCBy
ZWRpcmVjdFJlc3BvbnNlLCByZWRpcmVjdFJlcXVlc3QsIG1heEFnZUNhcCk7CiAKICAgICBpZiAo
bV9uZXR3b3JrTG9hZENoZWNrZXIpIHsKLSAgICAgICAgaWYgKGFkQ2xpY2tDb252ZXJzaW9uKQor
ICAgICAgICBpZiAocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKQogICAgICAgICAg
ICAgbV9uZXR3b3JrTG9hZENoZWNrZXItPmVuYWJsZUNvbnRlbnRFeHRlbnNpb25zQ2hlY2soKTsK
ICAgICAgICAgbV9uZXR3b3JrTG9hZENoZWNrZXItPnN0b3JlUmVkaXJlY3Rpb25JZk5lZWRlZChy
ZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKIAogICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJ3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0OiBDaGVja2luZyByZWRpcmVjdCB1c2luZyBO
ZXR3b3JrTG9hZENoZWNrZXIiKTsKLSAgICAgICAgbV9uZXR3b3JrTG9hZENoZWNrZXItPmNoZWNr
UmVkaXJlY3Rpb24oV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZWRpcmVjdFJlcXVlc3QpLCBX
VEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB0aGlzLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCB0aGlzLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IG1fbmV0d29ya0xvYWRDaGVj
a2VyLT5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSgpLCBhZENsaWNrQ29udmVyc2lvbiA9IFdURk1v
dmUoYWRDbGlja0NvbnZlcnNpb24pXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAg
bV9uZXR3b3JrTG9hZENoZWNrZXItPmNoZWNrUmVkaXJlY3Rpb24oV1RGTW92ZShyZXF1ZXN0KSwg
V1RGTW92ZShyZWRpcmVjdFJlcXVlc3QpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB0aGlz
LCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzLCBzdG9yZWRDcmVkZW50aWFs
c1BvbGljeSA9IG1fbmV0d29ya0xvYWRDaGVja2VyLT5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSgp
LCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24gPSBXVEZNb3ZlKHByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29udmVyc2lvbildKGF1dG8mJiByZXN1bHQpIG11dGFibGUgewogICAgICAg
ICAgICAgaWYgKCFyZXN1bHQuaGFzX3ZhbHVlKCkpIHsKICAgICAgICAgICAgICAgICBpZiAocmVz
dWx0LmVycm9yKCkuaXNDYW5jZWxsYXRpb24oKSkgewogICAgICAgICAgICAgICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0OiBOZXR3b3JrTG9h
ZENoZWNrZXI6OmNoZWNrUmVkaXJlY3Rpb24gcmV0dXJuZWQgd2l0aCBhIGNhbmNlbGxhdGlvbiIp
OwpAQCAtODY1LDE2ICs4NjUsMTYgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxT
ZW5kUmVkaXJlY3RlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwKICAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgbV9zaG91bGRSZXN0YXJ0TG9hZCA9IHN0b3JlZENyZWRlbnRp
YWxzUG9saWN5ICE9IG1fbmV0d29ya0xvYWRDaGVja2VyLT5zdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSgpOwotICAgICAgICAgICAgdGhpcy0+Y29udGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0
KFdURk1vdmUocmVzdWx0LT5yZXF1ZXN0KSwgV1RGTW92ZShyZXN1bHQtPnJlZGlyZWN0UmVxdWVz
dCksIFdURk1vdmUocmVzdWx0LT5yZWRpcmVjdFJlc3BvbnNlKSwgV1RGTW92ZShhZENsaWNrQ29u
dmVyc2lvbikpOworICAgICAgICAgICAgdGhpcy0+Y29udGludWVXaWxsU2VuZFJlZGlyZWN0ZWRS
ZXF1ZXN0KFdURk1vdmUocmVzdWx0LT5yZXF1ZXN0KSwgV1RGTW92ZShyZXN1bHQtPnJlZGlyZWN0
UmVxdWVzdCksIFdURk1vdmUocmVzdWx0LT5yZWRpcmVjdFJlc3BvbnNlKSwgV1RGTW92ZShwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24pKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgY29udGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdURk1v
dmUocmVxdWVzdCksIFdURk1vdmUocmVkaXJlY3RSZXF1ZXN0KSwgV1RGTW92ZShyZWRpcmVjdFJl
c3BvbnNlKSwgV1RGTW92ZShhZENsaWNrQ29udmVyc2lvbikpOworICAgIGNvbnRpbnVlV2lsbFNl
bmRSZWRpcmVjdGVkUmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlZGlyZWN0UmVx
dWVzdCksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIFdURk1vdmUocHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRDb252ZXJzaW9uKSk7CiB9CiAKLXZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpj
b250aW51ZVdpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVkaXJlY3RSZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlJiYg
cmVkaXJlY3RSZXNwb25zZSwgT3B0aW9uYWw8QWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9u
PiYmIGFkQ2xpY2tDb252ZXJzaW9uKQordm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRp
bnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBS
ZXNvdXJjZVJlcXVlc3QmJiByZWRpcmVjdFJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UmJiByZWRp
cmVjdFJlc3BvbnNlLCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lv
bj4mJiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24pCiB7Ci0gICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgiY29udGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0OiAobV9pc0tl
cHRBbGl2ZT0lZCwgaGFzQWRDbGlja0NvbnZlcnNpb249JWQpIiwgbV9pc0tlcHRBbGl2ZSwgISFh
ZENsaWNrQ29udmVyc2lvbik7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiY29udGludWVX
aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0OiAobV9pc0tlcHRBbGl2ZT0lZCwgaGFzQWRDbGlja0Nv
bnZlcnNpb249JWQpIiwgbV9pc0tlcHRBbGl2ZSwgISFwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
bnZlcnNpb24pOwogICAgIEFTU0VSVCghaXNTeW5jaHJvbm91cygpKTsKIAogICAgIGlmIChtX2lz
S2VwdEFsaXZlKSB7CkBAIC04ODMsOCArODgzLDggQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OmNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJgog
ICAgIH0KIAogICAgIE5ldHdvcmtTZXNzaW9uKiBuZXR3b3JrU2Vzc2lvbiA9IG51bGxwdHI7Ci0g
ICAgaWYgKGFkQ2xpY2tDb252ZXJzaW9uICYmIChuZXR3b3JrU2Vzc2lvbiA9IG1fY29ubmVjdGlv
bi0+bmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQoKSkpKQotICAgICAg
ICBuZXR3b3JrU2Vzc2lvbi0+aGFuZGxlQWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvbihXVEZN
b3ZlKCphZENsaWNrQ29udmVyc2lvbiksIHJlcXVlc3QudXJsKCksIHJlZGlyZWN0UmVxdWVzdCk7
CisgICAgaWYgKHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbiAmJiAobmV0d29ya1Nl
c3Npb24gPSBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vz
c2lvbklEKCkpKSkKKyAgICAgICAgbmV0d29ya1Nlc3Npb24tPmhhbmRsZVByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29udmVyc2lvbihXVEZNb3ZlKCpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZl
cnNpb24pLCByZXF1ZXN0LnVybCgpLCByZWRpcmVjdFJlcXVlc3QpOwogCiAgICAgLy8gV2Ugc2Vu
ZCB0aGUgcmVxdWVzdCBib2R5IHNlcGFyYXRlbHkgYmVjYXVzZSB0aGUgUmVzb3VyY2VSZXF1ZXN0
IGJvZHkgbm9ybWFsbHkgZG9lcyBub3QgZ2V0IGVuY29kZWQgd2hlbiBzZW50IG92ZXIgSVBDLCBh
cyBhbiBvcHRpbWl6YXRpb24uCiAgICAgLy8gSG93ZXZlciwgd2UgcmVhbGx5IG5lZWQgdGhlIGJv
ZHkgaGVyZSBiZWNhdXNlIGEgcmVkaXJlY3QgY3Jvc3Mtc2l0ZSBtYXkgY2F1c2UgYSBwcm9jZXNz
LXN3YXAgYW5kIHRoZSByZXF1ZXN0IHRvIHN0YXJ0IGFnYWluIGluIGEgbmV3IFdlYkNvbnRlbnQg
cHJvY2Vzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5oCmluZGV4IDhlYmYyNzNjZDllYWY0MTIzMjA3ODhiMzg2YTI3OGY5MThm
NzQwZTQuLjU2MTVmZmU3NTM0NWYyNGUyNTFlYmE2YTUwNGVmM2MxMDk1MGRiZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
aApAQCAtMzMsOSArMzMsOSBAQAogI2luY2x1ZGUgIk5ldHdvcmtMb2FkQ2xpZW50LmgiCiAjaW5j
bHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQWRDbGlja0F0dHJp
YnV0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlUmVzcG9uc2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+CkBAIC0xOTEsNyArMTkx
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvZ0Nvb2tpZUluZm9ybWF0aW9uKCkgY29uc3Q7CiAj
ZW5kaWYKIAotICAgIHZvaWQgY29udGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZWRpcmVj
dFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwgT3B0aW9uYWw8V2ViQ29yZTo6
QWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uPiYmKTsKKyAgICB2b2lkIGNvbnRpbnVlV2ls
bFNlbmRSZWRpcmVjdGVkUmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVkaXJlY3RSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252
ZXJzaW9uPiYmKTsKICAgICB2b2lkIGRpZEZpbmlzaFdpdGhSZWRpcmVjdFJlc3BvbnNlKFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZWRpcmVj
dFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJik7CiAgICAgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSBzYW5pdGl6ZVJlc3BvbnNlSWZQb3NzaWJsZShXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OlNhbml0aXphdGlvblR5cGUp
OwogCkBAIC0yMDIsNyArMjAyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgbG9nU2xvd0NhY2hl
UmV0cmlldmVJZk5lZWRlZChjb25zdCBOZXR3b3JrQ2FjaGU6OkNhY2hlOjpSZXRyaWV2ZUluZm8m
KTsKIAotICAgIHZvaWQgaGFuZGxlQWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvbihXZWJDb3Jl
OjpBZENsaWNrQXR0cmlidXRpb246OkNvbnZlcnNpb24mJiwgY29uc3QgVVJMJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgdm9pZCBoYW5kbGVQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvbnZlcnNpb24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZl
cnNpb24mJiwgY29uc3QgVVJMJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAK
ICAgICBPcHRpb25hbDxTZWNvbmRzPiB2YWxpZGF0ZUNhY2hlRW50cnlGb3JNYXhBZ2VDYXBWYWxp
ZGF0aW9uKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5jcHAKaW5kZXggYTFjZTc2MmQ1ZWIyYmE4OWQzZDhjM2RlNmM2N2UwNjNhZDY3ZTNmOC4u
OGNlNTkxNDEyMzRhZWJmNWU0OWUyYmRjOGE2ODJmYjU4NGNhMjg1MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTI2LDcgKzI2LDYg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgogCi0j
aW5jbHVkZSAiQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNz
UHJveHlNZXNzYWdlcy5oIgpAQCAtMzQsMTEgKzMzLDExIEBACiAjaW5jbHVkZSAiTmV0d29ya1Jl
c291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRl
cnMuaCIKICNpbmNsdWRlICJQaW5nTG9hZC5oIgorI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldl
YlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5j
bHVkZSAiV2ViU29ja2V0VGFzay5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQWRDbGlja0F0dHJpYnV0
aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWVKYXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlUmVxdWVzdC5oPgogCkBAIC05MSw3ICs5MCw3IEBAIE5ldHdvcmtTZXNzaW9uOjpO
ZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdv
cmtTZXNzCiAgICAgLCBtX2ZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKHBhcmFtZXRl
cnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuZmlyc3RQYXJ0eVdlYnNpdGVEYXRh
UmVtb3ZhbE1vZGUpCiAgICAgLCBtX3N0YW5kYWxvbmVBcHBsaWNhdGlvbkRvbWFpbihwYXJhbWV0
ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLnN0YW5kYWxvbmVBcHBsaWNhdGlv
bkRvbWFpbikKICNlbmRpZgotICAgICwgbV9hZENsaWNrQXR0cmlidXRpb24obWFrZVVuaXF1ZVJl
ZjxBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyPihuZXR3b3JrUHJvY2VzcywgcGFyYW1ldGVycy5z
ZXNzaW9uSUQpKQorICAgICwgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudChtYWtlVW5pcXVlUmVm
PFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcj4obmV0d29ya1Byb2Nlc3MsIHBhcmFtZXRl
cnMuc2Vzc2lvbklEKSkKICAgICAsIG1fdGVzdFNwZWVkTXVsdGlwbGllcihwYXJhbWV0ZXJzLnRl
c3RTcGVlZE11bHRpcGxpZXIpCiAgICAgLCBtX2FsbG93c1NlcnZlclByZWNvbm5lY3QocGFyYW1l
dGVycy5hbGxvd3NTZXJ2ZXJQcmVjb25uZWN0KQogewpAQCAtMTIwLDcgKzExOSw3IEBAIE5ldHdv
cmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3Ms
IGNvbnN0IE5ldHdvcmtTZXNzCiAKICAgICBtX2lzU3RhbGVXaGlsZVJldmFsaWRhdGVFbmFibGVk
ID0gcGFyYW1ldGVycy5zdGFsZVdoaWxlUmV2YWxpZGF0ZUVuYWJsZWQ7CiAKLSAgICBtX2FkQ2xp
Y2tBdHRyaWJ1dGlvbi0+c2V0UGluZ0xvYWRGdW5jdGlvbihbdGhpcywgd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cih0aGlzKV0oTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiBsb2FkUGFyYW1l
dGVycywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSB7CisgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+c2V0UGluZ0xvYWRGdW5jdGlvbihb
dGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMmJiBsb2FkUGFyYW1ldGVycywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIC8vIFBpbmdMb2FkIG1hbmFnZXMgaXRzIG93biBsaWZldGlt
ZSwgZGVsZXRpbmcgaXRzZWxmIHdoZW4gaXRzIHB1cnBvc2UgaGFzIGJlZW4gZnVsZmlsbGVkLgpA
QCAtMzA0LDQ0ICszMDMsNDQgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6cmVzZXRDTkFNRURvbWFp
bkRhdGEoKQogfQogI2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAK
LXZvaWQgTmV0d29ya1Nlc3Npb246OnN0b3JlQWRDbGlja0F0dHJpYnV0aW9uKFdlYkNvcmU6OkFk
Q2xpY2tBdHRyaWJ1dGlvbiYmIGFkQ2xpY2tBdHRyaWJ1dGlvbikKK3ZvaWQgTmV0d29ya1Nlc3Np
b246OnN0b3JlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQmJiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkKIHsKLSAgICBtX2FkQ2xpY2tBdHRy
aWJ1dGlvbi0+c3RvcmVVbmNvbnZlcnRlZChXVEZNb3ZlKGFkQ2xpY2tBdHRyaWJ1dGlvbikpOwor
ICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPnN0b3JlVW5jb252ZXJ0ZWQoV1RGTW92ZShw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCkpOwogfQogCi12b2lkIE5ldHdvcmtTZXNzaW9uOjpoYW5k
bGVBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVy
c2lvbiYmIGNvbnZlcnNpb24sIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QpCit2b2lkIE5ldHdvcmtTZXNzaW9uOjpo
YW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkNvbnZlcnNpb24mJiBjb252ZXJzaW9uLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KQogewotICAgIG1f
YWRDbGlja0F0dHJpYnV0aW9uLT5oYW5kbGVDb252ZXJzaW9uKFdURk1vdmUoY29udmVyc2lvbiks
IHJlcXVlc3RVUkwsIHJlZGlyZWN0UmVxdWVzdCk7CisgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC0+aGFuZGxlQ29udmVyc2lvbihXVEZNb3ZlKGNvbnZlcnNpb24pLCByZXF1ZXN0VVJMLCBy
ZWRpcmVjdFJlcXVlc3QpOwogfQogCi12b2lkIE5ldHdvcmtTZXNzaW9uOjpkdW1wQWRDbGlja0F0
dHJpYnV0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgTmV0d29ya1Nlc3Npb246OmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0g
ICAgbV9hZENsaWNrQXR0cmlidXRpb24tPnRvU3RyaW5nKFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKKyAgICBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50LT50b1N0cmluZyhXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgTmV0d29ya1Nlc3Npb246OmNsZWFyQWRDbGlj
a0F0dHJpYnV0aW9uKCkKK3ZvaWQgTmV0d29ya1Nlc3Npb246OmNsZWFyUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQoKQogewotICAgIG1fYWRDbGlja0F0dHJpYnV0aW9uLT5jbGVhcigpOworICAgIG1f
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPmNsZWFyKCk7CiB9CiAKLXZvaWQgTmV0d29ya1Nlc3Np
b246OmNsZWFyQWRDbGlja0F0dHJpYnV0aW9uRm9yUmVnaXN0cmFibGVEb21haW4oV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4mJiBkb21haW4pCit2b2lkIE5ldHdvcmtTZXNzaW9uOjpjbGVhclBy
aXZhdGVDbGlja01lYXN1cmVtZW50Rm9yUmVnaXN0cmFibGVEb21haW4oV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4mJiBkb21haW4pCiB7Ci0gICAgbV9hZENsaWNrQXR0cmlidXRpb24tPmNsZWFy
Rm9yUmVnaXN0cmFibGVEb21haW4oV1RGTW92ZShkb21haW4pKTsKKyAgICBtX3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50LT5jbGVhckZvclJlZ2lzdHJhYmxlRG9tYWluKFdURk1vdmUoZG9tYWluKSk7
CiB9CiAKLXZvaWQgTmV0d29ya1Nlc3Npb246OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRl
VGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpCit2b2lkIE5ldHdvcmtTZXNzaW9uOjpzZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpCiB7
Ci0gICAgbV9hZENsaWNrQXR0cmlidXRpb24tPnNldE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHZh
bHVlKTsKKyAgICBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50LT5zZXRPdmVycmlkZVRpbWVyRm9y
VGVzdGluZyh2YWx1ZSk7CiB9CiAKLXZvaWQgTmV0d29ya1Nlc3Npb246OnNldEFkQ2xpY2tBdHRy
aWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTCYmIHVybCkKK3ZvaWQgTmV0d29ya1Nl
c3Npb246OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rpbmco
VVJMJiYgdXJsKQogewotICAgIG1fYWRDbGlja0F0dHJpYnV0aW9uLT5zZXRDb252ZXJzaW9uVVJM
Rm9yVGVzdGluZyhXVEZNb3ZlKHVybCkpOworICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQt
PnNldENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdURk1vdmUodXJsKSk7CiB9CiAKLXZvaWQgTmV0
d29ya1Nlc3Npb246Om1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZygp
Cit2b2lkIE5ldHdvcmtTZXNzaW9uOjptYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBp
cmVkRm9yVGVzdGluZygpCiB7Ci0gICAgbV9hZENsaWNrQXR0cmlidXRpb24tPm1hcmtBbGxVbmNv
bnZlcnRlZEFzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICBtX3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50LT5tYXJrQWxsVW5jb252ZXJ0ZWRBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CiB9CiAKIHZvaWQg
TmV0d29ya1Nlc3Npb246OmFkZEtlcHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRl
cj4mJiBsb2FkZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uLmgKaW5kZXggMmZhMjYyZDUwNzEwMmMwZGJlMmE4Mzc2YTI1YTQyNDExOWVhODdiZS4uY2E0
YTU3NjY3ZDRiNGFjOTIwNDdiYzc5NDIxNzcxMDFmZjNiYmEyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtMjksOSArMjksOSBAQAogI2lu
Y2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyU29mdFVw
ZGF0ZUxvYWRlci5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5o
IgotI2luY2x1ZGUgPFdlYkNvcmUvQWRDbGlja0F0dHJpYnV0aW9uLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9CbG9iUmVnaXN0cnlJbXBsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPHBhbC9T
ZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtNTEsNyArNTEsNyBAQCBz
dHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3Mg
QWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlcjsKK2NsYXNzIFByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlcjsKIGNsYXNzIE5ldHdvcmtEYXRhVGFzazsKIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwog
Y2xhc3MgTmV0d29ya1Jlc291cmNlTG9hZGVyOwpAQCAtMTE2LDE0ICsxMTYsMTQgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBoYXNBcHBCb3VuZFNlc3Npb24oKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBjbGVhckFwcEJvdW5kU2Vzc2lvbigpIHsgfQogI2Vu
ZGlmCi0gICAgdm9pZCBzdG9yZUFkQ2xpY2tBdHRyaWJ1dGlvbihXZWJDb3JlOjpBZENsaWNrQXR0
cmlidXRpb24mJik7Ci0gICAgdm9pZCBoYW5kbGVBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9u
KFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lvbiYmLCBjb25zdCBVUkwmIHJl
cXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0
KTsKLSAgICB2b2lkIGR1bXBBZENsaWNrQXR0cmlidXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTdHJpbmcpPiYmKTsKLSAgICB2b2lkIGNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKCk7Ci0gICAg
dm9pZCBjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbkZvclJlZ2lzdHJhYmxlRG9tYWluKFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluJiYpOwotICAgIHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uT3Zl
cnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7Ci0gICAgdm9pZCBzZXRBZENsaWNrQXR0
cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyhVUkwmJik7Ci0gICAgdm9pZCBtYXJrQWRD
bGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICB2b2lkIHN0b3JlUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJik7
CisgICAgdm9pZCBoYW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24oV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24mJiwgY29uc3QgVVJMJiByZXF1
ZXN0VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVzdCk7
CisgICAgdm9pZCBkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdHJpbmcpPiYmKTsKKyAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQo
KTsKKyAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGb3JSZWdpc3RyYWJsZURv
bWFpbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmKTsKKyAgICB2b2lkIHNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7CisgICAg
dm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVS
TCYmKTsKKyAgICB2b2lkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JU
ZXN0aW5nKCk7CiAKICAgICB2b2lkIGFkZEtlcHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcj4mJik7CiAgICAgdm9pZCByZW1vdmVLZXB0QWxpdmVMb2FkKE5ldHdvcmtSZXNvdXJj
ZUxvYWRlciYpOwpAQCAtMTc1LDcgKzE3NSw3IEBAIHByb3RlY3RlZDoKICAgICBPcHRpb25hbDxX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gbV90aGlyZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0
aW5nOwogI2VuZGlmCiAgICAgYm9vbCBtX2lzU3RhbGVXaGlsZVJldmFsaWRhdGVFbmFibGVkIHsg
ZmFsc2UgfTsKLSAgICBVbmlxdWVSZWY8QWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlcj4gbV9hZENs
aWNrQXR0cmlidXRpb247CisgICAgVW5pcXVlUmVmPFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlcj4gbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKIAogICAgIEhhc2hTZXQ8UmVmPE5ldHdv
cmtSZXNvdXJjZUxvYWRlcj4+IG1fa2VwdEFsaXZlTG9hZHM7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OGJlYWFhNjQxZWZlZGUxYjczMDMzMmNjOWQ4NmYwZjJl
ZTI4YjU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMzM2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlci5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hPcHRpb25z
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Gb3JtRGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSFRU
UEhlYWRlclZhbHVlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZVJlc3BvbnNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVj
a3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
SGFzaC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
Cit1c2luZyBTb3VyY2UgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlOwordXNpbmcg
RGVzdGluYXRpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb247Cit1c2lu
ZyBEZXN0aW5hdGlvbk1hcCA9IEhhc2hNYXA8RGVzdGluYXRpb24sIFByaXZhdGVDbGlja01lYXN1
cmVtZW50PjsKK3VzaW5nIENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29u
dmVyc2lvbjsKKworY29uc3RleHByIFNlY29uZHMgZGVidWdNb2RlU2Vjb25kc1VudGlsU2VuZCB7
IDYwX3MgfTsKKwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0b3JlVW5j
b252ZXJ0ZWQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBhdHRyaWJ1dGlvbikKK3sKKyAgICBj
bGVhckV4cGlyZWQoKTsKKworICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7
CisgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJTdG9y
aW5nIGFuIGFkIGNsaWNrLiIpOworICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RD
b25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVu
dF0gU3RvcmluZyBhbiBhZCBjbGljay4iX3MpOworICAgIH0KKworICAgIG1fdW5jb252ZXJ0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5zZXQoc3RkOjptYWtlX3BhaXIoYXR0cmlidXRpb24u
c291cmNlKCksIGF0dHJpYnV0aW9uLmRlc3RpbmF0aW9uKCkpLCBXVEZNb3ZlKGF0dHJpYnV0aW9u
KSk7Cit9CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpoYW5kbGVDb252
ZXJzaW9uKENvbnZlcnNpb24mJiBjb252ZXJzaW9uLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KQoreworICAgIGlm
IChtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWdp
c3RyYWJsZURvbWFpbiByZWRpcmVjdERvbWFpbiB7IHJlZGlyZWN0UmVxdWVzdC51cmwoKSB9Owor
ICAgIGF1dG8mIGZpcnN0UGFydHlVUkwgPSByZWRpcmVjdFJlcXVlc3QuZmlyc3RQYXJ0eUZvckNv
b2tpZXMoKTsKKworICAgIGlmICghcmVkaXJlY3REb21haW4ubWF0Y2hlcyhyZXF1ZXN0VVJMKSkg
eworICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkNvbnZlcnNpb24g
d2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBIVFRQIHJlZGlyZWN0IHdhcyBub3Qgc2FtZS1z
aXRlLiIpOworICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1l
c3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIENvbnZl
cnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBIVFRQIHJlZGlyZWN0IHdhcyBub3Qg
c2FtZS1zaXRlLiJfcyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmIChyZWRpcmVjdERvbWFpbi5tYXRjaGVzKGZpcnN0UGFydHlVUkwpKSB7CisgICAgICAgIGlm
IChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xP
R19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiQ29udmVyc2lvbiB3YXMgbm90IGFjY2Vw
dGVkIGJlY2F1c2UgaXQgd2FzIHJlcXVlc3RlZCBpbiBhbiBIVFRQIHJlZGlyZWN0IHRoYXQgaXMg
c2FtZS1zaXRlIGFzIHRoZSBmaXJzdC1wYXJ0eS4iKTsKKyAgICAgICAgICAgIG1fbmV0d29ya1By
b2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwgIltQcml2YXRl
IENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSBp
dCB3YXMgcmVxdWVzdGVkIGluIGFuIEhUVFAgcmVkaXJlY3QgdGhhdCBpcyBzYW1lLXNpdGUgYXMg
dGhlIGZpcnN0LXBhcnR5LiJfcyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGNvbnZlcnQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSB7IFdURk1vdmUo
cmVkaXJlY3REb21haW4pIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7
IGZpcnN0UGFydHlVUkwgfSwgV1RGTW92ZShjb252ZXJzaW9uKSk7Cit9CisKK3ZvaWQgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzdGFydFRpbWVyKFNlY29uZHMgc2Vjb25kcykKK3sK
KyAgICBtX2ZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzVGltZXIuc3RhcnRPbmVTaG90KG1f
aXNSdW5uaW5nVGVzdCA/IDBfcyA6IHNlY29uZHMpOworfQorCit2b2lkIFByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlcjo6Y29udmVydChjb25zdCBTb3VyY2UmIHNvdXJjZSwgY29uc3QgRGVz
dGluYXRpb24mIGRlc3RpbmF0aW9uLCBDb252ZXJzaW9uJiYgY29udmVyc2lvbikKK3sKKyAgICBj
bGVhckV4cGlyZWQoKTsKKworICAgIGlmICghY29udmVyc2lvbi5pc1ZhbGlkKCkpIHsKKyAgICAg
ICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKKyAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJHb3QgYW4gaW52YWxpZCBjb252
ZXJzaW9uLiIpOworICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29s
ZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEdv
dCBhbiBpbnZhbGlkIGNvbnZlcnNpb24uIl9zKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgYXV0byBjb252ZXJzaW9uRGF0YSA9IGNvbnZlcnNpb24uZGF0YTsKKyAg
ICBhdXRvIGNvbnZlcnNpb25Qcmlvcml0eSA9IGNvbnZlcnNpb24ucHJpb3JpdHk7CisKKyAgICBp
ZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICBSRUxFQVNFX0xPR19J
TkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiR290IGEgY29udmVyc2lvbiB3aXRoIGNvbnZl
cnNpb24gZGF0YTogJXtwdWJsaWN9dSBhbmQgcHJpb3JpdHk6ICV7cHVibGljfXUuIiwgY29udmVy
c2lvbkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0eSk7CisgICAgICAgIG1fbmV0d29ya1Byb2Nlc3Mt
PmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbUHJp
dmF0ZSBDbGljayBNZWFzdXJlbWVudF0gR290IGEgY29udmVyc2lvbiB3aXRoIGNvbnZlcnNpb24g
ZGF0YTogJyJfcywgY29udmVyc2lvbkRhdGEsICInIGFuZCBwcmlvcml0eTogJyJfcywgY29udmVy
c2lvblByaW9yaXR5LCAiJy4iX3MpKTsKKyAgICB9CisKKyAgICBhdXRvIHNlY29uZHNVbnRpbFNl
bmQgPSBTZWNvbmRzOjppbmZpbml0eSgpOworCisgICAgYXV0byBwYWlyID0gc3RkOjptYWtlX3Bh
aXIoc291cmNlLCBkZXN0aW5hdGlvbik7CisgICAgYXV0byBwcmV2aW91c2x5VW5jb252ZXJ0ZWRB
dHRyaWJ1dGlvbiA9IG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC50YWtl
KHBhaXIpOworICAgIGF1dG8gcHJldmlvdXNseUNvbnZlcnRlZEF0dHJpYnV0aW9uSXRlciA9IG1f
Y29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuZmluZChwYWlyKTsKKworICAgIGlm
ICghcHJldmlvdXNseVVuY29udmVydGVkQXR0cmlidXRpb24uaXNFbXB0eSgpKSB7CisgICAgICAg
IC8vIEFsd2F5cyBjb252ZXJ0IHRoZSBwZW5kaW5nIGF0dHJpYnV0aW9uIGFuZCByZW1vdmUgaXQg
ZnJvbSB0aGUgdW5jb252ZXJ0ZWQgbWFwLgorICAgICAgICBpZiAoYXV0byBvcHRpb25hbFNlY29u
ZHNVbnRpbFNlbmQgPSBwcmV2aW91c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbi5jb252ZXJ0QW5k
R2V0RWFybGllc3RUaW1lVG9TZW5kKFdURk1vdmUoY29udmVyc2lvbikpKSB7CisgICAgICAgICAg
ICBzZWNvbmRzVW50aWxTZW5kID0gKm9wdGlvbmFsU2Vjb25kc1VudGlsU2VuZDsKKyAgICAgICAg
ICAgIEFTU0VSVChzZWNvbmRzVW50aWxTZW5kICE9IFNlY29uZHM6OmluZmluaXR5KCkpOworCisg
ICAgICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJDb252ZXJ0
ZWQgYSBzdG9yZWQgYWQgY2xpY2sgd2l0aCBjb252ZXJzaW9uIGRhdGE6ICV7cHVibGljfXUgYW5k
IHByaW9yaXR5OiAle3B1YmxpY311LiIsIGNvbnZlcnNpb25EYXRhLCBjb252ZXJzaW9uUHJpb3Jp
dHkpOworICAgICAgICAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVN
ZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCwgTWVzc2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJl
bWVudF0gQ29udmVydGVkIGEgc3RvcmVkIGFkIGNsaWNrIHdpdGggY29udmVyc2lvbiBkYXRhOiAn
Il9zLCBjb252ZXJzaW9uRGF0YSwgIicgYW5kIHByaW9yaXR5OiAnIl9zLCBjb252ZXJzaW9uUHJp
b3JpdHksICInLiJfcykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYg
KHByZXZpb3VzbHlDb252ZXJ0ZWRBdHRyaWJ1dGlvbkl0ZXIgPT0gbV9jb252ZXJ0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hcC5lbmQoKSkKKyAgICAgICAgICAgIG1fY29udmVydGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYXAuYWRkKHBhaXIsIFdURk1vdmUocHJldmlvdXNseVVuY29udmVy
dGVkQXR0cmlidXRpb24pKTsKKyAgICAgICAgZWxzZSBpZiAocHJldmlvdXNseVVuY29udmVydGVk
QXR0cmlidXRpb24uaGFzSGlnaGVyUHJpb3JpdHlUaGFuKHByZXZpb3VzbHlDb252ZXJ0ZWRBdHRy
aWJ1dGlvbkl0ZXItPnZhbHVlKSkgeworICAgICAgICAgICAgLy8gSWYgdGhlIG5ld2x5IGNvbnZl
cnRlZCBhdHRyaWJ1dGlvbiBoYXMgaGlnaGVyIHByaW9yaXR5LCByZXBsYWNlIHRoZSBvbGQgb25l
LgorICAgICAgICAgICAgbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5zZXQo
cGFpciwgV1RGTW92ZShwcmV2aW91c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbikpOworCisgICAg
ICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJSZXBsYWNlZCBh
IHByZXZpb3VzbHkgY29udmVydGVkIGFkIGNsaWNrIHdpdGggYSBuZXcgb25lIHdpdGggY29udmVy
c2lvbiBkYXRhOiAle3B1YmxpY311IGFuZCBwcmlvcml0eTogJXtwdWJsaWN9dSBiZWNhdXNlIGl0
IGhhZCBoaWdoZXIgcHJpb3JpdHkuIiwgY29udmVyc2lvbkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0
eSk7CisgICAgICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1l
c3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
LCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVt
ZW50XSBSZXBsYWNlZCBhIHByZXZpb3VzbHkgY29udmVydGVkIGFkIGNsaWNrIHdpdGggYSBuZXcg
b25lIHdpdGggY29udmVyc2lvbiBkYXRhOiAnIl9zLCBjb252ZXJzaW9uRGF0YSwgIicgYW5kIHBy
aW9yaXR5OiAnIl9zLCBjb252ZXJzaW9uUHJpb3JpdHksICInIGJlY2F1c2UgaXQgaGFkIGhpZ2hl
ciBwcmlvcml0eS4iX3MpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gZWxzZSBp
ZiAocHJldmlvdXNseUNvbnZlcnRlZEF0dHJpYnV0aW9uSXRlciAhPSBtX2NvbnZlcnRlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFwLmVuZCgpKSB7CisgICAgICAgIC8vIElmIHdlIGhhdmUgbm8g
bmV3bHkgY29udmVydGVkIGF0dHJpYnV0aW9uLCByZS1jb252ZXJ0IHRoZSBvbGQgb25lIHRvIHJl
c3BlY3QgdGhlIG5ldyBwcmlvcml0eS4KKyAgICAgICAgaWYgKGF1dG8gb3B0aW9uYWxTZWNvbmRz
VW50aWxTZW5kID0gcHJldmlvdXNseUNvbnZlcnRlZEF0dHJpYnV0aW9uSXRlci0+dmFsdWUuY29u
dmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChXVEZNb3ZlKGNvbnZlcnNpb24pKSkgeworICAg
ICAgICAgICAgc2Vjb25kc1VudGlsU2VuZCA9ICpvcHRpb25hbFNlY29uZHNVbnRpbFNlbmQ7Cisg
ICAgICAgICAgICBBU1NFUlQoc2Vjb25kc1VudGlsU2VuZCAhPSBTZWNvbmRzOjppbmZpbml0eSgp
KTsKKworICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKKyAg
ICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAi
UmUtY29udmVydGVkIGFuIGFkIGNsaWNrIHdpdGggYSBuZXcgb25lIHdpdGggY29udmVyc2lvbiBk
YXRhOiAle3B1YmxpY311IGFuZCBwcmlvcml0eTogJXtwdWJsaWN9dSBiZWNhdXNlIGl0IGhhZCBo
aWdoZXIgcHJpb3JpdHkuIiwgY29udmVyc2lvbkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0eSk7Cisg
ICAgICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2Uo
bV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNz
YWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBS
ZS1jb252ZXJ0ZWQgYW4gYWQgY2xpY2sgd2l0aCBhIG5ldyBvbmUgd2l0aCBjb252ZXJzaW9uIGRh
dGE6ICciX3MsIGNvbnZlcnNpb25EYXRhLCAiJyBhbmQgcHJpb3JpdHk6ICciX3MsIGNvbnZlcnNp
b25Qcmlvcml0eSwgIicnIGJlY2F1c2UgaXQgaGFkIGhpZ2hlciBwcmlvcml0eS4iX3MpKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChzZWNvbmRzVW50aWxTZW5k
ID09IFNlY29uZHM6OmluZmluaXR5KCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBpZiAo
bV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVyLmlzQWN0aXZlKCkgJiYgbV9maXJl
UGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVyLm5leHRGaXJlSW50ZXJ2YWwoKSA8IHNlY29u
ZHNVbnRpbFNlbmQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChVTkxJS0VMWShkZWJ1Z01v
ZGVFbmFibGVkKCkpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQsICJTZXR0aW5nIHRpbWVyIGZvciBmaXJpbmcgY29udmVyc2lvbiByZXF1ZXN0cyB0
byB0aGUgZGVidWcgbW9kZSB0aW1lb3V0IG9mICV7cHVibGljfWYgc2Vjb25kcyB3aGVyZSB0aGUg
cmVndWxhciB0aW1lb3V0IHdvdWxkIGhhdmUgYmVlbiAle3B1YmxpY31mIHNlY29uZHMuIiwgZGVi
dWdNb2RlU2Vjb25kc1VudGlsU2VuZC5zZWNvbmRzKCksIHNlY29uZHNVbnRpbFNlbmQuc2Vjb25k
cygpKTsKKyAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2Uo
bV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNz
YWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBT
ZXR0aW5nIHRpbWVyIGZvciBmaXJpbmcgY29udmVyc2lvbiByZXF1ZXN0cyB0byB0aGUgZGVidWcg
bW9kZSB0aW1lb3V0IG9mICJfcywgZGVidWdNb2RlU2Vjb25kc1VudGlsU2VuZC5zZWNvbmRzKCks
ICIgc2Vjb25kcyB3aGVyZSB0aGUgcmVndWxhciB0aW1lb3V0IHdvdWxkIGhhdmUgYmVlbiAiX3Ms
IHNlY29uZHNVbnRpbFNlbmQuc2Vjb25kcygpLCAiIHNlY29uZHMuIl9zKSk7CisgICAgICAgIHNl
Y29uZHNVbnRpbFNlbmQgPSBkZWJ1Z01vZGVTZWNvbmRzVW50aWxTZW5kOworICAgIH0KKworICAg
IHN0YXJ0VGltZXIoc2Vjb25kc1VudGlsU2VuZCk7Cit9CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJlcXVlc3QoY29uc3QgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQmIGF0dHJpYnV0aW9uKQoreworICAgIGF1dG8gY29udmVyc2lvblVSTCA9IG1f
Y29udmVyc2lvbkJhc2VVUkxGb3JUZXN0aW5nID8gKm1fY29udmVyc2lvbkJhc2VVUkxGb3JUZXN0
aW5nIDogYXR0cmlidXRpb24ucmVwb3J0VVJMKCk7CisgICAgaWYgKGNvbnZlcnNpb25VUkwuaXNF
bXB0eSgpIHx8ICFjb252ZXJzaW9uVVJMLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgeyBXVEZNb3ZlKGNvbnZlcnNpb25VUkwpIH07Cisg
ICAgCisgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKCJQT1NUIl9zKTsKKyAgICByZXF1ZXN0LnNl
dEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q2FjaGVDb250cm9sLCBXZWJDb3JlOjpI
VFRQSGVhZGVyVmFsdWVzOjptYXhBZ2UwKCkpOworCisgICAgcmVxdWVzdC5zZXRIVFRQQ29udGVu
dFR5cGUoV2ViQ29yZTo6SFRUUEhlYWRlclZhbHVlczo6YXBwbGljYXRpb25KU09OQ29udGVudFR5
cGUoKSk7CisgICAgcmVxdWVzdC5zZXRIVFRQQm9keShXZWJDb3JlOjpGb3JtRGF0YTo6Y3JlYXRl
KGF0dHJpYnV0aW9uLmpzb24oKS0+dG9KU09OU3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworCisg
ICAgRmV0Y2hPcHRpb25zIG9wdGlvbnM7CisgICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IEZldGNo
T3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9taXQ7CisgICAgb3B0aW9ucy5yZWRpcmVjdCA9IEZldGNo
T3B0aW9uczo6UmVkaXJlY3Q6OkVycm9yOworCisgICAgc3RhdGljIHVpbnQ2NF90IGlkZW50aWZp
ZXIgPSAwOworICAgIAorICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJh
bWV0ZXJzOworICAgIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIgPSArK2lkZW50aWZpZXI7Cisg
ICAgbG9hZFBhcmFtZXRlcnMucmVxdWVzdCA9IHJlcXVlc3Q7CisgICAgbG9hZFBhcmFtZXRlcnMu
cGFyZW50UElEID0gcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisgICAgbG9hZFBhcmFtZXRl
cnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RXBo
ZW1lcmFsU3RhdGVsZXNzOworICAgIGxvYWRQYXJhbWV0ZXJzLm9wdGlvbnMgPSBvcHRpb25zOwor
ICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QgPSB0cnVlOworICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFJlc3RyaWN0SFRUUFJlc3BvbnNl
QWNjZXNzID0gZmFsc2U7CisKKyAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkg
eworICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiQWJv
dXQgdG8gZmlyZSBhbiBhdHRyaWJ1dGlvbiByZXF1ZXN0IGZvciBhIGNvbnZlcnNpb24uIik7Cisg
ICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lv
bklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVs
OjpFcnJvciwgIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBBYm91dCB0byBmaXJlIGFuIGF0
dHJpYnV0aW9uIHJlcXVlc3QgZm9yIGEgY29udmVyc2lvbi4iX3MpOworICAgIH0KKworICAgIG1f
cGluZ0xvYWRGdW5jdGlvbihXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzKSwgW3dlYWtUaGlzID0gbWFr
ZVdlYWtQdHIoKnRoaXMpXShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpIHsKKyAgICAgICAgaWYgKCF3
ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoVU5MSUtFTFkod2Vh
a1RoaXMtPmRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKKyAgICAgICAgICAgIGlmICghZXJyb3IuaXNO
dWxsKCkpIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIlJlY2VpdmVkIGVycm9yOiAnJXtwdWJs
aWN9cycgZm9yIGFkIGNsaWNrIGF0dHJpYnV0aW9uIHJlcXVlc3QuIiwgZXJyb3IubG9jYWxpemVk
RGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKTsKKyNlbHNlCisgICAgICAgICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJSZWNlaXZlZCBlcnJvcjog
JyVzJyBmb3IgYWQgY2xpY2sgYXR0cmlidXRpb24gcmVxdWVzdC4iLCBlcnJvci5sb2NhbGl6ZWRE
ZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAgd2Vh
a1RoaXMtPm1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKHdlYWtUaGlz
LT5tX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1l
c3NhZ2VMZXZlbDo6RXJyb3IsIG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50
XSBSZWNlaXZlZCBlcnJvcjogJyJfcywgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSwgIicg
Zm9yIGFkIGNsaWNrIGF0dHJpYnV0aW9uIHJlcXVlc3QuIl9zKSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICB9KTsKK30KKwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OmZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzKCkKK3sKKyAgICBhdXRvIG5leHRUaW1l
VG9GaXJlID0gU2Vjb25kczo6aW5maW5pdHkoKTsKKyAgICBmb3IgKGF1dG8mIGF0dHJpYnV0aW9u
IDogbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC52YWx1ZXMoKSkgeworICAg
ICAgICBpZiAoYXR0cmlidXRpb24ud2FzQ29udmVyc2lvblNlbnQoKSkgeworICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQor
ICAgICAgICBhdXRvIGVhcmxpZXN0VGltZVRvU2VuZCA9IGF0dHJpYnV0aW9uLmVhcmxpZXN0VGlt
ZVRvU2VuZCgpOworICAgICAgICBpZiAoIWVhcmxpZXN0VGltZVRvU2VuZCkgeworICAgICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
fQorCisgICAgICAgIGF1dG8gbm93ID0gV2FsbFRpbWU6Om5vdygpOworICAgICAgICBpZiAoKmVh
cmxpZXN0VGltZVRvU2VuZCA8PSBub3cgfHwgbV9pc1J1bm5pbmdUZXN0IHx8IGRlYnVnTW9kZUVu
YWJsZWQoKSkgeworICAgICAgICAgICAgZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGF0dHJpYnV0aW9u
KTsKKyAgICAgICAgICAgIGF0dHJpYnV0aW9uLm1hcmtDb252ZXJzaW9uQXNTZW50KCk7CisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gc2Vjb25kcyA9ICpl
YXJsaWVzdFRpbWVUb1NlbmQgLSBub3c7CisgICAgICAgIG5leHRUaW1lVG9GaXJlID0gc3RkOjpt
aW4obmV4dFRpbWVUb0ZpcmUsIHNlY29uZHMpOworICAgIH0KKworICAgIG1fY29udmVydGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAucmVtb3ZlSWYoW10oYXV0byYga2V5QW5kVmFsdWUpIHsK
KyAgICAgICAgcmV0dXJuIGtleUFuZFZhbHVlLnZhbHVlLndhc0NvbnZlcnNpb25TZW50KCk7Cisg
ICAgfSk7CisKKyAgICBpZiAobmV4dFRpbWVUb0ZpcmUgPCBTZWNvbmRzOjppbmZpbml0eSgpKQor
ICAgICAgICBzdGFydFRpbWVyKG5leHRUaW1lVG9GaXJlKTsKK30KKwordm9pZCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXI6OmNsZWFyKCkKK3sKKyAgICBtX2ZpcmVQZW5kaW5nQ29udmVy
c2lvblJlcXVlc3RzVGltZXIuc3RvcCgpOworICAgIG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hcC5jbGVhcigpOworICAgIG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYXAuY2xlYXIoKTsKK30KKwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OmNsZWFyRm9yUmVnaXN0cmFibGVEb21haW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRv
bWFpbikKK3sKKyAgICBtX3VuY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAucmVt
b3ZlSWYoWyZkb21haW5dKGF1dG8mIGtleUFuZFZhbHVlKSB7CisgICAgICAgIHJldHVybiBrZXlB
bmRWYWx1ZS5rZXkuZmlyc3QucmVnaXN0cmFibGVEb21haW4gPT0gZG9tYWluIHx8IGtleUFuZFZh
bHVlLmtleS5zZWNvbmQucmVnaXN0cmFibGVEb21haW4gPT0gZG9tYWluOworICAgIH0pOworCisg
ICAgbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5yZW1vdmVJZihbJmRvbWFp
bl0oYXV0byYga2V5QW5kVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIGtleUFuZFZhbHVlLmtleS5m
aXJzdC5yZWdpc3RyYWJsZURvbWFpbiA9PSBkb21haW4gfHwga2V5QW5kVmFsdWUua2V5LnNlY29u
ZC5yZWdpc3RyYWJsZURvbWFpbiA9PSBkb21haW47CisgICAgfSk7Cit9CisKK3ZvaWQgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpjbGVhckV4cGlyZWQoKQoreworICAgIG1fdW5jb252
ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5yZW1vdmVJZihbXShhdXRvJiBrZXlBbmRW
YWx1ZSkgeworICAgICAgICByZXR1cm4ga2V5QW5kVmFsdWUudmFsdWUuaGFzRXhwaXJlZCgpOwor
ICAgIH0pOworfQorCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6dG9TdHJp
bmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBj
b25zdAoreworICAgIGlmIChtX3VuY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAu
aXNFbXB0eSgpICYmIG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoIlxuTm8gc3RvcmVkIFByaXZh
dGUgQ2xpY2sgTWVhc3VyZW1lbnQgZGF0YS5cbiJfcyk7CisKKyAgICB1bnNpZ25lZCB1bmNvbnZl
cnRlZEF0dHJpYnV0aW9uTnVtYmVyID0gMDsKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Cisg
ICAgZm9yIChhdXRvJiBhdHRyaWJ1dGlvbiA6IG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hcC52YWx1ZXMoKSkgeworICAgICAgICBpZiAoIXVuY29udmVydGVkQXR0cmlidXRp
b25OdW1iZXIpCisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlVuY29udmVydGVk
IFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOlxuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
IldlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50ICIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZE51bWJlcigrK3VuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpOworICAgICAgICBidWls
ZGVyLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoYXR0cmlidXRpb24udG9T
dHJpbmcoKSk7Cit9CisKKyAgICB1bnNpZ25lZCBjb252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlciA9
IDA7CisgICAgZm9yIChhdXRvJiBhdHRyaWJ1dGlvbiA6IG1fY29udmVydGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYXAudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKHVuY29udmVydGVkQXR0cmli
dXRpb25OdW1iZXIpCisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKKyAgICAgICAg
aWYgKCFjb252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlcikKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiQ29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOlxuIik7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIldlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50ICIp
OworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcigrK2NvbnZlcnRlZEF0dHJpYnV0aW9uTnVt
YmVyICsgdW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlcik7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCdcbicpOworICAgICAgICBidWlsZGVyLmFwcGVuZChhdHRyaWJ1dGlvbi50b1N0cmluZygp
KTsKKyAgICB9CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcihidWlsZGVyLnRvU3RyaW5nKCkpOwor
fQorCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c2V0Q29udmVyc2lvblVS
TEZvclRlc3RpbmcoVVJMJiYgdGVzdFVSTCkKK3sKKyAgICBpZiAodGVzdFVSTC5pc0VtcHR5KCkp
CisgICAgICAgIG1fY29udmVyc2lvbkJhc2VVUkxGb3JUZXN0aW5nID0geyB9OworICAgIGVsc2UK
KyAgICAgICAgbV9jb252ZXJzaW9uQmFzZVVSTEZvclRlc3RpbmcgPSBXVEZNb3ZlKHRlc3RVUkwp
OworfQorCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6bWFya0FsbFVuY29u
dmVydGVkQXNFeHBpcmVkRm9yVGVzdGluZygpCit7CisgICAgZm9yIChhdXRvJiBhdHRyaWJ1dGlv
biA6IG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC52YWx1ZXMoKSkKKyAg
ICAgICAgYXR0cmlidXRpb24ubWFya0FzRXhwaXJlZCgpOworfQorCitib29sIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6ZGVidWdNb2RlRW5hYmxlZCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkucHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkKCkgJiYgIW1fc2Vzc2lvbklELmlzRXBoZW1lcmFs
KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDNkNDM3MWI2N2RmNTk4OTJmYjdlYmQ0NWE1MTQ5ZDJlOWQ4YmQ2MQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VyLmgKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRlICJOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZVJlc3BvbnNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgorI2luY2x1ZGUgPHBh
bC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisKKyAgICB1c2luZyBSZWdpc3RyYWJsZURvbWFpbiA9IFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluOworICAgIHVzaW5nIFByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CisgICAgdXNpbmcgU291cmNlID0gV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTsKKyAgICB1c2luZyBEZXN0aW5hdGlvbiA9
IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbjsKKyAgICB1c2lu
ZyBDb252ZXJzaW9uID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNp
b247CisKKyAgICBleHBsaWNpdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIoTmV0d29y
a1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAg
ICAgIDogbV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVyKCp0aGlzLCAmUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0cykK
KyAgICAgICAgLCBtX3BpbmdMb2FkRnVuY3Rpb24oW10oTmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnMmJiBwYXJhbXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikgeworICAgICAgICAgICAgVU5VU0VEX1BBUkFNKHBhcmFtcyk7CisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpSZXNvdXJjZUVycm9yKCksIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UoKSk7CisgICAgICAgIH0pCisgICAgICAgICwgbV9uZXR3b3JrUHJv
Y2VzcyhuZXR3b3JrUHJvY2VzcykKKyAgICAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCisg
ICAgeworICAgIH0KKworICAgIHZvaWQgc3RvcmVVbmNvbnZlcnRlZChQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCYmKTsKKyAgICB2b2lkIGhhbmRsZUNvbnZlcnNpb24oQ29udmVyc2lvbiYmLCBjb25z
dCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJl
Y3RSZXF1ZXN0KTsKKyAgICB2b2lkIGNsZWFyKCk7CisgICAgdm9pZCBjbGVhckZvclJlZ2lzdHJh
YmxlRG9tYWluKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7CisgICAgdm9pZCB0b1N0cmluZyhD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpIGNvbnN0OworICAgIHZvaWQgc2V0UGlu
Z0xvYWRGdW5jdGlvbihGdW5jdGlvbjx2b2lkKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKT4mJik+JiYgcGluZ0xvYWRGdW5jdGlv
bikgeyBtX3BpbmdMb2FkRnVuY3Rpb24gPSBXVEZNb3ZlKHBpbmdMb2FkRnVuY3Rpb24pOyB9Cisg
ICAgdm9pZCBzZXRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHVlKSB7IG1faXNSdW5u
aW5nVGVzdCA9IHZhbHVlOyB9CisgICAgdm9pZCBzZXRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhV
UkwmJik7CisgICAgdm9pZCBtYXJrQWxsVW5jb252ZXJ0ZWRBc0V4cGlyZWRGb3JUZXN0aW5nKCk7
CisKK3ByaXZhdGU6CisgICAgdm9pZCBzdGFydFRpbWVyKFNlY29uZHMpOworICAgIHZvaWQgY29u
dmVydChjb25zdCBTb3VyY2UmLCBjb25zdCBEZXN0aW5hdGlvbiYsIENvbnZlcnNpb24mJik7Cisg
ICAgdm9pZCBmaXJlQ29udmVyc2lvblJlcXVlc3QoY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQmKTsKKyAgICB2b2lkIGZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzKCk7CisgICAgdm9p
ZCBjbGVhckV4cGlyZWQoKTsKKyAgICBib29sIGRlYnVnTW9kZUVuYWJsZWQoKSBjb25zdDsKKwor
ICAgIEhhc2hNYXA8c3RkOjpwYWlyPFNvdXJjZSwgRGVzdGluYXRpb24+LCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudD4gbV91bmNvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwOworICAg
IEhhc2hNYXA8c3RkOjpwYWlyPFNvdXJjZSwgRGVzdGluYXRpb24+LCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudD4gbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcDsKKyAgICBXZWJD
b3JlOjpUaW1lciBtX2ZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzVGltZXI7CisgICAgRnVu
Y3Rpb248dm9pZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJik+JiYpPiBtX3BpbmdMb2FkRnVuY3Rpb247CisgICAgYm9vbCBtX2lz
UnVubmluZ1Rlc3QgeyBmYWxzZSB9OworICAgIE9wdGlvbmFsPFVSTD4gbV9jb252ZXJzaW9uQmFz
ZVVSTEZvclRlc3Rpbmc7CisgICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9jZXNz
OworICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOworfTsKKyAgICAKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCAzMjVhNDZmZmM1OTk0MTk0
MTEyNDk2ODZkZjdhYzUyZWJhOWJhMTE1Li4yMGRjYzVlODY0MWQ0Mzg3ZWQzNTk3MjhkZGE3NTNm
ZTViYmYwNzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaApAQCAtNDEsNyArNDEsNyBAQCBl
eHRlcm4gIkMiIHsKIAogI2RlZmluZSBXRUJLSVQyX0xPR19DSEFOTkVMUyhNKSBcCiAgICAgTShB
Y3Rpdml0eVN0YXRlKSBcCi0gICAgTShBZENsaWNrQXR0cmlidXRpb24pIFwKKyAgICBNKFByaXZh
dGVDbGlja01lYXN1cmVtZW50KSBcCiAgICAgTShBcHBTU08pIFwKICAgICBNKEF1dG9tYXRpb24p
IFwKICAgICBNKEF1dG9tYXRpb25JbnRlcmFjdGlvbnMpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmNwcAppbmRleCAwMmY3Mzg4NGE3M2QxYzQ5ZTY5ZmE5
YTJlYTM0MDRiZTY1ZWE3NTMwLi40YjJhNTYyYzRhN2Q3NThiYzQ3NTlhMmQ2ZDZhYzIzMjdjNWYx
MGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0
YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuY3Bw
CkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgTmF2aWdhdGlvbkFjdGlvbkRhdGE6OmVuY29kZShJUEM6
OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBsb2NrSGlzdG9yeTsKICAg
ICBlbmNvZGVyIDw8IGxvY2tCYWNrRm9yd2FyZExpc3Q7CiAgICAgZW5jb2RlciA8PCBjbGllbnRS
ZWRpcmVjdFNvdXJjZUZvckhpc3Rvcnk7Ci0gICAgZW5jb2RlciA8PCBhZENsaWNrQXR0cmlidXRp
b247CisgICAgZW5jb2RlciA8PCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKIH0KIAogT3B0aW9u
YWw8TmF2aWdhdGlvbkFjdGlvbkRhdGE+IE5hdmlnYXRpb25BY3Rpb25EYXRhOjpkZWNvZGUoSVBD
OjpEZWNvZGVyJiBkZWNvZGVyKQpAQCAtMTQ2LDE1ICsxNDYsMTUgQEAgT3B0aW9uYWw8TmF2aWdh
dGlvbkFjdGlvbkRhdGE+IE5hdmlnYXRpb25BY3Rpb25EYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVy
JiBkZWNvZGUKICAgICBpZiAoIWNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSkKICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIE9wdGlvbmFsPE9wdGlvbmFsPFdlYkNvcmU6
OkFkQ2xpY2tBdHRyaWJ1dGlvbj4+IGFkQ2xpY2tBdHRyaWJ1dGlvbjsKLSAgICBkZWNvZGVyID4+
IGFkQ2xpY2tBdHRyaWJ1dGlvbjsKLSAgICBpZiAoIWFkQ2xpY2tBdHRyaWJ1dGlvbikKKyAgICBP
cHRpb25hbDxPcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4+IHByaXZh
dGVDbGlja01lYXN1cmVtZW50OworICAgIGRlY29kZXIgPj4gcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ7CisgICAgaWYgKCFwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkKICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKIAogICAgIHJldHVybiB7eyBXVEZNb3ZlKG5hdmlnYXRpb25UeXBlKSwgbW9k
aWZpZXJzLCBXVEZNb3ZlKG1vdXNlQnV0dG9uKSwgV1RGTW92ZShzeW50aGV0aWNDbGlja1R5cGUp
LCBXVEZNb3ZlKCp1c2VyR2VzdHVyZVRva2VuSWRlbnRpZmllciksCiAgICAgICAgIFdURk1vdmUo
KmNhbkhhbmRsZVJlcXVlc3QpLCBXVEZNb3ZlKHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kp
LCBXVEZNb3ZlKCpkb3dubG9hZEF0dHJpYnV0ZSksIFdURk1vdmUoY2xpY2tMb2NhdGlvbkluUm9v
dFZpZXdDb29yZGluYXRlcyksCiAgICAgICAgIFdURk1vdmUoKmlzUmVkaXJlY3QpLCAqdHJlYXRB
c1NhbWVPcmlnaW5OYXZpZ2F0aW9uLCAqaGFzT3BlbmVkRnJhbWVzLCAqb3BlbmVkQnlET01XaXRo
T3BlbmVyLCBXVEZNb3ZlKCpyZXF1ZXN0ZXJPcmlnaW4pLAotICAgICAgICBXVEZNb3ZlKCp0YXJn
ZXRCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyKSwgV1RGTW92ZSgqc291cmNlQmFja0ZvcndhcmRJ
dGVtSWRlbnRpZmllciksIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0LCBXVEZNb3Zl
KCpjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkpLCBXVEZNb3ZlKCphZENsaWNrQXR0cmli
dXRpb24pIH19OworICAgICAgICBXVEZNb3ZlKCp0YXJnZXRCYWNrRm9yd2FyZEl0ZW1JZGVudGlm
aWVyKSwgV1RGTW92ZSgqc291cmNlQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciksIGxvY2tIaXN0
b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0LCBXVEZNb3ZlKCpjbGllbnRSZWRpcmVjdFNvdXJjZUZv
ckhpc3RvcnkpLCBXVEZNb3ZlKCpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkgfX07CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2
aWdhdGlvbkFjdGlvbkRhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rp
b25EYXRhLmgKaW5kZXggY2JkNzcwZTU3ZjNlYTdkNGZjODkyZGNlYWY0NGRmYWZjMGI1ZjRkZC4u
MzE5ZjJmOTgyZmM1MGFiMzQwYjRjNjI4NWY3OTFlMGU0ZTUzYmM2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oCkBAIC0yNiwxMCArMjYsMTAgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgotI2luY2x1ZGUgPFdlYkNv
cmUvQWRDbGlja0F0dHJpYnV0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9CYWNrRm9yd2FyZEl0
ZW1JZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRh
Lmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtNjIsNyArNjIsNyBAQCBzdHJ1Y3QgTmF2aWdhdGlv
bkFjdGlvbkRhdGEgewogICAgIFdlYkNvcmU6OkxvY2tIaXN0b3J5IGxvY2tIaXN0b3J5IHsgV2Vi
Q29yZTo6TG9ja0hpc3Rvcnk6Ok5vIH07CiAgICAgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlz
dCBsb2NrQmFja0ZvcndhcmRMaXN0IHsgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8g
fTsKICAgICBXVEY6OlN0cmluZyBjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rvcnk7Ci0gICAg
T3B0aW9uYWw8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uPiBhZENsaWNrQXR0cmlidXRpb247
CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IHByaXZhdGVD
bGlja01lYXN1cmVtZW50OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGEuY3BwCmluZGV4IGI2YzkxODQwOWYwMWEwZDJlMzY1YTMzMGNl
ZmVlNzc3NzZiYWZmMGEuLmFlYzE1ZTVkMzgxYWQxYmRiMTE5N2YzNzRkM2IwMDdkNDNiNTJiOGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5j
cHAKQEAgLTEzMyw3ICsxMzMsNyBAQCBXZWJzaXRlRGF0YVByb2Nlc3NUeXBlIFdlYnNpdGVEYXRh
Ojpvd25lclByb2Nlc3MoV2Vic2l0ZURhdGFUeXBlIGRhdGFUeXBlKQogICAgICAgICByZXR1cm4g
V2Vic2l0ZURhdGFQcm9jZXNzVHlwZTo6TmV0d29yazsKICAgICBjYXNlIFdlYnNpdGVEYXRhVHlw
ZTo6RGV2aWNlSWRIYXNoU2FsdDoKICAgICAgICAgcmV0dXJuIFdlYnNpdGVEYXRhUHJvY2Vzc1R5
cGU6OlVJOwotICAgIGNhc2UgV2Vic2l0ZURhdGFUeXBlOjpBZENsaWNrQXR0cmlidXRpb25zOgor
ICAgIGNhc2UgV2Vic2l0ZURhdGFUeXBlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHM6CiAgICAg
ICAgIHJldHVybiBXZWJzaXRlRGF0YVByb2Nlc3NUeXBlOjpOZXR3b3JrOwogI2lmIEhBVkUoQ0ZO
RVRXT1JLX0FMVEVSTkFUSVZFX1NFUlZJQ0UpCiAgICAgY2FzZSBXZWJzaXRlRGF0YVR5cGU6OkFs
dGVybmF0aXZlU2VydmljZXM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVR5cGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhVHlwZS5oCmluZGV4IDY2MzVkYzU3ZDkwMTY4YjQxMWJiZjkxMDczYTI2
MDUzNTY3NzAyOGQuLjM1ZjcyOTk0MTZjYjlkNGZiMDJiZjk1NjMzMTgyNmExNGM4YTdkNjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhVHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhVHlw
ZS5oCkBAIC01MSw3ICs1MSw3IEBAIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBlIDogdWludDMy
X3QgewogI2VuZGlmCiAgICAgRE9NQ2FjaGUgPSAxIDw8IDE1LAogICAgIERldmljZUlkSGFzaFNh
bHQgPSAxIDw8IDE2LAotICAgIEFkQ2xpY2tBdHRyaWJ1dGlvbnMgPSAxIDw8IDE3LAorICAgIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50cyA9IDEgPDwgMTcsCiAjaWYgSEFWRShDRk5FVFdPUktfQUxU
RVJOQVRJVkVfU0VSVklDRSkKICAgICBBbHRlcm5hdGl2ZVNlcnZpY2VzID0gMSA8PCAxOCwKICNl
bmRpZgpAQCAtODUsNyArODUsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktp
dDo6V2Vic2l0ZURhdGFUeXBlPiB7CiAjZW5kaWYKICAgICAgICAgV2ViS2l0OjpXZWJzaXRlRGF0
YVR5cGU6OkRPTUNhY2hlLAogICAgICAgICBXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZTo6RGV2aWNl
SWRIYXNoU2FsdCwKLSAgICAgICAgV2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU6OkFkQ2xpY2tBdHRy
aWJ1dGlvbnMKKyAgICAgICAgV2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50cwogI2lmIEhBVkUoQ0ZORVRXT1JLX0FMVEVSTkFUSVZFX1NFUlZJQ0UpCiAgICAg
ICAgICwgV2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU6OkFsdGVybmF0aXZlU2VydmljZXMKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKaW5kZXggODNkMjgwYzc1ZWY1ZjViYjBhMmViNmQxMWFhOGMwZmE5MTliNzRk
MC4uMzI5YmVkMDFiZDI0ZmI4YjEyN2U2Yjk5NTI1NTgwZTdmMjQ0MGE2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CkBAIC01MSw3ICs1MSw3IEBAIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllci5jcHAKIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXIuY3BwCiAKIAotTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9u
TWFuYWdlci5jcHAKK05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ci5jcHAKIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuY3BwCiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwCiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJTmF2aWdhdGlvbi5oCmluZGV4IGQ4NjhmOGIyMzNlZTZmYTU1ODczNzE5MTM3ZjRj
MzFjMTI4YzdlYzYuLjE5MDk1ZGE0ODY2MWI4NWMwOTQ2MmVhZWIxNWNmMWZlZjQxYTkxNDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uaApAQCAtMzIsNyAr
MzIsNyBAQAogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKICNpbmNsdWRlICJXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtLmgiCiAjaW5jbHVkZSAiV2ViQ29udGVudE1vZGUuaCIKLSNpbmNsdWRl
IDxXZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgpAQCAtMTUzLDcgKzE1Myw3IEBAIHB1YmxpYzoKIAog
ICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxTdWJzdGl0dXRlRGF0YT4mIHN1YnN0aXR1dGVEYXRh
KCkgY29uc3QgeyByZXR1cm4gbV9zdWJzdGl0dXRlRGF0YTsgfQogCi0gICAgY29uc3QgT3B0aW9u
YWw8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uPiYgYWRDbGlja0F0dHJpYnV0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9sYXN0TmF2aWdhdGlvbkFjdGlvbi5hZENsaWNrQXR0cmlidXRpb247IH0K
KyAgICBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mIHBy
aXZhdGVDbGlja01lYXN1cmVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TmF2aWdhdGlvbkFj
dGlvbi5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsgfQogCiAgICAgdm9pZCBzZXRDbGllbnROYXZp
Z2F0aW9uQWN0aXZpdHkoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpBY3Rpdml0eVZhcmlhbnQm
JiBhY3Rpdml0eSkgeyBtX2NsaWVudE5hdmlnYXRpb25BY3Rpdml0eSA9IFdURk1vdmUoYWN0aXZp
dHkpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDQz
NjljZGQ4MjViNTE1N2ZiMDEwYzNmODFhZTc4ZTY2MGRhYTc0ZmMuLmU3NmUwMDc4MGE0MTQ2NjIw
NWVhMjlmNjEyMDU1M2I2YjNhNmU0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcApAQCAtMjg4MCwzNyArMjg4MCwzNyBAQCB2b2lkIFdLUGFnZUdldEFwcGxpY2F0
aW9uTWFuaWZlc3RfYihXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlR2V0QXBwbGljYXRpb25NYW5pZmVz
dAogfQogI2VuZGlmCiAKLXZvaWQgV0tQYWdlRHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbihXS1BhZ2VS
ZWYgcGFnZSwgV0tQYWdlRHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbkZ1bmN0aW9uIGNhbGxiYWNrLCB2
b2lkKiBjYWxsYmFja0NvbnRleHQpCit2b2lkIFdLUGFnZUR1bXBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudChXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlRHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50RnVu
Y3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCkKIHsKLSAgICB0b0ltcGwocGFn
ZSktPmR1bXBBZENsaWNrQXR0cmlidXRpb24oW2NhbGxiYWNrQ29udGV4dCwgY2FsbGJhY2tdIChj
b25zdCBTdHJpbmcmIGFkQ2xpY2tBdHRyaWJ1dGlvbikgewotICAgICAgICBjYWxsYmFjayhXZWJL
aXQ6OnRvQVBJKGFkQ2xpY2tBdHRyaWJ1dGlvbi5pbXBsKCkpLCBjYWxsYmFja0NvbnRleHQpOwor
ICAgIHRvSW1wbChwYWdlKS0+ZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KFtjYWxsYmFja0Nv
bnRleHQsIGNhbGxiYWNrXSAoY29uc3QgU3RyaW5nJiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkg
eworICAgICAgICBjYWxsYmFjayhXZWJLaXQ6OnRvQVBJKHByaXZhdGVDbGlja01lYXN1cmVtZW50
LmltcGwoKSksIGNhbGxiYWNrQ29udGV4dCk7CiAgICAgfSk7CiB9CiAKLXZvaWQgV0tQYWdlQ2xl
YXJBZENsaWNrQXR0cmlidXRpb24oV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZUNsZWFyQWRDbGlja0F0
dHJpYnV0aW9uRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCkKK3ZvaWQg
V0tQYWdlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXS1BhZ2VSZWYgcGFnZSwgV0tQYWdl
Q2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZ1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxs
YmFja0NvbnRleHQpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5jbGVhckFkQ2xpY2tBdHRyaWJ1dGlv
bihbY2FsbGJhY2tDb250ZXh0LCBjYWxsYmFja10gKCkgeworICAgIHRvSW1wbChwYWdlKS0+Y2xl
YXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChbY2FsbGJhY2tDb250ZXh0LCBjYWxsYmFja10gKCkg
ewogICAgICAgICBjYWxsYmFjayhjYWxsYmFja0NvbnRleHQpOwogICAgIH0pOwogfQogCi12b2lk
IFdLUGFnZVNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFdLUGFn
ZVJlZiBwYWdlLCBib29sIHZhbHVlLCBXS1BhZ2VTZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlk
ZVRpbWVyRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQp
Cit2b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRl
c3RpbmcoV0tQYWdlUmVmIHBhZ2UsIGJvb2wgdmFsdWUsIFdLUGFnZVNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCog
Y2FsbGJhY2tDb250ZXh0KQogewotICAgIHRvSW1wbChwYWdlKS0+c2V0QWRDbGlja0F0dHJpYnV0
aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmcodmFsdWUsIFtjYWxsYmFja0NvbnRleHQsIGNhbGxi
YWNrXSAoKSB7CisgICAgdG9JbXBsKHBhZ2UpLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92
ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHZhbHVlLCBbY2FsbGJhY2tDb250ZXh0LCBjYWxsYmFja10g
KCkgewogICAgICAgICBjYWxsYmFjayhjYWxsYmFja0NvbnRleHQpOwogICAgIH0pOwogfQogCi12
b2lkIFdLUGFnZVNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdL
UGFnZVJlZiBwYWdlLCBXS1VSTFJlZiBVUkxSZWYsIFdLUGFnZVNldEFkQ2xpY2tBdHRyaWJ1dGlv
bkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNr
Q29udGV4dCkKK3ZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9u
VVJMRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZWYgVVJMUmVmLCBXS1BhZ2VTZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nRnVuY3Rpb24gY2Fs
bGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCkKIHsKLSAgICB0b0ltcGwocGFnZSktPnNldEFk
Q2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTChVUkwoKSwgdG9XVEZT
dHJpbmcoVVJMUmVmKSksIFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAoKSB7CisgICAgdG9J
bXBsKHBhZ2UpLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0
aW5nKFVSTChVUkwoKSwgdG9XVEZTdHJpbmcoVVJMUmVmKSksIFtjYWxsYmFja0NvbnRleHQsIGNh
bGxiYWNrXSAoKSB7CiAgICAgICAgIGNhbGxiYWNrKGNhbGxiYWNrQ29udGV4dCk7CiAgICAgfSk7
CiB9CiAKLXZvaWQgV0tQYWdlTWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0
aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VNYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJl
ZEZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KQordm9p
ZCBXS1BhZ2VNYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhX
S1BhZ2VSZWYgcGFnZSwgV0tQYWdlTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJl
ZEZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KQogewot
ICAgIHRvSW1wbChwYWdlKS0+bWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0
aW5nKFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAoKSB7CisgICAgdG9JbXBsKHBhZ2UpLT5t
YXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhbY2FsbGJhY2tD
b250ZXh0LCBjYWxsYmFja10gKCkgewogICAgICAgICBjYWxsYmFjayhjYWxsYmFja0NvbnRleHQp
OwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJp
dmF0ZS5oCmluZGV4IDIwZDNlZTk2ZjhhY2QzZWFkMmM3YjczNDEyYmQwNDE2ZTkzZjY0YTYuLmZi
ZDYxMTlhZmExMWFlMDVhMjJhNjNhNjQ0NzhmM2M4NmRmODIxOGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKQEAgLTE2OSwxNiArMTY5LDE2IEBA
IHR5cGVkZWYgdm9pZCAoXldLUGFnZUdldEFwcGxpY2F0aW9uTWFuaWZlc3RCbG9jaykodm9pZCk7
CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VHZXRBcHBsaWNhdGlvbk1hbmlmZXN0X2IoV0tQYWdlUmVm
IHBhZ2UsIFdLUGFnZUdldEFwcGxpY2F0aW9uTWFuaWZlc3RCbG9jayBibG9jayk7CiAjZW5kaWYK
IAotdHlwZWRlZiB2b2lkICgqV0tQYWdlRHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbkZ1bmN0aW9uKShX
S1N0cmluZ1JlZiBhZENsaWNrQXR0cmlidXRpb25SZXByZXNlbnRhdGlvbiwgdm9pZCogZnVuY3Rp
b25Db250ZXh0KTsKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZUR1bXBBZENsaWNrQXR0cmlidXRpb24o
V0tQYWdlUmVmLCBXS1BhZ2VEdW1wQWRDbGlja0F0dHJpYnV0aW9uRnVuY3Rpb24sIHZvaWQqIGNh
bGxiYWNrQ29udGV4dCk7Ci10eXBlZGVmIHZvaWQgKCpXS1BhZ2VDbGVhckFkQ2xpY2tBdHRyaWJ1
dGlvbkZ1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwotV0tfRVhQT1JUIHZvaWQgV0tQ
YWdlQ2xlYXJBZENsaWNrQXR0cmlidXRpb24oV0tQYWdlUmVmLCBXS1BhZ2VDbGVhckFkQ2xpY2tB
dHRyaWJ1dGlvbkZ1bmN0aW9uLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpOwotdHlwZWRlZiB2b2lk
ICgqV0tQYWdlU2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmdGdW5j
dGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldEFk
Q2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBi
b29sIHZhbHVlLCBXS1BhZ2VTZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVz
dGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpOwotdHlwZWRlZiB2
b2lkICgqV0tQYWdlU2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3RpbmdG
dW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZVNl
dEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdl
LCBXS1VSTFJlZiB1cmxTdHJpbmcsIFdLUGFnZVNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNp
b25VUkxGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7
Ci10eXBlZGVmIHZvaWQgKCpXS1BhZ2VNYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZv
clRlc3RpbmdGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKLVdLX0VYUE9SVCB2b2lk
IFdLUGFnZU1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZyhXS1BhZ2VS
ZWYgcGFnZSwgV0tQYWdlTWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5n
RnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7Cit0eXBlZGVmIHZvaWQg
KCpXS1BhZ2VEdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGdW5jdGlvbikoV0tTdHJpbmdSZWYg
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRSZXByZXNlbnRhdGlvbiwgdm9pZCogZnVuY3Rpb25Db250
ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZUR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChX
S1BhZ2VSZWYsIFdLUGFnZUR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZ1bmN0aW9uLCB2b2lk
KiBjYWxsYmFja0NvbnRleHQpOwordHlwZWRlZiB2b2lkICgqV0tQYWdlQ2xlYXJQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEZ1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOworV0tfRVhQT1JU
IHZvaWQgV0tQYWdlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXS1BhZ2VSZWYsIFdLUGFn
ZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGdW5jdGlvbiwgdm9pZCogY2FsbGJhY2tDb250
ZXh0KTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3Zl
cnJpZGVUaW1lckZvclRlc3RpbmdGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKK1dL
X0VYUE9SVCB2b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1l
ckZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIGJvb2wgdmFsdWUsIFdLUGFnZVNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywg
dm9pZCogY2FsbGJhY2tDb250ZXh0KTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZVNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmdGdW5jdGlvbikodm9pZCogZnVu
Y3Rpb25Db250ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVmIHVy
bFN0cmluZywgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9y
VGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpOwordHlwZWRl
ZiB2b2lkICgqV0tQYWdlTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRl
c3RpbmdGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdL
UGFnZU1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFdLUGFn
ZVJlZiBwYWdlLCBXS1BhZ2VNYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9y
VGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpOwogCiBXS19F
WFBPUlQgdm9pZCBXS1BhZ2VTZXRNb2NrQ2FtZXJhT3JpZW50YXRpb24oV0tQYWdlUmVmIHBhZ2Us
IHVpbnQ2NF90IG9yaWVudGF0aW9uKTsKIFdLX0VYUE9SVCBib29sIFdLUGFnZUlzTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKFdLUGFnZVJlZiBwYWdlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3Bw
CmluZGV4IDE4NGJmZGVmNjQ2ZTRhYWY2ZDk5ZmI4OWZhOTkwOWU2MDdiMDkxNzUuLjIwZWM3NGQx
YjZkMDEwNzVmZGMxZTZiYzFjYTBjZWExNmI0ZGEwZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcApAQCAtODE3
LDkgKzgxNyw5IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJBbGxEZXZpY2VPcmllbnRh
dGlvblBlcm1pc3Npb25zKFdLV2Vic2l0ZURhdGFTdG9yZVJlCiAjZW5kaWYKIH0KIAotdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJvdWdoV2Vic2l0ZURh
dGFSZW1vdmFsKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRl
eHQsIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJz
aXRlRGF0YVJlbW92YWxGdW5jdGlvbiBjYWxsYmFjaykKK3ZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
Q2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKFdL
V2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0
ZURhdGFTdG9yZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRh
UmVtb3ZhbEZ1bmN0aW9uIGNhbGxiYWNrKQogewotICAgIE9wdGlvblNldDxXZWJLaXQ6OldlYnNp
dGVEYXRhVHlwZT4gZGF0YVR5cGVzID0gV2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU6OkFkQ2xpY2tB
dHRyaWJ1dGlvbnM7CisgICAgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiBkYXRh
VHlwZXMgPSBXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRz
OwogICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnJlbW92ZURhdGEoZGF0YVR5cGVz
LCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoMCksIFtjb250ZXh0LCBjYWxsYmFja10gewogICAg
ICAgICBjYWxsYmFjayhjb250ZXh0KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKaW5kZXggMWI2YjgzNThh
OGI3MDkwZmM1NzQ1MzE5YzcxZTYwMDkxYzI3ZjdiYy4uZmQ0MTc2ZDRmMmUyZTA0ZDY0MzQ4Yzdh
OTliMThhMGJlYjlmYWRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKQEAgLTE4Niw4ICsxODYsOCBAQCBXS19FWFBP
UlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVHZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhXS1dl
YnNpdGVEYXRhU3RvcmVSZQogCiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVDbGVh
ckFsbERldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbnMoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRh
dGFTdG9yZVJlZik7CiAKLXR5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQWRD
bGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWxGdW5jdGlvbikodm9pZCog
ZnVuY3Rpb25Db250ZXh0KTsKLVdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFy
QWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoV0tXZWJzaXRlRGF0
YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3Jl
Q2xlYXJBZENsaWNrQXR0cmlidXRpb25zVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbEZ1bmN0aW9u
IGNhbGxiYWNrKTsKK3R5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZUNsZWFyUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbEZ1bmN0aW9uKSh2b2lk
KiBmdW5jdGlvbkNvbnRleHQpOworV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xl
YXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKFdLV2Vi
c2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURh
dGFTdG9yZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVt
b3ZhbEZ1bmN0aW9uIGNhbGxiYWNrKTsKIAogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0
b3JlU2V0Q2FjaGVNb2RlbFN5bmNocm9ub3VzbHlGb3JUZXN0aW5nKFdLV2Vic2l0ZURhdGFTdG9y
ZVJlZiBkYXRhU3RvcmVSZWYsIFdLQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmQu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29y
ZC5tbQppbmRleCA0NTQwM2QxNjkzNmVhYTgyNTRjZDUwNWZhODg0ZWRmMGRhZmUwNDljLi5lM2Ew
NDQ2YzBiNTdiZWFiNzA0ZjZiM2ZiYjlhMzIzM2IyMDJhYzJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZC5tbQpA
QCAtNDgsNyArNDgsNyBAQCBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZUhTVFND
YWNoZSA9IEAiX1dLV2Vic2l0ZURhdGFUeXBlSFNUU0NhY2hlIjsKIE5TU3RyaW5nICogY29uc3Qg
X1dLV2Vic2l0ZURhdGFUeXBlU2VhcmNoRmllbGRSZWNlbnRTZWFyY2hlcyA9IEAiX1dLV2Vic2l0
ZURhdGFUeXBlU2VhcmNoRmllbGRSZWNlbnRTZWFyY2hlcyI7CiBOU1N0cmluZyAqIGNvbnN0IF9X
S1dlYnNpdGVEYXRhVHlwZVJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBAIl9XS1dlYnNpdGVEYXRh
VHlwZVJlc291cmNlTG9hZFN0YXRpc3RpY3MiOwogTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRl
RGF0YVR5cGVDcmVkZW50aWFscyA9IEAiX1dLV2Vic2l0ZURhdGFUeXBlQ3JlZGVudGlhbHMiOwot
TlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVBZENsaWNrQXR0cmlidXRpb25zID0g
QCJfV0tXZWJzaXRlRGF0YVR5cGVBZENsaWNrQXR0cmlidXRpb25zIjsKK05TU3RyaW5nICogY29u
c3QgX1dLV2Vic2l0ZURhdGFUeXBlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzID0gQCJfV0tXZWJz
aXRlRGF0YVR5cGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHMiOwogTlNTdHJpbmcgKiBjb25zdCBf
V0tXZWJzaXRlRGF0YVR5cGVBbHRlcm5hdGl2ZVNlcnZpY2VzID0gQCJfV0tXZWJzaXRlRGF0YVR5
cGVBbHRlcm5hdGl2ZVNlcnZpY2VzIjsKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTEwMiw4ICsx
MDIsOCBAQCBzdGF0aWMgTlNTdHJpbmcgKmRhdGFUeXBlc1RvU3RyaW5nKE5TU2V0ICpkYXRhVHlw
ZXMpCiAgICAgICAgIFthcnJheSBhZGRPYmplY3Q6QCJSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3Mi
XTsKICAgICBpZiAoW2RhdGFUeXBlcyBjb250YWluc09iamVjdDpfV0tXZWJzaXRlRGF0YVR5cGVD
cmVkZW50aWFsc10pCiAgICAgICAgIFthcnJheSBhZGRPYmplY3Q6QCJDcmVkZW50aWFscyJdOwot
ICAgIGlmIChbZGF0YVR5cGVzIGNvbnRhaW5zT2JqZWN0Ol9XS1dlYnNpdGVEYXRhVHlwZUFkQ2xp
Y2tBdHRyaWJ1dGlvbnNdKQotICAgICAgICBbYXJyYXkgYWRkT2JqZWN0OkAiQWQgQ2xpY2sgQXR0
cmlidXRpb25zIl07CisgICAgaWYgKFtkYXRhVHlwZXMgY29udGFpbnNPYmplY3Q6X1dLV2Vic2l0
ZURhdGFUeXBlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzXSkKKyAgICAgICAgW2FycmF5IGFkZE9i
amVjdDpAIlByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzIl07CiAgICAgaWYgKFtkYXRhVHlwZXMg
Y29udGFpbnNPYmplY3Q6X1dLV2Vic2l0ZURhdGFUeXBlQWx0ZXJuYXRpdmVTZXJ2aWNlc10pCiAg
ICAgICAgIFthcnJheSBhZGRPYmplY3Q6QCJBbHRlcm5hdGl2ZSBTZXJ2aWNlcyJdOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJl
Y29yZEludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVJlY29yZEludGVybmFsLmgKaW5kZXggMjFlZWNiMzdjNjNlYTQxODM2MGJkZTE1MDg2
YWJkOWMyN2E0YTY5NS4uMzhjODM1ZGM3ODIyNmYzZGM5ZTgwNjYwY2VkMzFkN2RkN2ZlZWZkOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFSZWNvcmRJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhUmVjb3JkSW50ZXJuYWwuaApAQCAtNzQsOCArNzQsOCBAQCBzdGF0aWMg
aW5saW5lIE9wdGlvbmFsPFdlYnNpdGVEYXRhVHlwZT4gdG9XZWJzaXRlRGF0YVR5cGUoTlNTdHJp
bmcgKndlYnNpdGVEYXRhVAogICAgICAgICByZXR1cm4gV2Vic2l0ZURhdGFUeXBlOjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzOwogICAgIGlmIChbd2Vic2l0ZURhdGFUeXBlIGlzRXF1YWxUb1N0cmlu
ZzpfV0tXZWJzaXRlRGF0YVR5cGVDcmVkZW50aWFsc10pCiAgICAgICAgIHJldHVybiBXZWJzaXRl
RGF0YVR5cGU6OkNyZWRlbnRpYWxzOwotICAgIGlmIChbd2Vic2l0ZURhdGFUeXBlIGlzRXF1YWxU
b1N0cmluZzpfV0tXZWJzaXRlRGF0YVR5cGVBZENsaWNrQXR0cmlidXRpb25zXSkKLSAgICAgICAg
cmV0dXJuIFdlYnNpdGVEYXRhVHlwZTo6QWRDbGlja0F0dHJpYnV0aW9uczsKKyAgICBpZiAoW3dl
YnNpdGVEYXRhVHlwZSBpc0VxdWFsVG9TdHJpbmc6X1dLV2Vic2l0ZURhdGFUeXBlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRzXSkKKyAgICAgICAgcmV0dXJuIFdlYnNpdGVEYXRhVHlwZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRzOwogI2lmIEhBVkUoQ0ZORVRXT1JLX0FMVEVSTkFUSVZFX1NFUlZJ
Q0UpCiAgICAgaWYgKFt3ZWJzaXRlRGF0YVR5cGUgaXNFcXVhbFRvU3RyaW5nOl9XS1dlYnNpdGVE
YXRhVHlwZUFsdGVybmF0aXZlU2VydmljZXNdKQogICAgICAgICByZXR1cm4gV2Vic2l0ZURhdGFU
eXBlOjpBbHRlcm5hdGl2ZVNlcnZpY2VzOwpAQCAtMTM1LDggKzEzNSw4IEBAIHN0YXRpYyBpbmxp
bmUgUmV0YWluUHRyPE5TU2V0PiB0b1dLV2Vic2l0ZURhdGFUeXBlcyhPcHRpb25TZXQ8V2ViS2l0
OjpXZWJzaXRlRGF0CiAgICAgICAgIFt3a1dlYnNpdGVEYXRhVHlwZXMgYWRkT2JqZWN0Ol9XS1dl
YnNpdGVEYXRhVHlwZVJlc291cmNlTG9hZFN0YXRpc3RpY3NdOwogICAgIGlmICh3ZWJzaXRlRGF0
YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6Q3JlZGVudGlhbHMpKQogICAgICAgICBb
d2tXZWJzaXRlRGF0YVR5cGVzIGFkZE9iamVjdDpfV0tXZWJzaXRlRGF0YVR5cGVDcmVkZW50aWFs
c107Ci0gICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpB
ZENsaWNrQXR0cmlidXRpb25zKSkKLSAgICAgICAgW3drV2Vic2l0ZURhdGFUeXBlcyBhZGRPYmpl
Y3Q6X1dLV2Vic2l0ZURhdGFUeXBlQWRDbGlja0F0dHJpYnV0aW9uc107CisgICAgaWYgKHdlYnNp
dGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudHMpKQorICAgICAgICBbd2tXZWJzaXRlRGF0YVR5cGVzIGFkZE9iamVjdDpfV0tXZWJzaXRl
RGF0YVR5cGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNdOwogI2lmIEhBVkUoQ0ZORVRXT1JLX0FM
VEVSTkFUSVZFX1NFUlZJQ0UpCiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vi
c2l0ZURhdGFUeXBlOjpBbHRlcm5hdGl2ZVNlcnZpY2VzKSkKICAgICAgICAgW3drV2Vic2l0ZURh
dGFUeXBlcyBhZGRPYmplY3Q6X1dLV2Vic2l0ZURhdGFUeXBlQWx0ZXJuYXRpdmVTZXJ2aWNlc107
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRl
RGF0YVJlY29yZFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5oCmluZGV4IDZjZWRmZjdlNzZiNTRlZGI1ZjgwMTMy
NDgwMDIwMGI3YjllODE4NGMuLjZkZTBmMWY4ZjE3OTBlOWJhMjNhNjFkN2QzNjdiYzIwNTBlNDc2
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNp
dGVEYXRhUmVjb3JkUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5oCkBAIC0zNCw3ICszNCw3IEBAIFdLX0VY
VEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZU1lZGlhS2V5cyBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwCiBXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRl
RGF0YVR5cGVTZWFyY2hGaWVsZFJlY2VudFNlYXJjaGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTIpLCBpb3MoMTAuMCkpOwogV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0
ZURhdGFUeXBlUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEyKSwgaW9zKDEwLjApKTsKIFdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVE
YXRhVHlwZUNyZWRlbnRpYWxzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEu
MCkpOwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlQWRDbGlj
a0F0dHJpYnV0aW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsK
K1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVByaXZhdGVDbGlj
a01lYXN1cmVtZW50cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsK
IFdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZUFsdGVybmF0aXZl
U2VydmljZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQppbmRleCA3NmZkYWMw
ZTkwMGY0ZTJmMGY1NGY2Y2YyMWQ4YmY3MDZhMjBiMjEyLi4xYjA4ZjBkNjU5M2RiOWM1OWVhNGFl
N2Q5ZjM5N2ViNjNmNTg2NGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTIzOSw3ICsyMzksNyBAQCAr
IChOU1NldDxOU1N0cmluZyAqPiAqKV9hbGxXZWJzaXRlRGF0YVR5cGVzSW5jbHVkaW5nUHJpdmF0
ZQogICAgICAgICAgICAgX1dLV2Vic2l0ZURhdGFUeXBlU2VhcmNoRmllbGRSZWNlbnRTZWFyY2hl
cywKICAgICAgICAgICAgIF9XS1dlYnNpdGVEYXRhVHlwZVJlc291cmNlTG9hZFN0YXRpc3RpY3Ms
CiAgICAgICAgICAgICBfV0tXZWJzaXRlRGF0YVR5cGVDcmVkZW50aWFscywKLSAgICAgICAgICAg
IF9XS1dlYnNpdGVEYXRhVHlwZUFkQ2xpY2tBdHRyaWJ1dGlvbnMsCisgICAgICAgICAgICBfV0tX
ZWJzaXRlRGF0YVR5cGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHMsCiAgICAgICAgICAgICBfV0tX
ZWJzaXRlRGF0YVR5cGVBbHRlcm5hdGl2ZVNlcnZpY2VzCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUK
ICAgICAgICAgICAgICwgX1dLV2Vic2l0ZURhdGFUeXBlUGx1Z0luRGF0YQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXgg
ZTE1NzAxYWFhNWI5MzFhZTYxMGM2ZGUyZDNlZTIwOWYwOGY0OGMyOC4uYTc2NmVjNWY5N2M0NWM5
MGYxNmU3N2QzZGEwNWYxYTBhZjA5OGVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC00NzUsNyArNDc1LDcgQEAg
dm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmEKICAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0
b3JhZ2VJZGVudGlmaWVyID0gaWRlbnRpZnlpbmdEYXRhRnJvbUNvb2tpZVN0b3JhZ2UoW1tOU0hU
VFBDb29raWVTdG9yYWdlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXSBfY29va2llU3RvcmFnZV0p
OwogI2VuZGlmCiAKLSAgICBwYXJhbWV0ZXJzLmVuYWJsZUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVn
TW9kZSA9IFtkZWZhdWx0cyBib29sRm9yS2V5OltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAi
RXhwZXJpbWVudGFsJUAiLCBXZWJQcmVmZXJlbmNlc0tleTo6YWRDbGlja0F0dHJpYnV0aW9uRGVi
dWdNb2RlRW5hYmxlZEtleSgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCldXTsKKyAgICBwYXJhbWV0
ZXJzLmVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlID0gW2RlZmF1bHRzIGJv
b2xGb3JLZXk6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJFeHBlcmltZW50YWwlQCIsIFdl
YlByZWZlcmVuY2VzS2V5Ojpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWRL
ZXkoKS5jcmVhdGVDRlN0cmluZygpLmdldCgpXV07CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OnBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5jcHAKaW5kZXggZjBmN2IyZGY1
ZTQxOTJhYzQ1NDhiOGY3YmNiOTk3ZDFmMTMwZDQ2MC4uMmEyOWQ4ZGE3NjcwNWE4MTE0Yjc4Yzlk
OWYwM2U5MGFiZDQ3YjkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3RvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuY3BwCkBAIC02NTQsOSArNjU0LDkgQEAgdm9p
ZCBXZWJJbnNwZWN0b3JQcm94eTo6dGltZWxpbmVSZWNvcmRpbmdDaGFuZ2VkKGJvb2wgYWN0aXZl
KQogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6c2V0RGV2ZWxvcGVyUHJlZmVyZW5jZU92ZXJyaWRl
KFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5jZSBkZXZlbG9wZXJQ
cmVmZXJlbmNlLCBPcHRpb25hbDxib29sPiBvdmVycmlkZVZhbHVlKQogewogICAgIHN3aXRjaCAo
ZGV2ZWxvcGVyUHJlZmVyZW5jZSkgewotICAgIGNhc2UgSW5zcGVjdG9yQ2xpZW50OjpEZXZlbG9w
ZXJQcmVmZXJlbmNlOjpBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkOgorICAgIGNh
c2UgSW5zcGVjdG9yQ2xpZW50OjpEZXZlbG9wZXJQcmVmZXJlbmNlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudERlYnVnTW9kZUVuYWJsZWQ6CiAgICAgICAgIGlmIChtX2luc3BlY3RlZFBhZ2UpCi0g
ICAgICAgICAgICBtX2luc3BlY3RlZFBhZ2UtPndlYnNpdGVEYXRhU3RvcmUoKS5zZXRBZENsaWNr
QXR0cmlidXRpb25EZWJ1Z01vZGUob3ZlcnJpZGVWYWx1ZSAmJiBvdmVycmlkZVZhbHVlLnZhbHVl
KCkpOworICAgICAgICAgICAgbV9pbnNwZWN0ZWRQYWdlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUob3ZlcnJpZGVWYWx1ZSAmJiBvdmVycmlk
ZVZhbHVlLnZhbHVlKCkpOwogICAgICAgICByZXR1cm47CiAKICAgICBjYXNlIEluc3BlY3RvckNs
aWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5jZTo6SVRQRGVidWdNb2RlRW5hYmxlZDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwCmluZGV4IDZlZTI2ZDA0NmIwYjIxODg3MDczZTZlZTczNDk4NDNkYWQzMzVhZmEuLjdiMjQ1
ZTNjMDQ4NWM1M2NiNzkzZjNmNGMyYjcwYWIzZGQwMWI4NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAt
MTI3MiwxMiArMTI3MiwxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldERvbWFpbnNX
aXRoVXNlckludGVyYWN0aW9uKEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cgogfQogI2VuZGlmIC8v
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6c2V0QWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlKGJvb2wgZGVidWdNb2RlKQordm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9k
ZShib29sIGRlYnVnTW9kZSkKIHsKICAgICBpZiAoIWNhblNlbmRNZXNzYWdlKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRBZENsaWNr
QXR0cmlidXRpb25EZWJ1Z01vZGUoZGVidWdNb2RlKSwgMCk7CisgICAgc2VuZChNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3M6OlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKGRlYnVn
TW9kZSksIDApOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzV2ls
bFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IGQwMzA0M2Y3OGQw
MjEzMmY0MzkzMTFkMjYyN2IwOGMzYzdkYWFkMjIuLmI2ZWY3NTRiYjUxMmFlMDg4ZDUwMjJkYmE4
YTU0ZmU4NDA0YTI3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0yMDIsNyArMjAyLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0RG9tYWluc1dpdGhVc2VySW50ZXJhY3Rpb24oSGFzaFNldDxXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbj4mJik7CiAjZW5kaWYKIAotICAgIHZvaWQgc2V0QWRDbGlja0F0dHJp
YnV0aW9uRGVidWdNb2RlKGJvb2wpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnREZWJ1Z01vZGUoYm9vbCk7CiAgICAgCiAgICAgdm9pZCBzeW50aGVzaXplQXBwSXNCYWNrZ3Jv
dW5kKGJvb2wgYmFja2dyb3VuZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IGU4Y2M1MmZjY2Y3MTU4N2ZjMzFmZDk0N2UwZThmOGRmZmMxYjc5YmMuLjI1
NzQxOTFlMWE5ZWEzMWM3YzNkNWFjMzYyNDAwZWE3NjEyNzg2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTM5LDcgKzEzOSw2IEBACiAjaW5jbHVkZSAi
V2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyLmgiCiAjaW5jbHVkZSAiV2ViV2hlZWxFdmVu
dENvYWxlc2Nlci5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKLSNpbmNsdWRlIDxX
ZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQml0bWFwSW1h
Z2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbXBvc2l0aW9uSGlnaGxpZ2h0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Dcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmg+CkBAIC0xNjMsNiAr
MTYyLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3RyZWFtUmVxdWVzdC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9QbGF0Zm9ybUV2ZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHVibGljU3VmZml4Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZW5kZXJFbWJlZGRlZE9iamVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VM
b2FkU3RhdGlzdGljcy5oPgpAQCAtNDY1MiwxNyArNDY1MiwxNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUlu
Zm9EYXRhJgogICAgIGZyYW1lLT5kaWRDb21taXRMb2FkKG1pbWVUeXBlLCB3ZWJDZXJ0aWZpY2F0
ZUluZm8sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQpOwogCiAgICAgaWYgKGZyYW1lLT5pc01haW5G
cmFtZSgpKSB7Ci0gICAgICAgIE9wdGlvbmFsPFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbj4g
YWRDbGlja0F0dHJpYnV0aW9uOwotICAgICAgICBpZiAobV9uZXdQYWdlTmF2aWdhdGlvbkFkQ2xp
Y2tBdHRyaWJ1dGlvbikKLSAgICAgICAgICAgIGFkQ2xpY2tBdHRyaWJ1dGlvbiA9IG1fbmV3UGFn
ZU5hdmlnYXRpb25BZENsaWNrQXR0cmlidXRpb247Ci0gICAgICAgIGVsc2UgaWYgKG5hdmlnYXRp
b24gJiYgbmF2aWdhdGlvbi0+YWRDbGlja0F0dHJpYnV0aW9uKCkpCi0gICAgICAgICAgICBhZENs
aWNrQXR0cmlidXRpb24gPSBuYXZpZ2F0aW9uLT5hZENsaWNrQXR0cmlidXRpb24oKTsKLSAgICAg
ICAgaWYgKGFkQ2xpY2tBdHRyaWJ1dGlvbikgewotICAgICAgICAgICAgaWYgKGFkQ2xpY2tBdHRy
aWJ1dGlvbi0+ZGVzdGluYXRpb24oKS5tYXRjaGVzKGZyYW1lLT51cmwoKSkpCi0gICAgICAgICAg
ICAgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3M6OlN0b3JlQWRDbGlja0F0dHJpYnV0aW9uKG1fd2Vic2l0ZURhdGFTdG9y
ZS0+c2Vzc2lvbklEKCksICphZENsaWNrQXR0cmlidXRpb24pLCAwKTsKKyAgICAgICAgT3B0aW9u
YWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IHByaXZhdGVDbGlja01lYXN1cmVt
ZW50OworICAgICAgICBpZiAobV9uZXdQYWdlTmF2aWdhdGlvblByaXZhdGVDbGlja01lYXN1cmVt
ZW50KQorICAgICAgICAgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBtX25ld1BhZ2VOYXZp
Z2F0aW9uUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CisgICAgICAgIGVsc2UgaWYgKG5hdmlnYXRp
b24gJiYgbmF2aWdhdGlvbi0+cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKSkKKyAgICAgICAgICAg
IHByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gbmF2aWdhdGlvbi0+cHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQoKTsKKyAgICAgICAgaWYgKHByaXZhdGVDbGlja01lYXN1cmVtZW50KSB7CisgICAgICAg
ICAgICBpZiAocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPmRlc3RpbmF0aW9uKCkubWF0Y2hlcyhm
cmFtZS0+dXJsKCkpKQorICAgICAgICAgICAgICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3Jr
UHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTdG9yZVByaXZhdGVDbGlj
a01lYXN1cmVtZW50KG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksICpwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCksIDApOwogICAgICAgICB9CiAgICAgfQotICAgIG1fbmV3UGFnZU5hdmln
YXRpb25BZENsaWNrQXR0cmlidXRpb24ucmVzZXQoKTsKKyAgICBtX25ld1BhZ2VOYXZpZ2F0aW9u
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQucmVzZXQoKTsKIAogICAgIGlmIChmcmFtZS0+aXNNYWlu
RnJhbWUoKSkgewogICAgICAgICBtX21haW5GcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciA9
IGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyOwpAQCAtNTUyNCw3ICs1NTI0LDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmNyZWF0ZU5ld1BhZ2UoRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5n
RnJhbWVJbmZvRGF0YSwgV2ViUGEKICAgICBhdXRvKiBvcmlnaW5hdGluZ1BhZ2UgPSBtX3Byb2Nl
c3MtPndlYlBhZ2Uob3JpZ2luYXRpbmdQYWdlSUQpOwogICAgIGF1dG8gb3JpZ2luYXRpbmdGcmFt
ZUluZm8gPSBBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKFdURk1vdmUob3JpZ2luYXRpbmdGcmFtZUlu
Zm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlKTsKICAgICBhdXRvIG1haW5GcmFtZVVSTCA9IG1fbWFp
bkZyYW1lID8gbV9tYWluRnJhbWUtPnVybCgpIDogVVJMKCk7Ci0gICAgYXV0byBjb21wbGV0aW9u
SGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1haW5GcmFt
ZVVSTCwgcmVxdWVzdCwgcmVwbHkgPSBXVEZNb3ZlKHJlcGx5KSwgYWRDbGlja0F0dHJpYnV0aW9u
ID0gbmF2aWdhdGlvbkFjdGlvbkRhdGEuYWRDbGlja0F0dHJpYnV0aW9uXSAoUmVmUHRyPFdlYlBh
Z2VQcm94eT4gbmV3UGFnZSkgbXV0YWJsZSB7CisgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9
IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1haW5GcmFtZVVSTCwgcmVx
dWVzdCwgcmVwbHkgPSBXVEZNb3ZlKHJlcGx5KSwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBu
YXZpZ2F0aW9uQWN0aW9uRGF0YS5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudF0gKFJlZlB0cjxXZWJQ
YWdlUHJveHk+IG5ld1BhZ2UpIG11dGFibGUgewogICAgICAgICBpZiAoIW5ld1BhZ2UpIHsKICAg
ICAgICAgICAgIHJlcGx5KFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0KTsKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTU1MzYsNyArNTUzNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVO
ZXdQYWdlKEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIFdlYlBhCiAK
ICAgICAgICAgbmV3UGFnZS0+bV9zaG91bGRTdXBwcmVzc0FwcExpbmtzSW5OZXh0TmF2aWdhdGlv
blBvbGljeURlY2lzaW9uID0gbWFpbkZyYW1lVVJMLmhvc3QoKSA9PSByZXF1ZXN0LnVybCgpLmhv
c3QoKTsKIAotICAgICAgICBuZXdQYWdlLT5tX25ld1BhZ2VOYXZpZ2F0aW9uQWRDbGlja0F0dHJp
YnV0aW9uID0gYWRDbGlja0F0dHJpYnV0aW9uOworICAgICAgICBuZXdQYWdlLT5tX25ld1BhZ2VO
YXZpZ2F0aW9uUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDsKICNpZiBIQVZFKEFQUF9TU08pCiAgICAgICAgIG5ld1BhZ2UtPm1fc2hvdWxkU3VwcHJlc3NT
T0F1dGhvcml6YXRpb25Jbk5leHROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gPSB0cnVlOwogI2Vu
ZGlmCkBAIC05OTU2LDI5ICs5OTU2LDI5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzeXN0ZW1QcmV2
aWV3QWN0aW9uVHJpZ2dlcmVkKGNvbnN0IFdlYkNvcmU6OlN5c3RlbVByZXZpZXdJbmZvCiB9CiAj
ZW5kaWYKIAotdm9pZCBXZWJQYWdlUHJveHk6OmR1bXBBZENsaWNrQXR0cmlidXRpb24oQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChjb25zdCBTdHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICB3
ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEdW1wQWRDbGlja0F0dHJpYnV0aW9uKG1fd2Vic2l0ZURh
dGFTdG9yZS0+c2Vzc2lvbklEKCkpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAg
d2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KG1fd2Vi
c2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCkpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbihDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94
eTo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQ
cm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Q2xl
YXJBZENsaWNrQXR0cmlidXRpb24obV93ZWJzaXRlRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29y
a1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpD
bGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklE
KCkpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpzZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHVl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVz
dGluZyhib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7Ci0gICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0QWRDbGlja0F0dHJpYnV0
aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmcobV93ZWJzaXRlRGF0YVN0b3JlLT5zZXNzaW9uSUQo
KSwgdmFsdWUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgd2Vic2l0ZURhdGFT
dG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVz
dGluZyhtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCB2YWx1ZSksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnNldEFkQ2xpY2tBdHRy
aWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKGNvbnN0IFVSTCYgdXJsLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhjb25zdCBV
UkwmIHVybCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewotICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZl
cnNpb25VUkxGb3JUZXN0aW5nKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksIHVybCks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0
d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKG1fd2Vi
c2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksIHVybCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6Om1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNF
eHBpcmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6bWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0Fz
RXhwaXJlZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewotICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6Ok1hcmtBZENsaWNrQXR0cmli
dXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZyhtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgp
KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5u
ZXR3b3JrUHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6Ok1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKG1fd2Vi
c2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCkpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CiB9CiAKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKaW5kZXggN2NlZmJmYzY5NDVlZGZlNDNhZTU2YzJkNTY0YzBlODFlOTVi
YjRhNi4uOGE0Y2VhYWE1ZDM2MTUxNDM2YWQ4YmRlZDMxYWI4Y2IxOTllYzdlMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE2ODQsMTEgKzE2ODQsMTEgQEAgcHVi
bGljOgogICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2Nr
SGFuZGxlciYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAjZW5kaWYKIAotICAgIHZvaWQg
ZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmlu
ZyYpPiYmKTsKLSAgICB2b2lkIGNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRp
bWVyRm9yVGVzdGluZyhib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwot
ICAgIHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3RpbmcoY29u
c3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIG1hcmtBZENs
aWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOworICAgIHZvaWQgZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYpOworICAgIHZvaWQgY2xlYXJQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHVl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhjb25zdCBVUkwmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgbWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50
c0FzRXhwaXJlZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogI2lm
IEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgIHZvaWQgc3BlZWNoU3ludGhlc2lzVm9pY2VM
aXN0KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNl
PiYmKT4mJik7CkBAIC0yODg3LDcgKzI4ODcsNyBAQCBwcml2YXRlOgogCiAgICAgc2l6ZV90IG1f
c3VzcGVuZE1lZGlhUGxheWJhY2tDb3VudGVyIHsgMCB9OwogCi0gICAgT3B0aW9uYWw8V2ViQ29y
ZTo6QWRDbGlja0F0dHJpYnV0aW9uPiBtX25ld1BhZ2VOYXZpZ2F0aW9uQWRDbGlja0F0dHJpYnV0
aW9uOworICAgIE9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiBtX25l
d1BhZ2VOYXZpZ2F0aW9uUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggZGFkMjA3MDFiZDM5ODkzOTg1Yzg0MmM4
YTE4NjZhNWY1MGNlNWZkNS4uMGU0NDM5MjQ0ZmY4MWFiNTVkNmFlMWE0MjlkYTMzOWQ4NmQ2ZDY3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTIwNTAsOSArMjA1MCw5IEBAIHZvaWQgV2Vic2l0ZURh
dGFTdG9yZTo6aXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRXBoZW1lcmFsKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRBZENsaWNr
QXR0cmlidXRpb25EZWJ1Z01vZGUoYm9vbCBlbmFibGVkKQordm9pZCBXZWJzaXRlRGF0YVN0b3Jl
OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZShib29sIGVuYWJsZWQpCiB7Ci0g
ICAgbmV0d29ya1Byb2Nlc3MoKS5zZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUoZW5hYmxl
ZCk7CisgICAgbmV0d29ya1Byb2Nlc3MoKS5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVn
TW9kZShlbmFibGVkKTsKIH0KIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmgKaW5kZXggZjNmZTY2ZDA1OTQxYWEzZjE3ZGMyOTMyNTJmNTA3YzI1ZmJjMWJj
ZS4uZDViNGUzZDMyMTE1MjAxYjZhMDk5NDNmOTY1OTdiMDViNmJkZmY5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
aApAQCAtMTQ5LDcgKzE0OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEZWJ1Z01vZGUoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAg
ICB2b2lkIGlzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbChDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKSBjb25zdDsKIAotICAgIHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0aW9u
RGVidWdNb2RlKGJvb2wpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1
Z01vZGUoYm9vbCk7CiAKICAgICB1aW50NjRfdCBwZXJPcmlnaW5TdG9yYWdlUXVvdGEoKSBjb25z
dCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+cGVyT3JpZ2luU3RvcmFnZVF1b3Rh
KCk7IH0KICAgICB1aW50NjRfdCBwZXJUaGlyZFBhcnR5T3JpZ2luU3RvcmFnZVF1b3RhKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBjMDI3NDk0YjczYWNjZWM1ZWZkODFjNjk0ZDNhODUzYjRlZGVmMGNhLi41MTlhNWM5M2U0
M2UwYjBkYmI2OTZmZjRjNjJkZGNhYjBjOWE1NWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyMzksNyArMTIzOSw3IEBACiAJCTYz
QzMyQzI4MUU5ODExOTAwMDY5OUJEMCAvKiBfV0tHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYzQzMyQzI3
MUU5ODExOTAwMDY5OUJEMCAvKiBfV0tHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaCAqLzsg
fTsKIAkJNjVCODZGMUUxMkYxMURFMzAwQjdERDhBIC8qIFdLQnVuZGxlSW5zcGVjdG9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUI4NkYxODEyRjEx
RDdCMDBCN0REOEEgLyogV0tCdW5kbGVJbnNwZWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QTUwODBCRjFGMEVEQUFBMDBFNjE3QzUgLyog
V0tXaW5kb3dGZWF0dXJlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZBNTA4MEJFMUYwRURBQUEwMEU2MTdDNSAvKiBXS1dpbmRvd0ZlYXR1
cmVzUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCTZCRDA1ODY1MjIwQ0U4QzIwMDBCRUQ1QyAvKiBBZENsaWNrQXR0cmlidXRpb25NYW5h
Z2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QkQw
NTg2MzIyMENFOEMyMDAwQkVENUMgLyogQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5oICovOyB9
OworCQk2QkQwNTg2NTIyMENFOEMyMDAwQkVENUMgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
QkQwNTg2MzIyMENFOEMyMDAwQkVENUMgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
LmggKi87IH07CiAJCTZCRTk2OUMxMUU1NEQ0NTIwMDhCNzQ4MyAvKiBjb3JlUHJlZGljdGlvbl9t
b2RlbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkJF
OTY5QzAxRTU0RDQ1MjAwOEI3NDgzIC8qIGNvcmVQcmVkaWN0aW9uX21vZGVsICovOyB9OwogCQk2
QkU5NjlDQjFFNTRENENGMDA4Qjc0ODMgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc0NsYXNzaWZp
ZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkJFOTY5QzkxRTU0RDRDRjAwOEI3NDgzIC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lm
aWVyQ29jb2EuaCAqLzsgfTsKIAkJNkJFOTY5Q0QxRTU0RTA1NDAwOEI3NDgzIC8qIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2QkU5NjlDQzFFNTRFMDU0MDA4Qjc0ODMgLyogUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0NsYXNzaWZpZXIuaCAqLzsgfTsKQEAgLTQyMjQsOCArNDIyNCw4IEBACiAJCTY1
Qjg2RjE3MTJGMTFEN0IwMEI3REQ4QSAvKiBXS0J1bmRsZUluc3BlY3Rvci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0J1bmRsZUluc3BlY3Rvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1Qjg2RjE4MTJGMTFEN0IwMEI3REQ4QSAvKiBXS0J1
bmRsZUluc3BlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRs
ZUluc3BlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QTUwODBCRTFGMEVE
QUFBMDBFNjE3QzUgLyogV0tXaW5kb3dGZWF0dXJlc1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tXaW5kb3dGZWF0dXJlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NkJEMDU4NjMyMjBDRThDMjAwMEJFRDVDIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk2QkQwNTg2NDIyMENFOEMyMDAwQkVENUMgLyogQWRDbGlja0F0dHJp
YnV0aW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBZENsaWNrQXR0cmlidXRpb25N
YW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkJEMDU4NjMyMjBDRThD
MjAwMEJFRDVDIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNkJEMDU4NjQyMjBDRThDMjAwMEJFRDVDIC8qIFByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QkU5NjlDMDFF
NTRENDUyMDA4Qjc0ODMgLyogY29yZVByZWRpY3Rpb25fbW9kZWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gY29yZVByZWRpY3Rpb25fbW9kZWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTZCRTk2OUM2MUU1NEQ0QjYwMDhCNzQ4MyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xhc3Np
Zmllci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzQ2xhc3NpZmllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTZCRTk2OUM4MUU1NEQ0Q0YwMDhCNzQ4MyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xhc3Np
ZmllckNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291
cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyQ29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNzkxNiw4ICs3OTE2LDYgQEAKIAkJCQk5M0JBMDREOTIxNTFBRENEMDA3RjQ1
NUYgLyogU2VydmljZVdvcmtlciAqLywKIAkJCQk0MTMwNzU5NzFERTg0RUQ3MDAzOUVDNjkgLyog
d2VicnRjICovLAogCQkJCTkzQjI2MTQzMjI3RDE0MzEwMEI5N0E3NiAvKiBXZWJTdG9yYWdlICov
LAotCQkJCTZCRDA1ODY0MjIwQ0U4QzIwMDBCRUQ1QyAvKiBBZENsaWNrQXR0cmlidXRpb25NYW5h
Z2VyLmNwcCAqLywKLQkJCQk2QkQwNTg2MzIyMENFOEMyMDAwQkVENUMgLyogQWRDbGlja0F0dHJp
YnV0aW9uTWFuYWdlci5oICovLAogCQkJCTUzRjNDQUE1MjA2QzQ0M0UwMDg2NDkwRSAvKiBOZXR3
b3JrQWN0aXZpdHlUcmFja2VyLmNwcCAqLywKIAkJCQk1MzVCQ0I5MDIwNjlDNDlDMDBDQ0NFMDIg
LyogTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oICovLAogCQkJCTUxM0ExNjQ5MTYzMEE5QkYwMDVE
N0QyMiAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgKi8sCkBAIC03OTcyLDYg
Kzc5NzAsOCBAQAogCQkJCTVDRTg1QjFGMUM4OEU2NDMwMDcwQkZDRSAvKiBQaW5nTG9hZC5oICov
LAogCQkJCTgzQTBFRDMzMUY3NDdDQzcwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5jcHAgKi8s
CiAJCQkJODNBMEVEMzIxRjc0N0NDNjAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmggKi8sCisJ
CQkJNkJEMDU4NjQyMjBDRThDMjAwMEJFRDVDIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlci5jcHAgKi8sCisJCQkJNkJEMDU4NjMyMjBDRThDMjAwMEJFRDVDIC8qIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlci5oICovLAogCQkJCUUxQjc4NDcwMTYzRjI0NjkwMDA3QjY5MiAv
KiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oICovLAogCQkJCTQxMjg3RDREMjI1QzE2MUYwMDlB
M0UyNiAvKiBXZWJTb2NrZXRUYXNrLmggKi8sCiAJCQkpOwpAQCAtMTA4OTQsNyArMTA4OTQsNiBA
QAogCQkJCUExODJENUI1MUJFNkJEMjUwMDg3QTdDQyAvKiBBY2Nlc3NpYmlsaXR5SU9TLmggaW4g
SGVhZGVycyAqLywKIAkJCQlFM0NBQUE0NDI0MTMyNzk5MDBDRUQyRTIgLyogQWNjZXNzaWJpbGl0
eVN1cHBvcnRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RDc5MkQ4MTc2N0NDQTMwMDg4MUNC
RSAvKiBBY3Rpdml0eUFzc2VydGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkJEMDU4NjUyMjBD
RThDMjAwMEJFRDVDIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTYzNDg0MjUxMUZCMjZFNzEwMDk0NkUzQyAvKiBBUElBcHBsaWNhdGlvbk1hbmlmZXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzY0Njk3MDExREJFNjAzMDA2NDU1QjAgLyogQVBJQXJy
YXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNUM3NzBFMUZBN0Q0MjkwMDU5MzJDMyAvKiBBUElB
dHRhY2htZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTExMjg3LDYgKzExMjg2LDcgQEAKIAkJCQlD
MTVDQkIzNjIzRjM3NzcxMDAzMDBDQzcgLyogUHJlZmVyZW5jZU9ic2VydmVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBQUIxNDVFNjIyM0Y5MzEyMDBFNDg5RDggLyogUHJlZmV0Y2hDYWNoZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTFDQzFCOTAxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mby5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNkJEMDU4NjUyMjBDRThDMjAwMEJFRDVDIC8qIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZGOTUzNjUxOEZG
NThGNTAwMURCMkVGIC8qIFByb2Nlc3NBc3NlcnRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
MUE3QzU4MTEzNkUxOUMwMEZCNzE2NyAvKiBQcm9jZXNzTGF1bmNoZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQ2M0ZENDgyMUVCOTRFQzAwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFz
b24uaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBmZWRjM2RiMTBh
ZDc3M2JkNTUzNjMyNmZhYjFjMTc0MDg1Y2IxNmQwLi45ZGVkMjVkMTIzZTVlM2JmNzIxZTkyNTMy
ZDg1MWEwZGE3N2RlNWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMjcwLDcgKzI3MCw3
IEBAIFBhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lJiBmcmFtZSwgY29u
c3QgV2luZG93RmVhdHVyZXMmIHdpbmRvd0ZlCiAgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEuY2Fu
SGFuZGxlUmVxdWVzdCA9IG1fcGFnZS5jYW5IYW5kbGVSZXF1ZXN0KG5hdmlnYXRpb25BY3Rpb24u
cmVzb3VyY2VSZXF1ZXN0KCkpOwogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLnNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kgPSBuYXZpZ2F0aW9uQWN0aW9uLnNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3koKTsKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5kb3dubG9hZEF0dHJpYnV0ZSA9
IG5hdmlnYXRpb25BY3Rpb24uZG93bmxvYWRBdHRyaWJ1dGUoKTsKLSAgICBuYXZpZ2F0aW9uQWN0
aW9uRGF0YS5hZENsaWNrQXR0cmlidXRpb24gPSBuYXZpZ2F0aW9uQWN0aW9uLmFkQ2xpY2tBdHRy
aWJ1dGlvbigpOworICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLnByaXZhdGVDbGlja01lYXN1cmVt
ZW50ID0gbmF2aWdhdGlvbkFjdGlvbi5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwogCiAgICAg
V2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBmZjcxYjgzMzM4ZjFlZGU5YWMzMmFj
ZmE2ZTJkMzU1N2EzN2RkNzkxLi42MDNhZGY4YjJlOTQ5MzZhZjA3NDZkZWU5NjE3YTRmMjU1NDIx
ZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTg3OCw3ICs4NzgsNyBA
QCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dp
bmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aQogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLmNhbkhh
bmRsZVJlcXVlc3QgPSB3ZWJQYWdlLT5jYW5IYW5kbGVSZXF1ZXN0KHJlcXVlc3QpOwogICAgIG5h
dmlnYXRpb25BY3Rpb25EYXRhLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBuYXZpZ2F0
aW9uQWN0aW9uLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKTsKICAgICBuYXZpZ2F0aW9u
QWN0aW9uRGF0YS5kb3dubG9hZEF0dHJpYnV0ZSA9IG5hdmlnYXRpb25BY3Rpb24uZG93bmxvYWRB
dHRyaWJ1dGUoKTsKLSAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5hZENsaWNrQXR0cmlidXRpb24g
PSBuYXZpZ2F0aW9uQWN0aW9uLmFkQ2xpY2tBdHRyaWJ1dGlvbigpOworICAgIG5hdmlnYXRpb25B
Y3Rpb25EYXRhLnByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gbmF2aWdhdGlvbkFjdGlvbi5wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwogCiAgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24obV9mcmFtZS0+ZnJhbWVJ
RCgpLCBtX2ZyYW1lLT5pbmZvKCksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBy
ZXF1ZXN0LAogICAgICAgICBmcmFtZU5hbWUsIGxpc3RlbmVySUQsIFVzZXJEYXRhKFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkp
LmdldCgpKSkpOwpAQCAtOTg1LDcgKzk4NSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0CiAg
ICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEuc291cmNlQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciA9
IG5hdmlnYXRpb25BY3Rpb24uc291cmNlQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcigpOwogICAg
IG5hdmlnYXRpb25BY3Rpb25EYXRhLmxvY2tIaXN0b3J5ID0gbmF2aWdhdGlvbkFjdGlvbi5sb2Nr
SGlzdG9yeSgpOwogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLmxvY2tCYWNrRm9yd2FyZExpc3Qg
PSBuYXZpZ2F0aW9uQWN0aW9uLmxvY2tCYWNrRm9yd2FyZExpc3QoKTsKLSAgICBuYXZpZ2F0aW9u
QWN0aW9uRGF0YS5hZENsaWNrQXR0cmlidXRpb24gPSBuYXZpZ2F0aW9uQWN0aW9uLmFkQ2xpY2tB
dHRyaWJ1dGlvbigpOworICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLnByaXZhdGVDbGlja01lYXN1
cmVtZW50ID0gbmF2aWdhdGlvbkFjdGlvbi5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwogCiAg
ICAgYXV0byogY29yZUZyYW1lID0gbV9mcmFtZS0+Y29yZUZyYW1lKCk7CiAgICAgaWYgKCFjb3Jl
RnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggNmZkN2EyNjUzMjE1NWM5YzhkNTc1MzY1NTE0
ZTRmNGExYThjYjhkNS4uM2U4NTQxNzY3ZjJlMDkyNWIxYWFiNTBjODEwN2M2OTZlZjU3N2M1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtMTI0LDcgKzEyNCw3IEBAIE5TU3RyaW5nICpXZWJDb25z
b2xlTWVzc2FnZU1lZGlhTWVzc2FnZVNvdXJjZSA9IEAiTWVkaWFNZXNzYWdlU291cmNlIjsKIE5T
U3RyaW5nICpXZWJDb25zb2xlTWVzc2FnZU1lZGlhU291cmNlTWVzc2FnZVNvdXJjZSA9IEAiTWVk
aWFTb3VyY2VNZXNzYWdlU291cmNlIjsKIE5TU3RyaW5nICpXZWJDb25zb2xlTWVzc2FnZVdlYlJU
Q01lc3NhZ2VTb3VyY2UgPSBAIldlYlJUQ01lc3NhZ2VTb3VyY2UiOwogTlNTdHJpbmcgKldlYkNv
bnNvbGVNZXNzYWdlSVRQRGVidWdNZXNzYWdlU291cmNlID0gQCJJVFBEZWJ1Z01lc3NhZ2VTb3Vy
Y2UiOwotTlNTdHJpbmcgKldlYkNvbnNvbGVNZXNzYWdlQWRDbGlja0F0dHJpYnV0aW9uTWVzc2Fn
ZVNvdXJjZSA9IEAiQWRDbGlja0F0dHJpYnV0aW9uTWVzc2FnZVNvdXJjZSI7CitOU1N0cmluZyAq
V2ViQ29uc29sZU1lc3NhZ2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1lc3NhZ2VTb3VyY2UgPSBA
IlByaXZhdGVDbGlja01lYXN1cmVtZW50TWVzc2FnZVNvdXJjZSI7CiBOU1N0cmluZyAqV2ViQ29u
c29sZU1lc3NhZ2VPdGhlck1lc3NhZ2VTb3VyY2UgPSBAIk90aGVyTWVzc2FnZVNvdXJjZSI7CiAK
IE5TU3RyaW5nICpXZWJDb25zb2xlTWVzc2FnZURlYnVnTWVzc2FnZUxldmVsID0gQCJEZWJ1Z01l
c3NhZ2VMZXZlbCI7CkBAIC00MDMsOCArNDAzLDggQEAgaW5saW5lIHN0YXRpYyBOU1N0cmluZyAq
c3RyaW5nRm9yTWVzc2FnZVNvdXJjZShNZXNzYWdlU291cmNlIHNvdXJjZSkKICAgICAgICAgcmV0
dXJuIFdlYkNvbnNvbGVNZXNzYWdlV2ViUlRDTWVzc2FnZVNvdXJjZTsKICAgICBjYXNlIE1lc3Nh
Z2VTb3VyY2U6OklUUERlYnVnOgogICAgICAgICByZXR1cm4gV2ViQ29uc29sZU1lc3NhZ2VJVFBE
ZWJ1Z01lc3NhZ2VTb3VyY2U7Ci0gICAgY2FzZSBNZXNzYWdlU291cmNlOjpBZENsaWNrQXR0cmli
dXRpb246Ci0gICAgICAgIHJldHVybiBXZWJDb25zb2xlTWVzc2FnZUFkQ2xpY2tBdHRyaWJ1dGlv
bk1lc3NhZ2VTb3VyY2U7CisgICAgY2FzZSBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDoKKyAgICAgICAgcmV0dXJuIFdlYkNvbnNvbGVNZXNzYWdlUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNZXNzYWdlU291cmNlOwogICAgIGNhc2UgTWVzc2FnZVNvdXJjZTo6T3RoZXI6CiAg
ICAgICAgIHJldHVybiBXZWJDb25zb2xlTWVzc2FnZU90aGVyTWVzc2FnZVNvdXJjZTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCA1ZmE5ZTkwYzEwNTc3OGM0YzJkOTg3YzZmYjFjMGY1
YjA3ZGViYWM4Li5hYjMxN2IwNmIwNWY4OWFiMTNkZTU2NGVkMjg5NDY4NzUyYWY2ZmNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlz
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZUtleXNQcml2YXRlLmgKQEAgLTI3Myw3ICsyNzMsNyBAQAogI2RlZmluZSBXZWJLaXRTZXJ2
ZXJUaW1pbmdFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFNlcnZlclRpbWluZ0VuYWJsZWQi
CiAjZGVmaW5lIFdlYktpdENTU0N1c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdENTU0N1c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFibGVkIgogI2Rl
ZmluZSBXZWJLaXRSZXNpemVPYnNlcnZlckVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0UmVz
aXplT2JzZXJ2ZXJFbmFibGVkIgotI2RlZmluZSBXZWJLaXRBZENsaWNrQXR0cmlidXRpb25FbmFi
bGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQiCisjZGVm
aW5lIFdlYktpdFByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJX
ZWJLaXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdEZldGNo
QVBJS2VlcEFsaXZlRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRGZXRjaEFQSUtlZXBBbGl2
ZUVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdEdlbmVyaWNDdWVBUElFbmFibGVkS2V5IEAiV2ViS2l0
R2VuZXJpY0N1ZUFQSUVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdEFzcGVjdFJhdGlvT2ZJbWdGcm9t
V2lkdGhBbmRIZWlnaHRFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEFzcGVjdFJhdGlvT2ZJ
bWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFibGVkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggNTdjMGQzNDQwNmVjMTkxYjFjYWM2
NjM0ZDc1YmJkMGQ5ZjEzNGRiMS4uZjhmM2VhMDc5MDg4N2JlZTJiYjI0MTQ5ZDUxOGZlZThlM2Y3
OWQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzLm1tCkBAIC0zMjMzLDE0ICszMjMzLDE0IEBAIC0gKHZvaWQpc2V0UmVzaXplT2JzZXJ2
ZXJFbmFibGVkOihCT09MKWZsYWcKICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5
OldlYktpdFJlc2l6ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCi0tIChCT09M
KWFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQKKy0gKEJPT0wpcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRFbmFibGVkCiB7Ci0gICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0QWRD
bGlja0F0dHJpYnV0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXldOworICAgIHJldHVybiBbc2VsZiBf
Ym9vbFZhbHVlRm9yS2V5OldlYktpdFByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZFByZWZl
cmVuY2VLZXldOwogfQogCi0tICh2b2lkKXNldEFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ6KEJP
T0wpZmxhZworLSAodm9pZClzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQ6KEJPT0wp
ZmxhZwogewotICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0QWRDbGlj
a0F0dHJpYnV0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXldOworICAgIFtzZWxmIF9zZXRCb29sVmFs
dWU6ZmxhZyBmb3JLZXk6V2ViS2l0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkUHJlZmVy
ZW5jZUtleV07CiB9CiAKIC0gKEJPT0wpZmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZh
dGUuaAppbmRleCBlZjBlODEzNGVmNTI4MGY5YTNjODcxMTBmYzU4Zjc3YzgzOTUwYWI2Li40NTZh
MDEzYjg4ZDU4MzdlYTk0N2ZlNGNmNjQyYjNlNWE3Yjg2MGYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAg
LTMzNCw3ICszMzQsNyBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVNb2Rl
bENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRfREVQUgogQHByb3BlcnR5IChub25h
dG9taWMpIEJPT0wgc2VydmVyVGltaW5nRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIENTU0N1c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFibGVkOwogQHByb3BlcnR5IChub25h
dG9taWMpIEJPT0wgcmVzaXplT2JzZXJ2ZXJFbmFibGVkOwotQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIHByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCT09MIGZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIGdlbmVyaWNDdWVBUElFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYXNw
ZWN0UmF0aW9PZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzg1YTFiZWFjMWI4YjQ2Y2ZlYjZj
NjJiODQwNzZlZTk3OGQyN2FkZC4uNWQ3ZjgwYWE0YTkwY2U1YTMyMDQwNTFiMTkxMjg1NGM5MzUx
MGQ4MCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDY5IEBACisyMDIwLTExLTEwICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBw
bGUuY29tPgorCisgICAgICAgIFBDTTogQ2hhbmdlIGZyb20gYWQtY2xpY2stYXR0cmlidXRpb24g
dG8gcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudCAoaW4gYWxsIGZvcm1zLCBpbmNsdWRpbmcgLndl
bGwta25vd24gVVJMKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE4NzMwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTA5NDI5Nj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBEZXZpbiBSb3Vzc28uCisKKyAgICAgICAgQ2hhbmdlIHRvIHRoZSBvZmZp
Y2lhbCBuYW1lIG9mIHRoZSBwcm9wb3NlZCBzdGFuZGFyZCBQcml2YXRlIENsaWNrIE1lYXN1cmVt
ZW50CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9wcml2YWN5Y2cvcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC4KKworICAgICAgICBUaGlzIGluY2x1ZGVzIGEgY2hhbmdlIG9mIHRoZSByZXBv
cnRpbmcgVVJMIGZyb20gCisgICAgICAgICIvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRp
b24vIiB0bworICAgICAgICAiLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQv
Ii4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAg
KFdUUjo6VGVzdE9wdGlvbnM6OmRlZmF1bHRzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQWRDbGlja0F0dHJpYnV0aW9uLmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6ZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50
KToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6
OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcpOgorICAg
ICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNp
b25VUkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6bWFya1ByaXZhdGVD
bGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcpOgorICAgICAgICAoV1RSOjpUZXN0
UnVubmVyOjpkdW1wQWRDbGlja0F0dHJpYnV0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6
VGVzdFJ1bm5lcjo6Y2xlYXJBZENsaWNrQXR0cmlidXRpb24pOiBEZWxldGVkLgorICAgICAgICAo
V1RSOjpUZXN0UnVubmVyOjpjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJvdWdoV2Vic2l0ZURh
dGFSZW1vdmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0QWRDbGlj
a0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAo
V1RSOjpUZXN0UnVubmVyOjpzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVz
dGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6Om1hcmtBZENsaWNrQXR0
cmlidXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9s
bGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKFdUUjo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRTdHJpbmdSZXN1bHRDYWxsYmFja0NvbnRleHQ6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50U3RyaW5nUmVzdWx0Q2FsbGJhY2tDb250ZXh0KToKKyAgICAgICAgKFdUUjo6
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdHJpbmdSZXN1bHRDYWxsYmFjayk6CisgICAgICAgIChX
VFI6OlRlc3RDb250cm9sbGVyOjpkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAg
ICAoV1RSOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFja0NvbnRleHQ6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrQ29udGV4dCk6CisgICAgICAgIChXVFI6OnBy
aXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0
ZURhdGFSZW1vdmFsKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcpOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9y
VGVzdGluZyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjptYXJrUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyk6CisgICAgICAgIChXVFI6OkFkQ2xpY2tB
dHRyaWJ1dGlvblN0cmluZ1Jlc3VsdENhbGxiYWNrQ29udGV4dDo6QWRDbGlja0F0dHJpYnV0aW9u
U3RyaW5nUmVzdWx0Q2FsbGJhY2tDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6YWRD
bGlja0F0dHJpYnV0aW9uU3RyaW5nUmVzdWx0Q2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6ZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbik6IERlbGV0ZWQuCisg
ICAgICAgIChXVFI6OkFkQ2xpY2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFja0NvbnRleHQ6OkFkQ2xp
Y2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFja0NvbnRleHQpOiBEZWxldGVkLgorICAgICAgICAoV1RS
OjphZENsaWNrQXR0cmlidXRpb25Wb2lkQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6Y2xlYXJBZENsaWNrQXR0cmlidXRpb24pOiBEZWxldGVkLgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y2xlYXJBZENsaWNrQXR0cmlidXRpb25zVGhyb3Vn
aFdlYnNpdGVEYXRhUmVtb3ZhbCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9s
bGVyOjpzZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyk6IERlbGV0
ZWQuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRBZENsaWNrQXR0cmlidXRpb25D
b252ZXJzaW9uVVJMRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjptYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdEludm9jYXRpb246OmR1bXBSZXN1bHRzKToKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRp
b246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAg
ICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KToK
KyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmR1bXBBZENsaWNrQXR0cmlidXRpb24pOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaDoKKwog
MjAyMC0xMS0xMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSRUdSRVNTSU9OIChyMjY5NTI1KTogTWFueSBsYXlvdXQgdGVzdHMgY3Jhc2ggd2hlbiBy
dW4gdW5kZXIgQVNhbgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlv
bnMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCmluZGV4IGZlNjAz
ZWZlYWJjZWUzNTlhNjM0ZDg4NDZjNzM3MzE0ZjIwNTlmNjguLjdmNDMzN2Y3MzU1MTA2N2VhYWJm
ZTIwOTM0ODllYzY1YTk1NmFjODYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RPcHRpb25zLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAK
QEAgLTY2LDcgKzY2LDYgQEAgY29uc3QgVGVzdEZlYXR1cmVzJiBUZXN0T3B0aW9uczo6ZGVmYXVs
dHMoKQogICAgICAgICAgICAgLy8gVGhlc2UgYXJlIFdlYlByZWZlcmVuY2UgdmFsdWVzIHRoYXQg
bXVzdCBhbHdheXMgYmUgc2V0IGFzIHRoZXkgbWF5CiAgICAgICAgICAgICAvLyBkaWZmZXIgZnJv
bSB0aGUgZGVmYXVsdCBzZXQgaW4gdGhlIFdlYlByZWZlcmVuY2VzKi55YW1sIGNvbmZpZ3VyYXRp
b24uCiAgICAgICAgICAgICB7ICJBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkIiwgZmFsc2UgfSwK
LSAgICAgICAgICAgIHsgIkFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQiLCBmYWxzZSB9LAogICAg
ICAgICAgICAgeyAiQWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlh
bHMiLCBmYWxzZSB9LAogICAgICAgICAgICAgeyAiQWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxz
IiwgdHJ1ZSB9LAogICAgICAgICAgICAgeyAiQWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyIs
IHRydWUgfSwKQEAgLTk2LDYgKzk1LDcgQEAgY29uc3QgVGVzdEZlYXR1cmVzJiBUZXN0T3B0aW9u
czo6ZGVmYXVsdHMoKQogICAgICAgICAgICAgeyAiTW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWQi
LCB0cnVlIH0sCiAgICAgICAgICAgICB7ICJOZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNR
dWlyayIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7ICJQbHVnaW5zRW5hYmxlZCIsIHRydWUgfSwK
KyAgICAgICAgICAgIHsgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZCIsIGZhbHNlIH0s
CiAgICAgICAgICAgICB7ICJSZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZCIsIGZhbHNlIH0sCiAg
ICAgICAgICAgICB7ICJSZXNpemVPYnNlcnZlckVuYWJsZWQiLCBmYWxzZSB9LAogICAgICAgICAg
ICAgeyAiU2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQiLCB0cnVlIH0sCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDEyYzgwMTBjZWZhYzM1ZjA2ZThjM2JjYjQ3ODNjZDkz
NzE0OTVmNzIuLjBlYmRhYzM2YzVmODdkMjM0NTkzYTY1MmJjNTc3MmM2MWE1ZjRmYWYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MDIsNyArNTAyLDcgQEAKIAkJNjM3MjgxQTcyMUFFMTM4
NjAwOUUwREU2IC8qIERvd25sb2FkUHJvZ3Jlc3MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MzcyODFBNjIxQUUxMzg2MDA5RTBERTYgLyogRG93bmxv
YWRQcm9ncmVzcy5tbSAqLzsgfTsKIAkJNjNBNjFCOEIxRkFEMjUxMTAwRjA2ODg1IC8qIGRpc3Bs
YXktbW9kZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDYzQTYxQjhBMUZBRDIwNEQwMEYwNjg4NSAvKiBkaXNwbGF5LW1vZGUuaHRtbCAq
LzsgfTsKIAkJNjNGNjY4MjIxRjk3RjdGOTAwMzJFRTUxIC8qIEFwcGxpY2F0aW9uTWFuaWZlc3Qu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2M0Y2Njgy
MDFGOTdDM0FBMDAzMkVFNTEgLyogQXBwbGljYXRpb25NYW5pZmVzdC5tbSAqLzsgfTsKLQkJNkIw
QTA3RjcyMUZBOUMyQjAwRDU3MzkxIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjBBMDdGNjIxRkE5QzJCMDBE
NTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmNwcCAqLzsgfTsKKwkJNkIwQTA3RjcyMUZBOUMy
QjAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCMEEwN0Y2MjFGQTlDMkIwMEQ1NzM5MSAv
KiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgKi87IH07CiAJCTZCMzA2MTA2MjE4QTM3Mjkw
MEY1QTgwMiAvKiBDbG9zaW5nV2ViVmlldy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZCMzA2MTA1MjE4QTM3MjkwMEY1QTgwMiAvKiBDbG9zaW5nV2Vi
Vmlldy5tbSAqLzsgfTsKIAkJNkI0RTg2MUMyMjIwQTU1MjAwMjJGMzg5IC8qIFJlZ2lzdHJhYmxl
RG9tYWluLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDZCNEU4NjFCMjIyMEE1NTIwMDIyRjM4OSAvKiBSZWdpc3RyYWJsZURvbWFpbi5jcHAgKi87IH07
CiAJCTZCOUFCRTEyMjA4Njk1MkYwMEQ3NURFNiAvKiBIVFRQUGFyc2Vycy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjlBQkUxMTIwODY5NTJGMDBE
NzVERTYgLyogSFRUUFBhcnNlcnMuY3BwICovOyB9OwpAQCAtMjI2NCw3ICsyMjY0LDcgQEAKIAkJ
NjM3MjgxQTYyMUFFMTM4NjAwOUUwREU2IC8qIERvd25sb2FkUHJvZ3Jlc3MubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBEb3dubG9hZFByb2dyZXNzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2M0E2MUI4QTFGQUQyMDREMDBGMDY4ODUgLyogZGlzcGxheS1tb2RlLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSAiZGlzcGxheS1tb2RlLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk2M0Y2NjgyMDFGOTdDM0FBMDAzMkVFNTEgLyogQXBwbGljYXRpb25NYW5pZmVzdC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IEFwcGxpY2F0aW9uTWFuaWZlc3QubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTZCMEEwN0Y2MjFGQTlDMkIwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmli
dXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWRDbGlja0F0dHJpYnV0aW9uLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkIwQTA3RjYyMUZBOUMyQjAwRDU3MzkxIC8qIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkIzMDYxMDUy
MThBMzcyOTAwRjVBODAyIC8qIENsb3NpbmdXZWJWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gQ2xvc2luZ1dlYlZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCNEU4
NjFCMjIyMEE1NTIwMDIyRjM4OSAvKiBSZWdpc3RyYWJsZURvbWFpbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZWdpc3RyYWJsZURvbWFpbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTZCOUFCRTExMjA4Njk1MkYwMEQ3NURFNiAvKiBIVFRQUGFyc2Vycy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBIVFRQUGFyc2Vycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0zNDcwLDcgKzM0NzAsNiBAQAogCQkJCUNEODlEMDM3MUM0RURCMTMwMDA0MEEwNCAvKiBjb2Nv
YSAqLywKIAkJCQlBMUVDMTE4NTFGNDI1M0Q5MDBEMDE0NkUgLyogaW9zICovLAogCQkJCUFCRjUx
MDYzMkExOUI4QUM3RUM0MEUxNyAvKiBBYm9ydGFibGVUYXNrUXVldWUuY3BwICovLAotCQkJCTZC
MEEwN0Y2MjFGQTlDMkIwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24uY3BwICovLAogCQkJ
CTdBOTA5QTZGMUQ4Nzc0NzUwMDdFMTBGOCAvKiBBZmZpbmVUcmFuc2Zvcm0uY3BwICovLAogCQkJ
CTU3MTUyQjVEMjFDQzIwNDUwMDBDMzdDQSAvKiBBcGR1VGVzdC5jcHAgKi8sCiAJCQkJNjM1NEY0
RDAxRjdDM0FCNTAwRDg5REYzIC8qIEFwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwICovLApA
QCAtMzUxNiw2ICszNTE1LDcgQEAKIAkJCQlBNUIxNDlERDFGNUExOURDMDBDNkRBRkYgLyogTUlN
RVR5cGVSZWdpc3RyeS5jcHAgKi8sCiAJCQkJQ0QyMjVDMDcxQzQ1QTY5MjAwMTQwNzYxIC8qIFBh
cnNlZENvbnRlbnRSYW5nZS5jcHAgKi8sCiAJCQkJQUE5NkNBQjQyMUM3REI0MjAwRkQyRjk3IC8q
IFBhcnNlZENvbnRlbnRUeXBlLmNwcCAqLywKKwkJCQk2QjBBMDdGNjIxRkE5QzJCMDBENTczOTEg
LyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwICovLAogCQkJCTA0MUExRTMzMjE2RkZEQkMw
MDc4OUUwQSAvKiBQdWJsaWNTdWZmaXguY3BwICovLAogCQkJCTZCNEU4NjFCMjIyMEE1NTIwMDIy
RjM4OSAvKiBSZWdpc3RyYWJsZURvbWFpbi5jcHAgKi8sCiAJCQkJRjQxOEJFMTQxRjcxQjdEQzAw
MTk3MEU2IC8qIFJvdW5kZWRSZWN0VGVzdHMuY3BwICovLApAQCAtNTAzMCw3ICs1MDMwLDYgQEAK
IAkJCQkyRTIwNUJBNDFGNTI3NzQ2MDA1OTUyREQgLyogQWNjZXNzaWJpbGl0eVRlc3RzSU9TLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJOUJENTExMUMxRkU4RTExNjAwRDJCNjMwIC8qIEFjY2Vzc2lu
Z1Bhc3RlZEltYWdlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ1QjYzRkUxRjE5RDQxMDAwOUQz
OEI5IC8qIEFjdGlvblNoZWV0VGVzdHMubW0gaW4gU291cmNlcyAqLywKLQkJCQk2QjBBMDdGNzIx
RkE5QzJCMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTM3RTdERDY0MUVBMDZGRjIwMDlCMzk2RCAvKiBBZGRpdGlvbmFsUmVhZEFjY2Vzc0FsbG93
ZWRVUkxzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTVBODE3RkMyMTgxMDBFMDAwMDRBMzlBIC8q
IEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTVG
OUQyRTUyMjA1MDMxODAwQTlBQjM4IC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1t
IGluIFNvdXJjZXMgKi8sCkBAIC01MzcwLDYgKzUzNjksNyBAQAogCQkJCTdDQ0U3RjJDMUE0MTFC
MTAwMDQ0N0M0QyAvKiBQcmV2ZW50SW1hZ2VMb2FkV2l0aEF1dG9SZXNpemluZy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUExRUMxMTg4MUY0MjU0MTIwMEQwMTQ2RSAvKiBQcmV2aWV3Q29udmVydGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjBDMUE0MTFBRTYwMDQ0N0M0QyAvKiBQcml2
YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk2QjBBMDdGNzIxRkE5QzJCMDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDY0N0IxMjYxRUJBM0I4NTAwNDFEN0VGIC8qIFByb2Nl
c3NEaWRUZXJtaW5hdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE4ODJGMDMyMTAxMEMwRDAw
MkZGMjg4IC8qIFByb2Nlc3NQcmVXYXJtaW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBNDQz
OEUyMUY3QTQ3NzAwMzc5NDg5IC8qIFByb2Nlc3NTdXNwZW5kTWVkaWFCdWZmZXJpbmcubW0gaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9BZENsaWNrQXR0cmlidXRpb24uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGQxMTFmMGVhMGMwZTFkMTk1ODBmZDNjNjQ1YmQzN2MwMmU1YWY5N2MuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNzgg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgPFdl
YkNvcmUvQWRDbGlja0F0dHJpYnV0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL1VSTC5oPgotI2luY2x1
ZGUgPHd0Zi9XYWxsVGltZS5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkgewotCi1jb25zdGV4cHIgdWludDMyX3QgbWluNkJpdFZhbHVlIHsg
MCB9OwotCi1jb25zdCBVUkwgd2ViS2l0VVJMIHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnIl9z
IH07Ci1jb25zdCBVUkwgZXhhbXBsZVVSTCB7IHsgfSwgImh0dHBzOi8vZXhhbXBsZS5jb20iX3Mg
fTsKLWNvbnN0IFVSTCBlbXB0eVVSTCB7IH07Ci0KLS8vIFBvc2l0aXZlIHRlc3QgY2FzZXMuCi0K
LVRFU1QoQWRDbGlja0F0dHJpYnV0aW9uLCBWYWxpZE1pblZhbHVlcykKLXsKLSAgICBBZENsaWNr
QXR0cmlidXRpb24gYXR0cmlidXRpb24geyBBZENsaWNrQXR0cmlidXRpb246OkNhbXBhaWduKG1p
bjZCaXRWYWx1ZSksIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlIHsgd2ViS2l0VVJMIH0sIEFk
Q2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKLSAgICBhdHRy
aWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKEFkQ2xpY2tBdHRyaWJ1dGlv
bjo6Q29udmVyc2lvbihtaW42Qml0VmFsdWUsIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6UHJpb3JpdHko
bWluNkJpdFZhbHVlKSkpOwotCi0gICAgYXV0byBhdHRyaWJ1dGlvblVSTCA9IGF0dHJpYnV0aW9u
LnJlcG9ydFVSTCgpOwotICAgIAotICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvblVSTC5zdHJpbmco
KSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8i
KTsKLQotICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvbi5qc29uKCktPnRvSlNPTlN0cmluZygpLCAi
e1wiY29udGVudC10eXBlXCI6XCJjbGlja1wiLFwiY29udGVudC1zaXRlXCI6XCJ3ZWJraXQub3Jn
XCIsXCJjb250ZW50LWlkXCI6MCxcImNvbnZlcnNpb24tc2l0ZVwiOlwiZXhhbXBsZS5jb21cIixc
ImNvbnZlcnNpb24tZGF0YVwiOjAsXCJyZXBvcnQtdmVyc2lvblwiOjF9Iik7Ci19Ci0KLVRFU1Qo
QWRDbGlja0F0dHJpYnV0aW9uLCBWYWxpZE1pZFZhbHVlcykKLXsKLSAgICBBZENsaWNrQXR0cmli
dXRpb24gYXR0cmlidXRpb24geyBBZENsaWNrQXR0cmlidXRpb246OkNhbXBhaWduKCh1aW50MzJf
dCkxMiksIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlIHsgd2ViS2l0VVJMIH0sIEFkQ2xpY2tB
dHRyaWJ1dGlvbjo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKLSAgICBhdHRyaWJ1dGlv
bi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29u
dmVyc2lvbigodWludDMyX3QpNDQsIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6UHJpb3JpdHkoKHVpbnQz
Ml90KTIyKSkpOwotCi0gICAgYXV0byBhdHRyaWJ1dGlvblVSTCA9IGF0dHJpYnV0aW9uLnJlcG9y
dFVSTCgpOwotICAgIAotICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvblVSTC5zdHJpbmcoKSwgImh0
dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8iKTsKLQot
ICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvbi5qc29uKCktPnRvSlNPTlN0cmluZygpLCAie1wiY29u
dGVudC10eXBlXCI6XCJjbGlja1wiLFwiY29udGVudC1zaXRlXCI6XCJ3ZWJraXQub3JnXCIsXCJj
b250ZW50LWlkXCI6MTIsXCJjb252ZXJzaW9uLXNpdGVcIjpcImV4YW1wbGUuY29tXCIsXCJjb252
ZXJzaW9uLWRhdGFcIjo0NCxcInJlcG9ydC12ZXJzaW9uXCI6MX0iKTsKLX0KLQotVEVTVChBZENs
aWNrQXR0cmlidXRpb24sIFZhbGlkTWF4VmFsdWVzKQotewotICAgIEFkQ2xpY2tBdHRyaWJ1dGlv
biBhdHRyaWJ1dGlvbiB7IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q2FtcGFpZ24oQWRDbGlja0F0dHJp
YnV0aW9uOjpNYXhFbnRyb3B5KSwgQWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2UgeyB3ZWJLaXRV
UkwgfSwgQWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9Owot
ICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoQWRDbGlja0F0
dHJpYnV0aW9uOjpDb252ZXJzaW9uKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSwgQWRD
bGlja0F0dHJpYnV0aW9uOjpQcmlvcml0eShBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHkp
KSk7Ci0KLSAgICBhdXRvIGF0dHJpYnV0aW9uVVJMID0gYXR0cmlidXRpb24ucmVwb3J0VVJMKCk7
Ci0gICAgCi0gICAgQVNTRVJUX0VRKGF0dHJpYnV0aW9uVVJMLnN0cmluZygpLCAiaHR0cHM6Ly93
ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLyIpOwotCi0gICAgQVNT
RVJUX0VRKGF0dHJpYnV0aW9uLmpzb24oKS0+dG9KU09OU3RyaW5nKCksICJ7XCJjb250ZW50LXR5
cGVcIjpcImNsaWNrXCIsXCJjb250ZW50LXNpdGVcIjpcIndlYmtpdC5vcmdcIixcImNvbnRlbnQt
aWRcIjo2MyxcImNvbnZlcnNpb24tc2l0ZVwiOlwiZXhhbXBsZS5jb21cIixcImNvbnZlcnNpb24t
ZGF0YVwiOjYzLFwicmVwb3J0LXZlcnNpb25cIjoxfSIpOwotfQotCi1URVNUKEFkQ2xpY2tBdHRy
aWJ1dGlvbiwgRWFybGllc3RUaW1lVG9TZW5kQXR0cmlidXRpb25NaW5pbXVtRGVsYXkpCi17Ci0g
ICAgQWRDbGlja0F0dHJpYnV0aW9uIGF0dHJpYnV0aW9uIHsgQWRDbGlja0F0dHJpYnV0aW9uOjpD
YW1wYWlnbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHkpLCBBZENsaWNrQXR0cmlidXRp
b246OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBBZENsaWNrQXR0cmlidXRpb246OkRlc3RpbmF0aW9u
IHsgZXhhbXBsZVVSTCB9IH07Ci0gICAgYXV0byBub3cgPSBXYWxsVGltZTo6bm93KCk7Ci0gICAg
YXR0cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChBZENsaWNrQXR0cmli
dXRpb246OkNvbnZlcnNpb24oQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5LCBBZENsaWNr
QXR0cmlidXRpb246OlByaW9yaXR5KEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSkpKTsK
LSAgICBhdXRvIGVhcmxpZXN0VGltZVRvU2VuZCA9IGF0dHJpYnV0aW9uLmVhcmxpZXN0VGltZVRv
U2VuZCgpOwotICAgIEFTU0VSVF9UUlVFKGVhcmxpZXN0VGltZVRvU2VuZCk7Ci0gICAgQVNTRVJU
X1RSVUUoZWFybGllc3RUaW1lVG9TZW5kLnZhbHVlKCkuc2Vjb25kc1NpbmNlRXBvY2goKSAtIDI0
X2ggPj0gbm93LnNlY29uZHNTaW5jZUVwb2NoKCkpOwotfQotCi1URVNUKEFkQ2xpY2tBdHRyaWJ1
dGlvbiwgVmFsaWRDb252ZXJzaW9uVVJMcykKLXsKLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVS
TFdpdGhvdXRQcmlvcml0eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9h
ZC1jbGljay1hdHRyaWJ1dGlvbi8yMiJfcyB9OwotICAgIGF1dG8gb3B0aW9uYWxDb252ZXJzaW9u
ID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25V
UkxXaXRob3V0UHJpb3JpdHkpOwotICAgIEFTU0VSVF9UUlVFKG9wdGlvbmFsQ29udmVyc2lvbik7
Ci0gICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90KTIyKTsK
LQotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5TWF4RW50cm9weSB7
IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlv
bi82MyJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6
cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5TWF4RW50
cm9weSk7Ci0gICAgQVNTRVJUX1RSVUUob3B0aW9uYWxDb252ZXJzaW9uKTsKLSAgICBBU1NFUlRf
RVEob3B0aW9uYWxDb252ZXJzaW9uLT5kYXRhLCAodWludDMyX3QpNjMpOwotICAgIAotICAgIGNv
bnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5QW5kTGVhZGluZ1plcm8geyB7IH0s
ICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vMDIi
X3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNl
Q29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhvdXRQcmlvcml0eUFuZExlYWRpbmda
ZXJvKTsKLSAgICBBU1NFUlRfVFJVRShvcHRpb25hbENvbnZlcnNpb24pOwotICAgIEFTU0VSVF9F
UShvcHRpb25hbENvbnZlcnNpb24tPmRhdGEsICh1aW50MzJfdCkyKTsKLQotICAgIGNvbnN0IFVS
TCBjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53
ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzIyLzEyIl9zIH07Ci0gICAgb3B0aW9uYWxD
b252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNv
bnZlcnNpb25VUkxXaXRoUHJpb3JpdHkpOwotICAgIEFTU0VSVF9UUlVFKG9wdGlvbmFsQ29udmVy
c2lvbik7Ci0gICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90
KTIyKTsKLSAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5wcmlvcml0eSwgKHVpbnQz
Ml90KTEyKTsKLQotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5TWF4RW50
cm9weSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRy
aWJ1dGlvbi82My82MyJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IEFkQ2xpY2tBdHRy
aWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5
TWF4RW50cm9weSk7Ci0gICAgQVNTRVJUX1RSVUUob3B0aW9uYWxDb252ZXJzaW9uKTsKLSAgICBB
U1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5kYXRhLCAodWludDMyX3QpNjMpOwotICAgIEFT
U0VSVF9FUShvcHRpb25hbENvbnZlcnNpb24tPnByaW9yaXR5LCAodWludDMyX3QpNjMpOwotICAg
IAotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5QW5kTGVhZGluZ1plcm8g
eyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRp
b24vMjIvMDIiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRp
b246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhQcmlvcml0eUFuZExl
YWRpbmdaZXJvKTsKLSAgICBBU1NFUlRfVFJVRShvcHRpb25hbENvbnZlcnNpb24pOwotICAgIEFT
U0VSVF9FUShvcHRpb25hbENvbnZlcnNpb24tPmRhdGEsICh1aW50MzJfdCkyMik7Ci0gICAgQVNT
RVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+cHJpb3JpdHksICh1aW50MzJfdCkyKTsKLX0KLQot
Ly8gTmVnYXRpdmUgdGVzdCBjYXNlcy4KLQotVEVTVChBZENsaWNrQXR0cmlidXRpb24sIEludmFs
aWRDYW1wYWlnbklkKQotewotICAgIEFkQ2xpY2tBdHRyaWJ1dGlvbiBhdHRyaWJ1dGlvbiB7IEFk
Q2xpY2tBdHRyaWJ1dGlvbjo6Q2FtcGFpZ24oQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5
ICsgMSksIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlIHsgd2ViS2l0VVJMIH0sIEFkQ2xpY2tB
dHRyaWJ1dGlvbjo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKLSAgICBhdHRyaWJ1dGlv
bi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29u
dmVyc2lvbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHksIEFkQ2xpY2tBdHRyaWJ1dGlv
bjo6UHJpb3JpdHkoQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5KSkpOwotCi0gICAgQVNT
RVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKLX0KLQotVEVTVChB
ZENsaWNrQXR0cmlidXRpb24sIEludmFsaWRTb3VyY2VIb3N0KQotewotICAgIEFkQ2xpY2tBdHRy
aWJ1dGlvbiBhdHRyaWJ1dGlvbiB7IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q2FtcGFpZ24oQWRDbGlj
a0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5KSwgQWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2UgeyBl
bXB0eVVSTCB9LCBBZENsaWNrQXR0cmlidXRpb246OkRlc3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9
IH07Ci0gICAgYXR0cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChBZENs
aWNrQXR0cmlidXRpb246OkNvbnZlcnNpb24oQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5
LCBBZENsaWNrQXR0cmlidXRpb246OlByaW9yaXR5KEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50
cm9weSkpKTsKLQotICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlzRW1w
dHkoKSk7Ci19Ci0KLVRFU1QoQWRDbGlja0F0dHJpYnV0aW9uLCBJbnZhbGlkRGVzdGluYXRpb25I
b3N0KQotewotICAgIEFkQ2xpY2tBdHRyaWJ1dGlvbiBhdHRyaWJ1dGlvbiB7IEFkQ2xpY2tBdHRy
aWJ1dGlvbjo6Q2FtcGFpZ24oQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5ICsgMSksIEFk
Q2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlIHsgd2ViS2l0VVJMIH0sIEFkQ2xpY2tBdHRyaWJ1dGlv
bjo6RGVzdGluYXRpb24geyBlbXB0eVVSTCB9IH07Ci0gICAgYXR0cmlidXRpb24uY29udmVydEFu
ZEdldEVhcmxpZXN0VGltZVRvU2VuZChBZENsaWNrQXR0cmlidXRpb246OkNvbnZlcnNpb24oQWRD
bGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5LCBBZENsaWNrQXR0cmlidXRpb246OlByaW9yaXR5
KEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSkpKTsKLQotICAgIEFTU0VSVF9UUlVFKGF0
dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlzRW1wdHkoKSk7Ci19Ci0KLVRFU1QoQWRDbGlja0F0dHJp
YnV0aW9uLCBJbnZhbGlkQ29udmVyc2lvbkRhdGEpCi17Ci0gICAgQWRDbGlja0F0dHJpYnV0aW9u
IGF0dHJpYnV0aW9uIHsgQWRDbGlja0F0dHJpYnV0aW9uOjpDYW1wYWlnbihBZENsaWNrQXR0cmli
dXRpb246Ok1heEVudHJvcHkpLCBBZENsaWNrQXR0cmlidXRpb246OlNvdXJjZSB7IHdlYktpdFVS
TCB9LCBBZENsaWNrQXR0cmlidXRpb246OkRlc3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07Ci0g
ICAgYXR0cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChBZENsaWNrQXR0
cmlidXRpb246OkNvbnZlcnNpb24oKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSArIDEp
LCBBZENsaWNrQXR0cmlidXRpb246OlByaW9yaXR5KEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50
cm9weSkpKTsKLQotICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlzRW1w
dHkoKSk7Ci19Ci0KLVRFU1QoQWRDbGlja0F0dHJpYnV0aW9uLCBJbnZhbGlkUHJpb3JpdHkpCi17
Ci0gICAgQWRDbGlja0F0dHJpYnV0aW9uIGF0dHJpYnV0aW9uIHsgQWRDbGlja0F0dHJpYnV0aW9u
OjpDYW1wYWlnbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHkpLCBBZENsaWNrQXR0cmli
dXRpb246OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBBZENsaWNrQXR0cmlidXRpb246OkRlc3RpbmF0
aW9uIHsgZXhhbXBsZVVSTCB9IH07Ci0gICAgYXR0cmlidXRpb24uY29udmVydEFuZEdldEVhcmxp
ZXN0VGltZVRvU2VuZChBZENsaWNrQXR0cmlidXRpb246OkNvbnZlcnNpb24oQWRDbGlja0F0dHJp
YnV0aW9uOjpNYXhFbnRyb3B5LCBBZENsaWNrQXR0cmlidXRpb246OlByaW9yaXR5KEFkQ2xpY2tB
dHRyaWJ1dGlvbjo6TWF4RW50cm9weSArIDEpKSk7Ci0KLSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1
dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkpOwotfQotCi1URVNUKEFkQ2xpY2tBdHRyaWJ1dGlv
biwgSW52YWxpZE1pc3NpbmdDb252ZXJzaW9uKQotewotICAgIEFkQ2xpY2tBdHRyaWJ1dGlvbiBh
dHRyaWJ1dGlvbiB7IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q2FtcGFpZ24oQWRDbGlja0F0dHJpYnV0
aW9uOjpNYXhFbnRyb3B5KSwgQWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2UgeyB3ZWJLaXRVUkwg
fSwgQWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OwotCi0g
ICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKLSAgICBB
U1NFUlRfRkFMU0UoYXR0cmlidXRpb24uZWFybGllc3RUaW1lVG9TZW5kKCkpOwotfQotCi1URVNU
KEFkQ2xpY2tBdHRyaWJ1dGlvbiwgSW52YWxpZENvbnZlcnNpb25VUkxzKQotewotICAgIGNvbnN0
IFVSTCBjb252ZXJzaW9uVVJMV2l0aFNpbmdsZURpZ2l0Q29udmVyc2lvbkRhdGEgeyB7IH0sICJo
dHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vMiJfcyB9
OwotICAgIGF1dG8gb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJz
ZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoU2luZ2xlRGlnaXRDb252ZXJzaW9u
RGF0YSk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci0gICAgCi0gICAg
Y29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoTm9uTnVtZXJhbENvbnZlcnNpb25EYXRhIHsgeyB9
LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzJz
Il9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJz
ZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoTm9uTnVtZXJhbENvbnZlcnNpb25E
YXRhKTsKLSAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKLQotICAgIGNvbnN0
IFVSTCBjb252ZXJzaW9uVVJMV2l0aE5lZ2F0aXZlQ29udmVyc2lvbkRhdGEgeyB7IH0sICJodHRw
czovL3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vLTIiX3MgfTsK
LSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVy
c2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhOZWdhdGl2ZUNvbnZlcnNpb25EYXRhKTsKLSAg
ICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKLQotICAgIGNvbnN0IFVSTCBjb252
ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRhdGEgeyB7IH0sICJodHRwczovL3dlYmtp
dC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vNjQiX3MgfTsKLSAgICBvcHRp
b25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVl
c3QoY29udmVyc2lvblVSTFdpdGhUb29MYXJnZUNvbnZlcnNpb25EYXRhKTsKLSAgICBBU1NFUlRf
RkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKLQotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJM
V2l0aFNpbmdsZURpZ2l0UHJpb3JpdHkgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwt
a25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vMjIvMiJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVy
c2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJz
aW9uVVJMV2l0aFNpbmdsZURpZ2l0UHJpb3JpdHkpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25h
bENvbnZlcnNpb24pOwotICAgIAotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aE5vbk51
bWVyYWxQcmlvcml0eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1j
bGljay1hdHRyaWJ1dGlvbi8yMi8ycyJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IEFk
Q2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0
aE5vbk51bWVyYWxQcmlvcml0eSk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lv
bik7Ci0gICAgCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoTmVnYXRpdmVQcmlvcml0
eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1
dGlvbi8yMi8tMiJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1
dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aE5lZ2F0aXZlUHJp
b3JpdHkpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwotICAgIAotICAg
IGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlUHJpb3JpdHkgeyB7IH0sICJodHRw
czovL3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vMjIvNjQiX3Mg
fTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29u
dmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhUb29MYXJnZVByaW9yaXR5KTsKLSAgICBB
U1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKLQotICAgIGNvbnN0IFVSTCBjb252ZXJz
aW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRhdGFBbmRQcmlvcml0eSB7IHsgfSwgImh0dHBz
Oi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi82NC8yMiJfcyB9
OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252
ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRhdGFBbmRQ
cmlvcml0eSk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci0KLSAgICBj
b25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhUb29MYXJnZUNvbnZlcnNpb25EYXRhQW5kVG9vTGFy
Z2VQcmlvcml0eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGlj
ay1hdHRyaWJ1dGlvbi82NC82NCJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IEFkQ2xp
Y2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFRv
b0xhcmdlQ29udmVyc2lvbkRhdGFBbmRUb29MYXJnZVByaW9yaXR5KTsKLSAgICBBU1NFUlRfRkFM
U0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKLQotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0
aEV4dHJhTGVhZGluZ1NsYXNoID0geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25v
d24vYWQtY2xpY2stYXR0cmlidXRpb24vLzIyLzEyIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJz
aW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNp
b25VUkxXaXRoRXh0cmFMZWFkaW5nU2xhc2gpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENv
bnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoRXh0cmFUcmFpbGlu
Z1NsYXNoID0geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2st
YXR0cmlidXRpb24vMjIvMTIvIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlj
a0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoRXh0
cmFUcmFpbGluZ1NsYXNoKTsKLSAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsK
LQotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFRyYWlsaW5nUXVlc3Rpb25NYXJrID0g
eyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRp
b24vMjIvMTI/Il9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0
aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdRdWVz
dGlvbk1hcmspOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwotfQotCi1U
RVNUKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgSW52YWxpZENvbnZlcnNpb25XaXRoRGlzYWxsb3dlZFVS
TENvbXBvbmVudHMpCi17Ci0gICAgLy8gUHJvdG9jb2wuCi0gICAgY29uc3QgVVJMIGNvbnZlcnNp
b25VUkxXaXRoSHR0cFByb3RvY29sIHsgeyB9LCAiaHR0cDovL3dlYmtpdC5vcmcvLndlbGwta25v
d24vYWQtY2xpY2stYXR0cmlidXRpb24vMiJfcyB9OwotICAgIGF1dG8gb3B0aW9uYWxDb252ZXJz
aW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNp
b25VUkxXaXRoSHR0cFByb3RvY29sKTsKLSAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJz
aW9uKTsKLQotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFdzc1Byb3RvY29sIHsgeyB9
LCAid3NzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yIl9z
IH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNv
bnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoV3NzUHJvdG9jb2wpOwotICAgIEFTU0VS
VF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25V
UkxXaXRoRmlsZVByb3RvY29sIHsgeyB9LCAiZmlsZTovLy8ud2VsbC1rbm93bi9hZC1jbGljay1h
dHRyaWJ1dGlvbi8yIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJp
YnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoRmlsZVByb3Rv
Y29sKTsKLSAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKLQotICAgIC8vIFVz
ZXJuYW1lIGFuZCBwYXNzd29yZC4KLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhVc2Vy
TmFtZSB7IHsgfSwgImh0dHBzOi8vdXNlckB3ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNr
LWF0dHJpYnV0aW9uLzIiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0
cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhVc2VyTmFt
ZSk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci0KLSAgICBjb25zdCBV
UkwgY29udmVyc2lvblVSTFdpdGhQYXNzd29yZCA9IHsgeyB9LCAiaHR0cHM6Ly86cHdkQHdlYmtp
dC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vMjIvMTI/Il9zIH07Ci0gICAg
b3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25S
ZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoUGFzc3dvcmQpOwotICAgIEFTU0VSVF9GQUxTRShvcHRp
b25hbENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoVXNlcm5h
bWVBbmRQYXNzd29yZCA9IHsgeyB9LCAiaHR0cHM6Ly91c2VyOnB3ZEB3ZWJraXQub3JnLy53ZWxs
LWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzIyLzEyPyJfcyB9OwotICAgIG9wdGlvbmFsQ29u
dmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252
ZXJzaW9uVVJMV2l0aFVzZXJuYW1lQW5kUGFzc3dvcmQpOwotICAgIEFTU0VSVF9GQUxTRShvcHRp
b25hbENvbnZlcnNpb24pOwotCi0gICAgLy8gUXVlcnkgc3RyaW5nLgotICAgIGNvbnN0IFVSTCBj
b252ZXJzaW9uVVJMV2l0aFRyYWlsaW5nUXVlc3Rpb25NYXJrID0geyB7IH0sICJodHRwczovL3dl
YmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vMjIvMTI/Il9zIH07Ci0g
ICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNp
b25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdRdWVzdGlvbk1hcmspOwotICAgIEFT
U0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNp
b25VUkxXaXRoUXVlcnlTdHJpbmcgPSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1r
bm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yMi8xMj9leHRyYT1kYXRhIl9zIH07Ci0gICAgb3B0
aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1
ZXN0KGNvbnZlcnNpb25VUkxXaXRoUXVlcnlTdHJpbmcpOwotICAgIEFTU0VSVF9GQUxTRShvcHRp
b25hbENvbnZlcnNpb24pOwotICAgIAotICAgIC8vIEZyYWdtZW50LgotICAgIGNvbnN0IFVSTCBj
b252ZXJzaW9uVVJMV2l0aFRyYWlsaW5nSGFzaCA9IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3Jn
Ly53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzIyLzEyIyJfcyB9OwotICAgIG9wdGlv
bmFsQ29udmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVz
dChjb252ZXJzaW9uVVJMV2l0aFRyYWlsaW5nSGFzaCk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlv
bmFsQ29udmVyc2lvbik7Ci0KLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhGcmFnbWVu
dCA9IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJp
YnV0aW9uLzIyLzEyI2ZyYWdtZW50Il9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRD
bGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRo
RnJhZ21lbnQpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwotfQotCi19
IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iYjM5YjBkY2Q2OWM3ZGJjOTlmMWZjMjBkMGNlMzY0OGU1ZDY5MDdmCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmNwcApAQCAtMCwwICsxLDI3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQu
aD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK2Nv
bnN0ZXhwciB1aW50MzJfdCBtaW42Qml0VmFsdWUgeyAwIH07CisKK2NvbnN0IFVSTCB3ZWJLaXRV
UkwgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmciX3MgfTsKK2NvbnN0IFVSTCBleGFtcGxlVVJM
IHsgeyB9LCAiaHR0cHM6Ly9leGFtcGxlLmNvbSJfcyB9OworY29uc3QgVVJMIGVtcHR5VVJMIHsg
fTsKKworLy8gUG9zaXRpdmUgdGVzdCBjYXNlcy4KKworVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCwgVmFsaWRNaW5WYWx1ZXMpCit7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0
cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFpZ24obWluNkJpdFZhbHVl
KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKKyAgICBhdHRy
aWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpDb252ZXJzaW9uKG1pbjZCaXRWYWx1ZSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OlByaW9yaXR5KG1pbjZCaXRWYWx1ZSkpKTsKKworICAgIGF1dG8gYXR0cmlidXRpb25VUkwgPSBh
dHRyaWJ1dGlvbi5yZXBvcnRVUkwoKTsKKyAgICAKKyAgICBBU1NFUlRfRVEoYXR0cmlidXRpb25V
Ukwuc3RyaW5nKCksICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGlj
ay1tZWFzdXJlbWVudC8iKTsKKworICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvbi5qc29uKCktPnRv
SlNPTlN0cmluZygpLCAie1wiY29udGVudC10eXBlXCI6XCJjbGlja1wiLFwiY29udGVudC1zaXRl
XCI6XCJ3ZWJraXQub3JnXCIsXCJjb250ZW50LWlkXCI6MCxcImNvbnZlcnNpb24tc2l0ZVwiOlwi
ZXhhbXBsZS5jb21cIixcImNvbnZlcnNpb24tZGF0YVwiOjAsXCJyZXBvcnQtdmVyc2lvblwiOjF9
Iik7Cit9CisKK1RFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIFZhbGlkTWlkVmFsdWVzKQor
eworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkNhbXBhaWduKCh1aW50MzJfdCkxMiksIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpTb3VyY2UgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3Rp
bmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07CisgICAgYXR0cmlidXRpb24uY29udmVydEFuZEdldEVh
cmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbigodWlu
dDMyX3QpNDQsIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eSgodWludDMyX3QpMjIp
KSk7CisKKyAgICBhdXRvIGF0dHJpYnV0aW9uVVJMID0gYXR0cmlidXRpb24ucmVwb3J0VVJMKCk7
CisgICAgCisgICAgQVNTRVJUX0VRKGF0dHJpYnV0aW9uVVJMLnN0cmluZygpLCAiaHR0cHM6Ly93
ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvIik7CisKKyAg
ICBBU1NFUlRfRVEoYXR0cmlidXRpb24uanNvbigpLT50b0pTT05TdHJpbmcoKSwgIntcImNvbnRl
bnQtdHlwZVwiOlwiY2xpY2tcIixcImNvbnRlbnQtc2l0ZVwiOlwid2Via2l0Lm9yZ1wiLFwiY29u
dGVudC1pZFwiOjEyLFwiY29udmVyc2lvbi1zaXRlXCI6XCJleGFtcGxlLmNvbVwiLFwiY29udmVy
c2lvbi1kYXRhXCI6NDQsXCJyZXBvcnQtdmVyc2lvblwiOjF9Iik7Cit9CisKK1RFU1QoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQsIFZhbGlkTWF4VmFsdWVzKQoreworICAgIFByaXZhdGVDbGlja01l
YXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNhbXBhaWdu
KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVz
dGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKKyAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0
RWFybGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpKSk7CisKKyAg
ICBhdXRvIGF0dHJpYnV0aW9uVVJMID0gYXR0cmlidXRpb24ucmVwb3J0VVJMKCk7CisgICAgCisg
ICAgQVNTRVJUX0VRKGF0dHJpYnV0aW9uVVJMLnN0cmluZygpLCAiaHR0cHM6Ly93ZWJraXQub3Jn
Ly53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvIik7CisKKyAgICBBU1NFUlRf
RVEoYXR0cmlidXRpb24uanNvbigpLT50b0pTT05TdHJpbmcoKSwgIntcImNvbnRlbnQtdHlwZVwi
OlwiY2xpY2tcIixcImNvbnRlbnQtc2l0ZVwiOlwid2Via2l0Lm9yZ1wiLFwiY29udGVudC1pZFwi
OjYzLFwiY29udmVyc2lvbi1zaXRlXCI6XCJleGFtcGxlLmNvbVwiLFwiY29udmVyc2lvbi1kYXRh
XCI6NjMsXCJyZXBvcnQtdmVyc2lvblwiOjF9Iik7Cit9CisKK1RFU1QoUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQsIEVhcmxpZXN0VGltZVRvU2VuZEF0dHJpYnV0aW9uTWluaW11bURlbGF5KQorewor
ICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkNhbXBhaWduKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSwg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKKyAgICBhdXRvIG5v
dyA9IFdhbGxUaW1lOjpub3coKTsKKyAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGll
c3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uKFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJp
b3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpKSk7CisgICAgYXV0byBl
YXJsaWVzdFRpbWVUb1NlbmQgPSBhdHRyaWJ1dGlvbi5lYXJsaWVzdFRpbWVUb1NlbmQoKTsKKyAg
ICBBU1NFUlRfVFJVRShlYXJsaWVzdFRpbWVUb1NlbmQpOworICAgIEFTU0VSVF9UUlVFKGVhcmxp
ZXN0VGltZVRvU2VuZC52YWx1ZSgpLnNlY29uZHNTaW5jZUVwb2NoKCkgLSAyNF9oID49IG5vdy5z
ZWNvbmRzU2luY2VFcG9jaCgpKTsKK30KKworVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwg
VmFsaWRDb252ZXJzaW9uVVJMcykKK3sKKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhv
dXRQcmlvcml0eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRl
LWNsaWNrLW1lYXN1cmVtZW50LzIyIl9zIH07CisgICAgYXV0byBvcHRpb25hbENvbnZlcnNpb24g
PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJz
aW9uVVJMV2l0aG91dFByaW9yaXR5KTsKKyAgICBBU1NFUlRfVFJVRShvcHRpb25hbENvbnZlcnNp
b24pOworICAgIEFTU0VSVF9FUShvcHRpb25hbENvbnZlcnNpb24tPmRhdGEsICh1aW50MzJfdCky
Mik7CisKKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhvdXRQcmlvcml0eU1heEVudHJv
cHkgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC82MyJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRob3V0
UHJpb3JpdHlNYXhFbnRyb3B5KTsKKyAgICBBU1NFUlRfVFJVRShvcHRpb25hbENvbnZlcnNpb24p
OworICAgIEFTU0VSVF9FUShvcHRpb25hbENvbnZlcnNpb24tPmRhdGEsICh1aW50MzJfdCk2Myk7
CisgICAgCisgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRob3V0UHJpb3JpdHlBbmRMZWFk
aW5nWmVybyB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNs
aWNrLW1lYXN1cmVtZW50LzAyIl9zIH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdp
dGhvdXRQcmlvcml0eUFuZExlYWRpbmdaZXJvKTsKKyAgICBBU1NFUlRfVFJVRShvcHRpb25hbENv
bnZlcnNpb24pOworICAgIEFTU0VSVF9FUShvcHRpb25hbENvbnZlcnNpb24tPmRhdGEsICh1aW50
MzJfdCkyKTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5IHsgeyB9
LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1l
bnQvMjIvMTIiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5
KTsKKyAgICBBU1NFUlRfVFJVRShvcHRpb25hbENvbnZlcnNpb24pOworICAgIEFTU0VSVF9FUShv
cHRpb25hbENvbnZlcnNpb24tPmRhdGEsICh1aW50MzJfdCkyMik7CisgICAgQVNTRVJUX0VRKG9w
dGlvbmFsQ29udmVyc2lvbi0+cHJpb3JpdHksICh1aW50MzJfdCkxMik7CisKKyAgICBjb25zdCBV
UkwgY29udmVyc2lvblVSTFdpdGhQcmlvcml0eU1heEVudHJvcHkgeyB7IH0sICJodHRwczovL3dl
YmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC82My82MyJfcyB9
OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJz
ZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHlNYXhFbnRyb3B5KTsK
KyAgICBBU1NFUlRfVFJVRShvcHRpb25hbENvbnZlcnNpb24pOworICAgIEFTU0VSVF9FUShvcHRp
b25hbENvbnZlcnNpb24tPmRhdGEsICh1aW50MzJfdCk2Myk7CisgICAgQVNTRVJUX0VRKG9wdGlv
bmFsQ29udmVyc2lvbi0+cHJpb3JpdHksICh1aW50MzJfdCk2Myk7CisgICAgCisgICAgY29uc3Qg
VVJMIGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHlBbmRMZWFkaW5nWmVybyB7IHsgfSwgImh0dHBz
Oi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIyLzAy
Il9zIH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhQcmlvcml0eUFuZExlYWRp
bmdaZXJvKTsKKyAgICBBU1NFUlRfVFJVRShvcHRpb25hbENvbnZlcnNpb24pOworICAgIEFTU0VS
VF9FUShvcHRpb25hbENvbnZlcnNpb24tPmRhdGEsICh1aW50MzJfdCkyMik7CisgICAgQVNTRVJU
X0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+cHJpb3JpdHksICh1aW50MzJfdCkyKTsKK30KKworLy8g
TmVnYXRpdmUgdGVzdCBjYXNlcy4KKworVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52
YWxpZENhbXBhaWduSWQpCit7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRp
b24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFpZ24oUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6Ok1heEVudHJvcHkgKyAxKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSB7
IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24geyBleGFt
cGxlVVJMIH0gfTsKKyAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9T
ZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uKFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpNYXhFbnRyb3B5LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpKSk7CisKKyAgICBBU1NFUlRfVFJVRShh
dHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkpOworfQorCitURVNUKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50LCBJbnZhbGlkU291cmNlSG9zdCkKK3sKKyAgICBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbihQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSksIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpTb3VyY2UgeyBlbXB0eVVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGlu
YXRpb24geyBleGFtcGxlVVJMIH0gfTsKKyAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFy
bGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uKFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpKSk7CisKKyAgICBB
U1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkpOworfQorCitURVNU
KFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkRGVzdGluYXRpb25Ib3N0KQoreworICAg
IFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkNhbXBhaWduKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5ICsgMSks
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uIHsgZW1wdHlVUkwgfSB9OworICAgIGF0dHJpYnV0
aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkNvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHksIFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4
RW50cm9weSkpKTsKKworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlz
RW1wdHkoKSk7Cit9CisKK1RFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRDb252
ZXJzaW9uRGF0YSkKK3sKKyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6TWF4RW50cm9weSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UgeyB3ZWJLaXRV
UkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9
IH07CisgICAgYXR0cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbigoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
Ok1heEVudHJvcHkgKyAxKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSkpOworCisgICAgQVNTRVJUX1RSVUUoYXR0
cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKK30KKworVEVTVChQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCwgSW52YWxpZFByaW9yaXR5KQoreworICAgIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNhbXBhaWduKFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRp
b24geyBleGFtcGxlVVJMIH0gfTsKKyAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGll
c3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uKFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJp
b3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkgKyAxKSkpOworCisgICAg
QVNTRVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKK30KKworVEVT
VChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZE1pc3NpbmdDb252ZXJzaW9uKQorewor
ICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkNhbXBhaWduKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSwg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKKworICAgIEFTU0VS
VF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlzRW1wdHkoKSk7CisgICAgQVNTRVJUX0ZB
TFNFKGF0dHJpYnV0aW9uLmVhcmxpZXN0VGltZVRvU2VuZCgpKTsKK30KKworVEVTVChQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZENvbnZlcnNpb25VUkxzKQoreworICAgIGNvbnN0IFVS
TCBjb252ZXJzaW9uVVJMV2l0aFNpbmdsZURpZ2l0Q29udmVyc2lvbkRhdGEgeyB7IH0sICJodHRw
czovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yIl9z
IH07CisgICAgYXV0byBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFNpbmdsZURpZ2l0Q29u
dmVyc2lvbkRhdGEpOworICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworICAg
IAorICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aE5vbk51bWVyYWxDb252ZXJzaW9uRGF0
YSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1l
YXN1cmVtZW50LzJzIl9zIH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhOb25O
dW1lcmFsQ29udmVyc2lvbkRhdGEpOworICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNp
b24pOworCisgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoTmVnYXRpdmVDb252ZXJzaW9u
RGF0YSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNr
LW1lYXN1cmVtZW50Ly0yIl9zIH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhO
ZWdhdGl2ZUNvbnZlcnNpb25EYXRhKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJz
aW9uKTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lv
bkRhdGEgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGlj
ay1tZWFzdXJlbWVudC82NCJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRo
VG9vTGFyZ2VDb252ZXJzaW9uRGF0YSk7CisgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVy
c2lvbik7CisKKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhTaW5nbGVEaWdpdFByaW9y
aXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2st
bWVhc3VyZW1lbnQvMjIvMiJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRo
U2luZ2xlRGlnaXRQcmlvcml0eSk7CisgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lv
bik7CisgICAgCisgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoTm9uTnVtZXJhbFByaW9y
aXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2st
bWVhc3VyZW1lbnQvMjIvMnMiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0
aE5vbk51bWVyYWxQcmlvcml0eSk7CisgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lv
bik7CisgICAgCisgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoTmVnYXRpdmVQcmlvcml0
eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1l
YXN1cmVtZW50LzIyLy0yIl9zIH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhO
ZWdhdGl2ZVByaW9yaXR5KTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsK
KyAgICAKKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhUb29MYXJnZVByaW9yaXR5IHsg
eyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3Vy
ZW1lbnQvMjIvNjQiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFRvb0xh
cmdlUHJpb3JpdHkpOworICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworCisg
ICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VDb252ZXJzaW9uRGF0YUFuZFBy
aW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xp
Y2stbWVhc3VyZW1lbnQvNjQvMjIiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJM
V2l0aFRvb0xhcmdlQ29udmVyc2lvbkRhdGFBbmRQcmlvcml0eSk7CisgICAgQVNTRVJUX0ZBTFNF
KG9wdGlvbmFsQ29udmVyc2lvbik7CisKKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhU
b29MYXJnZUNvbnZlcnNpb25EYXRhQW5kVG9vTGFyZ2VQcmlvcml0eSB7IHsgfSwgImh0dHBzOi8v
d2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzY0LzY0Il9z
IH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBh
cnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhUb29MYXJnZUNvbnZlcnNpb25E
YXRhQW5kVG9vTGFyZ2VQcmlvcml0eSk7CisgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVy
c2lvbik7CisKKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhFeHRyYUxlYWRpbmdTbGFz
aCA9IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2st
bWVhc3VyZW1lbnQvLzIyLzEyIl9zIH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdp
dGhFeHRyYUxlYWRpbmdTbGFzaCk7CisgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lv
bik7CisKKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhFeHRyYVRyYWlsaW5nU2xhc2gg
PSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1l
YXN1cmVtZW50LzIyLzEyLyJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRo
RXh0cmFUcmFpbGluZ1NsYXNoKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9u
KTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFRyYWlsaW5nUXVlc3Rpb25NYXJr
ID0geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC8yMi8xMj8iX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0
aFRyYWlsaW5nUXVlc3Rpb25NYXJrKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJz
aW9uKTsKK30KKworVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZENvbnZlcnNp
b25XaXRoRGlzYWxsb3dlZFVSTENvbXBvbmVudHMpCit7CisgICAgLy8gUHJvdG9jb2wuCisgICAg
Y29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoSHR0cFByb3RvY29sIHsgeyB9LCAiaHR0cDovL3dl
YmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yIl9zIH07Cisg
ICAgYXV0byBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFy
c2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aEh0dHBQcm90b2NvbCk7CisgICAg
QVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CisKKyAgICBjb25zdCBVUkwgY29udmVy
c2lvblVSTFdpdGhXc3NQcm90b2NvbCB7IHsgfSwgIndzczovL3dlYmtpdC5vcmcvLndlbGwta25v
d24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yIl9zIH07CisgICAgb3B0aW9uYWxDb252ZXJz
aW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29u
dmVyc2lvblVSTFdpdGhXc3NQcm90b2NvbCk7CisgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29u
dmVyc2lvbik7CisKKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhGaWxlUHJvdG9jb2wg
eyB7IH0sICJmaWxlOi8vLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMiJf
cyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpw
YXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoRmlsZVByb3RvY29sKTsKKyAg
ICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKworICAgIC8vIFVzZXJuYW1lIGFu
ZCBwYXNzd29yZC4KKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhVc2VyTmFtZSB7IHsg
fSwgImh0dHBzOi8vdXNlckB3ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVh
c3VyZW1lbnQvMiJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVXNlck5h
bWUpOworICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworCisgICAgY29uc3Qg
VVJMIGNvbnZlcnNpb25VUkxXaXRoUGFzc3dvcmQgPSB7IHsgfSwgImh0dHBzOi8vOnB3ZEB3ZWJr
aXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMjIvMTI/Il9zIH07
CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNl
Q29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhQYXNzd29yZCk7CisgICAgQVNTRVJU
X0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CisKKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVS
TFdpdGhVc2VybmFtZUFuZFBhc3N3b3JkID0geyB7IH0sICJodHRwczovL3VzZXI6cHdkQHdlYmtp
dC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8xMj8iX3MgfTsK
KyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VD
b252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFVzZXJuYW1lQW5kUGFzc3dvcmQpOwor
ICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworCisgICAgLy8gUXVlcnkgc3Ry
aW5nLgorICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFRyYWlsaW5nUXVlc3Rpb25NYXJr
ID0geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC8yMi8xMj8iX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0
aFRyYWlsaW5nUXVlc3Rpb25NYXJrKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJz
aW9uKTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFF1ZXJ5U3RyaW5nID0geyB7
IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJl
bWVudC8yMi8xMj9leHRyYT1kYXRhIl9zIH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVS
TFdpdGhRdWVyeVN0cmluZyk7CisgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7
CisgICAgCisgICAgLy8gRnJhZ21lbnQuCisgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRo
VHJhaWxpbmdIYXNoID0geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJp
dmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8xMiMiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNp
b24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252
ZXJzaW9uVVJMV2l0aFRyYWlsaW5nSGFzaCk7CisgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29u
dmVyc2lvbik7CisKKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhGcmFnbWVudCA9IHsg
eyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3Vy
ZW1lbnQvMjIvMTIjZnJhZ21lbnQiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJM
V2l0aEZyYWdtZW50KTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwK
aW5kZXggNTUxNjJmZjM0M2QyNWY2OTA2YzM5Mjc2ZmQ1YTg5MWVkZjI5Yjg2OS4uZmU4NTM5ZjM1
MThmZTY1NzBkNzQzNThkYTc3MDA0YWUwOWJmOWNkZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsCkBAIC02Niw3ICs2Niw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICB1bmRlZmlu
ZWQgZHVtcERPTUFzV2ViQXJjaGl2ZSgpOwogICAgIHVuZGVmaW5lZCBkdW1wUG9saWN5RGVsZWdh
dGVDYWxsYmFja3MoKTsKICAgICB1bmRlZmluZWQgZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3Mo
KTsKLSAgICB1bmRlZmluZWQgZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbigpOworICAgIHVuZGVmaW5l
ZCBkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKIAogICAgIHVuZGVmaW5lZCBjbGVhckRP
TUNhY2hlcygpOwogICAgIHVuZGVmaW5lZCBjbGVhckRPTUNhY2hlKERPTVN0cmluZyBvcmlnaW4p
OwpAQCAtMzk3LDEwICszOTcsMTAgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHVuZGVm
aW5lZCBjbGVhblVwS2V5Y2hhaW4oRE9NU3RyaW5nIGF0dHJMYWJlbCwgb3B0aW9uYWwgRE9NU3Ry
aW5nIGFwcGxpY2F0aW9uTGFiZWxCYXNlNjQpOwogICAgIGJvb2xlYW4ga2V5RXhpc3RzSW5LZXlj
aGFpbihET01TdHJpbmcgYXR0ckxhYmVsLCBET01TdHJpbmcgYXBwbGljYXRpb25MYWJlbEJhc2U2
NCk7CiAKLSAgICAvLyBBZCBDbGljayBBdHRyaWJ1dGlvbgotICAgIHVuZGVmaW5lZCBjbGVhckFk
Q2xpY2tBdHRyaWJ1dGlvbigpOwotICAgIHVuZGVmaW5lZCBjbGVhckFkQ2xpY2tBdHRyaWJ1dGlv
bnNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCk7Ci0gICAgdW5kZWZpbmVkIHNldEFkQ2xpY2tB
dHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2xlYW4gdmFsdWUpOwotICAgIHVu
ZGVmaW5lZCBzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyhET01T
dHJpbmcgdXJsKTsKLSAgICB1bmRlZmluZWQgbWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGly
ZWRGb3JUZXN0aW5nKCk7CisgICAgLy8gUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudAorICAgIHVu
ZGVmaW5lZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgdW5kZWZpbmVkIGNs
ZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCgpOwor
ICAgIHVuZGVmaW5lZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JU
ZXN0aW5nKGJvb2xlYW4gdmFsdWUpOworICAgIHVuZGVmaW5lZCBzZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKERPTVN0cmluZyB1cmwpOworICAgIHVuZGVm
aW5lZCBtYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOwog
fTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCmluZGV4IGRmZDAxYTMyZjMxMWUxMjQ0YWE3ODc5YjQzNzU5N2FmYWMzZWZkOWUu
LjNjYmU0N2M4ZTlhYzNlOTUxODdkMGM1ZmY2YzNlZmIxNWYzYzMxYWYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAt
MTk5NSwzNSArMTk5NSwzNSBAQCB2b2lkIFRlc3RSdW5uZXI6OmFib3J0TW9kYWwoKQogICAgIHBv
c3RTeW5jaHJvbm91c01lc3NhZ2UoIkFib3J0TW9kYWwiKTsKIH0KIAotdm9pZCBUZXN0UnVubmVy
OjpkdW1wQWRDbGlja0F0dHJpYnV0aW9uKCkKK3ZvaWQgVGVzdFJ1bm5lcjo6ZHVtcFByaXZhdGVD
bGlja01lYXN1cmVtZW50KCkKIHsKLSAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiRHVt
cEFkQ2xpY2tBdHRyaWJ1dGlvbiIpOworICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJE
dW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQiKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpjbGVh
ckFkQ2xpY2tBdHRyaWJ1dGlvbigpCit2b2lkIFRlc3RSdW5uZXI6OmNsZWFyUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQoKQogewotICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJDbGVhckFk
Q2xpY2tBdHRyaWJ1dGlvbiIpOworICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJDbGVh
clByaXZhdGVDbGlja01lYXN1cmVtZW50Iik7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6Y2xlYXJB
ZENsaWNrQXR0cmlidXRpb25zVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCgpCit2b2lkIFRlc3RS
dW5uZXI6OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVt
b3ZhbCgpCiB7Ci0gICAgcG9zdFN5bmNocm9ub3VzTWVzc2FnZSgiQ2xlYXJBZENsaWNrQXR0cmli
dXRpb25zVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCIpOworICAgIHBvc3RTeW5jaHJvbm91c01l
c3NhZ2UoIkNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVt
b3ZhbCIpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJy
aWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpCit2b2lkIFRlc3RSdW5uZXI6OnNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSkKIHsK
LSAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiU2V0QWRDbGlja0F0dHJpYnV0aW9uT3Zl
cnJpZGVUaW1lckZvclRlc3RpbmciLCB2YWx1ZSk7CisgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1l
c3NhZ2UoIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmci
LCB2YWx1ZSk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0QWRDbGlja0F0dHJpYnV0aW9uQ29u
dmVyc2lvblVSTEZvclRlc3RpbmcoSlNTdHJpbmdSZWYgdXJsU3RyaW5nKQordm9pZCBUZXN0UnVu
bmVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKEpT
U3RyaW5nUmVmIHVybFN0cmluZykKIHsKLSAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgi
U2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3RpbmciLAorICAgIHBvc3RT
eW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNp
b25VUkxGb3JUZXN0aW5nIiwKICAgICAgICAgYWRvcHRXSyhXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0
cmluZyh0b1dURlN0cmluZyh1cmxTdHJpbmcpLnV0ZjgoKS5kYXRhKCkpKSk7CiB9CiAKLXZvaWQg
VGVzdFJ1bm5lcjo6bWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKCkK
K3ZvaWQgVGVzdFJ1bm5lcjo6bWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZv
clRlc3RpbmcoKQogewotICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJNYXJrQWRDbGlj
a0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmciKTsKKyAgICBwb3N0U3luY2hyb25vdXNQ
YWdlTWVzc2FnZSgiTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rp
bmciKTsKIH0KIAogYm9vbCBUZXN0UnVubmVyOjpoYXNBcHBCb3VuZFNlc3Npb24oKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRl
eCAwYmQzYTA5ZTMyZDcxYjM1MTZlNGY4ZTA1YmVhMjJhZjk5NGIxZDIzLi4xNGU1M2M1MTNhMjky
YjFhMDAzY2VmZDIzNTM3YjYwOTQ4OGE3YWRhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtNTA3LDEzICs1MDcsMTMgQEAg
cHVibGljOgogCiAgICAgdW5zaWduZWQgbG9uZyBzZXJ2ZXJUcnVzdEV2YWx1YXRpb25DYWxsYmFj
a0NhbGxzQ291bnQoKTsKIAotICAgIC8vIEFkIENsaWNrIEF0dHJpYnV0aW9uLgotICAgIHZvaWQg
ZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbigpOwotICAgIHZvaWQgY2xlYXJBZENsaWNrQXR0cmlidXRp
b24oKTsKLSAgICB2b2lkIGNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRlRGF0
YVJlbW92YWwoKTsKLSAgICB2b2lkIHNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJG
b3JUZXN0aW5nKGJvb2wgdmFsdWUpOwotICAgIHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uQ29u
dmVyc2lvblVSTEZvclRlc3RpbmcoSlNTdHJpbmdSZWYpOwotICAgIHZvaWQgbWFya0FkQ2xpY2tB
dHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CisgICAgLy8gUHJpdmF0ZSBDbGljayBN
ZWFzdXJlbWVudC4KKyAgICB2b2lkIGR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOworICAg
IHZvaWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOworICAgIHZvaWQgY2xlYXJQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCk7CisgICAgdm9p
ZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wg
dmFsdWUpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJM
Rm9yVGVzdGluZyhKU1N0cmluZ1JlZik7CisgICAgdm9pZCBtYXJrUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOwogCiBwcml2YXRlOgogICAgIFRlc3RSdW5uZXIo
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZTRhYWYz
OGI1OGJjMmRmMDU2MGM1MjkwZjFhZDhmNGQ0ZGZiMzU1YS4uMTZhZDE3ZTI0YmEzZWIxZGU3NzM3
OWVmYjg1MjRiODY2ZTNjN2I2NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAKQEAgLTEwNDYsNyArMTA0Niw3IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0
U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMsIFJlCiAg
ICAgc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoKTsKICAgICBjbGVhckxvYWRlZFN1
YnJlc291cmNlRG9tYWlucygpOwogICAgIGNsZWFyQXBwQm91bmRTZXNzaW9uKCk7Ci0gICAgY2xl
YXJBZENsaWNrQXR0cmlidXRpb24oKTsKKyAgICBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50
KCk7CiAKICAgICBXS1BhZ2VEaXNwYXRjaEFjdGl2aXR5U3RhdGVVcGRhdGVGb3JUZXN0aW5nKG1f
bWFpbldlYlZpZXctPnBhZ2UoKSk7CiAKQEAgLTM1MDgsMzUgKzM1MDgsMzUgQEAgdm9pZCBUZXN0
Q29udHJvbGxlcjo6c2V0U2VydmljZVdvcmtlckZldGNoVGltZW91dEZvclRlc3RpbmcoZG91Ymxl
IHNlY29uZHMpCiAgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U2VydmljZVdvcmtlckZldGNoVGlt
ZW91dEZvclRlc3Rpbmcod2Vic2l0ZURhdGFTdG9yZSgpLCBzZWNvbmRzKTsKIH0KIAotc3RydWN0
IEFkQ2xpY2tBdHRyaWJ1dGlvblN0cmluZ1Jlc3VsdENhbGxiYWNrQ29udGV4dCB7Ci0gICAgZXhw
bGljaXQgQWRDbGlja0F0dHJpYnV0aW9uU3RyaW5nUmVzdWx0Q2FsbGJhY2tDb250ZXh0KFRlc3RD
b250cm9sbGVyJiBjb250cm9sbGVyKQorc3RydWN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50U3Ry
aW5nUmVzdWx0Q2FsbGJhY2tDb250ZXh0IHsKKyAgICBleHBsaWNpdCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFN0cmluZ1Jlc3VsdENhbGxiYWNrQ29udGV4dChUZXN0Q29udHJvbGxlciYgY29udHJv
bGxlcikKICAgICAgICAgOiB0ZXN0Q29udHJvbGxlcihjb250cm9sbGVyKQogICAgIHsKICAgICB9
CiAgICAgCiAgICAgVGVzdENvbnRyb2xsZXImIHRlc3RDb250cm9sbGVyOwogICAgIGJvb2wgZG9u
ZSB7IGZhbHNlIH07Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGFkQ2xpY2tBdHRyaWJ1
dGlvblJlcHJlc2VudGF0aW9uOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBwcml2YXRl
Q2xpY2tNZWFzdXJlbWVudFJlcHJlc2VudGF0aW9uOwogfTsKIAotc3RhdGljIHZvaWQgYWRDbGlj
a0F0dHJpYnV0aW9uU3RyaW5nUmVzdWx0Q2FsbGJhY2soV0tTdHJpbmdSZWYgYWRDbGlja0F0dHJp
YnV0aW9uUmVwcmVzZW50YXRpb24sIHZvaWQqIHVzZXJEYXRhKQorc3RhdGljIHZvaWQgcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRTdHJpbmdSZXN1bHRDYWxsYmFjayhXS1N0cmluZ1JlZiBwcml2YXRl
Q2xpY2tNZWFzdXJlbWVudFJlcHJlc2VudGF0aW9uLCB2b2lkKiB1c2VyRGF0YSkKIHsKLSAgICBh
dXRvKiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8QWRDbGlja0F0dHJpYnV0aW9uU3RyaW5nUmVzdWx0
Q2FsbGJhY2tDb250ZXh0Kj4odXNlckRhdGEpOwotICAgIGNvbnRleHQtPmFkQ2xpY2tBdHRyaWJ1
dGlvblJlcHJlc2VudGF0aW9uID0gYWRDbGlja0F0dHJpYnV0aW9uUmVwcmVzZW50YXRpb247Cisg
ICAgYXV0byogY29udGV4dCA9IHN0YXRpY19jYXN0PFByaXZhdGVDbGlja01lYXN1cmVtZW50U3Ry
aW5nUmVzdWx0Q2FsbGJhY2tDb250ZXh0Kj4odXNlckRhdGEpOworICAgIGNvbnRleHQtPnByaXZh
dGVDbGlja01lYXN1cmVtZW50UmVwcmVzZW50YXRpb24gPSBwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFJlcHJlc2VudGF0aW9uOwogICAgIGNvbnRleHQtPmRvbmUgPSB0cnVlOwogICAgIGNvbnRleHQt
PnRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKIH0KIAotU3RyaW5nIFRlc3RDb250cm9sbGVy
OjpkdW1wQWRDbGlja0F0dHJpYnV0aW9uKCkKK1N0cmluZyBUZXN0Q29udHJvbGxlcjo6ZHVtcFBy
aXZhdGVDbGlja01lYXN1cmVtZW50KCkKIHsKLSAgICBBZENsaWNrQXR0cmlidXRpb25TdHJpbmdS
ZXN1bHRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKLSAgICBXS1BhZ2VE
dW1wQWRDbGlja0F0dHJpYnV0aW9uKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgYWRDbGlja0F0dHJp
YnV0aW9uU3RyaW5nUmVzdWx0Q2FsbGJhY2ssICZjYWxsYmFja0NvbnRleHQpOworICAgIFByaXZh
dGVDbGlja01lYXN1cmVtZW50U3RyaW5nUmVzdWx0Q2FsbGJhY2tDb250ZXh0IGNhbGxiYWNrQ29u
dGV4dCgqdGhpcyk7CisgICAgV0tQYWdlRHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KG1fbWFp
bldlYlZpZXctPnBhZ2UoKSwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdHJpbmdSZXN1bHRDYWxs
YmFjaywgJmNhbGxiYWNrQ29udGV4dCk7CiAgICAgcnVuVW50aWwoY2FsbGJhY2tDb250ZXh0LmRv
bmUsIG5vVGltZW91dCk7Ci0gICAgcmV0dXJuIHRvV1RGU3RyaW5nKGNhbGxiYWNrQ29udGV4dC5h
ZENsaWNrQXR0cmlidXRpb25SZXByZXNlbnRhdGlvbi5nZXQoKSk7CisgICAgcmV0dXJuIHRvV1RG
U3RyaW5nKGNhbGxiYWNrQ29udGV4dC5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudFJlcHJlc2VudGF0
aW9uLmdldCgpKTsKIH0KIAotc3RydWN0IEFkQ2xpY2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFja0Nv
bnRleHQgewotICAgIGV4cGxpY2l0IEFkQ2xpY2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFja0NvbnRl
eHQoVGVzdENvbnRyb2xsZXImIGNvbnRyb2xsZXIpCitzdHJ1Y3QgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRWb2lkQ2FsbGJhY2tDb250ZXh0IHsKKyAgICBleHBsaWNpdCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFZvaWRDYWxsYmFja0NvbnRleHQoVGVzdENvbnRyb2xsZXImIGNvbnRyb2xsZXIpCiAg
ICAgICAgIDogdGVzdENvbnRyb2xsZXIoY29udHJvbGxlcikKICAgICB7CiAgICAgfQpAQCAtMzU0
NSw0NSArMzU0NSw0NSBAQCBzdHJ1Y3QgQWRDbGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrQ29u
dGV4dCB7CiAgICAgYm9vbCBkb25lIHsgZmFsc2UgfTsKIH07CiAKLXN0YXRpYyB2b2lkIGFkQ2xp
Y2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFjayh2b2lkKiB1c2VyRGF0YSkKK3N0YXRpYyB2b2lkIHBy
aXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrKHZvaWQqIHVzZXJEYXRhKQogewotICAg
IGF1dG8qIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxBZENsaWNrQXR0cmlidXRpb25Wb2lkQ2FsbGJh
Y2tDb250ZXh0Kj4odXNlckRhdGEpOworICAgIGF1dG8qIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFja0NvbnRleHQqPih1c2VyRGF0YSk7CiAg
ICAgY29udGV4dC0+ZG9uZSA9IHRydWU7CiAgICAgY29udGV4dC0+dGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOwogfQogCi12b2lkIFRlc3RDb250cm9sbGVyOjpjbGVhckFkQ2xpY2tBdHRyaWJ1
dGlvbigpCit2b2lkIFRlc3RDb250cm9sbGVyOjpjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50
KCkKIHsKLSAgICBBZENsaWNrQXR0cmlidXRpb25Wb2lkQ2FsbGJhY2tDb250ZXh0IGNhbGxiYWNr
Q29udGV4dCgqdGhpcyk7Ci0gICAgV0tQYWdlQ2xlYXJBZENsaWNrQXR0cmlidXRpb24obV9tYWlu
V2ViVmlldy0+cGFnZSgpLCBhZENsaWNrQXR0cmlidXRpb25Wb2lkQ2FsbGJhY2ssICZjYWxsYmFj
a0NvbnRleHQpOworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrQ29udGV4
dCBjYWxsYmFja0NvbnRleHQoKnRoaXMpOworICAgIFdLUGFnZUNsZWFyUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZv
aWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4dCk7CiAgICAgcnVuVW50aWwoY2FsbGJhY2tDb250
ZXh0LmRvbmUsIG5vVGltZW91dCk7CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OmNsZWFyQWRD
bGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoKQordm9pZCBUZXN0Q29u
dHJvbGxlcjo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFS
ZW1vdmFsKCkKIHsKLSAgICBBZENsaWNrQXR0cmlidXRpb25Wb2lkQ2FsbGJhY2tDb250ZXh0IGNh
bGxiYWNrQ29udGV4dCgqdGhpcyk7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJBZENsaWNr
QXR0cmlidXRpb25zVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCh3ZWJzaXRlRGF0YVN0b3JlKCks
ICZjYWxsYmFja0NvbnRleHQsIGFkQ2xpY2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFjayk7CisgICAg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2tDb250ZXh0IGNhbGxiYWNrQ29udGV4
dCgqdGhpcyk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKHdlYnNpdGVEYXRhU3RvcmUoKSwgJmNhbGxi
YWNrQ29udGV4dCwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2spOwogICAgIHJ1
blVudGlsKGNhbGxiYWNrQ29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogfQogCi12b2lkIFRlc3RD
b250cm9sbGVyOjpzZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhi
b29sIHZhbHVlKQordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHVlKQogewotICAgIEFkQ2xpY2tBdHRy
aWJ1dGlvblZvaWRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKLSAgICBX
S1BhZ2VTZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhtX21haW5X
ZWJWaWV3LT5wYWdlKCksIHZhbHVlLCBhZENsaWNrQXR0cmlidXRpb25Wb2lkQ2FsbGJhY2ssICZj
YWxsYmFja0NvbnRleHQpOworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNr
Q29udGV4dCBjYWxsYmFja0NvbnRleHQoKnRoaXMpOworICAgIFdLUGFnZVNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcobV9tYWluV2ViVmlldy0+cGFnZSgp
LCB2YWx1ZSwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2ssICZjYWxsYmFja0Nv
bnRleHQpOwogICAgIHJ1blVudGlsKGNhbGxiYWNrQ29udGV4dC5kb25lLCBub1RpbWVvdXQpOwog
fQogCi12b2lkIFRlc3RDb250cm9sbGVyOjpzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9u
VVJMRm9yVGVzdGluZyhXS1VSTFJlZiB1cmwpCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdLVVJMUmVmIHVybCkK
IHsKLSAgICBBZENsaWNrQXR0cmlidXRpb25Wb2lkQ2FsbGJhY2tDb250ZXh0IGNhbGxiYWNrQ29u
dGV4dCgqdGhpcyk7Ci0gICAgV0tQYWdlU2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVS
TEZvclRlc3RpbmcobV9tYWluV2ViVmlldy0+cGFnZSgpLCB1cmwsIGFkQ2xpY2tBdHRyaWJ1dGlv
blZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4dCk7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRWb2lkQ2FsbGJhY2tDb250ZXh0IGNhbGxiYWNrQ29udGV4dCgqdGhpcyk7CisgICAgV0tQ
YWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhtX21h
aW5XZWJWaWV3LT5wYWdlKCksIHVybCwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJh
Y2ssICZjYWxsYmFja0NvbnRleHQpOwogICAgIHJ1blVudGlsKGNhbGxiYWNrQ29udGV4dC5kb25l
LCBub1RpbWVvdXQpOwogfQogCi12b2lkIFRlc3RDb250cm9sbGVyOjptYXJrQWRDbGlja0F0dHJp
YnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoKQordm9pZCBUZXN0Q29udHJvbGxlcjo6bWFya1By
aXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKQogewotICAgIEFkQ2xp
Y2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsK
LSAgICBXS1BhZ2VNYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcobV9t
YWluV2ViVmlldy0+cGFnZSgpLCBhZENsaWNrQXR0cmlidXRpb25Wb2lkQ2FsbGJhY2ssICZjYWxs
YmFja0NvbnRleHQpOworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrQ29u
dGV4dCBjYWxsYmFja0NvbnRleHQoKnRoaXMpOworICAgIFdLUGFnZU1hcmtQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2ssICZjYWxsYmFja0NvbnRleHQpOwogICAg
IHJ1blVudGlsKGNhbGxiYWNrQ29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogfQogCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggMzNiNjQ5NGFjNjI0NGI5MmZjYjc4
MDlhNThkNzIwM2M3YzEyNThhOC4uMDkxNWVkOGNmYjVlYzRjNTc4ZTI4OGE5OTg5NWE0OGIwOWVj
NDNkYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMzQwLDEy
ICszNDAsMTIgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0RvaW5nTWVkaWFDYXB0dXJlKCkgY29u
c3Q7CiAKLSAgICBTdHJpbmcgZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbigpOwotICAgIHZvaWQgY2xl
YXJBZENsaWNrQXR0cmlidXRpb24oKTsKLSAgICB2b2lkIGNsZWFyQWRDbGlja0F0dHJpYnV0aW9u
c1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoKTsKLSAgICB2b2lkIHNldEFkQ2xpY2tBdHRyaWJ1
dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpOwotICAgIHZvaWQgc2V0QWRD
bGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3RpbmcoV0tVUkxSZWYpOwotICAgIHZv
aWQgbWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CisgICAgU3Ry
aW5nIGR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOworICAgIHZvaWQgY2xlYXJQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCgpOworICAgIHZvaWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCk7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpOworICAgIHZvaWQg
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhXS1VSTFJl
Zik7CisgICAgdm9pZCBtYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVz
dGluZygpOwogCiAgICAgdm9pZCBkaWRTZXRBcHBCb3VuZERvbWFpbnMoKSBjb25zdDsKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCAxNGMwNGVkMWZhOTM5
NGY1NzJmNjQ5YTkxYjQ3ZWZiMjA2ZWY4NTRlLi5mMjQ3ZmI1NmEwNTY4M2QyOGZlMzhmNDU5NmQz
M2YzYTA4NDdlYjFjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cApAQCAtMjQzLDggKzI0Myw4IEBAIHZvaWQgVGVzdEludm9jYXRpb246OmR1bXBSZXN1bHRzKCkK
ICAgICBpZiAobV9zaG91bGREdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcykKICAgICAgICAgbV90
ZXh0T3V0cHV0LmFwcGVuZChtX3NhdmVkUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5pc051bGwoKSA/
IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5kdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygp
IDogbV9zYXZlZFJlc291cmNlTG9hZFN0YXRpc3RpY3MpOwogCi0gICAgaWYgKG1fc2hvdWxkRHVt
cEFkQ2xpY2tBdHRyaWJ1dGlvbikKLSAgICAgICAgbV90ZXh0T3V0cHV0LmFwcGVuZChUZXN0Q29u
dHJvbGxlcjo6c2luZ2xldG9uKCkuZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbigpKTsKKyAgICBpZiAo
bV9zaG91bGREdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpCisgICAgICAgIG1fdGV4dE91dHB1
dC5hcHBlbmQoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmR1bXBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCgpKTsKICAgICAKICAgICBpZiAobV90ZXh0T3V0cHV0Lmxlbmd0aCgpIHx8ICFtX2F1
ZGlvUmVzdWx0KQogICAgICAgICBkdW1wKG1fdGV4dE91dHB1dC50b1N0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwpAQCAtMTMwNCwxOCArMTMwNCwxOCBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRl
c3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBpZiAoV0tTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIkR1bXBBZENsaWNrQXR0cmlidXRpb24iKSkgewot
ICAgICAgICBkdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7CisgICAgaWYgKFdLU3RyaW5nSXNFcXVh
bFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJEdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQi
KSkgeworICAgICAgICBkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAotICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKG1lc3NhZ2VOYW1lLCAiQ2xlYXJBZENsaWNrQXR0cmlidXRpb24iKSkgewotICAgICAg
ICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuY2xlYXJBZENsaWNrQXR0cmlidXRpb24oKTsK
KyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIkNsZWFy
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQiKSkgeworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2lu
Z2xldG9uKCkuY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9CiAKLSAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyht
ZXNzYWdlTmFtZSwgIkNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRlRGF0YVJl
bW92YWwiKSkgewotICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuY2xlYXJBZENs
aWNrQXR0cmlidXRpb25zVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCgpOworICAgIGlmIChXS1N0
cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiQ2xlYXJQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsIikpIHsKKyAgICAgICAgVGVzdENv
bnRyb2xsZXI6OnNpbmdsZXRvbigpLmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3Vn
aFdlYnNpdGVEYXRhUmVtb3ZhbCgpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAg
ICAgCkBAIC0xMzI0LDE5ICsxMzI0LDE5IEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdElu
dm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VU
RjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1l
ckZvclRlc3RpbmciKSkgewotICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0
QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbGVhblZhbHVlKG1l
c3NhZ2VCb2R5KSk7CisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2Fn
ZU5hbWUsICJTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5n
IikpIHsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbGVhblZhbHVlKG1lc3NhZ2VC
b2R5KSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICAKLSAgICBpZiAoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldEFkQ2xpY2tBdHRyaWJ1
dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nIikpIHsKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29u
dmVyc2lvblVSTEZvclRlc3RpbmciKSkgewogICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVz
c2FnZUJvZHkpID09IFdLVVJMR2V0VHlwZUlEKCkpOwotICAgICAgICBUZXN0Q29udHJvbGxlcjo6
c2luZ2xldG9uKCkuc2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3Rpbmco
c3RhdGljX2Nhc3Q8V0tVUkxSZWY+KG1lc3NhZ2VCb2R5KSk7CisgICAgICAgIFRlc3RDb250cm9s
bGVyOjpzaW5nbGV0b24oKS5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxG
b3JUZXN0aW5nKHN0YXRpY19jYXN0PFdLVVJMUmVmPihtZXNzYWdlQm9keSkpOwogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhtZXNzYWdlTmFtZSwgIk1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVz
dGluZyIpKSB7Ci0gICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tYXJrQWRDbGlj
a0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICBpZiAoV0tTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIk1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dHNBc0V4cGlyZWRGb3JUZXN0aW5nIikpIHsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmds
ZXRvbigpLm1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIApAQCAtMTUzMyw5ICsxNTMzLDkgQEAg
dm9pZCBUZXN0SW52b2NhdGlvbjo6ZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoKQogICAgIG1f
c2hvdWxkRHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSB0cnVlOwogfQogCi12b2lkIFRlc3RJ
bnZvY2F0aW9uOjpkdW1wQWRDbGlja0F0dHJpYnV0aW9uKCkKK3ZvaWQgVGVzdEludm9jYXRpb246
OmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpCiB7Ci0gICAgbV9zaG91bGREdW1wQWRDbGlj
a0F0dHJpYnV0aW9uID0gdHJ1ZTsKKyAgICBtX3Nob3VsZER1bXBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCA9IHRydWU7CiB9CiAKIHZvaWQgVGVzdEludm9jYXRpb246OnBlcmZvcm1DdXN0b21NZW51
QWN0aW9uKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAppbmRleCBiOGNh
NmI3YmRjZmQzNDc0NTU2MmQwY2M3YmI5ZWU3NjRhMGQwZDIxLi5kOTRmNTRlMTc3MzM5MWRmZmQ5
MTFjM2U1NjgzYjU3Yzk4OWM4MzcyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5oCkBAIC0xMDAsNyArMTAwLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBjYW5PcGVuV2lu
ZG93cygpIGNvbnN0IHsgcmV0dXJuIG1fY2FuT3BlbldpbmRvd3M7IH0KIAotICAgIHZvaWQgZHVt
cEFkQ2xpY2tBdHRyaWJ1dGlvbigpOworICAgIHZvaWQgZHVtcFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KCk7CiAgICAgdm9pZCBwZXJmb3JtQ3VzdG9tTWVudUFjdGlvbigpOwogCiAgICAgdm9pZCB3
aWxsQ3JlYXRlTmV3UGFnZSgpOwpAQCAtMTYyLDcgKzE2Miw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3BpeGVsUmVzdWx0SXNQZW5kaW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkRHVt
cFJlc291cmNlTG9hZFN0YXRpc3RpY3MgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jYW5PcGVuV2lu
ZG93cyB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3Nob3VsZER1bXBBZENsaWNrQXR0cmlidXRpb24g
eyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGREdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQg
eyBmYWxzZSB9OwogICAgIFdoYXRUb0R1bXAgbV93aGF0VG9EdW1wIHsgV2hhdFRvRHVtcDo6UmVu
ZGVyVHJlZSB9OwogCiAgICAgU3RyaW5nQnVpbGRlciBtX3RleHRPdXRwdXQ7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjEy
MmFlZDQwN2ZlNmY5NGEyMWJhZTBmM2Y0Nzc1MTBkZGU3Y2I2OC4uZDdlNjQ2MzdjYmI0NTBjNmU5
MmQwNGI4MzhiNGEyYjFlMWM4ZGU2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDIwLTExLTEw
ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogQ2hh
bmdlIGZyb20gYWQtY2xpY2stYXR0cmlidXRpb24gdG8gcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVu
dCAoaW4gYWxsIGZvcm1zLCBpbmNsdWRpbmcgLndlbGwta25vd24gVVJMKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzMwCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83MTA5NDI5Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBEZXZpbiBSb3Vzc28u
CisKKyAgICAgICAgQ2hhbmdlIHRvIHRoZSBvZmZpY2lhbCBuYW1lIG9mIHRoZSBwcm9wb3NlZCBz
dGFuZGFyZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50CisgICAgICAgIGh0dHBzOi8vZ2l0aHVi
LmNvbS9wcml2YWN5Y2cvcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC4KKworICAgICAgICBUaGlz
IGluY2x1ZGVzIGEgY2hhbmdlIG9mIHRoZSByZXBvcnRpbmcgVVJMIGZyb20gCisgICAgICAgICIv
LndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vIiB0bworICAgICAgICAiLy53ZWxsLWtu
b3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvIi4KKworICAgICAgICAqIFRlc3RFeHBlY3Rh
dGlvbnM6CisgICAgICAgICogaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRp
b24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2V4
cGlyZWQtYXR0cmlidXRpb25zLXJlbW92ZWQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9yZWRpcmVjdFRvQ29u
dmVyc2lvbk9uSVBBZGRyZXNzLnBocDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9zdG9yZS1hZC1jbGljay1hdHRyaWJ1dGlvbi1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUt
ZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2stYWQtY2xpY2stYXR0cmli
dXRpb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvY29udGVu
dGV4dGVuc2lvbnMvYmxvY2stcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2stcHJp
dmF0ZS1jbGljay1tZWFzdXJlbWVudC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1hZC1jbGljay1hdHRyaWJ1dGlvbi5odG1s
LgorICAgICAgICAqIGh0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2stcHJpdmF0ZS1j
bGljay1tZWFzdXJlbWVudC5odG1sLmpzb246IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLmh0bWwu
anNvbi4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2FuY2hv
ci10YWctYXR0cmlidXRlcy1yZWZsZWN0LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2FuY2hvci10YWctYXR0cmlidXRl
cy1yZWZsZWN0LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L2FuY2hvci10YWctYXR0cmlidXRlcy1yZWZsZWN0Lmh0bWw6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hbmNob3ItdGFn
LWF0dHJpYnV0ZXMtcmVmbGVjdC5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlkYXRpb24tZXhwZWN0ZWQu
dHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRp
b24vYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0LgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1
dGVzLXZhbGlkYXRpb24uaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
YWRDbGlja0F0dHJpYnV0aW9uL2FuY2hvci10YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLmh0bWwu
CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlv
bi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
YXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3Qu
aHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0
aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGly
ZWN0Lmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9h
dHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRv
dy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJl
Y3QtaW4tbmV3LXdpbmRvdy1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2Ut
cmVkaXJlY3QtaW4tbmV3LXdpbmRvdy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdo
LWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3cuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1p
bWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZl
cnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5LWV4cGVjdGVkLnR4dC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9u
LWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5Lmh0bWw6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRy
aWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS5o
dG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmli
dXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJpb3JpdHkt
ZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNr
QXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0
LXdpdGhvdXQtcHJpb3JpdHktZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdl
LXJlZGlyZWN0LXdpdGhvdXQtcHJpb3JpdHkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhy
b3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5Lmh0bWwuCisgICAgICAgICogaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jbGVhci10aHJvdWdoLXdlYnNpdGUtZGF0
YS1yZW1vdmFsLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvYWRDbGlja0F0dHJpYnV0aW9uL2NsZWFyLXRocm91Z2gtd2Vic2l0ZS1kYXRhLXJlbW92YWwt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvY2xlYXItdGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC5odG1sOiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vY2xlYXItdGhyb3VnaC13
ZWJzaXRlLWRhdGEtcmVtb3ZhbC5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tB
dHRyaWJ1dGlvbi9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLWV4cGVj
dGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2Nv
bnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NvbnZlcnNpb24tZGlz
YWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb25zLXJlbW92ZWQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L2V4cGlyZWQtYXR0cmlidXRpb25zLXJlbW92ZWQuaHRtbDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2V4cGlyZWQtYXR0cmlidXRpb25z
LXJlbW92ZWQuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L3Jlc291cmNlcy9jb252ZXJzaW9uRmlsZVBhdGgucGhwOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2NvbnZlcnNpb25G
aWxlUGF0aC5waHAuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHA6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9y
dC5waHAuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNv
dXJjZXMvY29udmVydEFuZFBvc3RNZXNzYWdlQmFjay5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2NvbnZlcnRBbmRQ
b3N0TWVzc2FnZUJhY2suaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHA6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvZ2V0Q29u
dmVyc2lvbkRhdGEucGhwLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9yZWRpcmVj
dFRvQ29udmVyc2lvbi5waHAuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb25PbklQQWRkcmVzcy5waHA6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3Vy
Y2VzL3V0aWwuanM6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tB
dHRyaWJ1dGlvbi9yZXNvdXJjZXMvdXRpbC5qcy4KKyAgICAgICAgKHByZXBhcmVUZXN0KToKKyAg
ICAgICAgKHRlYXJEb3duQW5kRmluaXNoKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1oaWdoZXIt
cHJpb3JpdHktZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhp
Z2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVy
LXByaW9yaXR5Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXBy
aW9yaXR5Lmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0
ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmli
dXRpb24vc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5LWV4
cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS5odG1sOiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vj
b25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwuCisgICAg
ICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lv
bi13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRo
LWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0
eS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmli
dXRpb24vc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9u
LXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWNvbnZlcnNpb24td2l0aC1s
b3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5Lmh0
bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwuCisgICAgICAgICog
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZl
cnNpb24tcmVxdWVzdC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVx
dWVzdC1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1sOiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2VuZC1hdHRy
aWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9u
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9zdG9yZS1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sOiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUt
ZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQuaHRtbDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWFkLWNs
aWNrLWF0dHJpYnV0aW9uLmh0bWwuCisgICAgICAgICogaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVT
ZXR0aW5nLUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnREZWJ1Z01vZGVFbmFibGVkLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5h
YmxlZC5odG1sLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9uczoK
KyAgICAgICAgKiBwbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMC0xMS0xMCAg
QW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGZv
ciBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWFyY2gtc3Vicm9sZS5odG1sIGluIGlz
b2xhdGVkIHRyZWUgbW9kZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDM4MzI0ZDFkNjVmNzk5ZTgw
ZWZmZjE0YzllOTU1YTJkZDE3OTExZjAuLmViNDQyZTFmZjRkZWVkNDMwYjZhNjE3Y2Y3OThkMjcx
OTYwOWI1MDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTEwMSw4ICsxMTAxLDggQEAgaW5zcGVj
dG9yL3J1bnRpbWUvY2FsbEZ1bmN0aW9uT24tZW11bGF0ZVVzZXJHZXN0dXJlLXVzZXJJc0ludGVy
YWN0aW5nLmh0bWwgWyBTa2kKICMgVGFyZ2V0IGRvbWFpbiBpcyBvbmx5IHByZXNlbnQgaW4gV0sy
LgogaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGFyZ2V0IFsgU2tpcCBdCiAKLSMgSVRQIGFuZCBBZENs
aWNrQXR0cmlidXRpb24gYXJlIFdLMiBvbmx5LgotaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0
aW5nLUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQuaHRtbCBbIFNraXAgXQorIyBJ
VFAgYW5kIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGFyZSBXSzIgb25seS4KK2luc3BlY3Rvci9w
YWdlL292ZXJyaWRlU2V0dGluZy1Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJs
ZWQuaHRtbCBbIFNraXAgXQogaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLUlUUERlYnVn
TW9kZUVuYWJsZWQuaHRtbCBbIFNraXAgXQogCiAjIFRoZXNlIGNvbmZvcm1hbmNlIHRlc3RzIGFy
ZSBubyBsb25nZXIgaW4gc3luYyB3aXRoIHRoZSBsYXRlc3Qgc3BlY2lmaWNhdGlvbgpAQCAtMjc3
Miw3ICsyNzcyLDcgQEAgd2Via2l0Lm9yZy9iLzE3OTA2OSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnQKIHdlYmtpdC5vcmcvYi8xNTcw
NjggWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbm9zbmlm
Zi9pbXBvcnRzY3JpcHRzLmh0bWwgWyBQYXNzIENyYXNoIF0KIHdlYmtpdC5vcmcvYi8xNTcwNjgg
WyBSZWxlYXNlIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9ub3NuaWZm
L2ltcG9ydHNjcmlwdHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKLWh0dHAvdGVzdHMvYWRDbGlj
a0F0dHJpYnV0aW9uIFsgU2tpcCBdCitodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
IFsgU2tpcCBdCiAKICMgQXBwbGljYXRpb24gTWFuaWZlc3QgdGVzdHMKIHdlYmtpdC5vcmcvYi8x
NTMxNTIgaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvbWFuaWZlc3Qt
c3JjLWFsbG93ZWQuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXJlZmxlY3QtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5j
aG9yLXRhZy1hdHRyaWJ1dGVzLXJlZmxlY3QtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAxYzdhOTVlYWU0ZTgwY2VjYzUzMjYwZjBhZjc0NWExMWI2ODViYWJlLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2FuY2hvci10YWctYXR0cmlidXRlcy1yZWZs
ZWN0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVRlc3QgZm9y
IHRoZSBuZXcgYWQgY2xpY2sgYXR0cmlidXRpb24gYXR0cmlidXRlcyBvbiBhbmNob3IgdGFncy4K
LQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgYW5jaG9yVGFnLmFkY2FtcGFp
Z25pZCBpcyAiNDAiCi1QQVNTIGFuY2hvclRhZy5hZGRlc3RpbmF0aW9uIGlzICJkZXN0aW5hdGlv
bi5leGFtcGxlIgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0
aW9uL2FuY2hvci10YWctYXR0cmlidXRlcy1yZWZsZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtcmVmbGVjdC5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZDk5NTZmZGVlYzc4ZWQ3MGIyZmI0
ODIwMDFmZGRkNWI1Mzk4Mjk1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2FuY2hv
ci10YWctYXR0cmlidXRlcy1yZWZsZWN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBBZENsaWNrQXR0
cmlidXRpb25FbmFibGVkPXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAg
IDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08YSBpZD0idGVzdFRh
ZyIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIiBhZGNhbXBhaWduaWQ9IjQwIiBhZGRlc3Rp
bmF0aW9uPSJkZXN0aW5hdGlvbi5leGFtcGxlIj48L2E+Ci08c2NyaXB0PgotICAgIGRlc2NyaXB0
aW9uKCJUZXN0IGZvciB0aGUgbmV3IGFkIGNsaWNrIGF0dHJpYnV0aW9uIGF0dHJpYnV0ZXMgb24g
YW5jaG9yIHRhZ3MuIik7Ci0KLSAgICBjb25zdCBhbmNob3JUYWcgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdFRhZyIpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiYW5jaG9yVGFn
LmFkY2FtcGFpZ25pZCIsICI0MCIpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiYW5jaG9y
VGFnLmFkZGVzdGluYXRpb24iLCAiZGVzdGluYXRpb24uZXhhbXBsZSIpOwotPC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtdmFsaWRhdGlvbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hbmNob3ItdGFn
LWF0dHJpYnV0ZXMtdmFsaWRhdGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGZiNTQ5OWY0YWQ0MTQ3YTFlOGJhMDJmOTQ5NmE5MTA3YzJhOTAxOWQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlkYXRp
b24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotQ09OU09MRSBN
RVNTQUdFOiBhZGNhbXBhaWduaWQgbXVzdCBoYXZlIGEgbm9uLW5lZ2F0aXZlIHZhbHVlIGxlc3Mg
dGhhbiBvciBlcXVhbCB0byA2MyBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24uCi1DT05TT0xFIE1F
U1NBR0U6IGFkY2FtcGFpZ25pZCBtdXN0IGhhdmUgYSBub24tbmVnYXRpdmUgdmFsdWUgbGVzcyB0
aGFuIG9yIGVxdWFsIHRvIDYzIGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbi4KLUNPTlNPTEUgTUVT
U0FHRTogYWRjYW1wYWlnbmlkIGNhbiBub3QgYmUgY29udmVydGVkIHRvIGEgbm9uLW5lZ2F0aXZl
IGludGVnZXIgd2hpY2ggaXMgcmVxdWlyZWQgZm9yIEFkIENsaWNrIEF0dHJpYnV0aW9uLgotQ09O
U09MRSBNRVNTQUdFOiBhZGNhbXBhaWduaWQgY2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSBub24t
bmVnYXRpdmUgaW50ZWdlciB3aGljaCBpcyByZXF1aXJlZCBmb3IgQWQgQ2xpY2sgQXR0cmlidXRp
b24uCi1DT05TT0xFIE1FU1NBR0U6IGFkY2FtcGFpZ25pZCBjYW4gbm90IGJlIGNvbnZlcnRlZCB0
byBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBBZCBDbGljayBB
dHRyaWJ1dGlvbi4KLUNPTlNPTEUgTUVTU0FHRTogYWRkZXN0aW5hdGlvbiBjb3VsZCBub3QgYmUg
Y29udmVydGVkIHRvIGEgdmFsaWQgSFRUUC1mYW1pbHkgVVJMLgotQ09OU09MRSBNRVNTQUdFOiBh
ZGRlc3RpbmF0aW9uIGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSB2YWxpZCBIVFRQLWZhbWls
eSBVUkwuCi1DT05TT0xFIE1FU1NBR0U6IGFkZGVzdGluYXRpb24gY291bGQgbm90IGJlIGNvbnZl
cnRlZCB0byBhIHZhbGlkIEhUVFAtZmFtaWx5IFVSTC4KLUNPTlNPTEUgTUVTU0FHRTogQm90aCBh
ZGNhbXBhaWduaWQgYW5kIGFkZGVzdGluYXRpb24gbmVlZCB0byBiZSBzZXQgZm9yIEFkIENsaWNr
IEF0dHJpYnV0aW9uIHRvIHdvcmsuCi1DT05TT0xFIE1FU1NBR0U6IEJvdGggYWRjYW1wYWlnbmlk
IGFuZCBhZGRlc3RpbmF0aW9uIG5lZWQgdG8gYmUgc2V0IGZvciBBZCBDbGljayBBdHRyaWJ1dGlv
biB0byB3b3JrLgotQ09OU09MRSBNRVNTQUdFOiBhZGRlc3RpbmF0aW9uIGNhbiBub3QgYmUgdGhl
IHNhbWUgc2l0ZSBhcyB0aGUgY3VycmVudCB3ZWJzaXRlLgotVGVzdCBmb3IgdmFsaWRpdHkgb2Yg
YWQgY2xpY2sgYXR0cmlidXRpb24gYXR0cmlidXRlcyBvbiBhbmNob3IgdGFncy4KLQotT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
LQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtdmFsaWRhdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5jaG9yLXRhZy1hdHRy
aWJ1dGVzLXZhbGlkYXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmUy
ZmQ2M2U0MzU4NzczMzVlZGJhNzlmYmE2NTA0OGU5YjA4ZWQ5MC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtdmFsaWRhdGlvbi5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Ci08aHRtbCBsYW5nPSJl
biI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAgPG1ldGEgbmFtZT0i
dmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1
c2VyLXNjYWxhYmxlPW5vIj4KLSAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
dWktaGVscGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c3R5bGU+Ci0gICAgICAgIC53aWRlLWxpbmsg
ewotICAgICAgICAgICAgd2lkdGg6IDE1MHB4OwotICAgICAgICAgICAgZGlzcGxheTogaW5saW5l
LWJsb2NrOwotICAgICAgICB9Ci0gICAgPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0i
cnVuQWxsVGVzdHMoKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJv
dXRwdXQiPjwvZGl2Pjxicj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLSAg
ICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgdmFsaWRpdHkgb2YgYWQgY2xpY2sgYXR0cmlidXRpb24g
YXR0cmlidXRlcyBvbiBhbmNob3IgdGFncy4iKTsKLSAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
LQotICAgIGZ1bmN0aW9uIGNyZWF0ZUFkQ2xpY2tBdHRyaWJ1dGlvbkFuY2hvckVsZW1lbnQoZWxl
bWVudElELCBhZENhbXBhaWduSUQsIGFkRGVzdGluYXRpb24pIHsKLSAgICAgICAgbGV0IGFuY2hv
ckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7Ci0gICAgICAgIGFuY2hvckVs
ZW1lbnQuaWQgPSBlbGVtZW50SUQ7Ci0gICAgICAgIGFuY2hvckVsZW1lbnQuY2xhc3NMaXN0LmFk
ZCgid2lkZS1saW5rIik7Ci0gICAgICAgIGFuY2hvckVsZW1lbnQuYWRjYW1wYWlnbmlkID0gYWRD
YW1wYWlnbklEOwotICAgICAgICBhbmNob3JFbGVtZW50LmFkZGVzdGluYXRpb24gPSBhZERlc3Rp
bmF0aW9uOwotICAgICAgICBhbmNob3JFbGVtZW50LmhyZWYgPSAiIyI7Ci0gICAgICAgIGFuY2hv
ckVsZW1lbnQuaW5uZXJUZXh0ID0gIkxpbmsiICsgY3VycmVudFRlc3Q7Ci0gICAgICAgIHJldHVy
biBhbmNob3JFbGVtZW50OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChl
bGVtZW50SUQsIGNhbGxiYWNrKSB7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudChk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpKS50aGVuKAotICAgICAgICAgICAgZnVu
Y3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgICAgICB9LAot
ICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlBy
b21pc2UgcmVqZWN0ZWQuIik7Ci0gICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICk7Ci0gICAgfQotCi0gICAgbGV0IGN1cnJlbnRUZXN0ID0gMDsK
LSAgICBmdW5jdGlvbiBydW5PbmVUZXN0KGFkQ2FtcGFpZ25JRCwgYWREZXN0aW5hdGlvbiwgY2Fs
bGJhY2spIHsKLSAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnRJRCA9ICJ0ZXN0IiArIGN1cnJl
bnRUZXN0Kys7Ci0gICAgICAgIGNvbnN0IGFuY2hvckVsZW1lbnQgPSBjcmVhdGVBZENsaWNrQXR0
cmlidXRpb25BbmNob3JFbGVtZW50KGN1cnJlbnRFbGVtZW50SUQsIGFkQ2FtcGFpZ25JRCwgYWRE
ZXN0aW5hdGlvbik7Ci0gICAgICAgIG91dHB1dC5hcHBlbmRDaGlsZChhbmNob3JFbGVtZW50KTsK
LSAgICAgICAgYWN0aXZhdGVFbGVtZW50KGN1cnJlbnRFbGVtZW50SUQsIGNhbGxiYWNrKTsKLSAg
ICB9Ci0KLSAgICBjb25zdCB2YWxpZEFkQ2FtcGFpZ25JRCA9ICIwMyI7Ci0gICAgY29uc3QgdmFs
aWRBZERlc3RpbmF0aW9uID0gImh0dHA6Ly93ZWJraXQub3JnIjsKLSAgICBjb25zdCBzYW1lU2l0
ZSA9IGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbjsKLSAgICBjb25zdCB0ZXN0Q2FzZXMgPSBbCi0g
ICAgICAgIFsgdmFsaWRBZENhbXBhaWduSUQsIHZhbGlkQWREZXN0aW5hdGlvbiBdLAotICAgICAg
ICBbICIxMDAiLCB2YWxpZEFkRGVzdGluYXRpb24gXSwgICAgICAgICAgIC8vIFRvbyBtYW55IGNo
YXJhY3RlcnMuCi0gICAgICAgIFsgIjEiLCB2YWxpZEFkRGVzdGluYXRpb24gXSwgICAgICAgICAg
ICAgLy8gVG9vIGZldyBjaGFyYWN0ZXJzLgotICAgICAgICBbICI5OCIsIHZhbGlkQWREZXN0aW5h
dGlvbiBdLCAgICAgICAgICAgIC8vIFRvbyBoaWdoIHZhbHVlLgotICAgICAgICBbICItMSIsIHZh
bGlkQWREZXN0aW5hdGlvbiBdLCAgICAgICAgICAgIC8vIE5lZ2F0aXZlIHZhbHVlLgotICAgICAg
ICBbICJhYiIsIHZhbGlkQWREZXN0aW5hdGlvbiBdLCAgICAgICAgICAgIC8vIE5vbi1kaWdpdHMu
Ci0gICAgICAgIFsgIu+jvzEiLCB2YWxpZEFkRGVzdGluYXRpb24gXSwgICAgICAgICAgICAvLyBO
b24tQVNDSUkuCi0gICAgICAgIFsgIiAxIiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAgICAg
ICAgLy8gTGVhZGluZyBzcGFjZS4KLSAgICAgICAgWyAiMSAiLCB2YWxpZEFkRGVzdGluYXRpb24g
XSwgICAgICAgICAgICAvLyBUcmFpbGluZyBzcGFjZS4KLSAgICAgICAgWyB2YWxpZEFkQ2FtcGFp
Z25JRCwgIndlYmtpdC5vcmciIF0sICAgICAvLyBNaXNzaW5nIHByb3RvY29sLgotICAgICAgICBb
IHZhbGlkQWRDYW1wYWlnbklELCAiOi8vd2Via2l0Lm9yZyIgXSwgIC8vIFBhcnRpYWxseSBtaXNz
aW5nIHByb3RvY29sLgotICAgICAgICBbIHZhbGlkQWRDYW1wYWlnbklELCAi76O/76O/76O/IiBd
LCAgICAgICAgICAgLy8gTm9uLUFTQ0lJIGNoYXJhY3RlcnMgYXMgZGVzdGluYXRpb24uCi0gICAg
ICAgIFsgIiIsIHZhbGlkQWREZXN0aW5hdGlvbiBdLCAgICAgICAgICAgICAgLy8gRW1wdHkgY2Ft
cGFpZ24gSUQuCi0gICAgICAgIFsgdmFsaWRBZENhbXBhaWduSUQsICIiIF0sICAgICAgICAgICAg
ICAgLy8gRW1wdHkgZGVzdGluYXRpb24uCi0gICAgICAgIFsgdmFsaWRBZENhbXBhaWduSUQsIHNh
bWVTaXRlIF0gICAgICAgICAgLy8gU2FtZS1zaXRlIGRlc3RpbmF0aW9uLgotICAgIF07Ci0KLSAg
ICBmdW5jdGlvbiBydW5BbGxUZXN0cygpIHsKLSAgICAgICAgaWYgKGN1cnJlbnRUZXN0IDwgdGVz
dENhc2VzLmxlbmd0aCkKLSAgICAgICAgICAgIHJ1bk9uZVRlc3QodGVzdENhc2VzW2N1cnJlbnRU
ZXN0XVswXSwgdGVzdENhc2VzW2N1cnJlbnRUZXN0XVsxXSwgcnVuQWxsVGVzdHMpOwotICAgICAg
ICBlbHNlIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQob3V0cHV0KTsK
LSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0
ZS1pbWFnZS1yZWRpcmVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0
ZS1pbWFnZS1yZWRpcmVjdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGZlYTVlNjFmYzg1Y2RmNTQyZjkxNzUzM2ZhYmZiYjgzNWQ2OGU2NTguLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3Nz
LXNpdGUtaW1hZ2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSAr
MCwwIEBACi1UZXN0cyB0aGF0IHRyaWdnZXJpbmcgb2YgYWQgY2xpY2sgYXR0cmlidXRpb24gY29u
dmVyc2lvbnMgdGhyb3VnaCBjcm9zcy1zaXRlIHJlZGlyZWN0cyBkbyBub3Qgd29yay4KLQotCi1V
bmNvbnZlcnRlZCBBZCBDbGljayBBdHRyaWJ1dGlvbnM6Ci1XZWJDb3JlOjpBZENsaWNrQXR0cmli
dXRpb24gMQotU291cmNlOiAxMjcuMC4wLjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBh
aWduIElEOiAzCi1ObyBjb252ZXJzaW9uIGRhdGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91
Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3Nz
LXNpdGUtaW1hZ2UtcmVkaXJlY3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZjU3MjZlOTA5ZmZjOTBiMjEwOWZmYmEwNGI0MDZkMDg1MzE2OGE5Yi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0
ZS1pbWFnZS1yZWRpcmVjdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9y
dD10cnVlIEFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ9dHJ1ZSBdIC0tPgotPGh0bWwgbGFuZz0i
ZW4iPgotPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgotICAgIDxtZXRhIG5hbWU9
InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwg
dXNlci1zY2FsYWJsZT1ubyI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91
aS1oZWxwZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwg
MCkiPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgdHJpZ2dlcmluZyBvZiBhZCBj
bGljayBhdHRyaWJ1dGlvbiBjb252ZXJzaW9ucyB0aHJvdWdoIGNyb3NzLXNpdGUgcmVkaXJlY3Rz
IGRvIG5vdCB3b3JrLjwvZGl2PgotPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJv
dWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QuaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9
IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Ci08
ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBwcmVwYXJlVGVzdCgpOwotCi0g
ICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxl
bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBj
ZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0g
ICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhl
aWdodCAvIDI7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSku
dGhlbigKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAg
ICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICAp
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09
ICI/c3RlcFR3byIpIHsKLSAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNy
YyA9ICJodHRwczovL2xvY2FsaG9zdDo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMv
cmVkaXJlY3RUb0NvbnZlcnNpb25PbklQQWRkcmVzcy5waHA/Y29udmVyc2lvbkRhdGE9MTIiOwot
ICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0gICAgICAgICAgICAg
ICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbigpOwotICAgICAgICAgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXRMaW5rIikpOwotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNo
aWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKLSAgICAgICAgICAgICAgICAg
ICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4i
OwotICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlv
bi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1
dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4NDM2YjA5NjkzNTZjNTYz
Yjg1Y2JhYWE5YWQ1NjJhNWIzYjM2ZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24v
YXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5k
b3ctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotVGVzdHMgdHJp
Z2dlcmluZyBvZiBhZCBjbGljayBhdHRyaWJ1dGlvbiBjb252ZXJzaW9ucyBpbiBhIG5ldyB3aW5k
b3cuCi0KLQotQ29udmVydGVkIEFkIENsaWNrIEF0dHJpYnV0aW9uczoKLVdlYkNvcmU6OkFkQ2xp
Y2tBdHRyaWJ1dGlvbiAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRpb246IGxvY2FsaG9z
dAotQ2FtcGFpZ24gSUQ6IDMKLUNvbnZlcnNpb24gZGF0YTogMTIKLUNvbnZlcnNpb24gcHJpb3Jp
dHk6IDMKLUNvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91
cnMKLUNvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10
aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3Vn
aC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGNhZDJiNDM0N2JkNmZmOWU2YTY4ZGRkOWIxZDE5ZTU2NWJjY2FlMjYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdo
LWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3cuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU5
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZs
ZXhpYmxlVmlld3BvcnQ9dHJ1ZSBBZENsaWNrQXR0cmlidXRpb25FbmFibGVkPXRydWUgXSAtLT4K
LTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAg
ICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0
aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1l
b3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0cmlnZ2VyaW5n
IG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uIGNvbnZlcnNpb25zIGluIGEgbmV3IHdpbmRvdy48L2Rp
dj4KLTxhIHRhcmdldD0iX2JsYW5rIiByZWw9Im9wZW5lciIgaWQ9InRhcmdldExpbmsiIGhyZWY9
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2NvbnZl
cnRBbmRQb3N0TWVzc2FnZUJhY2suaHRtbCIgYWRjYW1wYWlnbmlkPSIzIiBhZGRlc3RpbmF0aW9u
PSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgotPGRpdiBpZD0ib3V0cHV0Ij48
L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgcHJlcGFyZVRlc3QoKTsKLQotICAgIGZ1bmN0aW9uIGFjdGl2
YXRlRWxlbWVudChlbGVtZW50SUQpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOwotICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQu
b2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICB2YXIgY2VudGVy
WSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwotICAgICAg
ICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCi0gICAgICAgICAg
ICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgZnVuY3Rpb24gKCkg
ewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5l
clRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7Ci0gICAgICAgICAgICAgICAgdGVhckRv
d25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgewotICAgICAgICBpZiAoZXZlbnQub3JpZ2lu
ID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikgewotICAgICAgICAgICAgaWYgKGV2ZW50LmRh
dGEgPT09ICJEb25lIikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFkQ2xpY2tB
dHRyaWJ1dGlvbigpOwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7Ci0gICAgICAgICAgICAgICAg
dGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgdW5rbm93biBtZXNzYWdlOiAiICsgZXZlbnQuZGF0YSk7
Ci0gICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2Fn
ZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKLSAgICAgICAg
ICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7Ci0KLSAg
ICBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
LSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKLSAgICAgICAgICAg
IGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlM
IE5vIHRlc3RSdW5uZXIuIjsKLSAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAg
ICAgIH0KLSAgICB9Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZl
cnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNv
bnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5LWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTk3ZjY1Y2QxOGQ1OTQwODE5NzcwOGY3
MGVhNDJlNDAzZWQwYWRkMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1
dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UZXN0cyB0cmlnZ2VyaW5n
IG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uIGNvbnZlcnNpb25zIHdpdGggcHJpb3JpdHkuCi0KLQot
Q29udmVydGVkIEFkIENsaWNrIEF0dHJpYnV0aW9uczoKLVdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1
dGlvbiAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRpb246IGxvY2FsaG9zdAotQ2FtcGFp
Z24gSUQ6IDMKLUNvbnZlcnNpb24gZGF0YTogMTIKLUNvbnZlcnNpb24gcHJpb3JpdHk6IDMKLUNv
bnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKLUNvbnZl
cnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWlt
YWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1y
ZWRpcmVjdC13aXRoLXByaW9yaXR5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDg1NmI0MjUzNjBhM2MyNWY5YjJkMmQ1YjVkOTE0MzQ0OWVlODRmMzAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
ZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJl
ZGlyZWN0LXdpdGgtcHJpb3JpdHkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmll
d3BvcnQ9dHJ1ZSBBZENsaWNrQXR0cmlidXRpb25FbmFibGVkPXRydWUgXSAtLT4KLTxodG1sIGxh
bmc9ImVuIj4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBu
YW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxl
PTEsIHVzZXItc2NhbGFibGU9bm8iPgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJj
ZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRl
c3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0cmlnZ2VyaW5nIG9mIGFkIGNs
aWNrIGF0dHJpYnV0aW9uIGNvbnZlcnNpb25zIHdpdGggcHJpb3JpdHkuPC9kaXY+Ci08YSBpZD0i
dGFyZ2V0TGluayIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlv
cml0eS5odG1sP3N0ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDov
L2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08
c2NyaXB0PgotICAgIHByZXBhcmVUZXN0KCk7Ci0KLSAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1l
bnQoZWxlbWVudElEKSB7Ci0gICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoZWxlbWVudElEKTsKLSAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExl
ZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKLSAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVt
ZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgVUlIZWxw
ZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAotICAgICAgICAgICAgZnVuY3Rp
b24gKCkgewotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0g
IkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmlu
aXNoKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAg
ICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgewotICAgICAgICAg
ICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsK
LSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0
NDMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/
Y29udmVyc2lvbkRhdGE9MTImcHJpb3JpdHk9MDMiOwotICAgICAgICAgICAgICAgIGltYWdlRWxl
bWVudC5pZCA9ICJwaXhlbCI7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3Ig
PSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFkQ2xp
Y2tBdHRyaWJ1dGlvbigpOwotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92
ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOwotICAgICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJwaXhlbCIpKTsKLSAgICAgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsK
LSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iiku
aW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOwotICAgICAgICB9Ci0gICAgfQotPC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1h
Z2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlvcml0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91
Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlvcml0eS1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDllMGEyODBmYWQxODZhNzZmYWE5NDJmNjJmOWIxMDQ1OGM4
ZDEyYzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVy
c2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJpb3JpdHktZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotVGVzdHMgdHJpZ2dlcmluZyBvZiBhZCBj
bGljayBhdHRyaWJ1dGlvbiBjb252ZXJzaW9ucyB3aXRob3V0IHByaW9yaXR5LgotCi0KLUNvbnZl
cnRlZCBBZCBDbGljayBBdHRyaWJ1dGlvbnM6Ci1XZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24g
MQotU291cmNlOiAxMjcuMC4wLjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWduIElE
OiAzCi1Db252ZXJzaW9uIGRhdGE6IDEyCi1Db252ZXJzaW9uIHByaW9yaXR5OiAwCi1Db252ZXJz
aW9uIGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCi1Db252ZXJzaW9u
IHJlcXVlc3Qgc2VudDogZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1y
ZWRpcmVjdC13aXRob3V0LXByaW9yaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVk
aXJlY3Qtd2l0aG91dC1wcmlvcml0eS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4YTBiMmQ4OTZkYzQxMDAzMjU4MmUzZjE3M2M0YjUxY2RjNmRjZDEyLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1y
ZWRpcmVjdC13aXRob3V0LXByaW9yaXR5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJs
ZVZpZXdwb3J0PXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxtZXRh
IGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lk
dGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgotICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4K
LSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0
aW9uIj5UZXN0cyB0cmlnZ2VyaW5nIG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uIGNvbnZlcnNpb25z
IHdpdGhvdXQgcHJpb3JpdHkuPC9kaXY+Ci08YSBpZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0cDov
L2xvY2FsaG9zdDo4MDAwL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9u
LXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlvcml0eS5odG1sP3N0ZXBUd28iIGFk
Y2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5r
PC9hPjxicj4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHByZXBhcmVU
ZXN0KCk7Ci0KLSAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7Ci0gICAg
ICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKLSAg
ICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdp
ZHRoIC8gMjsKLSAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1l
bnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJY
LCBjZW50ZXJZKS50aGVuKAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3Rl
ZC4iOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9u
LnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgewotICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAgICAgICAgICBpbWFn
ZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvYWRDbGlja0F0dHJpYnV0aW9u
L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTIiOwot
ICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0gICAgICAgICAgICAg
ICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7Ci0gICAgICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldExpbmsiKSk7Ci0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOwotICAgICAgICAgICAgICAgICAg
ICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOwotICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7
Ci0gICAgICAgIH0KLSAgICB9Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NsZWFyLXRocm91
Z2gtd2Vic2l0ZS1kYXRhLXJlbW92YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vY2xlYXItdGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3Zh
bC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyZWU2YTkzY2Fk
MGI1ZTVjYTg1MWU2YmIyZjIxYjlhZjlhOTZjNWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmli
dXRpb24vY2xlYXItdGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVRlc3RzIHRoYXQgYm90aCB1bmNvbnZlcnRlZCBh
bmQgY29udmVydGVkIGF0dHJpYnV0aW9ucyBhcmUgY2xlYXJlZCBvbiB3ZWJzaXRlIGRhdGEgcmVt
b3ZhbC4KLQotCi0KLU5vIHN0b3JlZCBBZCBDbGljayBBdHRyaWJ1dGlvbiBkYXRhLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vY2xlYXItdGhy
b3VnaC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
ZENsaWNrQXR0cmlidXRpb24vY2xlYXItdGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZDZlY2I1MDJmYmFhMmQ2MmE1ZDdiZTBk
ZWI1MTZiZDY3Mjg4ODNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NsZWFyLXRo
cm91Z2gtd2Vic2l0ZS1kYXRhLXJlbW92YWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDgzICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhp
YmxlVmlld3BvcnQ9dHJ1ZSBBZENsaWNrQXR0cmlidXRpb25FbmFibGVkPXRydWUgXSAtLT4KLTxo
dG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8
bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFs
LXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0
KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IGJvdGggdW5j
b252ZXJ0ZWQgYW5kIGNvbnZlcnRlZCBhdHRyaWJ1dGlvbnMgYXJlIGNsZWFyZWQgb24gd2Vic2l0
ZSBkYXRhIHJlbW92YWwuPC9kaXY+Ci08YSBpZD0idGFyZ2V0TGluayI+TGluazwvYT48YnI+Ci08
ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBjb25zdCBwYXRoID0gIi9hZENs
aWNrQXR0cmlidXRpb24vY2xlYXItdGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC5odG1sIjsK
LSAgICBjb25zdCBjb25maWd1cmF0aW9uID0gWwotICAgICAgICB7Ci0gICAgICAgICAgICBocmVm
OiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiArIHBhdGggKyAiP3N0ZXBUd28iLAotICAgICAgICAg
ICAgYWRjYW1wYWlnbmlkOiAiMyIsCi0gICAgICAgICAgICBhZGRlc3RpbmF0aW9uOiAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIgotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICBocmVm
OiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiArIHBhdGggKyAiP3N0ZXBUaHJlZSIsCi0gICAgICAg
ICAgICBhZGNhbXBhaWduaWQ6ICI0IiwKLSAgICAgICAgICAgIGFkZGVzdGluYXRpb246ICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiCi0gICAgICAgIH0KLSAgICBdOwotCi0gICAgcHJlcGFyZVRlc3Qo
KTsKLQotICAgIGZ1bmN0aW9uIGNvbmZpZ3VyZUxpbmsoaW5kZXgpIHsKLSAgICAgICAgbGV0IGxp
bmtFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKTsKLSAgICAg
ICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJocmVmIiwgY29uZmlndXJhdGlvbltpbmRleF0u
aHJlZik7Ci0gICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRjYW1wYWlnbmlkIiwg
Y29uZmlndXJhdGlvbltpbmRleF0uYWRjYW1wYWlnbmlkKTsKLSAgICAgICAgbGlua0VsZW1lbnQu
c2V0QXR0cmlidXRlKCJhZGRlc3RpbmF0aW9uIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRkZXN0
aW5hdGlvbik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJ
RCkgewotICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1l
bnRJRCk7Ci0gICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVu
dC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRU
b3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRl
QXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21p
c2UgcmVqZWN0ZWQuIjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAg
ICAgICAgICAgfQotICAgICAgICApOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgaWYgKHdpbmRv
dy5sb2NhdGlvbi5zZWFyY2ggPT09ICIiKSB7Ci0gICAgICAgICAgICAgICAgLy8gRmlyc3QgYWQg
Y2xpY2sgMTI3LjAuMC4xIOKAkz4gbG9jYWxob3N0LgotICAgICAgICAgICAgICAgIGNvbmZpZ3Vy
ZUxpbmsoMCk7Ci0gICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7
Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3Rl
cFR3byIpIHsKLSAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBmaXJzdCBhZCBjbGljayB3
aXRoIHByaW9yaXR5IDQsIHRoZW4gZG8gYSByZXZlcnNlIGFkIGNsaWNrLgotICAgICAgICAgICAg
ICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAg
ICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMv
YWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29u
dmVyc2lvbkRhdGE9MTImcHJpb3JpdHk9MDQiOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVu
dC5pZCA9ICJwaXhlbCI7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBm
dW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFNlY29uZCBhZCBjbGljayBsb2Nh
bGhvc3Qg4oCTPiAxMjcuMC4wLjEuCi0gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyZUxpbmso
MSk7Ci0gICAgICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwot
ICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChpbWFnZUVsZW1lbnQpOwotICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRp
b24uc2VhcmNoID09PSAiP3N0ZXBUaHJlZSIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoKTsKLSAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsKLSAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXRMaW5rIikpOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7
Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBVbmtub3duIHdpbmRvdy5sb2NhdGlv
bi5zZWFyY2ggPT0gIiArIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggKyAiLiI7Ci0gICAgICAgICAg
ICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRl
eHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7Ci0gICAgICAgIH0KLSAgICB9Ci08L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRD
bGlja0F0dHJpYnV0aW9uL2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24v
Y29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzNGFiNWQ5MTI1OTQ1ODMwYTJiODQzZTcxNzRl
MTUwOWQyY2Q1ODAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vY29udmVyc2lvbi1k
aXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwxNSArMCwwIEBACi1UZXN0cyB0aGF0IHN0b3JlZCBhdHRyaWJ1dGlvbnMgY2Fubm90IGJl
IGNvbnZlcnRlZCBpbiBhbiBlcGhlbWVyYWwgc2Vzc2lvbi4KLQotCi0KLS0tLS0tLS0tCi1GcmFt
ZTogJzwhLS1mcmFtZTEtLT4nCi0tLS0tLS0tLQotQ29udmVyc2lvbiBub3QgcmVjZWl2ZWQgLSB0
aW1lZCBvdXQuCi0KLVVuY29udmVydGVkIEFkIENsaWNrIEF0dHJpYnV0aW9uczoKLVdlYkNvcmU6
OkFkQ2xpY2tBdHRyaWJ1dGlvbiAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRpb246IGxv
Y2FsaG9zdAotQ2FtcGFpZ24gSUQ6IDMKLU5vIGNvbnZlcnNpb24gZGF0YS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NvbnZlcnNpb24tZGlz
YWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YWRDbGlja0F0dHJpYnV0aW9uL2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Np
b24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWE4ZjE4NGZhOWYxNjJmNjZj
OTQ1ZjM2MzM4NDRlNDBiNjllZDVmZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9j
b252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw4MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxo
ZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9y
dCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2Nh
bGFibGU9bm8iPgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxk
aXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IHN0b3JlZCBhdHRyaWJ1dGlvbnMgY2Fubm90
IGJlIGNvbnZlcnRlZCBpbiBhbiBlcGhlbWVyYWwgc2Vzc2lvbi48L2Rpdj4KLTxhIGlkPSJ0YXJn
ZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL2Nv
bnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbD9zdGVwVHdvIiBhZGNh
bXBhaWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwv
YT48YnI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBjb25zdCBjdXJy
ZW50VGltZU1pbGxpcyA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7Ci0gICAgY29uc3QgaGlnaEVu
dHJvcHlCaXRzID0gY3VycmVudFRpbWVNaWxsaXMgLSAoTWF0aC5mbG9vcihjdXJyZW50VGltZU1p
bGxpcyAvIDEwMDAwMDApICogMTAwMDAwMCk7Ci0gICAgY29uc3Qgbm9uY2UgPSBoaWdoRW50cm9w
eUJpdHMgKyAiIiArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMCk7Ci0KLSAgICBwcmVw
YXJlVGVzdCgpOwotCi0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVu
bmVyLnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKCJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252ZXJzaW9uUmVw
b3J0LnBocD9ub25jZT0iICsgbm9uY2UpOwotCi0gICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50
KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0
ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVu
dC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAgIFVJSGVscGVy
LmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKLSAgICAgICAgICAgIGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJG
QUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlz
aCgpOwotICAgICAgICAgICAgfQotICAgICAgICApOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFw
cGVuZElmcmFtZSh1cmwsIG9ubG9hZENhbGxiYWNrKSB7Ci0gICAgICAgIGxldCBpZnJhbWVFbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Ci0gICAgICAgIGlmcmFtZUVs
ZW1lbnQuc3JjID0gdXJsOwotICAgICAgICBpZiAob25sb2FkQ2FsbGJhY2spCi0gICAgICAgICAg
ICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IG9ubG9hZENhbGxiYWNrOwotICAgICAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IGFwcGVuZENvbnZlcnNpb25EYXRhSWZyYW1lQW5kRmluaXNoKCkgewotICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1v
dmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKLQotICAgICAg
ICBhcHBlbmRJZnJhbWUoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9hZENsaWNrQXR0cmlidXRpb24v
cmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBocD90aW1lb3V0X21zPTEwMDAmbm9uY2U9IiAr
IG5vbmNlLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0g
ICAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5z
ZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFNo
b3VsZFN3YXBUb0VwaGVtZXJhbFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uKHRydWUpOwotICAgICAg
ICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvYWRDbGlj
a0F0dHJpYnV0aW9uL2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRt
bD9zdGVwVGhyZWUiOwotICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2Vh
cmNoID09PSAiP3N0ZXBUaHJlZSIpIHsKLSAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgICAgICAgICAgaW1hZ2VF
bGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9y
ZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJm5vbmNl
PSIgKyBub25jZTsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOwot
ICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkU3dhcFRvRGVmYXVsdFNlc3Npb25P
bk5leHROYXZpZ2F0aW9uKHRydWUpOwotICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRp
b24gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252ZXJzaW9u
LWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWw/c3RlcEZvdXIiOwotICAgICAgICAg
ICAgICAgIH07Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFn
ZUVsZW1lbnQpOwotICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNo
ID09PSAiP3N0ZXBGb3VyIikgewotICAgICAgICAgICAgICAgIGFwcGVuZENvbnZlcnNpb25EYXRh
SWZyYW1lQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
IGRvY3VtZW50LmNvb2tpZSA9ICJjb29raWVTZXRBc0ZpcnN0UGFydHk9MTsgcGF0aD0vIjsKLSAg
ICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7Ci0gICAgICAgIH0K
LSAgICB9Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2V4cGlyZWQtYXR0cmlidXRpb25zLXJl
bW92ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmli
dXRpb24vZXhwaXJlZC1hdHRyaWJ1dGlvbnMtcmVtb3ZlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlN2FlZGQxZmY2NjgxY2Q4ZjcwZDBmODQ4NDkxMzY0NGE2
NTZjMTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vZXhwaXJlZC1hdHRyaWJ1dGlv
bnMtcmVtb3ZlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVRl
c3RzIGV4cGlyYXRpb24gb2YgYWQgY2xpY2sgYXR0cmlidXRpb24uCi0KLQotCi1ObyBzdG9yZWQg
QWQgQ2xpY2sgQXR0cmlidXRpb24gZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2V4cGlyZWQtYXR0cmlidXRpb25zLXJlbW92ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2V4cGlyZWQtYXR0
cmlidXRpb25zLXJlbW92ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Ez
NTkzMTY2ZTJlZDM0ZWIxODhkYmM5YjAzYWMyY2MzZThkNDI4OS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw1MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4K
LTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3
cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXIt
c2NhbGFibGU9bm8iPgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVs
cGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4K
LTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyBleHBpcmF0aW9uIG9mIGFkIGNsaWNrIGF0dHJp
YnV0aW9uLjwvZGl2PgotPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9hZENsaWNrQXR0cmlidXRpb24vZXhwaXJlZC1hdHRyaWJ1dGlvbnMtcmVtb3ZlZC5odG1s
P3N0ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9z
dDo4MDAwIj5MaW5rPC9hPjxicj4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0Pgot
ICAgIHByZXBhcmVUZXN0KCk7Ci0KLSAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVu
dElEKSB7Ci0gICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxl
bWVudElEKTsKLSAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVt
ZW50Lm9mZnNldFdpZHRoIC8gMjsKLSAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNl
dFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgVUlIZWxwZXIuYWN0aXZh
dGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewot
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJv
bWlzZSByZWplY3RlZC4iOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdCgp
IHsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAod2lu
ZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgewotICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIubWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7Ci0g
ICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImltZyIpOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcu
MC4wLjE6ODQ0My9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJz
aW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiI7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50
LmlkID0gInBpeGVsIjsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0
cmlidXRpb24oKTsKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGls
ZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKLSAgICAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cGl4ZWwiKSk7Ci0gICAgICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAg
ICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGltYWdlRWxlbWVudCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGFj
dGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVy
VGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKLSAgICAgICAgfQotICAgIH0KLTwvc2NyaXB0
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
ZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2NvbnZlcnNpb25GaWxlUGF0aC5waHAgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvY29udmVyc2lv
bkZpbGVQYXRoLnBocApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmExMTI0MGMxZDk4
YzM4ODhiOGU5ZjA3OTZiNmM2NDc4NDhkY2U5ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1
dGlvbi9yZXNvdXJjZXMvY29udmVyc2lvbkZpbGVQYXRoLnBocAorKysgL2Rldi9udWxsCkBAIC0x
LDkgKzAsMCBAQAotPD9waHAKLXJlcXVpcmVfb25jZSAnLi4vLi4vcmVzb3VyY2VzL3BvcnRhYmls
aXR5TGF5ZXIucGhwJzsKLQotaWYgKGlzc2V0KCRfR0VUWyJub25jZSJdKSkKLSAgICAkY29udmVy
c2lvbkZpbGVOYW1lID0gIi9hZENsaWNrQ29udmVyc2lvbiIgLiAkX0dFVFsibm9uY2UiXSAuICIu
dHh0IjsKLWVsc2UKLSAgICAkY29udmVyc2lvbkZpbGVOYW1lID0gIi9hZENsaWNrQ29udmVyc2lv
bi50eHQiOwotJGNvbnZlcnNpb25GaWxlUGF0aCA9IHN5c19nZXRfdGVtcF9kaXIoKSAuICRjb252
ZXJzaW9uRmlsZU5hbWU7Ci0/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
ZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2NvbnZlcnNpb25S
ZXBvcnQucGhwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNWMyMDI2OWM3ODQ5MDZm
ZmY3NDc0NDhiMzg4MWY0MDYzN2FiYzAxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9u
L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICsw
LDAgQEAKLTw/cGhwCi1yZXF1aXJlX29uY2UgJ2NvbnZlcnNpb25GaWxlUGF0aC5waHAnOwotCi0k
Y29udmVyc2lvbkZpbGUgPSBmb3BlbigkY29udmVyc2lvbkZpbGVQYXRoIC4gIi50bXAiLCAndycp
OwotJGh0dHBIZWFkZXJzID0gJF9TRVJWRVI7Ci0kY29va2llc0ZvdW5kID0gZmFsc2U7Ci1mb3Jl
YWNoICgkaHR0cEhlYWRlcnMgYXMgJG5hbWUgPT4gJHZhbHVlKSB7Ci0gICAgaWYgKCRuYW1lID09
PSAiSFRUUF9IT1NUIikgewotICAgICAgICBmd3JpdGUoJGNvbnZlcnNpb25GaWxlLCAiJG5hbWU6
ICR2YWx1ZVxuIik7Ci0gICAgfSBlbHNlIGlmICgkbmFtZSA9PT0gIlJFUVVFU1RfVVJJIikgewot
ICAgICAgICAkcG9zaXRpb25PZk5vbmNlID0gc3RycG9zKCR2YWx1ZSwgIj9ub25jZT0iKTsKLSAg
ICAgICAgaWYgKCRwb3NpdGlvbk9mTm9uY2UgPT09IGZhbHNlKQotICAgICAgICAgICAgJG91dHB1
dFVSTCA9ICR2YWx1ZTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgJG91dHB1dFVSTCA9IHN1
YnN0cigkdmFsdWUsIDAsICRwb3NpdGlvbk9mTm9uY2UpOwotICAgICAgICBmd3JpdGUoJGNvbnZl
cnNpb25GaWxlLCAiJG5hbWU6ICRvdXRwdXRVUkxcbiIpOwotICAgIH0gZWxzZSBpZiAoJG5hbWUg
PT09ICJIVFRQX0NPT0tJRSIpIHsKLSAgICAgICAgZndyaXRlKCRjb252ZXJzaW9uRmlsZSwgIkNv
b2tpZXMgaW4gY29udmVyc2lvbiByZXF1ZXN0OiAkdmFsdWVcbiIpOwotICAgICAgICAkY29va2ll
c0ZvdW5kID0gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKCRuYW1lID09PSAiQ09OVEVOVF9UWVBFIikg
ewotICAgICAgICBmd3JpdGUoJGNvbnZlcnNpb25GaWxlLCAiQ29udGVudCB0eXBlOiAkdmFsdWVc
biIpOwotICAgIH0KLX0KLWlmICghJGNvb2tpZXNGb3VuZCkgewotICAgIGZ3cml0ZSgkY29udmVy
c2lvbkZpbGUsICJObyBjb29raWVzIGluIGNvbnZlcnNpb24gcmVxdWVzdC5cbiIpOwotfQotCi0k
cmVxdWVzdEJvZHkgPSBmaWxlX2dldF9jb250ZW50cygncGhwOi8vaW5wdXQnKTsKLWZ3cml0ZSgk
Y29udmVyc2lvbkZpbGUsICJSZXF1ZXN0IGJvZHk6XG4kcmVxdWVzdEJvZHlcbiIpOwotCi1mY2xv
c2UoJGNvbnZlcnNpb25GaWxlKTsKLXJlbmFtZSgkY29udmVyc2lvbkZpbGVQYXRoIC4gIi50bXAi
LCAkY29udmVyc2lvbkZpbGVQYXRoKTsKLQotaGVhZGVyKCJIVFRQLzEuMSAyMDAgT0siKTsKLXNl
dGNvb2tpZSgiY29va2llU2V0SW5Db252ZXJzaW9uUmVwb3J0IiwgIjEiLCAwLCAiLyIpOwotCi0/
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24v
cmVzb3VyY2VzL2NvbnZlcnRBbmRQb3N0TWVzc2FnZUJhY2suaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252ZXJ0QW5kUG9zdE1lc3Nh
Z2VCYWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0ODM1YTcxMjE4NTVk
ZWIyODAwZjY5ODM5M2Q2YzI4ODM4YTIzMjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRp
b24vcmVzb3VyY2VzL2NvbnZlcnRBbmRQb3N0TWVzc2FnZUJhY2suaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDI3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWwgbGFuZz0iZW4iPgotPGhl
YWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgotICAgIDxzY3JpcHQ+Ci0gICAgICAgIGZ1
bmN0aW9uIGZpcmVDb252ZXJzaW9uUGl4ZWwoKSB7Ci0gICAgICAgICAgICBsZXQgaW1hZ2VFbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgICAgICBpbWFnZUVs
ZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvYWRDbGlja0F0dHJpYnV0aW9uL3Jl
c291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImcHJpb3Jp
dHk9MDMiOwotICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKLSAgICAgICAg
ICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwi
KSk7Ci0gICAgICAgICAgICAgICAgcG9zdE1lc3NhZ2VCYWNrKCk7Ci0gICAgICAgICAgICB9Owot
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gcG9zdE1lc3NhZ2VCYWNrKCkgewotICAgICAgICAg
ICAgaWYgKHdpbmRvdy5vcGVuZXIpIHsKLSAgICAgICAgICAgICAgICB3aW5kb3cub3BlbmVyLnBv
c3RNZXNzYWdlKCJEb25lIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpOwotICAgICAgICAgICAg
ICAgIHdpbmRvdy5jbG9zZSgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoZmlyZUNvbnZlcnNpb25QaXhl
bCwgMCkiPgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291
cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA2ZjExMjRiODljZmQ0OTdkNjE5ZjdlOWNkZGNhNTFmN2U5Mzc1
NmY0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9nZXRDb252ZXJz
aW9uRGF0YS5waHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi08P3BocAotcmVxdWly
ZV9vbmNlICdjb252ZXJzaW9uRmlsZVBhdGgucGhwJzsKLQotJG5vVGltZW91dCA9IFRydWU7Ci0k
dGltZW91dE1zZWNzID0gMDsKLWlmIChpc3NldCgkX0dFVFsndGltZW91dF9tcyddKSkgewotICAg
ICRub1RpbWVvdXQgPSBGYWxzZTsKLSAgICAkdGltZW91dE1zZWNzID0gKGludCkgJF9HRVRbJ3Rp
bWVvdXRfbXMnXTsKLX0KLQotJGNvbnZlcnNpb25GaWxlRm91bmQgPSBGYWxzZTsKLXdoaWxlICgk
bm9UaW1lb3V0IHx8ICR0aW1lb3V0TXNlY3MgPiAwKSB7Ci0gICAgaWYgKGZpbGVfZXhpc3RzKCRj
b252ZXJzaW9uRmlsZVBhdGgpKSB7Ci0gICAgICAgICRjb252ZXJzaW9uRmlsZUZvdW5kID0gVHJ1
ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgICRzbGVlcE1zZWNzID0gMTA7Ci0gICAgdXNs
ZWVwKCRzbGVlcE1zZWNzICogMTAwMCk7Ci0gICAgaWYgKCEkbm9UaW1lb3V0KSB7Ci0gICAgICAg
ICR0aW1lb3V0TXNlY3MgLT0gJHNsZWVwTXNlY3M7Ci0gICAgfQotICAgIC8vIGZpbGVfZXhpc3Rz
KCkgY2FjaGVzIHJlc3VsdHMsIHdlIHdhbnQgdG8gaW52YWxpZGF0ZSB0aGUgY2FjaGUuCi0gICAg
Y2xlYXJzdGF0Y2FjaGUoKTsKLX0KLQotCi1lY2hvICI8aHRtbD48Ym9keT5cbiI7Ci0KLWlmICgk
Y29udmVyc2lvbkZpbGVGb3VuZCkgewotICAgIGVjaG8gIkNvbnZlcnNpb24gcmVjZWl2ZWQuIjsK
LSAgICAkY29udmVyc2lvbkZpbGUgPSBmb3BlbigkY29udmVyc2lvbkZpbGVQYXRoLCAncicpOwot
ICAgIHdoaWxlICgkbGluZSA9IGZnZXRzKCRjb252ZXJzaW9uRmlsZSkpIHsKLSAgICAgICAgZWNo
byAiPGJyPiI7Ci0gICAgICAgIGVjaG8gdHJpbSgkbGluZSk7Ci0gICAgfQotICAgIGVjaG8gIjxi
cj4iOwotICAgIGZjbG9zZSgkY29udmVyc2lvbkZpbGUpOwotICAgIHVubGluaygkY29udmVyc2lv
bkZpbGVQYXRoKTsKLX0gZWxzZSB7Ci0gICAgZWNobyAiQ29udmVyc2lvbiBub3QgcmVjZWl2ZWQg
LSB0aW1lZCBvdXQuPGJyPiI7Ci19Ci0KLWlmIChpc3NldCgkX0dFVFsnZW5kVGVzdCddKSkgewot
ICAgIGVjaG8gIjxzY3JpcHQ+IjsKLSAgICBlY2hvICJpZiAod2luZG93LnRlc3RSdW5uZXIpIHsi
OwotICAgIGVjaG8gIiAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsiOwotICAgIGVjaG8gIiAg
ICB0ZXN0UnVubmVyLnNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5n
KGZhbHNlKTsiOwotICAgIGVjaG8gIiAgICB0ZXN0UnVubmVyLnNldEFkQ2xpY2tBdHRyaWJ1dGlv
bkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKCcnKTsiOwotICAgIGVjaG8gIn0iOwotICAgIGVjaG8g
Ijwvc2NyaXB0PiI7Ci19Ci0KLWVjaG8gIjwvYm9keT48L2h0bWw+IjsKLT8+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVk
aXJlY3RUb0NvbnZlcnNpb24ucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0
cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzBjZWI0NjE3ZDBlZWIxZTM3NWRmZGI2MzNlOGNjZDc3ZGE1ZTEz
ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0Nv
bnZlcnNpb24ucGhwCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi08P3BocAotaGVhZGVy
KCJIVFRQLzEuMSAzMDIgRm91bmQiKTsKLWhlYWRlcigiQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUs
IG5vLXN0b3JlLCBtdXN0LXJldmFsaWRhdGUiKTsKLWlmIChpc3NldCgkX0dFVFsiY29udmVyc2lv
bkRhdGEiXSkgJiYgaXNzZXQoJF9HRVRbInByaW9yaXR5Il0pKSB7Ci0gIGhlYWRlcigiTG9jYXRp
b246IC8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8iIC4gJF9HRVRbImNvbnZlcnNp
b25EYXRhIl0gLiAiLyIgLiAkX0dFVFsicHJpb3JpdHkiXSk7Ci19IGVsc2UgaWYgKGlzc2V0KCRf
R0VUWyJjb252ZXJzaW9uRGF0YSJdKSkgewotICBoZWFkZXIoIkxvY2F0aW9uOiAvLndlbGwta25v
d24vYWQtY2xpY2stYXR0cmlidXRpb24vIiAuICRfR0VUWyJjb252ZXJzaW9uRGF0YSJdKTsKLX0K
LT8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb25PbklQQWRkcmVzcy5waHAgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0Nv
bnZlcnNpb25PbklQQWRkcmVzcy5waHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBm
ZTFhYTk4NzQ4MzgwODY1ZTkxNmYxNTIxODU1ZDNjODI2OGIyNzcuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENs
aWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uT25JUEFkZHJlc3Mu
cGhwCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi08P3BocAotaGVhZGVyKCJIVFRQLzEu
MCAzMDIgRm91bmQiKTsKLWlmIChpc3NldCgkX0dFVFsiY29udmVyc2lvbkRhdGEiXSkgJiYgaXNz
ZXQoJF9HRVRbInByaW9yaXR5Il0pKSB7Ci0gIGhlYWRlcigiTG9jYXRpb246IGh0dHBzOi8vMTI3
LjAuMC4xOjgwMDAvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vIiAuICRfR0VUWyJj
b252ZXJzaW9uRGF0YSJdIC4gIi8iIC4gJF9HRVRbInByaW9yaXR5Il0pOwotfSBlbHNlIGlmIChp
c3NldCgkX0dFVFsiY29udmVyc2lvbkRhdGEiXSkpIHsKLSAgaGVhZGVyKCJMb2NhdGlvbjogaHR0
cHM6Ly8xMjcuMC4wLjE6ODAwMC8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8iIC4g
JF9HRVRbImNvbnZlcnNpb25EYXRhIl0pOwotfQotPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy91dGlsLmpzIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3V0aWwuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNjI1NDUzZDBjMDNhMTZkYWI2ZjI4NGYzYmQy
NTQwMGM4ZDc5NmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3V0
aWwuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1mdW5jdGlvbiBwcmVwYXJlVGVz
dCgpIHsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0
KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVy
LnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKHRydWUpOwotICAgIH0KLX0KLQotZnVuY3Rpb24g
dGVhckRvd25BbmRGaW5pc2goKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAg
ICAgIHRlc3RSdW5uZXIuc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoZmFsc2UpOwotICAgICAg
ICB0ZXN0UnVubmVyLnNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5n
KGZhbHNlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJz
aW9uVVJMRm9yVGVzdGluZygiIik7Ci0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwot
ICAgIH0KLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJp
YnV0aW9uL3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1oaWdoZXItcHJpb3JpdHkt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24v
c2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5MGZjYmNiZmRmMWM4MTVkZGE0
MjViNTQ2YjIwZGUxMzNhM2YxYTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vj
b25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UZXN0cyB0aGF0IGEgc2Vjb25kIGF0
dHJpYnV0aW9uIGNvbnZlcnNpb24gd2l0aCBoaWdoZXIgcHJpb3JpdHkgcmVwbGFjZXMgYW4gb2xk
ZXIgd2l0aCBsb3dlciBwcmlvcml0eS4KLQotCi1Db252ZXJ0ZWQgQWQgQ2xpY2sgQXR0cmlidXRp
b25zOgotV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uIDEKLVNvdXJjZTogMTI3LjAuMC4xCi1E
ZXN0aW5hdGlvbjogbG9jYWxob3N0Ci1DYW1wYWlnbiBJRDogNAotQ29udmVyc2lvbiBkYXRhOiAx
MgotQ29udmVyc2lvbiBwcmlvcml0eTogNAotQ29udmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNl
bmQ6IFdpdGhpbiAyNC00OCBob3VycwotQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNv
bmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtYXR0cmlidXRpb24t
Y29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDM3ZTJhMGMyY2M3NDZjNTI2YWZjYjFiZWE4MzE0YjFjZTBjOWQwNDEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13
aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTIgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3
cG9ydD10cnVlIF0gLS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFy
c2V0PSJVVEYtOCI+Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRl
dmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+
VGVzdHMgdGhhdCBhIHNlY29uZCBhdHRyaWJ1dGlvbiBjb252ZXJzaW9uIHdpdGggaGlnaGVyIHBy
aW9yaXR5IHJlcGxhY2VzIGFuIG9sZGVyIHdpdGggbG93ZXIgcHJpb3JpdHkuPC9kaXY+Ci08YSBp
ZD0idGFyZ2V0TGluayI+TGluazwvYT48YnI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPHNj
cmlwdD4KLSAgICBjb25zdCBwYXRoID0gIi9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJp
YnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sIjsKLSAgICBjb25zdCBj
b25maWd1cmF0aW9uID0gWwotICAgICAgICB7Ci0gICAgICAgICAgICBocmVmOiAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIiArIHBhdGggKyAiP3N0ZXBUd28iLAotICAgICAgICAgICAgYWRjYW1wYWln
bmlkOiAiMyIsCi0gICAgICAgICAgICBhZGRlc3RpbmF0aW9uOiAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIgotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICBocmVmOiAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIiArIHBhdGggKyAiP3N0ZXBGb3VyIiwKLSAgICAgICAgICAgIGFkY2FtcGFp
Z25pZDogIjQiLAotICAgICAgICAgICAgYWRkZXN0aW5hdGlvbjogImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCIKLSAgICAgICAgfQotICAgIF07Ci0KLSAgICBwcmVwYXJlVGVzdCgpOwotCi0gICAgZnVu
Y3Rpb24gY29uZmlndXJlTGluayhpbmRleCkgewotICAgICAgICBsZXQgbGlua0VsZW1lbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpOwotICAgICAgICBsaW5rRWxlbWVu
dC5zZXRBdHRyaWJ1dGUoImhyZWYiLCBjb25maWd1cmF0aW9uW2luZGV4XS5ocmVmKTsKLSAgICAg
ICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhZGNhbXBhaWduaWQiLCBjb25maWd1cmF0aW9u
W2luZGV4XS5hZGNhbXBhaWduaWQpOwotICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUo
ImFkZGVzdGluYXRpb24iLCBjb25maWd1cmF0aW9uW2luZGV4XS5hZGRlc3RpbmF0aW9uKTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7Ci0gICAgICAg
IHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKLSAgICAg
ICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRo
IC8gMjsKLSAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQu
b2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBj
ZW50ZXJZKS50aGVuKAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4i
OwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNl
YXJjaCA9PT0gIiIpIHsKLSAgICAgICAgICAgICAgICAvLyBGaXJzdCBhZCBjbGljayAxMjcuMC4w
LjEg4oCTPiBsb2NhbGhvc3QuCi0gICAgICAgICAgICAgICAgY29uZmlndXJlTGluaygwKTsKLSAg
ICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKLSAgICAgICAgICAg
IH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgewotICAg
ICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIGZpcnN0IGFkIGNsaWNrIHdpdGggcHJpb3JpdHkg
MyBhbmQgbmF2aWdhdGUgYmFjayB0byAxMjcuMC4wLjEuCi0gICAgICAgICAgICAgICAgbGV0IGlt
YWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwotICAgICAgICAgICAg
ICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9hZENsaWNrQXR0
cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0
YT0xMiZwcmlvcml0eT0wMyI7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBp
eGVsIjsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKGUp
IHsKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiICsgcGF0aCArICI/c3RlcFRocmVlIjsKLSAgICAgICAgICAgICAgICB9
OwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50
KTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9z
dGVwVGhyZWUiKSB7Ci0gICAgICAgICAgICAgICAgLy8gU2Vjb25kIGFkIGNsaWNrIDEyNy4wLjAu
MSDigJM+IGxvY2FsaG9zdC4KLSAgICAgICAgICAgICAgICBjb25maWd1cmVMaW5rKDEpOwotICAg
ICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwotICAgICAgICAgICAg
fSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBGb3VyIikgewotICAg
ICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIHNlY29uZCBhZCBjbGljayB3aXRoIHByaW9yaXR5
IDQgYW5kIGZpbmlzaC4KLSAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNy
YyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMv
cmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PTA0IjsK
LSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOwotICAgICAgICAgICAg
ICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsKLSAgICAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0TGluayIpKTsKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7Ci0gICAgICAgICAgICAgICAg
ICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7Ci0gICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRw
dXQiKS5pbm5lclRleHQgPSAiRkFJTCBVbmtub3duIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT0g
IiArIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggKyAiLiI7Ci0gICAgICAgICAgICAgICAgdGVhckRv
d25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBO
byB0ZXN0UnVubmVyLiI7Ci0gICAgICAgIH0KLSAgICB9Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0
aW9uL3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNv
bmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhN2UyZGY3MGNjOWZiZTM1YThlNDM3Y2Rl
NjQyMDhjNzZjYjg3YTE4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1h
dHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UZXN0cyB0aGF0IGEgc2Vjb25kIGF0dHJpYnV0
aW9uIGNvbnZlcnNpb24gd2l0aCBsb3dlciBwcmlvcml0eSBkb2VzIG5vdCByZXBsYWNlIGFuIG9s
ZGVyIHdpdGggaGlnaGVyIHByaW9yaXR5LgotCi0KLUNvbnZlcnRlZCBBZCBDbGljayBBdHRyaWJ1
dGlvbnM6Ci1XZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24gMQotU291cmNlOiAxMjcuMC4wLjEK
LURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWduIElEOiAzCi1Db252ZXJzaW9uIGRhdGE6
IDEyCi1Db252ZXJzaW9uIHByaW9yaXR5OiA0Ci1Db252ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8g
c2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCi1Db252ZXJzaW9uIHJlcXVlc3Qgc2VudDogZmFsc2UK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Nl
Y29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJpYnV0aW9u
LWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDhhMzU3MmRiZDBjMmYwYmQ2NTZhOTRlMDUxYzEwNzlmYTIyZjg5YWUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13
aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5MiArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdw
b3J0PXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2
aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgotICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLSAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5U
ZXN0cyB0aGF0IGEgc2Vjb25kIGF0dHJpYnV0aW9uIGNvbnZlcnNpb24gd2l0aCBsb3dlciBwcmlv
cml0eSBkb2VzIG5vdCByZXBsYWNlIGFuIG9sZGVyIHdpdGggaGlnaGVyIHByaW9yaXR5LjwvZGl2
PgotPGEgaWQ9InRhcmdldExpbmsiPkxpbms8L2E+PGJyPgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rp
dj4KLTxzY3JpcHQ+Ci0gICAgY29uc3QgcGF0aCA9ICIvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29u
ZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS5odG1sIjsKLSAgICBj
b25zdCBjb25maWd1cmF0aW9uID0gWwotICAgICAgICB7Ci0gICAgICAgICAgICBocmVmOiAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIiArIHBhdGggKyAiP3N0ZXBUd28iLAotICAgICAgICAgICAgYWRj
YW1wYWlnbmlkOiAiMyIsCi0gICAgICAgICAgICBhZGRlc3RpbmF0aW9uOiAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIgotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICBocmVmOiAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIiArIHBhdGggKyAiP3N0ZXBGb3VyIiwKLSAgICAgICAgICAgIGFk
Y2FtcGFpZ25pZDogIjQiLAotICAgICAgICAgICAgYWRkZXN0aW5hdGlvbjogImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIKLSAgICAgICAgfQotICAgIF07Ci0KLSAgICBwcmVwYXJlVGVzdCgpOwotCi0g
ICAgZnVuY3Rpb24gY29uZmlndXJlTGluayhpbmRleCkgewotICAgICAgICBsZXQgbGlua0VsZW1l
bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpOwotICAgICAgICBsaW5r
RWxlbWVudC5zZXRBdHRyaWJ1dGUoImhyZWYiLCBjb25maWd1cmF0aW9uW2luZGV4XS5ocmVmKTsK
LSAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhZGNhbXBhaWduaWQiLCBjb25maWd1
cmF0aW9uW2luZGV4XS5hZGNhbXBhaWduaWQpOwotICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRy
aWJ1dGUoImFkZGVzdGluYXRpb24iLCBjb25maWd1cmF0aW9uW2luZGV4XS5hZGRlc3RpbmF0aW9u
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7Ci0g
ICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsK
LSAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNl
dFdpZHRoIC8gMjsKLSAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVs
ZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50
ZXJYLCBjZW50ZXJZKS50aGVuKAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWpl
Y3RlZC4iOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93LmxvY2F0
aW9uLnNlYXJjaCA9PT0gIiIpIHsKLSAgICAgICAgICAgICAgICAvLyBGaXJzdCBhZCBjbGljayAx
MjcuMC4wLjEg4oCTPiBsb2NhbGhvc3QuCi0gICAgICAgICAgICAgICAgY29uZmlndXJlTGluaygw
KTsKLSAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKLSAgICAg
ICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikg
ewotICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIGZpcnN0IGFkIGNsaWNrIHdpdGggcHJp
b3JpdHkgNCBhbmQgbmF2aWdhdGUgYmFjayB0byAxMjcuMC4wLjEuCi0gICAgICAgICAgICAgICAg
bGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwotICAgICAg
ICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9hZENs
aWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJz
aW9uRGF0YT0xMiZwcmlvcml0eT0wNCI7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lmlk
ID0gInBpeGVsIjsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiICsgcGF0aCArICI/c3RlcFRocmVlIjsKLSAgICAgICAgICAg
ICAgICB9OwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VF
bGVtZW50KTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9
PT0gIj9zdGVwVGhyZWUiKSB7Ci0gICAgICAgICAgICAgICAgLy8gU2Vjb25kIGFkIGNsaWNrIDEy
Ny4wLjAuMSDigJM+IGxvY2FsaG9zdC4KLSAgICAgICAgICAgICAgICBjb25maWd1cmVMaW5rKDEp
OwotICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwotICAgICAg
ICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBGb3VyIikg
ewotICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIHNlY29uZCBhZCBjbGljayB3aXRoIHBy
aW9yaXR5IDMgYW5kIGZpbmlzaC4KLSAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVt
ZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNv
dXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5
PTAzIjsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOwotICAgICAg
ICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oZSkgewotICAgICAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsKLSAgICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0TGluayIpKTsKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5y
ZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7Ci0gICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBVbmtub3duIHdpbmRvdy5sb2NhdGlvbi5zZWFy
Y2ggPT0gIiArIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggKyAiLiI7Ci0gICAgICAgICAgICAgICAg
dGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAi
RkFJTCBObyB0ZXN0UnVubmVyLiI7Ci0gICAgICAgIH0KLSAgICB9Ci08L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0
dHJpYnV0aW9uL3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1j
b252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggM2UxYjFiYTM4NjVhMjU1YWQ3OWRmODYyMjFkNTQwYWY1Njc5Mjg3
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRo
LWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCww
IEBACi1UZXN0cyB0aGF0IHRoZSBhdHRyaWJ1dGlvbiBpcyB1cGRhdGVkIGlmIGl0IGdldHMgYSBz
ZWNvbmQgY29udmVyc2lvbiB3aXRoIGhpZ2hlciBwcmlvcml0eS4KLQotCi1Db252ZXJ0ZWQgQWQg
Q2xpY2sgQXR0cmlidXRpb25zOgotV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uIDEKLVNvdXJj
ZTogMTI3LjAuMC4xCi1EZXN0aW5hdGlvbjogbG9jYWxob3N0Ci1DYW1wYWlnbiBJRDogMwotQ29u
dmVyc2lvbiBkYXRhOiAxMgotQ29udmVyc2lvbiBwcmlvcml0eTogNAotQ29udmVyc2lvbiBlYXJs
aWVzdCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAyNC00OCBob3VycwotQ29udmVyc2lvbiByZXF1ZXN0
IHNlbnQ6IGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tB
dHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWNvbnZlcnNp
b24td2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZWRmZjU5MmY3MWQ4YzRlOTE0ZjEwOTBkNWI5ZTM3MmQ2OWE2NzdkNy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0
eS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+IDwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Ci08
aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAg
PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlh
bC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2V0VGltZW91
dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCB0aGUgYXR0
cmlidXRpb24gaXMgdXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGNvbnZlcnNpb24gd2l0aCBo
aWdoZXIgcHJpb3JpdHkuPC9kaXY+Ci08YSBpZD0idGFyZ2V0TGluayI+TGluazwvYT48YnI+Ci08
ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBjb25zdCBwYXRoID0gIi9hZENs
aWNrQXR0cmlidXRpb24vc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHkuaHRt
bCI7Ci0gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFsKLSAgICAgICAgewotICAgICAgICAgICAg
aHJlZjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgKyBwYXRoICsgIj9zdGVwVHdvIiwKLSAgICAg
ICAgICAgIGFkY2FtcGFpZ25pZDogIjMiLAotICAgICAgICAgICAgYWRkZXN0aW5hdGlvbjogImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKLSAgICAgICAgfQotICAgIF07Ci0KLSAgICBwcmVwYXJlVGVz
dCgpOwotCi0gICAgZnVuY3Rpb24gY29uZmlndXJlTGluayhpbmRleCkgewotICAgICAgICBsZXQg
bGlua0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpOwotICAg
ICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImhyZWYiLCBjb25maWd1cmF0aW9uW2luZGV4
XS5ocmVmKTsKLSAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhZGNhbXBhaWduaWQi
LCBjb25maWd1cmF0aW9uW2luZGV4XS5hZGNhbXBhaWduaWQpOwotICAgICAgICBsaW5rRWxlbWVu
dC5zZXRBdHRyaWJ1dGUoImFkZGVzdGluYXRpb24iLCBjb25maWd1cmF0aW9uW2luZGV4XS5hZGRl
c3RpbmF0aW9uKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVu
dElEKSB7Ci0gICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxl
bWVudElEKTsKLSAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVt
ZW50Lm9mZnNldFdpZHRoIC8gMjsKLSAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNl
dFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgVUlIZWxwZXIuYWN0aXZh
dGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewot
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJv
bWlzZSByZWplY3RlZC4iOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gY29udmVydChw
cmlvcml0eSwgY2FsbGJhY2spIHsKLSAgICAgICAgbGV0IHBpeGVsRWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpOwotICAgICAgICBpZiAocGl4ZWxFbGVtZW50KQotICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChwaXhlbEVsZW1lbnQpOwotCi0gICAg
ICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAg
ICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tB
dHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25E
YXRhPTEyJnByaW9yaXR5PSIgKyBwcmlvcml0eTsKLSAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0g
InBpeGVsIjsKLSAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBjYWxsYmFjazsKLSAgICAg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewot
ICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICIiKSB7Ci0gICAgICAg
ICAgICAgICAgLy8gQWQgY2xpY2sgMTI3LjAuMC4xIOKAkz4gbG9jYWxob3N0LgotICAgICAgICAg
ICAgICAgIGNvbmZpZ3VyZUxpbmsoMCk7Ci0gICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50
KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5z
ZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKLSAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBh
ZCBjbGljayB3aXRoIHByaW9yaXR5IDMuCi0gICAgICAgICAgICAgICAgY29udmVydCgiMDMiLCBm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgYWQgY2xpY2sg
d2l0aCBwcmlvcml0eSA0LgotICAgICAgICAgICAgICAgICAgICBjb252ZXJ0KCIwNCIsIGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQWRDbGlja0F0
dHJpYnV0aW9uKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92
ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicGl4ZWwiKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZp
bmlzaCgpOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFVua25vd24gd2luZG93LmxvY2F0aW9uLnNl
YXJjaCA9PSAiICsgd2luZG93LmxvY2F0aW9uLnNlYXJjaCArICIuIjsKLSAgICAgICAgICAgICAg
ICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9
ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKLSAgICAgICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNr
QXR0cmlidXRpb24vc2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQt
Y29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzAzY2ZkYmEzZWZmNTA5MTgyNWZlY2Y0MmFjYWY0YzFmMTgxYWU4
Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRo
LWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAg
QEAKLVRlc3RzIHRoYXQgdGhlIGF0dHJpYnV0aW9uIGlzIG5vdCB1cGRhdGVkIGlmIGl0IGdldHMg
YSBzZWNvbmQgY29udmVyc2lvbiB3aXRoIGxvd2VyIHByaW9yaXR5LgotCi0KLUNvbnZlcnRlZCBB
ZCBDbGljayBBdHRyaWJ1dGlvbnM6Ci1XZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24gMQotU291
cmNlOiAxMjcuMC4wLjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWduIElEOiAzCi1D
b252ZXJzaW9uIGRhdGE6IDEyCi1Db252ZXJzaW9uIHByaW9yaXR5OiA0Ci1Db252ZXJzaW9uIGVh
cmxpZXN0IHRpbWUgdG8gc2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCi1Db252ZXJzaW9uIHJlcXVl
c3Qgc2VudDogZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlj
a0F0dHJpYnV0aW9uL3NlY29uZC1jb252ZXJzaW9uLXdpdGgtbG93ZXItcHJpb3JpdHkuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1jb252ZXJz
aW9uLXdpdGgtbG93ZXItcHJpb3JpdHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYWNmZjk2YWE1OWE0NGE2MWM5N2JjNmI1NjhiZDA3MDkxYTBlY2NkZi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KLTxo
dG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8
bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFs
LXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0
KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IHRoZSBhdHRy
aWJ1dGlvbiBpcyBub3QgdXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGNvbnZlcnNpb24gd2l0
aCBsb3dlciBwcmlvcml0eS48L2Rpdj4KLTxhIGlkPSJ0YXJnZXRMaW5rIj5MaW5rPC9hPjxicj4K
LTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0PgotICAgIGNvbnN0IHBhdGggPSAiL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5Lmh0
bWwiOwotICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBbCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGhyZWY6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiICsgcGF0aCArICI/c3RlcFR3byIsCi0gICAg
ICAgICAgICBhZGNhbXBhaWduaWQ6ICIzIiwKLSAgICAgICAgICAgIGFkZGVzdGluYXRpb246ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiCi0gICAgICAgIH0KLSAgICBdOwotCi0gICAgcHJlcGFyZVRl
c3QoKTsKLQotICAgIGZ1bmN0aW9uIGNvbmZpZ3VyZUxpbmsoaW5kZXgpIHsKLSAgICAgICAgbGV0
IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKTsKLSAg
ICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJocmVmIiwgY29uZmlndXJhdGlvbltpbmRl
eF0uaHJlZik7Ci0gICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRjYW1wYWlnbmlk
IiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRjYW1wYWlnbmlkKTsKLSAgICAgICAgbGlua0VsZW1l
bnQuc2V0QXR0cmlidXRlKCJhZGRlc3RpbmF0aW9uIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRk
ZXN0aW5hdGlvbik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1l
bnRJRCkgewotICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVs
ZW1lbnRJRCk7Ci0gICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxl
bWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZz
ZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2
YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFBy
b21pc2UgcmVqZWN0ZWQuIjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwot
ICAgICAgICAgICAgfQotICAgICAgICApOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNvbnZlcnQo
cHJpb3JpdHksIGNhbGxiYWNrKSB7Ci0gICAgICAgIGxldCBwaXhlbEVsZW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKTsKLSAgICAgICAgaWYgKHBpeGVsRWxlbWVudCkKLSAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocGl4ZWxFbGVtZW50KTsKLQotICAg
ICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0g
ICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9hZENsaWNr
QXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9u
RGF0YT0xMiZwcmlvcml0eT0iICsgcHJpb3JpdHk7Ci0gICAgICAgIGltYWdlRWxlbWVudC5pZCA9
ICJwaXhlbCI7Ci0gICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gY2FsbGJhY2s7Ci0gICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
LSAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiIikgewotICAgICAg
ICAgICAgICAgIC8vIEFkIGNsaWNrIDEyNy4wLjAuMSDigJM+IGxvY2FsaG9zdC4KLSAgICAgICAg
ICAgICAgICBjb25maWd1cmVMaW5rKDApOwotICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVu
dCgidGFyZ2V0TGluayIpOwotICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24u
c2VhcmNoID09PSAiP3N0ZXBUd28iKSB7Ci0gICAgICAgICAgICAgICAgLy8gQ29udmVydCB0aGUg
YWQgY2xpY2sgd2l0aCBwcmlvcml0eSA0LgotICAgICAgICAgICAgICAgIGNvbnZlcnQoIjA0Iiwg
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIGFkIGNsaWNr
IHdpdGggcHJpb3JpdHkgMy4KLSAgICAgICAgICAgICAgICAgICAgY29udmVydCgiMDMiLCBmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFkQ2xpY2tB
dHRyaWJ1dGlvbigpOwotICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1v
dmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInBpeGVsIikpOwotICAgICAgICAgICAgICAgICAgICAgICAgdGVhckRvd25BbmRG
aW5pc2goKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBVbmtub3duIHdpbmRvdy5sb2NhdGlvbi5z
ZWFyY2ggPT0gIiArIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggKyAiLiI7Ci0gICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJU
ZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOwotICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZW5k
LWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGE4MjM3ZDE1M2ZjN2YwYjgxYmQ5MDExNGJiMmEyZTcwZWE4YmJk
OWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2VuZC1hdHRyaWJ1dGlvbi1jb252
ZXJzaW9uLXJlcXVlc3QtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBA
QAotVGVzdHMgc2VuZGluZyBvZiBhZCBjbGljayBhdHRyaWJ1dGlvbiByZXF1ZXN0cyBhZnRlciBh
IGNvbnZlcnNpb24uIEFsc28gdGVzdHMgdGhhdCBjb29raWVzIGFyZSBub3Qgc2VudCBpbiB0aG9z
ZSByZXF1ZXN0cyBhbmQgY29va2llcyBhcmUgbm90IGFjY2VwdGVkIGluIHRoZSByZXNwb25zZXMu
Ci0KLQotCi0tLS0tLS0tLQotRnJhbWU6ICc8IS0tZnJhbWUxLS0+JwotLS0tLS0tLS0KLUNvb2tp
ZXMgYXJlOiBjb29raWVTZXRBc0ZpcnN0UGFydHkgPSAxCi0KLS0tLS0tLS0tCi1GcmFtZTogJzwh
LS1mcmFtZTItLT4nCi0tLS0tLS0tLQotQ29udmVyc2lvbiByZWNlaXZlZC4KLUhUVFBfSE9TVDog
MTI3LjAuMC4xOjgwMDAKLUNvbnRlbnQgdHlwZTogYXBwbGljYXRpb24vanNvbgotUkVRVUVTVF9V
Ukk6IC9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwCi1O
byBjb29raWVzIGluIGNvbnZlcnNpb24gcmVxdWVzdC4KLVJlcXVlc3QgYm9keToKLXsiY29udGVu
dC10eXBlIjoiY2xpY2siLCJjb250ZW50LXNpdGUiOiIxMjcuMC4wLjEiLCJjb250ZW50LWlkIjoz
LCJjb252ZXJzaW9uLXNpdGUiOiJsb2NhbGhvc3QiLCJjb252ZXJzaW9uLWRhdGEiOjEyLCJyZXBv
cnQtdmVyc2lvbiI6MX0KLQotCi0tLS0tLS0tLQotRnJhbWU6ICc8IS0tZnJhbWUzLS0+JwotLS0t
LS0tLS0KLUNvb2tpZXMgYXJlOiBjb29raWVTZXRBc0ZpcnN0UGFydHkgPSAxCi0KLU5vIHN0b3Jl
ZCBBZCBDbGljayBBdHRyaWJ1dGlvbiBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJl
cXVlc3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Nl
bmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDk4ZmNiZmEyNWUzZjVlM2RjODE4YmEwY2E5NTUyOWRjM2MxZDIzM2MuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9u
LXJlcXVlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBd
IC0tPgotPGh0bWwgbGFuZz0iZW4iPgotPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0iVVRGLTgi
PgotICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgs
IGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNl
dFRpbWVvdXQocnVuVGVzdCwgMCkiPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHNlbmRp
bmcgb2YgYWQgY2xpY2sgYXR0cmlidXRpb24gcmVxdWVzdHMgYWZ0ZXIgYSBjb252ZXJzaW9uLiBB
bHNvIHRlc3RzIHRoYXQgY29va2llcyBhcmUgbm90IHNlbnQgaW4gdGhvc2UgcmVxdWVzdHMgYW5k
IGNvb2tpZXMgYXJlIG5vdCBhY2NlcHRlZCBpbiB0aGUgcmVzcG9uc2VzLjwvZGl2PgotPGEgaWQ9
InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9hZENsaWNrQXR0cmlidXRp
b24vc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbD9zdGVwVHdvIiBhZGNh
bXBhaWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwv
YT48YnI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBjb25zdCBjdXJy
ZW50VGltZU1pbGxpcyA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7Ci0gICAgY29uc3QgaGlnaEVu
dHJvcHlCaXRzID0gY3VycmVudFRpbWVNaWxsaXMgLSAoTWF0aC5mbG9vcihjdXJyZW50VGltZU1p
bGxpcyAvIDEwMDAwMDApICogMTAwMDAwMCk7Ci0gICAgY29uc3Qgbm9uY2UgPSBoaWdoRW50cm9w
eUJpdHMgKyAiIiArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMCk7Ci0KLSAgICBwcmVw
YXJlVGVzdCgpOwotCi0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RS
dW5uZXIuc2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmcodHJ1ZSk7
Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZv
clRlc3RpbmcoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vcmVzb3Vy
Y2VzL2NvbnZlcnNpb25SZXBvcnQucGhwP25vbmNlPSIgKyBub25jZSk7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBjZW50
ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAg
ICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdo
dCAvIDI7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhl
bigKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
Im91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAgICAg
ICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICApOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIGFwcGVuZElmcmFtZSh1cmwsIG9ubG9hZENhbGxiYWNrKSB7
Ci0gICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZy
YW1lIik7Ci0gICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gdXJsOwotICAgICAgICBpZiAob25s
b2FkQ2FsbGJhY2spCi0gICAgICAgICAgICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IG9ubG9hZENh
bGxiYWNrOwotICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQp
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFwcGVuZENvbnZlcnNpb25EYXRhSWZyYW1lQW5kRmlu
aXNoKCkgewotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsKLSAg
ICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0TGluayIpKTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7Ci0KLSAgICAgICAgYXBwZW5kSWZyYW1lKCJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvY29va2llcy9yZXNvdXJjZXMvZWNoby1jb29raWVzLnBocCIpOwot
ICAgICAgICBhcHBlbmRJZnJhbWUoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9hZENsaWNrQXR0cmli
dXRpb24vcmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBocD90aW1lb3V0X21zPTIwMDAmbm9u
Y2U9IiArIG5vbmNlLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGFwcGVuZElmcmFtZSgiaHR0
cDovLzEyNy4wLjAuMTo4MDAwL2Nvb2tpZXMvcmVzb3VyY2VzL2VjaG8tY29va2llcy5waHAiLCBm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgaWYgKHdpbmRv
dy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKLSAgICAgICAgICAgICAgICBsZXQg
aW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgICAg
ICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tB
dHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25E
YXRhPTEyJm5vbmNlPSIgKyBub25jZTsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQg
PSAicGl4ZWwiOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFwcGVuZENvbnZlcnNpb25EYXRhSWZyYW1lQW5k
RmluaXNoKCk7Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJjb29raWVTZXRBc0ZpcnN0UGFydHk9MTsg
cGF0aD0vIjsKLSAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7
Ci0gICAgICAgIH0KLSAgICB9Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWFkLWNs
aWNrLWF0dHJpYnV0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRD
bGlja0F0dHJpYnV0aW9uL3N0b3JlLWFkLWNsaWNrLWF0dHJpYnV0aW9uLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2ZkMzFhOTdiZjFjZmFjZjY1NTJiZjVmMjI0
ZTIxMzE0MGUwMWE5NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zdG9yZS1hZC1j
bGljay1hdHRyaWJ1dGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAg
QEAKLVRlc3RzIHN0b3JhZ2Ugb2YgYWQgY2xpY2sgYXR0cmlidXRpb24uCi0KLQotVW5jb252ZXJ0
ZWQgQWQgQ2xpY2sgQXR0cmlidXRpb25zOgotV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uIDEK
LVNvdXJjZTogMTI3LjAuMC4xCi1EZXN0aW5hdGlvbjogbG9jYWxob3N0Ci1DYW1wYWlnbiBJRDog
MwotTm8gY29udmVyc2lvbiBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUtYWQtY2xpY2stYXR0cmlidXRpb24uaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWFkLWNsaWNrLWF0
dHJpYnV0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNkZjc2YjA0ZjU5
YmZiY2JiNGY4MDA5OWI2ZjI4YjcxY2MwZTYwMzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmli
dXRpb24vc3RvcmUtYWQtY2xpY2stYXR0cmlidXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDQ1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVz
ZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgotPGh0bWwgbGFuZz0iZW4iPgotPGhlYWQ+Ci0g
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgotICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250
ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1u
byI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwv
c2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgotPGRpdiBpZD0i
ZGVzY3JpcHRpb24iPlRlc3RzIHN0b3JhZ2Ugb2YgYWQgY2xpY2sgYXR0cmlidXRpb24uPC9kaXY+
Ci08YSBpZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2FkQ2xpY2tB
dHRyaWJ1dGlvbi9zdG9yZS1hZC1jbGljay1hdHRyaWJ1dGlvbi5odG1sP3N0ZXBUd28iIGFkY2Ft
cGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9h
Pjxicj4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHByZXBhcmVUZXN0
KCk7Ci0KLSAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7Ci0gICAgICAg
IHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKLSAgICAg
ICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRo
IC8gMjsKLSAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQu
b2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBj
ZW50ZXJZKS50aGVuKAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4i
OwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNl
YXJjaCA9PT0gIj9zdGVwVHdvIikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFk
Q2xpY2tBdHRyaWJ1dGlvbigpOwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3Zl
Q2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7Ci0gICAgICAgICAg
ICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0
cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOwotICAgICAgICB9Ci0gICAg
fQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zdG9yZS1kaXNhYmxlZC1pbi1lcGhlbWVyYWwt
c2Vzc2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRy
aWJ1dGlvbi9zdG9yZS1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlMzNiNzU3MGI4MmJmNDE3NjNkYWRjMWQ1
M2RlNTZkZTJjMjAwNTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUtZGlz
YWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNSArMCwwIEBACi1UZXN0cyB0aGF0IHN0b3JhZ2Ugb2YgYWQgY2xpY2sgYXR0cmlidXRpb24g
aXMgZGlzYWJsZWQgaW4gZXBoZW1lcmFsIHNlc3Npb25zLgotCi0KLQotTm8gc3RvcmVkIEFkIENs
aWNrIEF0dHJpYnV0aW9uIGRhdGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FkQ2xpY2tBdHRyaWJ1dGlvbi9zdG9yZS1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUtZGlz
YWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNmZjMjc0MWFiMTFiYzFjN2E5NjBlNDllYTI3MzZlNGU2NDg2NDZkZi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zdG9yZS1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lv
bi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgdXNlRXBoZW1lcmFsU2Vzc2lvbj10cnVl
IF0gLS0+Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxt
ZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0i
d2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgot
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2Ny
aXB0aW9uIj5UZXN0cyB0aGF0IHN0b3JhZ2Ugb2YgYWQgY2xpY2sgYXR0cmlidXRpb24gaXMgZGlz
YWJsZWQgaW4gZXBoZW1lcmFsIHNlc3Npb25zLjwvZGl2PgotPGEgaWQ9InRhcmdldExpbmsiIGhy
ZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUtZGlzYWJs
ZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMiIGFk
ZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Ci08ZGl2IGlk
PSJvdXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBwcmVwYXJlVGVzdCgpOwotCi0gICAgZnVu
Y3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBjZW50ZXJY
ID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAg
IHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAv
IDI7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigK
LSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91
dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAgICAgICAg
ICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICApOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3Rl
cFR3byIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRp
b24oKTsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOwotICAgICAgICAgICAgICAgIHRlYXJEb3du
QW5kRmluaXNoKCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGFjdGl2
YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4
dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKLSAgICAgICAgfQotICAgIH0KLTwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250
ZW50ZXh0ZW5zaW9ucy9ibG9jay1hZC1jbGljay1hdHRyaWJ1dGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLWFkLWNsaWNrLWF0
dHJpYnV0aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjcw
NzRmNzk5NWIxYjg5ZDVlODdkMDQ2MTNiNmViMDQ1YWQ1NWI4Zi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRl
bnRleHRlbnNpb25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogQmxvY2tlZCBieSBj
b250ZW50IGV4dGVuc2lvbgotQ09OU09MRSBNRVNTQUdFOiBDYW5ub3QgbG9hZCBpbWFnZSBodHRw
czovLzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RU
b0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBj
aGVja3MuCi1UZXN0cyB0aGF0IGFkIGNsaWNrIGF0dHJpYnV0aW9uIHJlZGlyZWN0cyB0byB3ZWxs
LWtub3duIGxvY2F0aW9uIGRvbid0IHRyaWdnZXIgYSBjb252ZXJzaW9uIGlmIHRoZXkgYXJlIGJs
b2NrZWQgYnkgY29udGVudCBibG9ja2Vycy4KLQotCi0KLS0tLS0tLS0tCi1GcmFtZTogJzwhLS1m
cmFtZTEtLT4nCi0tLS0tLS0tLQotQ29udmVyc2lvbiBub3QgcmVjZWl2ZWQgLSB0aW1lZCBvdXQu
Ci0KLVVuY29udmVydGVkIEFkIENsaWNrIEF0dHJpYnV0aW9uczoKLVdlYkNvcmU6OkFkQ2xpY2tB
dHRyaWJ1dGlvbiAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRpb246IGxvY2FsaG9zdAot
Q2FtcGFpZ24gSUQ6IDMKLU5vIGNvbnZlcnNpb24gZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2stYWQtY2xpY2stYXR0cmlidXRp
b24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2st
YWQtY2xpY2stYXR0cmlidXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NDE0Y2NlODYwNTRiNjMwOGZiYjIzMjY1NjZlZmQwYzllNjFhNjBhZC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nv
bnRlbnRleHRlbnNpb25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw3MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4K
LTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3
cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXIt
c2NhbGFibGU9bm8iPgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVs
cGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vYWRDbGlja0F0dHJpYnV0aW9u
L3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2V0
VGltZW91dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBh
ZCBjbGljayBhdHRyaWJ1dGlvbiByZWRpcmVjdHMgdG8gd2VsbC1rbm93biBsb2NhdGlvbiBkb24n
dCB0cmlnZ2VyIGEgY29udmVyc2lvbiBpZiB0aGV5IGFyZSBibG9ja2VkIGJ5IGNvbnRlbnQgYmxv
Y2tlcnMuPC9kaXY+Ci08YSBpZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4
MDAwL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLmh0bWw/c3Rl
cFR3byIgYWRjYW1wYWlnbmlkPSIzIiBhZGRlc3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiPkxpbms8L2E+PGJyPgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAg
cHJlcGFyZVRlc3QoKTsKLQotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0
ZXN0UnVubmVyLnNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHRy
dWUpOwotICAgICAgICB0ZXN0UnVubmVyLnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25V
UkxGb3JUZXN0aW5nKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL3Jl
c291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocCIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFj
dGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOwotICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1l
bnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICB2YXIgY2Vu
dGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwotICAg
ICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCi0gICAgICAg
ICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgZnVuY3Rpb24g
KCkgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5p
bm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7Ci0gICAgICAgICAgICAgICAgdGVh
ckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgKTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBhcHBlbmRJZnJhbWUodXJsLCBvbmxvYWRDYWxsYmFjaykgewotICAgICAgICBs
ZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICAg
ICAgICBpZnJhbWVFbGVtZW50LnNyYyA9IHVybDsKLSAgICAgICAgaWYgKG9ubG9hZENhbGxiYWNr
KQotICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBvbmxvYWRDYWxsYmFjazsKLSAg
ICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBhcHBlbmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZpbmlzaCgpIHsKLSAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7Ci0gICAgICAgIGRvY3Vt
ZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsi
KSk7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInBpeGVsIikpOwotCi0gICAgICAgIGFwcGVuZElmcmFtZSgiaHR0cDovLzEyNy4wLjAu
MTo4MDAwL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhw
P3RpbWVvdXRfbXM9MTAwMCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdGVhckRvd25BbmRG
aW5pc2goKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93
LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgewotICAgICAgICAgICAgICAgIGxldCBp
bWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAgICAg
ICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvYWRDbGlja0F0
dHJpYnV0aW9uL3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRh
dGE9MTIiOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0gICAg
ICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKLSAgICAgICAg
ICAgICAgICAgICAgYXBwZW5kQ29udmVyc2lvbkRhdGFJZnJhbWVBbmRGaW5pc2goKTsKLSAgICAg
ICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
aW1hZ2VFbGVtZW50KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYWN0
aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJU
ZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOwotICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nv
bnRlbnRleHRlbnNpb25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLmh0bWwuanNvbiBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2stYWQtY2xpY2stYXR0
cmlidXRpb24uaHRtbC5qc29uCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZTM5NGVm
MTE4MGJjOGZiYTY4NzZlMTU2MzE0NGU4NGE2NDk0ZDE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4
dGVuc2lvbnMvYmxvY2stYWQtY2xpY2stYXR0cmlidXRpb24uaHRtbC5qc29uCisrKyAvZGV2L251
bGwKQEAgLTEsMTAgKzAsMCBAQAotWwotICB7Ci0gICAgInRyaWdnZXIiOiB7Ci0gICAgICAidXJs
LWZpbHRlciI6ICIvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vIgotICAgIH0sCi0g
ICAgImFjdGlvbiI6IHsKLSAgICAgICJ0eXBlIjogImJsb2NrIgotICAgIH0KLSAgfQotXQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1w
cml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2stcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjFmYWFiZTliMjljNWY1MmExYzZmNTExMzlmZWUyNTEy
ZmMwNzk4MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVu
dGV4dGVuc2lvbnMvYmxvY2stcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNyBAQAorQ09OU09MRSBNRVNTQUdFOiBCbG9ja2VkIGJ5IGNvbnRlbnQgZXh0
ZW5zaW9uCitDT05TT0xFIE1FU1NBR0U6IENhbm5vdCBsb2FkIGltYWdlIGh0dHBzOi8vMTI3LjAu
MC4xOjg0NDMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252
ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tz
LgorVGVzdHMgdGhhdCBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IHJlZGlyZWN0cyB0byB3ZWxs
LWtub3duIGxvY2F0aW9uIGRvbid0IHRyaWdnZXIgYSBjb252ZXJzaW9uIGlmIHRoZXkgYXJlIGJs
b2NrZWQgYnkgY29udGVudCBibG9ja2Vycy4KKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1m
cmFtZTEtLT4nCistLS0tLS0tLQorQ29udmVyc2lvbiBub3QgcmVjZWl2ZWQgLSB0aW1lZCBvdXQu
CisKK1VuY29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgorV2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQorU291cmNlOiAxMjcuMC4wLjEKK0Rlc3RpbmF0aW9uOiBs
b2NhbGhvc3QKK0NhbXBhaWduIElEOiAzCitObyBjb252ZXJzaW9uIGRhdGEuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUt
Y2xpY2stbWVhc3VyZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4
dGVuc2lvbnMvYmxvY2stcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmExOTEwN2Y1MjJhNGE3ZmVjM2FkYTMxOWI5Mjg0OWNlMjI4MmRlMWMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZh
dGUtY2xpY2stbWVhc3VyZW1lbnQuaHRtbApAQCAtMCwwICsxLDcyIEBACis8IURPQ1RZUEUgaHRt
bD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAt
LT4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4K
KyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBp
bml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgcmVkaXJl
Y3RzIHRvIHdlbGwta25vd24gbG9jYXRpb24gZG9uJ3QgdHJpZ2dlciBhIGNvbnZlcnNpb24gaWYg
dGhleSBhcmUgYmxvY2tlZCBieSBjb250ZW50IGJsb2NrZXJzLjwvZGl2PgorPGEgaWQ9InRhcmdl
dExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9jb250ZW50ZXh0ZW5zaW9ucy9ibG9j
ay1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50Lmh0bWw/c3RlcFR3byIgYWRjYW1wYWlnbmlkPSIz
IiBhZGRlc3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgorPGRp
diBpZD0ib3V0cHV0Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAgcHJlcGFyZVRlc3QoKTsKKworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcodHJ1ZSk7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGlu
ZygiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNl
cy9jb252ZXJzaW9uUmVwb3J0LnBocCIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFjdGl2YXRl
RWxlbWVudChlbGVtZW50SUQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChlbGVtZW50SUQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zm
c2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9
IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBV
SUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRl
eHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25B
bmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBhcHBlbmRJZnJhbWUodXJsLCBvbmxvYWRDYWxsYmFjaykgeworICAgICAgICBsZXQgaWZy
YW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBp
ZnJhbWVFbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9ubG9hZENhbGxiYWNrKQorICAg
ICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBvbmxvYWRDYWxsYmFjazsKKyAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBhcHBlbmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZpbmlzaCgpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgZG9jdW1l
bnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIp
KTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicGl4ZWwiKSk7CisKKyAgICAgICAgYXBwZW5kSWZyYW1lKCJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRh
LnBocD90aW1lb3V0X21zPTEwMDAiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlYXJEb3du
QW5kRmluaXNoKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKHdp
bmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAgICAgICAgICAgICBs
ZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CisgICAgICAg
ICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29u
dmVyc2lvbkRhdGE9MTIiOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhl
bCI7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgYXBwZW5kQ29udmVyc2lvbkRhdGFJZnJhbWVBbmRGaW5pc2go
KTsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0
IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9CisgICAgfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQu
aHRtbC5qc29uIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9j
ay1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50Lmh0bWwuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OGY1MWRl
N2FhMTE4NWYzM2ZlYzYwNWFiODUxOTBlOWFiNWFhMTE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1wcml2YXRlLWNsaWNr
LW1lYXN1cmVtZW50Lmh0bWwuanNvbgpAQCAtMCwwICsxLDEwIEBACitbCisgIHsKKyAgICAidHJp
Z2dlciI6IHsKKyAgICAgICJ1cmwtZmlsdGVyIjogIi8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNr
LW1lYXN1cmVtZW50LyIKKyAgICB9LAorICAgICJhY3Rpb24iOiB7CisgICAgICAidHlwZSI6ICJi
bG9jayIKKyAgICB9CisgIH0KK10KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXJlZmxlY3QtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtcmVmbGVjdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjNkMzBiZDZkN2RjYTlmN2E4M2E3NTZkY2JlNDZhMWFkYzZlNzBlYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9y
LXRhZy1hdHRyaWJ1dGVzLXJlZmxlY3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rl
c3QgZm9yIHRoZSBuZXcgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBhdHRyaWJ1dGVzIG9uIGFu
Y2hvciB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBhbmNob3JU
YWcuYWRjYW1wYWlnbmlkIGlzICI0MCIKK1BBU1MgYW5jaG9yVGFnLmFkZGVzdGluYXRpb24gaXMg
ImRlc3RpbmF0aW9uLmV4YW1wbGUiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtcmVmbGVjdC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hbmNob3ItdGFn
LWF0dHJpYnV0ZXMtcmVmbGVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyMTY5ZmQ2YzNlOTFmZDBmZWI4
MmY5NWRkOGFjNjQyOWIwZTVkNjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2FuY2hvci10YWctYXR0cmlidXRlcy1yZWZs
ZWN0Lmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkPXRydWUgXSAtLT4KKzxo
dG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8YSBpZD0idGVzdFRhZyIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAw
IiBhZGNhbXBhaWduaWQ9IjQwIiBhZGRlc3RpbmF0aW9uPSJkZXN0aW5hdGlvbi5leGFtcGxlIj48
L2E+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZvciB0aGUgbmV3IHByaXZhdGUg
Y2xpY2sgbWVhc3VyZW1lbnQgYXR0cmlidXRlcyBvbiBhbmNob3IgdGFncy4iKTsKKworICAgIGNv
bnN0IGFuY2hvclRhZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0VGFnIik7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhbmNob3JUYWcuYWRjYW1wYWlnbmlkIiwgIjQwIik7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhbmNob3JUYWcuYWRkZXN0aW5hdGlvbiIsICJkZXN0
aW5hdGlvbi5leGFtcGxlIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9y
LXRhZy1hdHRyaWJ1dGVzLXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtdmFs
aWRhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODBlOWQxNDZlNTRkYmIzMjU3ZGE2NGJk
Mjc5MzBjZTJmZjAxYmMwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlkYXRp
b24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKK0NPTlNPTEUgTUVTU0FHRTogYWRjYW1w
YWlnbmlkIG11c3QgaGF2ZSBhIG5vbi1uZWdhdGl2ZSB2YWx1ZSBsZXNzIHRoYW4gb3IgZXF1YWwg
dG8gNjMgZm9yIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQuCitDT05TT0xFIE1FU1NBR0U6IGFk
Y2FtcGFpZ25pZCBtdXN0IGhhdmUgYSBub24tbmVnYXRpdmUgdmFsdWUgbGVzcyB0aGFuIG9yIGVx
dWFsIHRvIDYzIGZvciBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50LgorQ09OU09MRSBNRVNTQUdF
OiBhZGNhbXBhaWduaWQgY2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSBub24tbmVnYXRpdmUgaW50
ZWdlciB3aGljaCBpcyByZXF1aXJlZCBmb3IgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudC4KK0NP
TlNPTEUgTUVTU0FHRTogYWRjYW1wYWlnbmlkIGNhbiBub3QgYmUgY29udmVydGVkIHRvIGEgbm9u
LW5lZ2F0aXZlIGludGVnZXIgd2hpY2ggaXMgcmVxdWlyZWQgZm9yIFByaXZhdGUgQ2xpY2sgTWVh
c3VyZW1lbnQuCitDT05TT0xFIE1FU1NBR0U6IGFkY2FtcGFpZ25pZCBjYW4gbm90IGJlIGNvbnZl
cnRlZCB0byBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBQcml2
YXRlIENsaWNrIE1lYXN1cmVtZW50LgorQ09OU09MRSBNRVNTQUdFOiBhZGRlc3RpbmF0aW9uIGNv
dWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSB2YWxpZCBIVFRQLWZhbWlseSBVUkwuCitDT05TT0xF
IE1FU1NBR0U6IGFkZGVzdGluYXRpb24gY291bGQgbm90IGJlIGNvbnZlcnRlZCB0byBhIHZhbGlk
IEhUVFAtZmFtaWx5IFVSTC4KK0NPTlNPTEUgTUVTU0FHRTogYWRkZXN0aW5hdGlvbiBjb3VsZCBu
b3QgYmUgY29udmVydGVkIHRvIGEgdmFsaWQgSFRUUC1mYW1pbHkgVVJMLgorQ09OU09MRSBNRVNT
QUdFOiBCb3RoIGFkY2FtcGFpZ25pZCBhbmQgYWRkZXN0aW5hdGlvbiBuZWVkIHRvIGJlIHNldCBm
b3IgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudCB0byB3b3JrLgorQ09OU09MRSBNRVNTQUdFOiBC
b3RoIGFkY2FtcGFpZ25pZCBhbmQgYWRkZXN0aW5hdGlvbiBuZWVkIHRvIGJlIHNldCBmb3IgUHJp
dmF0ZSBDbGljayBNZWFzdXJlbWVudCB0byB3b3JrLgorQ09OU09MRSBNRVNTQUdFOiBhZGRlc3Rp
bmF0aW9uIGNhbiBub3QgYmUgdGhlIHNhbWUgc2l0ZSBhcyB0aGUgY3VycmVudCB3ZWJzaXRlLgor
VGVzdCBmb3IgdmFsaWRpdHkgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBhdHRyaWJ1dGVz
IG9uIGFuY2hvciB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRh
Zy1hdHRyaWJ1dGVzLXZhbGlkYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlkYXRpb24uaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lYzNhNmY4YjNlMzQwMmE2MGFlNWJiNDQ3NGYxYjY5MTlhYTBkYjM1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtdmFsaWRhdGlvbi5odG1sCkBAIC0wLDAgKzEs
ODUgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhp
YmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1l
dGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3
aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3Jp
cHQ+CisgICAgPHN0eWxlPgorICAgICAgICAud2lkZS1saW5rIHsKKyAgICAgICAgICAgIHdpZHRo
OiAxNTBweDsKKyAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgfQor
ICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1bkFsbFRlc3RzKCkiPgorPGRp
diBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj48YnI+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3Qg
Zm9yIHZhbGlkaXR5IG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgYXR0cmlidXRlcyBvbiBh
bmNob3IgdGFncy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9u
IGNyZWF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50QW5jaG9yRWxlbWVudChlbGVtZW50SUQsIGFk
Q2FtcGFpZ25JRCwgYWREZXN0aW5hdGlvbikgeworICAgICAgICBsZXQgYW5jaG9yRWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKKyAgICAgICAgYW5jaG9yRWxlbWVudC5pZCA9
IGVsZW1lbnRJRDsKKyAgICAgICAgYW5jaG9yRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ3aWRlLWxp
bmsiKTsKKyAgICAgICAgYW5jaG9yRWxlbWVudC5hZGNhbXBhaWduaWQgPSBhZENhbXBhaWduSUQ7
CisgICAgICAgIGFuY2hvckVsZW1lbnQuYWRkZXN0aW5hdGlvbiA9IGFkRGVzdGluYXRpb247Cisg
ICAgICAgIGFuY2hvckVsZW1lbnQuaHJlZiA9ICIjIjsKKyAgICAgICAgYW5jaG9yRWxlbWVudC5p
bm5lclRleHQgPSAiTGluayIgKyBjdXJyZW50VGVzdDsKKyAgICAgICAgcmV0dXJuIGFuY2hvckVs
ZW1lbnQ7CisgICAgfQorCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCwg
Y2FsbGJhY2spIHsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKGVsZW1lbnRJRCkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWpl
Y3RlZC4iKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgKTsKKyAgICB9CisKKyAgICBsZXQgY3VycmVudFRlc3QgPSAwOworICAgIGZ1bmN0
aW9uIHJ1bk9uZVRlc3QoYWRDYW1wYWlnbklELCBhZERlc3RpbmF0aW9uLCBjYWxsYmFjaykgewor
ICAgICAgICBjb25zdCBjdXJyZW50RWxlbWVudElEID0gInRlc3QiICsgY3VycmVudFRlc3QrKzsK
KyAgICAgICAgY29uc3QgYW5jaG9yRWxlbWVudCA9IGNyZWF0ZVByaXZhdGVDbGlja01lYXN1cmVt
ZW50QW5jaG9yRWxlbWVudChjdXJyZW50RWxlbWVudElELCBhZENhbXBhaWduSUQsIGFkRGVzdGlu
YXRpb24pOworICAgICAgICBvdXRwdXQuYXBwZW5kQ2hpbGQoYW5jaG9yRWxlbWVudCk7CisgICAg
ICAgIGFjdGl2YXRlRWxlbWVudChjdXJyZW50RWxlbWVudElELCBjYWxsYmFjayk7CisgICAgfQor
CisgICAgY29uc3QgdmFsaWRBZENhbXBhaWduSUQgPSAiMDMiOworICAgIGNvbnN0IHZhbGlkQWRE
ZXN0aW5hdGlvbiA9ICJodHRwOi8vd2Via2l0Lm9yZyI7CisgICAgY29uc3Qgc2FtZVNpdGUgPSBk
b2N1bWVudC5sb2NhdGlvbi5vcmlnaW47CisgICAgY29uc3QgdGVzdENhc2VzID0gWworICAgICAg
ICBbIHZhbGlkQWRDYW1wYWlnbklELCB2YWxpZEFkRGVzdGluYXRpb24gXSwKKyAgICAgICAgWyAi
MTAwIiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAvLyBUb28gbWFueSBjaGFyYWN0
ZXJzLgorICAgICAgICBbICIxIiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAgIC8v
IFRvbyBmZXcgY2hhcmFjdGVycy4KKyAgICAgICAgWyAiOTgiLCB2YWxpZEFkRGVzdGluYXRpb24g
XSwgICAgICAgICAgICAvLyBUb28gaGlnaCB2YWx1ZS4KKyAgICAgICAgWyAiLTEiLCB2YWxpZEFk
RGVzdGluYXRpb24gXSwgICAgICAgICAgICAvLyBOZWdhdGl2ZSB2YWx1ZS4KKyAgICAgICAgWyAi
YWIiLCB2YWxpZEFkRGVzdGluYXRpb24gXSwgICAgICAgICAgICAvLyBOb24tZGlnaXRzLgorICAg
ICAgICBbICLvo78xIiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAgLy8gTm9uLUFT
Q0lJLgorICAgICAgICBbICIgMSIsIHZhbGlkQWREZXN0aW5hdGlvbiBdLCAgICAgICAgICAgIC8v
IExlYWRpbmcgc3BhY2UuCisgICAgICAgIFsgIjEgIiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAg
ICAgICAgICAgLy8gVHJhaWxpbmcgc3BhY2UuCisgICAgICAgIFsgdmFsaWRBZENhbXBhaWduSUQs
ICJ3ZWJraXQub3JnIiBdLCAgICAgLy8gTWlzc2luZyBwcm90b2NvbC4KKyAgICAgICAgWyB2YWxp
ZEFkQ2FtcGFpZ25JRCwgIjovL3dlYmtpdC5vcmciIF0sICAvLyBQYXJ0aWFsbHkgbWlzc2luZyBw
cm90b2NvbC4KKyAgICAgICAgWyB2YWxpZEFkQ2FtcGFpZ25JRCwgIu+jv++jv++jvyIgXSwgICAg
ICAgICAgIC8vIE5vbi1BU0NJSSBjaGFyYWN0ZXJzIGFzIGRlc3RpbmF0aW9uLgorICAgICAgICBb
ICIiLCB2YWxpZEFkRGVzdGluYXRpb24gXSwgICAgICAgICAgICAgIC8vIEVtcHR5IGNhbXBhaWdu
IElELgorICAgICAgICBbIHZhbGlkQWRDYW1wYWlnbklELCAiIiBdLCAgICAgICAgICAgICAgIC8v
IEVtcHR5IGRlc3RpbmF0aW9uLgorICAgICAgICBbIHZhbGlkQWRDYW1wYWlnbklELCBzYW1lU2l0
ZSBdICAgICAgICAgIC8vIFNhbWUtc2l0ZSBkZXN0aW5hdGlvbi4KKyAgICBdOworCisgICAgZnVu
Y3Rpb24gcnVuQWxsVGVzdHMoKSB7CisgICAgICAgIGlmIChjdXJyZW50VGVzdCA8IHRlc3RDYXNl
cy5sZW5ndGgpCisgICAgICAgICAgICBydW5PbmVUZXN0KHRlc3RDYXNlc1tjdXJyZW50VGVzdF1b
MF0sIHRlc3RDYXNlc1tjdXJyZW50VGVzdF1bMV0sIHJ1bkFsbFRlc3RzKTsKKyAgICAgICAgZWxz
ZSB7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG91dHB1dCk7CisgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0
ZS1pbWFnZS1yZWRpcmVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1jcm9z
cy1zaXRlLWltYWdlLXJlZGlyZWN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hN2Q4NjdmYzYy
MDY4ODQ1ZDllZDJmOWQ4OGE5MzI1M2IyMjUwNWE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252
ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw5IEBACitUZXN0cyB0aGF0IHRyaWdnZXJpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFz
dXJlbWVudCBjb252ZXJzaW9ucyB0aHJvdWdoIGNyb3NzLXNpdGUgcmVkaXJlY3RzIGRvIG5vdCB3
b3JrLgorCisKK1VuY29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgorV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQorU291cmNlOiAxMjcuMC4wLjEKK0Rlc3RpbmF0
aW9uOiBsb2NhbGhvc3QKK0NhbXBhaWduIElEOiAzCitObyBjb252ZXJzaW9uIGRhdGEuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0
dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJp
YnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTc3MWJkNjA2ZTM2MDY4MjIzMTIyOTAyNGU0MzQ5MDBjYzgyYTIyNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVk
aXJlY3QuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxt
ZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0i
d2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9ImRlc2Ny
aXB0aW9uIj5UZXN0cyB0aGF0IHRyaWdnZXJpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVu
dCBjb252ZXJzaW9ucyB0aHJvdWdoIGNyb3NzLXNpdGUgcmVkaXJlY3RzIGRvIG5vdCB3b3JrLjwv
ZGl2PgorPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mt
c2l0ZS1pbWFnZS1yZWRpcmVjdC5odG1sP3N0ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0
aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91
dHB1dCI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBmdW5jdGlv
biBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBl
bGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFy
IGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsK
KyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAg
ICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0
IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAg
IHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdv
IikgeworICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpbWciKTsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBz
Oi8vbG9jYWxob3N0Ojg0NDMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGly
ZWN0VG9Db252ZXJzaW9uT25JUEFkZHJlc3MucGhwP2NvbnZlcnNpb25EYXRhPTEyIjsKKyAgICAg
ICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICAgICAgICAgIGlt
YWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOworICAgICAgICAgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXRMaW5rIikpOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNo
aWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7
CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4i
OworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJp
YnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13
aW5kb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0MWQyYmZmNWRkMzViNTlmYTUzYTI2MGU2
NGRlYjhjYjQ1YmE5NzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1p
bWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBA
CitUZXN0cyB0cmlnZ2VyaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgY29udmVyc2lv
bnMgaW4gYSBuZXcgd2luZG93LgorCisKK0NvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVt
ZW50czoKK1dlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEKK1NvdXJjZTogMTI3LjAu
MC4xCitEZXN0aW5hdGlvbjogbG9jYWxob3N0CitDYW1wYWlnbiBJRDogMworQ29udmVyc2lvbiBk
YXRhOiAxMgorQ29udmVyc2lvbiBwcmlvcml0eTogMworQ29udmVyc2lvbiBlYXJsaWVzdCB0aW1l
IHRvIHNlbmQ6IFdpdGhpbiAyNC00OCBob3VycworQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6IGZh
bHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1u
ZXctd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1u
ZXctd2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTcyMjMwMjZmZTZiY2FkYzJmMmE1ZmI1ZmQ4MjYx
MWIxYTNlNmM5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdl
LXJlZGlyZWN0LWluLW5ldy13aW5kb3cuaHRtbApAQCAtMCwwICsxLDU5IEBACis8IURPQ1RZUEUg
aHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8bWV0YSBuYW1lPSJ2
aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVz
ZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWkt
aGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDAp
Ij4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0cmlnZ2VyaW5nIG9mIHByaXZhdGUgY2xp
Y2sgbWVhc3VyZW1lbnQgY29udmVyc2lvbnMgaW4gYSBuZXcgd2luZG93LjwvZGl2PgorPGEgdGFy
Z2V0PSJfYmxhbmsiIHJlbD0ib3BlbmVyIiBpZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJ0QW5k
UG9zdE1lc3NhZ2VCYWNrLmh0bWwiIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0
cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+
Cis8c2NyaXB0PgorICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVs
ZW1lbnQoZWxlbWVudElEKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoZWxlbWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNl
dExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBl
bGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlI
ZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0
ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5k
RmluaXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5kYXRhID09
PSAiRG9uZSIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCgpOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgICAgICAgICAg
dGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgdW5rbm93biBtZXNzYWdlOiAiICsgZXZlbnQuZGF0YSk7
CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2Fn
ZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAg
ICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAg
ICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICAgICAgICAg
IGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlM
IE5vIHRlc3RSdW5uZXIuIjsKKyAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAg
ICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24t
Y29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRy
aWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODRiMjcyNGY0ZmI1NTllNTZjZDFkOWY0ZDFmZmM1OTVk
MjRiNjRiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJl
ZGlyZWN0LXdpdGgtcHJpb3JpdHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3Rz
IHRyaWdnZXJpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBjb252ZXJzaW9ucyB3aXRo
IHByaW9yaXR5LgorCisKK0NvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKK1dl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEKK1NvdXJjZTogMTI3LjAuMC4xCitEZXN0
aW5hdGlvbjogbG9jYWxob3N0CitDYW1wYWlnbiBJRDogMworQ29udmVyc2lvbiBkYXRhOiAxMgor
Q29udmVyc2lvbiBwcmlvcml0eTogMworQ29udmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6
IFdpdGhpbiAyNC00OCBob3VycworQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0
dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0
dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTlmOTQ1MTBlY2M4MDQwZDk5Y2YyZjZkNjJmOGQ0ZDUzZWY5Yjlm
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0
LXdpdGgtcHJpb3JpdHkuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4gPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFk
PgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg
Y29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFi
bGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KKzxkaXYg
aWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0cmlnZ2VyaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3Vy
ZW1lbnQgY29udmVyc2lvbnMgd2l0aCBwcmlvcml0eS48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRMaW5r
IiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0
cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHku
aHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlw
dD4KKyAgICBwcmVwYXJlVGVzdCgpOworCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVs
ZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsg
ZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5v
ZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFj
dGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlM
IFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgp
OworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYg
KHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAgICAgICAgICAg
ICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CisgICAg
ICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/
Y29udmVyc2lvbkRhdGE9MTImcHJpb3JpdHk9MDMiOworICAgICAgICAgICAgICAgIGltYWdlRWxl
bWVudC5pZCA9ICJwaXhlbCI7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3Ig
PSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZh
dGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHku
cmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInBpeGVsIikpOworICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlz
aCgpOworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRw
dXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAgIH0KKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10
aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1j
b252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlvcml0eS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNzFmNDYyY2QwZWMzMGM2YTAzODI0MTVlMDM0ZTE2NzVmMWYwMjNi
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0
LXdpdGhvdXQtcHJpb3JpdHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRy
aWdnZXJpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBjb252ZXJzaW9ucyB3aXRob3V0
IHByaW9yaXR5LgorCisKK0NvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKK1dl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEKK1NvdXJjZTogMTI3LjAuMC4xCitEZXN0
aW5hdGlvbjogbG9jYWxob3N0CitDYW1wYWlnbiBJRDogMworQ29udmVyc2lvbiBkYXRhOiAxMgor
Q29udmVyc2lvbiBwcmlvcml0eTogMAorQ29udmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6
IFdpdGhpbiAyNC00OCBob3VycworQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0
dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9y
aXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXBy
aW9yaXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzIzMGI2OWQ3OTRjNmUxYTViY2U2NGE5NjQ0ZGY2OWJl
M2UzZWRhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJl
ZGlyZWN0LXdpdGhvdXQtcHJpb3JpdHkuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUg
aHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUg
XSAtLT4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRo
LCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIv
anMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJz
ZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0cmln
Z2VyaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgY29udmVyc2lvbnMgd2l0aG91dCBw
cmlvcml0eS48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0
OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJv
dWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJpb3JpdHkuaHRtbD9zdGVwVHdvIiBhZGNhbXBh
aWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48
YnI+Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBwcmVwYXJlVGVzdCgp
OworCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2
YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAg
IHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAv
IDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9m
ZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2Vu
dGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsK
KyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAg
ICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFy
Y2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVt
ZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTIiOwor
ICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7CisgICAgICAgICAgICAg
ICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0TGluayIpKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1v
dmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7CisgICAgICAgICAgICAg
ICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGlu
ayIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5u
ZXIuIjsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9j
bGVhci10aHJvdWdoLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY2xlYXItdGhyb3VnaC13ZWJz
aXRlLWRhdGEtcmVtb3ZhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmNiNWQzNmI2MzRiYTBm
NWI1YjU2NjczMWQwMzMwMmRlM2M5MDdmMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY2xlYXItdGhyb3VnaC13ZWJzaXRl
LWRhdGEtcmVtb3ZhbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUZXN0cyB0aGF0IGJv
dGggdW5jb252ZXJ0ZWQgYW5kIGNvbnZlcnRlZCBhdHRyaWJ1dGlvbnMgYXJlIGNsZWFyZWQgb24g
d2Vic2l0ZSBkYXRhIHJlbW92YWwuCisKKworCitObyBzdG9yZWQgUHJpdmF0ZSBDbGljayBNZWFz
dXJlbWVudCBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9jbGVhci10aHJvdWdoLXdlYnNpdGUtZGF0YS1yZW1vdmFsLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NsZWFyLXRo
cm91Z2gtd2Vic2l0ZS1kYXRhLXJlbW92YWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZTc0YWViYzNmMjFj
NjA4NTE3ZTY0M2Q3MDdhMTg5N2JmNzU3NmFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jbGVhci10aHJvdWdoLXdlYnNp
dGUtZGF0YS1yZW1vdmFsLmh0bWwKQEAgLTAsMCArMSw4MyBAQAorPCFET0NUWVBFIGh0bWw+IDwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIFByaXZhdGVD
bGlja01lYXN1cmVtZW50RW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVh
ZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQi
IGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxh
YmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2
IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBib3RoIHVuY29udmVydGVkIGFuZCBjb252ZXJ0
ZWQgYXR0cmlidXRpb25zIGFyZSBjbGVhcmVkIG9uIHdlYnNpdGUgZGF0YSByZW1vdmFsLjwvZGl2
PgorPGEgaWQ9InRhcmdldExpbmsiPkxpbms8L2E+PGJyPgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rp
dj4KKzxzY3JpcHQ+CisgICAgY29uc3QgcGF0aCA9ICIvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
Y2xlYXItdGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC5odG1sIjsKKyAgICBjb25zdCBjb25m
aWd1cmF0aW9uID0gWworICAgICAgICB7CisgICAgICAgICAgICBocmVmOiAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIiArIHBhdGggKyAiP3N0ZXBUd28iLAorICAgICAgICAgICAgYWRjYW1wYWlnbmlk
OiAiMyIsCisgICAgICAgICAgICBhZGRlc3RpbmF0aW9uOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
IgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICBocmVmOiAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwIiArIHBhdGggKyAiP3N0ZXBUaHJlZSIsCisgICAgICAgICAgICBhZGNhbXBhaWdu
aWQ6ICI0IiwKKyAgICAgICAgICAgIGFkZGVzdGluYXRpb246ICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAiCisgICAgICAgIH0KKyAgICBdOworCisgICAgcHJlcGFyZVRlc3QoKTsKKworICAgIGZ1bmN0
aW9uIGNvbmZpZ3VyZUxpbmsoaW5kZXgpIHsKKyAgICAgICAgbGV0IGxpbmtFbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKTsKKyAgICAgICAgbGlua0VsZW1lbnQu
c2V0QXR0cmlidXRlKCJocmVmIiwgY29uZmlndXJhdGlvbltpbmRleF0uaHJlZik7CisgICAgICAg
IGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRjYW1wYWlnbmlkIiwgY29uZmlndXJhdGlvbltp
bmRleF0uYWRjYW1wYWlnbmlkKTsKKyAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJh
ZGRlc3RpbmF0aW9uIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRkZXN0aW5hdGlvbik7CisgICAg
fQorCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2
YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAg
IHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAv
IDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9m
ZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2Vu
dGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsK
KyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAg
ICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFy
Y2ggPT09ICIiKSB7CisgICAgICAgICAgICAgICAgLy8gRmlyc3QgYWQgY2xpY2sgMTI3LjAuMC4x
IOKAkz4gbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGNvbmZpZ3VyZUxpbmsoMCk7CisgICAg
ICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAgICB9
IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAg
ICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBmaXJzdCBhZCBjbGljayB3aXRoIHByaW9yaXR5IDQs
IHRoZW4gZG8gYSByZXZlcnNlIGFkIGNsaWNrLgorICAgICAgICAgICAgICAgIGxldCBpbWFnZUVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAgICAgICAgICAgICBp
bWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0
YT0xMiZwcmlvcml0eT0wNCI7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBp
eGVsIjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgICAgICAgICAgLy8gU2Vjb25kIGFkIGNsaWNrIGxvY2FsaG9zdCDigJM+
IDEyNy4wLjAuMS4KKyAgICAgICAgICAgICAgICAgICAgY29uZmlndXJlTGluaygxKTsKKyAgICAg
ICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAg
ICAgICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdl
RWxlbWVudCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gg
PT09ICI/c3RlcFRocmVlIikgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuY2xlYXJQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCk7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXRMaW5rIikpOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7
CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBVbmtub3duIHdpbmRvdy5sb2NhdGlv
bi5zZWFyY2ggPT0gIiArIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggKyAiLiI7CisgICAgICAgICAg
ICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRl
eHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vz
c2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFmMWFhMDQyYjEwMjczOTA0NjI3N2YxZDhiY2IwYzc5OWJkNmI1
OTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3RzIHRoYXQgc3RvcmVkIGF0dHJpYnV0aW9u
cyBjYW5ub3QgYmUgY29udmVydGVkIGluIGFuIGVwaGVtZXJhbCBzZXNzaW9uLgorCisKKworLS0t
LS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitDb252ZXJzaW9uIG5vdCBy
ZWNlaXZlZCAtIHRpbWVkIG91dC4KKworVW5jb252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJl
bWVudHM6CitXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCitTb3VyY2U6IDEyNy4w
LjAuMQorRGVzdGluYXRpb246IGxvY2FsaG9zdAorQ2FtcGFpZ24gSUQ6IDMKK05vIGNvbnZlcnNp
b24gZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJz
aW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2MwNzg0
NjYyYzUwNWM2YjFiNjkxODA1NTkwODhiOGNmM2M5NjE5MwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29udmVyc2lvbi1k
aXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sCkBAIC0wLDAgKzEsODAgQEAKKzwhRE9D
VFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9
dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0i
VVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Ut
d2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+CisgICAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3Rz
IHRoYXQgc3RvcmVkIGF0dHJpYnV0aW9ucyBjYW5ub3QgYmUgY29udmVydGVkIGluIGFuIGVwaGVt
ZXJhbCBzZXNzaW9uLjwvZGl2PgorPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRpc2FibGVkLWlu
LWVwaGVtZXJhbC1zZXNzaW9uLmh0bWw/c3RlcFR3byIgYWRjYW1wYWlnbmlkPSIzIiBhZGRlc3Rp
bmF0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgorPGRpdiBpZD0ib3V0
cHV0Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAgY29uc3QgY3VycmVudFRpbWVNaWxsaXMgPSAobmV3
IERhdGUoKSkuZ2V0VGltZSgpOworICAgIGNvbnN0IGhpZ2hFbnRyb3B5Qml0cyA9IGN1cnJlbnRU
aW1lTWlsbGlzIC0gKE1hdGguZmxvb3IoY3VycmVudFRpbWVNaWxsaXMgLyAxMDAwMDAwKSAqIDEw
MDAwMDApOworICAgIGNvbnN0IG5vbmNlID0gaGlnaEVudHJvcHlCaXRzICsgIiIgKyBNYXRoLmZs
b29yKE1hdGgucmFuZG9tKCkgKiAxMDApOworCisgICAgcHJlcGFyZVRlc3QoKTsKKworICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwP25v
bmNlPSIgKyBub25jZSk7CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElE
KSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVu
dElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50
Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRv
cCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVB
dChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlz
ZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAg
ICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYXBwZW5kSWZyYW1l
KHVybCwgb25sb2FkQ2FsbGJhY2spIHsKKyAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMg
PSB1cmw7CisgICAgICAgIGlmIChvbmxvYWRDYWxsYmFjaykKKyAgICAgICAgICAgIGlmcmFtZUVs
ZW1lbnQub25sb2FkID0gb25sb2FkQ2FsbGJhY2s7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYXBwZW5kQ29u
dmVyc2lvbkRhdGFJZnJhbWVBbmRGaW5pc2goKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcFBy
aXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisKKyAgICAgICAgYXBw
ZW5kSWZyYW1lKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
cmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBocD90aW1lb3V0X21zPTEwMDAmbm9uY2U9IiAr
IG5vbmNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Cisg
ICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5z
ZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFNo
b3VsZFN3YXBUb0VwaGVtZXJhbFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uKHRydWUpOworICAgICAg
ICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lv
bi5odG1sP3N0ZXBUaHJlZSI7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlv
bi5zZWFyY2ggPT09ICI/c3RlcFRocmVlIikgeworICAgICAgICAgICAgICAgIGxldCBpbWFnZUVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAgICAgICAgICAgICBp
bWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0
YT0xMiZub25jZT0iICsgbm9uY2U7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0g
InBpeGVsIjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFNob3VsZFN3YXBUb0RlZmF1
bHRTZXNzaW9uT25OZXh0TmF2aWdhdGlvbih0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgd2lu
ZG93LmxvY2F0aW9uID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWw/c3RlcEZv
dXIiOworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cu
bG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBGb3VyIikgeworICAgICAgICAgICAgICAgIGFwcGVu
ZENvbnZlcnNpb25EYXRhSWZyYW1lQW5kRmluaXNoKCk7CisgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJjb29raWVTZXRBc0ZpcnN0UGFydHk9
MTsgcGF0aD0vIjsKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsi
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVy
LiI7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhw
aXJlZC1hdHRyaWJ1dGlvbnMtcmVtb3ZlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb25zLXJlbW92
ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiM2UyYjhkMTJmYzJhZWFmYmU5MDI0OTIyNTM4
ZTc4YmQyNTg3ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb25zLXJlbW92ZWQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGVzdHMgZXhwaXJhdGlvbiBvZiBwcml2YXRlIGNsaWNr
IG1lYXN1cmVtZW50LgorCisKKworTm8gc3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQg
ZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvZXhwaXJlZC1hdHRyaWJ1dGlvbnMtcmVtb3ZlZC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJpYnV0aW9ucy1y
ZW1vdmVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTdmMzAyNGMwMWEzNzFkNzRhMjc4MDIzNmMxOTVlNzBj
MjYzNDhjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hdHRyaWJ1dGlvbnMtcmVtb3ZlZC5odG1sCkBAIC0w
LDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVz
ZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250
ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1u
byI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRpdiBpZD0i
ZGVzY3JpcHRpb24iPlRlc3RzIGV4cGlyYXRpb24gb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVu
dC48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hdHRyaWJ1dGlvbnMtcmVtb3ZlZC5odG1s
P3N0ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9z
dDo4MDAwIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0Pgor
ICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVu
dElEKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxl
bWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVt
ZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNl
dFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZh
dGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJv
bWlzZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgp
IHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBpZiAod2lu
ZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgeworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIubWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rpbmco
KTsKKyAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaW1nIik7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczov
LzEyNy4wLjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVj
dFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTIiOworICAgICAgICAgICAgICAgIGlt
YWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9u
ZXJyb3IgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1w
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Ym9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsK
KyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7CisgICAgICAgICAgICAgICAgICAgIHRlYXJEb3duQW5k
RmluaXNoKCk7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOworICAgICAgICAgICAg
fQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
Im91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKKyAgICAgICAgfQor
ICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lv
bkZpbGVQYXRoLnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25GaWxlUGF0aC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2NlOTQ3
MjY2NTE1N2ZlZWIzN2NmOWU1ZWQ1MWRjM2NiNWQ2N2FiZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2Nv
bnZlcnNpb25GaWxlUGF0aC5waHAKQEAgLTAsMCArMSw5IEBACis8P3BocAorcmVxdWlyZV9vbmNl
ICcuLi8uLi9yZXNvdXJjZXMvcG9ydGFiaWxpdHlMYXllci5waHAnOworCitpZiAoaXNzZXQoJF9H
RVRbIm5vbmNlIl0pKQorICAgICRjb252ZXJzaW9uRmlsZU5hbWUgPSAiL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29udmVyc2lvbiIgLiAkX0dFVFsibm9uY2UiXSAuICIudHh0IjsKK2Vsc2UKKyAg
ICAkY29udmVyc2lvbkZpbGVOYW1lID0gIi9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNp
b24udHh0IjsKKyRjb252ZXJzaW9uRmlsZVBhdGggPSBzeXNfZ2V0X3RlbXBfZGlyKCkgLiAkY29u
dmVyc2lvbkZpbGVOYW1lOworPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMv
Y29udmVyc2lvblJlcG9ydC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVjMjAyNjljNzg0OTA2ZmZmNzQ3NDQ4
YjM4ODFmNDA2MzdhYmMwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhw
CkBAIC0wLDAgKzEsMzcgQEAKKzw/cGhwCityZXF1aXJlX29uY2UgJ2NvbnZlcnNpb25GaWxlUGF0
aC5waHAnOworCiskY29udmVyc2lvbkZpbGUgPSBmb3BlbigkY29udmVyc2lvbkZpbGVQYXRoIC4g
Ii50bXAiLCAndycpOworJGh0dHBIZWFkZXJzID0gJF9TRVJWRVI7CiskY29va2llc0ZvdW5kID0g
ZmFsc2U7Citmb3JlYWNoICgkaHR0cEhlYWRlcnMgYXMgJG5hbWUgPT4gJHZhbHVlKSB7CisgICAg
aWYgKCRuYW1lID09PSAiSFRUUF9IT1NUIikgeworICAgICAgICBmd3JpdGUoJGNvbnZlcnNpb25G
aWxlLCAiJG5hbWU6ICR2YWx1ZVxuIik7CisgICAgfSBlbHNlIGlmICgkbmFtZSA9PT0gIlJFUVVF
U1RfVVJJIikgeworICAgICAgICAkcG9zaXRpb25PZk5vbmNlID0gc3RycG9zKCR2YWx1ZSwgIj9u
b25jZT0iKTsKKyAgICAgICAgaWYgKCRwb3NpdGlvbk9mTm9uY2UgPT09IGZhbHNlKQorICAgICAg
ICAgICAgJG91dHB1dFVSTCA9ICR2YWx1ZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgJG91
dHB1dFVSTCA9IHN1YnN0cigkdmFsdWUsIDAsICRwb3NpdGlvbk9mTm9uY2UpOworICAgICAgICBm
d3JpdGUoJGNvbnZlcnNpb25GaWxlLCAiJG5hbWU6ICRvdXRwdXRVUkxcbiIpOworICAgIH0gZWxz
ZSBpZiAoJG5hbWUgPT09ICJIVFRQX0NPT0tJRSIpIHsKKyAgICAgICAgZndyaXRlKCRjb252ZXJz
aW9uRmlsZSwgIkNvb2tpZXMgaW4gY29udmVyc2lvbiByZXF1ZXN0OiAkdmFsdWVcbiIpOworICAg
ICAgICAkY29va2llc0ZvdW5kID0gdHJ1ZTsKKyAgICB9IGVsc2UgaWYgKCRuYW1lID09PSAiQ09O
VEVOVF9UWVBFIikgeworICAgICAgICBmd3JpdGUoJGNvbnZlcnNpb25GaWxlLCAiQ29udGVudCB0
eXBlOiAkdmFsdWVcbiIpOworICAgIH0KK30KK2lmICghJGNvb2tpZXNGb3VuZCkgeworICAgIGZ3
cml0ZSgkY29udmVyc2lvbkZpbGUsICJObyBjb29raWVzIGluIGNvbnZlcnNpb24gcmVxdWVzdC5c
biIpOworfQorCiskcmVxdWVzdEJvZHkgPSBmaWxlX2dldF9jb250ZW50cygncGhwOi8vaW5wdXQn
KTsKK2Z3cml0ZSgkY29udmVyc2lvbkZpbGUsICJSZXF1ZXN0IGJvZHk6XG4kcmVxdWVzdEJvZHlc
biIpOworCitmY2xvc2UoJGNvbnZlcnNpb25GaWxlKTsKK3JlbmFtZSgkY29udmVyc2lvbkZpbGVQ
YXRoIC4gIi50bXAiLCAkY29udmVyc2lvbkZpbGVQYXRoKTsKKworaGVhZGVyKCJIVFRQLzEuMSAy
MDAgT0siKTsKK3NldGNvb2tpZSgiY29va2llU2V0SW5Db252ZXJzaW9uUmVwb3J0IiwgIjEiLCAw
LCAiLyIpOworCis/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVydEFuZFBvc3RNZXNzYWdlQmFjay5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJj
ZXMvY29udmVydEFuZFBvc3RNZXNzYWdlQmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlODE5M2ZhMTA2
OTQ0NTkwZGY2ODJiYTY0YjMzYWY1ODk3NTBiOTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJ0
QW5kUG9zdE1lc3NhZ2VCYWNrLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Cisg
ICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gZmlyZUNvbnZlcnNpb25QaXhlbCgpIHsKKyAg
ICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWci
KTsKKyAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0
My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24u
cGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PTAzIjsKKyAgICAgICAgICAgIGltYWdlRWxl
bWVudC5pZCA9ICJwaXhlbCI7CisgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOworICAgICAgICAgICAgICAgIHBvc3RNZXNz
YWdlQmFjaygpOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHBv
c3RNZXNzYWdlQmFjaygpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cub3BlbmVyKSB7CisgICAg
ICAgICAgICAgICAgd2luZG93Lm9wZW5lci5wb3N0TWVzc2FnZSgiRG9uZSIsICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cuY2xvc2UoKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJz
ZXRUaW1lb3V0KGZpcmVDb252ZXJzaW9uUGl4ZWwsIDApIj4KKzwvYm9keT4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5w
aHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291
cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTVlMjIwNzE1YWZkNjdlMGI4
ZWE4OTU2NzkyZjQ5MGE0YmUwM2FjYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2dldENvbnZlcnNpb25E
YXRhLnBocApAQCAtMCwwICsxLDU0IEBACis8P3BocAorcmVxdWlyZV9vbmNlICdjb252ZXJzaW9u
RmlsZVBhdGgucGhwJzsKKworJG5vVGltZW91dCA9IFRydWU7CiskdGltZW91dE1zZWNzID0gMDsK
K2lmIChpc3NldCgkX0dFVFsndGltZW91dF9tcyddKSkgeworICAgICRub1RpbWVvdXQgPSBGYWxz
ZTsKKyAgICAkdGltZW91dE1zZWNzID0gKGludCkgJF9HRVRbJ3RpbWVvdXRfbXMnXTsKK30KKwor
JGNvbnZlcnNpb25GaWxlRm91bmQgPSBGYWxzZTsKK3doaWxlICgkbm9UaW1lb3V0IHx8ICR0aW1l
b3V0TXNlY3MgPiAwKSB7CisgICAgaWYgKGZpbGVfZXhpc3RzKCRjb252ZXJzaW9uRmlsZVBhdGgp
KSB7CisgICAgICAgICRjb252ZXJzaW9uRmlsZUZvdW5kID0gVHJ1ZTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgICRzbGVlcE1zZWNzID0gMTA7CisgICAgdXNsZWVwKCRzbGVlcE1zZWNzICog
MTAwMCk7CisgICAgaWYgKCEkbm9UaW1lb3V0KSB7CisgICAgICAgICR0aW1lb3V0TXNlY3MgLT0g
JHNsZWVwTXNlY3M7CisgICAgfQorICAgIC8vIGZpbGVfZXhpc3RzKCkgY2FjaGVzIHJlc3VsdHMs
IHdlIHdhbnQgdG8gaW52YWxpZGF0ZSB0aGUgY2FjaGUuCisgICAgY2xlYXJzdGF0Y2FjaGUoKTsK
K30KKworCitlY2hvICI8aHRtbD48Ym9keT5cbiI7CisKK2lmICgkY29udmVyc2lvbkZpbGVGb3Vu
ZCkgeworICAgIGVjaG8gIkNvbnZlcnNpb24gcmVjZWl2ZWQuIjsKKyAgICAkY29udmVyc2lvbkZp
bGUgPSBmb3BlbigkY29udmVyc2lvbkZpbGVQYXRoLCAncicpOworICAgIHdoaWxlICgkbGluZSA9
IGZnZXRzKCRjb252ZXJzaW9uRmlsZSkpIHsKKyAgICAgICAgZWNobyAiPGJyPiI7CisgICAgICAg
IGVjaG8gdHJpbSgkbGluZSk7CisgICAgfQorICAgIGVjaG8gIjxicj4iOworICAgIGZjbG9zZSgk
Y29udmVyc2lvbkZpbGUpOworICAgIHVubGluaygkY29udmVyc2lvbkZpbGVQYXRoKTsKK30gZWxz
ZSB7CisgICAgZWNobyAiQ29udmVyc2lvbiBub3QgcmVjZWl2ZWQgLSB0aW1lZCBvdXQuPGJyPiI7
Cit9CisKK2lmIChpc3NldCgkX0dFVFsnZW5kVGVzdCddKSkgeworICAgIGVjaG8gIjxzY3JpcHQ+
IjsKKyAgICBlY2hvICJpZiAod2luZG93LnRlc3RSdW5uZXIpIHsiOworICAgIGVjaG8gIiAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsiOworICAgIGVjaG8gIiAgICB0ZXN0UnVubmVyLnNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoZmFsc2UpOyI7Cisg
ICAgZWNobyAiICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJz
aW9uVVJMRm9yVGVzdGluZygnJyk7IjsKKyAgICBlY2hvICJ9IjsKKyAgICBlY2hvICI8L3Njcmlw
dD4iOworfQorCitlY2hvICI8L2JvZHk+PC9odG1sPiI7Cis/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJl
Y3RUb0NvbnZlcnNpb24ucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY4YTM2NjcwM2VkOTMyMWJkZTI1M2QyYTBmNWFlNTc5OTZkZjAwZmYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291
cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHAKQEAgLTAsMCArMSw5IEBACis8P3BocAoraGVh
ZGVyKCJIVFRQLzEuMSAzMDIgRm91bmQiKTsKK2hlYWRlcigiQ2FjaGUtQ29udHJvbDogbm8tY2Fj
aGUsIG5vLXN0b3JlLCBtdXN0LXJldmFsaWRhdGUiKTsKK2lmIChpc3NldCgkX0dFVFsiY29udmVy
c2lvbkRhdGEiXSkgJiYgaXNzZXQoJF9HRVRbInByaW9yaXR5Il0pKSB7CisgIGhlYWRlcigiTG9j
YXRpb246IC8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LyIgLiAkX0dFVFsi
Y29udmVyc2lvbkRhdGEiXSAuICIvIiAuICRfR0VUWyJwcmlvcml0eSJdKTsKK30gZWxzZSBpZiAo
aXNzZXQoJF9HRVRbImNvbnZlcnNpb25EYXRhIl0pKSB7CisgIGhlYWRlcigiTG9jYXRpb246IC8u
d2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LyIgLiAkX0dFVFsiY29udmVyc2lv
bkRhdGEiXSk7Cit9Cis/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb25PbklQQWRk
cmVzcy5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbk9uSVBBZGRyZXNzLnBocApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42ODRhZWE4ZDQyNzk0OGMxOWFmZGFmNjFkMmViY2UxYmUzYjZiZjdmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNv
dXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb25PbklQQWRkcmVzcy5waHAKQEAgLTAsMCArMSw4IEBA
Cis8P3BocAoraGVhZGVyKCJIVFRQLzEuMCAzMDIgRm91bmQiKTsKK2lmIChpc3NldCgkX0dFVFsi
Y29udmVyc2lvbkRhdGEiXSkgJiYgaXNzZXQoJF9HRVRbInByaW9yaXR5Il0pKSB7CisgIGhlYWRl
cigiTG9jYXRpb246IGh0dHBzOi8vMTI3LjAuMC4xOjgwMDAvLndlbGwta25vd24vcHJpdmF0ZS1j
bGljay1tZWFzdXJlbWVudC8iIC4gJF9HRVRbImNvbnZlcnNpb25EYXRhIl0gLiAiLyIgLiAkX0dF
VFsicHJpb3JpdHkiXSk7Cit9IGVsc2UgaWYgKGlzc2V0KCRfR0VUWyJjb252ZXJzaW9uRGF0YSJd
KSkgeworICBoZWFkZXIoIkxvY2F0aW9uOiBodHRwczovLzEyNy4wLjAuMTo4MDAwLy53ZWxsLWtu
b3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvIiAuICRfR0VUWyJjb252ZXJzaW9uRGF0YSJd
KTsKK30KKz8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L3Jlc291cmNlcy91dGlsLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvdXRpbC5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41N2Iz
MzZhOTk5N2Y3ZWE5ZjJkYmFlZThjY2E2NjFjOTRhZGQyMTc2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMv
dXRpbC5qcwpAQCAtMCwwICsxLDE3IEBACitmdW5jdGlvbiBwcmVwYXJlVGVzdCgpIHsKKyAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLnNldEFsbG93c0Fu
eVNTTENlcnRpZmljYXRlKHRydWUpOworICAgIH0KK30KKworZnVuY3Rpb24gdGVhckRvd25BbmRG
aW5pc2goKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVy
LnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoZmFsc2Up
OworICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lv
blVSTEZvclRlc3RpbmcoIiIpOworICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICB9Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1oaWdoZXItcHJpb3Jp
dHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTBkMjZmNmFmZGJkM2VjZGMyMTNiZmUyM2EzNjNk
ZDE3NDdiY2EzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGln
aGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IGEg
c2Vjb25kIGF0dHJpYnV0aW9uIGNvbnZlcnNpb24gd2l0aCBoaWdoZXIgcHJpb3JpdHkgcmVwbGFj
ZXMgYW4gb2xkZXIgd2l0aCBsb3dlciBwcmlvcml0eS4KKworCitDb252ZXJ0ZWQgUHJpdmF0ZSBD
bGljayBNZWFzdXJlbWVudHM6CitXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCitT
b3VyY2U6IDEyNy4wLjAuMQorRGVzdGluYXRpb246IGxvY2FsaG9zdAorQ2FtcGFpZ24gSUQ6IDQK
K0NvbnZlcnNpb24gZGF0YTogMTIKK0NvbnZlcnNpb24gcHJpb3JpdHk6IDQKK0NvbnZlcnNpb24g
ZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKK0NvbnZlcnNpb24gcmVx
dWVzdCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGln
aGVyLXByaW9yaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1oaWdoZXItcHJpb3Jp
dHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iMTY5YWJhMDI1ODZmY2Y1N2VhOGQ5MDY5Mjg0NGYwOWJkZjA1
NTYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXBy
aW9yaXR5Lmh0bWwKQEAgLTAsMCArMSw5MiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbCBsYW5n
PSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFt
ZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0x
LCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGls
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0
LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBhIHNlY29uZCBhdHRyaWJ1
dGlvbiBjb252ZXJzaW9uIHdpdGggaGlnaGVyIHByaW9yaXR5IHJlcGxhY2VzIGFuIG9sZGVyIHdp
dGggbG93ZXIgcHJpb3JpdHkuPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluayI+TGluazwvYT48YnI+
Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBjb25zdCBwYXRoID0gIi9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgt
aGlnaGVyLXByaW9yaXR5Lmh0bWwiOworICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBbCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGhyZWY6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiICsgcGF0aCAr
ICI/c3RlcFR3byIsCisgICAgICAgICAgICBhZGNhbXBhaWduaWQ6ICIzIiwKKyAgICAgICAgICAg
IGFkZGVzdGluYXRpb246ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiCisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGhyZWY6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiICsgcGF0aCAr
ICI/c3RlcEZvdXIiLAorICAgICAgICAgICAgYWRjYW1wYWlnbmlkOiAiNCIsCisgICAgICAgICAg
ICBhZGRlc3RpbmF0aW9uOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIgorICAgICAgICB9CisgICAg
XTsKKworICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBmdW5jdGlvbiBjb25maWd1cmVMaW5rKGlu
ZGV4KSB7CisgICAgICAgIGxldCBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0YXJnZXRMaW5rIik7CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiaHJlZiIs
IGNvbmZpZ3VyYXRpb25baW5kZXhdLmhyZWYpOworICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRy
aWJ1dGUoImFkY2FtcGFpZ25pZCIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmFkY2FtcGFpZ25pZCk7
CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRkZXN0aW5hdGlvbiIsIGNvbmZp
Z3VyYXRpb25baW5kZXhdLmFkZGVzdGluYXRpb24pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFj
dGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1l
bnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2Vu
dGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAg
ICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAg
ICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24g
KCkgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5p
bm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7CisgICAgICAgICAgICAgICAgdGVh
ckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiIikgeworICAgICAg
ICAgICAgICAgIC8vIEZpcnN0IGFkIGNsaWNrIDEyNy4wLjAuMSDigJM+IGxvY2FsaG9zdC4KKyAg
ICAgICAgICAgICAgICBjb25maWd1cmVMaW5rKDApOworICAgICAgICAgICAgICAgIGFjdGl2YXRl
RWxlbWVudCgidGFyZ2V0TGluayIpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9j
YXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgLy8gQ29udmVy
dCB0aGUgZmlyc3QgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSAzIGFuZCBuYXZpZ2F0ZSBiYWNrIHRv
IDEyNy4wLjAuMS4KKyAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW1nIik7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9
ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNl
cy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImcHJpb3JpdHk9MDMi
OworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7CisgICAgICAgICAg
ICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiAr
IHBhdGggKyAiP3N0ZXBUaHJlZSI7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7CisgICAgICAgICAgICB9
IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFRocmVlIikgeworICAg
ICAgICAgICAgICAgIC8vIFNlY29uZCBhZCBjbGljayAxMjcuMC4wLjEg4oCTPiBsb2NhbGhvc3Qu
CisgICAgICAgICAgICAgICAgY29uZmlndXJlTGluaygxKTsKKyAgICAgICAgICAgICAgICBhY3Rp
dmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93
LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwRm91ciIpIHsKKyAgICAgICAgICAgICAgICAvLyBD
b252ZXJ0IHRoZSBzZWNvbmQgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSA0IGFuZCBmaW5pc2guCisg
ICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImltZyIpOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcu
MC4wLjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0Nv
bnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PTA0IjsKKyAgICAgICAgICAg
ICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICAgICAgICAgIGltYWdlRWxl
bWVudC5vbmVycm9yID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOworICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRM
aW5rIikpOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKKyAgICAgICAgICAgICAgICAgICAgdGVh
ckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlu
bmVyVGV4dCA9ICJGQUlMIFVua25vd24gd2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PSAiICsgd2lu
ZG93LmxvY2F0aW9uLnNlYXJjaCArICIuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZp
bmlzaCgpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RS
dW5uZXIuIjsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9z
ZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmMzN2YzMThmYzc2OWFmMWU2YzE5NTc1ZDUwODRjMDI1NzUyZWM2ZGUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0
eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCBhIHNlY29uZCBhdHRy
aWJ1dGlvbiBjb252ZXJzaW9uIHdpdGggbG93ZXIgcHJpb3JpdHkgZG9lcyBub3QgcmVwbGFjZSBh
biBvbGRlciB3aXRoIGhpZ2hlciBwcmlvcml0eS4KKworCitDb252ZXJ0ZWQgUHJpdmF0ZSBDbGlj
ayBNZWFzdXJlbWVudHM6CitXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCitTb3Vy
Y2U6IDEyNy4wLjAuMQorRGVzdGluYXRpb246IGxvY2FsaG9zdAorQ2FtcGFpZ24gSUQ6IDMKK0Nv
bnZlcnNpb24gZGF0YTogMTIKK0NvbnZlcnNpb24gcHJpb3JpdHk6IDQKK0NvbnZlcnNpb24gZWFy
bGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKK0NvbnZlcnNpb24gcmVxdWVz
dCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93ZXIt
cHJpb3JpdHkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjkyNWZhYjIxODZjNDg3NjEwZDEzY2JmMDY2M2U5Yjg2NDU2OWI1NQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5
Lmh0bWwKQEAgLTAsMCArMSw5MiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+
Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmll
d3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2Vy
LXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+
Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBhIHNlY29uZCBhdHRyaWJ1dGlvbiBj
b252ZXJzaW9uIHdpdGggbG93ZXIgcHJpb3JpdHkgZG9lcyBub3QgcmVwbGFjZSBhbiBvbGRlciB3
aXRoIGhpZ2hlciBwcmlvcml0eS48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRMaW5rIj5MaW5rPC9hPjxi
cj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0PgorICAgIGNvbnN0IHBhdGggPSAi
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0
aC1sb3dlci1wcmlvcml0eS5odG1sIjsKKyAgICBjb25zdCBjb25maWd1cmF0aW9uID0gWworICAg
ICAgICB7CisgICAgICAgICAgICBocmVmOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiArIHBhdGgg
KyAiP3N0ZXBUd28iLAorICAgICAgICAgICAgYWRjYW1wYWlnbmlkOiAiMyIsCisgICAgICAgICAg
ICBhZGRlc3RpbmF0aW9uOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIgorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICBocmVmOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiArIHBhdGgg
KyAiP3N0ZXBGb3VyIiwKKyAgICAgICAgICAgIGFkY2FtcGFpZ25pZDogIjQiLAorICAgICAgICAg
ICAgYWRkZXN0aW5hdGlvbjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKKyAgICAgICAgfQorICAg
IF07CisKKyAgICBwcmVwYXJlVGVzdCgpOworCisgICAgZnVuY3Rpb24gY29uZmlndXJlTGluayhp
bmRleCkgeworICAgICAgICBsZXQgbGlua0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0TGluayIpOworICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImhyZWYi
LCBjb25maWd1cmF0aW9uW2luZGV4XS5ocmVmKTsKKyAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0
cmlidXRlKCJhZGNhbXBhaWduaWQiLCBjb25maWd1cmF0aW9uW2luZGV4XS5hZGNhbXBhaWduaWQp
OworICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFkZGVzdGluYXRpb24iLCBjb25m
aWd1cmF0aW9uW2luZGV4XS5hZGRlc3RpbmF0aW9uKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBh
Y3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVt
ZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNl
bnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAg
ICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAg
ICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iiku
aW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAgIHRl
YXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIiIpIHsKKyAgICAg
ICAgICAgICAgICAvLyBGaXJzdCBhZCBjbGljayAxMjcuMC4wLjEg4oCTPiBsb2NhbGhvc3QuCisg
ICAgICAgICAgICAgICAgY29uZmlndXJlTGluaygwKTsKKyAgICAgICAgICAgICAgICBhY3RpdmF0
ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93Lmxv
Y2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgeworICAgICAgICAgICAgICAgIC8vIENvbnZl
cnQgdGhlIGZpcnN0IGFkIGNsaWNrIHdpdGggcHJpb3JpdHkgNCBhbmQgbmF2aWdhdGUgYmFjayB0
byAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMg
PSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJj
ZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PTA0
IjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICAg
ICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIg
KyBwYXRoICsgIj9zdGVwVGhyZWUiOworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOworICAgICAgICAgICAg
fSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUaHJlZSIpIHsKKyAg
ICAgICAgICAgICAgICAvLyBTZWNvbmQgYWQgY2xpY2sgMTI3LjAuMC4xIOKAkz4gbG9jYWxob3N0
LgorICAgICAgICAgICAgICAgIGNvbmZpZ3VyZUxpbmsoMSk7CisgICAgICAgICAgICAgICAgYWN0
aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRv
dy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcEZvdXIiKSB7CisgICAgICAgICAgICAgICAgLy8g
Q29udmVydCB0aGUgc2Vjb25kIGFkIGNsaWNrIHdpdGggcHJpb3JpdHkgMyBhbmQgZmluaXNoLgor
ICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpbWciKTsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3
LjAuMC4xOjg0NDMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9D
b252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZwcmlvcml0eT0wMyI7CisgICAgICAgICAg
ICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKKyAgICAgICAgICAgICAgICBpbWFnZUVs
ZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0
TGluayIpKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7CisgICAgICAgICAgICAgICAgICAgIHRl
YXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7CisgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5p
bm5lclRleHQgPSAiRkFJTCBVbmtub3duIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT0gIiArIHdp
bmRvdy5sb2NhdGlvbi5zZWFyY2ggKyAiLiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRG
aW5pc2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0
UnVubmVyLiI7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29u
dmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDBh
NGZmZWVkNmRmYTgyZTk4MDNmNmY2ZDEyN2E5NjQ5OGYzYjgwZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNv
bnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIg
QEAKK1Rlc3RzIHRoYXQgdGhlIGF0dHJpYnV0aW9uIGlzIHVwZGF0ZWQgaWYgaXQgZ2V0cyBhIHNl
Y29uZCBjb252ZXJzaW9uIHdpdGggaGlnaGVyIHByaW9yaXR5LgorCisKK0NvbnZlcnRlZCBQcml2
YXRlIENsaWNrIE1lYXN1cmVtZW50czoKK1dlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
IDEKK1NvdXJjZTogMTI3LjAuMC4xCitEZXN0aW5hdGlvbjogbG9jYWxob3N0CitDYW1wYWlnbiBJ
RDogMworQ29udmVyc2lvbiBkYXRhOiAxMgorQ29udmVyc2lvbiBwcmlvcml0eTogNAorQ29udmVy
c2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAyNC00OCBob3VycworQ29udmVyc2lv
biByZXF1ZXN0IHNlbnQ6IGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXBy
aW9yaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNGE4YjM4YTk0MDZiY2E5YTdlYmYzNDFiMjViMTE5MjQ2Mjg0MzA0NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vj
b25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbApAQCAtMCwwICsxLDg1IEBA
Cis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZp
ZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNo
YXJzZXQ9IlVURi04Ij4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9
ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9u
Ij5UZXN0cyB0aGF0IHRoZSBhdHRyaWJ1dGlvbiBpcyB1cGRhdGVkIGlmIGl0IGdldHMgYSBzZWNv
bmQgY29udmVyc2lvbiB3aXRoIGhpZ2hlciBwcmlvcml0eS48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRM
aW5rIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0PgorICAg
IGNvbnN0IHBhdGggPSAiL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9u
LXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwiOworICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBb
CisgICAgICAgIHsKKyAgICAgICAgICAgIGhyZWY6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiICsg
cGF0aCArICI/c3RlcFR3byIsCisgICAgICAgICAgICBhZGNhbXBhaWduaWQ6ICIzIiwKKyAgICAg
ICAgICAgIGFkZGVzdGluYXRpb246ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiCisgICAgICAgIH0K
KyAgICBdOworCisgICAgcHJlcGFyZVRlc3QoKTsKKworICAgIGZ1bmN0aW9uIGNvbmZpZ3VyZUxp
bmsoaW5kZXgpIHsKKyAgICAgICAgbGV0IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldExpbmsiKTsKKyAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJo
cmVmIiwgY29uZmlndXJhdGlvbltpbmRleF0uaHJlZik7CisgICAgICAgIGxpbmtFbGVtZW50LnNl
dEF0dHJpYnV0ZSgiYWRjYW1wYWlnbmlkIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRjYW1wYWln
bmlkKTsKKyAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhZGRlc3RpbmF0aW9uIiwg
Y29uZmlndXJhdGlvbltpbmRleF0uYWRkZXN0aW5hdGlvbik7CisgICAgfQorCisgICAgZnVuY3Rp
b24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJYID0g
ZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZh
ciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7
CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAg
ICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1
dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAg
ICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGNvbnZlcnQocHJpb3JpdHksIGNhbGxiYWNrKSB7CisgICAgICAgIGxl
dCBwaXhlbEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKTsKKyAgICAg
ICAgaWYgKHBpeGVsRWxlbWVudCkKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQocGl4ZWxFbGVtZW50KTsKKworICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW1nIik7CisgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6
Ly8xMjcuMC4wLjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJl
Y3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PSIgKyBwcmlvcml0
eTsKKyAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKKyAgICAgICAgaW1hZ2VFbGVt
ZW50Lm9uZXJyb3IgPSBjYWxsYmFjazsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChpbWFnZUVsZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2Nh
dGlvbi5zZWFyY2ggPT09ICIiKSB7CisgICAgICAgICAgICAgICAgLy8gQWQgY2xpY2sgMTI3LjAu
MC4xIOKAkz4gbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGNvbmZpZ3VyZUxpbmsoMCk7Cisg
ICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAg
ICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKKyAg
ICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBhZCBjbGljayB3aXRoIHByaW9yaXR5IDMuCisg
ICAgICAgICAgICAgICAgY29udmVydCgiMDMiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgLy8gQ29udmVydCB0aGUgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSA0LgorICAgICAgICAg
ICAgICAgICAgICBjb252ZXJ0KCIwNCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0
ID0gIkZBSUwgVW5rbm93biB3aW5kb3cubG9jYXRpb24uc2VhcmNoID09ICIgKyB3aW5kb3cubG9j
YXRpb24uc2VhcmNoICsgIi4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4i
OworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29u
ZC1jb252ZXJzaW9uLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13
aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iM2Y1ZGNkODk0YzA0
ODM1N2M5MTgzZmY2MDA0MTY1MzJkYjgyYjRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13
aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0
aGF0IHRoZSBhdHRyaWJ1dGlvbiBpcyBub3QgdXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGNv
bnZlcnNpb24gd2l0aCBsb3dlciBwcmlvcml0eS4KKworCitDb252ZXJ0ZWQgUHJpdmF0ZSBDbGlj
ayBNZWFzdXJlbWVudHM6CitXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCitTb3Vy
Y2U6IDEyNy4wLjAuMQorRGVzdGluYXRpb246IGxvY2FsaG9zdAorQ2FtcGFpZ24gSUQ6IDMKK0Nv
bnZlcnNpb24gZGF0YTogMTIKK0NvbnZlcnNpb24gcHJpb3JpdHk6IDQKK0NvbnZlcnNpb24gZWFy
bGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKK0NvbnZlcnNpb24gcmVxdWVz
dCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29u
ZC1jb252ZXJzaW9uLXdpdGgtbG93ZXItcHJpb3JpdHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzk2MmM4
YjQyNGQ0Mjk0YjhiYzE3ZjQ5YWJkY2I5MzIxMTcwOTI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVy
c2lvbi13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFET0NUWVBF
IGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVl
IF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYt
OCI+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0
aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
c2V0VGltZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhh
dCB0aGUgYXR0cmlidXRpb24gaXMgbm90IHVwZGF0ZWQgaWYgaXQgZ2V0cyBhIHNlY29uZCBjb252
ZXJzaW9uIHdpdGggbG93ZXIgcHJpb3JpdHkuPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluayI+TGlu
azwvYT48YnI+Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBjb25zdCBw
YXRoID0gIi9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxv
d2VyLXByaW9yaXR5Lmh0bWwiOworICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBbCisgICAgICAg
IHsKKyAgICAgICAgICAgIGhyZWY6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiICsgcGF0aCArICI/
c3RlcFR3byIsCisgICAgICAgICAgICBhZGNhbXBhaWduaWQ6ICIzIiwKKyAgICAgICAgICAgIGFk
ZGVzdGluYXRpb246ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiCisgICAgICAgIH0KKyAgICBdOwor
CisgICAgcHJlcGFyZVRlc3QoKTsKKworICAgIGZ1bmN0aW9uIGNvbmZpZ3VyZUxpbmsoaW5kZXgp
IHsKKyAgICAgICAgbGV0IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldExpbmsiKTsKKyAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJocmVmIiwgY29u
ZmlndXJhdGlvbltpbmRleF0uaHJlZik7CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0
ZSgiYWRjYW1wYWlnbmlkIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRjYW1wYWlnbmlkKTsKKyAg
ICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhZGRlc3RpbmF0aW9uIiwgY29uZmlndXJh
dGlvbltpbmRleF0uYWRkZXN0aW5hdGlvbik7CisgICAgfQorCisgICAgZnVuY3Rpb24gYWN0aXZh
dGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5v
ZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZ
ID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAg
IFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAg
IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVy
VGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93
bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1
bmN0aW9uIGNvbnZlcnQocHJpb3JpdHksIGNhbGxiYWNrKSB7CisgICAgICAgIGxldCBwaXhlbEVs
ZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKTsKKyAgICAgICAgaWYgKHBp
eGVsRWxlbWVudCkKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocGl4ZWxF
bGVtZW50KTsKKworICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaW1nIik7CisgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4w
LjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZl
cnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PSIgKyBwcmlvcml0eTsKKyAgICAg
ICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKKyAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJy
b3IgPSBjYWxsYmFjazsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVs
ZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFy
Y2ggPT09ICIiKSB7CisgICAgICAgICAgICAgICAgLy8gQWQgY2xpY2sgMTI3LjAuMC4xIOKAkz4g
bG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGNvbmZpZ3VyZUxpbmsoMCk7CisgICAgICAgICAg
ICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAgICB9IGVsc2Ug
aWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAgICAgICAg
ICAgICAvLyBDb252ZXJ0IHRoZSBhZCBjbGljayB3aXRoIHByaW9yaXR5IDQuCisgICAgICAgICAg
ICAgICAgY29udmVydCgiMDQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8g
Q29udmVydCB0aGUgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSAzLgorICAgICAgICAgICAgICAgICAg
ICBjb252ZXJ0KCIwMyIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRhcmdldExpbmsiKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwg
VW5rbm93biB3aW5kb3cubG9jYXRpb24uc2VhcmNoID09ICIgKyB3aW5kb3cubG9jYXRpb24uc2Vh
cmNoICsgIi4iOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAg
ICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKKyAg
ICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJp
YnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lv
bi1yZXF1ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hY2UyMDc2ODUyZmZkOGZhNzNkZWM4
YWY3YjhhMWQyMGIxMTczYTFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24t
cmVxdWVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNyBAQAorVGVzdHMgc2VuZGluZyBvZiBw
cml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IHJlcXVlc3RzIGFmdGVyIGEgY29udmVyc2lvbi4gQWxz
byB0ZXN0cyB0aGF0IGNvb2tpZXMgYXJlIG5vdCBzZW50IGluIHRob3NlIHJlcXVlc3RzIGFuZCBj
b29raWVzIGFyZSBub3QgYWNjZXB0ZWQgaW4gdGhlIHJlc3BvbnNlcy4KKworCisKKy0tLS0tLS0t
CitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorQ29va2llcyBhcmU6IGNvb2tpZVNl
dEFzRmlyc3RQYXJ0eSA9IDEKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0t
LS0tLS0tCitDb252ZXJzaW9uIHJlY2VpdmVkLgorSFRUUF9IT1NUOiAxMjcuMC4wLjE6ODAwMAor
Q29udGVudCB0eXBlOiBhcHBsaWNhdGlvbi9qc29uCitSRVFVRVNUX1VSSTogL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocAorTm8gY29va2llcyBp
biBjb252ZXJzaW9uIHJlcXVlc3QuCitSZXF1ZXN0IGJvZHk6Cit7ImNvbnRlbnQtdHlwZSI6ImNs
aWNrIiwiY29udGVudC1zaXRlIjoiMTI3LjAuMC4xIiwiY29udGVudC1pZCI6MywiY29udmVyc2lv
bi1zaXRlIjoibG9jYWxob3N0IiwiY29udmVyc2lvbi1kYXRhIjoxMiwicmVwb3J0LXZlcnNpb24i
OjF9CisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCitDb29r
aWVzIGFyZTogY29va2llU2V0QXNGaXJzdFBhcnR5ID0gMQorCitObyBzdG9yZWQgUHJpdmF0ZSBD
bGljayBNZWFzdXJlbWVudCBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVx
dWVzdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJk
NjVkMDdjN2UwZDkzYjgzODBiZWVhYzRlNzM3Mjk3YzAyMjYwZDQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlbmQtYXR0
cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwKQEAgLTAsMCArMSw4MCBAQAorPCFET0NU
WVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10
cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJV
VEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13
aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMg
c2VuZGluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IHJlcXVlc3RzIGFmdGVyIGEgY29u
dmVyc2lvbi4gQWxzbyB0ZXN0cyB0aGF0IGNvb2tpZXMgYXJlIG5vdCBzZW50IGluIHRob3NlIHJl
cXVlc3RzIGFuZCBjb29raWVzIGFyZSBub3QgYWNjZXB0ZWQgaW4gdGhlIHJlc3BvbnNlcy48L2Rp
dj4KKzxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRt
bD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCI+TGluazwvYT48YnI+Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4K
KyAgICBjb25zdCBjdXJyZW50VGltZU1pbGxpcyA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7Cisg
ICAgY29uc3QgaGlnaEVudHJvcHlCaXRzID0gY3VycmVudFRpbWVNaWxsaXMgLSAoTWF0aC5mbG9v
cihjdXJyZW50VGltZU1pbGxpcyAvIDEwMDAwMDApICogMTAwMDAwMCk7CisgICAgY29uc3Qgbm9u
Y2UgPSBoaWdoRW50cm9weUJpdHMgKyAiIiArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEw
MCk7CisKKyAgICBwcmVwYXJlVGVzdCgpOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRp
bWVyRm9yVGVzdGluZyh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwP25v
bmNlPSIgKyBub25jZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVs
ZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsg
ZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5v
ZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFj
dGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlM
IFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgp
OworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFwcGVu
ZElmcmFtZSh1cmwsIG9ubG9hZENhbGxiYWNrKSB7CisgICAgICAgIGxldCBpZnJhbWVFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGlmcmFtZUVsZW1l
bnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25sb2FkQ2FsbGJhY2spCisgICAgICAgICAgICBp
ZnJhbWVFbGVtZW50Lm9ubG9hZCA9IG9ubG9hZENhbGxiYWNrOworICAgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFw
cGVuZENvbnZlcnNpb25EYXRhSWZyYW1lQW5kRmluaXNoKCkgeworICAgICAgICB0ZXN0UnVubmVy
LmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOworICAgICAgICBkb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOworICAgICAg
ICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhl
bCIpKTsKKworICAgICAgICBhcHBlbmRJZnJhbWUoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9jb29r
aWVzL3Jlc291cmNlcy9lY2hvLWNvb2tpZXMucGhwIik7CisgICAgICAgIGFwcGVuZElmcmFtZSgi
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9n
ZXRDb252ZXJzaW9uRGF0YS5waHA/dGltZW91dF9tcz0yMDAwJm5vbmNlPSIgKyBub25jZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBhcHBlbmRJZnJhbWUoImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9jb29raWVzL3Jlc291cmNlcy9lY2hvLWNvb2tpZXMucGhwIiwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNo
ID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVu
dC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9y
ZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJm5vbmNl
PSIgKyBub25jZTsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOwor
ICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIGFwcGVuZENvbnZlcnNpb25EYXRhSWZyYW1lQW5kRmluaXNoKCk7Cisg
ICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGltYWdlRWxlbWVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IGRvY3VtZW50LmNvb2tpZSA9ICJjb29raWVTZXRBc0ZpcnN0UGFydHk9MTsgcGF0aD0vIjsKKyAg
ICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAgIH0K
KyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtZGlzYWJsZWQtaW4t
ZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lv
bi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTJhOWJlODgwMzNiMTQ1ZDFhOTU1NGEzZWFhNWRm
Y2FiMzQ4NzUxYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24t
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGVzdHMgdGhhdCBzdG9yYWdlIG9mIHByaXZh
dGUgY2xpY2sgbWVhc3VyZW1lbnQgaXMgZGlzYWJsZWQgaW4gZXBoZW1lcmFsIHNlc3Npb25zLgor
CisKKworTm8gc3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgZGF0YS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUt
ZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNl
c3Npb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kM2U4MmQ1Yzk4ZjMwMmI0MTNjYTE4MTg3MjQ1ZWYwZjBi
NjQ1Y2ZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9zdG9yZS1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1s
CkBAIC0wLDAgKzEsNDYgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVW
aWV3cG9ydD10cnVlIHVzZUVwaGVtZXJhbFNlc3Npb249dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+
CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwg
aW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0
VGltZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBz
dG9yYWdlIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgaXMgZGlzYWJsZWQgaW4gZXBoZW1l
cmFsIHNlc3Npb25zLjwvZGl2PgorPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1kaXNhYmxlZC1pbi1lcGhl
bWVyYWwtc2Vzc2lvbi5odG1sP3N0ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlv
bj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+
PC9kaXY+Cis8c2NyaXB0PgorICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBmdW5jdGlvbiBhY3Rp
dmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50
Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRl
clkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAg
ICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAg
ICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5u
ZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAgIHRlYXJE
b3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgewor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZp
bmlzaCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVs
ZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAi
RkFJTCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvc3RvcmUtcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3Jl
LXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzOGIx
MGVlNWRlODA2NzUxZmI3YzA0ZjM1ZGJhZWQwM2E5NzMxMTcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZh
dGUtY2xpY2stbWVhc3VyZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdHMg
c3RvcmFnZSBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50LgorCisKK1VuY29udmVydGVkIFBy
aXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgorV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQgMQorU291cmNlOiAxMjcuMC4wLjEKK0Rlc3RpbmF0aW9uOiBsb2NhbGhvc3QKK0NhbXBhaWdu
IElEOiAzCitObyBjb252ZXJzaW9uIGRhdGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xpY2stbWVhc3Vy
ZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvc3RvcmUtcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlYWU2
ZTkzYTg3MWRhY2UzNTlkMGVmOTM1MGNlODhkYzFiNjBmZjUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZh
dGUtY2xpY2stbWVhc3VyZW1lbnQuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgaHRt
bD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAt
LT4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4K
KyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBp
bml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRU
aW1lb3V0KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyBzdG9yYWdl
IG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQuPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluayIg
aHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3Jl
LXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQuaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMi
IGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Cis8ZGl2
IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBwcmVwYXJlVGVzdCgpOworCisgICAg
ZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50
ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAg
ICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdo
dCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhl
bigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
Im91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAg
ICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAgICAgICApOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/
c3RlcFR3byIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCgpOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgICAgICAgICAg
dGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAgICB9CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iiku
aW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9CisgICAgfQorPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcGFnZS9vdmVycmlkZVNldHRpbmctQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxl
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRp
bmctQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZC1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFmMTU0NDkwZTUwYzkzZTljOGE0NTdiYjA1MzZlYWRj
NGYzZTg1ZDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLUFkQ2xpY2tBdHRyaWJ1
dGlvbkRlYnVnTW9kZUVuYWJsZWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSAr
MCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IFtBZCBDbGljayBBdHRyaWJ1dGlvbl0gVHVybmVkIERl
YnVnIE1vZGUgb24uCi1UZXN0cyBmb3IgdGhlIFBhZ2Uub3ZlcnJpZGVTZXR0aW5nIGNvbW1hbmQu
Ci0KLQotPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBQYWdlLm92ZXJyaWRlU2V0dGluZwotLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IFBhZ2Uub3ZlcnJpZGVTZXR0aW5nLkFkQ2xpY2tBdHRyaWJ1dGlvbkRl
YnVnTW9kZUVuYWJsZWQKLUVuYWJsaW5nIGFkIGNsaWNrIGF0dHJpYnV0aW9uIGRlYnVnIG1vZGUu
Li4KLVBBU1M6IFNob3VsZCBicm9hZGNhc3QgYXQgbGVhc3Qgb25lIGNvbnNvbGUgbWVzc2FnZS4K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5n
LUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1BZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVF
bmFibGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhZGYxMWQ3YzFjMTVm
NDhhYTQzMDVlMTA0NGY3NzU2NDk2ZWVkODIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0
aW5nLUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDM4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIGxldCBz
dWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUGFnZS5vdmVycmlkZVNldHRp
bmciKTsKLQotICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAgICAgbmFtZTogIlBhZ2Uub3Zl
cnJpZGVTZXR0aW5nLkFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQiLAotICAgICAg
ICBkZXNjcmlwdGlvbjogIlRlc3QgdGhhdCBjaGFuZ2luZyB3aGV0aGVyIGFkIGNsaWNrIGF0dHJp
YnV0aW9uIGRlYnVnIG1vZGUgaXMgZW5hYmxlZCBoYXMgYW4gZWZmZWN0LiIsCi0gICAgICAgIHRl
c3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgbGlzdGVuZXIgPSBXSS5jb25z
b2xlTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNvbnNvbGVNYW5hZ2VyLkV2ZW50Lk1lc3Nh
Z2VBZGRlZCwgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICAgICAgbGV0IHttZXNzYWdlfSA9IGV2
ZW50LmRhdGE7Ci0gICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2Uuc291cmNlICE9PSBXSS5Db25z
b2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLkFkQ2xpY2tBdHRyaWJ1dGlvbikKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKCJT
aG91bGQgYnJvYWRjYXN0IGF0IGxlYXN0IG9uZSBjb25zb2xlIG1lc3NhZ2UuIik7Ci0KLSAgICAg
ICAgICAgICAgICBXSS5jb25zb2xlTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNvbnNv
bGVNYW5hZ2VyLkV2ZW50Lk1lc3NhZ2VBZGRlZCwgbGlzdGVuZXIpOwotICAgICAgICAgICAgICAg
IHJlc29sdmUoKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiRW5hYmxpbmcgYWQgY2xpY2sgYXR0cmlidXRpb24gZGVidWcgbW9kZS4uLiIpOwotICAg
ICAgICAgICAgUGFnZUFnZW50Lm92ZXJyaWRlU2V0dGluZyhJbnNwZWN0b3JCYWNrZW5kLkVudW0u
UGFnZS5TZXR0aW5nLkFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQsIHRydWUpLmNh
dGNoKHJlamVjdCk7Ci0gICAgICAgIH0sCi0gICAgfSk7Ci0KLSAgICBzdWl0ZS5ydW5UZXN0Q2Fz
ZXNBbmRGaW5pc2goKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Ci0gICAgPHA+VGVzdHMgZm9yIHRoZSBQYWdlLm92ZXJyaWRlU2V0dGluZyBjb21t
YW5kLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9k
ZUVuYWJsZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJp
ZGVTZXR0aW5nLVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODVkOGU1NTI3NGI4ODkwMjA2MmE2ZGMyY2UwMjBhYWRjNTllMmFj
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL292ZXJyaWRl
U2V0dGluZy1Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsOSBAQAorQ09OU09MRSBNRVNTQUdFOiBbUHJpdmF0ZSBDbGljayBNZWFz
dXJlbWVudF0gVHVybmVkIERlYnVnIE1vZGUgb24uCitUZXN0cyBmb3IgdGhlIFBhZ2Uub3ZlcnJp
ZGVTZXR0aW5nIGNvbW1hbmQuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBQYWdlLm92ZXJy
aWRlU2V0dGluZworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFBhZ2Uub3ZlcnJpZGVTZXR0aW5nLlBy
aXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZAorRW5hYmxpbmcgcHJpdmF0ZSBj
bGljayBtZWFzdXJlbWVudCBkZWJ1ZyBtb2RlLi4uCitQQVNTOiBTaG91bGQgYnJvYWRjYXN0IGF0
IGxlYXN0IG9uZSBjb25zb2xlIG1lc3NhZ2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVn
TW9kZUVuYWJsZWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0
dGluZy1Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xN2IyNWNjODMwMTg1YWYzMTU0NDAyZjk1MDZmMmY1ZGNlYTE5M2IxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLVByaXZh
dGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZC5odG1sCkBAIC0wLDAgKzEsMzggQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRl
c3QuY3JlYXRlQXN5bmNTdWl0ZSgiUGFnZS5vdmVycmlkZVNldHRpbmciKTsKKworICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlBhZ2Uub3ZlcnJpZGVTZXR0aW5nLlByaXZh
dGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZCIsCisgICAgICAgIGRlc2NyaXB0aW9u
OiAiVGVzdCB0aGF0IGNoYW5naW5nIHdoZXRoZXIgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBk
ZWJ1ZyBtb2RlIGlzIGVuYWJsZWQgaGFzIGFuIGVmZmVjdC4iLAorICAgICAgICB0ZXN0KHJlc29s
dmUsIHJlamVjdCkgeworICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuY29uc29sZU1hbmFn
ZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5Db25zb2xlTWFuYWdlci5FdmVudC5NZXNzYWdlQWRkZWQs
IChldmVudCkgPT4geworICAgICAgICAgICAgICAgIGxldCB7bWVzc2FnZX0gPSBldmVudC5kYXRh
OworICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLnNvdXJjZSAhPT0gV0kuQ29uc29sZU1lc3Nh
Z2UuTWVzc2FnZVNvdXJjZS5Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKCJTaG91
bGQgYnJvYWRjYXN0IGF0IGxlYXN0IG9uZSBjb25zb2xlIG1lc3NhZ2UuIik7CisKKyAgICAgICAg
ICAgICAgICBXSS5jb25zb2xlTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNvbnNvbGVN
YW5hZ2VyLkV2ZW50Lk1lc3NhZ2VBZGRlZCwgbGlzdGVuZXIpOworICAgICAgICAgICAgICAgIHJl
c29sdmUoKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiRW5hYmxpbmcgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBkZWJ1ZyBtb2RlLi4uIik7Cisg
ICAgICAgICAgICBQYWdlQWdlbnQub3ZlcnJpZGVTZXR0aW5nKEluc3BlY3RvckJhY2tlbmQuRW51
bS5QYWdlLlNldHRpbmcuUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkLCB0
cnVlKS5jYXRjaChyZWplY3QpOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUucnVu
VGVzdENhc2VzQW5kRmluaXNoKCk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgUGFnZS5vdmVycmlkZVNldHRp
bmcgY29tbWFuZC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNmFjM2U3MGJiYzViMThmNTQxOWU3MDgy
OTU3YTg5NjJmNGYxMWZhNy4uZjNjZDYzZmZmMDQ4MzkzODFjZTkwOGY1ZmYxM2FjMzQwYzY3NTJl
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMTA4MCw5ICsxMDgwLDYgQEAgd2Via2l0Lm9yZy9iLzY4Mjc4IGh0dHAvdGVzdHMvaGlzdG9y
eS9iYWNrLXdpdGgtZnJhZ21lbnQtY2hhbmdlLnBocCBbIFBhc3MgRmFpbHUKICMgPHJkYXI6Ly9w
cm9ibGVtLzM3MzMwMzc3PiBBU2FuIHRlc3RzIGV4aXRpbmcgZWFybHkgZHVlIHRvIHRpbWVvdXRz
CiBbIFJlbGVhc2UgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQ
SS9kZXJpdmVfYml0c19rZXlzIFsgU2tpcCBdCiAKLSMgPHJkYXI6Ly9wcm9ibGVtLzYwMDYzMDAy
PiBSRUdSRVNTSU9OOiAocjI1Nzc1OCkgaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vY29u
dmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sIGlzIGNyYXNoaW5nCi1o
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVt
ZXJhbC1zZXNzaW9uLmh0bWwgWyBQYXNzIENyYXNoIF0KLQogIyA8cmRhcjovL3Byb2JsZW0vNjAx
MDU5Mjc+IFsgTWFjIHdrMiBSZWxlYXNlIF0gd2ViZ3B1L3dobHNsL21ha2UtYXJyYXktcmVmZXJl
bmNlLmh0bWwgaXMgZmxha3kgZmFpbGluZwogWyBSZWxlYXNlIF0gd2ViZ3B1L3dobHNsL21ha2Ut
YXJyYXktcmVmZXJlbmNlLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCkBAIC0xMTMxLDggKzExMjgs
OCBAQCB3ZWJydGMvc2ltdWxjYXN0LWgyNjQuaHRtbCBbIFBhc3MgVGltZW91dCBdCiAjIDxyZGFy
Oi8vcHJvYmxlbS82MzI3NTIxMz4gUkVHUkVTU0lPTjogaHR0cC90ZXN0cy9JbmRleGVkREIvc3Rv
cmFnZS1saW1pdC0xLmh0dHBzLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlCiBbIEJpZ1N1cisgUmVs
ZWFzZSBdIGh0dHAvdGVzdHMvSW5kZXhlZERCL3N0b3JhZ2UtbGltaXQtMS5odHRwcy5odG1sIFsg
UGFzcyBGYWlsdXJlIF0KIAotIyA8cmRhcjovL3Byb2JsZW0vNjMzNTc0ODE+IGh0dHAvdGVzdHMv
YWRDbGlja0F0dHJpYnV0aW9uL3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0
bWwgaXMgYSBzdXBlciBmbGFreSBmYWlsdXJlCi1bIEJpZ1N1cisgRGVidWcgXSBodHRwL3Rlc3Rz
L2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5o
dG1sIFsgUGFzcyBGYWlsdXJlIF0KKyMgPHJkYXI6Ly9wcm9ibGVtLzYzMzU3NDgxPiBodHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1y
ZXF1ZXN0Lmh0bWwgaXMgYSBzdXBlciBmbGFreSBmYWlsdXJlCitbIEJpZ1N1cisgRGVidWcgXSBo
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmlidXRpb24tY29udmVy
c2lvbi1yZXF1ZXN0Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiAjIDxyZGFyOi8vcHJvYmxlbS82
MzU1NDI0OT4gWzIwQTI3OV0gRFEgYm90cyBhcmUgc2VlaW5nIGh0dHAvdGVzdHMvY2FjaGUvZGlz
ay1jYWNoZS9kaXNrLWNhY2hlLXZhbGlkYXRpb24tYmFjay1uYXZpZ2F0aW9uLXBvbGljeS5odG1s
IGFuZCBodHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvZGlzay1jYWNoZS12YWxpZGF0aW9uLW5v
LWJvZHkuaHRtbCBhcmUgdGltaW5nIG91dAogd2Via2l0Lm9yZy9iLzE3OTc5NiBodHRwL3Rlc3Rz
L2NhY2hlL2Rpc2stY2FjaGUvZGlzay1jYWNoZS12YWxpZGF0aW9uLWJhY2stbmF2aWdhdGlvbi1w
b2xpY3kuaHRtbCBbIFBhc3MgRmFpbHVyZSBUaW1lb3V0IF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOGQ3ZDQ5MGViMzI4NGMzMDlkY2NkMmEwZTE4NmQ5
ODA0MzYyN2U5NC4uMTQ5YWY3OGUxNWUwYTEyMGY3NzI3NGUyNTFkOWIzOTg0Y2Y4NzU3NSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc0Niw3ICs3NDYs
NyBAQCBzdG9yYWdlL2luZGV4ZWRkYi9JREJPYmplY3QtbGVhay5odG1sIFsgUGFzcyBdCiAKIGZh
c3QvZm9ybXMvY2FsbC10ZXh0LWRpZC1jaGFuZ2UtaW4tdGV4dC1maWVsZC13aGVuLXR5cGluZy5o
dG1sIFsgUGFzcyBdCiAKLWh0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uIFsgUGFzcyBdCito
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50IFsgUGFzcyBdCiAKICMgVXNlciBpbnRl
cmFjdGlvbiBpcyBhIFdlYktpdDIgY29uY2VwdC4KIGluc3BlY3Rvci9kZWJ1Z2dlci9ldmFsdWF0
ZU9uQ2FsbEZyYW1lLWVtdWxhdGVVc2VyR2VzdHVyZS11c2VySXNJbnRlcmFjdGluZy5odG1sIFsg
UGFzcyBdCkBAIC03NTYsOCArNzU2LDggQEAgaW5zcGVjdG9yL3J1bnRpbWUvY2FsbEZ1bmN0aW9u
T24tZW11bGF0ZVVzZXJHZXN0dXJlLXVzZXJJc0ludGVyYWN0aW5nLmh0bWwgWyBQYXMKICMgVGFy
Z2V0IGRvbWFpbiBpcyBvbmx5IHByZXNlbnQgaW4gV2ViS2l0Mi4KIGh0dHAvdGVzdHMvaW5zcGVj
dG9yL3RhcmdldCBbIFBhc3MgXQogCi0jIElUUCBhbmQgQWRDbGlja0F0dHJpYnV0aW9uIGFyZSBX
SzIgb25seS4KLWluc3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1BZENsaWNrQXR0cmlidXRp
b25EZWJ1Z01vZGVFbmFibGVkLmh0bWwgWyBQYXNzIF0KKyMgSVRQIGFuZCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCBhcmUgV0syIG9ubHkuCitpbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmct
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkLmh0bWwgWyBQYXNzIF0KIGlu
c3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1JVFBEZWJ1Z01vZGVFbmFibGVkLmh0bWwgWyBQ
YXNzIF0KIAogIyBIaWdobGlnaHRpbmcgbWFya2VkIHRleHQgcmFuZ2VzIGZyb20gbGF5b3V0IHRl
c3RzIGlzIG9ubHkgc3VwcG9ydGVkIGluIFdlYktpdDIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dw
ZS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDYzOWVkMjEyM2MwYzlmZjVjZTAwMmIwZjNhMDBlNmRi
MTIzNGRiNTAuLjVjMDAwOTgxZWUzYTQyMDJmYzQzOWFlZmFmMWMwZWFkYTBhNjRjYTMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNDgsNyArMjQ4LDcg
QEAgd2Via2l0Lm9yZy9iLzIxNTUwMiBmYXN0L2ZsZXhib3gvaW1hZ2UtcGVyY2VudC1tYXgtaGVp
Z2h0Lmh0bWwgWyBGYWlsdXJlIFBhc3MgSW0KIHdlYmtpdC5vcmcvYi8yMTg2ODkgaW1wb3J0ZWQv
YmxpbmsvZmFzdC9mb3Jtcy90ZXh0YXJlYS1wbGFjZWhvbGRlci12aXNpYmlsaXR5LTMuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQogCiAjIExpbmsgdGFyZ2V0Ci13ZWJraXQub3JnL2IvMjE4NTUz
IGh0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhy
b3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93Lmh0bWwgWyBUaW1lb3V0IF0KK3dlYmtp
dC5vcmcvYi8yMTg1NTMgaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1
dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy5odG1s
IFsgVGltZW91dCBdCiB3ZWJraXQub3JnL2IvMjEyMDgzIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGlj
eS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0
aC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbAogd2Via2l0Lm9yZy9iLzIxMjA4MyBsb2FkZXIvbmF2
aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2VyLWdlc3R1cmUtdGFy
Z2V0LWJsYW5rLXdpdGgtZmxhZy5odG1sCiB3ZWJraXQub3JnL2IvMjEyMDgzIGxvYWRlci9uYXZp
Z2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXItZ2VzdHVyZS10YXJn
ZXQtYmxhbmstd2l0aG91dC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413868</attachid>
            <date>2020-11-11 14:32:55 -0800</date>
            <delta_ts>2020-11-11 19:16:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218730-20201111143254.patch</filename>
            <type>text/plain</type>
            <size>479436</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5Njk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MzZjMTk0NmVlZTVkODI2ODcxOTFiZDcwMmU4Yjg1ZDQxYjJhNzZhLi5hYTQ0MDExYWQ0YTgwNWJk
ZDk1ZjI4Njg5NTk5MmVmNmU3ODZjYjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAyMC0xMS0xMSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KKworICAgICAgICBQQ006IENoYW5nZSBmcm9tIGFkLWNsaWNrLWF0dHJpYnV0aW9uIHRvIHBy
aXZhdGUtY2xpY2stbWVhc3VyZW1lbnQgKGluIGFsbCBmb3JtcywgaW5jbHVkaW5nIC53ZWxsLWtu
b3duIFVSTCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxODczMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzEwOTQyOTY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlIHRvIHRoZSBvZmZpY2lh
bCBuYW1lIG9mIHRoZSBwcm9wb3NlZCBzdGFuZGFyZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50
CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9wcml2YWN5Y2cvcHJpdmF0ZS1jbGljay1tZWFz
dXJlbWVudC4KKworICAgICAgICBUaGlzIGluY2x1ZGVzIGEgY2hhbmdlIG9mIHRoZSByZXBvcnRp
bmcgVVJMIGZyb20gCisgICAgICAgICIvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24v
IiB0bworICAgICAgICAiLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvIi4K
KworICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHA6CisgICAgICAgIChJbnNw
ZWN0b3I6Om1lc3NhZ2VTb3VyY2VWYWx1ZSk6CisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29s
L0NvbnNvbGUuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uOgor
ICAgICAgICAqIHJ1bnRpbWUvQ29uc29sZUNsaWVudC5jcHA6CisgICAgICAgIChKU0M6OmFwcGVu
ZE1lc3NhZ2VQcmVmaXgpOgorICAgICAgICAqIHJ1bnRpbWUvQ29uc29sZVR5cGVzLmg6CisKIDIw
MjAtMTEtMTEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBb
SlNDXSB3YXNtIGZhdWx0IHRyYW1wb2xpbmUgc2hvdWxkIGJlIEMgY29kZSBzaW5jZSBpdCBpcyB0
YWdnZWQgYXMgQ0Z1bmN0aW9uUHRyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGUwNWVmYTcwOWM1MGUxMWI5NWQzOTc3ZmM3MTRi
MDAyZmE0OTBhZDguLmVkMDcxZmFkNWU4ODViZDAzZTY4MTRkYzY0MzllYzZmMDUzNjg5MjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMTEtMTEgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBh
cHBsZS5jb20+CisKKyAgICAgICAgUENNOiBDaGFuZ2UgZnJvbSBhZC1jbGljay1hdHRyaWJ1dGlv
biB0byBwcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50IChpbiBhbGwgZm9ybXMsIGluY2x1ZGluZyAu
d2VsbC1rbm93biBVUkwpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTg3MzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMDk0Mjk2PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSB0byB0aGUg
b2ZmaWNpYWwgbmFtZSBvZiB0aGUgcHJvcG9zZWQgc3RhbmRhcmQgUHJpdmF0ZSBDbGljayBNZWFz
dXJlbWVudAorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vcHJpdmFjeWNnL3ByaXZhdGUtY2xp
Y2stbWVhc3VyZW1lbnQuCisKKyAgICAgICAgVGhpcyBpbmNsdWRlcyBhIGNoYW5nZSBvZiB0aGUg
cmVwb3J0aW5nIFVSTCBmcm9tIAorICAgICAgICAiLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJp
YnV0aW9uLyIgdG8KKyAgICAgICAgIi8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVt
ZW50LyIuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhw
ZXJpbWVudGFsLnlhbWw6CisKIDIwMjAtMTEtMTEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBEb24ndCBsb29rIGluIGtleWNoYWluIGZvciBT
ZWNLZXlSZWYgYWZ0ZXIgZGVzZXJpYWxpemluZyBTZWNJZGVudGl0eVJlZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDBiNzQxZWYzZTgzZDY2MDk3MDg3MmUwZTAwMDc0YmVjNTJjYzBjMmMuLmE0MWQyODllMzBkZDkx
NmUwMzIxMDZiMzQzYzE1NWFkMjc5MzZkNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMjMgQEAK
KzIwMjAtMTEtMTEgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAg
ICAgUENNOiBDaGFuZ2UgZnJvbSBhZC1jbGljay1hdHRyaWJ1dGlvbiB0byBwcml2YXRlLWNsaWNr
LW1lYXN1cmVtZW50IChpbiBhbGwgZm9ybXMsIGluY2x1ZGluZyAud2VsbC1rbm93biBVUkwpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg3MzAKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMDk0Mjk2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSB0byB0aGUgb2ZmaWNpYWwgbmFtZSBvZiB0
aGUgcHJvcG9zZWQgc3RhbmRhcmQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudAorICAgICAgICBo
dHRwczovL2dpdGh1Yi5jb20vcHJpdmFjeWNnL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQuCisK
KyAgICAgICAgVGhpcyBpbmNsdWRlcyBhIGNoYW5nZSBvZiB0aGUgcmVwb3J0aW5nIFVSTCBmcm9t
IAorICAgICAgICAiLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLyIgdG8KKyAgICAg
ICAgIi8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LyIuCisKKyAgICAgICAg
VGVzdHM6IGh0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2stcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L2FuY2hvci10YWctYXR0cmlidXRlcy1yZWZsZWN0Lmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1
dGVzLXZhbGlkYXRpb24uaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1p
bWFnZS1yZWRpcmVjdC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVj
dC1pbi1uZXctd2luZG93Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGly
ZWN0LXdpdGgtcHJpb3JpdHkuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVk
aXJlY3Qtd2l0aG91dC1wcmlvcml0eS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L2NsZWFyLXRocm91Z2gtd2Vic2l0ZS1kYXRhLXJlbW92YWwu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9j
b252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hdHRyaWJ1dGlv
bnMtcmVtb3ZlZC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1oaWdoZXItcHJpb3Jp
dHkuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHkuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQt
Y29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtbG93
ZXItcHJpb3JpdHkuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLWRpc2Fi
bGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC5o
dG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkLmh0bWwKKworICAgICAgICAqIEhlYWRl
cnMuY21ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1l
bnQ6OmhhbmRsZUNsaWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50Ojpw
YXJzZUFkQ2xpY2tBdHRyaWJ1dGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRs
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JQYWdlQWdlbnQ6OmRpc2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
UGFnZUFnZW50OjpvdmVycmlkZVNldHRpbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMv
cGFnZS9QYWdlQ29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xl
QWdlbnQ6OmdldExvZ2dpbmdDaGFubmVscyk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGFuZ2VMb2NhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZEZyYW1lUmVxdWVzdCk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFVSTCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb246OnByaXZhdGVDbGlja01lYXN1cmVtZW50IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb246OnNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb246OmFkQ2xpY2tB
dHRyaWJ1dGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9u
QWN0aW9uOjpzZXRBZENsaWNrQXR0cmlidXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRl
ci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvQWRDbGlja0F0dHJpYnV0aW9uLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50Ojppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpjb252ZXJ0QW5kR2V0RWFybGllc3RU
aW1lVG9TZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpt
YXJrQXNFeHBpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpoYXNFeHBpcmVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpoYXNIaWdoZXJQcmlvcml0eVRoYW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnJlcG9ydFVSTCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6anNvbiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6bWFya0NvbnZlcnNpb25Bc1NlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ondhc0NvbnZlcnNpb25TZW50
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp0b1N0
cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
ZGVidWdNb2RlRW5hYmxlZCk6CisgICAgICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvQWRDbGlja0F0dHJpYnV0
aW9uLmguCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFp
Z246OkNhbXBhaWduKToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpDYW1wYWlnbjo6aXNWYWxpZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6U291cmNlOjpTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlOjptYXRjaGVzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2U6OmlzSGFz
aFRhYmxlRGVsZXRlZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpTb3VyY2U6OmRlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlOjpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTo6ZGVsZXRl
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJj
ZTo6aXNEZWxldGVkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OlNvdXJjZUhhc2g6Omhhc2gpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUhhc2g6OmVxdWFsKToKKyAgICAgICAgKFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbjo6RGVzdGluYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOjpvcGVy
YXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpEZXN0aW5hdGlvbjo6bWF0Y2hlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb246OmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5h
dGlvbjo6ZGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpEZXN0aW5hdGlvbjo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbjo6ZGVsZXRlVmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9u
Ojppc0RlbGV0ZWRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6RGVzdGluYXRpb25IYXNoOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbkhhc2g6OmVxdWFsKToKKyAgICAgICAg
KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eTo6UHJpb3JpdHkpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb246OkNv
bnZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNv
bnZlcnNpb246OmlzVmFsaWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpzb3VyY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmRlc3RpbmF0aW9uIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjplYXJsaWVzdFRpbWVUb1NlbmQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmlzRW1wdHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZGVj
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJz
aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkNvbnZlcnNpb246OmRlY29kZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZT46OmVtcHR5VmFsdWUpOgorICAg
ICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpT
b3VyY2U+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRz
PFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2U+Ojppc0RlbGV0ZWRWYWx1
ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkRlc3RpbmF0aW9uPjo6ZW1wdHlWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFp
dHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uPjo6Y29uc3Ry
dWN0RGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24+Ojppc0RlbGV0ZWRWYWx1ZSk6CisgICAg
ICAgICogcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVu
YWJsZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9k
ZUVuYWJsZWQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2V0QWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZCk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vTG9nZ2luZy5oOgorCiAyMDIwLTExLTExICBSb2IgQnVp
cyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgUHJvdGVjdCBTY2hlZHVsZWRVUkxOYXZp
Z2F0aW9uIG1lbWJlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggOGM2MWRiZTYwZWI5NzA1
NTkyOTdkYTE0NWEzOWU4MzA5YzNkM2EyNC4uNWFmYWYwYTg4NmRlNzg5N2NhODkyMjA3ZTg5NGFk
YjIwMjZlODI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIw
MjAtMTEtMTEgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAg
UENNOiBDaGFuZ2UgZnJvbSBhZC1jbGljay1hdHRyaWJ1dGlvbiB0byBwcml2YXRlLWNsaWNrLW1l
YXN1cmVtZW50IChpbiBhbGwgZm9ybXMsIGluY2x1ZGluZyAud2VsbC1rbm93biBVUkwpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg3MzAKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzcxMDk0Mjk2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSB0byB0aGUgb2ZmaWNpYWwgbmFtZSBvZiB0aGUg
cHJvcG9zZWQgc3RhbmRhcmQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudAorICAgICAgICBodHRw
czovL2dpdGh1Yi5jb20vcHJpdmFjeWNnL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQuCisKKyAg
ICAgICAgVGhpcyBpbmNsdWRlcyBhIGNoYW5nZSBvZiB0aGUgcmVwb3J0aW5nIFVSTCBmcm9tIAor
ICAgICAgICAiLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLyIgdG8KKyAgICAgICAg
Ii8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LyIuCisKKyAgICAgICAgKiBM
b2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogVXNl
ckludGVyZmFjZS9CYXNlL01haW4uanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMv
Q29uc29sZU1lc3NhZ2UuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvSXNzdWVN
ZXNzYWdlLmpzOgorICAgICAgICAoV0kuSXNzdWVNZXNzYWdlKToKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1Byb3RvY29sL0xlZ2FjeS8xNC4wL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qczoK
KwogMjAyMC0xMS0xMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjk2NjAuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ1NGU1
NzNlNzkwYzI2MTgyNDc1MDZlZWZhNTVhMGU5NTcxN2VkNmUuLjAzNWMwOTIyZmIwYzFjMmRhMzRk
YmE1ODJiZTU3YjZlOGQ0OTQwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYxIEBACisyMDIwLTEx
LTExICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTog
Q2hhbmdlIGZyb20gYWQtY2xpY2stYXR0cmlidXRpb24gdG8gcHJpdmF0ZS1jbGljay1tZWFzdXJl
bWVudCAoaW4gYWxsIGZvcm1zLCBpbmNsdWRpbmcgLndlbGwta25vd24gVVJMKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzMwCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MTA5NDI5Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDaGFuZ2UgdG8gdGhlIG9mZmljaWFsIG5hbWUgb2YgdGhlIHByb3Bv
c2VkIHN0YW5kYXJkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9n
aXRodWIuY29tL3ByaXZhY3ljZy9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LgorCisgICAgICAg
IFRoaXMgaW5jbHVkZXMgYSBjaGFuZ2Ugb2YgdGhlIHJlcG9ydGluZyBVUkwgZnJvbSAKKyAgICAg
ICAgIi8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8iIHRvCisgICAgICAgICIvLndl
bGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8iLgorCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzdG9yZVByaXZhdGVDbGlja01lYXN1cmVtZW50
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmR1bXBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjbGVhclByaXZhdGVD
bGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJz
aW9uVVJMRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjptYXJr
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c3RvcmVBZENsaWNrQXR0
cmlidXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZHVt
cEFkQ2xpY2tBdHRyaWJ1dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9y
VGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRB
ZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjptYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhw
aXJlZEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVx
dWVzdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrU2Vzc2lvbjo6c3RvcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpoYW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
bnZlcnNpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6ZHVtcFByaXZhdGVD
bGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OmNsZWFy
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lv
bjo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZvclJlZ2lzdHJhYmxlRG9tYWluKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lv
bjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjptYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRzQXNFeHBpcmVkRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
OjpzdG9yZUFkQ2xpY2tBdHRyaWJ1dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtTZXNzaW9uOjpoYW5kbGVBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OmR1bXBBZENsaWNrQXR0cmlidXRp
b24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6Y2xlYXJBZENs
aWNrQXR0cmlidXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lv
bjo6Y2xlYXJBZENsaWNrQXR0cmlidXRpb25Gb3JSZWdpc3RyYWJsZURvbWFpbik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpzZXRBZENsaWNrQXR0cmlidXRpb25P
dmVycmlkZVRpbWVyRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtTZXNzaW9uOjpzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjptYXJrQWRDbGlja0F0
dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5jcHAuCisgICAgICAg
IChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RvcmVVbmNvbnZlcnRl
ZCk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6aGFu
ZGxlQ29udmVyc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlcjo6c3RhcnRUaW1lcik6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlcjo6Y29udmVydCk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlcjo6ZmlyZUNvbnZlcnNpb25SZXF1ZXN0KToKKyAgICAgICAgKFdlYktp
dDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlUGVuZGluZ0NvbnZlcnNpb25S
ZXF1ZXN0cyk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
cjo6Y2xlYXIpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OmNsZWFyRm9yUmVnaXN0cmFibGVEb21haW4pOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmNsZWFyRXhwaXJlZCk6CisgICAgICAgIChXZWJLaXQ6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6dG9TdHJpbmcgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnNldENvbnZlcnNpb25V
UkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyOjptYXJrQWxsVW5jb252ZXJ0ZWRBc0V4cGlyZWRGb3JUZXN0aW5nKToKKyAgICAgICAg
KFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpkZWJ1Z01vZGVFbmFibGVk
IGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQWRD
bGlja0F0dHJpYnV0aW9uTWFuYWdlci5oLgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXI6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcik6CisgICAg
ICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6bV9zZXNzaW9uSUQp
OgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnNldFBp
bmdMb2FkRnVuY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXI6OnNldE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKToKKyAgICAgICAgKiBQbGF0Zm9y
bS9Mb2dnaW5nLmg6CisgICAgICAgICogU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGE6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhOjpvd25l
clByb2Nlc3MpOgorICAgICAgICAqIFNoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVR5cGUu
aDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSU5h
dmlnYXRpb24uaDoKKyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbjo6cHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgY29uc3QpOgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9uOjphZENsaWNrQXR0cmlidXRp
b24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
OgorICAgICAgICAoV0tQYWdlRHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAg
KFdLUGFnZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAoV0tQYWdlU2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyk6CisgICAgICAg
IChXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5n
KToKKyAgICAgICAgKFdLUGFnZU1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRG
b3JUZXN0aW5nKToKKyAgICAgICAgKFdLUGFnZUR1bXBBZENsaWNrQXR0cmlidXRpb24pOiBEZWxl
dGVkLgorICAgICAgICAoV0tQYWdlQ2xlYXJBZENsaWNrQXR0cmlidXRpb24pOiBEZWxldGVkLgor
ICAgICAgICAoV0tQYWdlU2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3Rp
bmcpOiBEZWxldGVkLgorICAgICAgICAoV0tQYWdlU2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVy
c2lvblVSTEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAoV0tQYWdlTWFya0FkQ2xpY2tB
dHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlQ2xl
YXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKToKKyAg
ICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hX
ZWJzaXRlRGF0YVJlbW92YWwpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S1dlYnNpdGVEYXRhU3RvcmVSZWYuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2Vic2l0ZURhdGFSZWNvcmQubW06CisgICAgICAgIChkYXRhVHlwZXNUb1N0cmluZyk6CisgICAg
ICAgICAgICBfV0tXZWJzaXRlRGF0YVR5cGVBZENsaWNrQXR0cmlidXRpb25zIHN0aWxsIHN1cHBv
cnRlZC4KKyAgICAgICAgICAgIF9XS1dlYnNpdGVEYXRhVHlwZVByaXZhdGVDbGlja01lYXN1cmVt
ZW50cyBhZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFS
ZWNvcmRJbnRlcm5hbC5oOgorICAgICAgICAoV2ViS2l0Ojp0b1dlYnNpdGVEYXRhVHlwZSk6Cisg
ICAgICAgICAgICBfV0tXZWJzaXRlRGF0YVR5cGVBZENsaWNrQXR0cmlidXRpb25zIHN0aWxsIHN1
cHBvcnRlZCBhbmQgbWFwcGVkIHRvCisgICAgICAgICAgICBXZWJzaXRlRGF0YVR5cGU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50cy4KKyAgICAgICAgKFdlYktpdDo6dG9XS1dlYnNpdGVEYXRhVHlw
ZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZFBy
aXZhdGUuaDoKKyAgICAgICAgICAgIF9XS1dlYnNpdGVEYXRhVHlwZUFkQ2xpY2tBdHRyaWJ1dGlv
bnMgc3RpbGwgc3VwcG9ydGVkLgorICAgICAgICAgICAgX1dLV2Vic2l0ZURhdGFUeXBlUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRzIGFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAgICAgX1dLV2Vic2l0ZURhdGFUeXBlQWRD
bGlja0F0dHJpYnV0aW9ucyBzdGlsbCBzdXBwb3J0ZWQuCisgICAgICAgICAgICBfV0tXZWJzaXRl
RGF0YVR5cGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHMgYWRkZWQuCisgICAgICAgICgrW1dLV2Vi
c2l0ZURhdGFTdG9yZSBfYWxsV2Vic2l0ZURhdGFUeXBlc0luY2x1ZGluZ1ByaXZhdGVdKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNz
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnNldERldmVsb3BlclByZWZlcmVu
Y2VPdmVycmlkZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3NQcm94eTo6c2V0QWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpjcmVhdGVOZXdQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkdW1w
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmcp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6Om1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkdW1wQWRDbGlja0F0dHJpYnV0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjbGVhckFkQ2xpY2tBdHRyaWJ1
dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0QWRDbGlj
a0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxG
b3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjptYXJr
QWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmU6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKToKKyAgICAgICAgKFdl
YktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0QWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3cpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JO
ZXdXaW5kb3dBY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKwogMjAyMC0xMS0xMSAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIERv
bid0IGxvb2sgaW4ga2V5Y2hhaW4gZm9yIFNlY0tleVJlZiBhZnRlciBkZXNlcmlhbGl6aW5nIFNl
Y0lkZW50aXR5UmVmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNDFkNTljMjJjYzI0
YjM3YzBjODRkN2U4NmQyOTI3NTE0OTQzODMzZC4uYTg2NGJhOTllMTE5YTlmZWRkYzJjOTg4OWVk
MWIzOGQ5MWRiODY5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDIwLTExLTExICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIFBDTTogQ2hhbmdlIGZyb20gYWQtY2xpY2stYXR0cmlidXRpb24gdG8gcHJpdmF0ZS1j
bGljay1tZWFzdXJlbWVudCAoaW4gYWxsIGZvcm1zLCBpbmNsdWRpbmcgLndlbGwta25vd24gVVJM
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzMw
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTA5NDI5Nj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgdG8gdGhlIG9mZmljaWFsIG5hbWUg
b2YgdGhlIHByb3Bvc2VkIHN0YW5kYXJkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQKKyAgICAg
ICAgaHR0cHM6Ly9naXRodWIuY29tL3ByaXZhY3ljZy9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50
LgorCisgICAgICAgIFRoaXMgaW5jbHVkZXMgYSBjaGFuZ2Ugb2YgdGhlIHJlcG9ydGluZyBVUkwg
ZnJvbSAKKyAgICAgICAgIi8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8iIHRvCisg
ICAgICAgICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8iLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoc3RyaW5n
Rm9yTWVzc2FnZVNvdXJjZSk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAo
LVtXZWJQcmVmZXJlbmNlcyBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWRdKToKKyAgICAg
ICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkOl0p
OgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBhZENsaWNrQXR0cmlidXRpb25FbmFibGVkXSk6
IERlbGV0ZWQuCisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldEFkQ2xpY2tBdHRyaWJ1dGlv
bkVuYWJsZWQ6XSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1By
aXZhdGUuaDoKKwogMjAyMC0xMS0xMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjk2NjAuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4
IDkwYTFkZDk2MDQ3MGE1NGVkM2IxNDY2Y2VjZmRlZmE4MzQ5NDU4MGYuLjAzOTRhNzM3MjdlZjBh
NzQzN2Q0NzYwMDU4NjQxZGU4NWJhMjAxYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCkBAIC0xOTEsNyArMTkxLDcgQEAgc3Rh
dGljIFByb3RvY29sOjpDb25zb2xlOjpDaGFubmVsU291cmNlIG1lc3NhZ2VTb3VyY2VWYWx1ZShN
ZXNzYWdlU291cmNlIHNvdXJjZSkKICAgICBjYXNlIE1lc3NhZ2VTb3VyY2U6Ok1lZGlhU291cmNl
OiByZXR1cm4gUHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxTb3VyY2U6Ok1lZGlhU291cmNlOwog
ICAgIGNhc2UgTWVzc2FnZVNvdXJjZTo6V2ViUlRDOiByZXR1cm4gUHJvdG9jb2w6OkNvbnNvbGU6
OkNoYW5uZWxTb3VyY2U6OldlYlJUQzsKICAgICBjYXNlIE1lc3NhZ2VTb3VyY2U6OklUUERlYnVn
OiByZXR1cm4gUHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxTb3VyY2U6OklUUERlYnVnOwotICAg
IGNhc2UgTWVzc2FnZVNvdXJjZTo6QWRDbGlja0F0dHJpYnV0aW9uOiByZXR1cm4gUHJvdG9jb2w6
OkNvbnNvbGU6OkNoYW5uZWxTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbjsKKyAgICBjYXNlIE1l
c3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OiByZXR1cm4gUHJvdG9jb2w6OkNv
bnNvbGU6OkNoYW5uZWxTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OwogICAgIGNhc2Ug
TWVzc2FnZVNvdXJjZTo6T3RoZXI6IHJldHVybiBQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbFNv
dXJjZTo6T3RoZXI7CiAgICAgfQogICAgIHJldHVybiBQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5l
bFNvdXJjZTo6T3RoZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3Byb3RvY29sL0NvbnNvbGUuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvcHJvdG9jb2wvQ29uc29sZS5qc29uCmluZGV4IGIzNmEwZWU2N2YwNjUzNTg5N2ExNzY1Yjgw
YTQxMWQ0NDIwNmUwYzMuLmU2YWVkNjE4MzFjZmQzYWZiYjE1YTU4OTVhYmU4YTQ3OGI5MWU2YTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ29u
c29sZS5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wv
Q29uc29sZS5qc29uCkBAIC0yMiw3ICsyMiw3IEBACiAgICAgICAgICAgICAgICAgIm1lZGlhc291
cmNlIiwKICAgICAgICAgICAgICAgICAid2VicnRjIiwKICAgICAgICAgICAgICAgICAiaXRwLWRl
YnVnIiwKLSAgICAgICAgICAgICAgICAiYWQtY2xpY2stYXR0cmlidXRpb24iLAorICAgICAgICAg
ICAgICAgICJwcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50IiwKICAgICAgICAgICAgICAgICAib3Ro
ZXIiCiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWxz
IGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgbG9nIG1lc3NhZ2VzLiIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpzb24KaW5kZXggODI1Mjc5MjY0
OTU0OWY3MDhhOWU4OGY4YzY0NTA2ZTM0ODM5ZGUxNS4uZGI1MjQ3OWE3MmQ0NTliZTIzZDRkOGQw
ODBjMGVkMTVlYTlmYzRjMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9QYWdlLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9QYWdlLmpzb24KQEAgLTksNyArOSw3IEBACiAgICAgICAgICAgICAidHlw
ZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkxpc3Qgb2Ygc2V0dGlu
Z3MgYWJsZSB0byBiZSBvdmVycmlkZGVuIGJ5IFdlYkluc3BlY3Rvci4iLAogICAgICAgICAgICAg
ImVudW0iOiBbCi0gICAgICAgICAgICAgICAgIkFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVu
YWJsZWQiLAorICAgICAgICAgICAgICAgICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9k
ZUVuYWJsZWQiLAogICAgICAgICAgICAgICAgICJBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCIs
CiAgICAgICAgICAgICAgICAgIklDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQiLAogICAgICAg
ICAgICAgICAgICJJVFBEZWJ1Z01vZGVFbmFibGVkIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAKaW5kZXggM2Q0MDJkZWYyNzc1ZDI4OWQ2NDQw
NmQ5OGI3ZGQwZDQ3ZWZlMTE4Zi4uOTljZDA1NzdmM2I3MjBhYjZmNDRjY2QyNDU3ZmEzOWI5MzQx
ZDg0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNs
aWVudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVu
dC5jcHAKQEAgLTEwNSw4ICsxMDUsOCBAQCBzdGF0aWMgdm9pZCBhcHBlbmRNZXNzYWdlUHJlZml4
KFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZQogICAgIGNh
c2UgTWVzc2FnZVNvdXJjZTo6SVRQRGVidWc6CiAgICAgICAgIHNvdXJjZVN0cmluZyA9ICJJVFBE
RUJVRyJfczsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBNZXNzYWdlU291cmNlOjpBZENsaWNr
QXR0cmlidXRpb246Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJBRENMSUNLQVRUUklCVVRJT04i
X3M7CisgICAgY2FzZSBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDoKKyAg
ICAgICAgc291cmNlU3RyaW5nID0gIlBSSVZBVEVDTElDS01FQVNVUkVNRU5UIl9zOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIE1lc3NhZ2VTb3VyY2U6Ok90aGVyOgogICAgICAgICBzb3VyY2VT
dHJpbmcgPSAiT1RIRVIiX3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db25zb2xlVHlwZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNv
bGVUeXBlcy5oCmluZGV4IGM1ZTQwODRiMmMzYjJhZDYyNjI4OGIzNzk2NWNhZWUzMmZmN2JiZmYu
LjExMWY1MjRhNmIxNTMwZjZmMTRlMWJjOWIxMmMwZDRhZTg1Mjc5NDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVUeXBlcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVUeXBlcy5oCkBAIC00NCw3ICs0NCw3IEBAIGVu
dW0gY2xhc3MgTWVzc2FnZVNvdXJjZSA6IHVpbnQ4X3QgewogICAgIE1lZGlhU291cmNlLAogICAg
IFdlYlJUQywKICAgICBJVFBEZWJ1ZywKLSAgICBBZENsaWNrQXR0cmlidXRpb24sCisgICAgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQsCiAgICAgT3RoZXIsCiB9OwogCkBAIC05NCw3ICs5NCw3IEBA
IHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8SlNDOjpNZXNzYWdlU291cmNlPiB7CiAgICAg
ICAgIEpTQzo6TWVzc2FnZVNvdXJjZTo6TWVkaWFTb3VyY2UsCiAgICAgICAgIEpTQzo6TWVzc2Fn
ZVNvdXJjZTo6V2ViUlRDLAogICAgICAgICBKU0M6Ok1lc3NhZ2VTb3VyY2U6OklUUERlYnVnLAot
ICAgICAgICBKU0M6Ok1lc3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbiwKKyAgICAgICAg
SlNDOjpNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwKICAgICAgICAgSlND
OjpNZXNzYWdlU291cmNlOjpPdGhlcgogICAgID47CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9T
b3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwu
eWFtbAppbmRleCBiMDE2YWM5ZjczMmIxMjY4OGY5YTg1MjNlMDBmNGFmMTNiYmE1YzZiLi4yNDhh
Mjc1ZGZiNzY3YjA4YjgxMjYyMzc1NjdiM2UxMjU3ZGVkZDk5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAor
KysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbApAQCAtMzcsMjkgKzM3LDYgQEAgQWNjZXNzaWJpbGl0eU9iamVjdE1vZGVsRW5h
YmxlZDoKICAgICBXZWJLaXQ6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCi1BZENsaWNrQXR0cmli
dXRpb25EZWJ1Z01vZGVFbmFibGVkOgotICB0eXBlOiBib29sCi0gIGh1bWFuUmVhZGFibGVOYW1l
OiAiQWQgQ2xpY2sgQXR0cmlidXRpb24gRGVidWcgTW9kZSIKLSAgaHVtYW5SZWFkYWJsZURlc2Ny
aXB0aW9uOiAiRW5hYmxlIEFkIENsaWNrIEF0dHJpYnV0aW9uIERlYnVnIE1vZGUiCi0gIHdlYmNv
cmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCi0gIGRlZmF1bHRWYWx1ZToKLSAgICBX
ZWJLaXRMZWdhY3k6Ci0gICAgICBkZWZhdWx0OiBmYWxzZQotICAgIFdlYktpdDoKLSAgICAgIGRl
ZmF1bHQ6IGZhbHNlCi0KLUFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ6Ci0gIHR5cGU6IGJvb2wK
LSAgaHVtYW5SZWFkYWJsZU5hbWU6ICJBZCBDbGljayBBdHRyaWJ1dGlvbiIKLSAgaHVtYW5SZWFk
YWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIEFkIENsaWNrIEF0dHJpYnV0aW9uIGZvciBDcm9zcy1T
aXRlIExpbmsgTmF2aWdhdGlvbnMiCi0gIGRlZmF1bHRWYWx1ZToKLSAgICBXZWJLaXRMZWdhY3k6
Ci0gICAgICBkZWZhdWx0OiBmYWxzZQotICAgIFdlYktpdDoKLSAgICAgIGRlZmF1bHQ6IGZhbHNl
Ci0gICAgV2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0KIEFzcGVjdFJhdGlvRW5hYmxl
ZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkNTUyBBc3BlY3QgUmF0aW8i
CkBAIC02MzgsNiArNjE1LDI5IEBAIFBlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9uRW5hYmxlZDoK
ICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKIAorUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnREZWJ1Z01vZGVFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1l
OiAiUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudCBEZWJ1ZyBNb2RlIgorICBodW1hblJlYWRhYmxl
RGVzY3JpcHRpb246ICJFbmFibGUgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudCBEZWJ1ZyBNb2Rl
IgorICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcworICBkZWZhdWx0VmFs
dWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXQ6
CisgICAgICBkZWZhdWx0OiBmYWxzZQorCitQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQ6
CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJQcml2YXRlIENsaWNrIE1lYXN1
cmVtZW50IgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgUHJpdmF0ZSBDbGlj
ayBNZWFzdXJlbWVudCBmb3IgQ3Jvc3MtU2l0ZSBMaW5rIE5hdmlnYXRpb25zIgorICBkZWZhdWx0
VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJL
aXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBm
YWxzZQorCiBQcm9jZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbkVuYWJsZWQ6CiAgIHR5cGU6
IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJTd2FwIFByb2Nlc3NlcyBvbiBDcm9zcy1TaXRl
IE5hdmlnYXRpb24iCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBmMWNlMDA2ZmIyZmU1NjFiNDY5Njlm
YTEzYWZmYjUxZjdkYTM3NzQ5Li42NmMwZWI1ZTA0Y2ZhNGU3NWQxN2FjOWRhMWY4MmRkZjk0YzQy
YzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTczMiw3ICs3MzIsNiBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgbGF5b3V0L2ludGVncmF0aW9uL0xheW91dElu
dGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmgKICAgICBsYXlvdXQvbGF5b3V0dHJlZS9M
YXlvdXRCb3guaAogCi0gICAgbG9hZGVyL0FkQ2xpY2tBdHRyaWJ1dGlvbi5oCiAgICAgbG9hZGVy
L0NhbnZhc0FjdGl2aXR5UmVjb3JkLmgKICAgICBsb2FkZXIvQ29udGVudEZpbHRlckNsaWVudC5o
CiAgICAgbG9hZGVyL0Nvb2tpZUphci5oCkBAIC03NjUsNiArNzY0LDcgQEAgc2V0KFdlYkNvcmVf
UFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlci5oCiAgICAgbG9hZGVyL1BpbmdMb2FkZXIuaAogICAgIGxvYWRlci9Qb2xpY3lDaGVj
a2VyLmgKKyAgICBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaAogICAgIGxvYWRlci9Q
cm9ncmVzc1RyYWNrZXIuaAogICAgIGxvYWRlci9Qcm9ncmVzc1RyYWNrZXJDbGllbnQuaAogICAg
IGxvYWRlci9SZXNvdXJjZUNyeXB0b2dyYXBoaWNEaWdlc3QuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAx
ZWFiZWI3ODZjYWY3OTQ2ZmY1M2YyNjIzZTczMDY2OTMyMWM2ZjY0Li41ZWYxYmY2YTY2NGZmMDFj
ZTkxNzk4ZWFjNTUzM2FlNWY5YWQwMjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTUxOCw3ICsxNTE4
LDcgQEAgbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0UXVpcmtz
LmNwcAogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdTdGF0ZS5jcHAKIGxh
eW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlkLmNwcAogbGF5b3V0L3RhYmxlZm9ybWF0dGlu
Zy9UYWJsZUxheW91dC5jcHAKLWxvYWRlci9BZENsaWNrQXR0cmlidXRpb24uY3BwCitsb2FkZXIv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCiBsb2FkZXIvQXBwbGljYXRpb25NYW5pZmVzdExv
YWRlci5jcHAKIGxvYWRlci9DYW52YXNBY3Rpdml0eVJlY29yZC5jcHAKIGxvYWRlci9Db250ZW50
RmlsdGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGIyMzZmNTVmMjYwZTAzNjJhMDI4YjljM2Q0NTk1ZjliNTBkYjAzM2Uu
LjE4MGQ0MGIxYTQ2NWQ0NTgwODViOTc3ZDZmMWI5MzVhNmExZmEyNjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwMDUsNyAr
MjAwNSw3IEBACiAJCTY5QTZDQkFEMUM2QkU0MkMwMEI4MzZFOSAvKiBBY2Nlc3NpYmlsaXR5U1ZH
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Njk3MTAxMDgxQzZCRTE1NTAwMThDN0YxIC8qIEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50LmggKi87
IH07CiAJCTZBMjJFODcwMUYxMDQxODYwMEY1NDZDMyAvKiBJbnNwZWN0b3JDYW52YXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZBMjJFODZGMUYxMDQx
ODYwMEY1NDZDMyAvKiBJbnNwZWN0b3JDYW52YXMuaCAqLzsgfTsKIAkJNkE3Mjc5OEIxRjE2QzI5
QzAwM0YzOUI4IC8qIEluc3BlY3RvclNoYWRlclByb2dyYW0uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZBNzI3OTg4MUYxNkMyOUIwMDNGMzlCOCAvKiBJ
bnNwZWN0b3JTaGFkZXJQcm9ncmFtLmggKi87IH07Ci0JCTZCMEEwN0YyMjFGQTRCNUMwMEQ1NzM5
MSAvKiBBZENsaWNrQXR0cmlidXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmli
dXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk2QjBBMDdGMjIxRkE0QjVDMDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCMEEwN0YwMjFG
QTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZCMUY0ODExMjI5OEEzN0UwMERF
OEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjFGNDgwRjIyOTg5RUM0MDBERThCODIg
LyogQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZCNEQ0MTJEMjM5ODNGODgwMDI0OTRDMiAv
KiBMb2dnZWRJblN0YXR1cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkI0RDQxMkIyMzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkI0RTg2MTMy
MjFCNzEzRjAwMjJGMzg5IC8qIFJlZ2lzdHJhYmxlRG9tYWluLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjRFODYxMjIyMUI3MTNGMDAyMkYzODkgLyog
UmVnaXN0cmFibGVEb21haW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtOTUyNyw4ICs5NTI3LDggQEAKIAkJNkEyMkU4NzIxRjEwNDJDNDAwRjU0
NkMzIC8qIEluc3BlY3RvckNhbnZhcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JD
YW52YXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QTcyNzk4ODFGMTZDMjlC
MDAzRjM5QjggLyogSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZBNzI3OTg5MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFkZXJQ
cm9ncmFtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3Rv
clNoYWRlclByb2dyYW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QjBBMDdG
MDIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFkQ2xpY2tBdHRyaWJ1dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QjBB
MDdGMTIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk2QjBBMDdGMTIxRkE0QjVDMDBENTczOTEgLyogUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjFGNDgwRjIyOTg5RUM0
MDBERThCODIgLyogQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZCNEQ0MTJCMjM5ODNGODgwMDI0OTRDMiAvKiBMb2dnZWRJblN0YXR1cy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMb2dnZWRJblN0YXR1cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2QjRENDEyQzIzOTgzRjg4MDAyNDk0QzIgLyogTG9nZ2VkSW5TdGF0dXMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTG9nZ2VkSW5TdGF0dXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjY5OTYsOCArMjY5OTYsNiBAQAogCQkJCTUxMjZFNkI2MEEyRTNBRUYwMDVD
MjlGQSAvKiBpY29uICovLAogCQkJCUExNUUzMUYwMUUwQ0IwNzUwMDRCMzcxQyAvKiBpb3MgKi8s
CiAJCQkJOTNBMUVBQTIwQTU2MzREODAwNjk2MEEwIC8qIG1hYyAqLywKLQkJCQk2QjBBMDdGMTIx
RkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmNwcCAqLywKLQkJCQk2QjBBMDdG
MDIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmggKi8sCiAJCQkJNjMxNTJE
MTgxRjk1MzFFRTAwN0E1RTRCIC8qIEFwcGxpY2F0aW9uTWFuaWZlc3RMb2FkZXIuY3BwICovLAog
CQkJCTYzMTUyRDE3MUY5NTMxRUUwMDdBNUU0QiAvKiBBcHBsaWNhdGlvbk1hbmlmZXN0TG9hZGVy
LmggKi8sCiAJCQkJRUZCNzI4N0IyMTI0QzczRDAwNUMyNTU4IC8qIENhbnZhc0FjdGl2aXR5UmVj
b3JkLmNwcCAqLywKQEAgLTI3MDc2LDYgKzI3MDc0LDggQEAKIAkJCQlEMEZGMkE1QzExRjhDNDVB
MDA3RTc0RTAgLyogUGluZ0xvYWRlci5oICovLAogCQkJCTk3MDU5OTc1MTA3RDk3NTIwMEE1MEE3
QyAvKiBQb2xpY3lDaGVja2VyLmNwcCAqLywKIAkJCQk5NzA1OTk3NjEwN0Q5NzUyMDBBNTBBN0Mg
LyogUG9saWN5Q2hlY2tlci5oICovLAorCQkJCTZCMEEwN0YxMjFGQTRCNUMwMEQ1NzM5MSAvKiBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgKi8sCisJCQkJNkIwQTA3RjAyMUZBNEI1QzAwRDU3
MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmggKi8sCiAJCQkJMUEyQTY4MjEwQjVCRURF
NzAwMDJBNDgwIC8qIFByb2dyZXNzVHJhY2tlci5jcHAgKi8sCiAJCQkJMUEyQTY4MjIwQjVCRURF
NzAwMDJBNDgwIC8qIFByb2dyZXNzVHJhY2tlci5oICovLAogCQkJCTFBQ0FERDc4MTg4MEQ5MUMw
MEQ4QjcxRCAvKiBQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCAqLywKQEAgLTMwNzIxLDcgKzMwNzIx
LDYgQEAKIAkJCQlFMUM0REU2OTBFQTc1QzFFMDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3MjRFRTU1MDFEQzgwRDdGMDBBOTFGRkIgLyogQWN0aXZpdHlT
dGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzI0RUU1NTExREM4MEQ4NDAwQTkxRkZCIC8qIEFj
dGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkIwQTA3RjIy
MUZBNEI1QzAwRDU3MzkxIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTE2NzdFMEUyMTNFMDJBMDAwQTA4QzM0IC8qIEFkZHJlc3NFcnJvcnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDRjdFNDkxMTM3Q0Q3QzcwMDFEREFFNyAvKiBBZGp1c3RWaWV3U2l6ZU9yTm90
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NEQwQzQwNjExMTVGMUVBMDAxOEFBMzQgLyogQWZmaW5l
VHJhbnNmb3JtLmggaW4gSGVhZGVycyAqLywKQEAgLTMzNzMyLDYgKzMzNzMxLDcgQEAKIAkJCQlB
MUFEQUY3RTIzNjBGRDNFMDA5Q0I3NzYgLyogUHJldmlld0NvbnZlcnRlclByb3ZpZGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlFNDYwNUZFQzIxNjY0ODA5MDBFNTMwNDYgLyogUHJld2FybUluZm9y
bWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNzFGRTZERjExMDkxQ0IzMDBEQUVGNzcgLyog
UHJpbnRDb250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQk2QjBBMDdGMjIxRkE0QjVDMDBENTcz
OTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjY0
NUQ1MUZFQ0RCQ0UwMEI1NERFRCAvKiBQcm9jZXNzSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThFQTdFQkMwQTE5NDVEMDAwQThFRjVGIC8qIFByb2Nlc3NpbmdJbnN0cnVjdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTQyMDUwMTcyMTQxOTAxQjAwNjZFRjNCIC8qIFByb2Nlc3NX
YXJtaW5nLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxl
bWVudC5jcHAKaW5kZXggOWNjOGI2NDgyYTcyNmVmZWYyMDhjZTI5OWFjZDIxM2I2ZmQzNGY2Ni4u
OGU4MDUzMjNjOTcyZjg3NGFkODI2NGVhMzVlNDExZjQ2ZjRjMDFiYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTI0LDcgKzI0LDYgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJIVE1MQW5jaG9yRWxlbWVudC5oIgogCi0jaW5jbHVkZSAi
QWRDbGlja0F0dHJpYnV0aW9uLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hy
b21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCkBAIC00NCw2ICs0Myw3IEBA
CiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBpbmdMb2FkZXIuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC5oIgogI2luY2x1ZGUgIlJlZ2lzdHJhYmxlRG9tYWluLmgiCiAjaW5jbHVkZSAiUmVuZGVy
SW1hZ2UuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKQEAgLTQwNCwxNSArNDA0LDE1
IEBAIGJvb2wgSFRNTEFuY2hvckVsZW1lbnQ6OmlzU3lzdGVtUHJldmlld0xpbmsoKQogfQogI2Vu
ZGlmCiAKLU9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4gSFRNTEFuY2hvckVsZW1lbnQ6OnBh
cnNlQWRDbGlja0F0dHJpYnV0aW9uKCkgY29uc3QKK09wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1
cmVtZW50PiBIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgp
IGNvbnN0CiB7Ci0gICAgdXNpbmcgQ2FtcGFpZ24gPSBBZENsaWNrQXR0cmlidXRpb246OkNhbXBh
aWduOwotICAgIHVzaW5nIFNvdXJjZSA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlOwotICAg
IHVzaW5nIERlc3RpbmF0aW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbjsKKyAg
ICB1c2luZyBDYW1wYWlnbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbjsKKyAg
ICB1c2luZyBTb3VyY2UgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlOworICAgIHVz
aW5nIERlc3RpbmF0aW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOwog
CiAgICAgYXV0byogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpOwogICAgIGlmICghcGFnZSB8fCBw
YWdlLT5zZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpCi0gICAgICAgIHx8ICFkb2N1bWVudCgpLnNl
dHRpbmdzKCkuYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZCgpCisgICAgICAgIHx8ICFkb2N1bWVu
dCgpLnNldHRpbmdzKCkucHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkKCkKICAgICAgICAg
fHwgIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIApAQCAtNDIzLDI0ICs0MjMsMjQgQEAgT3B0aW9uYWw8
QWRDbGlja0F0dHJpYnV0aW9uPiBIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VBZENsaWNrQXR0cmli
dXRpb24oKSBjb25zdAogICAgIGF1dG8gYWREZXN0aW5hdGlvbkF0dHIgPSBhdHRyaWJ1dGVXaXRo
b3V0U3luY2hyb25pemF0aW9uKGFkZGVzdGluYXRpb25BdHRyKTsKICAgICAKICAgICBpZiAoYWRD
YW1wYWlnbklEQXR0ci5pc0VtcHR5KCkgfHwgYWREZXN0aW5hdGlvbkF0dHIuaXNFbXB0eSgpKSB7
Ci0gICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3Ro
ZXIsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkJvdGggYWRjYW1wYWlnbmlkIGFuZCBhZGRlc3Rp
bmF0aW9uIG5lZWQgdG8gYmUgc2V0IGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbiB0byB3b3JrLiJf
cyk7CisgICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6
T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkJvdGggYWRjYW1wYWlnbmlkIGFuZCBhZGRl
c3RpbmF0aW9uIG5lZWQgdG8gYmUgc2V0IGZvciBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50IHRv
IHdvcmsuIl9zKTsKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9CiAKICAgICBS
ZWZQdHI8RnJhbWU+IGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwogICAgIGlmICghZnJhbWUg
fHwgIWZyYW1lLT5pc01haW5GcmFtZSgpKSB7Ci0gICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkFk
IENsaWNrIEF0dHJpYnV0aW9uIGlzIG9ubHkgc3VwcG9ydGVkIGluIHRoZSBtYWluIGZyYW1lLiJf
cyk7CisgICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6
T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIlByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQg
aXMgb25seSBzdXBwb3J0ZWQgaW4gdGhlIG1haW4gZnJhbWUuIl9zKTsKICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKICAgICB9CiAgICAgCiAgICAgYXV0byBhZENhbXBhaWduSUQgPSBwYXJz
ZUhUTUxOb25OZWdhdGl2ZUludGVnZXIoYWRDYW1wYWlnbklEQXR0cik7CiAgICAgaWYgKCFhZENh
bXBhaWduSUQpIHsKLSAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiYWRjYW1wYWlnbmlkIGNhbiBu
b3QgYmUgY29udmVydGVkIHRvIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgd2hpY2ggaXMgcmVxdWly
ZWQgZm9yIEFkIENsaWNrIEF0dHJpYnV0aW9uLiJfcyk7CisgICAgICAgIGRvY3VtZW50KCkuYWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2Fybmlu
ZywgImFkY2FtcGFpZ25pZCBjYW4gbm90IGJlIGNvbnZlcnRlZCB0byBhIG5vbi1uZWdhdGl2ZSBp
bnRlZ2VyIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50LiJf
cyk7CiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgfQogICAgIAotICAgIGlmIChh
ZENhbXBhaWduSUQudmFsdWUoKSA+IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSkgewot
ICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVy
LCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIG1ha2VTdHJpbmcoImFkY2FtcGFpZ25pZCBtdXN0IGhh
dmUgYSBub24tbmVnYXRpdmUgdmFsdWUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICIsIEFkQ2xpY2tB
dHRyaWJ1dGlvbjo6TWF4RW50cm9weSwgIiBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24uIikpOwor
ICAgIGlmIChhZENhbXBhaWduSUQudmFsdWUoKSA+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpN
YXhFbnRyb3B5KSB7CisgICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWFrZVN0cmluZygiYWRjYW1w
YWlnbmlkIG11c3QgaGF2ZSBhIG5vbi1uZWdhdGl2ZSB2YWx1ZSBsZXNzIHRoYW4gb3IgZXF1YWwg
dG8gIiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHksICIgZm9yIFByaXZhdGUg
Q2xpY2sgTWVhc3VyZW1lbnQuIikpOwogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAg
IH0KIApAQCAtNDU2LDcgKzQ1Niw3IEBAIE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4gSFRN
TEFuY2hvckVsZW1lbnQ6OnBhcnNlQWRDbGlja0F0dHJpYnV0aW9uKCkgY29uc3QKICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9CiAKLSAgICByZXR1cm4gQWRDbGlja0F0dHJpYnV0
aW9uIHsgQ2FtcGFpZ24oYWRDYW1wYWlnbklELnZhbHVlKCkpLCBTb3VyY2UoZG9jdW1lbnRSZWdp
c3RyYWJsZURvbWFpbiksIERlc3RpbmF0aW9uKGFkRGVzdGluYXRpb25VUkwpIH07CisgICAgcmV0
dXJuIFByaXZhdGVDbGlja01lYXN1cmVtZW50IHsgQ2FtcGFpZ24oYWRDYW1wYWlnbklELnZhbHVl
KCkpLCBTb3VyY2UoZG9jdW1lbnRSZWdpc3RyYWJsZURvbWFpbiksIERlc3RpbmF0aW9uKGFkRGVz
dGluYXRpb25VUkwpIH07CiB9CiAKIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNr
KEV2ZW50JiBldmVudCkKQEAgLTUxOCwxMiArNTE4LDEyIEBAIHZvaWQgSFRNTEFuY2hvckVsZW1l
bnQ6OmhhbmRsZUNsaWNrKEV2ZW50JiBldmVudCkKICAgICBlbHNlIGlmIChoYXNSZWwoUmVsYXRp
b246Ok5vT3BlbmVyKSB8fCAoZG9jdW1lbnQoKS5zZXR0aW5ncygpLmJsYW5rQW5jaG9yVGFyZ2V0
SW1wbGllc05vT3BlbmVyRW5hYmxlZCgpICYmIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoZWZmZWN0
aXZlVGFyZ2V0LCAiX2JsYW5rIikpKQogICAgICAgICBuZXdGcmFtZU9wZW5lclBvbGljeSA9IE5l
d0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzczsKIAotICAgIGF1dG8gYWRDbGlja0F0dHJpYnV0
aW9uID0gcGFyc2VBZENsaWNrQXR0cmlidXRpb24oKTsKLSAgICAvLyBBIG1hdGNoaW5nIGNvbnZl
cnNpb24gZXZlbnQgbmVlZHMgdG8gaGFwcGVuIGJlZm9yZSB0aGUgY29tcGxldGUgYWQgY2xpY2sg
YXR0cmlidXRpb25VUkwgY2FuIGJlCi0gICAgLy8gY3JlYXRlZC4gVGh1cywgaXQgc2hvdWxkIGJl
IGVtcHR5IGZvciBub3cuCi0gICAgQVNTRVJUKCFhZENsaWNrQXR0cmlidXRpb24gfHwgYWRDbGlj
a0F0dHJpYnV0aW9uLT5yZXBvcnRVUkwoKS5pc051bGwoKSk7CisgICAgYXV0byBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCA9IHBhcnNlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAvLyBB
IG1hdGNoaW5nIGNvbnZlcnNpb24gZXZlbnQgbmVlZHMgdG8gaGFwcGVuIGJlZm9yZSB0aGUgY29t
cGxldGUgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudAorICAgIC8vIFVSTCBjYW4gYmUgY3JlYXRl
ZC4gVGh1cywgaXQgc2hvdWxkIGJlIGVtcHR5IGZvciBub3cuCisgICAgQVNTRVJUKCFwcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCB8fCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+cmVwb3J0VVJMKCku
aXNOdWxsKCkpOwogICAgIAotICAgIGZyYW1lLT5sb2FkZXIoKS5jaGFuZ2VMb2NhdGlvbihjb21w
bGV0ZWRVUkwsIGVmZmVjdGl2ZVRhcmdldCwgJmV2ZW50LCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tC
YWNrRm9yd2FyZExpc3Q6Ok5vLCByZWZlcnJlclBvbGljeSwgZG9jdW1lbnQoKS5zaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKSwgbmV3RnJhbWVPcGVuZXJQb2xpY3ksIGRv
d25sb2FkQXR0cmlidXRlLCBzeXN0ZW1QcmV2aWV3SW5mbywgV1RGTW92ZShhZENsaWNrQXR0cmli
dXRpb24pKTsKKyAgICBmcmFtZS0+bG9hZGVyKCkuY2hhbmdlTG9jYXRpb24oY29tcGxldGVkVVJM
LCBlZmZlY3RpdmVUYXJnZXQsICZldmVudCwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0Zvcndh
cmRMaXN0OjpObywgcmVmZXJyZXJQb2xpY3ksIGRvY3VtZW50KCkuc2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeVRvUHJvcGFnYXRlKCksIG5ld0ZyYW1lT3BlbmVyUG9saWN5LCBkb3dubG9hZEF0
dHJpYnV0ZSwgc3lzdGVtUHJldmlld0luZm8sIFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQpKTsKIAogICAgIHNlbmRQaW5ncyhjb21wbGV0ZWRVUkwpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQW5jaG9yRWxlbWVudC5oCmluZGV4IDA0MTEwYzYyZDU3ZGE0ODZmY2M1NDNjYTk5MmNl
ZmU0ZGQyZDI4OGIuLjY3ZGYwMWUwYTg1ZmU5NWViNDBjMmQ4MGU5ZDFmMzg0Y2Y1NTcxYjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgKQEAgLTMxLDcgKzMxLDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBZENsaWNrQXR0cmlidXRpb247CitjbGFz
cyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKIGNsYXNzIERPTVRva2VuTGlzdDsKIAogLy8gTGlu
ayByZWxhdGlvbiBiaXRtYXNrIHZhbHVlcy4KQEAgLTEwMCw3ICsxMDAsNyBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCBzZW5kUGluZ3MoY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCk7CiAKLSAgICBP
cHRpb25hbDxBZENsaWNrQXR0cmlidXRpb24+IHBhcnNlQWRDbGlja0F0dHJpYnV0aW9uKCkgY29u
c3Q7CisgICAgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IHBhcnNlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoKSBjb25zdDsKIAogICAgIHZvaWQgaGFuZGxlQ2xpY2soRXZlbnQmKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAppbmRleCBjYWFmYjMx
NGY4NzFmOWZhZWNkZjVlNjJmNDFmY2UxNzRmNzE1NDEyLi5iZDFkZDY2ODMzY2QyMDQxOGViZGFk
MTAwYjdhODI0Nzk2MWQ2ZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
bmNob3JFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVt
ZW50LmlkbApAQCAtMjEsOCArMjEsOCBAQAogWwogICAgIEV4cG9zZWQ9V2luZG93CiBdIGludGVy
ZmFjZSBIVE1MQW5jaG9yRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICBbQ0VSZWFjdGlvbnM9
Tm90TmVlZGVkLCBFbmFibGVkQnlTZXR0aW5nPUFkQ2xpY2tBdHRyaWJ1dGlvbiwgUmVmbGVjdF0g
YXR0cmlidXRlIERPTVN0cmluZyBhZGNhbXBhaWduaWQ7Ci0gICAgW0NFUmVhY3Rpb25zPU5vdE5l
ZWRlZCwgRW5hYmxlZEJ5U2V0dGluZz1BZENsaWNrQXR0cmlidXRpb24sIFJlZmxlY3RdIGF0dHJp
YnV0ZSBET01TdHJpbmcgYWRkZXN0aW5hdGlvbjsKKyAgICBbQ0VSZWFjdGlvbnM9Tm90TmVlZGVk
LCBFbmFibGVkQnlTZXR0aW5nPVByaXZhdGVDbGlja01lYXN1cmVtZW50LCBSZWZsZWN0XSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGFkY2FtcGFpZ25pZDsKKyAgICBbQ0VSZWFjdGlvbnM9Tm90TmVlZGVk
LCBFbmFibGVkQnlTZXR0aW5nPVByaXZhdGVDbGlja01lYXN1cmVtZW50LCBSZWZsZWN0XSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGFkZGVzdGluYXRpb247CiAgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRl
ZCwgUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBjaGFyc2V0OwogICAgIFtDRVJlYWN0aW9u
cz1Ob3ROZWVkZWQsIFJlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgY29vcmRzOwogICAgIFtD
RVJlYWN0aW9ucz1Ob3ROZWVkZWQsIENvbmRpdGlvbmFsPURPV05MT0FEX0FUVFJJQlVURSwgRW5h
YmxlZEJ5U2V0dGluZz1Eb3dubG9hZEF0dHJpYnV0ZSwgUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0
cmluZyBkb3dubG9hZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQu
aAppbmRleCA5N2E0N2Q4NTM0Y2JkN2UzMTFkZTMzNDM3ZjUxYzRkNDRmYzEyNWRiLi5hNjcwZTMy
OGE1YmZjODgwYmQ1NDVkODc5N2E2MmE2MDJiMTljYzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNsaWVudC5oCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgdGltZWxpbmVSZWNvcmRpbmdDaGFuZ2VkKGJvb2wpIHsgfQogCiAgICAgZW51
bSBjbGFzcyBEZXZlbG9wZXJQcmVmZXJlbmNlIHsKLSAgICAgICAgQWRDbGlja0F0dHJpYnV0aW9u
RGVidWdNb2RlRW5hYmxlZCwKKyAgICAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01v
ZGVFbmFibGVkLAogICAgICAgICBJVFBEZWJ1Z01vZGVFbmFibGVkLAogICAgICAgICBNb2NrQ2Fw
dHVyZURldmljZXNFbmFibGVkLAogICAgIH07CkBAIC04Myw3ICs4Myw3IEBAIG5hbWVzcGFjZSBX
VEYgewogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpJbnNwZWN0b3JDbGll
bnQ6OkRldmVsb3BlclByZWZlcmVuY2U+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVz
PAogICAgICAgICBXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQ6OkRldmVsb3BlclByZWZlcmVuY2Us
Ci0gICAgICAgIFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5jZTo6
QWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZCwKKyAgICAgICAgV2ViQ29yZTo6SW5z
cGVjdG9yQ2xpZW50OjpEZXZlbG9wZXJQcmVmZXJlbmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dERlYnVnTW9kZUVuYWJsZWQsCiAgICAgICAgIFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6RGV2
ZWxvcGVyUHJlZmVyZW5jZTo6SVRQRGVidWdNb2RlRW5hYmxlZCwKICAgICAgICAgV2ViQ29yZTo6
SW5zcGVjdG9yQ2xpZW50OjpEZXZlbG9wZXJQcmVmZXJlbmNlOjpNb2NrQ2FwdHVyZURldmljZXNF
bmFibGVkCiAgICAgPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCBhNjkzYjhkODUxYTRmMDJjZjgyMTI5YjI4
NDMxODg5MGRjYTc0MjFhLi5hZjBhMDUxYmRhZTUyYjJkYWY3MGIxZmVlNzZlZWUwODY2YjdiMDQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBh
Z2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JQYWdlQWdlbnQuY3BwCkBAIC0zODIsNyArMzgyLDcgQEAgUHJvdG9jb2w6OkVycm9yU3RyaW5n
T3I8dm9pZD4gSW5zcGVjdG9yUGFnZUFnZW50OjpkaXNhYmxlKCkKICAgICBpbnNwZWN0ZWRQYWdl
U2V0dGluZ3Muc2V0V2ViUlRDRW5jcnlwdGlvbkVuYWJsZWRJbnNwZWN0b3JPdmVycmlkZShXVEY6
Om51bGxvcHQpOwogICAgIGluc3BlY3RlZFBhZ2VTZXR0aW5ncy5zZXRXZWJTZWN1cml0eUVuYWJs
ZWRJbnNwZWN0b3JPdmVycmlkZShXVEY6Om51bGxvcHQpOwogCi0gICAgbV9jbGllbnQtPnNldERl
dmVsb3BlclByZWZlcmVuY2VPdmVycmlkZShJbnNwZWN0b3JDbGllbnQ6OkRldmVsb3BlclByZWZl
cmVuY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQsIFdURjo6bnVsbG9wdCk7
CisgICAgbV9jbGllbnQtPnNldERldmVsb3BlclByZWZlcmVuY2VPdmVycmlkZShJbnNwZWN0b3JD
bGllbnQ6OkRldmVsb3BlclByZWZlcmVuY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdN
b2RlRW5hYmxlZCwgV1RGOjpudWxsb3B0KTsKICAgICBtX2NsaWVudC0+c2V0RGV2ZWxvcGVyUHJl
ZmVyZW5jZU92ZXJyaWRlKEluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5jZTo6SVRQ
RGVidWdNb2RlRW5hYmxlZCwgV1RGOjpudWxsb3B0KTsKICAgICBtX2NsaWVudC0+c2V0RGV2ZWxv
cGVyUHJlZmVyZW5jZU92ZXJyaWRlKEluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5j
ZTo6TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCwgV1RGOjpudWxsb3B0KTsKIApAQCAtNDMxLDgg
KzQzMSw4IEBAIFByb3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IEluc3BlY3RvclBhZ2VBZ2Vu
dDo6b3ZlcnJpZGVTZXR0aW5nKFByb3RvY29sOjpQYWdlCiAgICAgYXV0byYgaW5zcGVjdGVkUGFn
ZVNldHRpbmdzID0gbV9pbnNwZWN0ZWRQYWdlLnNldHRpbmdzKCk7CiAKICAgICBzd2l0Y2ggKHNl
dHRpbmcpIHsKLSAgICBjYXNlIFByb3RvY29sOjpQYWdlOjpTZXR0aW5nOjpBZENsaWNrQXR0cmli
dXRpb25EZWJ1Z01vZGVFbmFibGVkOgotICAgICAgICBtX2NsaWVudC0+c2V0RGV2ZWxvcGVyUHJl
ZmVyZW5jZU92ZXJyaWRlKEluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5jZTo6QWRD
bGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZCwgdmFsdWUpOworICAgIGNhc2UgUHJvdG9j
b2w6OlBhZ2U6OlNldHRpbmc6OlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxl
ZDoKKyAgICAgICAgbV9jbGllbnQtPnNldERldmVsb3BlclByZWZlcmVuY2VPdmVycmlkZShJbnNw
ZWN0b3JDbGllbnQ6OkRldmVsb3BlclByZWZlcmVuY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
RGVidWdNb2RlRW5hYmxlZCwgdmFsdWUpOwogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgY2Fz
ZSBQcm90b2NvbDo6UGFnZTo6U2V0dGluZzo6QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQ6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNv
bGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNv
bnNvbGVBZ2VudC5jcHAKaW5kZXggZDQ5MDFmMzViMDg1MzIwZDRjMTRhZWJhMWRiNmIyN2JjNmIy
ODYxZi4uYjgyZDZlZjM4NmJmNjcwY2FmNDQ3NTEzM2ZlOGNkMDE2YjdkNzEwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29uc29s
ZUFnZW50LmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIFByb3RvY29sOjpFcnJvclN0cmluZ09yPFJl
ZjxKU09OOjpBcnJheU9mPFByb3RvY29sOjpDb25zb2xlOjpDaGFubmVsPj4+IFBhZ2VDb25zCiAg
ICAgYWRkTG9nQ2hhbm5lbChQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbFNvdXJjZTo6TWVkaWFT
b3VyY2UpOwogICAgIGFkZExvZ0NoYW5uZWwoUHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxTb3Vy
Y2U6OldlYlJUQyk7CiAgICAgYWRkTG9nQ2hhbm5lbChQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5l
bFNvdXJjZTo6SVRQRGVidWcpOwotICAgIGFkZExvZ0NoYW5uZWwoUHJvdG9jb2w6OkNvbnNvbGU6
OkNoYW5uZWxTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbik7CisgICAgYWRkTG9nQ2hhbm5lbChQ
cm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbFNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQp
OwogICAgIGFkZExvZ0NoYW5uZWwoUHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxTb3VyY2U6Ok90
aGVyKTsKIAogICAgIHJldHVybiBjaGFubmVsczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9BZENsaWNrQXR0cmlidXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Fk
Q2xpY2tBdHRyaWJ1dGlvbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyMzEx
YmU4ZDk5YTIzMWI5YTQ2NTUxYjBlNDkzYTA1YWU4MTg0ZDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0FkQ2xpY2tB
dHRyaWJ1dGlvbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyMjkgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJBZENsaWNrQXR0cmlidXRpb24uaCIK
LQotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgiCi0jaW5jbHVkZSA8d3RmL0V4cGVjdGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JhbmRvbU51bWJl
ci5oPgotI2luY2x1ZGUgPHd0Zi9VUkwuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLXN0YXRpYyBjb25zdCBjaGFyIGFkQ2xpY2tBdHRyaWJ1dGlvblBhdGhQcmVmaXhb
XSA9ICIvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vIjsKLWNvbnN0IHNpemVfdCBh
ZENsaWNrQ29udmVyc2lvbkRhdGFQYXRoU2VnbWVudFNpemUgPSAyOwotY29uc3Qgc2l6ZV90IGFk
Q2xpY2tQcmlvcml0eVBhdGhTZWdtZW50U2l6ZSA9IDI7Ci1jb25zdCBTZWNvbmRzIG1heEFnZSB7
IDI0X2ggKiA3IH07Ci0KLWJvb2wgQWRDbGlja0F0dHJpYnV0aW9uOjppc1ZhbGlkKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbV9jb252ZXJzaW9uCi0gICAgICAgICYmIG1fY29udmVyc2lvbi52YWx1
ZSgpLmlzVmFsaWQoKQotICAgICAgICAmJiBtX2NhbXBhaWduLmlzVmFsaWQoKQotICAgICAgICAm
JiAhbV9zb3VyY2UucmVnaXN0cmFibGVEb21haW4uaXNFbXB0eSgpCi0gICAgICAgICYmICFtX2Rl
c3RpbmF0aW9uLnJlZ2lzdHJhYmxlRG9tYWluLmlzRW1wdHkoKQotICAgICAgICAmJiBtX2Vhcmxp
ZXN0VGltZVRvU2VuZDsKLX0KLQotRXhwZWN0ZWQ8QWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJz
aW9uLCBTdHJpbmc+IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChj
b25zdCBVUkwmIHJlZGlyZWN0VVJMKQotewotICAgIGlmICghcmVkaXJlY3RVUkwucHJvdG9jb2xJ
cygiaHR0cHMiKSB8fCByZWRpcmVjdFVSTC5oYXNDcmVkZW50aWFscygpIHx8IHJlZGlyZWN0VVJM
Lmhhc1F1ZXJ5KCkgfHwgcmVkaXJlY3RVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpIHsKLSAg
ICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lORk8oQWRDbGlja0F0dHJpYnV0aW9uLCAiQ29udmVyc2lvbiB3YXMgbm90IGFj
Y2VwdGVkIGJlY2F1c2UgdGhlIFVSTCdzIHByb3RvY29sIGlzIG5vdCBIVFRQUyBvciB0aGUgVVJM
IGNvbnRhaW5zIG9uZSBvciBtb3JlIG9mIHVzZXJuYW1lLCBwYXNzd29yZCwgcXVlcnkgc3RyaW5n
LCBhbmQgZnJhZ21lbnQuIik7Ci0gICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIltB
ZCBDbGljayBBdHRyaWJ1dGlvbl0gQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2Ug
dGhlIFVSTCdzIHByb3RvY29sIGlzIG5vdCBIVFRQUyBvciB0aGUgVVJMIGNvbnRhaW5zIG9uZSBv
ciBtb3JlIG9mIHVzZXJuYW1lLCBwYXNzd29yZCwgcXVlcnkgc3RyaW5nLCBhbmQgZnJhZ21lbnQu
Il9zKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmlu
ZygpKTsKLSAgICB9Ci0KLSAgICBhdXRvIHBhdGggPSBTdHJpbmdWaWV3KHJlZGlyZWN0VVJMLnN0
cmluZygpKS5zdWJzdHJpbmcocmVkaXJlY3RVUkwucGF0aFN0YXJ0KCksIHJlZGlyZWN0VVJMLnBh
dGhFbmQoKSAtIHJlZGlyZWN0VVJMLnBhdGhTdGFydCgpKTsKLSAgICBpZiAocGF0aC5pc0VtcHR5
KCkgfHwgIXBhdGguc3RhcnRzV2l0aChhZENsaWNrQXR0cmlidXRpb25QYXRoUHJlZml4KSkgewot
ICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSU5GTyhBZENsaWNrQXR0cmlidXRpb24sICJDb252ZXJzaW9uIHdhcyBub3Qg
YWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMIHBhdGggZGlkIG5vdCBzdGFydCB3aXRoICUiIFBVQkxJ
Q19MT0dfU1RSSU5HICIuIiwgYWRDbGlja0F0dHJpYnV0aW9uUGF0aFByZWZpeCk7Ci0gICAgICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiW0FkIENsaWNrIEF0dHJpYnV0
aW9uXSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMIHBhdGggZGlk
IG5vdCBzdGFydCB3aXRoICJfcywgYWRDbGlja0F0dHJpYnV0aW9uUGF0aFByZWZpeCwgIi4iX3Mp
KTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygp
KTsKLSAgICB9Ci0KLSAgICBhdXRvIHByZWZpeExlbmd0aCA9IHNpemVvZihhZENsaWNrQXR0cmli
dXRpb25QYXRoUHJlZml4KSAtIDE7Ci0gICAgaWYgKHBhdGgubGVuZ3RoKCkgPT0gcHJlZml4TGVu
Z3RoICsgYWRDbGlja0NvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRTaXplKSB7Ci0gICAgICAgIGF1
dG8gY29udmVyc2lvbkRhdGFVSW50NjQgPSBwYXRoLnN1YnN0cmluZyhwcmVmaXhMZW5ndGgsIGFk
Q2xpY2tDb252ZXJzaW9uRGF0YVBhdGhTZWdtZW50U2l6ZSkudG9VSW50NjRTdHJpY3QoKTsKLSAg
ICAgICAgaWYgKCFjb252ZXJzaW9uRGF0YVVJbnQ2NCB8fCAqY29udmVyc2lvbkRhdGFVSW50NjQg
PiBNYXhFbnRyb3B5KSB7Ci0gICAgICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxl
ZCgpKSkgewotICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oQWRDbGlja0F0dHJpYnV0
aW9uLCAiQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIGNvbnZlcnNpb24g
ZGF0YSBjb3VsZCBub3QgYmUgcGFyc2VkIG9yIHdhcyBoaWdoZXIgdGhhbiB0aGUgYWxsb3dlZCBt
YXhpbXVtIG9mICV7cHVibGljfXUuIiwgTWF4RW50cm9weSk7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gQ29u
dmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIGNvbnZlcnNpb24gZGF0YSBjb3Vs
ZCBub3QgYmUgcGFyc2VkIG9yIHdhcyBoaWdoZXIgdGhhbiB0aGUgYWxsb3dlZCBtYXhpbXVtIG9m
ICJfcywgTWF4RW50cm9weSwgIi4iX3MpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChudWxsU3RyaW5nKCkpOwotICAgICAgICB9Ci0KLSAgICAgICAg
cmV0dXJuIENvbnZlcnNpb24geyBzdGF0aWNfY2FzdDx1aW50MzJfdD4oKmNvbnZlcnNpb25EYXRh
VUludDY0KSwgUHJpb3JpdHkgeyAwIH0gfTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKHBhdGgubGVu
Z3RoKCkgPT0gcHJlZml4TGVuZ3RoICsgYWRDbGlja0NvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRT
aXplICsgMSArIGFkQ2xpY2tQcmlvcml0eVBhdGhTZWdtZW50U2l6ZSkgewotICAgICAgICBhdXRv
IGNvbnZlcnNpb25EYXRhVUludDY0ID0gcGF0aC5zdWJzdHJpbmcocHJlZml4TGVuZ3RoLCBhZENs
aWNrQ29udmVyc2lvbkRhdGFQYXRoU2VnbWVudFNpemUpLnRvVUludDY0U3RyaWN0KCk7Ci0gICAg
ICAgIGlmICghY29udmVyc2lvbkRhdGFVSW50NjQgfHwgKmNvbnZlcnNpb25EYXRhVUludDY0ID4g
TWF4RW50cm9weSkgewotICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQo
KSkpIHsKLSAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKEFkQ2xpY2tBdHRyaWJ1dGlv
biwgIkNvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBjb252ZXJzaW9uIGRh
dGEgY291bGQgbm90IGJlIHBhcnNlZCBvciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQgbWF4
aW11bSBvZiAle3B1YmxpY311LiIsIE1heEVudHJvcHkpOwotICAgICAgICAgICAgICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJbQWQgQ2xpY2sgQXR0cmlidXRpb25dIENvbnZl
cnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBjb252ZXJzaW9uIGRhdGEgY291bGQg
bm90IGJlIHBhcnNlZCBvciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQgbWF4aW11bSBvZiAi
X3MsIE1heEVudHJvcHksICIuIl9zKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygpKTsKLSAgICAgICAgfQotCi0gICAgICAgIGF1
dG8gY29udmVyc2lvblByaW9yaXR5VUludDY0ID0gcGF0aC5zdWJzdHJpbmcocHJlZml4TGVuZ3Ro
ICsgYWRDbGlja0NvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRTaXplICsgMSwgYWRDbGlja1ByaW9y
aXR5UGF0aFNlZ21lbnRTaXplKS50b1VJbnQ2NFN0cmljdCgpOwotICAgICAgICBpZiAoIWNvbnZl
cnNpb25Qcmlvcml0eVVJbnQ2NCB8fCAqY29udmVyc2lvblByaW9yaXR5VUludDY0ID4gTWF4RW50
cm9weSkgewotICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsK
LSAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgIkNv
bnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBwcmlvcml0eSBjb3VsZCBub3Qg
YmUgcGFyc2VkIG9yIHdhcyBoaWdoZXIgdGhhbiB0aGUgYWxsb3dlZCBtYXhpbXVtIG9mICV7cHVi
bGljfXUuIiwgTWF4RW50cm9weSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKG1ha2VTdHJpbmcoIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gQ29udmVyc2lvbiB3YXMgbm90
IGFjY2VwdGVkIGJlY2F1c2UgdGhlIHByaW9yaXR5IGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2Fz
IGhpZ2hlciB0aGFuIHRoZSBhbGxvd2VkIG1heGltdW0gb2YgIl9zLCBNYXhFbnRyb3B5LCAiLiJf
cykpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG51
bGxTdHJpbmcoKSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gQ29udmVyc2lvbiB7IHN0
YXRpY19jYXN0PHVpbnQzMl90PigqY29udmVyc2lvbkRhdGFVSW50NjQpLCBQcmlvcml0eSB7IHN0
YXRpY19jYXN0PHVpbnQzMl90PigqY29udmVyc2lvblByaW9yaXR5VUludDY0KSB9IH07Ci0gICAg
fQotCi0gICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgUkVM
RUFTRV9MT0dfSU5GTyhBZENsaWNrQXR0cmlidXRpb24sICJDb252ZXJzaW9uIHdhcyBub3QgYWNj
ZXB0ZWQgYmVjYXVzZSB0aGUgVVJMIHBhdGggY29udGFpbmVkIHVucmVjb2duaXplZCBwYXJ0cy4i
KTsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKCJbQWQgQ2xpY2sgQXR0cmlidXRpb25d
IENvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBVUkwgcGF0aCBjb250YWlu
ZWQgdW5yZWNvZ25pemVkIHBhcnRzLiJfcyk7Ci0gICAgfQotICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZChudWxsU3RyaW5nKCkpOwotfQotCi1PcHRpb25hbDxTZWNvbmRzPiBBZENsaWNrQXR0cmli
dXRpb246OmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoQ29udmVyc2lvbiYmIGNvbnZl
cnNpb24pCi17Ci0gICAgaWYgKCFjb252ZXJzaW9uLmlzVmFsaWQoKSB8fCAobV9jb252ZXJzaW9u
ICYmIG1fY29udmVyc2lvbi0+cHJpb3JpdHkgPj0gY29udmVyc2lvbi5wcmlvcml0eSkpCi0gICAg
ICAgIHJldHVybiB7IH07Ci0KLSAgICBtX2NvbnZlcnNpb24gPSBXVEZNb3ZlKGNvbnZlcnNpb24p
OwotICAgIC8vIDI0LTQ4IGhvdXIgZGVsYXkgYmVmb3JlIHNlbmRpbmcuIFRoaXMgaGVscHMgcHJp
dmFjeSBzaW5jZSB0aGUgY29udmVyc2lvbiBhbmQgdGhlIGF0dHJpYnV0aW9uCi0gICAgLy8gcmVx
dWVzdHMgYXJlIGRldGFjaGVkIGFuZCB0aGUgdGltZSBvZiB0aGUgYXR0cmlidXRpb24gZG9lcyBu
b3QgcmV2ZWFsIHRoZSB0aW1lIG9mIHRoZSBjb252ZXJzaW9uLgotICAgIGF1dG8gc2Vjb25kcyA9
IDI0X2ggKyBTZWNvbmRzKHJhbmRvbU51bWJlcigpICogKDI0X2gpLnZhbHVlKCkpOwotICAgIG1f
ZWFybGllc3RUaW1lVG9TZW5kID0gV2FsbFRpbWU6Om5vdygpICsgc2Vjb25kczsKLSAgICByZXR1
cm4gc2Vjb25kczsKLX0KLQotdm9pZCBBZENsaWNrQXR0cmlidXRpb246Om1hcmtBc0V4cGlyZWQo
KQotewotICAgIG1fdGltZU9mQWRDbGljayA9IHsgfTsKLX0KLQotYm9vbCBBZENsaWNrQXR0cmli
dXRpb246Omhhc0V4cGlyZWQoKSBjb25zdAotewotICAgIHJldHVybiBXYWxsVGltZTo6bm93KCkg
PiBtX3RpbWVPZkFkQ2xpY2sgKyBtYXhBZ2U7Ci19Ci0KLWJvb2wgQWRDbGlja0F0dHJpYnV0aW9u
OjpoYXNIaWdoZXJQcmlvcml0eVRoYW4oY29uc3QgQWRDbGlja0F0dHJpYnV0aW9uJiBvdGhlcikg
Y29uc3QKLXsKLSAgICBpZiAoIW90aGVyLm1fY29udmVyc2lvbikKLSAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgCi0gICAgaWYgKCFtX2NvbnZlcnNpb24pCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIHJldHVybiBtX2NvbnZlcnNpb24tPnByaW9yaXR5ID4gb3RoZXIubV9jb252ZXJzaW9u
LT5wcmlvcml0eTsKLX0KLQotVVJMIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cmVwb3J0VVJMKCkgY29u
c3QKLXsKLSAgICBpZiAoIWlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIFVSTCgpOwotCi0gICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiaHR0cHM6
Ly8iKTsKLSAgICBidWlsZGVyLmFwcGVuZChtX3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJp
bmcoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKGFkQ2xpY2tBdHRyaWJ1dGlvblBhdGhQ
cmVmaXgpOwotCi0gICAgVVJMIHVybCB7IFVSTCgpLCBidWlsZGVyLnRvU3RyaW5nKCkgfTsKLSAg
ICBpZiAodXJsLmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIHVybDsKLQotICAgIHJldHVybiBV
UkwoKTsKLX0KLQotUmVmPEpTT046Ok9iamVjdD4gQWRDbGlja0F0dHJpYnV0aW9uOjpqc29uKCkg
Y29uc3QKLXsKLSAgICBhdXRvIHJlcG9ydERldGFpbHMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgp
OwotICAgIGlmICghbV9jb252ZXJzaW9uKQotICAgICAgICByZXR1cm4gcmVwb3J0RGV0YWlsczsK
LQotICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygiY29udGVudC10eXBlIl9zLCAiY2xpY2si
X3MpOwotICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygiY29udGVudC1zaXRlIl9zLCBtX3Nv
dXJjZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0
SW50ZWdlcigiY29udGVudC1pZCJfcywgbV9jYW1wYWlnbi5pZCk7Ci0gICAgcmVwb3J0RGV0YWls
cy0+c2V0U3RyaW5nKCJjb252ZXJzaW9uLXNpdGUiX3MsIG1fZGVzdGluYXRpb24ucmVnaXN0cmFi
bGVEb21haW4uc3RyaW5nKCkpOwotICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoImNvbnZl
cnNpb24tZGF0YSJfcywgbV9jb252ZXJzaW9uLT5kYXRhKTsKLSAgICByZXBvcnREZXRhaWxzLT5z
ZXRJbnRlZ2VyKCJyZXBvcnQtdmVyc2lvbiJfcywgMSk7Ci0gICAgcmV0dXJuIHJlcG9ydERldGFp
bHM7Ci19Ci0KLXZvaWQgQWRDbGlja0F0dHJpYnV0aW9uOjptYXJrQ29udmVyc2lvbkFzU2VudCgp
Ci17Ci0gICAgQVNTRVJUKG1fY29udmVyc2lvbik7Ci0gICAgaWYgKG1fY29udmVyc2lvbikKLSAg
ICAgICAgbV9jb252ZXJzaW9uLT53YXNTZW50ID0gQ29udmVyc2lvbjo6V2FzU2VudDo6WWVzOwot
fQotCi1ib29sIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6d2FzQ29udmVyc2lvblNlbnQoKSBjb25zdAot
ewotICAgIHJldHVybiBtX2NvbnZlcnNpb24gJiYgbV9jb252ZXJzaW9uLT53YXNTZW50ID09IENv
bnZlcnNpb246Oldhc1NlbnQ6OlllczsKLX0KLQotU3RyaW5nIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6
dG9TdHJpbmcoKSBjb25zdAotewotICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIlNvdXJjZTogIik7Ci0gICAgYnVpbGRlci5hcHBlbmQobV9zb3Vy
Y2UucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiXG5EZXN0aW5hdGlvbjogIik7Ci0gICAgYnVpbGRlci5hcHBlbmQobV9kZXN0aW5hdGlvbi5y
ZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJc
bkNhbXBhaWduIElEOiAiKTsKLSAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2NhbXBhaWduLmlk
KTsKLSAgICBpZiAobV9jb252ZXJzaW9uKSB7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiXG5Db252ZXJzaW9uIGRhdGE6ICIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlciht
X2NvbnZlcnNpb24udmFsdWUoKS5kYXRhKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJcbkNvbnZlcnNpb24gcHJpb3JpdHk6ICIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJl
cihtX2NvbnZlcnNpb24udmFsdWUoKS5wcmlvcml0eSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiXG5Db252ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogIik7Ci0gICAgICAg
IGlmICghbV9lYXJsaWVzdFRpbWVUb1NlbmQpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIk5vdCBzZXQiKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIHNlY29u
ZHNVbnRpbFNlbmQgPSAqbV9lYXJsaWVzdFRpbWVUb1NlbmQgLSBXYWxsVGltZTo6bm93KCk7Ci0g
ICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgoc2Vjb25kc1VudGlsU2VuZCA+PSAyNF9oICYmIHNl
Y29uZHNVbnRpbFNlbmQgPD0gNDhfaCkgPyAiV2l0aGluIDI0LTQ4IGhvdXJzIiA6ICJPdXRzaWRl
IDI0LTQ4IGhvdXJzIik7Ci0gICAgICAgIH0KLSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJcbkNvbnZlcnNpb24gcmVxdWVzdCBzZW50OiAiKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQo
KHdhc0NvbnZlcnNpb25TZW50KCkgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7Ci0gICAgfSBlbHNlCi0g
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5ObyBjb252ZXJzaW9uIGRhdGEuIik7Ci0g
ICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OwotfQotCi1ib29sIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6ZGVidWdNb2RlRW5hYmxlZCgpCi17Ci0g
ICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuYWRDbGlj
a0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZCgpOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvQWRDbGlja0F0dHJpYnV0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvQWRDbGlja0F0dHJpYnV0aW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDdkMTllY2EwMGJhNDNjMTgxZGQxNGY0YTM3MDU1YjgwODk0ZmE3ODkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Fk
Q2xpY2tBdHRyaWJ1dGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsMzY4ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIlJlZ2lzdHJhYmxlRG9tYWluLmgiCi0j
aW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KLSNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgotI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgotI2luY2x1ZGUgPHd0Zi9VUkwuaD4KLSNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQWRDbGlja0F0dHJpYnV0aW9uIHsK
LXB1YmxpYzoKLSAgICB1c2luZyBDYW1wYWlnbklkID0gdWludDMyX3Q7Ci0gICAgdXNpbmcgQ29u
dmVyc2lvbkRhdGEgPSB1aW50MzJfdDsKLSAgICB1c2luZyBQcmlvcml0eVZhbHVlID0gdWludDMy
X3Q7Ci0KLSAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IE1heEVudHJvcHkgPSA2MzsKLQot
ICAgIHN0cnVjdCBDYW1wYWlnbiB7Ci0gICAgICAgIENhbXBhaWduKCkgPSBkZWZhdWx0OwotICAg
ICAgICBleHBsaWNpdCBDYW1wYWlnbihDYW1wYWlnbklkIGlkKQotICAgICAgICAgICAgOiBpZCB7
IGlkIH0KLSAgICAgICAgewotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBib29sIGlzVmFs
aWQoKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gaWQgPD0gTWF4RW50cm9w
eTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgQ2FtcGFpZ25JZCBpZCB7IDAgfTsKLSAg
ICB9OwotCi0gICAgc3RydWN0IFNvdXJjZSB7Ci0gICAgICAgIFNvdXJjZSgpID0gZGVmYXVsdDsK
LSAgICAgICAgZXhwbGljaXQgU291cmNlKGNvbnN0IFVSTCYgdXJsKQotICAgICAgICAgICAgOiBy
ZWdpc3RyYWJsZURvbWFpbiB7IHVybCB9Ci0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAg
IGV4cGxpY2l0IFNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQotICAgICAg
ICAgICAgOiByZWdpc3RyYWJsZURvbWFpbiB7IGRvbWFpbiB9Ci0gICAgICAgIHsKLSAgICAgICAg
fQotCi0gICAgICAgIGV4cGxpY2l0IFNvdXJjZShXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5
cGUpCi0gICAgICAgICAgICA6IHJlZ2lzdHJhYmxlRG9tYWluKFdURjo6SGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBib29sIG9wZXJhdG9yPT0o
Y29uc3QgU291cmNlJiBvdGhlcikgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IHJlZ2lzdHJhYmxlRG9tYWluID09IG90aGVyLnJlZ2lzdHJhYmxlRG9tYWluOwotICAgICAgICB9
Ci0KLSAgICAgICAgYm9vbCBtYXRjaGVzKGNvbnN0IFVSTCYgdXJsKSBjb25zdAotICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gcmVnaXN0cmFibGVEb21haW4ubWF0Y2hlcyh1cmwpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0Ci0g
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiByZWdpc3RyYWJsZURvbWFpbi5pc0hhc2hUYWJs
ZURlbGV0ZWRWYWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIFNvdXJjZSBkZWxl
dGVkVmFsdWUoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU291cmNlIHsgV1RGOjpI
YXNoVGFibGVEZWxldGVkVmFsdWUgfTsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YXRpYyB2b2lk
IGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShTb3VyY2UmIHNvdXJjZSkKLSAgICAgICAgewotICAgICAg
ICAgICAgbmV3ICgmc291cmNlKSBTb3VyY2U7Ci0gICAgICAgICAgICBzb3VyY2UgPSBTb3VyY2U6
OmRlbGV0ZWRWYWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgdm9pZCBkZWxldGVWYWx1ZSgp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJlZ2lzdHJhYmxlRG9tYWluID0gUmVnaXN0cmFibGVE
b21haW4geyBXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9OwotICAgICAgICB9Ci0KLSAgICAg
ICAgYm9vbCBpc0RlbGV0ZWRWYWx1ZSgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgUmVn
aXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW47Ci0gICAgfTsKLQotICAgIHN0cnVjdCBT
b3VyY2VIYXNoIHsKLSAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgU291cmNlJiBz
b3VyY2UpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBzb3VyY2UucmVnaXN0cmFibGVE
b21haW4uaGFzaCgpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBzdGF0aWMgYm9vbCBl
cXVhbChjb25zdCBTb3VyY2UmIGEsIGNvbnN0IFNvdXJjZSYgYikKLSAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIGEgPT0gYjsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YXRpYyBjb25zdCBi
b29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7Ci0gICAgfTsKLQotICAg
IHN0cnVjdCBEZXN0aW5hdGlvbiB7Ci0gICAgICAgIERlc3RpbmF0aW9uKCkgPSBkZWZhdWx0Owot
ICAgICAgICBleHBsaWNpdCBEZXN0aW5hdGlvbihjb25zdCBVUkwmIHVybCkKLSAgICAgICAgICAg
IDogcmVnaXN0cmFibGVEb21haW4geyBSZWdpc3RyYWJsZURvbWFpbiB7IHVybCB9IH0KLSAgICAg
ICAgewotICAgICAgICB9Ci0KLSAgICAgICAgZXhwbGljaXQgRGVzdGluYXRpb24oV1RGOjpIYXNo
VGFibGVEZWxldGVkVmFsdWVUeXBlKQotICAgICAgICAgICAgOiByZWdpc3RyYWJsZURvbWFpbiB7
IFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlIH0KLSAgICAgICAgewotICAgICAgICB9Ci0KLSAg
ICAgICAgZXhwbGljaXQgRGVzdGluYXRpb24oUmVnaXN0cmFibGVEb21haW4mJiBkb21haW4pCi0g
ICAgICAgICAgICA6IHJlZ2lzdHJhYmxlRG9tYWluIHsgV1RGTW92ZShkb21haW4pIH0KLSAgICAg
ICAgewotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3Qg
RGVzdGluYXRpb24mIG90aGVyKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
cmVnaXN0cmFibGVEb21haW4gPT0gb3RoZXIucmVnaXN0cmFibGVEb21haW47Ci0gICAgICAgIH0K
LQotICAgICAgICBib29sIG1hdGNoZXMoY29uc3QgVVJMJiB1cmwpIGNvbnN0Ci0gICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiByZWdpc3RyYWJsZURvbWFpbiA9PSBSZWdpc3RyYWJsZURvbWFp
biB7IHVybCB9OwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBib29sIGlzSGFzaFRhYmxl
RGVsZXRlZFZhbHVlKCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHJlZ2lz
dHJhYmxlRG9tYWluLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7Ci0gICAgICAgIH0KLQotICAg
ICAgICBzdGF0aWMgRGVzdGluYXRpb24gZGVsZXRlZFZhbHVlKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIERlc3RpbmF0aW9uIHsgV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWUgfTsK
LSAgICAgICAgfQotCi0gICAgICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShE
ZXN0aW5hdGlvbiYgZGVzdGluYXRpb24pCi0gICAgICAgIHsKLSAgICAgICAgICAgIG5ldyAoJmRl
c3RpbmF0aW9uKSBEZXN0aW5hdGlvbjsKLSAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gRGVzdGlu
YXRpb246OmRlbGV0ZWRWYWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgdm9pZCBkZWxldGVW
YWx1ZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJlZ2lzdHJhYmxlRG9tYWluID0gUmVnaXN0
cmFibGVEb21haW4geyBXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9OwotICAgICAgICB9Ci0K
LSAgICAgICAgYm9vbCBpc0RlbGV0ZWRWYWx1ZSgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgUmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW47Ci0gICAgfTsKLQotICAgIHN0
cnVjdCBEZXN0aW5hdGlvbkhhc2ggewotICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25z
dCBEZXN0aW5hdGlvbiYgZGVzdGluYXRpb24pCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBkZXN0aW5hdGlvbi5yZWdpc3RyYWJsZURvbWFpbi5oYXNoKCk7Ci0gICAgICAgIH0KLSAgICAg
ICAgCi0gICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IERlc3RpbmF0aW9uJiBhLCBjb25z
dCBEZXN0aW5hdGlvbiYgYikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGEgPT0gYjsK
LSAgICAgICAgfQotCi0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0Vt
cHR5T3JEZWxldGVkID0gZmFsc2U7Ci0gICAgfTsKLQotICAgIHN0cnVjdCBQcmlvcml0eSB7Ci0g
ICAgICAgIGV4cGxpY2l0IFByaW9yaXR5KFByaW9yaXR5VmFsdWUgdmFsdWUpCi0gICAgICAgIDog
dmFsdWUgeyB2YWx1ZSB9Ci0gICAgICAgIHsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAg
UHJpb3JpdHlWYWx1ZSB2YWx1ZTsKLSAgICB9OwotICAgIAotICAgIHN0cnVjdCBDb252ZXJzaW9u
IHsKLSAgICAgICAgZW51bSBjbGFzcyBXYXNTZW50IDogYm9vbCB7IE5vLCBZZXMgfTsKLSAgICAg
ICAgCi0gICAgICAgIENvbnZlcnNpb24oQ29udmVyc2lvbkRhdGEgZGF0YSwgUHJpb3JpdHkgcHJp
b3JpdHksIFdhc1NlbnQgd2FzU2VudCA9IFdhc1NlbnQ6Ok5vKQotICAgICAgICAgICAgOiBkYXRh
IHsgZGF0YSB9Ci0gICAgICAgICAgICAsIHByaW9yaXR5IHsgcHJpb3JpdHkudmFsdWUgfQotICAg
ICAgICAgICAgLCB3YXNTZW50IHsgd2FzU2VudCB9Ci0gICAgICAgIHsKLSAgICAgICAgfQotCi0g
ICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBkYXRhIDw9IE1heEVudHJvcHkgJiYgcHJpb3JpdHkgPD0gTWF4RW50cm9weTsKLSAgICAgICAg
fQotICAgICAgICAKLSAgICAgICAgQ29udmVyc2lvbkRhdGEgZGF0YTsKLSAgICAgICAgUHJpb3Jp
dHlWYWx1ZSBwcmlvcml0eTsKLSAgICAgICAgV2FzU2VudCB3YXNTZW50ID0gV2FzU2VudDo6Tm87
Ci0KLSAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYp
IGNvbnN0OwotICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8
Q29udmVyc2lvbj4gZGVjb2RlKERlY29kZXImKTsKLSAgICB9OwotCi0gICAgQWRDbGlja0F0dHJp
YnV0aW9uKCkgPSBkZWZhdWx0OwotICAgIEFkQ2xpY2tBdHRyaWJ1dGlvbihDYW1wYWlnbiBjYW1w
YWlnbiwgY29uc3QgU291cmNlJiBzb3VyY2UsIGNvbnN0IERlc3RpbmF0aW9uJiBkZXN0aW5hdGlv
bikKLSAgICAgICAgOiBtX2NhbXBhaWduIHsgY2FtcGFpZ24gfQotICAgICAgICAsIG1fc291cmNl
IHsgc291cmNlIH0KLSAgICAgICAgLCBtX2Rlc3RpbmF0aW9uIHsgZGVzdGluYXRpb24gfQotICAg
ICAgICAsIG1fdGltZU9mQWRDbGljayB7IFdhbGxUaW1lOjpub3coKSB9Ci0gICAgewotICAgIH0K
LQotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBFeHBlY3RlZDxDb252ZXJzaW9uLCBTdHJpbmc+
IHBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29uc3QgVVJMJiByZWRpcmVjdFVSTCk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgT3B0aW9uYWw8U2Vjb25kcz4gY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRv
U2VuZChDb252ZXJzaW9uJiYpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzSGlnaGVyUHJp
b3JpdHlUaGFuKGNvbnN0IEFkQ2xpY2tBdHRyaWJ1dGlvbiYpIGNvbnN0OwotICAgIFdFQkNPUkVf
RVhQT1JUIFVSTCByZXBvcnRVUkwoKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBSZWY8SlNP
Tjo6T2JqZWN0PiBqc29uKCkgY29uc3Q7Ci0gICAgY29uc3QgU291cmNlJiBzb3VyY2UoKSBjb25z
dCB7IHJldHVybiBtX3NvdXJjZTsgfTsKLSAgICBjb25zdCBEZXN0aW5hdGlvbiYgZGVzdGluYXRp
b24oKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uOyB9OwotICAgIE9wdGlvbmFsPFdhbGxU
aW1lPiBlYXJsaWVzdFRpbWVUb1NlbmQoKSBjb25zdCB7IHJldHVybiBtX2VhcmxpZXN0VGltZVRv
U2VuZDsgfTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1hcmtBc0V4cGlyZWQoKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCBib29sIGhhc0V4cGlyZWQoKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIG1hcmtDb252ZXJzaW9uQXNTZW50KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCB3
YXNDb252ZXJzaW9uU2VudCgpIGNvbnN0OwotCi0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyBy
ZXR1cm4gbV9zb3VyY2UucmVnaXN0cmFibGVEb21haW4uaXNFbXB0eSgpOyB9OwotCi0gICAgV0VC
Q09SRV9FWFBPUlQgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7Ci0KLSAgICB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAgdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4gZGVjb2RlKERl
Y29kZXImKTsKLQotcHJpdmF0ZToKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKLSAgICBzdGF0
aWMgYm9vbCBkZWJ1Z01vZGVFbmFibGVkKCk7Ci0KLSAgICBDYW1wYWlnbiBtX2NhbXBhaWduOwot
ICAgIFNvdXJjZSBtX3NvdXJjZTsKLSAgICBEZXN0aW5hdGlvbiBtX2Rlc3RpbmF0aW9uOwotICAg
IFdhbGxUaW1lIG1fdGltZU9mQWRDbGljazsKLQotICAgIE9wdGlvbmFsPENvbnZlcnNpb24+IG1f
Y29udmVyc2lvbjsKLSAgICBPcHRpb25hbDxXYWxsVGltZT4gbV9lYXJsaWVzdFRpbWVUb1NlbmQ7
Ci19OwotCi10ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgotdm9pZCBBZENsaWNrQXR0cmlidXRpb246
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAotewotICAgIGVuY29kZXIgPDwgbV9jYW1w
YWlnbi5pZCA8PCBtX3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbiA8PCBtX2Rlc3RpbmF0aW9uLnJl
Z2lzdHJhYmxlRG9tYWluIDw8IG1fdGltZU9mQWRDbGljayA8PCBtX2NvbnZlcnNpb24gPDwgbV9l
YXJsaWVzdFRpbWVUb1NlbmQ7Ci19Ci0KLXRlbXBsYXRlPGNsYXNzIERlY29kZXI+Ci1PcHRpb25h
bDxBZENsaWNrQXR0cmlidXRpb24+IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCi17Ci0gICAgT3B0aW9uYWw8Q2FtcGFpZ25JZD4gY2FtcGFpZ25JZDsKLSAgICBk
ZWNvZGVyID4+IGNhbXBhaWduSWQ7Ci0gICAgaWYgKCFjYW1wYWlnbklkKQotICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAgIE9wdGlvbmFsPFJlZ2lzdHJhYmxlRG9tYWluPiBz
b3VyY2VSZWdpc3RyYWJsZURvbWFpbjsKLSAgICBkZWNvZGVyID4+IHNvdXJjZVJlZ2lzdHJhYmxl
RG9tYWluOwotICAgIGlmICghc291cmNlUmVnaXN0cmFibGVEb21haW4pCi0gICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7Ci0gICAgCi0gICAgT3B0aW9uYWw8UmVnaXN0cmFibGVEb21haW4+IGRl
c3RpbmF0aW9uUmVnaXN0cmFibGVEb21haW47Ci0gICAgZGVjb2RlciA+PiBkZXN0aW5hdGlvblJl
Z2lzdHJhYmxlRG9tYWluOwotICAgIGlmICghZGVzdGluYXRpb25SZWdpc3RyYWJsZURvbWFpbikK
LSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAgICBPcHRpb25hbDxXYWxsVGlt
ZT4gdGltZU9mQWRDbGljazsKLSAgICBkZWNvZGVyID4+IHRpbWVPZkFkQ2xpY2s7Ci0gICAgaWYg
KCF0aW1lT2ZBZENsaWNrKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAg
IE9wdGlvbmFsPE9wdGlvbmFsPENvbnZlcnNpb24+PiBjb252ZXJzaW9uOwotICAgIGRlY29kZXIg
Pj4gY29udmVyc2lvbjsKLSAgICBpZiAoIWNvbnZlcnNpb24pCi0gICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7Ci0gICAgCi0gICAgT3B0aW9uYWw8T3B0aW9uYWw8V2FsbFRpbWU+PiBlYXJsaWVz
dFRpbWVUb1NlbmQ7Ci0gICAgZGVjb2RlciA+PiBlYXJsaWVzdFRpbWVUb1NlbmQ7Ci0gICAgaWYg
KCFlYXJsaWVzdFRpbWVUb1NlbmQpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAg
Ci0gICAgQWRDbGlja0F0dHJpYnV0aW9uIGF0dHJpYnV0aW9uIHsgQ2FtcGFpZ24geyBXVEZNb3Zl
KCpjYW1wYWlnbklkKSB9LCBTb3VyY2UgeyBXVEZNb3ZlKCpzb3VyY2VSZWdpc3RyYWJsZURvbWFp
bikgfSwgRGVzdGluYXRpb24geyBXVEZNb3ZlKCpkZXN0aW5hdGlvblJlZ2lzdHJhYmxlRG9tYWlu
KSB9IH07Ci0gICAgYXR0cmlidXRpb24ubV9jb252ZXJzaW9uID0gV1RGTW92ZSgqY29udmVyc2lv
bik7Ci0gICAgYXR0cmlidXRpb24ubV9lYXJsaWVzdFRpbWVUb1NlbmQgPSBXVEZNb3ZlKCplYXJs
aWVzdFRpbWVUb1NlbmQpOwotICAgIAotICAgIHJldHVybiBhdHRyaWJ1dGlvbjsKLX0KLQotdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KLXZvaWQgQWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9u
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSAgICBlbmNvZGVyIDw8IGRhdGEg
PDwgcHJpb3JpdHkgPDwgd2FzU2VudDsKLX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLU9w
dGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lvbj4gQWRDbGlja0F0dHJpYnV0aW9u
OjpDb252ZXJzaW9uOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBPcHRpb25hbDxD
b252ZXJzaW9uRGF0YT4gZGF0YTsKLSAgICBkZWNvZGVyID4+IGRhdGE7Ci0gICAgaWYgKCFkYXRh
KQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAgIE9wdGlvbmFsPFByaW9y
aXR5VmFsdWU+IHByaW9yaXR5OwotICAgIGRlY29kZXIgPj4gcHJpb3JpdHk7Ci0gICAgaWYgKCFw
cmlvcml0eSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAgICBPcHRpb25h
bDxXYXNTZW50PiB3YXNTZW50OwotICAgIGRlY29kZXIgPj4gd2FzU2VudDsKLSAgICBpZiAoIXdh
c1NlbnQpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCi0gICAgcmV0dXJuIENv
bnZlcnNpb24geyBXVEZNb3ZlKCpkYXRhKSwgUHJpb3JpdHkgeyAqcHJpb3JpdHkgfSwgKndhc1Nl
bnQgfTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1uYW1lc3BhY2UgV1RGIHsKLXRl
bXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBEZWZhdWx0SGFzaDsKLQotdGVtcGxhdGU8PiBzdHJ1
Y3QgRGVmYXVsdEhhc2g8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2U+IDogV2Vi
Q29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2VIYXNoIHsgfTsKLXRlbXBsYXRlPD4gc3Ry
dWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2U+IDogR2Vu
ZXJpY0hhc2hUcmFpdHM8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2U+IHsKLSAg
ICBzdGF0aWMgV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2UgZW1wdHlWYWx1ZSgp
IHsgcmV0dXJuIHsgfTsgfQotICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShX
ZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OlNvdXJjZSYgc2xvdCkgeyBXZWJDb3JlOjpBZENs
aWNrQXR0cmlidXRpb246OlNvdXJjZTo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKHNsb3QpOyB9Ci0g
ICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgV2ViQ29yZTo6QWRDbGlja0F0dHJp
YnV0aW9uOjpTb3VyY2UmIHNsb3QpIHsgcmV0dXJuIHNsb3QuaXNEZWxldGVkVmFsdWUoKTsgfQot
fTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29yZTo6QWRDbGlja0F0dHJp
YnV0aW9uOjpEZXN0aW5hdGlvbj4gOiBXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OkRlc3Rp
bmF0aW9uSGFzaCB7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYkNvcmU6OkFk
Q2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb24+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViQ29y
ZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbj4gewotICAgIHN0YXRpYyBXZWJDb3Jl
OjpBZENsaWNrQXR0cmlidXRpb246OkRlc3RpbmF0aW9uIGVtcHR5VmFsdWUoKSB7IHJldHVybiB7
IH07IH0KLSAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoV2ViQ29yZTo6QWRD
bGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbiYgc2xvdCkgeyBXZWJDb3JlOjpBZENsaWNrQXR0
cmlidXRpb246OkRlc3RpbmF0aW9uOjpjb25zdHJ1Y3REZWxldGVkVmFsdWUoc2xvdCk7IH0KLSAg
ICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJDb3JlOjpBZENsaWNrQXR0cmli
dXRpb246OkRlc3RpbmF0aW9uJiBzbG90KSB7IHJldHVybiBzbG90LmlzRGVsZXRlZFZhbHVlKCk7
IH0KLX07Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBiZTZjYTc2
OTM5OTAwYmNjZTYzZDgzMDUyYjgxNDA1ZWZkNjA0YTk0Li43OWM1NDQ4YjhjOTA2ZDJmYjZkMzFm
YWU5NDFlYmJkNDA4ZDU3ZDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
QEAgLTQyMiw3ICs0MjIsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0NvbnRlbnRQb2xpY3ko
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFBvbGljeUNoZQogICAgIGNsaWVudCgp
LmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFjdGl2ZURvY3VtZW50
TG9hZGVyKCktPnJlcXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+
ZG93bmxvYWRBdHRyaWJ1dGUoKSwgV1RGTW92ZShmdW5jdGlvbikpOwogfQogCi12b2lkIEZyYW1l
TG9hZGVyOjpjaGFuZ2VMb2NhdGlvbihjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwYXNz
ZWRUYXJnZXQsIEV2ZW50KiB0cmlnZ2VyaW5nRXZlbnQsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5
LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QsIGNvbnN0IFJlZmVycmVy
UG9saWN5JiByZWZlcnJlclBvbGljeSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBPcHRpb25hbDxOZXdGcmFtZU9wZW5lclBvbGljeT4g
b3BlbmVyUG9saWN5LCBjb25zdCBBdG9tU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgY29uc3Qg
U3lzdGVtUHJldmlld0luZm8mIHN5c3RlbVByZXZpZXdJbmZvLCBPcHRpb25hbDxBZENsaWNrQXR0
cmlidXRpb24+JiYgYWRDbGlja0F0dHJpYnV0aW9uKQordm9pZCBGcmFtZUxvYWRlcjo6Y2hhbmdl
TG9jYXRpb24oY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcGFzc2VkVGFyZ2V0LCBFdmVu
dCogdHJpZ2dlcmluZ0V2ZW50LCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3
YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0LCBjb25zdCBSZWZlcnJlclBvbGljeSYgcmVmZXJy
ZXJQb2xpY3ksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSwgT3B0aW9uYWw8TmV3RnJhbWVPcGVuZXJQb2xpY3k+IG9wZW5lclBvbGljeSwg
Y29uc3QgQXRvbVN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGNvbnN0IFN5c3RlbVByZXZpZXdJ
bmZvJiBzeXN0ZW1QcmV2aWV3SW5mbywgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+
JiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpCiB7CiAgICAgYXV0byogZnJhbWUgPSBsZXhpY2Fs
RnJhbWVGcm9tQ29tbW9uVk0oKTsKICAgICBhdXRvIGluaXRpYXRlZEJ5TWFpbkZyYW1lID0gZnJh
bWUgJiYgZnJhbWUtPmlzTWFpbkZyYW1lKCkgPyBJbml0aWF0ZWRCeU1haW5GcmFtZTo6WWVzIDog
SW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd247CkBAIC00MzUsMTAgKzQzNSwxMCBAQCB2b2lk
IEZyYW1lTG9hZGVyOjpjaGFuZ2VMb2NhdGlvbihjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiBwYXNzZWRUYXJnZXQsIEV2ZQogICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0UmVmZXJyZXJQb2xp
Y3kocmVmZXJyZXJQb2xpY3kpOwogICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0U2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKICAgICBmcmFt
ZUxvYWRSZXF1ZXN0LmRpc2FibGVTaG91bGRSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwo
KTsKLSAgICBjaGFuZ2VMb2NhdGlvbihXVEZNb3ZlKGZyYW1lTG9hZFJlcXVlc3QpLCB0cmlnZ2Vy
aW5nRXZlbnQsIFdURk1vdmUoYWRDbGlja0F0dHJpYnV0aW9uKSk7CisgICAgY2hhbmdlTG9jYXRp
b24oV1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSwgdHJpZ2dlcmluZ0V2ZW50LCBXVEZNb3ZlKHBy
aXZhdGVDbGlja01lYXN1cmVtZW50KSk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmNoYW5nZUxv
Y2F0aW9uKEZyYW1lTG9hZFJlcXVlc3QmJiBmcmFtZVJlcXVlc3QsIEV2ZW50KiB0cmlnZ2VyaW5n
RXZlbnQsIE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4mJiBhZENsaWNrQXR0cmlidXRpb24p
Cit2b2lkIEZyYW1lTG9hZGVyOjpjaGFuZ2VMb2NhdGlvbihGcmFtZUxvYWRSZXF1ZXN0JiYgZnJh
bWVSZXF1ZXN0LCBFdmVudCogdHJpZ2dlcmluZ0V2ZW50LCBPcHRpb25hbDxQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudD4mJiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkKIHsKICAgICBGUkFNRUxPQURF
Ul9SRUxFQVNFX0xPR19JRl9BTExPV0VEKFJlc291cmNlTG9hZGluZywgImNoYW5nZUxvY2F0aW9u
OiBmcmFtZSBsb2FkIHN0YXJ0ZWQiKTsKICAgICBBU1NFUlQoZnJhbWVSZXF1ZXN0LnJlc291cmNl
UmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiR0VUIik7CkBAIC00NTYsNyArNDU2LDcgQEAgdm9p
ZCBGcmFtZUxvYWRlcjo6Y2hhbmdlTG9jYXRpb24oRnJhbWVMb2FkUmVxdWVzdCYmIGZyYW1lUmVx
dWVzdCwgRXZlbnQqIHRyaWdnZXIKIAogICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+Y29udGVudFNl
Y3VyaXR5UG9saWN5KCktPnVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RJZk5lZWRlZChmcmFtZVJlcXVl
c3QucmVzb3VyY2VSZXF1ZXN0KCksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1
ZXN0VHlwZTo6TmF2aWdhdGlvbik7CiAKLSAgICBsb2FkRnJhbWVSZXF1ZXN0KFdURk1vdmUoZnJh
bWVSZXF1ZXN0KSwgdHJpZ2dlcmluZ0V2ZW50LCB7IH0sIFdURk1vdmUoYWRDbGlja0F0dHJpYnV0
aW9uKSk7CisgICAgbG9hZEZyYW1lUmVxdWVzdChXVEZNb3ZlKGZyYW1lUmVxdWVzdCksIHRyaWdn
ZXJpbmdFdmVudCwgeyB9LCBXVEZNb3ZlKHByaXZhdGVDbGlja01lYXN1cmVtZW50KSk7CiB9CiAK
IHZvaWQgRnJhbWVMb2FkZXI6OnN1Ym1pdEZvcm0oUmVmPEZvcm1TdWJtaXNzaW9uPiYmIHN1Ym1p
c3Npb24pCkBAIC0xMjM5LDcgKzEyMzksNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzZXR1cEZvclJl
cGxhY2UoKQogICAgIGRldGFjaENoaWxkcmVuKCk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6Omxv
YWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVlc3QsIEV2ZW50KiBldmVudCwg
UmVmUHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlv
bj4mJiBhZENsaWNrQXR0cmlidXRpb24pCit2b2lkIEZyYW1lTG9hZGVyOjpsb2FkRnJhbWVSZXF1
ZXN0KEZyYW1lTG9hZFJlcXVlc3QmJiByZXF1ZXN0LCBFdmVudCogZXZlbnQsIFJlZlB0cjxGb3Jt
U3RhdGU+JiYgZm9ybVN0YXRlLCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mJiBw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCkKIHsKICAgICBGUkFNRUxPQURFUl9SRUxFQVNFX0xPR19J
Rl9BTExPV0VEKFJlc291cmNlTG9hZGluZywgImxvYWRGcmFtZVJlcXVlc3Q6IGZyYW1lIGxvYWQg
c3RhcnRlZCIpOwogCkBAIC0xMjg3LDcgKzEyODcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2Fk
RnJhbWVSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3QmJiByZXF1ZXN0LCBFdmVudCogZXZlbnQsIFJl
ZgogICAgIGlmIChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiUE9T
VCIpCiAgICAgICAgIGxvYWRQb3N0UmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpLCByZWZlcnJlciwg
bG9hZFR5cGUsIGV2ZW50LCBXVEZNb3ZlKGZvcm1TdGF0ZSksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKICAgICBlbHNlCi0gICAgICAgIGxvYWRVUkwoV1RGTW92ZShyZXF1ZXN0KSwgcmVm
ZXJyZXIsIGxvYWRUeXBlLCBldmVudCwgV1RGTW92ZShmb3JtU3RhdGUpLCBXVEZNb3ZlKGFkQ2xp
Y2tBdHRyaWJ1dGlvbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgbG9h
ZFVSTChXVEZNb3ZlKHJlcXVlc3QpLCByZWZlcnJlciwgbG9hZFR5cGUsIGV2ZW50LCBXVEZNb3Zl
KGZvcm1TdGF0ZSksIFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHN0YXRpYyBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb0FwcGx5KEZyYW1lJiBjdXJyZW50RnJh
bWUsIEluaXRpYXRlZEJ5TWFpbkZyYW1lIGluaXRpYXRlZEJ5TWFpbkZyYW1lLCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5IHByb3BhZ2F0ZWRQb2xpY3kpCkBAIC0xMzI5LDcgKzEzMjksNyBA
QCBib29sIEZyYW1lTG9hZGVyOjppc1N0b3BMb2FkaW5nQWxsb3dlZCgpIGNvbnN0CiAgICAgcmV0
dXJuIG1fcGFnZURpc21pc3NhbEV2ZW50QmVpbmdEaXNwYXRjaGVkID09IFBhZ2VEaXNtaXNzYWxU
eXBlOjpOb25lOwogfQogCi12b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMKEZyYW1lTG9hZFJlcXVl
c3QmJiBmcmFtZUxvYWRSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBGcmFtZUxvYWRU
eXBlIG5ld0xvYWRUeXBlLCBFdmVudCogZXZlbnQsIFJlZlB0cjxGb3JtU3RhdGU+JiYgZm9ybVN0
YXRlLCBPcHRpb25hbDxBZENsaWNrQXR0cmlidXRpb24+JiYgYWRDbGlja0F0dHJpYnV0aW9uLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIEZyYW1l
TG9hZGVyOjpsb2FkVVJMKEZyYW1lTG9hZFJlcXVlc3QmJiBmcmFtZUxvYWRSZXF1ZXN0LCBjb25z
dCBTdHJpbmcmIHJlZmVycmVyLCBGcmFtZUxvYWRUeXBlIG5ld0xvYWRUeXBlLCBFdmVudCogZXZl
bnQsIFJlZlB0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBPcHRpb25hbDxQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudD4mJiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEZSQU1FTE9BREVSX1JFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoUmVzb3VyY2VMb2FkaW5nLCAibG9hZFVSTDogZnJhbWUgbG9hZCBzdGFy
dGVkIik7CiAgICAgQVNTRVJUKGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuaHR0
cE1ldGhvZCgpID09ICJHRVQiKTsKQEAgLTEzNDgsNyArMTM0OCw3IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6OmxvYWRVUkwoRnJhbWVMb2FkUmVxdWVzdCYmIGZyYW1lTG9hZFJlcXVlc3QsIGNvbnN0IFN0
cmluZyYgcmVmCiAgICAgYXV0byB0YXJnZXRGcmFtZSA9IGlzRm9ybVN1Ym1pc3Npb24gPyBudWxs
cHRyIDogbWFrZVJlZlB0cihmaW5kRnJhbWVGb3JOYXZpZ2F0aW9uKGVmZmVjdGl2ZUZyYW1lTmFt
ZSkpOwogICAgIGlmICh0YXJnZXRGcmFtZSAmJiB0YXJnZXRGcmFtZSAhPSAmbV9mcmFtZSkgewog
ICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldEZyYW1lTmFtZSgiX3NlbGYiKTsKLSAgICAgICAg
dGFyZ2V0RnJhbWUtPmxvYWRlcigpLmxvYWRVUkwoV1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSwg
cmVmZXJyZXIsIG5ld0xvYWRUeXBlLCBldmVudCwgV1RGTW92ZShmb3JtU3RhdGUpLCBXVEZNb3Zl
KGFkQ2xpY2tBdHRyaWJ1dGlvbiksIGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJlbGVhc2UoKSk7
CisgICAgICAgIHRhcmdldEZyYW1lLT5sb2FkZXIoKS5sb2FkVVJMKFdURk1vdmUoZnJhbWVMb2Fk
UmVxdWVzdCksIHJlZmVycmVyLCBuZXdMb2FkVHlwZSwgZXZlbnQsIFdURk1vdmUoZm9ybVN0YXRl
KSwgV1RGTW92ZShwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCksIGNvbXBsZXRpb25IYW5kbGVyQ2Fs
bGVyLnJlbGVhc2UoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEzNjcsOCArMTM2
Nyw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRVUkwoRnJhbWVMb2FkUmVxdWVzdCYmIGZyYW1l
TG9hZFJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcmVmCiAgICAgTmF2aWdhdGlvbkFjdGlvbiBhY3Rp
b24geyBmcmFtZUxvYWRSZXF1ZXN0LnJlcXVlc3RlcigpLCByZXF1ZXN0LCBmcmFtZUxvYWRSZXF1
ZXN0LmluaXRpYXRlZEJ5TWFpbkZyYW1lKCksIG5ld0xvYWRUeXBlLCBpc0Zvcm1TdWJtaXNzaW9u
LCBldmVudCwgZnJhbWVMb2FkUmVxdWVzdC5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCks
IGZyYW1lTG9hZFJlcXVlc3QuZG93bmxvYWRBdHRyaWJ1dGUoKSB9OwogICAgIGFjdGlvbi5zZXRM
b2NrSGlzdG9yeShmcmFtZUxvYWRSZXF1ZXN0LmxvY2tIaXN0b3J5KCkpOwogICAgIGFjdGlvbi5z
ZXRMb2NrQmFja0ZvcndhcmRMaXN0KGZyYW1lTG9hZFJlcXVlc3QubG9ja0JhY2tGb3J3YXJkTGlz
dCgpKTsKLSAgICBpZiAoYWRDbGlja0F0dHJpYnV0aW9uICYmIG1fZnJhbWUuaXNNYWluRnJhbWUo
KSkKLSAgICAgICAgYWN0aW9uLnNldEFkQ2xpY2tBdHRyaWJ1dGlvbihXVEZNb3ZlKCphZENsaWNr
QXR0cmlidXRpb24pKTsKKyAgICBpZiAocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgJiYgbV9mcmFt
ZS5pc01haW5GcmFtZSgpKQorICAgICAgICBhY3Rpb24uc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQoV1RGTW92ZSgqcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpKTsKIAogICAgIE5ld0ZyYW1lT3Bl
bmVyUG9saWN5IG9wZW5lclBvbGljeSA9IGZyYW1lTG9hZFJlcXVlc3QubmV3RnJhbWVPcGVuZXJQ
b2xpY3koKTsKICAgICBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwgYWxsb3dOYXZpZ2F0aW9u
VG9JbnZhbGlkVVJMID0gZnJhbWVMb2FkUmVxdWVzdC5hbGxvd05hdmlnYXRpb25Ub0ludmFsaWRV
UkwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggODRiMDg1ZTY4MDAzNjUy
MWFiZTI4ZDg2OWFkZTdhZWE5MTEwMWRjMi4uYzJmNjM5YWNlZjhlYzM0MzY5NTU1YTkzMTdlZDY5
MjgyNDJlN2JiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTMxLDcgKzMx
LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJBZENsaWNrQXR0cmlidXRpb24uaCIK
ICNpbmNsdWRlICJDYWNoZVBvbGljeS5oIgogI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmgiCkBAIC0zOSw2ICszOCw3IEBACiAj
aW5jbHVkZSAiTGF5b3V0TWlsZXN0b25lLmgiCiAjaW5jbHVkZSAiTWl4ZWRDb250ZW50Q2hlY2tl
ci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQuaCIKICNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgogI2luY2x1ZGUgIlJl
c291cmNlTG9hZE5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgi
CkBAIC0xMjQsNyArMTI0LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0dXBGb3JSZXBsYWNlKCk7
CiAKICAgICAvLyBGSVhNRTogVGhlc2UgYXJlIGFsbCBmdW5jdGlvbnMgd2hpY2ggc3RhcnQgbG9h
ZHMuIFdlIGhhdmUgdG9vIG1hbnkuCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBsb2FkRnJhbWVS
ZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3QmJiwgRXZlbnQqLCBSZWZQdHI8Rm9ybVN0YXRlPiYmLCBP
cHRpb25hbDxBZENsaWNrQXR0cmlidXRpb24+JiYgPSBXVEY6Om51bGxvcHQpOyAvLyBDYWxsZWQg
Ynkgc3VibWl0Rm9ybSwgY2FsbHMgbG9hZFBvc3RSZXF1ZXN0IGFuZCBsb2FkVVJMLgorICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgbG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0JiYsIEV2
ZW50KiwgUmVmUHRyPEZvcm1TdGF0ZT4mJiwgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ+JiYgPSBXVEY6Om51bGxvcHQpOyAvLyBDYWxsZWQgYnkgc3VibWl0Rm9ybSwgY2FsbHMgbG9h
ZFBvc3RSZXF1ZXN0IGFuZCBsb2FkVVJMLgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBsb2Fk
KEZyYW1lTG9hZFJlcXVlc3QmJik7CiAKQEAgLTEzMyw4ICsxMzMsOCBAQCBwdWJsaWM6CiAjZW5k
aWYKICAgICB1bnNpZ25lZCBsb25nIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgQ2xpZW50Q3JlZGVudGlhbFBvbGljeSwgY29uc3QgRmV0Y2hPcHRpb25z
JiwgY29uc3QgSFRUUEhlYWRlck1hcCYsIFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNl
JiwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mIGRhdGEpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBjaGFuZ2VMb2NhdGlvbihjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHRhcmdldCwgRXZlbnQq
LCBMb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCwgY29uc3QgUmVmZXJyZXJQb2xpY3km
LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBPcHRpb25hbDxOZXdGcmFtZU9wZW5lclBv
bGljeT4gPSBXVEY6Om51bGxvcHQsIGNvbnN0IEF0b21TdHJpbmcmIGRvd25sb2FkQXR0cmlidXRl
ID0gbnVsbEF0b20oKSwgY29uc3QgU3lzdGVtUHJldmlld0luZm8mID0geyB9LCBPcHRpb25hbDxB
ZENsaWNrQXR0cmlidXRpb24+JiYgPSBXVEY6Om51bGxvcHQpOwotICAgIHZvaWQgY2hhbmdlTG9j
YXRpb24oRnJhbWVMb2FkUmVxdWVzdCYmLCBFdmVudCogPSBudWxscHRyLCBPcHRpb25hbDxBZENs
aWNrQXR0cmlidXRpb24+JiYgPSBXVEY6Om51bGxvcHQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgY2hhbmdlTG9jYXRpb24oY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB0YXJnZXQsIEV2ZW50
KiwgTG9ja0hpc3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3QsIGNvbnN0IFJlZmVycmVyUG9saWN5
JiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgT3B0aW9uYWw8TmV3RnJhbWVPcGVuZXJQ
b2xpY3k+ID0gV1RGOjpudWxsb3B0LCBjb25zdCBBdG9tU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0
ZSA9IG51bGxBdG9tKCksIGNvbnN0IFN5c3RlbVByZXZpZXdJbmZvJiA9IHsgfSwgT3B0aW9uYWw8
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgPSBXVEY6Om51bGxvcHQpOworICAgIHZvaWQgY2hh
bmdlTG9jYXRpb24oRnJhbWVMb2FkUmVxdWVzdCYmLCBFdmVudCogPSBudWxscHRyLCBPcHRpb25h
bDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mJiA9IFdURjo6bnVsbG9wdCk7CiAgICAgdm9pZCBz
dWJtaXRGb3JtKFJlZjxGb3JtU3VibWlzc2lvbj4mJik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJlbG9hZChPcHRpb25TZXQ8UmVsb2FkT3B0aW9uPiA9IHsgfSk7CkBAIC0zODcsNyArMzg3
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBOYXZpZ2F0aW9uQWN0aW9uJiYsIEZyYW1lTG9hZFR5cGUsIFJlZlB0
cjxGb3JtU3RhdGU+JiYsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmID0gW10geyB9KTsgLy8gQ2FsbHMgbG9hZFdpdGhEb2N1bWVudExvYWRl
cgogCiAgICAgdm9pZCBsb2FkUG9zdFJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYmLCBjb25zdCBT
dHJpbmcmIHJlZmVycmVyLCBGcmFtZUxvYWRUeXBlLCBFdmVudCosIFJlZlB0cjxGb3JtU3RhdGU+
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBsb2FkVVJMKEZyYW1l
TG9hZFJlcXVlc3QmJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgRnJhbWVMb2FkVHlwZSwgRXZl
bnQqLCBSZWZQdHI8Rm9ybVN0YXRlPiYmLCBPcHRpb25hbDxBZENsaWNrQXR0cmlidXRpb24+JiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBsb2FkVVJMKEZyYW1lTG9h
ZFJlcXVlc3QmJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgRnJhbWVMb2FkVHlwZSwgRXZlbnQq
LCBSZWZQdHI8Rm9ybVN0YXRlPiYmLCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4m
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIGJvb2wgc2hvdWxkUmVsb2Fk
KGNvbnN0IFVSTCYgY3VycmVudFVSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oCmluZGV4IDY5OTRkZjM4MDcwYjcy
ZjZlNjJjZGRkNjYzN2Y0MDNhNWZiNTQ0NjQuLmRjMjAwMTkwMGY1NWQ2Mjg5OGM4NzQ5MzVkNWRh
N2ZkODI5ZjU0MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9u
QWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaApA
QCAtMjgsMTEgKzI4LDExIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiQWRDbGlja0F0
dHJpYnV0aW9uLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJHbG9iYWxGcmFtZUlkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJMYXlvdXRQb2ludC5oIgorI2luY2x1ZGUgIlByaXZhdGVDbGlja01l
YXN1cmVtZW50LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2Vj
dXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgpAQCAtMTM3
LDggKzEzNyw4IEBAIHB1YmxpYzoKICAgICBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9y
d2FyZExpc3QoKSBjb25zdCB7IHJldHVybiBtX2xvY2tCYWNrRm9yd2FyZExpc3Q7IH0KICAgICB2
b2lkIHNldExvY2tCYWNrRm9yd2FyZExpc3QoTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0Zv
cndhcmRMaXN0KSB7IG1fbG9ja0JhY2tGb3J3YXJkTGlzdCA9IGxvY2tCYWNrRm9yd2FyZExpc3Q7
IH0KIAotICAgIGNvbnN0IE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4mIGFkQ2xpY2tBdHRy
aWJ1dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWRDbGlja0F0dHJpYnV0aW9uOyB9OwotICAgIHZv
aWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uKEFkQ2xpY2tBdHRyaWJ1dGlvbiYmIGFkQ2xpY2tBdHRy
aWJ1dGlvbikgeyBtX2FkQ2xpY2tBdHRyaWJ1dGlvbiA9IGFkQ2xpY2tBdHRyaWJ1dGlvbjsgfTsK
KyAgICBjb25zdCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mIHByaXZhdGVDbGlj
a01lYXN1cmVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsg
fTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50KFByaXZhdGVDbGlja01lYXN1
cmVtZW50JiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIHsgbV9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCA9IHByaXZhdGVDbGlja01lYXN1cmVtZW50OyB9OwogCiBwcml2YXRlOgogICAgIC8vIERv
IG5vdCBhZGQgYSBzdHJvbmcgcmVmZXJlbmNlIHRvIHRoZSBvcmlnaW5hdGluZyBkb2N1bWVudCBv
ciBhIHN1Ym9iamVjdCB0aGF0IGhvbGRzIHRoZQpAQCAtMTU5LDcgKzE1OSw3IEBAIHByaXZhdGU6
CiAgICAgT3B0aW9uYWw8QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcj4gbV9zb3VyY2VCYWNrRm9y
d2FyZEl0ZW1JZGVudGlmaWVyOwogICAgIExvY2tIaXN0b3J5IG1fbG9ja0hpc3RvcnkgeyBMb2Nr
SGlzdG9yeTo6Tm8gfTsKICAgICBMb2NrQmFja0ZvcndhcmRMaXN0IG1fbG9ja0JhY2tGb3J3YXJk
TGlzdCB7IExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vIH07Ci0gICAgT3B0aW9uYWw8QWRDbGlja0F0
dHJpYnV0aW9uPiBtX2FkQ2xpY2tBdHRyaWJ1dGlvbjsKKyAgICBPcHRpb25hbDxQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudD4gbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2N2U2Y2Q4Zjg3NzAxZTg3MDJjMjVhODc2OTQ0
NTI2OTlhNGM3MWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCkBAIC0wLDAgKzEsMjI5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50Lmgi
CisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oIgorI2luY2x1ZGUgPHd0Zi9FeHBlY3RlZC5oPgorI2luY2x1ZGUgPHd0Zi9SYW5kb21OdW1i
ZXIuaD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitzdGF0aWMgY29uc3QgY2hhciBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFBhdGhQ
cmVmaXhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8iOworY29u
c3Qgc2l6ZV90IHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbkRhdGFQYXRoU2VnbWVu
dFNpemUgPSAyOworY29uc3Qgc2l6ZV90IHByaXZhdGVDbGlja01lYXN1cmVtZW50UHJpb3JpdHlQ
YXRoU2VnbWVudFNpemUgPSAyOworY29uc3QgU2Vjb25kcyBtYXhBZ2UgeyAyNF9oICogNyB9Owor
Citib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojppc1ZhbGlkKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9jb252ZXJzaW9uCisgICAgICAgICYmIG1fY29udmVyc2lvbi52YWx1ZSgpLmlzVmFs
aWQoKQorICAgICAgICAmJiBtX2NhbXBhaWduLmlzVmFsaWQoKQorICAgICAgICAmJiAhbV9zb3Vy
Y2UucmVnaXN0cmFibGVEb21haW4uaXNFbXB0eSgpCisgICAgICAgICYmICFtX2Rlc3RpbmF0aW9u
LnJlZ2lzdHJhYmxlRG9tYWluLmlzRW1wdHkoKQorICAgICAgICAmJiBtX2VhcmxpZXN0VGltZVRv
U2VuZDsKK30KKworRXhwZWN0ZWQ8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24s
IFN0cmluZz4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3Qo
Y29uc3QgVVJMJiByZWRpcmVjdFVSTCkKK3sKKyAgICBpZiAoIXJlZGlyZWN0VVJMLnByb3RvY29s
SXMoImh0dHBzIikgfHwgcmVkaXJlY3RVUkwuaGFzQ3JlZGVudGlhbHMoKSB8fCByZWRpcmVjdFVS
TC5oYXNRdWVyeSgpIHx8IHJlZGlyZWN0VVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKSB7Cisg
ICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7CisgICAgICAgICAgICBS
RUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiQ29udmVyc2lvbiB3YXMg
bm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIFVSTCdzIHByb3RvY29sIGlzIG5vdCBIVFRQUyBvciB0
aGUgVVJMIGNvbnRhaW5zIG9uZSBvciBtb3JlIG9mIHVzZXJuYW1lLCBwYXNzd29yZCwgcXVlcnkg
c3RyaW5nLCBhbmQgZnJhZ21lbnQuIik7CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0
ZWQgYmVjYXVzZSB0aGUgVVJMJ3MgcHJvdG9jb2wgaXMgbm90IEhUVFBTIG9yIHRoZSBVUkwgY29u
dGFpbnMgb25lIG9yIG1vcmUgb2YgdXNlcm5hbWUsIHBhc3N3b3JkLCBxdWVyeSBzdHJpbmcsIGFu
ZCBmcmFnbWVudC4iX3MpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChudWxsU3RyaW5nKCkpOworICAgIH0KKworICAgIGF1dG8gcGF0aCA9IFN0cmluZ1ZpZXcocmVk
aXJlY3RVUkwuc3RyaW5nKCkpLnN1YnN0cmluZyhyZWRpcmVjdFVSTC5wYXRoU3RhcnQoKSwgcmVk
aXJlY3RVUkwucGF0aEVuZCgpIC0gcmVkaXJlY3RVUkwucGF0aFN0YXJ0KCkpOworICAgIGlmIChw
YXRoLmlzRW1wdHkoKSB8fCAhcGF0aC5zdGFydHNXaXRoKHByaXZhdGVDbGlja01lYXN1cmVtZW50
UGF0aFByZWZpeCkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkp
IHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQs
ICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMIHBhdGggZGlkIG5v
dCBzdGFydCB3aXRoICUiIFBVQkxJQ19MT0dfU1RSSU5HICIuIiwgcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRQYXRoUHJlZml4KTsKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChtYWtl
U3RyaW5nKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVyc2lvbiB3YXMgbm90IGFj
Y2VwdGVkIGJlY2F1c2UgdGhlIFVSTCBwYXRoIGRpZCBub3Qgc3RhcnQgd2l0aCAiX3MsIHByaXZh
dGVDbGlja01lYXN1cmVtZW50UGF0aFByZWZpeCwgIi4iX3MpKTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygpKTsKKyAgICB9CisKKyAgICBhdXRv
IHByZWZpeExlbmd0aCA9IHNpemVvZihwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFBhdGhQcmVmaXgp
IC0gMTsKKyAgICBpZiAocGF0aC5sZW5ndGgoKSA9PSBwcmVmaXhMZW5ndGggKyBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRTaXplKSB7CisgICAgICAgIGF1
dG8gY29udmVyc2lvbkRhdGFVSW50NjQgPSBwYXRoLnN1YnN0cmluZyhwcmVmaXhMZW5ndGgsIHBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbkRhdGFQYXRoU2VnbWVudFNpemUpLnRvVUlu
dDY0U3RyaWN0KCk7CisgICAgICAgIGlmICghY29udmVyc2lvbkRhdGFVSW50NjQgfHwgKmNvbnZl
cnNpb25EYXRhVUludDY0ID4gTWF4RW50cm9weSkgeworICAgICAgICAgICAgaWYgKFVOTElLRUxZ
KGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZP
KFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJl
Y2F1c2UgdGhlIGNvbnZlcnNpb24gZGF0YSBjb3VsZCBub3QgYmUgcGFyc2VkIG9yIHdhcyBoaWdo
ZXIgdGhhbiB0aGUgYWxsb3dlZCBtYXhpbXVtIG9mICV7cHVibGljfXUuIiwgTWF4RW50cm9weSk7
CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIltQcml2
YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVz
ZSB0aGUgY29udmVyc2lvbiBkYXRhIGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2FzIGhpZ2hlciB0
aGFuIHRoZSBhbGxvd2VkIG1heGltdW0gb2YgIl9zLCBNYXhFbnRyb3B5LCAiLiJfcykpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG51bGxTdHJpbmco
KSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gQ29udmVyc2lvbiB7IHN0YXRpY19jYXN0
PHVpbnQzMl90PigqY29udmVyc2lvbkRhdGFVSW50NjQpLCBQcmlvcml0eSB7IDAgfSB9OworICAg
IH0KKyAgICAKKyAgICBpZiAocGF0aC5sZW5ndGgoKSA9PSBwcmVmaXhMZW5ndGggKyBwcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRTaXplICsgMSArIHByaXZh
dGVDbGlja01lYXN1cmVtZW50UHJpb3JpdHlQYXRoU2VnbWVudFNpemUpIHsKKyAgICAgICAgYXV0
byBjb252ZXJzaW9uRGF0YVVJbnQ2NCA9IHBhdGguc3Vic3RyaW5nKHByZWZpeExlbmd0aCwgcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uRGF0YVBhdGhTZWdtZW50U2l6ZSkudG9VSW50
NjRTdHJpY3QoKTsKKyAgICAgICAgaWYgKCFjb252ZXJzaW9uRGF0YVVJbnQ2NCB8fCAqY29udmVy
c2lvbkRhdGFVSW50NjQgPiBNYXhFbnRyb3B5KSB7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFko
ZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8o
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVj
YXVzZSB0aGUgY29udmVyc2lvbiBkYXRhIGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2FzIGhpZ2hl
ciB0aGFuIHRoZSBhbGxvd2VkIG1heGltdW0gb2YgJXtwdWJsaWN9dS4iLCBNYXhFbnRyb3B5KTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiW1ByaXZh
dGUgQ2xpY2sgTWVhc3VyZW1lbnRdIENvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNl
IHRoZSBjb252ZXJzaW9uIGRhdGEgY291bGQgbm90IGJlIHBhcnNlZCBvciB3YXMgaGlnaGVyIHRo
YW4gdGhlIGFsbG93ZWQgbWF4aW11bSBvZiAiX3MsIE1heEVudHJvcHksICIuIl9zKSk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygp
KTsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gY29udmVyc2lvblByaW9yaXR5VUludDY0ID0g
cGF0aC5zdWJzdHJpbmcocHJlZml4TGVuZ3RoICsgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252
ZXJzaW9uRGF0YVBhdGhTZWdtZW50U2l6ZSArIDEsIHByaXZhdGVDbGlja01lYXN1cmVtZW50UHJp
b3JpdHlQYXRoU2VnbWVudFNpemUpLnRvVUludDY0U3RyaWN0KCk7CisgICAgICAgIGlmICghY29u
dmVyc2lvblByaW9yaXR5VUludDY0IHx8ICpjb252ZXJzaW9uUHJpb3JpdHlVSW50NjQgPiBNYXhF
bnRyb3B5KSB7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkg
eworICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgcHJpb3JpdHkgY291
bGQgbm90IGJlIHBhcnNlZCBvciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQgbWF4aW11bSBv
ZiAle3B1YmxpY311LiIsIE1heEVudHJvcHkpOworICAgICAgICAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChtYWtlU3RyaW5nKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVy
c2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIHByaW9yaXR5IGNvdWxkIG5vdCBiZSBw
YXJzZWQgb3Igd2FzIGhpZ2hlciB0aGFuIHRoZSBhbGxvd2VkIG1heGltdW0gb2YgIl9zLCBNYXhF
bnRyb3B5LCAiLiJfcykpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKG51bGxTdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gQ29u
dmVyc2lvbiB7IHN0YXRpY19jYXN0PHVpbnQzMl90PigqY29udmVyc2lvbkRhdGFVSW50NjQpLCBQ
cmlvcml0eSB7IHN0YXRpY19jYXN0PHVpbnQzMl90PigqY29udmVyc2lvblByaW9yaXR5VUludDY0
KSB9IH07CisgICAgfQorCisgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsK
KyAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkNvbnZl
cnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBVUkwgcGF0aCBjb250YWluZWQgdW5y
ZWNvZ25pemVkIHBhcnRzLiIpOworICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIltQcml2
YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVz
ZSB0aGUgVVJMIHBhdGggY29udGFpbmVkIHVucmVjb2duaXplZCBwYXJ0cy4iX3MpOworICAgIH0K
KyAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygpKTsKK30KKworT3B0aW9uYWw8
U2Vjb25kcz4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRp
bWVUb1NlbmQoQ29udmVyc2lvbiYmIGNvbnZlcnNpb24pCit7CisgICAgaWYgKCFjb252ZXJzaW9u
LmlzVmFsaWQoKSB8fCAobV9jb252ZXJzaW9uICYmIG1fY29udmVyc2lvbi0+cHJpb3JpdHkgPj0g
Y29udmVyc2lvbi5wcmlvcml0eSkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBtX2NvbnZl
cnNpb24gPSBXVEZNb3ZlKGNvbnZlcnNpb24pOworICAgIC8vIDI0LTQ4IGhvdXIgZGVsYXkgYmVm
b3JlIHNlbmRpbmcuIFRoaXMgaGVscHMgcHJpdmFjeSBzaW5jZSB0aGUgY29udmVyc2lvbiBhbmQg
dGhlIGF0dHJpYnV0aW9uCisgICAgLy8gcmVxdWVzdHMgYXJlIGRldGFjaGVkIGFuZCB0aGUgdGlt
ZSBvZiB0aGUgYXR0cmlidXRpb24gZG9lcyBub3QgcmV2ZWFsIHRoZSB0aW1lIG9mIHRoZSBjb252
ZXJzaW9uLgorICAgIGF1dG8gc2Vjb25kcyA9IDI0X2ggKyBTZWNvbmRzKHJhbmRvbU51bWJlcigp
ICogKDI0X2gpLnZhbHVlKCkpOworICAgIG1fZWFybGllc3RUaW1lVG9TZW5kID0gV2FsbFRpbWU6
Om5vdygpICsgc2Vjb25kczsKKyAgICByZXR1cm4gc2Vjb25kczsKK30KKwordm9pZCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6bWFya0FzRXhwaXJlZCgpCit7CisgICAgbV90aW1lT2ZBZENsaWNr
ID0geyB9OworfQorCitib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpoYXNFeHBpcmVkKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gV2FsbFRpbWU6Om5vdygpID4gbV90aW1lT2ZBZENsaWNrICsg
bWF4QWdlOworfQorCitib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpoYXNIaWdoZXJQcmlv
cml0eVRoYW4oY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmIG90aGVyKSBjb25zdAorewor
ICAgIGlmICghb3RoZXIubV9jb252ZXJzaW9uKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAK
KyAgICBpZiAoIW1fY29udmVyc2lvbikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0
dXJuIG1fY29udmVyc2lvbi0+cHJpb3JpdHkgPiBvdGhlci5tX2NvbnZlcnNpb24tPnByaW9yaXR5
OworfQorCitVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnJlcG9ydFVSTCgpIGNvbnN0Cit7
CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBVUkwoKTsKKworICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImh0dHBzOi8vIik7
CisgICAgYnVpbGRlci5hcHBlbmQobV9zb3VyY2UucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkp
OworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFBhdGhQ
cmVmaXgpOworCisgICAgVVJMIHVybCB7IFVSTCgpLCBidWlsZGVyLnRvU3RyaW5nKCkgfTsKKyAg
ICBpZiAodXJsLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIHVybDsKKworICAgIHJldHVybiBV
UkwoKTsKK30KKworUmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ompz
b24oKSBjb25zdAoreworICAgIGF1dG8gcmVwb3J0RGV0YWlscyA9IEpTT046Ok9iamVjdDo6Y3Jl
YXRlKCk7CisgICAgaWYgKCFtX2NvbnZlcnNpb24pCisgICAgICAgIHJldHVybiByZXBvcnREZXRh
aWxzOworCisgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJjb250ZW50LXR5cGUiX3MsICJj
bGljayJfcyk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJjb250ZW50LXNpdGUiX3Ms
IG1fc291cmNlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICByZXBvcnREZXRhaWxz
LT5zZXRJbnRlZ2VyKCJjb250ZW50LWlkIl9zLCBtX2NhbXBhaWduLmlkKTsKKyAgICByZXBvcnRE
ZXRhaWxzLT5zZXRTdHJpbmcoImNvbnZlcnNpb24tc2l0ZSJfcywgbV9kZXN0aW5hdGlvbi5yZWdp
c3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigi
Y29udmVyc2lvbi1kYXRhIl9zLCBtX2NvbnZlcnNpb24tPmRhdGEpOworICAgIHJlcG9ydERldGFp
bHMtPnNldEludGVnZXIoInJlcG9ydC12ZXJzaW9uIl9zLCAxKTsKKyAgICByZXR1cm4gcmVwb3J0
RGV0YWlsczsKK30KKwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6bWFya0NvbnZlcnNp
b25Bc1NlbnQoKQoreworICAgIEFTU0VSVChtX2NvbnZlcnNpb24pOworICAgIGlmIChtX2NvbnZl
cnNpb24pCisgICAgICAgIG1fY29udmVyc2lvbi0+d2FzU2VudCA9IENvbnZlcnNpb246Oldhc1Nl
bnQ6OlllczsKK30KKworYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6d2FzQ29udmVyc2lv
blNlbnQoKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnZlcnNpb24gJiYgbV9jb252ZXJzaW9u
LT53YXNTZW50ID09IENvbnZlcnNpb246Oldhc1NlbnQ6OlllczsKK30KKworU3RyaW5nIFByaXZh
dGVDbGlja01lYXN1cmVtZW50Ojp0b1N0cmluZygpIGNvbnN0Cit7CisgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiU291cmNlOiAiKTsKKyAgICBi
dWlsZGVyLmFwcGVuZChtX3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CisgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkRlc3RpbmF0aW9uOiAiKTsKKyAgICBidWlsZGVyLmFw
cGVuZChtX2Rlc3RpbmF0aW9uLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIlxuQ2FtcGFpZ24gSUQ6ICIpOworICAgIGJ1aWxkZXIuYXBwZW5k
TnVtYmVyKG1fY2FtcGFpZ24uaWQpOworICAgIGlmIChtX2NvbnZlcnNpb24pIHsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkNvbnZlcnNpb24gZGF0YTogIik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTnVtYmVyKG1fY29udmVyc2lvbi52YWx1ZSgpLmRhdGEpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuQ29udmVyc2lvbiBwcmlvcml0eTogIik7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fY29udmVyc2lvbi52YWx1ZSgpLnByaW9yaXR5KTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkNvbnZlcnNpb24gZWFybGllc3QgdGltZSB0
byBzZW5kOiAiKTsKKyAgICAgICAgaWYgKCFtX2VhcmxpZXN0VGltZVRvU2VuZCkKKyAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiTm90IHNldCIpOworICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgIGF1dG8gc2Vjb25kc1VudGlsU2VuZCA9ICptX2VhcmxpZXN0VGltZVRvU2VuZCAt
IFdhbGxUaW1lOjpub3coKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKChzZWNvbmRzVW50
aWxTZW5kID49IDI0X2ggJiYgc2Vjb25kc1VudGlsU2VuZCA8PSA0OF9oKSA/ICJXaXRoaW4gMjQt
NDggaG91cnMiIDogIk91dHNpZGUgMjQtNDggaG91cnMiKTsKKyAgICAgICAgfQorICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6ICIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZCgod2FzQ29udmVyc2lvblNlbnQoKSA/ICJ0cnVlIiA6ICJmYWxz
ZSIpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbk5vIGNv
bnZlcnNpb24gZGF0YS4iKTsKKyAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKKworICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7Cit9CisKK2Jvb2wgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OmRlYnVnTW9kZUVuYWJsZWQoKQoreworICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLnByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxl
ZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2MDJmN2NjNjlhZGFlODkzYTk3MmZlZjM0NTA4YTBmNTE0
M2E1MjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuaApAQCAtMCwwICsxLDM2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiUmVnaXN0cmFibGVEb21haW4uaCIKKyNpbmNsdWRlIDx3dGYvQ29t
cGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0
Zi9KU09OVmFsdWVzLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3Rm
L1VSTC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0hhc2guaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB7CitwdWJsaWM6Cisg
ICAgdXNpbmcgQ2FtcGFpZ25JZCA9IHVpbnQzMl90OworICAgIHVzaW5nIENvbnZlcnNpb25EYXRh
ID0gdWludDMyX3Q7CisgICAgdXNpbmcgUHJpb3JpdHlWYWx1ZSA9IHVpbnQzMl90OworCisgICAg
c3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBNYXhFbnRyb3B5ID0gNjM7CisKKyAgICBzdHJ1Y3Qg
Q2FtcGFpZ24geworICAgICAgICBDYW1wYWlnbigpID0gZGVmYXVsdDsKKyAgICAgICAgZXhwbGlj
aXQgQ2FtcGFpZ24oQ2FtcGFpZ25JZCBpZCkKKyAgICAgICAgICAgIDogaWQgeyBpZCB9CisgICAg
ICAgIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QK
KyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGlkIDw9IE1heEVudHJvcHk7CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIENhbXBhaWduSWQgaWQgeyAwIH07CisgICAgfTsKKworICAg
IHN0cnVjdCBTb3VyY2UgeworICAgICAgICBTb3VyY2UoKSA9IGRlZmF1bHQ7CisgICAgICAgIGV4
cGxpY2l0IFNvdXJjZShjb25zdCBVUkwmIHVybCkKKyAgICAgICAgICAgIDogcmVnaXN0cmFibGVE
b21haW4geyB1cmwgfQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBleHBsaWNpdCBT
b3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKKyAgICAgICAgICAgIDogcmVn
aXN0cmFibGVEb21haW4geyBkb21haW4gfQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAg
ICBleHBsaWNpdCBTb3VyY2UoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQorICAgICAg
ICAgICAgOiByZWdpc3RyYWJsZURvbWFpbihXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSkKKyAg
ICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNvdXJj
ZSYgb3RoZXIpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByZWdpc3RyYWJs
ZURvbWFpbiA9PSBvdGhlci5yZWdpc3RyYWJsZURvbWFpbjsKKyAgICAgICAgfQorCisgICAgICAg
IGJvb2wgbWF0Y2hlcyhjb25zdCBVUkwmIHVybCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIHJlZ2lzdHJhYmxlRG9tYWluLm1hdGNoZXModXJsKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdAorICAgICAgICB7Cisg
ICAgICAgICAgICByZXR1cm4gcmVnaXN0cmFibGVEb21haW4uaXNIYXNoVGFibGVEZWxldGVkVmFs
dWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBTb3VyY2UgZGVsZXRlZFZhbHVlKCkK
KyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIFNvdXJjZSB7IFdURjo6SGFzaFRhYmxlRGVs
ZXRlZFZhbHVlIH07CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3RE
ZWxldGVkVmFsdWUoU291cmNlJiBzb3VyY2UpCisgICAgICAgIHsKKyAgICAgICAgICAgIG5ldyAo
JnNvdXJjZSkgU291cmNlOworICAgICAgICAgICAgc291cmNlID0gU291cmNlOjpkZWxldGVkVmFs
dWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZGVsZXRlVmFsdWUoKQorICAgICAgICB7
CisgICAgICAgICAgICByZWdpc3RyYWJsZURvbWFpbiA9IFJlZ2lzdHJhYmxlRG9tYWluIHsgV1RG
OjpIYXNoVGFibGVEZWxldGVkVmFsdWUgfTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgaXNE
ZWxldGVkVmFsdWUoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaXNIYXNo
VGFibGVEZWxldGVkVmFsdWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIFJlZ2lzdHJhYmxlRG9t
YWluIHJlZ2lzdHJhYmxlRG9tYWluOworICAgIH07CisKKyAgICBzdHJ1Y3QgU291cmNlSGFzaCB7
CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFNvdXJjZSYgc291cmNlKQorICAg
ICAgICB7CisgICAgICAgICAgICByZXR1cm4gc291cmNlLnJlZ2lzdHJhYmxlRG9tYWluLmhhc2go
KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3Qg
U291cmNlJiBhLCBjb25zdCBTb3VyY2UmIGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVy
biBhID09IGI7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9D
b21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOworICAgIH07CisKKyAgICBzdHJ1Y3QgRGVz
dGluYXRpb24geworICAgICAgICBEZXN0aW5hdGlvbigpID0gZGVmYXVsdDsKKyAgICAgICAgZXhw
bGljaXQgRGVzdGluYXRpb24oY29uc3QgVVJMJiB1cmwpCisgICAgICAgICAgICA6IHJlZ2lzdHJh
YmxlRG9tYWluIHsgUmVnaXN0cmFibGVEb21haW4geyB1cmwgfSB9CisgICAgICAgIHsKKyAgICAg
ICAgfQorCisgICAgICAgIGV4cGxpY2l0IERlc3RpbmF0aW9uKFdURjo6SGFzaFRhYmxlRGVsZXRl
ZFZhbHVlVHlwZSkKKyAgICAgICAgICAgIDogcmVnaXN0cmFibGVEb21haW4geyBXVEY6Okhhc2hU
YWJsZURlbGV0ZWRWYWx1ZSB9CisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIGV4cGxp
Y2l0IERlc3RpbmF0aW9uKFJlZ2lzdHJhYmxlRG9tYWluJiYgZG9tYWluKQorICAgICAgICAgICAg
OiByZWdpc3RyYWJsZURvbWFpbiB7IFdURk1vdmUoZG9tYWluKSB9CisgICAgICAgIHsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IERlc3RpbmF0aW9u
JiBvdGhlcikgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhYmxl
RG9tYWluID09IG90aGVyLnJlZ2lzdHJhYmxlRG9tYWluOworICAgICAgICB9CisKKyAgICAgICAg
Ym9vbCBtYXRjaGVzKGNvbnN0IFVSTCYgdXJsKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAg
ICByZXR1cm4gcmVnaXN0cmFibGVEb21haW4gPT0gUmVnaXN0cmFibGVEb21haW4geyB1cmwgfTsK
KyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1
ZSgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByZWdpc3RyYWJsZURvbWFp
bi5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGlj
IERlc3RpbmF0aW9uIGRlbGV0ZWRWYWx1ZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVy
biBEZXN0aW5hdGlvbiB7IFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlIH07CisgICAgICAgIH0K
KworICAgICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoRGVzdGluYXRpb24m
IGRlc3RpbmF0aW9uKQorICAgICAgICB7CisgICAgICAgICAgICBuZXcgKCZkZXN0aW5hdGlvbikg
RGVzdGluYXRpb247CisgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IERlc3RpbmF0aW9uOjpkZWxl
dGVkVmFsdWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZGVsZXRlVmFsdWUoKQorICAg
ICAgICB7CisgICAgICAgICAgICByZWdpc3RyYWJsZURvbWFpbiA9IFJlZ2lzdHJhYmxlRG9tYWlu
IHsgV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWUgfTsKKyAgICAgICAgfQorCisgICAgICAgIGJv
b2wgaXNEZWxldGVkVmFsdWUoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4g
aXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIFJlZ2lzdHJh
YmxlRG9tYWluIHJlZ2lzdHJhYmxlRG9tYWluOworICAgIH07CisKKyAgICBzdHJ1Y3QgRGVzdGlu
YXRpb25IYXNoIHsKKyAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgRGVzdGluYXRp
b24mIGRlc3RpbmF0aW9uKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZGVzdGluYXRp
b24ucmVnaXN0cmFibGVEb21haW4uaGFzaCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBEZXN0aW5hdGlvbiYgYSwgY29uc3QgRGVzdGluYXRp
b24mIGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBhID09IGI7CisgICAgICAgIH0K
KworICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRl
ZCA9IGZhbHNlOworICAgIH07CisKKyAgICBzdHJ1Y3QgUHJpb3JpdHkgeworICAgICAgICBleHBs
aWNpdCBQcmlvcml0eShQcmlvcml0eVZhbHVlIHZhbHVlKQorICAgICAgICA6IHZhbHVlIHsgdmFs
dWUgfQorICAgICAgICB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFByaW9yaXR5VmFs
dWUgdmFsdWU7CisgICAgfTsKKyAgICAKKyAgICBzdHJ1Y3QgQ29udmVyc2lvbiB7CisgICAgICAg
IGVudW0gY2xhc3MgV2FzU2VudCA6IGJvb2wgeyBObywgWWVzIH07CisgICAgICAgIAorICAgICAg
ICBDb252ZXJzaW9uKENvbnZlcnNpb25EYXRhIGRhdGEsIFByaW9yaXR5IHByaW9yaXR5LCBXYXNT
ZW50IHdhc1NlbnQgPSBXYXNTZW50OjpObykKKyAgICAgICAgICAgIDogZGF0YSB7IGRhdGEgfQor
ICAgICAgICAgICAgLCBwcmlvcml0eSB7IHByaW9yaXR5LnZhbHVlIH0KKyAgICAgICAgICAgICwg
d2FzU2VudCB7IHdhc1NlbnQgfQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBib29s
IGlzVmFsaWQoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZGF0YSA8PSBN
YXhFbnRyb3B5ICYmIHByaW9yaXR5IDw9IE1heEVudHJvcHk7CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIENvbnZlcnNpb25EYXRhIGRhdGE7CisgICAgICAgIFByaW9yaXR5VmFsdWUgcHJp
b3JpdHk7CisgICAgICAgIFdhc1NlbnQgd2FzU2VudCA9IFdhc1NlbnQ6Ok5vOworCisgICAgICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAg
ICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPENvbnZlcnNpb24+
IGRlY29kZShEZWNvZGVyJik7CisgICAgfTsKKworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50
KCkgPSBkZWZhdWx0OworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50KENhbXBhaWduIGNhbXBh
aWduLCBjb25zdCBTb3VyY2UmIHNvdXJjZSwgY29uc3QgRGVzdGluYXRpb24mIGRlc3RpbmF0aW9u
KQorICAgICAgICA6IG1fY2FtcGFpZ24geyBjYW1wYWlnbiB9CisgICAgICAgICwgbV9zb3VyY2Ug
eyBzb3VyY2UgfQorICAgICAgICAsIG1fZGVzdGluYXRpb24geyBkZXN0aW5hdGlvbiB9CisgICAg
ICAgICwgbV90aW1lT2ZBZENsaWNrIHsgV2FsbFRpbWU6Om5vdygpIH0KKyAgICB7CisgICAgfQor
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEV4cGVjdGVkPENvbnZlcnNpb24sIFN0cmluZz4g
cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb25zdCBVUkwmIHJlZGlyZWN0VVJMKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCBPcHRpb25hbDxTZWNvbmRzPiBjb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9T
ZW5kKENvbnZlcnNpb24mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNIaWdoZXJQcmlv
cml0eVRoYW4oY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBVUkwgcmVwb3J0VVJMKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVm
PEpTT046Ok9iamVjdD4ganNvbigpIGNvbnN0OworICAgIGNvbnN0IFNvdXJjZSYgc291cmNlKCkg
Y29uc3QgeyByZXR1cm4gbV9zb3VyY2U7IH07CisgICAgY29uc3QgRGVzdGluYXRpb24mIGRlc3Rp
bmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvbjsgfTsKKyAgICBPcHRpb25hbDxX
YWxsVGltZT4gZWFybGllc3RUaW1lVG9TZW5kKCkgY29uc3QgeyByZXR1cm4gbV9lYXJsaWVzdFRp
bWVUb1NlbmQ7IH07CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtYXJrQXNFeHBpcmVkKCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNFeHBpcmVkKCkgY29uc3Q7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBtYXJrQ29udmVyc2lvbkFzU2VudCgpOworICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgd2FzQ29udmVyc2lvblNlbnQoKSBjb25zdDsKKworICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0
IHsgcmV0dXJuIG1fc291cmNlLnJlZ2lzdHJhYmxlRG9tYWluLmlzRW1wdHkoKTsgfTsKKworICAg
IFdFQkNPUkVfRVhQT1JUIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OworCisgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4g
ZGVjb2RlKERlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICBib29sIGlzVmFsaWQoKSBjb25zdDsK
KyAgICBzdGF0aWMgYm9vbCBkZWJ1Z01vZGVFbmFibGVkKCk7CisKKyAgICBDYW1wYWlnbiBtX2Nh
bXBhaWduOworICAgIFNvdXJjZSBtX3NvdXJjZTsKKyAgICBEZXN0aW5hdGlvbiBtX2Rlc3RpbmF0
aW9uOworICAgIFdhbGxUaW1lIG1fdGltZU9mQWRDbGljazsKKworICAgIE9wdGlvbmFsPENvbnZl
cnNpb24+IG1fY29udmVyc2lvbjsKKyAgICBPcHRpb25hbDxXYWxsVGltZT4gbV9lYXJsaWVzdFRp
bWVUb1NlbmQ7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5j
b2RlciA8PCBtX2NhbXBhaWduLmlkIDw8IG1fc291cmNlLnJlZ2lzdHJhYmxlRG9tYWluIDw8IG1f
ZGVzdGluYXRpb24ucmVnaXN0cmFibGVEb21haW4gPDwgbV90aW1lT2ZBZENsaWNrIDw8IG1fY29u
dmVyc2lvbiA8PCBtX2VhcmxpZXN0VGltZVRvU2VuZDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4KK09wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8Q2FtcGFp
Z25JZD4gY2FtcGFpZ25JZDsKKyAgICBkZWNvZGVyID4+IGNhbXBhaWduSWQ7CisgICAgaWYgKCFj
YW1wYWlnbklkKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIAorICAgIE9wdGlv
bmFsPFJlZ2lzdHJhYmxlRG9tYWluPiBzb3VyY2VSZWdpc3RyYWJsZURvbWFpbjsKKyAgICBkZWNv
ZGVyID4+IHNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluOworICAgIGlmICghc291cmNlUmVnaXN0cmFi
bGVEb21haW4pCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgT3B0aW9u
YWw8UmVnaXN0cmFibGVEb21haW4+IGRlc3RpbmF0aW9uUmVnaXN0cmFibGVEb21haW47CisgICAg
ZGVjb2RlciA+PiBkZXN0aW5hdGlvblJlZ2lzdHJhYmxlRG9tYWluOworICAgIGlmICghZGVzdGlu
YXRpb25SZWdpc3RyYWJsZURvbWFpbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAg
ICAKKyAgICBPcHRpb25hbDxXYWxsVGltZT4gdGltZU9mQWRDbGljazsKKyAgICBkZWNvZGVyID4+
IHRpbWVPZkFkQ2xpY2s7CisgICAgaWYgKCF0aW1lT2ZBZENsaWNrKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworICAgIAorICAgIE9wdGlvbmFsPE9wdGlvbmFsPENvbnZlcnNpb24+PiBj
b252ZXJzaW9uOworICAgIGRlY29kZXIgPj4gY29udmVyc2lvbjsKKyAgICBpZiAoIWNvbnZlcnNp
b24pCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgT3B0aW9uYWw8T3B0
aW9uYWw8V2FsbFRpbWU+PiBlYXJsaWVzdFRpbWVUb1NlbmQ7CisgICAgZGVjb2RlciA+PiBlYXJs
aWVzdFRpbWVUb1NlbmQ7CisgICAgaWYgKCFlYXJsaWVzdFRpbWVUb1NlbmQpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0
cmlidXRpb24geyBDYW1wYWlnbiB7IFdURk1vdmUoKmNhbXBhaWduSWQpIH0sIFNvdXJjZSB7IFdU
Rk1vdmUoKnNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluKSB9LCBEZXN0aW5hdGlvbiB7IFdURk1vdmUo
KmRlc3RpbmF0aW9uUmVnaXN0cmFibGVEb21haW4pIH0gfTsKKyAgICBhdHRyaWJ1dGlvbi5tX2Nv
bnZlcnNpb24gPSBXVEZNb3ZlKCpjb252ZXJzaW9uKTsKKyAgICBhdHRyaWJ1dGlvbi5tX2Vhcmxp
ZXN0VGltZVRvU2VuZCA9IFdURk1vdmUoKmVhcmxpZXN0VGltZVRvU2VuZCk7CisgICAgCisgICAg
cmV0dXJuIGF0dHJpYnV0aW9uOworfQorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBkYXRhIDw8IHByaW9yaXR5IDw8IHdhc1NlbnQ7
Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6Q29udmVyc2lvbj4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb246
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPENvbnZlcnNpb25EYXRh
PiBkYXRhOworICAgIGRlY29kZXIgPj4gZGF0YTsKKyAgICBpZiAoIWRhdGEpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgT3B0aW9uYWw8UHJpb3JpdHlWYWx1ZT4gcHJp
b3JpdHk7CisgICAgZGVjb2RlciA+PiBwcmlvcml0eTsKKyAgICBpZiAoIXByaW9yaXR5KQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIAorICAgIE9wdGlvbmFsPFdhc1NlbnQ+IHdh
c1NlbnQ7CisgICAgZGVjb2RlciA+PiB3YXNTZW50OworICAgIGlmICghd2FzU2VudCkKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAKKyAgICByZXR1cm4gQ29udmVyc2lvbiB7IFdU
Rk1vdmUoKmRhdGEpLCBQcmlvcml0eSB7ICpwcmlvcml0eSB9LCAqd2FzU2VudCB9OworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgewordGVtcGxhdGU8dHlwZW5h
bWUgVD4gc3RydWN0IERlZmF1bHRIYXNoOworCit0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFz
aDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlPiA6IFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VIYXNoIHsgfTsKK3RlbXBsYXRlPD4gc3RydWN0
IEhhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZT4gOiBH
ZW5lcmljSGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNl
PiB7CisgICAgc3RhdGljIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2Ug
ZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQorICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERl
bGV0ZWRWYWx1ZShXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlJiBzbG90
KSB7IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2U6OmNvbnN0cnVjdERl
bGV0ZWRWYWx1ZShzbG90KTsgfQorICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0
IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UmIHNsb3QpIHsgcmV0dXJu
IHNsb3QuaXNEZWxldGVkVmFsdWUoKTsgfQorfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVs
dEhhc2g8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uPiA6IFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbkhhc2ggeyB9OwordGVt
cGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6RGVzdGluYXRpb24+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uPiB7CisgICAgc3RhdGljIFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiBlbXB0eVZhbHVlKCkgeyByZXR1cm4geyB9OyB9
CisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiYgc2xvdCkgeyBXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb246OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZShzbG90KTsg
fQorICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiYgc2xvdCkgeyByZXR1cm4gc2xvdC5pc0RlbGV0
ZWRWYWx1ZSgpOyB9Cit9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaAppbmRleCBmYTIwMGRhMWYwZjM1MGQyN2QwOTRlYjdjZTU2NGE4NjJhOGJmZTAw
Li5mODA0ZjA3M2UwOWY2ZmY1YTRlNWY0YjY0OTgzMmYzYWFhNDdlNTg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMjAzLDggKzIwMyw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldExpbmVIZWlnaHRVbml0c0VuYWJsZWQoYm9vbCBpc0VuYWJs
ZWQpIHsgbV9saW5lSGVpZ2h0VW5pdHNFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCBs
aW5lSGVpZ2h0VW5pdHNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9saW5lSGVpZ2h0VW5pdHNF
bmFibGVkOyB9CiAKLSAgICBib29sIGFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX2FkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQ7IH0K
LSAgICB2b2lkIHNldEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQoYm9vbCBpc0Vu
YWJsZWQpIHsgbV9hZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkID0gaXNFbmFibGVk
OyB9CisgICAgYm9vbCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZDsg
fQorICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkKGJv
b2wgaXNFbmFibGVkKSB7IG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVk
ID0gaXNFbmFibGVkOyB9CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIGJvb2wgbW91
c2VFdmVudHNTaW11bGF0aW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2VFdmVudHNT
aW11bGF0aW9uRW5hYmxlZDsgfQpAQCAtMzQ2LDcgKzM0Niw3IEBAIHByaXZhdGU6CiAgICAgLy8g
aHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzMyNTcgaGF2ZSBiZWVu
IHNvcnRlZCBvdXQuCiAgICAgYm9vbCBtX2xpbmVIZWlnaHRVbml0c0VuYWJsZWQgeyBmYWxzZSB9
OwogCi0gICAgYm9vbCBtX2FkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQgeyBmYWxz
ZSB9OworICAgIGJvb2wgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQg
eyBmYWxzZSB9OwogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBib29sIG1fbW91c2VF
dmVudHNTaW11bGF0aW9uRW5hYmxlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5n
LmgKaW5kZXggYjUzOWJkZTJjZjkzNGIwZjAyNGY4ZDYwZjE2ZGYxNGM5YTUzZjg2OS4uYmY5Yzk1
ZTVjNDBlODBiOGNiMDA1ZDI1MGQ1Zjc1MDFjZjFiMjQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Z2dpbmcuaApAQCAtMzksNyArMzksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNkZWZpbmUg
V0VCQ09SRV9MT0dfQ0hBTk5FTFMoTSkgXAogICAgIE0oQWNjZXNzaWJpbGl0eSkgXAotICAgIE0o
QWRDbGlja0F0dHJpYnV0aW9uKSBcCiAgICAgTShBbmltYXRpb25zKSBcCiAgICAgTShBcHBsZVBh
eSkgXAogICAgIE0oQXJjaGl2ZXMpIFwKQEAgLTkxLDYgKzkwLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIE0oUGxhdGZvcm1MZWFrcykgXAogICAgIE0oUGx1Z2lucykgXAogICAgIE0oUG9w
dXBCbG9ja2luZykgXAorICAgIE0oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIFwKICAgICBNKFBy
b2dyZXNzKSBcCiAgICAgTShSZW1vdGVJbnNwZWN0b3IpIFwKICAgICBNKFJlcXVlc3RBbmltYXRp
b25GcmFtZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlv
bnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9M
b2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggNTRmYTI1YjUw
ZWYwMTczZmJmODQzY2Y5M2JlM2MwZmZlYTMxZGQyYi4uYjk4ZTQ4NGE1ODcyMTIzM2NmN2MzMWM5
Y2Y3ODUwYzY4MTBkYTRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2Fs
aXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC05
OTMsNiArOTkzLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siUHJldmlvdXMgU2libGluZyJdID0gIlBy
ZXZpb3VzIFNpYmxpbmciOwogbG9jYWxpemVkU3RyaW5nc1siUHJpbWFyeSBLZXkiXSA9ICJQcmlt
YXJ5IEtleSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJQcmltYXJ5IEtleSBcdTIwMTQgJXMiXSA9ICJQ
cmltYXJ5IEtleSBcdTIwMTQgJXMiOwogbG9jYWxpemVkU3RyaW5nc1siUHJpb3JpdHkiXSA9ICJQ
cmlvcml0eSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50IERl
YnVnIE1vZGUiXSA9ICJQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50IERlYnVnIE1vZGUiOwogbG9j
YWxpemVkU3RyaW5nc1siUHJvYmUgRXhwcmVzc2lvbiJdID0gIlByb2JlIEV4cHJlc3Npb24iOwog
bG9jYWxpemVkU3RyaW5nc1siUHJvYmUgU2FtcGxlIFJlY29yZGVkIl0gPSAiUHJvYmUgU2FtcGxl
IFJlY29yZGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIlByb2JlcyJdID0gIlByb2JlcyI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKaW5kZXgg
MzM4MmEyMWFiYTJkODA4ODg2OTI0MjE2OWYzZTc1ZDQxMGQ3OTg3My4uOGZjNGM1MjE5YzFjNjRi
MTFlMTU3YTkyZjYxY2JiMDljNjM2MjYzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtMjM0NCw2ICsyMzQ0LDggQEAgV0kuX2hh
bmRsZURldmljZVNldHRpbmdzVGFiQmFyQnV0dG9uQ2xpY2tlZCA9IGZ1bmN0aW9uKGV2ZW50KQog
ICAgICAgICAgICAgY29sdW1uczogWwogICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAg
ICAgICAge25hbWU6IFdJLlVJU3RyaW5nKCJJVFAgRGVidWcgTW9kZSIpLCBzZXR0aW5nOiBJbnNw
ZWN0b3JCYWNrZW5kLkVudW0uUGFnZS5TZXR0aW5nLklUUERlYnVnTW9kZUVuYWJsZWQsIHZhbHVl
OiB0cnVlfSwKKyAgICAgICAgICAgICAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDE0LjAp
OiBgUGFnZS5TZXR0aW5nLkFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWRgIHdhcyBy
ZW5hbWVkIHRvIGBQYWdlLlNldHRpbmcuUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVF
bmFibGVkYC4KKyAgICAgICAgICAgICAgICAgICAge25hbWU6IFdJLlVJU3RyaW5nKCJQcml2YXRl
IENsaWNrIE1lYXN1cmVtZW50IERlYnVnIE1vZGUiKSwgc2V0dGluZzogSW5zcGVjdG9yQmFja2Vu
ZC5FbnVtLlBhZ2UuU2V0dGluZy5Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJs
ZWQsIHZhbHVlOiB0cnVlfSwKICAgICAgICAgICAgICAgICAgICAge25hbWU6IFdJLlVJU3RyaW5n
KCJBZCBDbGljayBBdHRyaWJ1dGlvbiBEZWJ1ZyBNb2RlIiksIHNldHRpbmc6IEluc3BlY3RvckJh
Y2tlbmQuRW51bS5QYWdlLlNldHRpbmcuQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxl
ZCwgdmFsdWU6IHRydWV9LAogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICBdLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NvbnNv
bGVNZXNzYWdlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0NvbnNvbGVNZXNzYWdlLmpzCmluZGV4IGJlNzg3OGUwYjc1MzBlZjc0YmUyOTRhYmZkZjljNTA0
YzE0YzE4MjIuLjQ5OGMyYTQyNjJhZDdiYTZiZDVlMjE5YzZkMGE3ZDZmOWM5MDFlNTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Db25zb2xl
TWVzc2FnZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvQ29uc29sZU1lc3NhZ2UuanMKQEAgLTExMyw4ICsxMTMsMTEgQEAgV0kuQ29uc29sZU1lc3Nh
Z2UuTWVzc2FnZVNvdXJjZSA9IHsKICAgICBNZWRpYVNvdXJjZTogIm1lZGlhc291cmNlIiwKICAg
ICBXZWJSVEM6ICJ3ZWJydGMiLAogICAgIElUUERlYnVnOiAiaXRwLWRlYnVnIiwKLSAgICBBZENs
aWNrQXR0cmlidXRpb246ICJhZC1jbGljay1hdHRyaWJ1dGlvbiIsCisgICAgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6ICJwcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50IiwKICAgICBPdGhlcjogIm90
aGVyIiwKKworICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxNC4wKTogYENvbnNvbGUuQ2hhbm5l
bFNvdXJjZS5BZENsaWNrQXR0cmlidXRpb25gIHdhcyByZW5hbWVkIHRvIGBDb25zb2xlLkNoYW5u
ZWxTb3VyY2UuUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRgLgorICAgIEFkQ2xpY2tBdHRyaWJ1dGlv
bjogImFkLWNsaWNrLWF0dHJpYnV0aW9uIiwKIH07CiAKIFdJLkNvbnNvbGVNZXNzYWdlLk1lc3Nh
Z2VUeXBlID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL0lzc3VlTWVzc2FnZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9Jc3N1ZU1lc3NhZ2UuanMKaW5kZXggMmQ4ODE3NWI2ZWU2NzY3YzgzZGM0
NTQ3OWJjYTkzZTk1NDNhYmI1Zi4uNzYyNWJmNmJkZmNkMWZlNzcxM2Y1YmNhZjI5NjY3YjVlNDA4
MTM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0lzc3VlTWVzc2FnZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvSXNzdWVNZXNzYWdlLmpzCkBAIC02OSw3ICs2OSw4IEBAIFdJLklzc3VlTWVz
c2FnZSA9IGNsYXNzIElzc3VlTWVzc2FnZSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBjYXNl
IFdJLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UuTWVkaWFzb3VyY2U6CiAgICAgICAgIGNh
c2UgV0kuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5XZWJSVEM6CiAgICAgICAgIGNhc2Ug
V0kuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5JVFBEZWJ1ZzoKLSAgICAgICAgY2FzZSBX
SS5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLkFkQ2xpY2tBdHRyaWJ1dGlvbjoKKyAgICAg
ICAgY2FzZSBXSS5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLlByaXZhdGVDbGlja01lYXN1
cmVtZW50OgorICAgICAgICBjYXNlIFdJLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UuQWRD
bGlja0F0dHJpYnV0aW9uOiAvLyBDT01QQVRJQklMSVRZIChpT1MgMTQuMCk6IGBDb25zb2xlLkNo
YW5uZWxTb3VyY2UuQWRDbGlja0F0dHJpYnV0aW9uYCB3YXMgcmVuYW1lZCB0byBgQ29uc29sZS5D
aGFubmVsU291cmNlLlByaXZhdGVDbGlja01lYXN1cmVtZW50YC4KICAgICAgICAgY2FzZSBXSS5D
b25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLk90aGVyOgogICAgICAgICAgICAgdGhpcy5fdHlw
ZSA9IFdJLklzc3VlTWVzc2FnZS5UeXBlLk90aGVySXNzdWU7CiAgICAgICAgICAgICBicmVhazsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0
aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0FkQ2xpY2tBdHRy
aWJ1dGlvbk1hbmFnZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNzQ2MmU2
NTBiNDA1MmVhYjFlNDc2NzZkMDFiMmNjNGRlNzQ3ZTIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQWRD
bGlja0F0dHJpYnV0aW9uTWFuYWdlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzMzYgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJBZENsaWNrQXR0
cmlidXRpb25NYW5hZ2VyLmgiCi0KLSNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9GZXRjaE9wdGlv
bnMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Zvcm1EYXRhLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9I
VFRQSGVhZGVyVmFsdWVzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlUmVzcG9uc2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgotI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
Ci0KLXVzaW5nIFNvdXJjZSA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlOwotdXNpbmcgRGVz
dGluYXRpb24gPSBBZENsaWNrQXR0cmlidXRpb246OkRlc3RpbmF0aW9uOwotdXNpbmcgRGVzdGlu
YXRpb25NYXAgPSBIYXNoTWFwPERlc3RpbmF0aW9uLCBBZENsaWNrQXR0cmlidXRpb24+OwotdXNp
bmcgQ29udmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lvbjsKLQotY29uc3Rl
eHByIFNlY29uZHMgZGVidWdNb2RlU2Vjb25kc1VudGlsU2VuZCB7IDYwX3MgfTsKLQotdm9pZCBB
ZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyOjpzdG9yZVVuY29udmVydGVkKEFkQ2xpY2tBdHRyaWJ1
dGlvbiYmIGF0dHJpYnV0aW9uKQotewotICAgIGNsZWFyRXhwaXJlZCgpOwotCi0gICAgaWYgKFVO
TElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhB
ZENsaWNrQXR0cmlidXRpb24sICJTdG9yaW5nIGFuIGFkIGNsaWNrLiIpOwotICAgICAgICBtX25l
dHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2Fn
ZVNvdXJjZTo6QWRDbGlja0F0dHJpYnV0aW9uLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiW0FkIENs
aWNrIEF0dHJpYnV0aW9uXSBTdG9yaW5nIGFuIGFkIGNsaWNrLiJfcyk7Ci0gICAgfQotCi0gICAg
bV91bmNvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcC5zZXQoc3RkOjptYWtlX3BhaXIoYXR0
cmlidXRpb24uc291cmNlKCksIGF0dHJpYnV0aW9uLmRlc3RpbmF0aW9uKCkpLCBXVEZNb3ZlKGF0
dHJpYnV0aW9uKSk7Ci19Ci0KLXZvaWQgQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlcjo6aGFuZGxl
Q29udmVyc2lvbihDb252ZXJzaW9uJiYgY29udmVyc2lvbiwgY29uc3QgVVJMJiByZXF1ZXN0VVJM
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVzdCkKLXsKLSAg
ICBpZiAobV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3REb21haW4geyByZWRpcmVjdFJlcXVlc3QudXJsKCkg
fTsKLSAgICBhdXRvJiBmaXJzdFBhcnR5VVJMID0gcmVkaXJlY3RSZXF1ZXN0LmZpcnN0UGFydHlG
b3JDb29raWVzKCk7Ci0KLSAgICBpZiAoIXJlZGlyZWN0RG9tYWluLm1hdGNoZXMocmVxdWVzdFVS
TCkpIHsKLSAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0lORk8oQWRDbGlja0F0dHJpYnV0aW9uLCAiQ29udmVyc2lvbiB3
YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIEhUVFAgcmVkaXJlY3Qgd2FzIG5vdCBzYW1lLXNp
dGUuIik7Ci0gICAgICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVz
c2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6QWRDbGlja0F0dHJpYnV0aW9uLCBNZXNz
YWdlTGV2ZWw6OkVycm9yLCAiW0FkIENsaWNrIEF0dHJpYnV0aW9uXSBDb252ZXJzaW9uIHdhcyBu
b3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgSFRUUCByZWRpcmVjdCB3YXMgbm90IHNhbWUtc2l0ZS4i
X3MpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAocmVkaXJl
Y3REb21haW4ubWF0Y2hlcyhmaXJzdFBhcnR5VVJMKSkgewotICAgICAgICBpZiAoVU5MSUtFTFko
ZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhBZENs
aWNrQXR0cmlidXRpb24sICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSBpdCB3
YXMgcmVxdWVzdGVkIGluIGFuIEhUVFAgcmVkaXJlY3QgdGhhdCBpcyBzYW1lLXNpdGUgYXMgdGhl
IGZpcnN0LXBhcnR5LiIpOwotICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0
Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1
dGlvbiwgTWVzc2FnZUxldmVsOjpFcnJvciwgIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gQ29udmVy
c2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgaXQgd2FzIHJlcXVlc3RlZCBpbiBhbiBIVFRQ
IHJlZGlyZWN0IHRoYXQgaXMgc2FtZS1zaXRlIGFzIHRoZSBmaXJzdC1wYXJ0eS4iX3MpOwotICAg
ICAgICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBjb252ZXJ0KEFkQ2xpY2tBdHRy
aWJ1dGlvbjo6U291cmNlIHsgV1RGTW92ZShyZWRpcmVjdERvbWFpbikgfSwgQWRDbGlja0F0dHJp
YnV0aW9uOjpEZXN0aW5hdGlvbiB7IGZpcnN0UGFydHlVUkwgfSwgV1RGTW92ZShjb252ZXJzaW9u
KSk7Ci19Ci0KLXZvaWQgQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlcjo6c3RhcnRUaW1lcihTZWNv
bmRzIHNlY29uZHMpCi17Ci0gICAgbV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVy
LnN0YXJ0T25lU2hvdChtX2lzUnVubmluZ1Rlc3QgPyAwX3MgOiBzZWNvbmRzKTsKLX0KLQotdm9p
ZCBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyOjpjb252ZXJ0KGNvbnN0IFNvdXJjZSYgc291cmNl
LCBjb25zdCBEZXN0aW5hdGlvbiYgZGVzdGluYXRpb24sIENvbnZlcnNpb24mJiBjb252ZXJzaW9u
KQotewotICAgIGNsZWFyRXhwaXJlZCgpOwotCi0gICAgaWYgKCFjb252ZXJzaW9uLmlzVmFsaWQo
KSkgewotICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfSU5GTyhBZENsaWNrQXR0cmlidXRpb24sICJHb3QgYW4gaW52YWxp
ZCBjb252ZXJzaW9uLiIpOwotICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0
Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1
dGlvbiwgTWVzc2FnZUxldmVsOjpFcnJvciwgIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gR290IGFu
IGludmFsaWQgY29udmVyc2lvbi4iX3MpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBhdXRvIGNvbnZlcnNpb25EYXRhID0gY29udmVyc2lvbi5kYXRhOwotICAgIGF1
dG8gY29udmVyc2lvblByaW9yaXR5ID0gY29udmVyc2lvbi5wcmlvcml0eTsKLQotICAgIGlmIChV
TkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lORk8o
QWRDbGlja0F0dHJpYnV0aW9uLCAiR290IGEgY29udmVyc2lvbiB3aXRoIGNvbnZlcnNpb24gZGF0
YTogJXtwdWJsaWN9dSBhbmQgcHJpb3JpdHk6ICV7cHVibGljfXUuIiwgY29udmVyc2lvbkRhdGEs
IGNvbnZlcnNpb25Qcmlvcml0eSk7Ci0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2Fz
dENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpBZENsaWNrQXR0cmli
dXRpb24sIE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZygiW0FkIENsaWNrIEF0dHJpYnV0
aW9uXSBHb3QgYSBjb252ZXJzaW9uIHdpdGggY29udmVyc2lvbiBkYXRhOiAnIl9zLCBjb252ZXJz
aW9uRGF0YSwgIicgYW5kIHByaW9yaXR5OiAnIl9zLCBjb252ZXJzaW9uUHJpb3JpdHksICInLiJf
cykpOwotICAgIH0KLQotICAgIGF1dG8gc2Vjb25kc1VudGlsU2VuZCA9IFNlY29uZHM6OmluZmlu
aXR5KCk7Ci0KLSAgICBhdXRvIHBhaXIgPSBzdGQ6Om1ha2VfcGFpcihzb3VyY2UsIGRlc3RpbmF0
aW9uKTsKLSAgICBhdXRvIHByZXZpb3VzbHlVbmNvbnZlcnRlZEF0dHJpYnV0aW9uID0gbV91bmNv
bnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcC50YWtlKHBhaXIpOwotICAgIGF1dG8gcHJldmlv
dXNseUNvbnZlcnRlZEF0dHJpYnV0aW9uSXRlciA9IG1fY29udmVydGVkQWRDbGlja0F0dHJpYnV0
aW9uTWFwLmZpbmQocGFpcik7Ci0KLSAgICBpZiAoIXByZXZpb3VzbHlVbmNvbnZlcnRlZEF0dHJp
YnV0aW9uLmlzRW1wdHkoKSkgewotICAgICAgICAvLyBBbHdheXMgY29udmVydCB0aGUgcGVuZGlu
ZyBhdHRyaWJ1dGlvbiBhbmQgcmVtb3ZlIGl0IGZyb20gdGhlIHVuY29udmVydGVkIG1hcC4KLSAg
ICAgICAgaWYgKGF1dG8gb3B0aW9uYWxTZWNvbmRzVW50aWxTZW5kID0gcHJldmlvdXNseVVuY29u
dmVydGVkQXR0cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChXVEZNb3Zl
KGNvbnZlcnNpb24pKSkgewotICAgICAgICAgICAgc2Vjb25kc1VudGlsU2VuZCA9ICpvcHRpb25h
bFNlY29uZHNVbnRpbFNlbmQ7Ci0gICAgICAgICAgICBBU1NFUlQoc2Vjb25kc1VudGlsU2VuZCAh
PSBTZWNvbmRzOjppbmZpbml0eSgpKTsKLQotICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVn
TW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKEFkQ2xp
Y2tBdHRyaWJ1dGlvbiwgIkNvbnZlcnRlZCBhIHN0b3JlZCBhZCBjbGljayB3aXRoIGNvbnZlcnNp
b24gZGF0YTogJXtwdWJsaWN9dSBhbmQgcHJpb3JpdHk6ICV7cHVibGljfXUuIiwgY29udmVyc2lv
bkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0eSk7Ci0gICAgICAgICAgICAgICAgbV9uZXR3b3JrUHJv
Y2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6
OkFkQ2xpY2tBdHRyaWJ1dGlvbiwgTWVzc2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbQWQg
Q2xpY2sgQXR0cmlidXRpb25dIENvbnZlcnRlZCBhIHN0b3JlZCBhZCBjbGljayB3aXRoIGNvbnZl
cnNpb24gZGF0YTogJyJfcywgY29udmVyc2lvbkRhdGEsICInIGFuZCBwcmlvcml0eTogJyJfcywg
Y29udmVyc2lvblByaW9yaXR5LCAiJy4iX3MpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
Ci0gICAgICAgIGlmIChwcmV2aW91c2x5Q29udmVydGVkQXR0cmlidXRpb25JdGVyID09IG1fY29u
dmVydGVkQWRDbGlja0F0dHJpYnV0aW9uTWFwLmVuZCgpKQotICAgICAgICAgICAgbV9jb252ZXJ0
ZWRBZENsaWNrQXR0cmlidXRpb25NYXAuYWRkKHBhaXIsIFdURk1vdmUocHJldmlvdXNseVVuY29u
dmVydGVkQXR0cmlidXRpb24pKTsKLSAgICAgICAgZWxzZSBpZiAocHJldmlvdXNseVVuY29udmVy
dGVkQXR0cmlidXRpb24uaGFzSGlnaGVyUHJpb3JpdHlUaGFuKHByZXZpb3VzbHlDb252ZXJ0ZWRB
dHRyaWJ1dGlvbkl0ZXItPnZhbHVlKSkgewotICAgICAgICAgICAgLy8gSWYgdGhlIG5ld2x5IGNv
bnZlcnRlZCBhdHRyaWJ1dGlvbiBoYXMgaGlnaGVyIHByaW9yaXR5LCByZXBsYWNlIHRoZSBvbGQg
b25lLgotICAgICAgICAgICAgbV9jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25NYXAuc2V0KHBh
aXIsIFdURk1vdmUocHJldmlvdXNseVVuY29udmVydGVkQXR0cmlidXRpb24pKTsKLQotICAgICAg
ICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgICAgICAg
ICBSRUxFQVNFX0xPR19JTkZPKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgIlJlcGxhY2VkIGEgcHJldmlv
dXNseSBjb252ZXJ0ZWQgYWQgY2xpY2sgd2l0aCBhIG5ldyBvbmUgd2l0aCBjb252ZXJzaW9uIGRh
dGE6ICV7cHVibGljfXUgYW5kIHByaW9yaXR5OiAle3B1YmxpY311IGJlY2F1c2UgaXQgaGFkIGhp
Z2hlciBwcmlvcml0eS4iLCBjb252ZXJzaW9uRGF0YSwgY29udmVyc2lvblByaW9yaXR5KTsKLSAg
ICAgICAgICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZSht
X3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6QWRDbGlja0F0dHJpYnV0aW9uLCBNZXNzYWdlTGV2
ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gUmVwbGFjZWQgYSBw
cmV2aW91c2x5IGNvbnZlcnRlZCBhZCBjbGljayB3aXRoIGEgbmV3IG9uZSB3aXRoIGNvbnZlcnNp
b24gZGF0YTogJyJfcywgY29udmVyc2lvbkRhdGEsICInIGFuZCBwcmlvcml0eTogJyJfcywgY29u
dmVyc2lvblByaW9yaXR5LCAiJyBiZWNhdXNlIGl0IGhhZCBoaWdoZXIgcHJpb3JpdHkuIl9zKSk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKHByZXZpb3VzbHlDb252
ZXJ0ZWRBdHRyaWJ1dGlvbkl0ZXIgIT0gbV9jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25NYXAu
ZW5kKCkpIHsKLSAgICAgICAgLy8gSWYgd2UgaGF2ZSBubyBuZXdseSBjb252ZXJ0ZWQgYXR0cmli
dXRpb24sIHJlLWNvbnZlcnQgdGhlIG9sZCBvbmUgdG8gcmVzcGVjdCB0aGUgbmV3IHByaW9yaXR5
LgotICAgICAgICBpZiAoYXV0byBvcHRpb25hbFNlY29uZHNVbnRpbFNlbmQgPSBwcmV2aW91c2x5
Q29udmVydGVkQXR0cmlidXRpb25JdGVyLT52YWx1ZS5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1l
VG9TZW5kKFdURk1vdmUoY29udmVyc2lvbikpKSB7Ci0gICAgICAgICAgICBzZWNvbmRzVW50aWxT
ZW5kID0gKm9wdGlvbmFsU2Vjb25kc1VudGlsU2VuZDsKLSAgICAgICAgICAgIEFTU0VSVChzZWNv
bmRzVW50aWxTZW5kICE9IFNlY29uZHM6OmluZmluaXR5KCkpOwotCi0gICAgICAgICAgICBpZiAo
VU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0lORk8oQWRDbGlja0F0dHJpYnV0aW9uLCAiUmUtY29udmVydGVkIGFuIGFkIGNsaWNrIHdp
dGggYSBuZXcgb25lIHdpdGggY29udmVyc2lvbiBkYXRhOiAle3B1YmxpY311IGFuZCBwcmlvcml0
eTogJXtwdWJsaWN9dSBiZWNhdXNlIGl0IGhhZCBoaWdoZXIgcHJpb3JpdHkuIiwgY29udmVyc2lv
bkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0eSk7Ci0gICAgICAgICAgICAgICAgbV9uZXR3b3JrUHJv
Y2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6
OkFkQ2xpY2tBdHRyaWJ1dGlvbiwgTWVzc2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbQWQg
Q2xpY2sgQXR0cmlidXRpb25dIFJlLWNvbnZlcnRlZCBhbiBhZCBjbGljayB3aXRoIGEgbmV3IG9u
ZSB3aXRoIGNvbnZlcnNpb24gZGF0YTogJyJfcywgY29udmVyc2lvbkRhdGEsICInIGFuZCBwcmlv
cml0eTogJyJfcywgY29udmVyc2lvblByaW9yaXR5LCAiJycgYmVjYXVzZSBpdCBoYWQgaGlnaGVy
IHByaW9yaXR5LiJfcykpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAg
aWYgKHNlY29uZHNVbnRpbFNlbmQgPT0gU2Vjb25kczo6aW5maW5pdHkoKSkKLSAgICAgICAgcmV0
dXJuOwotICAgIAotICAgIGlmIChtX2ZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzVGltZXIu
aXNBY3RpdmUoKSAmJiBtX2ZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzVGltZXIubmV4dEZp
cmVJbnRlcnZhbCgpIDwgc2Vjb25kc1VudGlsU2VuZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
aWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0df
SU5GTyhBZENsaWNrQXR0cmlidXRpb24sICJTZXR0aW5nIHRpbWVyIGZvciBmaXJpbmcgY29udmVy
c2lvbiByZXF1ZXN0cyB0byB0aGUgZGVidWcgbW9kZSB0aW1lb3V0IG9mICV7cHVibGljfWYgc2Vj
b25kcyB3aGVyZSB0aGUgcmVndWxhciB0aW1lb3V0IHdvdWxkIGhhdmUgYmVlbiAle3B1YmxpY31m
IHNlY29uZHMuIiwgZGVidWdNb2RlU2Vjb25kc1VudGlsU2VuZC5zZWNvbmRzKCksIHNlY29uZHNV
bnRpbFNlbmQuc2Vjb25kcygpKTsKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0
Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1
dGlvbiwgTWVzc2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbQWQgQ2xpY2sgQXR0cmlidXRp
b25dIFNldHRpbmcgdGltZXIgZm9yIGZpcmluZyBjb252ZXJzaW9uIHJlcXVlc3RzIHRvIHRoZSBk
ZWJ1ZyBtb2RlIHRpbWVvdXQgb2YgIl9zLCBkZWJ1Z01vZGVTZWNvbmRzVW50aWxTZW5kLnNlY29u
ZHMoKSwgIiBzZWNvbmRzIHdoZXJlIHRoZSByZWd1bGFyIHRpbWVvdXQgd291bGQgaGF2ZSBiZWVu
ICJfcywgc2Vjb25kc1VudGlsU2VuZC5zZWNvbmRzKCksICIgc2Vjb25kcy4iX3MpKTsKLSAgICAg
ICAgc2Vjb25kc1VudGlsU2VuZCA9IGRlYnVnTW9kZVNlY29uZHNVbnRpbFNlbmQ7Ci0gICAgfQot
Ci0gICAgc3RhcnRUaW1lcihzZWNvbmRzVW50aWxTZW5kKTsKLX0KLQotdm9pZCBBZENsaWNrQXR0
cmlidXRpb25NYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJlcXVlc3QoY29uc3QgQWRDbGlja0F0dHJp
YnV0aW9uJiBhdHRyaWJ1dGlvbikKLXsKLSAgICBhdXRvIGNvbnZlcnNpb25VUkwgPSBtX2NvbnZl
cnNpb25CYXNlVVJMRm9yVGVzdGluZyA/ICptX2NvbnZlcnNpb25CYXNlVVJMRm9yVGVzdGluZyA6
IGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpOwotICAgIGlmIChjb252ZXJzaW9uVVJMLmlzRW1wdHko
KSB8fCAhY29udmVyc2lvblVSTC5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0IHsgV1RGTW92ZShjb252ZXJzaW9uVVJMKSB9OwotICAgIAot
ICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZCgiUE9TVCJfcyk7Ci0gICAgcmVxdWVzdC5zZXRIVFRQ
SGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNhY2hlQ29udHJvbCwgV2ViQ29yZTo6SFRUUEhl
YWRlclZhbHVlczo6bWF4QWdlMCgpKTsKLQotICAgIHJlcXVlc3Quc2V0SFRUUENvbnRlbnRUeXBl
KFdlYkNvcmU6OkhUVFBIZWFkZXJWYWx1ZXM6OmFwcGxpY2F0aW9uSlNPTkNvbnRlbnRUeXBlKCkp
OwotICAgIHJlcXVlc3Quc2V0SFRUUEJvZHkoV2ViQ29yZTo6Rm9ybURhdGE6OmNyZWF0ZShhdHRy
aWJ1dGlvbi5qc29uKCktPnRvSlNPTlN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKLQotICAgIEZl
dGNoT3B0aW9ucyBvcHRpb25zOwotICAgIG9wdGlvbnMuY3JlZGVudGlhbHMgPSBGZXRjaE9wdGlv
bnM6OkNyZWRlbnRpYWxzOjpPbWl0OwotICAgIG9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlv
bnM6OlJlZGlyZWN0OjpFcnJvcjsKLQotICAgIHN0YXRpYyB1aW50NjRfdCBpZGVudGlmaWVyID0g
MDsKLSAgICAKLSAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVy
czsKLSAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyID0gKytpZGVudGlmaWVyOwotICAgIGxv
YWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwotICAgIGxvYWRQYXJhbWV0ZXJzLnBhcmVu
dFBJRCA9IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOwotICAgIGxvYWRQYXJhbWV0ZXJzLnN0
b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkVwaGVtZXJh
bFN0YXRlbGVzczsKLSAgICBsb2FkUGFyYW1ldGVycy5vcHRpb25zID0gb3B0aW9uczsKLSAgICBs
b2FkUGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0ID0g
dHJ1ZTsKLSAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRSZXN0cmljdEhUVFBSZXNwb25zZUFjY2Vz
cyA9IGZhbHNlOwotCi0gICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAg
ICAgICAgUkVMRUFTRV9MT0dfSU5GTyhBZENsaWNrQXR0cmlidXRpb24sICJBYm91dCB0byBmaXJl
IGFuIGF0dHJpYnV0aW9uIHJlcXVlc3QgZm9yIGEgY29udmVyc2lvbi4iKTsKLSAgICAgICAgbV9u
ZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3Nh
Z2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbiwgTWVzc2FnZUxldmVsOjpFcnJvciwgIltBZCBD
bGljayBBdHRyaWJ1dGlvbl0gQWJvdXQgdG8gZmlyZSBhbiBhdHRyaWJ1dGlvbiByZXF1ZXN0IGZv
ciBhIGNvbnZlcnNpb24uIl9zKTsKLSAgICB9Ci0KLSAgICBtX3BpbmdMb2FkRnVuY3Rpb24oV1RG
TW92ZShsb2FkUGFyYW1ldGVycyksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKSB7Ci0gICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgaWYgKFVOTElLRUxZKHdlYWtUaGlzLT5kZWJ1Z01vZGVFbmFi
bGVkKCkpKSB7Ci0gICAgICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKSB7Ci0jaWYgUExBVEZP
Uk0oQ09DT0EpCi0gICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoQWRDbGlja0F0dHJp
YnV0aW9uLCAiUmVjZWl2ZWQgZXJyb3I6ICcle3B1YmxpY31zJyBmb3IgYWQgY2xpY2sgYXR0cmli
dXRpb24gcmVxdWVzdC4iLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRh
KCkpOwotI2Vsc2UKLSAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihBZENsaWNrQXR0
cmlidXRpb24sICJSZWNlaXZlZCBlcnJvcjogJyVzJyBmb3IgYWQgY2xpY2sgYXR0cmlidXRpb24g
cmVxdWVzdC4iLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpOwot
I2VuZGlmCi0gICAgICAgICAgICAgICAgd2Vha1RoaXMtPm1fbmV0d29ya1Byb2Nlc3MtPmJyb2Fk
Y2FzdENvbnNvbGVNZXNzYWdlKHdlYWtUaGlzLT5tX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6
QWRDbGlja0F0dHJpYnV0aW9uLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtYWtlU3RyaW5nKCJbQWQg
Q2xpY2sgQXR0cmlidXRpb25dIFJlY2VpdmVkIGVycm9yOiAnIl9zLCBlcnJvci5sb2NhbGl6ZWRE
ZXNjcmlwdGlvbigpLCAiJyBmb3IgYWQgY2xpY2sgYXR0cmlidXRpb24gcmVxdWVzdC4iX3MpKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0pOwotfQotCi12b2lkIEFkQ2xpY2tBdHRy
aWJ1dGlvbk1hbmFnZXI6OmZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzKCkKLXsKLSAgICBh
dXRvIG5leHRUaW1lVG9GaXJlID0gU2Vjb25kczo6aW5maW5pdHkoKTsKLSAgICBmb3IgKGF1dG8m
IGF0dHJpYnV0aW9uIDogbV9jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25NYXAudmFsdWVzKCkp
IHsKLSAgICAgICAgaWYgKGF0dHJpYnV0aW9uLndhc0NvbnZlcnNpb25TZW50KCkpIHsKLSAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgIH0KLSAgICAgICAgYXV0byBlYXJsaWVzdFRpbWVUb1NlbmQgPSBhdHRyaWJ1dGlvbi5lYXJs
aWVzdFRpbWVUb1NlbmQoKTsKLSAgICAgICAgaWYgKCFlYXJsaWVzdFRpbWVUb1NlbmQpIHsKLSAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgIH0KLQotICAgICAgICBhdXRvIG5vdyA9IFdhbGxUaW1lOjpub3coKTsKLSAgICAgICAg
aWYgKCplYXJsaWVzdFRpbWVUb1NlbmQgPD0gbm93IHx8IG1faXNSdW5uaW5nVGVzdCB8fCBkZWJ1
Z01vZGVFbmFibGVkKCkpIHsKLSAgICAgICAgICAgIGZpcmVDb252ZXJzaW9uUmVxdWVzdChhdHRy
aWJ1dGlvbik7Ci0gICAgICAgICAgICBhdHRyaWJ1dGlvbi5tYXJrQ29udmVyc2lvbkFzU2VudCgp
OwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBhdXRvIHNlY29u
ZHMgPSAqZWFybGllc3RUaW1lVG9TZW5kIC0gbm93OwotICAgICAgICBuZXh0VGltZVRvRmlyZSA9
IHN0ZDo6bWluKG5leHRUaW1lVG9GaXJlLCBzZWNvbmRzKTsKLSAgICB9Ci0KLSAgICBtX2NvbnZl
cnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcC5yZW1vdmVJZihbXShhdXRvJiBrZXlBbmRWYWx1ZSkg
ewotICAgICAgICByZXR1cm4ga2V5QW5kVmFsdWUudmFsdWUud2FzQ29udmVyc2lvblNlbnQoKTsK
LSAgICB9KTsKLQotICAgIGlmIChuZXh0VGltZVRvRmlyZSA8IFNlY29uZHM6OmluZmluaXR5KCkp
Ci0gICAgICAgIHN0YXJ0VGltZXIobmV4dFRpbWVUb0ZpcmUpOwotfQotCi12b2lkIEFkQ2xpY2tB
dHRyaWJ1dGlvbk1hbmFnZXI6OmNsZWFyKCkKLXsKLSAgICBtX2ZpcmVQZW5kaW5nQ29udmVyc2lv
blJlcXVlc3RzVGltZXIuc3RvcCgpOwotICAgIG1fdW5jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRp
b25NYXAuY2xlYXIoKTsKLSAgICBtX2NvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcC5jbGVh
cigpOwotfQotCi12b2lkIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXI6OmNsZWFyRm9yUmVnaXN0
cmFibGVEb21haW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKLXsKLSAgICBtX3Vu
Y29udmVydGVkQWRDbGlja0F0dHJpYnV0aW9uTWFwLnJlbW92ZUlmKFsmZG9tYWluXShhdXRvJiBr
ZXlBbmRWYWx1ZSkgewotICAgICAgICByZXR1cm4ga2V5QW5kVmFsdWUua2V5LmZpcnN0LnJlZ2lz
dHJhYmxlRG9tYWluID09IGRvbWFpbiB8fCBrZXlBbmRWYWx1ZS5rZXkuc2Vjb25kLnJlZ2lzdHJh
YmxlRG9tYWluID09IGRvbWFpbjsKLSAgICB9KTsKLQotICAgIG1fY29udmVydGVkQWRDbGlja0F0
dHJpYnV0aW9uTWFwLnJlbW92ZUlmKFsmZG9tYWluXShhdXRvJiBrZXlBbmRWYWx1ZSkgewotICAg
ICAgICByZXR1cm4ga2V5QW5kVmFsdWUua2V5LmZpcnN0LnJlZ2lzdHJhYmxlRG9tYWluID09IGRv
bWFpbiB8fCBrZXlBbmRWYWx1ZS5rZXkuc2Vjb25kLnJlZ2lzdHJhYmxlRG9tYWluID09IGRvbWFp
bjsKLSAgICB9KTsKLX0KLQotdm9pZCBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyOjpjbGVhckV4
cGlyZWQoKQotewotICAgIG1fdW5jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25NYXAucmVtb3Zl
SWYoW10oYXV0byYga2V5QW5kVmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIGtleUFuZFZhbHVlLnZh
bHVlLmhhc0V4cGlyZWQoKTsKLSAgICB9KTsKLX0KLQotdm9pZCBBZENsaWNrQXR0cmlidXRpb25N
YW5hZ2VyOjp0b1N0cmluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIGNvbnN0Ci17Ci0gICAgaWYgKG1fdW5jb252ZXJ0ZWRBZENsaWNrQXR0cmli
dXRpb25NYXAuaXNFbXB0eSgpICYmIG1fY29udmVydGVkQWRDbGlja0F0dHJpYnV0aW9uTWFwLmlz
RW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCJcbk5vIHN0b3JlZCBB
ZCBDbGljayBBdHRyaWJ1dGlvbiBkYXRhLlxuIl9zKTsKLQotICAgIHVuc2lnbmVkIHVuY29udmVy
dGVkQXR0cmlidXRpb25OdW1iZXIgPSAwOwotICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAg
ICBmb3IgKGF1dG8mIGF0dHJpYnV0aW9uIDogbV91bmNvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlv
bk1hcC52YWx1ZXMoKSkgewotICAgICAgICBpZiAoIXVuY29udmVydGVkQXR0cmlidXRpb25OdW1i
ZXIpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlVuY29udmVydGVkIEFkIENs
aWNrIEF0dHJpYnV0aW9uczpcbiIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBidWlsZGVy
LmFwcGVuZCgnXG4nKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJXZWJDb3JlOjpB
ZENsaWNrQXR0cmlidXRpb24gIik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKCsrdW5j
b252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlcik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicp
OwotICAgICAgICBidWlsZGVyLmFwcGVuZChhdHRyaWJ1dGlvbi50b1N0cmluZygpKTsKLX0KLQot
ICAgIHVuc2lnbmVkIGNvbnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyID0gMDsKLSAgICBmb3IgKGF1
dG8mIGF0dHJpYnV0aW9uIDogbV9jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25NYXAudmFsdWVz
KCkpIHsKLSAgICAgICAgaWYgKHVuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpCi0gICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaWYgKCFjb252ZXJ0ZWRBdHRyaWJ1
dGlvbk51bWJlcikKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiQ29udmVydGVk
IEFkIENsaWNrIEF0dHJpYnV0aW9uczpcbiIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJXZWJD
b3JlOjpBZENsaWNrQXR0cmlidXRpb24gIik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVy
KCsrY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIgKyB1bmNvbnZlcnRlZEF0dHJpYnV0aW9uTnVt
YmVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGF0dHJpYnV0aW9uLnRvU3RyaW5nKCkpOwotICAgIH0KLQotICAgIGNvbXBsZXRpb25IYW5k
bGVyKGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci19Ci0KLXZvaWQgQWRDbGlja0F0dHJpYnV0aW9uTWFu
YWdlcjo6c2V0Q29udmVyc2lvblVSTEZvclRlc3RpbmcoVVJMJiYgdGVzdFVSTCkKLXsKLSAgICBp
ZiAodGVzdFVSTC5pc0VtcHR5KCkpCi0gICAgICAgIG1fY29udmVyc2lvbkJhc2VVUkxGb3JUZXN0
aW5nID0geyB9OwotICAgIGVsc2UKLSAgICAgICAgbV9jb252ZXJzaW9uQmFzZVVSTEZvclRlc3Rp
bmcgPSBXVEZNb3ZlKHRlc3RVUkwpOwotfQotCi12b2lkIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFn
ZXI6Om1hcmtBbGxVbmNvbnZlcnRlZEFzRXhwaXJlZEZvclRlc3RpbmcoKQotewotICAgIGZvciAo
YXV0byYgYXR0cmlidXRpb24gOiBtX3VuY29udmVydGVkQWRDbGlja0F0dHJpYnV0aW9uTWFwLnZh
bHVlcygpKQotICAgICAgICBhdHRyaWJ1dGlvbi5tYXJrQXNFeHBpcmVkKCk7Ci19Ci0KLWJvb2wg
QWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlcjo6ZGVidWdNb2RlRW5hYmxlZCgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuYWRDbGlj
a0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZCgpICYmICFtX3Nlc3Npb25JRC5pc0VwaGVtZXJh
bCgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9BZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3NGIwYTVmMWYyNDU3ZGY5NWIyNGZlZGI1ZTU2MWJhMTY3
NmIwMzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9BZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw5MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgotI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9BZENsaWNrQXR0cmlidXRpb24uaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZUVycm9yLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgotI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4K
LSNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBBZENsaWNrQXR0cmlidXRpb25N
YW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXI+
IHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLQotICAgIHVzaW5nIFJl
Z2lzdHJhYmxlRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47Ci0gICAgdXNpbmcg
QWRDbGlja0F0dHJpYnV0aW9uID0gV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOwotICAgIHVz
aW5nIFNvdXJjZSA9IFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlOwotICAgIHVz
aW5nIERlc3RpbmF0aW9uID0gV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlv
bjsKLSAgICB1c2luZyBDb252ZXJzaW9uID0gV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpD
b252ZXJzaW9uOwotCi0gICAgZXhwbGljaXQgQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlcihOZXR3
b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKLSAg
ICAgICAgOiBtX2ZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzVGltZXIoKnRoaXMsICZBZENs
aWNrQXR0cmlidXRpb25NYW5hZ2VyOjpmaXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0cykKLSAg
ICAgICAgLCBtX3BpbmdMb2FkRnVuY3Rpb24oW10oTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMmJiBwYXJhbXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgewotICAgICAgICAgICAgVU5VU0VEX1BBUkFNKHBhcmFtcyk7Ci0gICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpSZXNvdXJjZUVycm9yKCksIFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UoKSk7Ci0gICAgICAgIH0pCi0gICAgICAgICwgbV9uZXR3b3JrUHJvY2Vz
cyhuZXR3b3JrUHJvY2VzcykKLSAgICAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCi0gICAg
ewotICAgIH0KLQotICAgIHZvaWQgc3RvcmVVbmNvbnZlcnRlZChBZENsaWNrQXR0cmlidXRpb24m
Jik7Ci0gICAgdm9pZCBoYW5kbGVDb252ZXJzaW9uKENvbnZlcnNpb24mJiwgY29uc3QgVVJMJiBy
ZXF1ZXN0VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVz
dCk7Ci0gICAgdm9pZCBjbGVhcigpOwotICAgIHZvaWQgY2xlYXJGb3JSZWdpc3RyYWJsZURvbWFp
bihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwotICAgIHZvaWQgdG9TdHJpbmcoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKSBjb25zdDsKLSAgICB2b2lkIHNldFBpbmdMb2FkRnVu
Y3Rpb24oRnVuY3Rpb248dm9pZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYpPiYmIHBpbmdMb2FkRnVuY3Rpb24pIHsgbV9w
aW5nTG9hZEZ1bmN0aW9uID0gV1RGTW92ZShwaW5nTG9hZEZ1bmN0aW9uKTsgfQotICAgIHZvaWQg
c2V0T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSkgeyBtX2lzUnVubmluZ1Rlc3Qg
PSB2YWx1ZTsgfQotICAgIHZvaWQgc2V0Q29udmVyc2lvblVSTEZvclRlc3RpbmcoVVJMJiYpOwot
ICAgIHZvaWQgbWFya0FsbFVuY29udmVydGVkQXNFeHBpcmVkRm9yVGVzdGluZygpOwotCi1wcml2
YXRlOgotICAgIHZvaWQgc3RhcnRUaW1lcihTZWNvbmRzKTsKLSAgICB2b2lkIGNvbnZlcnQoY29u
c3QgU291cmNlJiwgY29uc3QgRGVzdGluYXRpb24mLCBDb252ZXJzaW9uJiYpOwotICAgIHZvaWQg
ZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnN0IEFkQ2xpY2tBdHRyaWJ1dGlvbiYpOwotICAgIHZv
aWQgZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHMoKTsKLSAgICB2b2lkIGNsZWFyRXhwaXJl
ZCgpOwotICAgIGJvb2wgZGVidWdNb2RlRW5hYmxlZCgpIGNvbnN0OwotCi0gICAgSGFzaE1hcDxz
dGQ6OnBhaXI8U291cmNlLCBEZXN0aW5hdGlvbj4sIEFkQ2xpY2tBdHRyaWJ1dGlvbj4gbV91bmNv
bnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcDsKLSAgICBIYXNoTWFwPHN0ZDo6cGFpcjxTb3Vy
Y2UsIERlc3RpbmF0aW9uPiwgQWRDbGlja0F0dHJpYnV0aW9uPiBtX2NvbnZlcnRlZEFkQ2xpY2tB
dHRyaWJ1dGlvbk1hcDsKLSAgICBXZWJDb3JlOjpUaW1lciBtX2ZpcmVQZW5kaW5nQ29udmVyc2lv
blJlcXVlc3RzVGltZXI7Ci0gICAgRnVuY3Rpb248dm9pZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVycyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
RXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYpPiBtX3BpbmdMb2Fk
RnVuY3Rpb247Ci0gICAgYm9vbCBtX2lzUnVubmluZ1Rlc3QgeyBmYWxzZSB9OwotICAgIE9wdGlv
bmFsPFVSTD4gbV9jb252ZXJzaW9uQmFzZVVSTEZvclRlc3Rpbmc7Ci0gICAgUmVmPE5ldHdvcmtQ
cm9jZXNzPiBtX25ldHdvcmtQcm9jZXNzOwotICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklE
OwotfTsKLSAgICAKLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAwYmI4NTczMDUzODRjYjM1ZDc4
YTY0ZGFjOTQzNGQ3ZmM4MjRkOWY1Li44YTlkMmYzOTM5ZTcxODZiODFlOGE3ZWZkNGJiZWI1MGE2
M2IyZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcApAQCAtMzMwLDcgKzMzMCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxp
emVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmCiAKICAg
ICBzZXRDYWNoZU1vZGVsKHBhcmFtZXRlcnMuY2FjaGVNb2RlbCk7CiAKLSAgICBzZXRBZENsaWNr
QXR0cmlidXRpb25EZWJ1Z01vZGUocGFyYW1ldGVycy5lbmFibGVBZENsaWNrQXR0cmlidXRpb25E
ZWJ1Z01vZGUpOworICAgIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKHBhcmFt
ZXRlcnMuZW5hYmxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUpOwogCiAgICAgZm9y
IChhdXRvJiBzdXBwbGVtZW50IDogbV9zdXBwbGVtZW50cy52YWx1ZXMoKSkKICAgICAgICAgc3Vw
cGxlbWVudC0+aW5pdGlhbGl6ZShwYXJhbWV0ZXJzKTsKQEAgLTEzMTMsMTggKzEzMTMsMTggQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0VGhpcmRQYXJ0eUNOQU1FRG9tYWluRm9yVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQKIH0KICNlbmRpZiAvLyBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRBZENsaWNrQXR0cmlidXRp
b25EZWJ1Z01vZGUoYm9vbCBkZWJ1Z01vZGUpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZShib29sIGRlYnVnTW9kZSkKIHsKLSAgICBpZiAo
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5hZENsaWNrQXR0cmlidXRp
b25EZWJ1Z01vZGVFbmFibGVkKCkgPT0gZGVidWdNb2RlKQorICAgIGlmIChSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdN
b2RlRW5hYmxlZCgpID09IGRlYnVnTW9kZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRBZENsaWNrQXR0cmlidXRpb25E
ZWJ1Z01vZGVFbmFibGVkKGRlYnVnTW9kZSk7CisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJs
ZWQoZGVidWdNb2RlKTsKIAotICAgIFN0cmluZyBtZXNzYWdlID0gZGVidWdNb2RlID8gIltBZCBD
bGljayBBdHRyaWJ1dGlvbl0gVHVybmVkIERlYnVnIE1vZGUgb24uIl9zIDogIltBZCBDbGljayBB
dHRyaWJ1dGlvbl0gVHVybmVkIERlYnVnIE1vZGUgb2ZmLiJfczsKKyAgICBTdHJpbmcgbWVzc2Fn
ZSA9IGRlYnVnTW9kZSA/ICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gVHVybmVkIERlYnVn
IE1vZGUgb24uIl9zIDogIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBUdXJuZWQgRGVidWcg
TW9kZSBvZmYuIl9zOwogICAgIGZvciAoYXV0byYgbmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MgOiBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy52YWx1ZXMoKSkgewogICAgICAgICBpZiAobmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPnNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkpCiAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgbmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1
dGlvbiwgTWVzc2FnZUxldmVsOjpJbmZvLCBtZXNzYWdlKTsKKyAgICAgICAgbmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1lc3NhZ2UpOwog
ICAgIH0KIH0KIApAQCAtMTU4Myw5ICsxNTgzLDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVs
ZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2kK
ICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkRpc2tD
YWNoZSkgJiYgIXNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKQogICAgICAgICBjbGVhckRpc2tDYWNo
ZShtb2RpZmllZFNpbmNlLCBbY2xlYXJUYXNrc0hhbmRsZXIgPSBXVEZNb3ZlKGNsZWFyVGFza3NI
YW5kbGVyKV0geyB9KTsKIAotICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNp
dGVEYXRhVHlwZTo6QWRDbGlja0F0dHJpYnV0aW9ucykpIHsKKyAgICBpZiAod2Vic2l0ZURhdGFU
eXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50cykp
IHsKICAgICAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Np
b24oc2Vzc2lvbklEKSkKLSAgICAgICAgICAgIG5ldHdvcmtTZXNzaW9uLT5jbGVhckFkQ2xpY2tB
dHRyaWJ1dGlvbigpOworICAgICAgICAgICAgbmV0d29ya1Nlc3Npb24tPmNsZWFyUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoKTsKICAgICB9CiAKICNpZiBIQVZFKENGTkVUV09SS19BTFRFUk5BVElW
RV9TRVJWSUNFKQpAQCAtMTY0NCwxMCArMTY0NCwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpk
ZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRp
bwogICAgIH0KICNlbmRpZgogCi0gICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vi
c2l0ZURhdGFUeXBlOjpBZENsaWNrQXR0cmlidXRpb25zKSkgeworICAgIGlmICh3ZWJzaXRlRGF0
YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRz
KSkgewogICAgICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0aGlzLT5uZXR3b3JrU2Vz
c2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8mIG9yaWdpbkRhdGEgOiBv
cmlnaW5EYXRhcykKLSAgICAgICAgICAgICAgICBuZXR3b3JrU2Vzc2lvbi0+Y2xlYXJBZENsaWNr
QXR0cmlidXRpb25Gb3JSZWdpc3RyYWJsZURvbWFpbihSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVj
a2VkQ3JlYXRlRnJvbUhvc3Qob3JpZ2luRGF0YS5ob3N0KSk7CisgICAgICAgICAgICAgICAgbmV0
d29ya1Nlc3Npb24tPmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGb3JSZWdpc3RyYWJsZURv
bWFpbihSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3Qob3JpZ2luRGF0
YS5ob3N0KSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCkBAIC0yNTMyLDQ4ICsyNTMyLDQ4IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtRmx1c2hDb29raWVzKGNvbnN0IFBBTDo6U2Vz
c2lvbklEJiwgQ29tcGxldGlvbkhhbmRsCiAKICNlbmRpZgogCi12b2lkIE5ldHdvcmtQcm9jZXNz
OjpzdG9yZUFkQ2xpY2tBdHRyaWJ1dGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbiYmIGFkQ2xpY2tBdHRyaWJ1dGlvbikKK3ZvaWQgTmV0d29y
a1Byb2Nlc3M6OnN0b3JlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmIHByaXZhdGVDbGlja01l
YXN1cmVtZW50KQogewogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vz
c2lvbklEKSkKLSAgICAgICAgc2Vzc2lvbi0+c3RvcmVBZENsaWNrQXR0cmlidXRpb24oV1RGTW92
ZShhZENsaWNrQXR0cmlidXRpb24pKTsKKyAgICAgICAgc2Vzc2lvbi0+c3RvcmVQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudChXVEZNb3ZlKHByaXZhdGVDbGlja01lYXN1cmVtZW50KSk7CiB9CiAKLXZv
aWQgTmV0d29ya1Byb2Nlc3M6OmR1bXBBZENsaWNrQXR0cmlidXRpb24oUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3Jr
U2Vzc2lvbihzZXNzaW9uSUQpKQotICAgICAgICByZXR1cm4gc2Vzc2lvbi0+ZHVtcEFkQ2xpY2tB
dHRyaWJ1dGlvbihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIHJldHVybiBz
ZXNzaW9uLT5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogCiAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKIH0KIAotdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6Y2xlYXJBZENsaWNrQXR0cmlidXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5l
dHdvcmtQcm9jZXNzOjpjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkK
LSAgICAgICAgc2Vzc2lvbi0+Y2xlYXJBZENsaWNrQXR0cmlidXRpb24oKTsKKyAgICAgICAgc2Vz
c2lvbi0+Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwogICAgIAogICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldEFkQ2xpY2tBdHRyaWJ1
dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9v
bCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRp
bWVyRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0
byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCi0gICAgICAgIHNlc3Npb24t
PnNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHZhbHVlKTsKKyAg
ICAgICAgc2Vzc2lvbi0+c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9y
VGVzdGluZyh2YWx1ZSk7CiAgICAgCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAotdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6c2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwmJiB1cmwsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBVUkwmJiB1cmwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNz
aW9uKHNlc3Npb25JRCkpCi0gICAgICAgIHNlc3Npb24tPnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNv
bnZlcnNpb25VUkxGb3JUZXN0aW5nKFdURk1vdmUodXJsKSk7CisgICAgICAgIHNlc3Npb24tPnNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoV1RGTW92ZSh1
cmwpKTsKICAgICAKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCi12b2lkIE5ldHdvcmtQ
cm9jZXNzOjptYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjptYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byog
c2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCi0gICAgICAgIHNlc3Npb24tPm1h
cmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZygpOworICAgICAgICBzZXNz
aW9uLT5tYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOwog
CiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAxYTc3ZmFiOTYxZGYyZTVlMzA2MTI2OWY1OTJh
MmM0Yzg2OTQ2ZjlkLi5iZTUyNmVmZjFlOGM5MWQzNmVhODliODdlN2I1Njc5NThhOTU2ZmIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0z
OSw3ICszOSw2IEBACiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgi
CiAjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25z
b2xlVHlwZXMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc1Np
dGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oPgpAQCAtNDcsNiArNDYsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSURC
S2V5RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnku
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFi
bGVEb21haW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4KQEAgLTI3NSw3ICsyNzUs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUaGlyZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogI2VuZGlmCiAKLSAgICB2b2lkIHNldEFkQ2xpY2tBdHRyaWJ1
dGlvbkRlYnVnTW9kZShib29sKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
RGVidWdNb2RlKGJvb2wpOwogCiAgICAgdXNpbmcgQ2FjaGVTdG9yYWdlUm9vdFBhdGhDYWxsYmFj
ayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPjsKICAgICB2b2lkIGNhY2hlU3Rv
cmFnZVJvb3RQYXRoKFBBTDo6U2Vzc2lvbklELCBDYWNoZVN0b3JhZ2VSb290UGF0aENhbGxiYWNr
JiYpOwpAQCAtMzMyLDEyICszMzIsMTIgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlQ2FjaGVF
bmdpbmUoY29uc3QgUEFMOjpTZXNzaW9uSUQmKTsKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlU3Bh
Y2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIHVpbnQ2NF90
IHF1b3RhLCB1aW50NjRfdCBjdXJyZW50U2l6ZSwgdWludDY0X3Qgc3BhY2VSZXF1aXJlZCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDx1aW50NjRfdD4pPiYmKTsKIAotICAgIHZvaWQg
c3RvcmVBZENsaWNrQXR0cmlidXRpb24oUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OkFkQ2xpY2tB
dHRyaWJ1dGlvbiYmKTsKLSAgICB2b2lkIGR1bXBBZENsaWNrQXR0cmlidXRpb24oUEFMOjpTZXNz
aW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJik7Ci0gICAgdm9pZCBjbGVh
ckFkQ2xpY2tBdHRyaWJ1dGlvbihQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKLSAgICB2b2lkIHNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JU
ZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwotICAgIHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQsIFVSTCYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwotICAgIHZvaWQgbWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKFBB
TDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc3Rv
cmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQmJik7CisgICAgdm9pZCBkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJik7Cisg
ICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KFBBTDo6U2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgYm9vbCB2YWx1ZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFVSTCYmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgbWFya1ByaXZhdGVDbGlja01l
YXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICBSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZVF1b3RhTWFu
YWdlcj4gc3RvcmFnZVF1b3RhTWFuYWdlcihQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6
Q2xpZW50T3JpZ2luJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDIwZmZiY2MzZmNkZmFkZWEzYzBh
MzQ5NmM1MjgyMjQ4NGZmZGFhMTUuLjBmMDE5MDU2ZTViNTdmNTMzNGI4Y2U3MzgyNmUyZmEwNTY4
ODkzYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTQ4LDcgKzE0OCw3IEBAIG1lc3NhZ2VzIC0+IE5l
dHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRUaGlyZFBhcnR5Q05BTUVEb21h
aW5Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gZG9tYWluKSAtPiAoKSBBc3luYwogI2VuZGlmCiAKLSAgICBTZXRBZENsaWNrQXR0
cmlidXRpb25EZWJ1Z01vZGUoYm9vbCBkZWJ1Z01vZGUpCisgICAgU2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnREZWJ1Z01vZGUoYm9vbCBkZWJ1Z01vZGUpCiAKICAgICBTZXRTZXNzaW9uSXNDb250
cm9sbGVkQnlBdXRvbWF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBjb250cm9s
bGVkKTsKIApAQCAtMTYxLDEyICsxNjEsMTIgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3Mg
TGVnYWN5UmVjZWl2ZXIgewogCiAgICAgU3luY0xvY2FsU3RvcmFnZSgpIC0+ICgpIEFzeW5jCiAK
LSAgICBTdG9yZUFkQ2xpY2tBdHRyaWJ1dGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdl
YkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbiBhZENsaWNrQXR0cmlidXRpb24pCi0gICAgRHVtcEFk
Q2xpY2tBdHRyaWJ1dGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChTdHJpbmcgYWRD
bGlja0F0dHJpYnV0aW9uU3RhdGUpIEFzeW5jCi0gICAgQ2xlYXJBZENsaWNrQXR0cmlidXRpb24o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwotICAgIFNldEFkQ2xpY2tBdHRy
aWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Ym9vbCB2YWx1ZSkgLT4gKCkgQXN5bmMKLSAgICBTZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJz
aW9uVVJMRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCB1cmwpIC0+ICgp
IEFzeW5jCi0gICAgTWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKKyAgICBTdG9yZVByaXZhdGVDbGlj
a01lYXN1cmVtZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpCisgICAgRHVtcFByaXZhdGVD
bGlja01lYXN1cmVtZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFN0cmluZyBwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFN0YXRlKSBBc3luYworICAgIENsZWFyUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYworICAgIFNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBib29sIHZhbHVlKSAtPiAoKSBBc3luYworICAgIFNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBVUkwgdXJsKSAtPiAoKSBBc3luYworICAgIE1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5
bmMKICAgICBHZXRMb2NhbFN0b3JhZ2VPcmlnaW5EZXRhaWxzKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkgLT4gKFZlY3RvcjxXZWJLaXQ6OkxvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcjo6T3Jp
Z2luRGV0YWlscz4gZGV0YWlscykgQXN5bmMKIAogICAgIFNldFNlcnZpY2VXb3JrZXJGZXRjaFRp
bWVvdXRGb3JUZXN0aW5nKFNlY29uZHMgc2Vjb25kcykgLT4gKCkgU3luY2hyb25vdXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggNDlmYTg4MGE4OTY1MTA4NGE1ODM5OTFk
N2ExMGZlZTcwYjU1MjFmMC4uZmRhODE1MGQwOTFmMTUwMDQ5MmVkZGY5NWRhNTY4YTM1YTIzMWQx
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTY1LDcgKzY1LDcgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdpc3RlcmVkQXNM
b2NhbDsKICAgICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdpc3RlcmVkQXNOb0FjY2VzczsKIAot
ICAgIGVuY29kZXIgPDwgZW5hYmxlQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlOworICAgIGVu
Y29kZXIgPDwgZW5hYmxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGU7CiB9CiAKIGJv
b2wgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIsIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiByZXN1bHQpCkBAIC0x
MjUsNyArMTI1LDcgQEAgYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTmV0d29ya1Byb2MKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlc3VsdC51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzTm9BY2Nlc3MpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5lbmFibGVBZENs
aWNrQXR0cmlidXRpb25EZWJ1Z01vZGUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0
LmVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
aW5kZXggNzgyOWEyZGMxYzJiMmE4ZWZjMmRhOTJlYTJhZjRkNGY4MzYyMTc0Yy4uYjA0ZmM0YzFk
NmZhMzk5MTcwMGNlZWRiYjA0OTVhYzM0YmRiZWFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaApAQCAtNzksNyArNzksNyBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMgewogICAgIFZlY3RvcjxTdHJpbmc+IHVybFNjaGVtZXNSZWdpc3RlcmVkQXNMb2Nh
bDsKICAgICBWZWN0b3I8U3RyaW5nPiB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzTm9BY2Nlc3M7CiAK
LSAgICBib29sIGVuYWJsZUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZSB7IGZhbHNlIH07Cisg
ICAgYm9vbCBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZSB7IGZhbHNlIH07
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCAyOWFlZmZmZDBi
MmI4MGU3NzliNDE2OTFhMDA4MDRlNmIxMjlkM2E4Li4zNWU5OTk0ZDc0ZDUxMGFhNGUxNDU4NDhj
NzJkMmI1ODVlMGJjMGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC04MTQsMTIgKzgxNCwxMiBAQCB2b2lk
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LAogICAgICsrbV9yZWRpcmVjdENvdW50OwogICAgIG1fcmVkaXJl
Y3RSZXNwb25zZSA9IHJlZGlyZWN0UmVzcG9uc2U7CiAKLSAgICBPcHRpb25hbDxBZENsaWNrQXR0
cmlidXRpb246OkNvbnZlcnNpb24+IGFkQ2xpY2tDb252ZXJzaW9uOworICAgIE9wdGlvbmFsPFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uPiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dENvbnZlcnNpb247CiAgICAgaWYgKCFzZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpKSB7Ci0gICAg
ICAgIGlmIChhdXRvIHJlc3VsdCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9u
UmVxdWVzdChyZWRpcmVjdFJlcXVlc3QudXJsKCkpKQotICAgICAgICAgICAgYWRDbGlja0NvbnZl
cnNpb24gPSByZXN1bHQudmFsdWUoKTsKKyAgICAgICAgaWYgKGF1dG8gcmVzdWx0ID0gUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QocmVkaXJlY3RSZXF1ZXN0
LnVybCgpKSkKKyAgICAgICAgICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbiA9
IHJlc3VsdC52YWx1ZSgpOwogICAgICAgICBlbHNlIGlmICghcmVzdWx0LmVycm9yKCkuaXNFbXB0
eSgpKQotICAgICAgICAgICAgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6QWRDbGlj
a0F0dHJpYnV0aW9uLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCByZXN1bHQuZXJyb3IoKSk7CisgICAg
ICAgICAgICBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwgcmVzdWx0LmVycm9yKCkpOwogICAgIH0KIAog
ICAgIGF1dG8gbWF4QWdlQ2FwID0gdmFsaWRhdGVDYWNoZUVudHJ5Rm9yTWF4QWdlQ2FwVmFsaWRh
dGlvbihyZXF1ZXN0LCByZWRpcmVjdFJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwpAQCAtODI3
LDEyICs4MjcsMTIgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVkaXJl
Y3RlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwKICAgICAgICAgbV9jYWNoZS0+
c3RvcmVSZWRpcmVjdChyZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlLCByZWRpcmVjdFJlcXVlc3Qs
IG1heEFnZUNhcCk7CiAKICAgICBpZiAobV9uZXR3b3JrTG9hZENoZWNrZXIpIHsKLSAgICAgICAg
aWYgKGFkQ2xpY2tDb252ZXJzaW9uKQorICAgICAgICBpZiAocHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb252ZXJzaW9uKQogICAgICAgICAgICAgbV9uZXR3b3JrTG9hZENoZWNrZXItPmVuYWJsZUNv
bnRlbnRFeHRlbnNpb25zQ2hlY2soKTsKICAgICAgICAgbV9uZXR3b3JrTG9hZENoZWNrZXItPnN0
b3JlUmVkaXJlY3Rpb25JZk5lZWRlZChyZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKIAogICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0OiBD
aGVja2luZyByZWRpcmVjdCB1c2luZyBOZXR3b3JrTG9hZENoZWNrZXIiKTsKLSAgICAgICAgbV9u
ZXR3b3JrTG9hZENoZWNrZXItPmNoZWNrUmVkaXJlY3Rpb24oV1RGTW92ZShyZXF1ZXN0KSwgV1RG
TW92ZShyZWRpcmVjdFJlcXVlc3QpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB0aGlzLCBb
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzLCBzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSA9IG1fbmV0d29ya0xvYWRDaGVja2VyLT5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSgpLCBh
ZENsaWNrQ29udmVyc2lvbiA9IFdURk1vdmUoYWRDbGlja0NvbnZlcnNpb24pXShhdXRvJiYgcmVz
dWx0KSBtdXRhYmxlIHsKKyAgICAgICAgbV9uZXR3b3JrTG9hZENoZWNrZXItPmNoZWNrUmVkaXJl
Y3Rpb24oV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZWRpcmVjdFJlcXVlc3QpLCBXVEZNb3Zl
KHJlZGlyZWN0UmVzcG9uc2UpLCB0aGlzLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCB0aGlzLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IG1fbmV0d29ya0xvYWRDaGVja2VyLT5z
dG9yZWRDcmVkZW50aWFsc1BvbGljeSgpLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNp
b24gPSBXVEZNb3ZlKHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbildKGF1dG8mJiBy
ZXN1bHQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCFyZXN1bHQuaGFzX3ZhbHVlKCkpIHsK
ICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmVycm9yKCkuaXNDYW5jZWxsYXRpb24oKSkgewog
ICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlZGly
ZWN0ZWRSZXF1ZXN0OiBOZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrUmVkaXJlY3Rpb24gcmV0dXJu
ZWQgd2l0aCBhIGNhbmNlbGxhdGlvbiIpOwpAQCAtODY1LDE2ICs4NjUsMTYgQEAgdm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgbV9zaG91bGRSZXN0
YXJ0TG9hZCA9IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ICE9IG1fbmV0d29ya0xvYWRDaGVja2Vy
LT5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSgpOwotICAgICAgICAgICAgdGhpcy0+Y29udGludWVX
aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdURk1vdmUocmVzdWx0LT5yZXF1ZXN0KSwgV1RGTW92
ZShyZXN1bHQtPnJlZGlyZWN0UmVxdWVzdCksIFdURk1vdmUocmVzdWx0LT5yZWRpcmVjdFJlc3Bv
bnNlKSwgV1RGTW92ZShhZENsaWNrQ29udmVyc2lvbikpOworICAgICAgICAgICAgdGhpcy0+Y29u
dGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdURk1vdmUocmVzdWx0LT5yZXF1ZXN0KSwg
V1RGTW92ZShyZXN1bHQtPnJlZGlyZWN0UmVxdWVzdCksIFdURk1vdmUocmVzdWx0LT5yZWRpcmVj
dFJlc3BvbnNlKSwgV1RGTW92ZShwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24pKTsK
ICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY29udGludWVXaWxsU2Vu
ZFJlZGlyZWN0ZWRSZXF1ZXN0KFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVkaXJlY3RSZXF1
ZXN0KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgV1RGTW92ZShhZENsaWNrQ29udmVyc2lv
bikpOworICAgIGNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChXVEZNb3ZlKHJlcXVl
c3QpLCBXVEZNb3ZlKHJlZGlyZWN0UmVxdWVzdCksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSks
IFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKSk7CiB9CiAKLXZvaWQg
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVdpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVkaXJlY3RSZXF1
ZXN0LCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgT3B0aW9uYWw8QWRDbGlj
a0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uPiYmIGFkQ2xpY2tDb252ZXJzaW9uKQordm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBSZXNvdXJjZVJlcXVlc3QmJiByZWRpcmVjdFJlcXVlc3Qs
IFJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBPcHRpb25hbDxQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbj4mJiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZl
cnNpb24pCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiY29udGludWVXaWxsU2VuZFJl
ZGlyZWN0ZWRSZXF1ZXN0OiAobV9pc0tlcHRBbGl2ZT0lZCwgaGFzQWRDbGlja0NvbnZlcnNpb249
JWQpIiwgbV9pc0tlcHRBbGl2ZSwgISFhZENsaWNrQ29udmVyc2lvbik7CisgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgiY29udGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0OiAobV9pc0tl
cHRBbGl2ZT0lZCwgaGFzQWRDbGlja0NvbnZlcnNpb249JWQpIiwgbV9pc0tlcHRBbGl2ZSwgISFw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24pOwogICAgIEFTU0VSVCghaXNTeW5jaHJv
bm91cygpKTsKIAogICAgIGlmIChtX2lzS2VwdEFsaXZlKSB7CkBAIC04ODMsOCArODgzLDggQEAg
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVx
dWVzdChSZXNvdXJjZVJlcXVlc3QmJgogICAgIH0KIAogICAgIE5ldHdvcmtTZXNzaW9uKiBuZXR3
b3JrU2Vzc2lvbiA9IG51bGxwdHI7Ci0gICAgaWYgKGFkQ2xpY2tDb252ZXJzaW9uICYmIChuZXR3
b3JrU2Vzc2lvbiA9IG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lv
bihzZXNzaW9uSUQoKSkpKQotICAgICAgICBuZXR3b3JrU2Vzc2lvbi0+aGFuZGxlQWRDbGlja0F0
dHJpYnV0aW9uQ29udmVyc2lvbihXVEZNb3ZlKCphZENsaWNrQ29udmVyc2lvbiksIHJlcXVlc3Qu
dXJsKCksIHJlZGlyZWN0UmVxdWVzdCk7CisgICAgaWYgKHByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29udmVyc2lvbiAmJiAobmV0d29ya1Nlc3Npb24gPSBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9j
ZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKCkpKSkKKyAgICAgICAgbmV0d29ya1Nlc3Np
b24tPmhhbmRsZVByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbihXVEZNb3ZlKCpwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24pLCByZXF1ZXN0LnVybCgpLCByZWRpcmVjdFJl
cXVlc3QpOwogCiAgICAgLy8gV2Ugc2VuZCB0aGUgcmVxdWVzdCBib2R5IHNlcGFyYXRlbHkgYmVj
YXVzZSB0aGUgUmVzb3VyY2VSZXF1ZXN0IGJvZHkgbm9ybWFsbHkgZG9lcyBub3QgZ2V0IGVuY29k
ZWQgd2hlbiBzZW50IG92ZXIgSVBDLCBhcyBhbiBvcHRpbWl6YXRpb24uCiAgICAgLy8gSG93ZXZl
ciwgd2UgcmVhbGx5IG5lZWQgdGhlIGJvZHkgaGVyZSBiZWNhdXNlIGEgcmVkaXJlY3QgY3Jvc3Mt
c2l0ZSBtYXkgY2F1c2UgYSBwcm9jZXNzLXN3YXAgYW5kIHRoZSByZXF1ZXN0IHRvIHN0YXJ0IGFn
YWluIGluIGEgbmV3IFdlYkNvbnRlbnQgcHJvY2Vzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IDhlYmYyNzNjZDll
YWY0MTIzMjA3ODhiMzg2YTI3OGY5MThmNzQwZTQuLjU2MTVmZmU3NTM0NWYyNGUyNTFlYmE2YTUw
NGVmM2MxMDk1MGRiZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtMzMsOSArMzMsOSBAQAogI2luY2x1ZGUgIk5l
dHdvcmtMb2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIgotI2luY2x1
ZGUgPFdlYkNvcmUvQWRDbGlja0F0dHJpYnV0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db250
ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nyb3NzT3JpZ2lu
QWNjZXNzQ29udHJvbC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1RpbWVyLmg+CkBAIC0xOTEsNyArMTkxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvZ0Nvb2tp
ZUluZm9ybWF0aW9uKCkgY29uc3Q7CiAjZW5kaWYKIAotICAgIHZvaWQgY29udGludWVXaWxsU2Vu
ZFJlZGlyZWN0ZWRSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiByZWRpcmVjdFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmJiwgT3B0aW9uYWw8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uPiYm
KTsKKyAgICB2b2lkIGNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVkaXJlY3RSZXF1
ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uPiYmKTsKICAgICB2b2lkIGRpZEZpbmlzaFdp
dGhSZWRpcmVjdFJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiByZWRpcmVjdFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmJik7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBzYW5pdGl6ZVJlc3BvbnNlSWZQ
b3NzaWJsZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2U6OlNhbml0aXphdGlvblR5cGUpOwogCkBAIC0yMDIsNyArMjAyLDcgQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgbG9nU2xvd0NhY2hlUmV0cmlldmVJZk5lZWRlZChjb25zdCBOZXR3b3JrQ2Fj
aGU6OkNhY2hlOjpSZXRyaWV2ZUluZm8mKTsKIAotICAgIHZvaWQgaGFuZGxlQWRDbGlja0F0dHJp
YnV0aW9uQ29udmVyc2lvbihXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OkNvbnZlcnNpb24m
JiwgY29uc3QgVVJMJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgdm9p
ZCBoYW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24oV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24mJiwgY29uc3QgVVJMJiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAKICAgICBPcHRpb25hbDxTZWNvbmRzPiB2YWxpZGF0ZUNh
Y2hlRW50cnlGb3JNYXhBZ2VDYXBWYWxpZGF0aW9uKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0LCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggYTFjZTc2MmQ1ZWIyYmE4OWQz
ZDhjM2RlNmM2N2UwNjNhZDY3ZTNmOC4uOGNlNTkxNDEyMzRhZWJmNWU0OWUyYmRjOGE2ODJmYjU4
NGNhMjg1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJOZXR3b3JrU2Vzc2lvbi5oIgogCi0jaW5jbHVkZSAiQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdl
ci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgog
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgpAQCAtMzQsMTEgKzMzLDEx
IEBACiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQaW5nTG9hZC5oIgorI2lu
Y2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlBh
Z2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0VGFzay5oIgotI2luY2x1ZGUg
PFdlYkNvcmUvQWRDbGlja0F0dHJpYnV0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWVK
YXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogCkBAIC05MSw3ICs5
MCw3IEBAIE5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYgbmV0
d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzCiAgICAgLCBtX2ZpcnN0UGFydHlXZWJzaXRl
RGF0YVJlbW92YWxNb2RlKHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRl
cnMuZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUpCiAgICAgLCBtX3N0YW5kYWxvbmVB
cHBsaWNhdGlvbkRvbWFpbihwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0
ZXJzLnN0YW5kYWxvbmVBcHBsaWNhdGlvbkRvbWFpbikKICNlbmRpZgotICAgICwgbV9hZENsaWNr
QXR0cmlidXRpb24obWFrZVVuaXF1ZVJlZjxBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyPihuZXR3
b3JrUHJvY2VzcywgcGFyYW1ldGVycy5zZXNzaW9uSUQpKQorICAgICwgbV9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudChtYWtlVW5pcXVlUmVmPFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcj4o
bmV0d29ya1Byb2Nlc3MsIHBhcmFtZXRlcnMuc2Vzc2lvbklEKSkKICAgICAsIG1fdGVzdFNwZWVk
TXVsdGlwbGllcihwYXJhbWV0ZXJzLnRlc3RTcGVlZE11bHRpcGxpZXIpCiAgICAgLCBtX2FsbG93
c1NlcnZlclByZWNvbm5lY3QocGFyYW1ldGVycy5hbGxvd3NTZXJ2ZXJQcmVjb25uZWN0KQogewpA
QCAtMTIwLDcgKzExOSw3IEBAIE5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihOZXR3b3Jr
UHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzCiAKICAgICBtX2lzU3Rh
bGVXaGlsZVJldmFsaWRhdGVFbmFibGVkID0gcGFyYW1ldGVycy5zdGFsZVdoaWxlUmV2YWxpZGF0
ZUVuYWJsZWQ7CiAKLSAgICBtX2FkQ2xpY2tBdHRyaWJ1dGlvbi0+c2V0UGluZ0xvYWRGdW5jdGlv
bihbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMmJiBsb2FkUGFyYW1ldGVycywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7CisgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC0+c2V0UGluZ0xvYWRGdW5jdGlvbihbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlz
KV0oTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiBsb2FkUGFyYW1ldGVycywgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7CiAgICAgICAg
IGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIC8vIFBpbmdMb2Fk
IG1hbmFnZXMgaXRzIG93biBsaWZldGltZSwgZGVsZXRpbmcgaXRzZWxmIHdoZW4gaXRzIHB1cnBv
c2UgaGFzIGJlZW4gZnVsZmlsbGVkLgpAQCAtMzA0LDQ0ICszMDMsNDQgQEAgdm9pZCBOZXR3b3Jr
U2Vzc2lvbjo6cmVzZXRDTkFNRURvbWFpbkRhdGEoKQogfQogI2VuZGlmIC8vIEVOQUJMRShSRVNP
VVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAKLXZvaWQgTmV0d29ya1Nlc3Npb246OnN0b3JlQWRDbGlj
a0F0dHJpYnV0aW9uKFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbiYmIGFkQ2xpY2tBdHRyaWJ1
dGlvbikKK3ZvaWQgTmV0d29ya1Nlc3Npb246OnN0b3JlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQo
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCkKIHsKLSAgICBtX2FkQ2xpY2tBdHRyaWJ1dGlvbi0+c3RvcmVVbmNvbnZlcnRlZChXVEZNb3Zl
KGFkQ2xpY2tBdHRyaWJ1dGlvbikpOworICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPnN0
b3JlVW5jb252ZXJ0ZWQoV1RGTW92ZShwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkpOwogfQogCi12
b2lkIE5ldHdvcmtTZXNzaW9uOjpoYW5kbGVBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uKEFk
Q2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lvbiYmIGNvbnZlcnNpb24sIGNvbnN0IFVSTCYgcmVx
dWVzdFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3Qp
Cit2b2lkIE5ldHdvcmtTZXNzaW9uOjpoYW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZl
cnNpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24mJiBjb252ZXJzaW9uLCBj
b25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVk
aXJlY3RSZXF1ZXN0KQogewotICAgIG1fYWRDbGlja0F0dHJpYnV0aW9uLT5oYW5kbGVDb252ZXJz
aW9uKFdURk1vdmUoY29udmVyc2lvbiksIHJlcXVlc3RVUkwsIHJlZGlyZWN0UmVxdWVzdCk7Cisg
ICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+aGFuZGxlQ29udmVyc2lvbihXVEZNb3ZlKGNv
bnZlcnNpb24pLCByZXF1ZXN0VVJMLCByZWRpcmVjdFJlcXVlc3QpOwogfQogCi12b2lkIE5ldHdv
cmtTZXNzaW9uOjpkdW1wQWRDbGlja0F0dHJpYnV0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RyaW5nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1Nlc3Npb246OmR1bXBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgbV9hZENsaWNrQXR0cmlidXRpb24tPnRvU3RyaW5n
KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBtX3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50LT50b1N0cmluZyhXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgTmV0
d29ya1Nlc3Npb246OmNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKCkKK3ZvaWQgTmV0d29ya1Nlc3Np
b246OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKQogewotICAgIG1fYWRDbGlja0F0dHJp
YnV0aW9uLT5jbGVhcigpOworICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPmNsZWFyKCk7
CiB9CiAKLXZvaWQgTmV0d29ya1Nlc3Npb246OmNsZWFyQWRDbGlja0F0dHJpYnV0aW9uRm9yUmVn
aXN0cmFibGVEb21haW4oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBkb21haW4pCit2b2lk
IE5ldHdvcmtTZXNzaW9uOjpjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50Rm9yUmVnaXN0cmFi
bGVEb21haW4oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBkb21haW4pCiB7Ci0gICAgbV9h
ZENsaWNrQXR0cmlidXRpb24tPmNsZWFyRm9yUmVnaXN0cmFibGVEb21haW4oV1RGTW92ZShkb21h
aW4pKTsKKyAgICBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50LT5jbGVhckZvclJlZ2lzdHJhYmxl
RG9tYWluKFdURk1vdmUoZG9tYWluKSk7CiB9CiAKLXZvaWQgTmV0d29ya1Nlc3Npb246OnNldEFk
Q2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpCit2b2lk
IE5ldHdvcmtTZXNzaW9uOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJG
b3JUZXN0aW5nKGJvb2wgdmFsdWUpCiB7Ci0gICAgbV9hZENsaWNrQXR0cmlidXRpb24tPnNldE92
ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHZhbHVlKTsKKyAgICBtX3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50LT5zZXRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyh2YWx1ZSk7CiB9CiAKLXZvaWQgTmV0d29y
a1Nlc3Npb246OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVS
TCYmIHVybCkKK3ZvaWQgTmV0d29ya1Nlc3Npb246OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29udmVyc2lvblVSTEZvclRlc3RpbmcoVVJMJiYgdXJsKQogewotICAgIG1fYWRDbGlja0F0dHJp
YnV0aW9uLT5zZXRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhXVEZNb3ZlKHVybCkpOworICAgIG1f
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPnNldENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdURk1v
dmUodXJsKSk7CiB9CiAKLXZvaWQgTmV0d29ya1Nlc3Npb246Om1hcmtBZENsaWNrQXR0cmlidXRp
b25zQXNFeHBpcmVkRm9yVGVzdGluZygpCit2b2lkIE5ldHdvcmtTZXNzaW9uOjptYXJrUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpCiB7Ci0gICAgbV9hZENsaWNr
QXR0cmlidXRpb24tPm1hcmtBbGxVbmNvbnZlcnRlZEFzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAg
ICBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50LT5tYXJrQWxsVW5jb252ZXJ0ZWRBc0V4cGlyZWRG
b3JUZXN0aW5nKCk7CiB9CiAKIHZvaWQgTmV0d29ya1Nlc3Npb246OmFkZEtlcHRBbGl2ZUxvYWQo
UmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJiBsb2FkZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggMmZhMjYyZDUwNzEwMmMwZGJlMmE4
Mzc2YTI1YTQyNDExOWVhODdiZS4uY2E0YTU3NjY3ZDRiNGFjOTIwNDdiYzc5NDIxNzcxMDFmZjNi
YmEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
aApAQCAtMjksOSArMjksOSBAQAogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNs
dWRlICJTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRlci5oIgogI2luY2x1ZGUgIldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQWRDbGlja0F0dHJp
YnV0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9CbG9iUmVnaXN0cnlJbXBsLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1By
aXZhdGVDbGlja01lYXN1cmVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURv
bWFpbi5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgpAQCAtNTEsNyArNTEsNyBAQCBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlcjsKK2NsYXNz
IFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjsKIGNsYXNzIE5ldHdvcmtEYXRhVGFzazsK
IGNsYXNzIE5ldHdvcmtQcm9jZXNzOwogY2xhc3MgTmV0d29ya1Jlc291cmNlTG9hZGVyOwpAQCAt
MTE2LDE0ICsxMTYsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBoYXNBcHBCb3VuZFNl
c3Npb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBjbGVhckFw
cEJvdW5kU2Vzc2lvbigpIHsgfQogI2VuZGlmCi0gICAgdm9pZCBzdG9yZUFkQ2xpY2tBdHRyaWJ1
dGlvbihXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24mJik7Ci0gICAgdm9pZCBoYW5kbGVBZENs
aWNrQXR0cmlidXRpb25Db252ZXJzaW9uKFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29u
dmVyc2lvbiYmLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KTsKLSAgICB2b2lkIGR1bXBBZENsaWNrQXR0cmlidXRp
b24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKLSAgICB2b2lkIGNsZWFyQWRD
bGlja0F0dHJpYnV0aW9uKCk7Ci0gICAgdm9pZCBjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbkZvclJl
Z2lzdHJhYmxlRG9tYWluKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYpOwotICAgIHZvaWQg
c2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7
Ci0gICAgdm9pZCBzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyhV
UkwmJik7Ci0gICAgdm9pZCBtYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3Rp
bmcoKTsKKyAgICB2b2lkIHN0b3JlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQmJik7CisgICAgdm9pZCBoYW5kbGVQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvbnZlcnNpb24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZl
cnNpb24mJiwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlZGlyZWN0UmVxdWVzdCk7CisgICAgdm9pZCBkdW1wUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKKyAgICB2b2lkIGNsZWFy
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRGb3JSZWdpc3RyYWJsZURvbWFpbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYm
KTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRl
c3RpbmcoYm9vbCB2YWx1ZSk7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
bnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTCYmKTsKKyAgICB2b2lkIG1hcmtQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CiAKICAgICB2b2lkIGFkZEtlcHRBbGl2
ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJik7CiAgICAgdm9pZCByZW1vdmVLZXB0
QWxpdmVMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRlciYpOwpAQCAtMTc1LDcgKzE3NSw3IEBAIHBy
b3RlY3RlZDoKICAgICBPcHRpb25hbDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gbV90aGly
ZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0aW5nOwogI2VuZGlmCiAgICAgYm9vbCBtX2lzU3RhbGVX
aGlsZVJldmFsaWRhdGVFbmFibGVkIHsgZmFsc2UgfTsKLSAgICBVbmlxdWVSZWY8QWRDbGlja0F0
dHJpYnV0aW9uTWFuYWdlcj4gbV9hZENsaWNrQXR0cmlidXRpb247CisgICAgVW5pcXVlUmVmPFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcj4gbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsK
IAogICAgIEhhc2hTZXQ8UmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4+IG1fa2VwdEFsaXZlTG9h
ZHM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OGJlYWFhNjQx
ZWZlZGUxYjczMDMzMmNjOWQ4NmYwZjJlZTI4YjU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3Bw
CkBAIC0wLDAgKzEsMzM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oIgorCisjaW5jbHVkZSAiTG9n
Z2luZy5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvRmV0Y2hPcHRpb25zLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Gb3JtRGF0YS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUEhlYWRlclZhbHVlcy5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VFcnJvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCit1c2luZyBTb3VyY2UgPSBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6U291cmNlOwordXNpbmcgRGVzdGluYXRpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6RGVzdGluYXRpb247Cit1c2luZyBEZXN0aW5hdGlvbk1hcCA9IEhhc2hNYXA8RGVzdGlu
YXRpb24sIFByaXZhdGVDbGlja01lYXN1cmVtZW50PjsKK3VzaW5nIENvbnZlcnNpb24gPSBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbjsKKworY29uc3RleHByIFNlY29uZHMgZGVi
dWdNb2RlU2Vjb25kc1VudGlsU2VuZCB7IDYwX3MgfTsKKwordm9pZCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXI6OnN0b3JlVW5jb252ZXJ0ZWQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQm
JiBhdHRyaWJ1dGlvbikKK3sKKyAgICBjbGVhckV4cGlyZWQoKTsKKworICAgIGlmIChVTkxJS0VM
WShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQsICJTdG9yaW5nIGFuIGFkIGNsaWNrLiIpOworICAgICAgICBtX25l
dHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2Fn
ZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJb
UHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gU3RvcmluZyBhbiBhZCBjbGljay4iX3MpOworICAg
IH0KKworICAgIG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5zZXQoc3Rk
OjptYWtlX3BhaXIoYXR0cmlidXRpb24uc291cmNlKCksIGF0dHJpYnV0aW9uLmRlc3RpbmF0aW9u
KCkpLCBXVEZNb3ZlKGF0dHJpYnV0aW9uKSk7Cit9CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyOjpoYW5kbGVDb252ZXJzaW9uKENvbnZlcnNpb24mJiBjb252ZXJzaW9uLCBj
b25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVk
aXJlY3RSZXF1ZXN0KQoreworICAgIGlmIChtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdERvbWFpbiB7IHJl
ZGlyZWN0UmVxdWVzdC51cmwoKSB9OworICAgIGF1dG8mIGZpcnN0UGFydHlVUkwgPSByZWRpcmVj
dFJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKTsKKworICAgIGlmICghcmVkaXJlY3REb21h
aW4ubWF0Y2hlcyhyZXF1ZXN0VVJMKSkgeworICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2Rl
RW5hYmxlZCgpKSkgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCwgIkNvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBIVFRQ
IHJlZGlyZWN0IHdhcyBub3Qgc2FtZS1zaXRlLiIpOworICAgICAgICAgICAgbV9uZXR3b3JrUHJv
Y2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiW1ByaXZhdGUg
Q2xpY2sgTWVhc3VyZW1lbnRdIENvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRo
ZSBIVFRQIHJlZGlyZWN0IHdhcyBub3Qgc2FtZS1zaXRlLiJfcyk7CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChyZWRpcmVjdERvbWFpbi5tYXRjaGVzKGZpcnN0
UGFydHlVUkwpKSB7CisgICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7
CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAi
Q29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgaXQgd2FzIHJlcXVlc3RlZCBpbiBh
biBIVFRQIHJlZGlyZWN0IHRoYXQgaXMgc2FtZS1zaXRlIGFzIHRoZSBmaXJzdC1wYXJ0eS4iKTsK
KyAgICAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1f
c2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2Fn
ZUxldmVsOjpFcnJvciwgIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdh
cyBub3QgYWNjZXB0ZWQgYmVjYXVzZSBpdCB3YXMgcmVxdWVzdGVkIGluIGFuIEhUVFAgcmVkaXJl
Y3QgdGhhdCBpcyBzYW1lLXNpdGUgYXMgdGhlIGZpcnN0LXBhcnR5LiJfcyk7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnZlcnQoUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlNvdXJjZSB7IFdURk1vdmUocmVkaXJlY3REb21haW4pIH0sIFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGZpcnN0UGFydHlVUkwgfSwgV1RGTW92ZShjb252ZXJz
aW9uKSk7Cit9CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzdGFydFRp
bWVyKFNlY29uZHMgc2Vjb25kcykKK3sKKyAgICBtX2ZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVl
c3RzVGltZXIuc3RhcnRPbmVTaG90KG1faXNSdW5uaW5nVGVzdCA/IDBfcyA6IHNlY29uZHMpOwor
fQorCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Y29udmVydChjb25zdCBT
b3VyY2UmIHNvdXJjZSwgY29uc3QgRGVzdGluYXRpb24mIGRlc3RpbmF0aW9uLCBDb252ZXJzaW9u
JiYgY29udmVyc2lvbikKK3sKKyAgICBjbGVhckV4cGlyZWQoKTsKKworICAgIGlmICghY29udmVy
c2lvbi5pc1ZhbGlkKCkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQo
KSkpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsICJHb3QgYW4gaW52YWxpZCBjb252ZXJzaW9uLiIpOworICAgICAgICAgICAgbV9uZXR3b3Jr
UHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3Vy
Y2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiW1ByaXZh
dGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEdvdCBhbiBpbnZhbGlkIGNvbnZlcnNpb24uIl9zKTsKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBjb252ZXJzaW9uRGF0
YSA9IGNvbnZlcnNpb24uZGF0YTsKKyAgICBhdXRvIGNvbnZlcnNpb25Qcmlvcml0eSA9IGNvbnZl
cnNpb24ucHJpb3JpdHk7CisKKyAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkg
eworICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiR290
IGEgY29udmVyc2lvbiB3aXRoIGNvbnZlcnNpb24gZGF0YTogJXtwdWJsaWN9dSBhbmQgcHJpb3Jp
dHk6ICV7cHVibGljfXUuIiwgY29udmVyc2lvbkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0eSk7Cisg
ICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lv
bklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVs
OjpJbmZvLCBtYWtlU3RyaW5nKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gR290IGEgY29u
dmVyc2lvbiB3aXRoIGNvbnZlcnNpb24gZGF0YTogJyJfcywgY29udmVyc2lvbkRhdGEsICInIGFu
ZCBwcmlvcml0eTogJyJfcywgY29udmVyc2lvblByaW9yaXR5LCAiJy4iX3MpKTsKKyAgICB9CisK
KyAgICBhdXRvIHNlY29uZHNVbnRpbFNlbmQgPSBTZWNvbmRzOjppbmZpbml0eSgpOworCisgICAg
YXV0byBwYWlyID0gc3RkOjptYWtlX3BhaXIoc291cmNlLCBkZXN0aW5hdGlvbik7CisgICAgYXV0
byBwcmV2aW91c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbiA9IG1fdW5jb252ZXJ0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hcC50YWtlKHBhaXIpOworICAgIGF1dG8gcHJldmlvdXNseUNvbnZl
cnRlZEF0dHJpYnV0aW9uSXRlciA9IG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YXAuZmluZChwYWlyKTsKKworICAgIGlmICghcHJldmlvdXNseVVuY29udmVydGVkQXR0cmlidXRp
b24uaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIEFsd2F5cyBjb252ZXJ0IHRoZSBwZW5kaW5nIGF0
dHJpYnV0aW9uIGFuZCByZW1vdmUgaXQgZnJvbSB0aGUgdW5jb252ZXJ0ZWQgbWFwLgorICAgICAg
ICBpZiAoYXV0byBvcHRpb25hbFNlY29uZHNVbnRpbFNlbmQgPSBwcmV2aW91c2x5VW5jb252ZXJ0
ZWRBdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFdURk1vdmUoY29u
dmVyc2lvbikpKSB7CisgICAgICAgICAgICBzZWNvbmRzVW50aWxTZW5kID0gKm9wdGlvbmFsU2Vj
b25kc1VudGlsU2VuZDsKKyAgICAgICAgICAgIEFTU0VSVChzZWNvbmRzVW50aWxTZW5kICE9IFNl
Y29uZHM6OmluZmluaXR5KCkpOworCisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2Rl
RW5hYmxlZCgpKSkgeworICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQsICJDb252ZXJ0ZWQgYSBzdG9yZWQgYWQgY2xpY2sgd2l0aCBjb252ZXJz
aW9uIGRhdGE6ICV7cHVibGljfXUgYW5kIHByaW9yaXR5OiAle3B1YmxpY311LiIsIGNvbnZlcnNp
b25EYXRhLCBjb252ZXJzaW9uUHJpb3JpdHkpOworICAgICAgICAgICAgICAgIG1fbmV0d29ya1By
b2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5n
KCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVydGVkIGEgc3RvcmVkIGFkIGNsaWNr
IHdpdGggY29udmVyc2lvbiBkYXRhOiAnIl9zLCBjb252ZXJzaW9uRGF0YSwgIicgYW5kIHByaW9y
aXR5OiAnIl9zLCBjb252ZXJzaW9uUHJpb3JpdHksICInLiJfcykpOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKHByZXZpb3VzbHlDb252ZXJ0ZWRBdHRyaWJ1dGlvbkl0
ZXIgPT0gbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5lbmQoKSkKKyAgICAg
ICAgICAgIG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuYWRkKHBhaXIsIFdU
Rk1vdmUocHJldmlvdXNseVVuY29udmVydGVkQXR0cmlidXRpb24pKTsKKyAgICAgICAgZWxzZSBp
ZiAocHJldmlvdXNseVVuY29udmVydGVkQXR0cmlidXRpb24uaGFzSGlnaGVyUHJpb3JpdHlUaGFu
KHByZXZpb3VzbHlDb252ZXJ0ZWRBdHRyaWJ1dGlvbkl0ZXItPnZhbHVlKSkgeworICAgICAgICAg
ICAgLy8gSWYgdGhlIG5ld2x5IGNvbnZlcnRlZCBhdHRyaWJ1dGlvbiBoYXMgaGlnaGVyIHByaW9y
aXR5LCByZXBsYWNlIHRoZSBvbGQgb25lLgorICAgICAgICAgICAgbV9jb252ZXJ0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hcC5zZXQocGFpciwgV1RGTW92ZShwcmV2aW91c2x5VW5jb252ZXJ0
ZWRBdHRyaWJ1dGlvbikpOworCisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5h
YmxlZCgpKSkgeworICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQsICJSZXBsYWNlZCBhIHByZXZpb3VzbHkgY29udmVydGVkIGFkIGNsaWNrIHdp
dGggYSBuZXcgb25lIHdpdGggY29udmVyc2lvbiBkYXRhOiAle3B1YmxpY311IGFuZCBwcmlvcml0
eTogJXtwdWJsaWN9dSBiZWNhdXNlIGl0IGhhZCBoaWdoZXIgcHJpb3JpdHkuIiwgY29udmVyc2lv
bkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0eSk7CisgICAgICAgICAgICAgICAgbV9uZXR3b3JrUHJv
Y2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmco
IltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBSZXBsYWNlZCBhIHByZXZpb3VzbHkgY29udmVy
dGVkIGFkIGNsaWNrIHdpdGggYSBuZXcgb25lIHdpdGggY29udmVyc2lvbiBkYXRhOiAnIl9zLCBj
b252ZXJzaW9uRGF0YSwgIicgYW5kIHByaW9yaXR5OiAnIl9zLCBjb252ZXJzaW9uUHJpb3JpdHks
ICInIGJlY2F1c2UgaXQgaGFkIGhpZ2hlciBwcmlvcml0eS4iX3MpKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAocHJldmlvdXNseUNvbnZlcnRlZEF0dHJpYnV0aW9u
SXRlciAhPSBtX2NvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwLmVuZCgpKSB7Cisg
ICAgICAgIC8vIElmIHdlIGhhdmUgbm8gbmV3bHkgY29udmVydGVkIGF0dHJpYnV0aW9uLCByZS1j
b252ZXJ0IHRoZSBvbGQgb25lIHRvIHJlc3BlY3QgdGhlIG5ldyBwcmlvcml0eS4KKyAgICAgICAg
aWYgKGF1dG8gb3B0aW9uYWxTZWNvbmRzVW50aWxTZW5kID0gcHJldmlvdXNseUNvbnZlcnRlZEF0
dHJpYnV0aW9uSXRlci0+dmFsdWUuY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChXVEZN
b3ZlKGNvbnZlcnNpb24pKSkgeworICAgICAgICAgICAgc2Vjb25kc1VudGlsU2VuZCA9ICpvcHRp
b25hbFNlY29uZHNVbnRpbFNlbmQ7CisgICAgICAgICAgICBBU1NFUlQoc2Vjb25kc1VudGlsU2Vu
ZCAhPSBTZWNvbmRzOjppbmZpbml0eSgpKTsKKworICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRl
YnVnTW9kZUVuYWJsZWQoKSkpIHsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50LCAiUmUtY29udmVydGVkIGFuIGFkIGNsaWNrIHdpdGggYSBu
ZXcgb25lIHdpdGggY29udmVyc2lvbiBkYXRhOiAle3B1YmxpY311IGFuZCBwcmlvcml0eTogJXtw
dWJsaWN9dSBiZWNhdXNlIGl0IGhhZCBoaWdoZXIgcHJpb3JpdHkuIiwgY29udmVyc2lvbkRhdGEs
IGNvbnZlcnNpb25Qcmlvcml0eSk7CisgICAgICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+
YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltQcml2
YXRlIENsaWNrIE1lYXN1cmVtZW50XSBSZS1jb252ZXJ0ZWQgYW4gYWQgY2xpY2sgd2l0aCBhIG5l
dyBvbmUgd2l0aCBjb252ZXJzaW9uIGRhdGE6ICciX3MsIGNvbnZlcnNpb25EYXRhLCAiJyBhbmQg
cHJpb3JpdHk6ICciX3MsIGNvbnZlcnNpb25Qcmlvcml0eSwgIicnIGJlY2F1c2UgaXQgaGFkIGhp
Z2hlciBwcmlvcml0eS4iX3MpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwor
ICAgIGlmIChzZWNvbmRzVW50aWxTZW5kID09IFNlY29uZHM6OmluZmluaXR5KCkpCisgICAgICAg
IHJldHVybjsKKyAgICAKKyAgICBpZiAobV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1Rp
bWVyLmlzQWN0aXZlKCkgJiYgbV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVyLm5l
eHRGaXJlSW50ZXJ2YWwoKSA8IHNlY29uZHNVbnRpbFNlbmQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7CisgICAgICAgIFJFTEVBU0Vf
TE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJTZXR0aW5nIHRpbWVyIGZvciBmaXJp
bmcgY29udmVyc2lvbiByZXF1ZXN0cyB0byB0aGUgZGVidWcgbW9kZSB0aW1lb3V0IG9mICV7cHVi
bGljfWYgc2Vjb25kcyB3aGVyZSB0aGUgcmVndWxhciB0aW1lb3V0IHdvdWxkIGhhdmUgYmVlbiAl
e3B1YmxpY31mIHNlY29uZHMuIiwgZGVidWdNb2RlU2Vjb25kc1VudGlsU2VuZC5zZWNvbmRzKCks
IHNlY29uZHNVbnRpbFNlbmQuc2Vjb25kcygpKTsKKyAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+
YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltQcml2
YXRlIENsaWNrIE1lYXN1cmVtZW50XSBTZXR0aW5nIHRpbWVyIGZvciBmaXJpbmcgY29udmVyc2lv
biByZXF1ZXN0cyB0byB0aGUgZGVidWcgbW9kZSB0aW1lb3V0IG9mICJfcywgZGVidWdNb2RlU2Vj
b25kc1VudGlsU2VuZC5zZWNvbmRzKCksICIgc2Vjb25kcyB3aGVyZSB0aGUgcmVndWxhciB0aW1l
b3V0IHdvdWxkIGhhdmUgYmVlbiAiX3MsIHNlY29uZHNVbnRpbFNlbmQuc2Vjb25kcygpLCAiIHNl
Y29uZHMuIl9zKSk7CisgICAgICAgIHNlY29uZHNVbnRpbFNlbmQgPSBkZWJ1Z01vZGVTZWNvbmRz
VW50aWxTZW5kOworICAgIH0KKworICAgIHN0YXJ0VGltZXIoc2Vjb25kc1VudGlsU2VuZCk7Cit9
CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJl
cXVlc3QoY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmIGF0dHJpYnV0aW9uKQoreworICAg
IGF1dG8gY29udmVyc2lvblVSTCA9IG1fY29udmVyc2lvbkJhc2VVUkxGb3JUZXN0aW5nID8gKm1f
Y29udmVyc2lvbkJhc2VVUkxGb3JUZXN0aW5nIDogYXR0cmlidXRpb24ucmVwb3J0VVJMKCk7Cisg
ICAgaWYgKGNvbnZlcnNpb25VUkwuaXNFbXB0eSgpIHx8ICFjb252ZXJzaW9uVVJMLmlzVmFsaWQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgeyBXVEZN
b3ZlKGNvbnZlcnNpb25VUkwpIH07CisgICAgCisgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKCJQ
T1NUIl9zKTsKKyAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6
Q2FjaGVDb250cm9sLCBXZWJDb3JlOjpIVFRQSGVhZGVyVmFsdWVzOjptYXhBZ2UwKCkpOworCisg
ICAgcmVxdWVzdC5zZXRIVFRQQ29udGVudFR5cGUoV2ViQ29yZTo6SFRUUEhlYWRlclZhbHVlczo6
YXBwbGljYXRpb25KU09OQ29udGVudFR5cGUoKSk7CisgICAgcmVxdWVzdC5zZXRIVFRQQm9keShX
ZWJDb3JlOjpGb3JtRGF0YTo6Y3JlYXRlKGF0dHJpYnV0aW9uLmpzb24oKS0+dG9KU09OU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSkpOworCisgICAgRmV0Y2hPcHRpb25zIG9wdGlvbnM7CisgICAgb3B0
aW9ucy5jcmVkZW50aWFscyA9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9taXQ7CisgICAg
b3B0aW9ucy5yZWRpcmVjdCA9IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkVycm9yOworCisgICAg
c3RhdGljIHVpbnQ2NF90IGlkZW50aWZpZXIgPSAwOworICAgIAorICAgIE5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOworICAgIGxvYWRQYXJhbWV0ZXJzLmlkZW50
aWZpZXIgPSArK2lkZW50aWZpZXI7CisgICAgbG9hZFBhcmFtZXRlcnMucmVxdWVzdCA9IHJlcXVl
c3Q7CisgICAgbG9hZFBhcmFtZXRlcnMucGFyZW50UElEID0gcHJlc2VudGluZ0FwcGxpY2F0aW9u
UElEKCk7CisgICAgbG9hZFBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeTo6RXBoZW1lcmFsU3RhdGVsZXNzOworICAgIGxvYWRQYXJhbWV0
ZXJzLm9wdGlvbnMgPSBvcHRpb25zOworICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QgPSB0cnVlOworICAgIGxvYWRQYXJhbWV0ZXJzLnNo
b3VsZFJlc3RyaWN0SFRUUFJlc3BvbnNlQWNjZXNzID0gZmFsc2U7CisKKyAgICBpZiAoVU5MSUtF
TFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZh
dGVDbGlja01lYXN1cmVtZW50LCAiQWJvdXQgdG8gZmlyZSBhbiBhdHRyaWJ1dGlvbiByZXF1ZXN0
IGZvciBhIGNvbnZlcnNpb24uIik7CisgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2Fz
dENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwgIltQcml2YXRlIENsaWNrIE1lYXN1cmVt
ZW50XSBBYm91dCB0byBmaXJlIGFuIGF0dHJpYnV0aW9uIHJlcXVlc3QgZm9yIGEgY29udmVyc2lv
bi4iX3MpOworICAgIH0KKworICAgIG1fcGluZ0xvYWRGdW5jdGlvbihXVEZNb3ZlKGxvYWRQYXJh
bWV0ZXJzKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBpZiAoVU5MSUtFTFkod2Vha1RoaXMtPmRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKKyAg
ICAgICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkpIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwg
IlJlY2VpdmVkIGVycm9yOiAnJXtwdWJsaWN9cycgZm9yIGFkIGNsaWNrIGF0dHJpYnV0aW9uIHJl
cXVlc3QuIiwgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKTsKKyNl
bHNlCisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQsICJSZWNlaXZlZCBlcnJvcjogJyVzJyBmb3IgYWQgY2xpY2sgYXR0cmlidXRpb24gcmVx
dWVzdC4iLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpOworI2Vu
ZGlmCisgICAgICAgICAgICAgICAgd2Vha1RoaXMtPm1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2Fz
dENvbnNvbGVNZXNzYWdlKHdlYWtUaGlzLT5tX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1ha2VTdHJpbmcoIltQ
cml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBSZWNlaXZlZCBlcnJvcjogJyJfcywgZXJyb3IubG9j
YWxpemVkRGVzY3JpcHRpb24oKSwgIicgZm9yIGFkIGNsaWNrIGF0dHJpYnV0aW9uIHJlcXVlc3Qu
Il9zKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9KTsKK30KKwordm9pZCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3Rz
KCkKK3sKKyAgICBhdXRvIG5leHRUaW1lVG9GaXJlID0gU2Vjb25kczo6aW5maW5pdHkoKTsKKyAg
ICBmb3IgKGF1dG8mIGF0dHJpYnV0aW9uIDogbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hcC52YWx1ZXMoKSkgeworICAgICAgICBpZiAoYXR0cmlidXRpb24ud2FzQ29udmVyc2lv
blNlbnQoKSkgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBhdXRvIGVhcmxpZXN0VGltZVRvU2VuZCA9
IGF0dHJpYnV0aW9uLmVhcmxpZXN0VGltZVRvU2VuZCgpOworICAgICAgICBpZiAoIWVhcmxpZXN0
VGltZVRvU2VuZCkgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gbm93ID0gV2FsbFRpbWU6
Om5vdygpOworICAgICAgICBpZiAoKmVhcmxpZXN0VGltZVRvU2VuZCA8PSBub3cgfHwgbV9pc1J1
bm5pbmdUZXN0IHx8IGRlYnVnTW9kZUVuYWJsZWQoKSkgeworICAgICAgICAgICAgZmlyZUNvbnZl
cnNpb25SZXF1ZXN0KGF0dHJpYnV0aW9uKTsKKyAgICAgICAgICAgIGF0dHJpYnV0aW9uLm1hcmtD
b252ZXJzaW9uQXNTZW50KCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisg
ICAgICAgIGF1dG8gc2Vjb25kcyA9ICplYXJsaWVzdFRpbWVUb1NlbmQgLSBub3c7CisgICAgICAg
IG5leHRUaW1lVG9GaXJlID0gc3RkOjptaW4obmV4dFRpbWVUb0ZpcmUsIHNlY29uZHMpOworICAg
IH0KKworICAgIG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAucmVtb3ZlSWYo
W10oYXV0byYga2V5QW5kVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIGtleUFuZFZhbHVlLnZhbHVl
Lndhc0NvbnZlcnNpb25TZW50KCk7CisgICAgfSk7CisKKyAgICBpZiAobmV4dFRpbWVUb0ZpcmUg
PCBTZWNvbmRzOjppbmZpbml0eSgpKQorICAgICAgICBzdGFydFRpbWVyKG5leHRUaW1lVG9GaXJl
KTsKK30KKwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmNsZWFyKCkKK3sK
KyAgICBtX2ZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzVGltZXIuc3RvcCgpOworICAgIG1f
dW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5jbGVhcigpOworICAgIG1fY29u
dmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuY2xlYXIoKTsKK30KKwordm9pZCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmNsZWFyRm9yUmVnaXN0cmFibGVEb21haW4oY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKK3sKKyAgICBtX3VuY29udmVydGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYXAucmVtb3ZlSWYoWyZkb21haW5dKGF1dG8mIGtleUFuZFZhbHVl
KSB7CisgICAgICAgIHJldHVybiBrZXlBbmRWYWx1ZS5rZXkuZmlyc3QucmVnaXN0cmFibGVEb21h
aW4gPT0gZG9tYWluIHx8IGtleUFuZFZhbHVlLmtleS5zZWNvbmQucmVnaXN0cmFibGVEb21haW4g
PT0gZG9tYWluOworICAgIH0pOworCisgICAgbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hcC5yZW1vdmVJZihbJmRvbWFpbl0oYXV0byYga2V5QW5kVmFsdWUpIHsKKyAgICAgICAg
cmV0dXJuIGtleUFuZFZhbHVlLmtleS5maXJzdC5yZWdpc3RyYWJsZURvbWFpbiA9PSBkb21haW4g
fHwga2V5QW5kVmFsdWUua2V5LnNlY29uZC5yZWdpc3RyYWJsZURvbWFpbiA9PSBkb21haW47Cisg
ICAgfSk7Cit9CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpjbGVhckV4
cGlyZWQoKQoreworICAgIG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5y
ZW1vdmVJZihbXShhdXRvJiBrZXlBbmRWYWx1ZSkgeworICAgICAgICByZXR1cm4ga2V5QW5kVmFs
dWUudmFsdWUuaGFzRXhwaXJlZCgpOworICAgIH0pOworfQorCit2b2lkIFByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlcjo6dG9TdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAoreworICAgIGlmIChtX3VuY29udmVydGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuaXNFbXB0eSgpICYmIG1fY29udmVydGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYXAuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhh
bmRsZXIoIlxuTm8gc3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgZGF0YS5cbiJfcyk7
CisKKyAgICB1bnNpZ25lZCB1bmNvbnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyID0gMDsKKyAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgZm9yIChhdXRvJiBhdHRyaWJ1dGlvbiA6IG1fdW5j
b252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC52YWx1ZXMoKSkgeworICAgICAgICBp
ZiAoIXVuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpCisgICAgICAgICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIlVuY29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOlxuIik7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIldlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
ICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcigrK3VuY29udmVydGVkQXR0cmlidXRp
b25OdW1iZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoYXR0cmlidXRpb24udG9TdHJpbmcoKSk7Cit9CisKKyAgICB1bnNpZ25lZCBjb252
ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlciA9IDA7CisgICAgZm9yIChhdXRvJiBhdHRyaWJ1dGlvbiA6
IG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAudmFsdWVzKCkpIHsKKyAgICAg
ICAgaWYgKHVuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpCisgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZCgnXG4nKTsKKyAgICAgICAgaWYgKCFjb252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlcikK
KyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiQ29udmVydGVkIFByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnRzOlxuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCdcbicpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIldlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50ICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcigr
K2NvbnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyICsgdW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJl
cik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZChhdHRyaWJ1dGlvbi50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBjb21wbGV0aW9uSGFuZGxl
cihidWlsZGVyLnRvU3RyaW5nKCkpOworfQorCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlcjo6c2V0Q29udmVyc2lvblVSTEZvclRlc3RpbmcoVVJMJiYgdGVzdFVSTCkKK3sKKyAg
ICBpZiAodGVzdFVSTC5pc0VtcHR5KCkpCisgICAgICAgIG1fY29udmVyc2lvbkJhc2VVUkxGb3JU
ZXN0aW5nID0geyB9OworICAgIGVsc2UKKyAgICAgICAgbV9jb252ZXJzaW9uQmFzZVVSTEZvclRl
c3RpbmcgPSBXVEZNb3ZlKHRlc3RVUkwpOworfQorCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlcjo6bWFya0FsbFVuY29udmVydGVkQXNFeHBpcmVkRm9yVGVzdGluZygpCit7Cisg
ICAgZm9yIChhdXRvJiBhdHRyaWJ1dGlvbiA6IG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hcC52YWx1ZXMoKSkKKyAgICAgICAgYXR0cmlidXRpb24ubWFya0FzRXhwaXJlZCgp
OworfQorCitib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZGVidWdNb2RlRW5h
YmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkucHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkKCkgJiYg
IW1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNkNDM3MWI2N2RmNTk4OTJmYjdl
YmQ0NWE1MTQ5ZDJlOWQ4YmQ2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgKQEAgLTAsMCArMSw5
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3MuaCIKKyNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1JlZ2lzdHJhYmxlRG9tYWluLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9UaW1lci5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvQ29t
cGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0
Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIgOiBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyPiB7CisgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisKKyAgICB1c2luZyBSZWdpc3RyYWJs
ZURvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOworICAgIHVzaW5nIFByaXZhdGVD
bGlja01lYXN1cmVtZW50ID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CisgICAg
dXNpbmcgU291cmNlID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTsK
KyAgICB1c2luZyBEZXN0aW5hdGlvbiA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpEZXN0aW5hdGlvbjsKKyAgICB1c2luZyBDb252ZXJzaW9uID0gV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb247CisKKyAgICBleHBsaWNpdCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXIoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQpCisgICAgICAgIDogbV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1
ZXN0c1RpbWVyKCp0aGlzLCAmUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlUGVu
ZGluZ0NvbnZlcnNpb25SZXF1ZXN0cykKKyAgICAgICAgLCBtX3BpbmdMb2FkRnVuY3Rpb24oW10o
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiBwYXJhbXMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeworICAgICAgICAgICAgVU5VU0VE
X1BBUkFNKHBhcmFtcyk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yKCksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UoKSk7CisgICAgICAgIH0p
CisgICAgICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKKyAgICAgICAgLCBt
X3Nlc3Npb25JRChzZXNzaW9uSUQpCisgICAgeworICAgIH0KKworICAgIHZvaWQgc3RvcmVVbmNv
bnZlcnRlZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKTsKKyAgICB2b2lkIGhhbmRsZUNvbnZl
cnNpb24oQ29udmVyc2lvbiYmLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KTsKKyAgICB2b2lkIGNsZWFyKCk7Cisg
ICAgdm9pZCBjbGVhckZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
Jik7CisgICAgdm9pZCB0b1N0cmluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYp
IGNvbnN0OworICAgIHZvaWQgc2V0UGluZ0xvYWRGdW5jdGlvbihGdW5jdGlvbjx2b2lkKE5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
KT4mJik+JiYgcGluZ0xvYWRGdW5jdGlvbikgeyBtX3BpbmdMb2FkRnVuY3Rpb24gPSBXVEZNb3Zl
KHBpbmdMb2FkRnVuY3Rpb24pOyB9CisgICAgdm9pZCBzZXRPdmVycmlkZVRpbWVyRm9yVGVzdGlu
Zyhib29sIHZhbHVlKSB7IG1faXNSdW5uaW5nVGVzdCA9IHZhbHVlOyB9CisgICAgdm9pZCBzZXRD
b252ZXJzaW9uVVJMRm9yVGVzdGluZyhVUkwmJik7CisgICAgdm9pZCBtYXJrQWxsVW5jb252ZXJ0
ZWRBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CisKK3ByaXZhdGU6CisgICAgdm9pZCBzdGFydFRpbWVy
KFNlY29uZHMpOworICAgIHZvaWQgY29udmVydChjb25zdCBTb3VyY2UmLCBjb25zdCBEZXN0aW5h
dGlvbiYsIENvbnZlcnNpb24mJik7CisgICAgdm9pZCBmaXJlQ29udmVyc2lvblJlcXVlc3QoY29u
c3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKTsKKyAgICB2b2lkIGZpcmVQZW5kaW5nQ29udmVy
c2lvblJlcXVlc3RzKCk7CisgICAgdm9pZCBjbGVhckV4cGlyZWQoKTsKKyAgICBib29sIGRlYnVn
TW9kZUVuYWJsZWQoKSBjb25zdDsKKworICAgIEhhc2hNYXA8c3RkOjpwYWlyPFNvdXJjZSwgRGVz
dGluYXRpb24+LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gbV91bmNvbnZlcnRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFwOworICAgIEhhc2hNYXA8c3RkOjpwYWlyPFNvdXJjZSwgRGVzdGlu
YXRpb24+LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hcDsKKyAgICBXZWJDb3JlOjpUaW1lciBtX2ZpcmVQZW5kaW5nQ29udmVyc2lv
blJlcXVlc3RzVGltZXI7CisgICAgRnVuY3Rpb248dm9pZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVycyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
RXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYpPiBtX3BpbmdMb2Fk
RnVuY3Rpb247CisgICAgYm9vbCBtX2lzUnVubmluZ1Rlc3QgeyBmYWxzZSB9OworICAgIE9wdGlv
bmFsPFVSTD4gbV9jb252ZXJzaW9uQmFzZVVSTEZvclRlc3Rpbmc7CisgICAgUmVmPE5ldHdvcmtQ
cm9jZXNzPiBtX25ldHdvcmtQcm9jZXNzOworICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklE
OworfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcu
aAppbmRleCAzMjVhNDZmZmM1OTk0MTk0MTEyNDk2ODZkZjdhYzUyZWJhOWJhMTE1Li4yMGRjYzVl
ODY0MWQ0Mzg3ZWQzNTk3MjhkZGE3NTNmZTViYmYwNzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0xvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dp
bmcuaApAQCAtNDEsNyArNDEsNyBAQCBleHRlcm4gIkMiIHsKIAogI2RlZmluZSBXRUJLSVQyX0xP
R19DSEFOTkVMUyhNKSBcCiAgICAgTShBY3Rpdml0eVN0YXRlKSBcCi0gICAgTShBZENsaWNrQXR0
cmlidXRpb24pIFwKKyAgICBNKFByaXZhdGVDbGlja01lYXN1cmVtZW50KSBcCiAgICAgTShBcHBT
U08pIFwKICAgICBNKEF1dG9tYXRpb24pIFwKICAgICBNKEF1dG9tYXRpb25JbnRlcmFjdGlvbnMp
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRh
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmNwcAppbmRl
eCAwMmY3Mzg4NGE3M2QxYzQ5ZTY5ZmE5YTJlYTM0MDRiZTY1ZWE3NTMwLi40YjJhNTYyYzRhN2Q3
NThiYzQ3NTlhMmQ2ZDZhYzIzMjdjNWYxMGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
TmF2aWdhdGlvbkFjdGlvbkRhdGEuY3BwCkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgTmF2aWdhdGlv
bkFjdGlvbkRhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5j
b2RlciA8PCBsb2NrSGlzdG9yeTsKICAgICBlbmNvZGVyIDw8IGxvY2tCYWNrRm9yd2FyZExpc3Q7
CiAgICAgZW5jb2RlciA8PCBjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rvcnk7Ci0gICAgZW5j
b2RlciA8PCBhZENsaWNrQXR0cmlidXRpb247CisgICAgZW5jb2RlciA8PCBwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDsKIH0KIAogT3B0aW9uYWw8TmF2aWdhdGlvbkFjdGlvbkRhdGE+IE5hdmlnYXRp
b25BY3Rpb25EYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQpAQCAtMTQ2LDE1ICsx
NDYsMTUgQEAgT3B0aW9uYWw8TmF2aWdhdGlvbkFjdGlvbkRhdGE+IE5hdmlnYXRpb25BY3Rpb25E
YXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGUKICAgICBpZiAoIWNsaWVudFJlZGlyZWN0
U291cmNlRm9ySGlzdG9yeSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIE9w
dGlvbmFsPE9wdGlvbmFsPFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbj4+IGFkQ2xpY2tBdHRy
aWJ1dGlvbjsKLSAgICBkZWNvZGVyID4+IGFkQ2xpY2tBdHRyaWJ1dGlvbjsKLSAgICBpZiAoIWFk
Q2xpY2tBdHRyaWJ1dGlvbikKKyAgICBPcHRpb25hbDxPcHRpb25hbDxXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudD4+IHByaXZhdGVDbGlja01lYXN1cmVtZW50OworICAgIGRlY29kZXIg
Pj4gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CisgICAgaWYgKCFwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgIHJldHVybiB7eyBXVEZN
b3ZlKG5hdmlnYXRpb25UeXBlKSwgbW9kaWZpZXJzLCBXVEZNb3ZlKG1vdXNlQnV0dG9uKSwgV1RG
TW92ZShzeW50aGV0aWNDbGlja1R5cGUpLCBXVEZNb3ZlKCp1c2VyR2VzdHVyZVRva2VuSWRlbnRp
ZmllciksCiAgICAgICAgIFdURk1vdmUoKmNhbkhhbmRsZVJlcXVlc3QpLCBXVEZNb3ZlKHNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpLCBXVEZNb3ZlKCpkb3dubG9hZEF0dHJpYnV0ZSksIFdU
Rk1vdmUoY2xpY2tMb2NhdGlvbkluUm9vdFZpZXdDb29yZGluYXRlcyksCiAgICAgICAgIFdURk1v
dmUoKmlzUmVkaXJlY3QpLCAqdHJlYXRBc1NhbWVPcmlnaW5OYXZpZ2F0aW9uLCAqaGFzT3BlbmVk
RnJhbWVzLCAqb3BlbmVkQnlET01XaXRoT3BlbmVyLCBXVEZNb3ZlKCpyZXF1ZXN0ZXJPcmlnaW4p
LAotICAgICAgICBXVEZNb3ZlKCp0YXJnZXRCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyKSwgV1RG
TW92ZSgqc291cmNlQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciksIGxvY2tIaXN0b3J5LCBsb2Nr
QmFja0ZvcndhcmRMaXN0LCBXVEZNb3ZlKCpjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rvcnkp
LCBXVEZNb3ZlKCphZENsaWNrQXR0cmlidXRpb24pIH19OworICAgICAgICBXVEZNb3ZlKCp0YXJn
ZXRCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyKSwgV1RGTW92ZSgqc291cmNlQmFja0ZvcndhcmRJ
dGVtSWRlbnRpZmllciksIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0LCBXVEZNb3Zl
KCpjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkpLCBXVEZNb3ZlKCpwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCkgfX07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmgKaW5kZXggY2JkNzcwZTU3ZjNlYTdkNGZj
ODkyZGNlYWY0NGRmYWZjMGI1ZjRkZC4uMzE5ZjJmOTgyZmM1MGFiMzQwYjRjNjI4NWY3OTFlMGU0
ZTUzYmM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlv
bkRhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5o
CkBAIC0yNiwxMCArMjYsMTAgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiV2ViTW91c2VF
dmVudC5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQWRDbGlja0F0dHJpYnV0aW9uLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9CYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9GbG9hdFBvaW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtNjIsNyAr
NjIsNyBAQCBzdHJ1Y3QgTmF2aWdhdGlvbkFjdGlvbkRhdGEgewogICAgIFdlYkNvcmU6OkxvY2tI
aXN0b3J5IGxvY2tIaXN0b3J5IHsgV2ViQ29yZTo6TG9ja0hpc3Rvcnk6Ok5vIH07CiAgICAgV2Vi
Q29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0IHsgV2ViQ29yZTo6
TG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8gfTsKICAgICBXVEY6OlN0cmluZyBjbGllbnRSZWRpcmVj
dFNvdXJjZUZvckhpc3Rvcnk7Ci0gICAgT3B0aW9uYWw8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0
aW9uPiBhZENsaWNrQXR0cmlidXRpb247CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ+IHByaXZhdGVDbGlja01lYXN1cmVtZW50OwogfTsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuY3BwCmluZGV4IGI2
YzkxODQwOWYwMWEwZDJlMzY1YTMzMGNlZmVlNzc3NzZiYWZmMGEuLmFlYzE1ZTVkMzgxYWQxYmRi
MTE5N2YzNzRkM2IwMDdkNDNiNTJiOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5jcHAKQEAgLTEzMyw3ICsxMzMsNyBAQCBXZWJzaXRlRGF0
YVByb2Nlc3NUeXBlIFdlYnNpdGVEYXRhOjpvd25lclByb2Nlc3MoV2Vic2l0ZURhdGFUeXBlIGRh
dGFUeXBlKQogICAgICAgICByZXR1cm4gV2Vic2l0ZURhdGFQcm9jZXNzVHlwZTo6TmV0d29yazsK
ICAgICBjYXNlIFdlYnNpdGVEYXRhVHlwZTo6RGV2aWNlSWRIYXNoU2FsdDoKICAgICAgICAgcmV0
dXJuIFdlYnNpdGVEYXRhUHJvY2Vzc1R5cGU6OlVJOwotICAgIGNhc2UgV2Vic2l0ZURhdGFUeXBl
OjpBZENsaWNrQXR0cmlidXRpb25zOgorICAgIGNhc2UgV2Vic2l0ZURhdGFUeXBlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudHM6CiAgICAgICAgIHJldHVybiBXZWJzaXRlRGF0YVByb2Nlc3NUeXBl
OjpOZXR3b3JrOwogI2lmIEhBVkUoQ0ZORVRXT1JLX0FMVEVSTkFUSVZFX1NFUlZJQ0UpCiAgICAg
Y2FzZSBXZWJzaXRlRGF0YVR5cGU6OkFsdGVybmF0aXZlU2VydmljZXM6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVR5cGUuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhVHlwZS5oCmluZGV4IDY2MzVk
YzU3ZDkwMTY4YjQxMWJiZjkxMDczYTI2MDUzNTY3NzAyOGQuLjM1ZjcyOTk0MTZjYjlkNGZiMDJi
Zjk1NjMzMTgyNmExNGM4YTdkNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhVHlwZS5oCkBAIC01MSw3ICs1MSw3IEBAIGVudW0gY2xhc3Mg
V2Vic2l0ZURhdGFUeXBlIDogdWludDMyX3QgewogI2VuZGlmCiAgICAgRE9NQ2FjaGUgPSAxIDw8
IDE1LAogICAgIERldmljZUlkSGFzaFNhbHQgPSAxIDw8IDE2LAotICAgIEFkQ2xpY2tBdHRyaWJ1
dGlvbnMgPSAxIDw8IDE3LAorICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50cyA9IDEgPDwgMTcs
CiAjaWYgSEFWRShDRk5FVFdPUktfQUxURVJOQVRJVkVfU0VSVklDRSkKICAgICBBbHRlcm5hdGl2
ZVNlcnZpY2VzID0gMSA8PCAxOCwKICNlbmRpZgpAQCAtODUsNyArODUsNyBAQCB0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB7CiAjZW5kaWYKICAg
ICAgICAgV2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU6OkRPTUNhY2hlLAogICAgICAgICBXZWJLaXQ6
OldlYnNpdGVEYXRhVHlwZTo6RGV2aWNlSWRIYXNoU2FsdCwKLSAgICAgICAgV2ViS2l0OjpXZWJz
aXRlRGF0YVR5cGU6OkFkQ2xpY2tBdHRyaWJ1dGlvbnMKKyAgICAgICAgV2ViS2l0OjpXZWJzaXRl
RGF0YVR5cGU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50cwogI2lmIEhBVkUoQ0ZORVRXT1JLX0FM
VEVSTkFUSVZFX1NFUlZJQ0UpCiAgICAgICAgICwgV2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU6OkFs
dGVybmF0aXZlU2VydmljZXMKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggMjQ1ZmRiMjFmOTUyOTk4
YTM5ZGI4YTIxOTJjOGM1NzJjODkxMDYyZS4uNWI1NDE3MzBmMTIzYmY5MzEyZTkzZGYwZmUyYzU4
NDg1MGU4ZjhjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC01Miw3ICs1Miw3IEBAIEdQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKIEdQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCiAKIAotTmV0d29ya1By
b2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5jcHAKK05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rp
dml0eVRyYWNrZXIuY3BwCiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNr
ZXIuY3BwCiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5oCmluZGV4IGQ4Njhm
OGIyMzNlZTZmYTU1ODczNzE5MTM3ZjRjMzFjMTI4YzdlYzYuLjE5MDk1ZGE0ODY2MWI4NWMwOTQ2
MmVhZWIxNWNmMWZlZjQxYTkxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElOYXZpZ2F0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SU5hdmlnYXRpb24uaApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRs
ZXIuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCiAjaW5jbHVkZSAiV2Vi
Q29udGVudE1vZGUuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJl
cXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgpAQCAtMTUz
LDcgKzE1Myw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxTdWJzdGl0
dXRlRGF0YT4mIHN1YnN0aXR1dGVEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9zdWJzdGl0dXRlRGF0
YTsgfQogCi0gICAgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uPiYg
YWRDbGlja0F0dHJpYnV0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TmF2aWdhdGlvbkFjdGlv
bi5hZENsaWNrQXR0cmlidXRpb247IH0KKyAgICBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudD4mIHByaXZhdGVDbGlja01lYXN1cmVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9sYXN0TmF2aWdhdGlvbkFjdGlvbi5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsgfQog
CiAgICAgdm9pZCBzZXRDbGllbnROYXZpZ2F0aW9uQWN0aXZpdHkoV2ViS2l0OjpQcm9jZXNzVGhy
b3R0bGVyOjpBY3Rpdml0eVZhcmlhbnQmJiBhY3Rpdml0eSkgeyBtX2NsaWVudE5hdmlnYXRpb25B
Y3Rpdml0eSA9IFdURk1vdmUoYWN0aXZpdHkpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwCmluZGV4IDQzNjljZGQ4MjViNTE1N2ZiMDEwYzNmODFhZTc4ZTY2MGRh
YTc0ZmMuLmU3NmUwMDc4MGE0MTQ2NjIwNWVhMjlmNjEyMDU1M2I2YjNhNmU0NDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMjg4MCwzNyArMjg4MCwzNyBA
QCB2b2lkIFdLUGFnZUdldEFwcGxpY2F0aW9uTWFuaWZlc3RfYihXS1BhZ2VSZWYgcGFnZSwgV0tQ
YWdlR2V0QXBwbGljYXRpb25NYW5pZmVzdAogfQogI2VuZGlmCiAKLXZvaWQgV0tQYWdlRHVtcEFk
Q2xpY2tBdHRyaWJ1dGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlRHVtcEFkQ2xpY2tBdHRyaWJ1
dGlvbkZ1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpCit2b2lkIFdLUGFn
ZUR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlRHVtcFBy
aXZhdGVDbGlja01lYXN1cmVtZW50RnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29u
dGV4dCkKIHsKLSAgICB0b0ltcGwocGFnZSktPmR1bXBBZENsaWNrQXR0cmlidXRpb24oW2NhbGxi
YWNrQ29udGV4dCwgY2FsbGJhY2tdIChjb25zdCBTdHJpbmcmIGFkQ2xpY2tBdHRyaWJ1dGlvbikg
ewotICAgICAgICBjYWxsYmFjayhXZWJLaXQ6OnRvQVBJKGFkQ2xpY2tBdHRyaWJ1dGlvbi5pbXBs
KCkpLCBjYWxsYmFja0NvbnRleHQpOworICAgIHRvSW1wbChwYWdlKS0+ZHVtcFByaXZhdGVDbGlj
a01lYXN1cmVtZW50KFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAoY29uc3QgU3RyaW5nJiBw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCkgeworICAgICAgICBjYWxsYmFjayhXZWJLaXQ6OnRvQVBJ
KHByaXZhdGVDbGlja01lYXN1cmVtZW50LmltcGwoKSksIGNhbGxiYWNrQ29udGV4dCk7CiAgICAg
fSk7CiB9CiAKLXZvaWQgV0tQYWdlQ2xlYXJBZENsaWNrQXR0cmlidXRpb24oV0tQYWdlUmVmIHBh
Z2UsIFdLUGFnZUNsZWFyQWRDbGlja0F0dHJpYnV0aW9uRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQq
IGNhbGxiYWNrQ29udGV4dCkKK3ZvaWQgV0tQYWdlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dChXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZ1bmN0
aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpCiB7Ci0gICAgdG9JbXBsKHBhZ2Up
LT5jbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbihbY2FsbGJhY2tDb250ZXh0LCBjYWxsYmFja10gKCkg
eworICAgIHRvSW1wbChwYWdlKS0+Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChbY2FsbGJh
Y2tDb250ZXh0LCBjYWxsYmFja10gKCkgewogICAgICAgICBjYWxsYmFjayhjYWxsYmFja0NvbnRl
eHQpOwogICAgIH0pOwogfQogCi12b2lkIFdLUGFnZVNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJy
aWRlVGltZXJGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBib29sIHZhbHVlLCBXS1BhZ2VTZXRB
ZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNr
LCB2b2lkKiBjYWxsYmFja0NvbnRleHQpCit2b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIGJvb2wgdmFsdWUs
IFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmdG
dW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KQogewotICAgIHRvSW1wbChw
YWdlKS0+c2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmcodmFsdWUs
IFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAoKSB7CisgICAgdG9JbXBsKHBhZ2UpLT5zZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHZhbHVlLCBbY2Fs
bGJhY2tDb250ZXh0LCBjYWxsYmFja10gKCkgewogICAgICAgICBjYWxsYmFjayhjYWxsYmFja0Nv
bnRleHQpOwogICAgIH0pOwogfQogCi12b2lkIFdLUGFnZVNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNv
bnZlcnNpb25VUkxGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1VSTFJlZiBVUkxSZWYsIFdL
UGFnZVNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nRnVuY3Rpb24g
Y2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCkKK3ZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tV
UkxSZWYgVVJMUmVmLCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25V
UkxGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCkKIHsK
LSAgICB0b0ltcGwocGFnZSktPnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JU
ZXN0aW5nKFVSTChVUkwoKSwgdG9XVEZTdHJpbmcoVVJMUmVmKSksIFtjYWxsYmFja0NvbnRleHQs
IGNhbGxiYWNrXSAoKSB7CisgICAgdG9JbXBsKHBhZ2UpLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTChVUkwoKSwgdG9XVEZTdHJpbmcoVVJMUmVm
KSksIFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAoKSB7CiAgICAgICAgIGNhbGxiYWNrKGNh
bGxiYWNrQ29udGV4dCk7CiAgICAgfSk7CiB9CiAKLXZvaWQgV0tQYWdlTWFya0FkQ2xpY2tBdHRy
aWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VNYXJrQWRD
bGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9p
ZCogY2FsbGJhY2tDb250ZXh0KQordm9pZCBXS1BhZ2VNYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRzQXNFeHBpcmVkRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlTWFya1ByaXZhdGVD
bGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9p
ZCogY2FsbGJhY2tDb250ZXh0KQogewotICAgIHRvSW1wbChwYWdlKS0+bWFya0FkQ2xpY2tBdHRy
aWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAo
KSB7CisgICAgdG9JbXBsKHBhZ2UpLT5tYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBp
cmVkRm9yVGVzdGluZyhbY2FsbGJhY2tDb250ZXh0LCBjYWxsYmFja10gKCkgewogICAgICAgICBj
YWxsYmFjayhjYWxsYmFja0NvbnRleHQpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCmluZGV4IDIwZDNlZTk2ZjhhY2QzZWFkMmM3
YjczNDEyYmQwNDE2ZTkzZjY0YTYuLmZiZDYxMTlhZmExMWFlMDVhMjJhNjNhNjQ0NzhmM2M4NmRm
ODIxOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVBy
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRl
LmgKQEAgLTE2OSwxNiArMTY5LDE2IEBAIHR5cGVkZWYgdm9pZCAoXldLUGFnZUdldEFwcGxpY2F0
aW9uTWFuaWZlc3RCbG9jaykodm9pZCk7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VHZXRBcHBsaWNh
dGlvbk1hbmlmZXN0X2IoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZUdldEFwcGxpY2F0aW9uTWFuaWZl
c3RCbG9jayBibG9jayk7CiAjZW5kaWYKIAotdHlwZWRlZiB2b2lkICgqV0tQYWdlRHVtcEFkQ2xp
Y2tBdHRyaWJ1dGlvbkZ1bmN0aW9uKShXS1N0cmluZ1JlZiBhZENsaWNrQXR0cmlidXRpb25SZXBy
ZXNlbnRhdGlvbiwgdm9pZCogZnVuY3Rpb25Db250ZXh0KTsKLVdLX0VYUE9SVCB2b2lkIFdLUGFn
ZUR1bXBBZENsaWNrQXR0cmlidXRpb24oV0tQYWdlUmVmLCBXS1BhZ2VEdW1wQWRDbGlja0F0dHJp
YnV0aW9uRnVuY3Rpb24sIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7Ci10eXBlZGVmIHZvaWQgKCpX
S1BhZ2VDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbkZ1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRl
eHQpOwotV0tfRVhQT1JUIHZvaWQgV0tQYWdlQ2xlYXJBZENsaWNrQXR0cmlidXRpb24oV0tQYWdl
UmVmLCBXS1BhZ2VDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbkZ1bmN0aW9uLCB2b2lkKiBjYWxsYmFj
a0NvbnRleHQpOwotdHlwZWRlZiB2b2lkICgqV0tQYWdlU2V0QWRDbGlja0F0dHJpYnV0aW9uT3Zl
cnJpZGVUaW1lckZvclRlc3RpbmdGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKLVdL
X0VYUE9SVCB2b2lkIFdLUGFnZVNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JU
ZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBib29sIHZhbHVlLCBXS1BhZ2VTZXRBZENsaWNrQXR0cmli
dXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxs
YmFja0NvbnRleHQpOwotdHlwZWRlZiB2b2lkICgqV0tQYWdlU2V0QWRDbGlja0F0dHJpYnV0aW9u
Q29udmVyc2lvblVSTEZvclRlc3RpbmdGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsK
LVdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxG
b3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1VSTFJlZiB1cmxTdHJpbmcsIFdLUGFnZVNldEFk
Q2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ss
IHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7Ci10eXBlZGVmIHZvaWQgKCpXS1BhZ2VNYXJrQWRDbGlj
a0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmdGdW5jdGlvbikodm9pZCogZnVuY3Rpb25D
b250ZXh0KTsKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZU1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNF
eHBpcmVkRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlTWFya0FkQ2xpY2tBdHRyaWJ1
dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNr
Q29udGV4dCk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRGdW5jdGlvbikoV0tTdHJpbmdSZWYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRSZXByZXNlbnRh
dGlvbiwgdm9pZCogZnVuY3Rpb25Db250ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZUR1bXBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudChXS1BhZ2VSZWYsIFdLUGFnZUR1bXBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEZ1bmN0aW9uLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpOwordHlwZWRlZiB2b2lk
ICgqV0tQYWdlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZ1bmN0aW9uKSh2b2lkKiBmdW5j
dGlvbkNvbnRleHQpOworV0tfRVhQT1JUIHZvaWQgV0tQYWdlQ2xlYXJQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudChXS1BhZ2VSZWYsIFdLUGFnZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGdW5j
dGlvbiwgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZVNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmdGdW5jdGlvbikodm9p
ZCogZnVuY3Rpb25Db250ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIGJvb2wg
dmFsdWUsIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRl
c3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKK3R5cGVkZWYg
dm9pZCAoKldLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRl
c3RpbmdGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdL
UGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoV0tQ
YWdlUmVmIHBhZ2UsIFdLVVJMUmVmIHVybFN0cmluZywgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBj
YWxsYmFja0NvbnRleHQpOwordHlwZWRlZiB2b2lkICgqV0tQYWdlTWFya1ByaXZhdGVDbGlja01l
YXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmdGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250
ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZU1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNB
c0V4cGlyZWRGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VNYXJrUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBj
YWxsYmFja0NvbnRleHQpOwogCiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRNb2NrQ2FtZXJhT3Jp
ZW50YXRpb24oV0tQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IG9yaWVudGF0aW9uKTsKIFdLX0VYUE9S
VCBib29sIFdLUGFnZUlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKFdLUGFn
ZVJlZiBwYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
V2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCmluZGV4IDE4NGJmZGVmNjQ2ZTRhYWY2ZDk5ZmI4OWZh
OTkwOWU2MDdiMDkxNzUuLjIwZWM3NGQxYjZkMDEwNzVmZGMxZTZiYzFjYTBjZWExNmI0ZGEwZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFT
dG9yZVJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRl
RGF0YVN0b3JlUmVmLmNwcApAQCAtODE3LDkgKzgxNyw5IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0
b3JlQ2xlYXJBbGxEZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25zKFdLV2Vic2l0ZURhdGFTdG9y
ZVJlCiAjZW5kaWYKIH0KIAotdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhckFkQ2xpY2tBdHRy
aWJ1dGlvbnNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBk
YXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQWRDbGlj
a0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWxGdW5jdGlvbiBjYWxsYmFjaykK
K3ZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJv
dWdoV2Vic2l0ZURhdGFSZW1vdmFsKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYs
IHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbEZ1bmN0aW9uIGNhbGxiYWNrKQogewotICAg
IE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzID0gV2ViS2l0OjpX
ZWJzaXRlRGF0YVR5cGU6OkFkQ2xpY2tBdHRyaWJ1dGlvbnM7CisgICAgT3B0aW9uU2V0PFdlYktp
dDo6V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMgPSBXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzOwogICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJl
ZiktPnJlbW92ZURhdGEoZGF0YVR5cGVzLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoMCksIFtj
b250ZXh0LCBjYWxsYmFja10gewogICAgICAgICBjYWxsYmFjayhjb250ZXh0KTsKICAgICB9KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFT
dG9yZVJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0
b3JlUmVmLmgKaW5kZXggMWI2YjgzNThhOGI3MDkwZmM1NzQ1MzE5YzcxZTYwMDkxYzI3ZjdiYy4u
ZmQ0MTc2ZDRmMmUyZTA0ZDY0MzQ4YzdhOTliMThhMGJlYjlmYWRmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKQEAg
LTE4Niw4ICsxODYsOCBAQCBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVHZXRBbGxT
dG9yYWdlQWNjZXNzRW50cmllcyhXS1dlYnNpdGVEYXRhU3RvcmVSZQogCiBXS19FWFBPUlQgdm9p
ZCBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhckFsbERldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbnMo
V0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZik7CiAKLXR5cGVkZWYgdm9pZCAoKldL
V2Vic2l0ZURhdGFTdG9yZUNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRlRGF0
YVJlbW92YWxGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKLVdLX0VYUE9SVCB2b2lk
IFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRl
RGF0YVJlbW92YWwoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgdm9pZCogY29u
dGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJBZENsaWNrQXR0cmlidXRpb25zVGhyb3VnaFdl
YnNpdGVEYXRhUmVtb3ZhbEZ1bmN0aW9uIGNhbGxiYWNrKTsKK3R5cGVkZWYgdm9pZCAoKldLV2Vi
c2l0ZURhdGFTdG9yZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVE
YXRhUmVtb3ZhbEZ1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOworV0tfRVhQT1JUIHZv
aWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdo
V2Vic2l0ZURhdGFSZW1vdmFsKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZv
aWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbEZ1bmN0aW9uIGNhbGxiYWNrKTsKIAogV0tfRVhQ
T1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0Q2FjaGVNb2RlbFN5bmNocm9ub3VzbHlGb3JU
ZXN0aW5nKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLQ2FjaGVNb2RlbCBj
YWNoZU1vZGVsKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2Vic2l0ZURhdGFSZWNvcmQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZC5tbQppbmRleCA0NTQwM2QxNjkzNmVhYTgyNTRjZDUw
NWZhODg0ZWRmMGRhZmUwNDljLi42M2VlNzYxY2RlYzA0YTJkNGE0NWRhMWJiNDMyODllMmRhMDc1
MGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVJlY29yZC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVJlY29yZC5tbQpAQCAtNDksNiArNDksNyBAQCBOU1N0cmluZyAqIGNvbnN0
IF9XS1dlYnNpdGVEYXRhVHlwZVNlYXJjaEZpZWxkUmVjZW50U2VhcmNoZXMgPSBAIl9XS1dlYnNp
dGVEYXRhVAogTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzID0gQCJfV0tXZWJzaXRlRGF0YVR5cGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIjsK
IE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlQ3JlZGVudGlhbHMgPSBAIl9XS1dl
YnNpdGVEYXRhVHlwZUNyZWRlbnRpYWxzIjsKIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURh
dGFUeXBlQWRDbGlja0F0dHJpYnV0aW9ucyA9IEAiX1dLV2Vic2l0ZURhdGFUeXBlQWRDbGlja0F0
dHJpYnV0aW9ucyI7CitOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVByaXZhdGVD
bGlja01lYXN1cmVtZW50cyA9IEAiX1dLV2Vic2l0ZURhdGFUeXBlUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRzIjsKIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlQWx0ZXJuYXRpdmVT
ZXJ2aWNlcyA9IEAiX1dLV2Vic2l0ZURhdGFUeXBlQWx0ZXJuYXRpdmVTZXJ2aWNlcyI7CiAKICNp
ZiBQTEFURk9STShNQUMpCkBAIC0xMDIsOCArMTAzLDggQEAgc3RhdGljIE5TU3RyaW5nICpkYXRh
VHlwZXNUb1N0cmluZyhOU1NldCAqZGF0YVR5cGVzKQogICAgICAgICBbYXJyYXkgYWRkT2JqZWN0
OkAiUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzIl07CiAgICAgaWYgKFtkYXRhVHlwZXMgY29udGFp
bnNPYmplY3Q6X1dLV2Vic2l0ZURhdGFUeXBlQ3JlZGVudGlhbHNdKQogICAgICAgICBbYXJyYXkg
YWRkT2JqZWN0OkAiQ3JlZGVudGlhbHMiXTsKLSAgICBpZiAoW2RhdGFUeXBlcyBjb250YWluc09i
amVjdDpfV0tXZWJzaXRlRGF0YVR5cGVBZENsaWNrQXR0cmlidXRpb25zXSkKLSAgICAgICAgW2Fy
cmF5IGFkZE9iamVjdDpAIkFkIENsaWNrIEF0dHJpYnV0aW9ucyJdOworICAgIGlmIChbZGF0YVR5
cGVzIGNvbnRhaW5zT2JqZWN0Ol9XS1dlYnNpdGVEYXRhVHlwZUFkQ2xpY2tBdHRyaWJ1dGlvbnNd
IHx8IFtkYXRhVHlwZXMgY29udGFpbnNPYmplY3Q6X1dLV2Vic2l0ZURhdGFUeXBlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRzXSkKKyAgICAgICAgW2FycmF5IGFkZE9iamVjdDpAIlByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnRzIl07CiAgICAgaWYgKFtkYXRhVHlwZXMgY29udGFpbnNPYmplY3Q6X1dL
V2Vic2l0ZURhdGFUeXBlQWx0ZXJuYXRpdmVTZXJ2aWNlc10pCiAgICAgICAgIFthcnJheSBhZGRP
YmplY3Q6QCJBbHRlcm5hdGl2ZSBTZXJ2aWNlcyJdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZEludGVybmFsLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZEludGVy
bmFsLmgKaW5kZXggMjFlZWNiMzdjNjNlYTQxODM2MGJkZTE1MDg2YWJkOWMyN2E0YTY5NS4uYWU2
YTRkMjZlNzBjMDRhYmI2ZmZkOWY2MmNiODQ1NmRlMGU3YjA1MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRJbnRlcm5hbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVj
b3JkSW50ZXJuYWwuaApAQCAtNzUsNyArNzUsOSBAQCBzdGF0aWMgaW5saW5lIE9wdGlvbmFsPFdl
YnNpdGVEYXRhVHlwZT4gdG9XZWJzaXRlRGF0YVR5cGUoTlNTdHJpbmcgKndlYnNpdGVEYXRhVAog
ICAgIGlmIChbd2Vic2l0ZURhdGFUeXBlIGlzRXF1YWxUb1N0cmluZzpfV0tXZWJzaXRlRGF0YVR5
cGVDcmVkZW50aWFsc10pCiAgICAgICAgIHJldHVybiBXZWJzaXRlRGF0YVR5cGU6OkNyZWRlbnRp
YWxzOwogICAgIGlmIChbd2Vic2l0ZURhdGFUeXBlIGlzRXF1YWxUb1N0cmluZzpfV0tXZWJzaXRl
RGF0YVR5cGVBZENsaWNrQXR0cmlidXRpb25zXSkKLSAgICAgICAgcmV0dXJuIFdlYnNpdGVEYXRh
VHlwZTo6QWRDbGlja0F0dHJpYnV0aW9uczsKKyAgICAgICAgcmV0dXJuIFdlYnNpdGVEYXRhVHlw
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzOworICAgIGlmIChbd2Vic2l0ZURhdGFUeXBlIGlz
RXF1YWxUb1N0cmluZzpfV0tXZWJzaXRlRGF0YVR5cGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNd
KQorICAgICAgICByZXR1cm4gV2Vic2l0ZURhdGFUeXBlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dHM7CiAjaWYgSEFWRShDRk5FVFdPUktfQUxURVJOQVRJVkVfU0VSVklDRSkKICAgICBpZiAoW3dl
YnNpdGVEYXRhVHlwZSBpc0VxdWFsVG9TdHJpbmc6X1dLV2Vic2l0ZURhdGFUeXBlQWx0ZXJuYXRp
dmVTZXJ2aWNlc10pCiAgICAgICAgIHJldHVybiBXZWJzaXRlRGF0YVR5cGU6OkFsdGVybmF0aXZl
U2VydmljZXM7CkBAIC0xMzUsOCArMTM3LDggQEAgc3RhdGljIGlubGluZSBSZXRhaW5QdHI8TlNT
ZXQ+IHRvV0tXZWJzaXRlRGF0YVR5cGVzKE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXQKICAg
ICAgICAgW3drV2Vic2l0ZURhdGFUeXBlcyBhZGRPYmplY3Q6X1dLV2Vic2l0ZURhdGFUeXBlUmVz
b3VyY2VMb2FkU3RhdGlzdGljc107CiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMo
V2Vic2l0ZURhdGFUeXBlOjpDcmVkZW50aWFscykpCiAgICAgICAgIFt3a1dlYnNpdGVEYXRhVHlw
ZXMgYWRkT2JqZWN0Ol9XS1dlYnNpdGVEYXRhVHlwZUNyZWRlbnRpYWxzXTsKLSAgICBpZiAod2Vi
c2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkFkQ2xpY2tBdHRyaWJ1dGlv
bnMpKQotICAgICAgICBbd2tXZWJzaXRlRGF0YVR5cGVzIGFkZE9iamVjdDpfV0tXZWJzaXRlRGF0
YVR5cGVBZENsaWNrQXR0cmlidXRpb25zXTsKKyAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250
YWlucyhXZWJzaXRlRGF0YVR5cGU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50cykpCisgICAgICAg
IFt3a1dlYnNpdGVEYXRhVHlwZXMgYWRkT2JqZWN0Ol9XS1dlYnNpdGVEYXRhVHlwZVByaXZhdGVD
bGlja01lYXN1cmVtZW50c107CiAjaWYgSEFWRShDRk5FVFdPUktfQUxURVJOQVRJVkVfU0VSVklD
RSkKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkFs
dGVybmF0aXZlU2VydmljZXMpKQogICAgICAgICBbd2tXZWJzaXRlRGF0YVR5cGVzIGFkZE9iamVj
dDpfV0tXZWJzaXRlRGF0YVR5cGVBbHRlcm5hdGl2ZVNlcnZpY2VzXTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNv
cmRQcml2YXRlLmgKaW5kZXggNmNlZGZmN2U3NmI1NGVkYjVmODAxMzI0ODAwMjAwYjdiOWU4MTg0
Yy4uOTU3ZTg3NzA4N2Y0M2M4YzAzM2JlYTZmOWRjZDYzYjcyZDEwZjdlZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRQcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFSZWNvcmRQcml2YXRlLmgKQEAgLTM1LDYgKzM1LDcgQEAgV0tfRVhURVJOIE5TU3RyaW5nICog
Y29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlU2VhcmNoRmllbGRSZWNlbnRTZWFyY2hlcyBXS19BUElf
QVYKIFdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVJlc291cmNl
TG9hZFN0YXRpc3RpY3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7
CiBXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVDcmVkZW50aWFs
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIFdLX0VYVEVSTiBO
U1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZUFkQ2xpY2tBdHRyaWJ1dGlvbnMgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CitXS19FWFRFUk4gTlNTdHJp
bmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHMgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIFdLX0VY
VEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZUFsdGVybmF0aXZlU2Vydmlj
ZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAogI2lmICFUQVJHRVRfT1NfSVBIT05FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQppbmRleCA3NmZkYWMwZTkwMGY0
ZTJmMGY1NGY2Y2YyMWQ4YmY3MDZhMjBiMjEyLi5lMmU5Y2JjMWVmMzJhMDIzZTFiYTg0NmY0MDc3
N2VjZWRkODJiY2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTI0MCw2ICsyNDAsNyBAQCArIChOU1Nl
dDxOU1N0cmluZyAqPiAqKV9hbGxXZWJzaXRlRGF0YVR5cGVzSW5jbHVkaW5nUHJpdmF0ZQogICAg
ICAgICAgICAgX1dLV2Vic2l0ZURhdGFUeXBlUmVzb3VyY2VMb2FkU3RhdGlzdGljcywKICAgICAg
ICAgICAgIF9XS1dlYnNpdGVEYXRhVHlwZUNyZWRlbnRpYWxzLAogICAgICAgICAgICAgX1dLV2Vi
c2l0ZURhdGFUeXBlQWRDbGlja0F0dHJpYnV0aW9ucywKKyAgICAgICAgICAgIF9XS1dlYnNpdGVE
YXRhVHlwZVByaXZhdGVDbGlja01lYXN1cmVtZW50cywKICAgICAgICAgICAgIF9XS1dlYnNpdGVE
YXRhVHlwZUFsdGVybmF0aXZlU2VydmljZXMKICNpZiAhVEFSR0VUX09TX0lQSE9ORQogICAgICAg
ICAgICAgLCBfV0tXZWJzaXRlRGF0YVR5cGVQbHVnSW5EYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCBlMTU3MDFh
YWE1YjkzMWFlNjEwYzZkZTJkM2VlMjA5ZjA4ZjQ4YzI4Li5hNzY2ZWM1Zjk3YzQ1YzkwZjE2ZTc3
ZDNkYTA1ZjFhMGFmMDk4ZWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTQ3NSw3ICs0NzUsNyBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYQogICAgIHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlk
ZW50aWZpZXIgPSBpZGVudGlmeWluZ0RhdGFGcm9tQ29va2llU3RvcmFnZShbW05TSFRUUENvb2tp
ZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIF9jb29raWVTdG9yYWdlXSk7CiAjZW5k
aWYKIAotICAgIHBhcmFtZXRlcnMuZW5hYmxlQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlID0g
W2RlZmF1bHRzIGJvb2xGb3JLZXk6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJFeHBlcmlt
ZW50YWwlQCIsIFdlYlByZWZlcmVuY2VzS2V5OjphZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVF
bmFibGVkS2V5KCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKV1dOworICAgIHBhcmFtZXRlcnMuZW5h
YmxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUgPSBbZGVmYXVsdHMgYm9vbEZvcktl
eTpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIkV4cGVyaW1lbnRhbCVAIiwgV2ViUHJlZmVy
ZW5jZXNLZXk6OnByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZEtleSgpLmNy
ZWF0ZUNGU3RyaW5nKCkuZ2V0KCldXTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZv
cm1JbnZhbGlkYXRlQ29udGV4dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5LmNwcAppbmRleCBmMGY3YjJkZjVlNDE5MmFj
NDU0OGI4ZjdiY2I5OTdkMWYxMzBkNDYwLi4yYTI5ZDhkYTc2NzA1YTgxMTRiNzhjOWQ5ZjAzZTkw
YWJkNDdiOTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3JQcm94eS5jcHAKQEAgLTY1NCw5ICs2NTQsOSBAQCB2b2lkIFdlYklu
c3BlY3RvclByb3h5Ojp0aW1lbGluZVJlY29yZGluZ0NoYW5nZWQoYm9vbCBhY3RpdmUpCiB2b2lk
IFdlYkluc3BlY3RvclByb3h5OjpzZXREZXZlbG9wZXJQcmVmZXJlbmNlT3ZlcnJpZGUoV2ViQ29y
ZTo6SW5zcGVjdG9yQ2xpZW50OjpEZXZlbG9wZXJQcmVmZXJlbmNlIGRldmVsb3BlclByZWZlcmVu
Y2UsIE9wdGlvbmFsPGJvb2w+IG92ZXJyaWRlVmFsdWUpCiB7CiAgICAgc3dpdGNoIChkZXZlbG9w
ZXJQcmVmZXJlbmNlKSB7Ci0gICAgY2FzZSBJbnNwZWN0b3JDbGllbnQ6OkRldmVsb3BlclByZWZl
cmVuY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQ6CisgICAgY2FzZSBJbnNw
ZWN0b3JDbGllbnQ6OkRldmVsb3BlclByZWZlcmVuY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
RGVidWdNb2RlRW5hYmxlZDoKICAgICAgICAgaWYgKG1faW5zcGVjdGVkUGFnZSkKLSAgICAgICAg
ICAgIG1faW5zcGVjdGVkUGFnZS0+d2Vic2l0ZURhdGFTdG9yZSgpLnNldEFkQ2xpY2tBdHRyaWJ1
dGlvbkRlYnVnTW9kZShvdmVycmlkZVZhbHVlICYmIG92ZXJyaWRlVmFsdWUudmFsdWUoKSk7Cisg
ICAgICAgICAgICBtX2luc3BlY3RlZFBhZ2UtPndlYnNpdGVEYXRhU3RvcmUoKS5zZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZShvdmVycmlkZVZhbHVlICYmIG92ZXJyaWRlVmFsdWUu
dmFsdWUoKSk7CiAgICAgICAgIHJldHVybjsKIAogICAgIGNhc2UgSW5zcGVjdG9yQ2xpZW50OjpE
ZXZlbG9wZXJQcmVmZXJlbmNlOjpJVFBEZWJ1Z01vZGVFbmFibGVkOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5k
ZXggNmVlMjZkMDQ2YjBiMjE4ODcwNzNlNmVlNzM0OTg0M2RhZDMzNWFmYS4uN2IyNDVlM2MwNDg1
YzUzY2I3OTNmM2Y0YzJiNzBhYjNkZDAxYjg1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xMjcyLDEy
ICsxMjcyLDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0RG9tYWluc1dpdGhVc2Vy
SW50ZXJhY3Rpb24oSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyCiB9CiAjZW5kaWYgLy8gRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUoYm9vbCBkZWJ1Z01vZGUpCit2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKGJvb2wg
ZGVidWdNb2RlKQogewogICAgIGlmICghY2FuU2VuZE1lc3NhZ2UoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldEFkQ2xpY2tBdHRyaWJ1
dGlvbkRlYnVnTW9kZShkZWJ1Z01vZGUpLCAwKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzczo6U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUoZGVidWdNb2RlKSwg
MCk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFByb2Nlc3NXaWxsU3VzcGVu
ZEltbWluZW50bHlGb3JUZXN0aW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggZDAzMDQzZjc4ZDAyMTMyZjQz
OTMxMWQyNjI3YjA4YzNjN2RhYWQyMi4uYjZlZjc1NGJiNTEyYWUwODhkNTAyMmRiYThhNTRmZTg0
MDRhMjc0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTIwMiw3ICsyMDIsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXREb21haW5zV2l0aFVzZXJJbnRlcmFjdGlvbihIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluPiYmKTsKICNlbmRpZgogCi0gICAgdm9pZCBzZXRBZENsaWNrQXR0cmlidXRpb25E
ZWJ1Z01vZGUoYm9vbCk7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVn
TW9kZShib29sKTsKICAgICAKICAgICB2b2lkIHN5bnRoZXNpemVBcHBJc0JhY2tncm91bmQoYm9v
bCBiYWNrZ3JvdW5kKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggMzEzODYxNzBkMjYwMTVhN2EwMjllZTRiOTFmYmE4YjYzNzk1ZTRlNy4uZjA1NGYyYmM4
YjdmZGRlMGU1MDhlM2RhNzBlNjE0ZGJmZWYxNzBiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMzksNyArMTM5LDYgQEAKICNpbmNsdWRlICJXZWJWaWV3
RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJXZWJXaGVlbEV2ZW50Q29hbGVz
Y2VyLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUv
QWRDbGlja0F0dHJpYnV0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9CaXRtYXBJbWFnZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvQ29tcG9zaXRpb25IaWdobGlnaHQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0Nyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaD4KQEAgLTE2Myw2ICsxNjIsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJlYW1SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRm
b3JtRXZlbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9QdWJsaWNTdWZmaXguaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
bmRlckVtYmVkZGVkT2JqZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLmg+CkBAIC00NjUyLDE3ICs0NjUyLDE3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRD
b21taXRMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEm
CiAgICAgZnJhbWUtPmRpZENvbW1pdExvYWQobWltZVR5cGUsIHdlYkNlcnRpZmljYXRlSW5mbywg
Y29udGFpbnNQbHVnaW5Eb2N1bWVudCk7CiAKICAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkp
IHsKLSAgICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uPiBhZENsaWNr
QXR0cmlidXRpb247Ci0gICAgICAgIGlmIChtX25ld1BhZ2VOYXZpZ2F0aW9uQWRDbGlja0F0dHJp
YnV0aW9uKQotICAgICAgICAgICAgYWRDbGlja0F0dHJpYnV0aW9uID0gbV9uZXdQYWdlTmF2aWdh
dGlvbkFkQ2xpY2tBdHRyaWJ1dGlvbjsKLSAgICAgICAgZWxzZSBpZiAobmF2aWdhdGlvbiAmJiBu
YXZpZ2F0aW9uLT5hZENsaWNrQXR0cmlidXRpb24oKSkKLSAgICAgICAgICAgIGFkQ2xpY2tBdHRy
aWJ1dGlvbiA9IG5hdmlnYXRpb24tPmFkQ2xpY2tBdHRyaWJ1dGlvbigpOwotICAgICAgICBpZiAo
YWRDbGlja0F0dHJpYnV0aW9uKSB7Ci0gICAgICAgICAgICBpZiAoYWRDbGlja0F0dHJpYnV0aW9u
LT5kZXN0aW5hdGlvbigpLm1hdGNoZXMoZnJhbWUtPnVybCgpKSkKLSAgICAgICAgICAgICAgICB3
ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzczo6U3RvcmVBZENsaWNrQXR0cmlidXRpb24obV93ZWJzaXRlRGF0YVN0b3JlLT5zZXNz
aW9uSUQoKSwgKmFkQ2xpY2tBdHRyaWJ1dGlvbiksIDApOworICAgICAgICBPcHRpb25hbDxXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7Cisg
ICAgICAgIGlmIChtX25ld1BhZ2VOYXZpZ2F0aW9uUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpCisg
ICAgICAgICAgICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IG1fbmV3UGFnZU5hdmlnYXRpb25Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKKyAgICAgICAgZWxzZSBpZiAobmF2aWdhdGlvbiAmJiBu
YXZpZ2F0aW9uLT5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpKQorICAgICAgICAgICAgcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgPSBuYXZpZ2F0aW9uLT5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgp
OworICAgICAgICBpZiAocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIHsKKyAgICAgICAgICAgIGlm
IChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+ZGVzdGluYXRpb24oKS5tYXRjaGVzKGZyYW1lLT51
cmwoKSkpCisgICAgICAgICAgICAgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNz
KCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlN0b3JlUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQobV93ZWJzaXRlRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwgKnByaXZhdGVDbGlja01lYXN1
cmVtZW50KSwgMCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgbV9uZXdQYWdlTmF2aWdhdGlvbkFk
Q2xpY2tBdHRyaWJ1dGlvbi5yZXNldCgpOworICAgIG1fbmV3UGFnZU5hdmlnYXRpb25Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC5yZXNldCgpOwogCiAgICAgaWYgKGZyYW1lLT5pc01haW5GcmFtZSgp
KSB7CiAgICAgICAgIG1fbWFpbkZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyID0gZnJhbWVI
YXNDdXN0b21Db250ZW50UHJvdmlkZXI7CkBAIC01NTI0LDcgKzU1MjQsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6Y3JlYXRlTmV3UGFnZShGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUlu
Zm9EYXRhLCBXZWJQYQogICAgIGF1dG8qIG9yaWdpbmF0aW5nUGFnZSA9IG1fcHJvY2Vzcy0+d2Vi
UGFnZShvcmlnaW5hdGluZ1BhZ2VJRCk7CiAgICAgYXV0byBvcmlnaW5hdGluZ0ZyYW1lSW5mbyA9
IEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUoV1RGTW92ZShvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEp
LCBvcmlnaW5hdGluZ1BhZ2UpOwogICAgIGF1dG8gbWFpbkZyYW1lVVJMID0gbV9tYWluRnJhbWUg
PyBtX21haW5GcmFtZS0+dXJsKCkgOiBVUkwoKTsKLSAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVy
ID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbWFpbkZyYW1lVVJMLCBy
ZXF1ZXN0LCByZXBseSA9IFdURk1vdmUocmVwbHkpLCBhZENsaWNrQXR0cmlidXRpb24gPSBuYXZp
Z2F0aW9uQWN0aW9uRGF0YS5hZENsaWNrQXR0cmlidXRpb25dIChSZWZQdHI8V2ViUGFnZVByb3h5
PiBuZXdQYWdlKSBtdXRhYmxlIHsKKyAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbWFpbkZyYW1lVVJMLCByZXF1ZXN0LCBy
ZXBseSA9IFdURk1vdmUocmVwbHkpLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IG5hdmlnYXRp
b25BY3Rpb25EYXRhLnByaXZhdGVDbGlja01lYXN1cmVtZW50XSAoUmVmUHRyPFdlYlBhZ2VQcm94
eT4gbmV3UGFnZSkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghbmV3UGFnZSkgewogICAgICAgICAg
ICAgcmVwbHkoV1RGOjpudWxsb3B0LCBXVEY6Om51bGxvcHQpOwogICAgICAgICAgICAgcmV0dXJu
OwpAQCAtNTUzNiw3ICs1NTM2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNyZWF0ZU5ld1BhZ2Uo
RnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgV2ViUGEKIAogICAgICAg
ICBuZXdQYWdlLT5tX3Nob3VsZFN1cHByZXNzQXBwTGlua3NJbk5leHROYXZpZ2F0aW9uUG9saWN5
RGVjaXNpb24gPSBtYWluRnJhbWVVUkwuaG9zdCgpID09IHJlcXVlc3QudXJsKCkuaG9zdCgpOwog
Ci0gICAgICAgIG5ld1BhZ2UtPm1fbmV3UGFnZU5hdmlnYXRpb25BZENsaWNrQXR0cmlidXRpb24g
PSBhZENsaWNrQXR0cmlidXRpb247CisgICAgICAgIG5ld1BhZ2UtPm1fbmV3UGFnZU5hdmlnYXRp
b25Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IHByaXZhdGVDbGlja01lYXN1cmVtZW50OwogI2lm
IEhBVkUoQVBQX1NTTykKICAgICAgICAgbmV3UGFnZS0+bV9zaG91bGRTdXBwcmVzc1NPQXV0aG9y
aXphdGlvbkluTmV4dE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiA9IHRydWU7CiAjZW5kaWYKQEAg
LTk5NjAsMjkgKzk5NjAsMjkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnN5c3RlbVByZXZpZXdBY3Rp
b25UcmlnZ2VyZWQoY29uc3QgV2ViQ29yZTo6U3lzdGVtUHJldmlld0luZm8KIH0KICNlbmRpZgog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6ZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbihDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQ
YWdlUHJveHk6OmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGNvbnN0IFN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHdlYnNpdGVE
YXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3M6OkR1bXBBZENsaWNrQXR0cmlidXRpb24obV93ZWJzaXRlRGF0YVN0b3Jl
LT5zZXNzaW9uSUQoKSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICB3ZWJzaXRl
RGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzOjpEdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQobV93ZWJzaXRlRGF0
YVN0b3JlLT5zZXNzaW9uSUQoKSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpjbGVh
clByaXZhdGVDbGlja01lYXN1cmVtZW50KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKLSAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3Mo
KS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDbGVhckFkQ2xp
Y2tBdHRyaWJ1dGlvbihtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2Vz
cygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkNsZWFyUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQobV93ZWJzaXRlRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnNldEFk
Q2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJv
b2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKLSAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRBZENsaWNrQXR0cmlidXRpb25PdmVy
cmlkZVRpbWVyRm9yVGVzdGluZyhtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCB2YWx1
ZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICB3ZWJzaXRlRGF0YVN0b3JlKCku
bmV0d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKG1f
d2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksIHZhbHVlKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c2V0QWRDbGlja0F0dHJpYnV0aW9u
Q29udmVyc2lvblVSTEZvclRlc3RpbmcoY29uc3QgVVJMJiB1cmwsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKGNvbnN0IFVSTCYgdXJs
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
d2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVS
TEZvclRlc3RpbmcobV93ZWJzaXRlRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwgdXJsKSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJv
Y2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcobV93ZWJzaXRlRGF0
YVN0b3JlLT5zZXNzaW9uSUQoKSwgdXJsKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6bWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRG
b3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViUGFnZVByb3h5OjptYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVk
Rm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7Ci0gICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6TWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNB
c0V4cGlyZWRGb3JUZXN0aW5nKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCkpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQ
cm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6TWFy
a1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcobV93ZWJzaXRlRGF0
YVN0b3JlLT5zZXNzaW9uSUQoKSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAog
I2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAppbmRleCBiZGYxMWJhNDY2NDc2YzI3YjMyYTViOWZjOWZlZTM1NTdmMjBhN2Q1Li5m
MmM5YWQ0ZjI4NWUxNGZjNGYxNGE0ZmY0ODA2MzA1MWQ1ODk2MGY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTY4MywxMSArMTY4MywxMSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVy
JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICNlbmRpZgogCi0gICAgdm9pZCBkdW1wQWRD
bGlja0F0dHJpYnV0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYp
OwotICAgIHZvaWQgY2xlYXJBZENsaWNrQXR0cmlidXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKLSAgICB2b2lkIHNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JU
ZXN0aW5nKGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9p
ZCBzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyhjb25zdCBVUkwm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgbWFya0FkQ2xpY2tBdHRy
aWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CisgICAgdm9pZCBkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChjb25zdCBTdHJpbmcmKT4mJik7CisgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1
cmVtZW50KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CisgICAgdm9pZCBtYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBp
cmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAjaWYgRU5BQkxF
KFNQRUVDSF9TWU5USEVTSVMpCiAgICAgdm9pZCBzcGVlY2hTeW50aGVzaXNWb2ljZUxpc3QoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViU3BlZWNoU3ludGhlc2lzVm9pY2U+JiYpPiYm
KTsKQEAgLTI4ODYsNyArMjg4Niw3IEBAIHByaXZhdGU6CiAKICAgICBzaXplX3QgbV9zdXNwZW5k
TWVkaWFQbGF5YmFja0NvdW50ZXIgeyAwIH07CiAKLSAgICBPcHRpb25hbDxXZWJDb3JlOjpBZENs
aWNrQXR0cmlidXRpb24+IG1fbmV3UGFnZU5hdmlnYXRpb25BZENsaWNrQXR0cmlidXRpb247Cisg
ICAgT3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IG1fbmV3UGFnZU5h
dmlnYXRpb25Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBkYWQyMDcwMWJkMzk4OTM5ODVjODQyYzhhMTg2NmE1
ZjUwY2U1ZmQ1Li4wZTQ0MzkyNDRmZjgxYWI1NWQ2YWUxYTQyOWRhMzM5ZDg2ZDZkNjcyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmNwcApAQCAtMjA1MCw5ICsyMDUwLDkgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3Jl
Ojppc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVyYWwoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgKICNlbmRpZgogfQogCi12b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldEFkQ2xpY2tBdHRyaWJ1
dGlvbkRlYnVnTW9kZShib29sIGVuYWJsZWQpCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKGJvb2wgZW5hYmxlZCkKIHsKLSAgICBuZXR3
b3JrUHJvY2VzcygpLnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZShlbmFibGVkKTsKKyAg
ICBuZXR3b3JrUHJvY2VzcygpLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKGVu
YWJsZWQpOwogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaAppbmRleCBmM2ZlNjZkMDU5NDFhYTNmMTdkYzI5MzI1MmY1MDdjMjVmYmMxYmNlLi5kNWI0
ZTNkMzIxMTUyMDFiNmEwOTk0M2Y5NjU5N2IwNWI2YmRmZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC0x
NDksNyArMTQ5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RlYnVnTW9kZShib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
aXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRXBoZW1lcmFsKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01v
ZGUoYm9vbCk7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZShi
b29sKTsKIAogICAgIHVpbnQ2NF90IHBlck9yaWdpblN0b3JhZ2VRdW90YSgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5wZXJPcmlnaW5TdG9yYWdlUXVvdGEoKTsgfQog
ICAgIHVpbnQ2NF90IHBlclRoaXJkUGFydHlPcmlnaW5TdG9yYWdlUXVvdGEoKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBl
ZTk5NzEwMTk2MDM2YjNmYTFiZmUzMTMxNTNiODlmMjg4ODdkMzkuLjgzODFiNmZlNDQ5MjI4Nzlj
ZTZiZWI1ODEyNmE1ZDUxNzgwNzEwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIzOSw3ICsxMjM5LDcgQEAKIAkJNjNDMzJDMjgx
RTk4MTE5MDAwNjk5QkQwIC8qIF9XS0dlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjNDMzJDMjcxRTk4MTE5
MDAwNjk5QkQwIC8qIF9XS0dlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oICovOyB9OwogCQk2
NUI4NkYxRTEyRjExREUzMDBCN0REOEEgLyogV0tCdW5kbGVJbnNwZWN0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1Qjg2RjE4MTJGMTFEN0IwMEI3
REQ4QSAvKiBXS0J1bmRsZUluc3BlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTZBNTA4MEJGMUYwRURBQUEwMEU2MTdDNSAvKiBXS1dpbmRv
d0ZlYXR1cmVzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkE1MDgwQkUxRjBFREFBQTAwRTYxN0M1IC8qIFdLV2luZG93RmVhdHVyZXNQcml2
YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
NkJEMDU4NjUyMjBDRThDMjAwMEJFRDVDIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCRDA1ODYzMjIw
Q0U4QzIwMDBCRUQ1QyAvKiBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmggKi87IH07CisJCTZC
RDA1ODY1MjIwQ0U4QzIwMDBCRUQ1QyAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCRDA1ODYz
MjIwQ0U4QzIwMDBCRUQ1QyAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCAqLzsg
fTsKIAkJNkJFOTY5QzExRTU0RDQ1MjAwOEI3NDgzIC8qIGNvcmVQcmVkaWN0aW9uX21vZGVsIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QkU5NjlDMDFF
NTRENDUyMDA4Qjc0ODMgLyogY29yZVByZWRpY3Rpb25fbW9kZWwgKi87IH07CiAJCTZCRTk2OUNC
MUU1NEQ0Q0YwMDhCNzQ4MyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllckNvY29h
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QkU5NjlD
OTFFNTRENENGMDA4Qjc0ODMgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXJDb2Nv
YS5oICovOyB9OwogCQk2QkU5NjlDRDFFNTRFMDU0MDA4Qjc0ODMgLyogUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0NsYXNzaWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDZCRTk2OUNDMUU1NEUwNTQwMDhCNzQ4MyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzQ2xhc3NpZmllci5oICovOyB9OwpAQCAtNDIyNiw4ICs0MjI2LDggQEAKIAkJNjVCODZGMTcx
MkYxMUQ3QjAwQjdERDhBIC8qIFdLQnVuZGxlSW5zcGVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxlSW5zcGVjdG9yLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNjVCODZGMTgxMkYxMUQ3QjAwQjdERDhBIC8qIFdLQnVuZGxlSW5z
cGVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlSW5zcGVj
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZBNTA4MEJFMUYwRURBQUEwMEU2
MTdDNSAvKiBXS1dpbmRvd0ZlYXR1cmVzUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dpbmRv
d0ZlYXR1cmVzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QkQwNTg2
MzIyMENFOEMyMDAwQkVENUMgLyogQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTZCRDA1ODY0MjIwQ0U4QzIwMDBCRUQ1QyAvKiBBZENsaWNrQXR0cmlidXRpb25N
YW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2QkQwNTg2MzIyMENFOEMyMDAwQkVE
NUMgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk2QkQwNTg2NDIyMENFOEMyMDAwQkVENUMgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCRTk2OUMwMUU1NEQ0NTIw
MDhCNzQ4MyAvKiBjb3JlUHJlZGljdGlvbl9tb2RlbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBj
b3JlUHJlZGljdGlvbl9tb2RlbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkJFOTY5
QzYxRTU0RDRCNjAwOEI3NDgzIC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlTG9hZFN0YXRp
c3RpY3NDbGFzc2lmaWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkJFOTY5
QzgxRTU0RDRDRjAwOEI3NDgzIC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyQ29j
b2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0NsYXNzaWZpZXJDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC03OTIwLDggKzc5MjAsNiBAQAogCQkJCTkzQkEwNEQ5MjE1MUFEQ0QwMDdGNDU1RiAvKiBT
ZXJ2aWNlV29ya2VyICovLAogCQkJCTQxMzA3NTk3MURFODRFRDcwMDM5RUM2OSAvKiB3ZWJydGMg
Ki8sCiAJCQkJOTNCMjYxNDMyMjdEMTQzMTAwQjk3QTc2IC8qIFdlYlN0b3JhZ2UgKi8sCi0JCQkJ
NkJEMDU4NjQyMjBDRThDMjAwMEJFRDVDIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuY3Bw
ICovLAotCQkJCTZCRDA1ODYzMjIwQ0U4QzIwMDBCRUQ1QyAvKiBBZENsaWNrQXR0cmlidXRpb25N
YW5hZ2VyLmggKi8sCiAJCQkJNTNGM0NBQTUyMDZDNDQzRTAwODY0OTBFIC8qIE5ldHdvcmtBY3Rp
dml0eVRyYWNrZXIuY3BwICovLAogCQkJCTUzNUJDQjkwMjA2OUM0OUMwMENDQ0UwMiAvKiBOZXR3
b3JrQWN0aXZpdHlUcmFja2VyLmggKi8sCiAJCQkJNTEzQTE2NDkxNjMwQTlCRjAwNUQ3RDIyIC8q
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCAqLywKQEAgLTc5NzYsNiArNzk3NCw4
IEBACiAJCQkJNUNFODVCMUYxQzg4RTY0MzAwNzBCRkNFIC8qIFBpbmdMb2FkLmggKi8sCiAJCQkJ
ODNBMEVEMzMxRjc0N0NDNzAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmNwcCAqLywKIAkJCQk4
M0EwRUQzMjFGNzQ3Q0M2MDAzMjk5RUIgLyogUHJlY29ubmVjdFRhc2suaCAqLywKKwkJCQk2QkQw
NTg2NDIyMENFOEMyMDAwQkVENUMgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNw
cCAqLywKKwkJCQk2QkQwNTg2MzIyMENFOEMyMDAwQkVENUMgLyogUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyLmggKi8sCiAJCQkJRTFCNzg0NzAxNjNGMjQ2OTAwMDdCNjkyIC8qIFJlbW90
ZU5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJCQkJNDEyODdENEQyMjVDMTYxRjAwOUEzRTI2IC8q
IFdlYlNvY2tldFRhc2suaCAqLywKIAkJCSk7CkBAIC0xMDkwMiw3ICsxMDkwMiw2IEBACiAJCQkJ
QTE4MkQ1QjUxQkU2QkQyNTAwODdBN0NDIC8qIEFjY2Vzc2liaWxpdHlJT1MuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUzQ0FBQTQ0MjQxMzI3OTkwMENFRDJFMiAvKiBBY2Nlc3NpYmlsaXR5U3VwcG9y
dFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdENzkyRDgxNzY3Q0NBMzAwODgxQ0JFIC8qIEFj
dGl2aXR5QXNzZXJ0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQk2QkQwNTg2NTIyMENFOEMyMDAw
QkVENUMgLyogQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NjM0ODQyNTExRkIyNkU3MTAwOTQ2RTNDIC8qIEFQSUFwcGxpY2F0aW9uTWFuaWZlc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNjQ2OTcwMTFEQkU2MDMwMDY0NTVCMCAvKiBBUElBcnJheS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMkU1Qzc3MEUxRkE3RDQyOTAwNTkzMkMzIC8qIEFQSUF0dGFjaG1l
bnQuaCBpbiBIZWFkZXJzICovLApAQCAtMTEyOTcsNiArMTEyOTYsNyBAQAogCQkJCUMxNUNCQjM2
MjNGMzc3NzEwMDMwMENDNyAvKiBQcmVmZXJlbmNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUFBQjE0NUU2MjIzRjkzMTIwMEU0ODlEOCAvKiBQcmVmZXRjaENhY2hlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMUNDMUI5MDEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk2QkQwNTg2NTIyMENFOEMyMDAwQkVENUMgLyogUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkY5NTM2NTE4RkY1OEY1MDAx
REIyRUYgLyogUHJvY2Vzc0Fzc2VydGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxQTdDNTgx
MTM2RTE5QzAwRkI3MTY3IC8qIFByb2Nlc3NMYXVuY2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDYzRkQ0ODIxRUI5NEVDMDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGZlZGMzZGIxMGFkNzczYmQ1
NTM2MzI2ZmFiMWMxNzQwODVjYjE2ZDAuLjlkZWQyNWQxMjNlNWUzYmY3MjFlOTI1MzJkODUxYTBk
YTc3ZGU1YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0yNzAsNyArMjcwLDcgQEAgUGFn
ZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUmIGZyYW1lLCBjb25zdCBXaW5k
b3dGZWF0dXJlcyYgd2luZG93RmUKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5jYW5IYW5kbGVS
ZXF1ZXN0ID0gbV9wYWdlLmNhbkhhbmRsZVJlcXVlc3QobmF2aWdhdGlvbkFjdGlvbi5yZXNvdXJj
ZVJlcXVlc3QoKSk7CiAgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEuc2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSA9IG5hdmlnYXRpb25BY3Rpb24uc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSgpOwogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLmRvd25sb2FkQXR0cmlidXRlID0gbmF2aWdh
dGlvbkFjdGlvbi5kb3dubG9hZEF0dHJpYnV0ZSgpOwotICAgIG5hdmlnYXRpb25BY3Rpb25EYXRh
LmFkQ2xpY2tBdHRyaWJ1dGlvbiA9IG5hdmlnYXRpb25BY3Rpb24uYWRDbGlja0F0dHJpYnV0aW9u
KCk7CisgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEucHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBu
YXZpZ2F0aW9uQWN0aW9uLnByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CiAKICAgICBXZWJGcmFt
ZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGZmNzFiODMzMzhmMWVkZTlhYzMyYWNmYTZlMmQz
NTU3YTM3ZGQ3OTEuLjYwM2FkZjhiMmU5NDkzNmFmMDc0NmRlZTk2MTdhNGYyNTU0MjFlMDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtODc4LDcgKzg3OCw3IEBAIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKGNvbnN0IE5hdmlnYXRpCiAgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEuY2FuSGFuZGxlUmVx
dWVzdCA9IHdlYlBhZ2UtPmNhbkhhbmRsZVJlcXVlc3QocmVxdWVzdCk7CiAgICAgbmF2aWdhdGlv
bkFjdGlvbkRhdGEuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IG5hdmlnYXRpb25BY3Rp
b24uc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpOwogICAgIG5hdmlnYXRpb25BY3Rpb25E
YXRhLmRvd25sb2FkQXR0cmlidXRlID0gbmF2aWdhdGlvbkFjdGlvbi5kb3dubG9hZEF0dHJpYnV0
ZSgpOwotICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLmFkQ2xpY2tBdHRyaWJ1dGlvbiA9IG5hdmln
YXRpb25BY3Rpb24uYWRDbGlja0F0dHJpYnV0aW9uKCk7CisgICAgbmF2aWdhdGlvbkFjdGlvbkRh
dGEucHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBuYXZpZ2F0aW9uQWN0aW9uLnByaXZhdGVDbGlj
a01lYXN1cmVtZW50KCk7CiAKICAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihtX2ZyYW1lLT5mcmFtZUlEKCksIG1f
ZnJhbWUtPmluZm8oKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHJlcXVlc3Qs
CiAgICAgICAgIGZyYW1lTmFtZSwgbGlzdGVuZXJJRCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkp
KSk7CkBAIC05ODUsNyArOTg1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXQKICAgICBuYXZp
Z2F0aW9uQWN0aW9uRGF0YS5zb3VyY2VCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyID0gbmF2aWdh
dGlvbkFjdGlvbi5zb3VyY2VCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyKCk7CiAgICAgbmF2aWdh
dGlvbkFjdGlvbkRhdGEubG9ja0hpc3RvcnkgPSBuYXZpZ2F0aW9uQWN0aW9uLmxvY2tIaXN0b3J5
KCk7CiAgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEubG9ja0JhY2tGb3J3YXJkTGlzdCA9IG5hdmln
YXRpb25BY3Rpb24ubG9ja0JhY2tGb3J3YXJkTGlzdCgpOwotICAgIG5hdmlnYXRpb25BY3Rpb25E
YXRhLmFkQ2xpY2tBdHRyaWJ1dGlvbiA9IG5hdmlnYXRpb25BY3Rpb24uYWRDbGlja0F0dHJpYnV0
aW9uKCk7CisgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEucHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQg
PSBuYXZpZ2F0aW9uQWN0aW9uLnByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CiAKICAgICBhdXRv
KiBjb3JlRnJhbWUgPSBtX2ZyYW1lLT5jb3JlRnJhbWUoKTsKICAgICBpZiAoIWNvcmVGcmFtZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5tbQppbmRleCA2ZmQ3YTI2NTMyMTU1YzljOGQ1NzUzNjU1MTRlNGY0YTFh
OGNiOGQ1Li4zZTg1NDE3NjdmMmUwOTI1YjFhYWI1MGM4MTA3YzY5NmVmNTc3YzU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tCkBAIC0xMjQsNyArMTI0LDcgQEAgTlNTdHJpbmcgKldlYkNvbnNvbGVNZXNz
YWdlTWVkaWFNZXNzYWdlU291cmNlID0gQCJNZWRpYU1lc3NhZ2VTb3VyY2UiOwogTlNTdHJpbmcg
KldlYkNvbnNvbGVNZXNzYWdlTWVkaWFTb3VyY2VNZXNzYWdlU291cmNlID0gQCJNZWRpYVNvdXJj
ZU1lc3NhZ2VTb3VyY2UiOwogTlNTdHJpbmcgKldlYkNvbnNvbGVNZXNzYWdlV2ViUlRDTWVzc2Fn
ZVNvdXJjZSA9IEAiV2ViUlRDTWVzc2FnZVNvdXJjZSI7CiBOU1N0cmluZyAqV2ViQ29uc29sZU1l
c3NhZ2VJVFBEZWJ1Z01lc3NhZ2VTb3VyY2UgPSBAIklUUERlYnVnTWVzc2FnZVNvdXJjZSI7Ci1O
U1N0cmluZyAqV2ViQ29uc29sZU1lc3NhZ2VBZENsaWNrQXR0cmlidXRpb25NZXNzYWdlU291cmNl
ID0gQCJBZENsaWNrQXR0cmlidXRpb25NZXNzYWdlU291cmNlIjsKK05TU3RyaW5nICpXZWJDb25z
b2xlTWVzc2FnZVByaXZhdGVDbGlja01lYXN1cmVtZW50TWVzc2FnZVNvdXJjZSA9IEAiUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNZXNzYWdlU291cmNlIjsKIE5TU3RyaW5nICpXZWJDb25zb2xlTWVz
c2FnZU90aGVyTWVzc2FnZVNvdXJjZSA9IEAiT3RoZXJNZXNzYWdlU291cmNlIjsKIAogTlNTdHJp
bmcgKldlYkNvbnNvbGVNZXNzYWdlRGVidWdNZXNzYWdlTGV2ZWwgPSBAIkRlYnVnTWVzc2FnZUxl
dmVsIjsKQEAgLTQwMyw4ICs0MDMsOCBAQCBpbmxpbmUgc3RhdGljIE5TU3RyaW5nICpzdHJpbmdG
b3JNZXNzYWdlU291cmNlKE1lc3NhZ2VTb3VyY2Ugc291cmNlKQogICAgICAgICByZXR1cm4gV2Vi
Q29uc29sZU1lc3NhZ2VXZWJSVENNZXNzYWdlU291cmNlOwogICAgIGNhc2UgTWVzc2FnZVNvdXJj
ZTo6SVRQRGVidWc6CiAgICAgICAgIHJldHVybiBXZWJDb25zb2xlTWVzc2FnZUlUUERlYnVnTWVz
c2FnZVNvdXJjZTsKLSAgICBjYXNlIE1lc3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbjoK
LSAgICAgICAgcmV0dXJuIFdlYkNvbnNvbGVNZXNzYWdlQWRDbGlja0F0dHJpYnV0aW9uTWVzc2Fn
ZVNvdXJjZTsKKyAgICBjYXNlIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OgorICAgICAgICByZXR1cm4gV2ViQ29uc29sZU1lc3NhZ2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1lc3NhZ2VTb3VyY2U7CiAgICAgY2FzZSBNZXNzYWdlU291cmNlOjpPdGhlcjoKICAgICAgICAg
cmV0dXJuIFdlYkNvbnNvbGVNZXNzYWdlT3RoZXJNZXNzYWdlU291cmNlOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oCmluZGV4IDVmYTllOTBjMTA1Nzc4YzRjMmQ5ODdjNmZiMWMwZjViMDdkZWJh
YzguLmFiMzE3YjA2YjA1Zjg5YWIxM2RlNTY0ZWQyODk0Njg3NTJhZjZmY2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaApAQCAtMjczLDcgKzI3Myw3IEBACiAjZGVmaW5lIFdlYktpdFNlcnZlclRpbWlu
Z0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0U2VydmVyVGltaW5nRW5hYmxlZCIKICNkZWZp
bmUgV2ViS2l0Q1NTQ3VzdG9tUHJvcGVydGllc0FuZFZhbHVlc0VuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0Q1NTQ3VzdG9tUHJvcGVydGllc0FuZFZhbHVlc0VuYWJsZWQiCiAjZGVmaW5lIFdl
YktpdFJlc2l6ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRSZXNpemVPYnNl
cnZlckVuYWJsZWQiCi0jZGVmaW5lIFdlYktpdEFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWRQcmVm
ZXJlbmNlS2V5IEAiV2ViS2l0QWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZCIKKyNkZWZpbmUgV2Vi
S2l0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFBy
aXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0RmV0Y2hBUElLZWVw
QWxpdmVFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEZldGNoQVBJS2VlcEFsaXZlRW5hYmxl
ZCIKICNkZWZpbmUgV2ViS2l0R2VuZXJpY0N1ZUFQSUVuYWJsZWRLZXkgQCJXZWJLaXRHZW5lcmlj
Q3VlQVBJRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0QXNwZWN0UmF0aW9PZkltZ0Zyb21XaWR0aEFu
ZEhlaWdodEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0QXNwZWN0UmF0aW9PZkltZ0Zyb21X
aWR0aEFuZEhlaWdodEVuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCAwODQ4YTcyYWI4YWFiNjZmYjI5NGZmMzQxZmQ1
NDBiMjk1ZDUzYWM0Li42YTBlODU3ZTA2NDMxOTE3MWViYWQ0OWQ3ZTVjN2YyZjYxYWMyNDdmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
bW0KQEAgLTMyMzMsMTQgKzMyMzMsMTQgQEAgLSAodm9pZClzZXRSZXNpemVPYnNlcnZlckVuYWJs
ZWQ6KEJPT0wpZmxhZwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0
UmVzaXplT2JzZXJ2ZXJFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKLS0gKEJPT0wpYWRDbGlj
a0F0dHJpYnV0aW9uRW5hYmxlZAorLSAoQk9PTClwcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJs
ZWQKIHsKLSAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRBZENsaWNrQXR0
cmlidXRpb25FbmFibGVkUHJlZmVyZW5jZUtleV07CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFs
dWVGb3JLZXk6V2ViS2l0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkUHJlZmVyZW5jZUtl
eV07CiB9CiAKLS0gKHZvaWQpc2V0QWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZDooQk9PTClmbGFn
CistICh2b2lkKXNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZDooQk9PTClmbGFnCiB7
Ci0gICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRBZENsaWNrQXR0cmli
dXRpb25FbmFibGVkUHJlZmVyZW5jZUtleV07CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFn
IGZvcktleTpXZWJLaXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWRQcmVmZXJlbmNlS2V5
XTsKIH0KIAogLSAoQk9PTClmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmlu
ZGV4IGVmMGU4MTM0ZWY1MjgwZjlhM2M4NzExMGZjNThmNzdjODM5NTBhYjYuLjQ1NmEwMTNiODhk
NTgzN2VhOTQ3ZmU0Y2Y2NDJiM2U1YTdiODYwZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtMzM0LDcg
KzMzNCw3IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hhbmdl
ZEludGVybmFsTm90aWZpY2F0aW9uIFdFQktJVF9ERVBSCiBAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCBzZXJ2ZXJUaW1pbmdFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgQ1NT
Q3VzdG9tUHJvcGVydGllc0FuZFZhbHVlc0VuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCByZXNpemVPYnNlcnZlckVuYWJsZWQ7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBh
ZENsaWNrQXR0cmlidXRpb25FbmFibGVkOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
ZmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgZ2Vu
ZXJpY0N1ZUFQSUVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhc3BlY3RSYXRp
b09mSW1nRnJvbVdpZHRoQW5kSGVpZ2h0RW5hYmxlZDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiNzFiMWFjMDhkNTIwMGUyZjExZTkyOWVjN2Y4
NTAyMmMzYzZhZDU0Li4yNjRmNzJkZWU4MWIzODFiODMzZjFiYmJjNTA0NGY2NGM0MmY2MjM0IDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNjkgQEAKKzIwMjAtMTEtMTEgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+
CisKKyAgICAgICAgUENNOiBDaGFuZ2UgZnJvbSBhZC1jbGljay1hdHRyaWJ1dGlvbiB0byBwcml2
YXRlLWNsaWNrLW1lYXN1cmVtZW50IChpbiBhbGwgZm9ybXMsIGluY2x1ZGluZyAud2VsbC1rbm93
biBVUkwpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTg3MzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMDk0Mjk2PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSB0byB0aGUgb2ZmaWNpYWwg
bmFtZSBvZiB0aGUgcHJvcG9zZWQgc3RhbmRhcmQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudAor
ICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vcHJpdmFjeWNnL3ByaXZhdGUtY2xpY2stbWVhc3Vy
ZW1lbnQuCisKKyAgICAgICAgVGhpcyBpbmNsdWRlcyBhIGNoYW5nZSBvZiB0aGUgcmVwb3J0aW5n
IFVSTCBmcm9tIAorICAgICAgICAiLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLyIg
dG8KKyAgICAgICAgIi8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LyIuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHA6CisgICAgICAgIChXVFI6
OlRlc3RPcHRpb25zOjpkZWZhdWx0cyk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNw
cDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6Cisg
ICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6Cisg
ICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgor
ICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Ro
cm91Z2hXZWJzaXRlRGF0YVJlbW92YWwpOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKToKKyAgICAgICAg
KFdUUjo6VGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJM
Rm9yVGVzdGluZyk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6Om1hcmtQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5l
cjo6ZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RS
dW5uZXI6OmNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6
VGVzdFJ1bm5lcjo6Y2xlYXJBZENsaWNrQXR0cmlidXRpb25zVGhyb3VnaFdlYnNpdGVEYXRhUmVt
b3ZhbCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldEFkQ2xpY2tBdHRy
aWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6
VGVzdFJ1bm5lcjo6c2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3Rpbmcp
OiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjptYXJrQWRDbGlja0F0dHJpYnV0
aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIChXVFI6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50U3RyaW5nUmVzdWx0Q2FsbGJhY2tDb250ZXh0OjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFN0cmluZ1Jlc3VsdENhbGxiYWNrQ29udGV4dCk6CisgICAgICAgIChXVFI6OnByaXZh
dGVDbGlja01lYXN1cmVtZW50U3RyaW5nUmVzdWx0Q2FsbGJhY2spOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6ZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdU
Ujo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2tDb250ZXh0OjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudFZvaWRDYWxsYmFja0NvbnRleHQpOgorICAgICAgICAoV1RSOjpwcml2YXRl
Q2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFjayk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9s
bGVyOjpjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRh
UmVtb3ZhbCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKToKKyAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rp
bmcpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6bWFya1ByaXZhdGVDbGlja01lYXN1
cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcpOgorICAgICAgICAoV1RSOjpBZENsaWNrQXR0cmli
dXRpb25TdHJpbmdSZXN1bHRDYWxsYmFja0NvbnRleHQ6OkFkQ2xpY2tBdHRyaWJ1dGlvblN0cmlu
Z1Jlc3VsdENhbGxiYWNrQ29udGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OmFkQ2xpY2tB
dHRyaWJ1dGlvblN0cmluZ1Jlc3VsdENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OmR1bXBBZENsaWNrQXR0cmlidXRpb24pOiBEZWxldGVkLgorICAgICAg
ICAoV1RSOjpBZENsaWNrQXR0cmlidXRpb25Wb2lkQ2FsbGJhY2tDb250ZXh0OjpBZENsaWNrQXR0
cmlidXRpb25Wb2lkQ2FsbGJhY2tDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6YWRD
bGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OmNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OmNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJz
aXRlRGF0YVJlbW92YWwpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
c2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmcpOiBEZWxldGVkLgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVy
c2lvblVSTEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6bWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJ
bnZvY2F0aW9uOjpkdW1wUmVzdWx0cyk6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpk
aWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAg
KFdUUjo6VGVzdEludm9jYXRpb246OmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAg
ICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkdW1wQWRDbGlja0F0dHJpYnV0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmg6CisKIDIwMjAt
MTEtMTEgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFti
dWlsZC53ZWJraXQub3JnXSBVcGRhdGUgUnVuV2ViS2l0VGVzdHMgc3RlcCBmb3IgbmV3IGJ1aWxk
Ym90CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKaW5kZXggZmU2MDNlZmVhYmNlZTM1
OWE2MzRkODg0NmM3MzczMTRmMjA1OWY2OC4uN2Y0MzM3ZjczNTUxMDY3ZWFhYmZlMjA5MzQ4OWVj
NjVhOTU2YWM4NiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcApAQCAtNjYsNyAr
NjYsNiBAQCBjb25zdCBUZXN0RmVhdHVyZXMmIFRlc3RPcHRpb25zOjpkZWZhdWx0cygpCiAgICAg
ICAgICAgICAvLyBUaGVzZSBhcmUgV2ViUHJlZmVyZW5jZSB2YWx1ZXMgdGhhdCBtdXN0IGFsd2F5
cyBiZSBzZXQgYXMgdGhleSBtYXkKICAgICAgICAgICAgIC8vIGRpZmZlciBmcm9tIHRoZSBkZWZh
dWx0IHNldCBpbiB0aGUgV2ViUHJlZmVyZW5jZXMqLnlhbWwgY29uZmlndXJhdGlvbi4KICAgICAg
ICAgICAgIHsgIkFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQiLCBmYWxzZSB9LAotICAgICAgICAg
ICAgeyAiQWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZCIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7
ICJBbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscyIsIGZhbHNl
IH0sCiAgICAgICAgICAgICB7ICJBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMiLCB0cnVlIH0s
CiAgICAgICAgICAgICB7ICJBbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzIiwgdHJ1ZSB9LApA
QCAtOTYsNiArOTUsNyBAQCBjb25zdCBUZXN0RmVhdHVyZXMmIFRlc3RPcHRpb25zOjpkZWZhdWx0
cygpCiAgICAgICAgICAgICB7ICJNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZCIsIHRydWUgfSwK
ICAgICAgICAgICAgIHsgIk5lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrIiwgZmFs
c2UgfSwKICAgICAgICAgICAgIHsgIlBsdWdpbnNFbmFibGVkIiwgdHJ1ZSB9LAorICAgICAgICAg
ICAgeyAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkIiwgZmFsc2UgfSwKICAgICAgICAg
ICAgIHsgIlJlcXVlc3RJZGxlQ2FsbGJhY2tFbmFibGVkIiwgZmFsc2UgfSwKICAgICAgICAgICAg
IHsgIlJlc2l6ZU9ic2VydmVyRW5hYmxlZCIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7ICJTZWxl
Y3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxlZCIsIHRydWUgfSwKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggM2QxMjc0NTM4YTczNmEwY2RhNTUzNGFhMzcyNmFlNjkwM2EwZjQ2Ny4u
NTI4ZjVmZDVlMWQ0YThhMWJjYWEzNjllYzA3MjM2M2NjZWUxZWExZCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTUwNSw3ICs1MDUsNyBAQAogCQk2MzcyODFBNzIxQUUxMzg2MDA5RTBERTYg
LyogRG93bmxvYWRQcm9ncmVzcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDYzNzI4MUE2MjFBRTEzODYwMDlFMERFNiAvKiBEb3dubG9hZFByb2dyZXNz
Lm1tICovOyB9OwogCQk2M0E2MUI4QjFGQUQyNTExMDBGMDY4ODUgLyogZGlzcGxheS1tb2RlLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NjNBNjFCOEExRkFEMjA0RDAwRjA2ODg1IC8qIGRpc3BsYXktbW9kZS5odG1sICovOyB9OwogCQk2
M0Y2NjgyMjFGOTdGN0Y5MDAzMkVFNTEgLyogQXBwbGljYXRpb25NYW5pZmVzdC5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYzRjY2ODIwMUY5N0MzQUEw
MDMyRUU1MSAvKiBBcHBsaWNhdGlvbk1hbmlmZXN0Lm1tICovOyB9OwotCQk2QjBBMDdGNzIxRkE5
QzJCMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCMEEwN0Y2MjFGQTlDMkIwMEQ1NzM5MSAvKiBB
ZENsaWNrQXR0cmlidXRpb24uY3BwICovOyB9OworCQk2QjBBMDdGNzIxRkE5QzJCMDBENTczOTEg
LyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkIwQTA3RjYyMUZBOUMyQjAwRDU3MzkxIC8qIFByaXZhdGVD
bGlja01lYXN1cmVtZW50LmNwcCAqLzsgfTsKIAkJNkIzMDYxMDYyMThBMzcyOTAwRjVBODAyIC8q
IENsb3NpbmdXZWJWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkIzMDYxMDUyMThBMzcyOTAwRjVBODAyIC8qIENsb3NpbmdXZWJWaWV3Lm1tICov
OyB9OwogCQk2QjRFODYxQzIyMjBBNTUyMDAyMkYzODkgLyogUmVnaXN0cmFibGVEb21haW4uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkI0RTg2MUIy
MjIwQTU1MjAwMjJGMzg5IC8qIFJlZ2lzdHJhYmxlRG9tYWluLmNwcCAqLzsgfTsKIAkJNkI5QUJF
MTIyMDg2OTUyRjAwRDc1REU2IC8qIEhUVFBQYXJzZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCOUFCRTExMjA4Njk1MkYwMEQ3NURFNiAvKiBI
VFRQUGFyc2Vycy5jcHAgKi87IH07CkBAIC0yMjcxLDcgKzIyNzEsNyBAQAogCQk2MzcyODFBNjIx
QUUxMzg2MDA5RTBERTYgLyogRG93bmxvYWRQcm9ncmVzcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERvd25sb2FkUHJvZ3Jlc3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYz
QTYxQjhBMUZBRDIwNEQwMEYwNjg4NSAvKiBkaXNwbGF5LW1vZGUuaHRtbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJk
aXNwbGF5LW1vZGUuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYzRjY2ODIw
MUY5N0MzQUEwMDMyRUU1MSAvKiBBcHBsaWNhdGlvbk1hbmlmZXN0Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gQXBwbGljYXRpb25NYW5pZmVzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNkIwQTA3RjYyMUZBOUMyQjAwRDU3MzkxIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBBZENsaWNrQXR0cmlidXRpb24uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk2QjBBMDdGNjIxRkE5QzJCMDBENTczOTEgLyogUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjMwNjEwNTIxOEEzNzI5MDBG
NUE4MDIgLyogQ2xvc2luZ1dlYlZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDbG9zaW5n
V2ViVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkI0RTg2MUIyMjIwQTU1
MjAwMjJGMzg5IC8qIFJlZ2lzdHJhYmxlRG9tYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
Z2lzdHJhYmxlRG9tYWluLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkI5QUJF
MTEyMDg2OTUyRjAwRDc1REU2IC8qIEhUVFBQYXJzZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhUVFBQYXJzZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM0NzksNyAr
MzQ3OSw2IEBACiAJCQkJQ0Q4OUQwMzcxQzRFREIxMzAwMDQwQTA0IC8qIGNvY29hICovLAogCQkJ
CUExRUMxMTg1MUY0MjUzRDkwMEQwMTQ2RSAvKiBpb3MgKi8sCiAJCQkJQUJGNTEwNjMyQTE5QjhB
QzdFQzQwRTE3IC8qIEFib3J0YWJsZVRhc2tRdWV1ZS5jcHAgKi8sCi0JCQkJNkIwQTA3RjYyMUZB
OUMyQjAwRDU3MzkxIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbi5jcHAgKi8sCiAJCQkJN0E5MDlBNkYx
RDg3NzQ3NTAwN0UxMEY4IC8qIEFmZmluZVRyYW5zZm9ybS5jcHAgKi8sCiAJCQkJNTcxNTJCNUQy
MUNDMjA0NTAwMEMzN0NBIC8qIEFwZHVUZXN0LmNwcCAqLywKIAkJCQk2MzU0RjREMDFGN0MzQUI1
MDBEODlERjMgLyogQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlci5jcHAgKi8sCkBAIC0zNTI1LDYg
KzM1MjQsNyBAQAogCQkJCUE1QjE0OUREMUY1QTE5REMwMEM2REFGRiAvKiBNSU1FVHlwZVJlZ2lz
dHJ5LmNwcCAqLywKIAkJCQlDRDIyNUMwNzFDNDVBNjkyMDAxNDA3NjEgLyogUGFyc2VkQ29udGVu
dFJhbmdlLmNwcCAqLywKIAkJCQlBQTk2Q0FCNDIxQzdEQjQyMDBGRDJGOTcgLyogUGFyc2VkQ29u
dGVudFR5cGUuY3BwICovLAorCQkJCTZCMEEwN0Y2MjFGQTlDMkIwMEQ1NzM5MSAvKiBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC5jcHAgKi8sCiAJCQkJMDQxQTFFMzMyMTZGRkRCQzAwNzg5RTBBIC8q
IFB1YmxpY1N1ZmZpeC5jcHAgKi8sCiAJCQkJNkI0RTg2MUIyMjIwQTU1MjAwMjJGMzg5IC8qIFJl
Z2lzdHJhYmxlRG9tYWluLmNwcCAqLywKIAkJCQlGNDE4QkUxNDFGNzFCN0RDMDAxOTcwRTYgLyog
Um91bmRlZFJlY3RUZXN0cy5jcHAgKi8sCkBAIC01MDQwLDcgKzUwNDAsNiBAQAogCQkJCTJFMjA1
QkE0MUY1Mjc3NDYwMDU5NTJERCAvKiBBY2Nlc3NpYmlsaXR5VGVzdHNJT1MubW0gaW4gU291cmNl
cyAqLywKIAkJCQk5QkQ1MTExQzFGRThFMTE2MDBEMkI2MzAgLyogQWNjZXNzaW5nUGFzdGVkSW1h
Z2UubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNDVCNjNGRTFGMTlENDEwMDA5RDM4QjkgLyogQWN0
aW9uU2hlZXRUZXN0cy5tbSBpbiBTb3VyY2VzICovLAotCQkJCTZCMEEwN0Y3MjFGQTlDMkIwMEQ1
NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdFN0RE
NjQxRUEwNkZGMjAwOUIzOTZEIC8qIEFkZGl0aW9uYWxSZWFkQWNjZXNzQWxsb3dlZFVSTHMubW0g
aW4gU291cmNlcyAqLywKIAkJCQk1NUE4MTdGQzIxODEwMEUwMDAwNEEzOUEgLyogQWRkaXRpb25h
bFN1cHBvcnRlZEltYWdlVHlwZXMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1NUY5RDJFNTIyMDUw
MzE4MDBBOUFCMzggLyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0gaW4gU291cmNl
cyAqLywKQEAgLTUzODEsNiArNTM4MCw3IEBACiAJCQkJN0NDRTdGMkMxQTQxMUIxMDAwNDQ3QzRD
IC8qIFByZXZlbnRJbWFnZUxvYWRXaXRoQXV0b1Jlc2l6aW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTFFQzExODgxRjQyNTQxMjAwRDAxNDZFIC8qIFByZXZpZXdDb252ZXJ0ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdGMEMxQTQxMUFFNjAwNDQ3QzRDIC8qIFByaXZhdGVCcm93c2lu
Z1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTZCMEEw
N0Y3MjFGQTlDMkIwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk0NjQ3QjEyNjFFQkEzQjg1MDA0MUQ3RUYgLyogUHJvY2Vzc0RpZFRlcm1p
bmF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTg4MkYwMzIxMDEwQzBEMDAyRkYyODggLyog
UHJvY2Vzc1ByZVdhcm1pbmcubW0gaW4gU291cmNlcyAqLywKIAkJCQlDREE0NDM4RTIxRjdBNDc3
MDAzNzk0ODkgLyogUHJvY2Vzc1N1c3BlbmRNZWRpYUJ1ZmZlcmluZy5tbSBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0FkQ2xpY2tB
dHRyaWJ1dGlvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQWRDbGlj
a0F0dHJpYnV0aW9uLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDExMWYwZWEw
YzBlMWQxOTU4MGZkM2M2NDViZDM3YzAyZTVhZjk3Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
QWRDbGlja0F0dHJpYnV0aW9uLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI3OCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSA8V2ViQ29yZS9BZENs
aWNrQXR0cmlidXRpb24uaD4KLSNpbmNsdWRlIDx3dGYvVVJMLmg+Ci0jaW5jbHVkZSA8d3RmL1dh
bGxUaW1lLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgVGVzdFdl
YktpdEFQSSB7Ci0KLWNvbnN0ZXhwciB1aW50MzJfdCBtaW42Qml0VmFsdWUgeyAwIH07Ci0KLWNv
bnN0IFVSTCB3ZWJLaXRVUkwgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmciX3MgfTsKLWNvbnN0
IFVSTCBleGFtcGxlVVJMIHsgeyB9LCAiaHR0cHM6Ly9leGFtcGxlLmNvbSJfcyB9OwotY29uc3Qg
VVJMIGVtcHR5VVJMIHsgfTsKLQotLy8gUG9zaXRpdmUgdGVzdCBjYXNlcy4KLQotVEVTVChBZENs
aWNrQXR0cmlidXRpb24sIFZhbGlkTWluVmFsdWVzKQotewotICAgIEFkQ2xpY2tBdHRyaWJ1dGlv
biBhdHRyaWJ1dGlvbiB7IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q2FtcGFpZ24obWluNkJpdFZhbHVl
KSwgQWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2UgeyB3ZWJLaXRVUkwgfSwgQWRDbGlja0F0dHJp
YnV0aW9uOjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OwotICAgIGF0dHJpYnV0aW9uLmNv
bnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoQWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJz
aW9uKG1pbjZCaXRWYWx1ZSwgQWRDbGlja0F0dHJpYnV0aW9uOjpQcmlvcml0eShtaW42Qml0VmFs
dWUpKSk7Ci0KLSAgICBhdXRvIGF0dHJpYnV0aW9uVVJMID0gYXR0cmlidXRpb24ucmVwb3J0VVJM
KCk7Ci0gICAgCi0gICAgQVNTRVJUX0VRKGF0dHJpYnV0aW9uVVJMLnN0cmluZygpLCAiaHR0cHM6
Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLyIpOwotCi0gICAg
QVNTRVJUX0VRKGF0dHJpYnV0aW9uLmpzb24oKS0+dG9KU09OU3RyaW5nKCksICJ7XCJjb250ZW50
LXR5cGVcIjpcImNsaWNrXCIsXCJjb250ZW50LXNpdGVcIjpcIndlYmtpdC5vcmdcIixcImNvbnRl
bnQtaWRcIjowLFwiY29udmVyc2lvbi1zaXRlXCI6XCJleGFtcGxlLmNvbVwiLFwiY29udmVyc2lv
bi1kYXRhXCI6MCxcInJlcG9ydC12ZXJzaW9uXCI6MX0iKTsKLX0KLQotVEVTVChBZENsaWNrQXR0
cmlidXRpb24sIFZhbGlkTWlkVmFsdWVzKQotewotICAgIEFkQ2xpY2tBdHRyaWJ1dGlvbiBhdHRy
aWJ1dGlvbiB7IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q2FtcGFpZ24oKHVpbnQzMl90KTEyKSwgQWRD
bGlja0F0dHJpYnV0aW9uOjpTb3VyY2UgeyB3ZWJLaXRVUkwgfSwgQWRDbGlja0F0dHJpYnV0aW9u
OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OwotICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRB
bmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoQWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uKCh1
aW50MzJfdCk0NCwgQWRDbGlja0F0dHJpYnV0aW9uOjpQcmlvcml0eSgodWludDMyX3QpMjIpKSk7
Ci0KLSAgICBhdXRvIGF0dHJpYnV0aW9uVVJMID0gYXR0cmlidXRpb24ucmVwb3J0VVJMKCk7Ci0g
ICAgCi0gICAgQVNTRVJUX0VRKGF0dHJpYnV0aW9uVVJMLnN0cmluZygpLCAiaHR0cHM6Ly93ZWJr
aXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLyIpOwotCi0gICAgQVNTRVJU
X0VRKGF0dHJpYnV0aW9uLmpzb24oKS0+dG9KU09OU3RyaW5nKCksICJ7XCJjb250ZW50LXR5cGVc
IjpcImNsaWNrXCIsXCJjb250ZW50LXNpdGVcIjpcIndlYmtpdC5vcmdcIixcImNvbnRlbnQtaWRc
IjoxMixcImNvbnZlcnNpb24tc2l0ZVwiOlwiZXhhbXBsZS5jb21cIixcImNvbnZlcnNpb24tZGF0
YVwiOjQ0LFwicmVwb3J0LXZlcnNpb25cIjoxfSIpOwotfQotCi1URVNUKEFkQ2xpY2tBdHRyaWJ1
dGlvbiwgVmFsaWRNYXhWYWx1ZXMpCi17Ci0gICAgQWRDbGlja0F0dHJpYnV0aW9uIGF0dHJpYnV0
aW9uIHsgQWRDbGlja0F0dHJpYnV0aW9uOjpDYW1wYWlnbihBZENsaWNrQXR0cmlidXRpb246Ok1h
eEVudHJvcHkpLCBBZENsaWNrQXR0cmlidXRpb246OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBBZENs
aWNrQXR0cmlidXRpb246OkRlc3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07Ci0gICAgYXR0cmli
dXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChBZENsaWNrQXR0cmlidXRpb246
OkNvbnZlcnNpb24oQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5LCBBZENsaWNrQXR0cmli
dXRpb246OlByaW9yaXR5KEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSkpKTsKLQotICAg
IGF1dG8gYXR0cmlidXRpb25VUkwgPSBhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKTsKLSAgICAKLSAg
ICBBU1NFUlRfRVEoYXR0cmlidXRpb25VUkwuc3RyaW5nKCksICJodHRwczovL3dlYmtpdC5vcmcv
LndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vIik7Ci0KLSAgICBBU1NFUlRfRVEoYXR0
cmlidXRpb24uanNvbigpLT50b0pTT05TdHJpbmcoKSwgIntcImNvbnRlbnQtdHlwZVwiOlwiY2xp
Y2tcIixcImNvbnRlbnQtc2l0ZVwiOlwid2Via2l0Lm9yZ1wiLFwiY29udGVudC1pZFwiOjYzLFwi
Y29udmVyc2lvbi1zaXRlXCI6XCJleGFtcGxlLmNvbVwiLFwiY29udmVyc2lvbi1kYXRhXCI6NjMs
XCJyZXBvcnQtdmVyc2lvblwiOjF9Iik7Ci19Ci0KLVRFU1QoQWRDbGlja0F0dHJpYnV0aW9uLCBF
YXJsaWVzdFRpbWVUb1NlbmRBdHRyaWJ1dGlvbk1pbmltdW1EZWxheSkKLXsKLSAgICBBZENsaWNr
QXR0cmlidXRpb24gYXR0cmlidXRpb24geyBBZENsaWNrQXR0cmlidXRpb246OkNhbXBhaWduKEFk
Q2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSksIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNl
IHsgd2ViS2l0VVJMIH0sIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb24geyBleGFtcGxl
VVJMIH0gfTsKLSAgICBhdXRvIG5vdyA9IFdhbGxUaW1lOjpub3coKTsKLSAgICBhdHRyaWJ1dGlv
bi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29u
dmVyc2lvbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHksIEFkQ2xpY2tBdHRyaWJ1dGlv
bjo6UHJpb3JpdHkoQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5KSkpOwotICAgIGF1dG8g
ZWFybGllc3RUaW1lVG9TZW5kID0gYXR0cmlidXRpb24uZWFybGllc3RUaW1lVG9TZW5kKCk7Ci0g
ICAgQVNTRVJUX1RSVUUoZWFybGllc3RUaW1lVG9TZW5kKTsKLSAgICBBU1NFUlRfVFJVRShlYXJs
aWVzdFRpbWVUb1NlbmQudmFsdWUoKS5zZWNvbmRzU2luY2VFcG9jaCgpIC0gMjRfaCA+PSBub3cu
c2Vjb25kc1NpbmNlRXBvY2goKSk7Ci19Ci0KLVRFU1QoQWRDbGlja0F0dHJpYnV0aW9uLCBWYWxp
ZENvbnZlcnNpb25VUkxzKQotewotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aG91dFBy
aW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0
dHJpYnV0aW9uLzIyIl9zIH07Ci0gICAgYXV0byBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNr
QXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhvdXRQ
cmlvcml0eSk7Ci0gICAgQVNTRVJUX1RSVUUob3B0aW9uYWxDb252ZXJzaW9uKTsKLSAgICBBU1NF
UlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5kYXRhLCAodWludDMyX3QpMjIpOwotCi0gICAgY29u
c3QgVVJMIGNvbnZlcnNpb25VUkxXaXRob3V0UHJpb3JpdHlNYXhFbnRyb3B5IHsgeyB9LCAiaHR0
cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzYzIl9zIH07
Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZl
cnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRob3V0UHJpb3JpdHlNYXhFbnRyb3B5KTsKLSAg
ICBBU1NFUlRfVFJVRShvcHRpb25hbENvbnZlcnNpb24pOwotICAgIEFTU0VSVF9FUShvcHRpb25h
bENvbnZlcnNpb24tPmRhdGEsICh1aW50MzJfdCk2Myk7Ci0gICAgCi0gICAgY29uc3QgVVJMIGNv
bnZlcnNpb25VUkxXaXRob3V0UHJpb3JpdHlBbmRMZWFkaW5nWmVybyB7IHsgfSwgImh0dHBzOi8v
d2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8wMiJfcyB9OwotICAg
IG9wdGlvbmFsQ29udmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9u
UmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5QW5kTGVhZGluZ1plcm8pOwotICAg
IEFTU0VSVF9UUlVFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci0gICAgQVNTRVJUX0VRKG9wdGlvbmFs
Q29udmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90KTIpOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNp
b25VUkxXaXRoUHJpb3JpdHkgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24v
YWQtY2xpY2stYXR0cmlidXRpb24vMjIvMTIiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24g
PSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVS
TFdpdGhQcmlvcml0eSk7Ci0gICAgQVNTRVJUX1RSVUUob3B0aW9uYWxDb252ZXJzaW9uKTsKLSAg
ICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5kYXRhLCAodWludDMyX3QpMjIpOwotICAg
IEFTU0VSVF9FUShvcHRpb25hbENvbnZlcnNpb24tPnByaW9yaXR5LCAodWludDMyX3QpMTIpOwot
Ci0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHlNYXhFbnRyb3B5IHsgeyB9
LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzYz
LzYzIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpw
YXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHlNYXhFbnRyb3B5
KTsKLSAgICBBU1NFUlRfVFJVRShvcHRpb25hbENvbnZlcnNpb24pOwotICAgIEFTU0VSVF9FUShv
cHRpb25hbENvbnZlcnNpb24tPmRhdGEsICh1aW50MzJfdCk2Myk7Ci0gICAgQVNTRVJUX0VRKG9w
dGlvbmFsQ29udmVyc2lvbi0+cHJpb3JpdHksICh1aW50MzJfdCk2Myk7Ci0gICAgCi0gICAgY29u
c3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHlBbmRMZWFkaW5nWmVybyB7IHsgfSwgImh0
dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yMi8wMiJf
cyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VD
b252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5QW5kTGVhZGluZ1plcm8p
OwotICAgIEFTU0VSVF9UUlVFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci0gICAgQVNTRVJUX0VRKG9w
dGlvbmFsQ29udmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90KTIyKTsKLSAgICBBU1NFUlRfRVEob3B0
aW9uYWxDb252ZXJzaW9uLT5wcmlvcml0eSwgKHVpbnQzMl90KTIpOwotfQotCi0vLyBOZWdhdGl2
ZSB0ZXN0IGNhc2VzLgotCi1URVNUKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgSW52YWxpZENhbXBhaWdu
SWQpCi17Ci0gICAgQWRDbGlja0F0dHJpYnV0aW9uIGF0dHJpYnV0aW9uIHsgQWRDbGlja0F0dHJp
YnV0aW9uOjpDYW1wYWlnbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHkgKyAxKSwgQWRD
bGlja0F0dHJpYnV0aW9uOjpTb3VyY2UgeyB3ZWJLaXRVUkwgfSwgQWRDbGlja0F0dHJpYnV0aW9u
OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OwotICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRB
bmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoQWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uKEFk
Q2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSwgQWRDbGlja0F0dHJpYnV0aW9uOjpQcmlvcml0
eShBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHkpKSk7Ci0KLSAgICBBU1NFUlRfVFJVRShh
dHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkpOwotfQotCi1URVNUKEFkQ2xpY2tBdHRy
aWJ1dGlvbiwgSW52YWxpZFNvdXJjZUhvc3QpCi17Ci0gICAgQWRDbGlja0F0dHJpYnV0aW9uIGF0
dHJpYnV0aW9uIHsgQWRDbGlja0F0dHJpYnV0aW9uOjpDYW1wYWlnbihBZENsaWNrQXR0cmlidXRp
b246Ok1heEVudHJvcHkpLCBBZENsaWNrQXR0cmlidXRpb246OlNvdXJjZSB7IGVtcHR5VVJMIH0s
IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKLSAgICBh
dHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKEFkQ2xpY2tBdHRyaWJ1
dGlvbjo6Q29udmVyc2lvbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHksIEFkQ2xpY2tB
dHRyaWJ1dGlvbjo6UHJpb3JpdHkoQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5KSkpOwot
Ci0gICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKLX0K
LQotVEVTVChBZENsaWNrQXR0cmlidXRpb24sIEludmFsaWREZXN0aW5hdGlvbkhvc3QpCi17Ci0g
ICAgQWRDbGlja0F0dHJpYnV0aW9uIGF0dHJpYnV0aW9uIHsgQWRDbGlja0F0dHJpYnV0aW9uOjpD
YW1wYWlnbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHkgKyAxKSwgQWRDbGlja0F0dHJp
YnV0aW9uOjpTb3VyY2UgeyB3ZWJLaXRVUkwgfSwgQWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5h
dGlvbiB7IGVtcHR5VVJMIH0gfTsKLSAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGll
c3RUaW1lVG9TZW5kKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lvbihBZENsaWNrQXR0cmli
dXRpb246Ok1heEVudHJvcHksIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6UHJpb3JpdHkoQWRDbGlja0F0
dHJpYnV0aW9uOjpNYXhFbnRyb3B5KSkpOwotCi0gICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24u
cmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKLX0KLQotVEVTVChBZENsaWNrQXR0cmlidXRpb24sIElu
dmFsaWRDb252ZXJzaW9uRGF0YSkKLXsKLSAgICBBZENsaWNrQXR0cmlidXRpb24gYXR0cmlidXRp
b24geyBBZENsaWNrQXR0cmlidXRpb246OkNhbXBhaWduKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4
RW50cm9weSksIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlIHsgd2ViS2l0VVJMIH0sIEFkQ2xp
Y2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKLSAgICBhdHRyaWJ1
dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6
Q29udmVyc2lvbigoQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5ICsgMSksIEFkQ2xpY2tB
dHRyaWJ1dGlvbjo6UHJpb3JpdHkoQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5KSkpOwot
Ci0gICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKLX0K
LQotVEVTVChBZENsaWNrQXR0cmlidXRpb24sIEludmFsaWRQcmlvcml0eSkKLXsKLSAgICBBZENs
aWNrQXR0cmlidXRpb24gYXR0cmlidXRpb24geyBBZENsaWNrQXR0cmlidXRpb246OkNhbXBhaWdu
KEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSksIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291
cmNlIHsgd2ViS2l0VVJMIH0sIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb24geyBleGFt
cGxlVVJMIH0gfTsKLSAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9T
ZW5kKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lvbihBZENsaWNrQXR0cmlidXRpb246Ok1h
eEVudHJvcHksIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6UHJpb3JpdHkoQWRDbGlja0F0dHJpYnV0aW9u
OjpNYXhFbnRyb3B5ICsgMSkpKTsKLQotICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9y
dFVSTCgpLmlzRW1wdHkoKSk7Ci19Ci0KLVRFU1QoQWRDbGlja0F0dHJpYnV0aW9uLCBJbnZhbGlk
TWlzc2luZ0NvbnZlcnNpb24pCi17Ci0gICAgQWRDbGlja0F0dHJpYnV0aW9uIGF0dHJpYnV0aW9u
IHsgQWRDbGlja0F0dHJpYnV0aW9uOjpDYW1wYWlnbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVu
dHJvcHkpLCBBZENsaWNrQXR0cmlidXRpb246OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBBZENsaWNr
QXR0cmlidXRpb246OkRlc3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07Ci0KLSAgICBBU1NFUlRf
VFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkpOwotICAgIEFTU0VSVF9GQUxT
RShhdHRyaWJ1dGlvbi5lYXJsaWVzdFRpbWVUb1NlbmQoKSk7Ci19Ci0KLVRFU1QoQWRDbGlja0F0
dHJpYnV0aW9uLCBJbnZhbGlkQ29udmVyc2lvblVSTHMpCi17Ci0gICAgY29uc3QgVVJMIGNvbnZl
cnNpb25VUkxXaXRoU2luZ2xlRGlnaXRDb252ZXJzaW9uRGF0YSB7IHsgfSwgImh0dHBzOi8vd2Vi
a2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yIl9zIH07Ci0gICAgYXV0
byBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lv
blJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhTaW5nbGVEaWdpdENvbnZlcnNpb25EYXRhKTsKLSAg
ICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKLSAgICAKLSAgICBjb25zdCBVUkwg
Y29udmVyc2lvblVSTFdpdGhOb25OdW1lcmFsQ29udmVyc2lvbkRhdGEgeyB7IH0sICJodHRwczov
L3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vMnMiX3MgfTsKLSAg
ICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lv
blJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhOb25OdW1lcmFsQ29udmVyc2lvbkRhdGEpOwotICAg
IEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZl
cnNpb25VUkxXaXRoTmVnYXRpdmVDb252ZXJzaW9uRGF0YSB7IHsgfSwgImh0dHBzOi8vd2Via2l0
Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8tMiJfcyB9OwotICAgIG9wdGlv
bmFsQ29udmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVz
dChjb252ZXJzaW9uVVJMV2l0aE5lZ2F0aXZlQ29udmVyc2lvbkRhdGEpOwotICAgIEFTU0VSVF9G
QUxTRShvcHRpb25hbENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxX
aXRoVG9vTGFyZ2VDb252ZXJzaW9uRGF0YSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2Vs
bC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi82NCJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVy
c2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJz
aW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRhdGEpOwotICAgIEFTU0VSVF9GQUxTRShvcHRp
b25hbENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoU2luZ2xl
RGlnaXRQcmlvcml0eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1j
bGljay1hdHRyaWJ1dGlvbi8yMi8yIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRD
bGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRo
U2luZ2xlRGlnaXRQcmlvcml0eSk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lv
bik7Ci0gICAgCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoTm9uTnVtZXJhbFByaW9y
aXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJp
YnV0aW9uLzIyLzJzIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJp
YnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoTm9uTnVtZXJh
bFByaW9yaXR5KTsKLSAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKLSAgICAK
LSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhOZWdhdGl2ZVByaW9yaXR5IHsgeyB9LCAi
aHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzIyLy0y
Il9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJz
ZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoTmVnYXRpdmVQcmlvcml0eSk7Ci0g
ICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci0gICAgCi0gICAgY29uc3QgVVJM
IGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VQcmlvcml0eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0
Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yMi82NCJfcyB9OwotICAgIG9w
dGlvbmFsQ29udmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVx
dWVzdChjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlUHJpb3JpdHkpOwotICAgIEFTU0VSVF9GQUxT
RShvcHRpb25hbENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRo
VG9vTGFyZ2VDb252ZXJzaW9uRGF0YUFuZFByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQu
b3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzY0LzIyIl9zIH07Ci0gICAgb3B0
aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1
ZXN0KGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VDb252ZXJzaW9uRGF0YUFuZFByaW9yaXR5KTsK
LSAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKLQotICAgIGNvbnN0IFVSTCBj
b252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRhdGFBbmRUb29MYXJnZVByaW9yaXR5
IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0
aW9uLzY0LzY0Il9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0
aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VDb252
ZXJzaW9uRGF0YUFuZFRvb0xhcmdlUHJpb3JpdHkpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25h
bENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoRXh0cmFMZWFk
aW5nU2xhc2ggPSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGlj
ay1hdHRyaWJ1dGlvbi8vMjIvMTIiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENs
aWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhF
eHRyYUxlYWRpbmdTbGFzaCk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7
Ci0KLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhFeHRyYVRyYWlsaW5nU2xhc2ggPSB7
IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlv
bi8yMi8xMi8iX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRp
b246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhFeHRyYVRyYWlsaW5n
U2xhc2gpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwotCi0gICAgY29u
c3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdRdWVzdGlvbk1hcmsgPSB7IHsgfSwgImh0
dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yMi8xMj8i
X3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNl
Q29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhUcmFpbGluZ1F1ZXN0aW9uTWFyayk7
Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci19Ci0KLVRFU1QoQWRDbGlj
a0F0dHJpYnV0aW9uLCBJbnZhbGlkQ29udmVyc2lvbldpdGhEaXNhbGxvd2VkVVJMQ29tcG9uZW50
cykKLXsKLSAgICAvLyBQcm90b2NvbC4KLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhI
dHRwUHJvdG9jb2wgeyB7IH0sICJodHRwOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGlj
ay1hdHRyaWJ1dGlvbi8yIl9zIH07Ci0gICAgYXV0byBvcHRpb25hbENvbnZlcnNpb24gPSBBZENs
aWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhI
dHRwUHJvdG9jb2wpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwotCi0g
ICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoV3NzUHJvdG9jb2wgeyB7IH0sICJ3c3M6Ly93
ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzIiX3MgfTsKLSAgICBv
cHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJl
cXVlc3QoY29udmVyc2lvblVSTFdpdGhXc3NQcm90b2NvbCk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9w
dGlvbmFsQ29udmVyc2lvbik7Ci0KLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhGaWxl
UHJvdG9jb2wgeyB7IH0sICJmaWxlOi8vLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9u
LzIiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBh
cnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhGaWxlUHJvdG9jb2wpOwotICAg
IEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwotCi0gICAgLy8gVXNlcm5hbWUgYW5k
IHBhc3N3b3JkLgotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFVzZXJOYW1lIHsgeyB9
LCAiaHR0cHM6Ly91c2VyQHdlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRp
b24vMiJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6
cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFVzZXJOYW1lKTsKLSAgICBB
U1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKLQotICAgIGNvbnN0IFVSTCBjb252ZXJz
aW9uVVJMV2l0aFBhc3N3b3JkID0geyB7IH0sICJodHRwczovLzpwd2RAd2Via2l0Lm9yZy8ud2Vs
bC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yMi8xMj8iX3MgfTsKLSAgICBvcHRpb25hbENv
bnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29u
dmVyc2lvblVSTFdpdGhQYXNzd29yZCk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVy
c2lvbik7Ci0KLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhVc2VybmFtZUFuZFBhc3N3
b3JkID0geyB7IH0sICJodHRwczovL3VzZXI6cHdkQHdlYmtpdC5vcmcvLndlbGwta25vd24vYWQt
Y2xpY2stYXR0cmlidXRpb24vMjIvMTI/Il9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0g
QWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxX
aXRoVXNlcm5hbWVBbmRQYXNzd29yZCk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVy
c2lvbik7Ci0KLSAgICAvLyBRdWVyeSBzdHJpbmcuCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25V
UkxXaXRoVHJhaWxpbmdRdWVzdGlvbk1hcmsgPSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8u
d2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yMi8xMj8iX3MgfTsKLSAgICBvcHRpb25h
bENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3Qo
Y29udmVyc2lvblVSTFdpdGhUcmFpbGluZ1F1ZXN0aW9uTWFyayk7Ci0gICAgQVNTRVJUX0ZBTFNF
KG9wdGlvbmFsQ29udmVyc2lvbik7Ci0KLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhR
dWVyeVN0cmluZyA9IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNs
aWNrLWF0dHJpYnV0aW9uLzIyLzEyP2V4dHJhPWRhdGEiX3MgfTsKLSAgICBvcHRpb25hbENvbnZl
cnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVy
c2lvblVSTFdpdGhRdWVyeVN0cmluZyk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVy
c2lvbik7Ci0gICAgCi0gICAgLy8gRnJhZ21lbnQuCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25V
UkxXaXRoVHJhaWxpbmdIYXNoID0geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25v
d24vYWQtY2xpY2stYXR0cmlidXRpb24vMjIvMTIjIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJz
aW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNp
b25VUkxXaXRoVHJhaWxpbmdIYXNoKTsKLSAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJz
aW9uKTsKLQotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aEZyYWdtZW50ID0geyB7IH0s
ICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vMjIv
MTIjZnJhZ21lbnQiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmli
dXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhGcmFnbWVudCk7
Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJi
MzliMGRjZDY5YzdkYmM5OWYxZmMyMGQwY2UzNjQ4ZTVkNjkwN2YKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQuY3BwCkBAIC0wLDAgKzEsMjc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaW5jbHVkZSA8V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgorI2luY2x1
ZGUgPHd0Zi9VUkwuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KKwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworY29uc3RleHByIHVp
bnQzMl90IG1pbjZCaXRWYWx1ZSB7IDAgfTsKKworY29uc3QgVVJMIHdlYktpdFVSTCB7IHsgfSwg
Imh0dHBzOi8vd2Via2l0Lm9yZyJfcyB9OworY29uc3QgVVJMIGV4YW1wbGVVUkwgeyB7IH0sICJo
dHRwczovL2V4YW1wbGUuY29tIl9zIH07Citjb25zdCBVUkwgZW1wdHlVUkwgeyB9OworCisvLyBQ
b3NpdGl2ZSB0ZXN0IGNhc2VzLgorCitURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxp
ZE1pblZhbHVlcykKK3sKKyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbihtaW42Qml0VmFsdWUpLCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OworICAgIGF0dHJpYnV0aW9uLmNv
bnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNv
bnZlcnNpb24obWluNkJpdFZhbHVlLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHko
bWluNkJpdFZhbHVlKSkpOworCisgICAgYXV0byBhdHRyaWJ1dGlvblVSTCA9IGF0dHJpYnV0aW9u
LnJlcG9ydFVSTCgpOworICAgIAorICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvblVSTC5zdHJpbmco
KSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVt
ZW50LyIpOworCisgICAgQVNTRVJUX0VRKGF0dHJpYnV0aW9uLmpzb24oKS0+dG9KU09OU3RyaW5n
KCksICJ7XCJjb250ZW50LXR5cGVcIjpcImNsaWNrXCIsXCJjb250ZW50LXNpdGVcIjpcIndlYmtp
dC5vcmdcIixcImNvbnRlbnQtaWRcIjowLFwiY29udmVyc2lvbi1zaXRlXCI6XCJleGFtcGxlLmNv
bVwiLFwiY29udmVyc2lvbi1kYXRhXCI6MCxcInJlcG9ydC12ZXJzaW9uXCI6MX0iKTsKK30KKwor
VEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRNaWRWYWx1ZXMpCit7CisgICAgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6Q2FtcGFpZ24oKHVpbnQzMl90KTEyKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJj
ZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24geyBl
eGFtcGxlVVJMIH0gfTsKKyAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1l
VG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uKCh1aW50MzJfdCk0NCwg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KCh1aW50MzJfdCkyMikpKTsKKworICAg
IGF1dG8gYXR0cmlidXRpb25VUkwgPSBhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKTsKKyAgICAKKyAg
ICBBU1NFUlRfRVEoYXR0cmlidXRpb25VUkwuc3RyaW5nKCksICJodHRwczovL3dlYmtpdC5vcmcv
LndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8iKTsKKworICAgIEFTU0VSVF9F
UShhdHRyaWJ1dGlvbi5qc29uKCktPnRvSlNPTlN0cmluZygpLCAie1wiY29udGVudC10eXBlXCI6
XCJjbGlja1wiLFwiY29udGVudC1zaXRlXCI6XCJ3ZWJraXQub3JnXCIsXCJjb250ZW50LWlkXCI6
MTIsXCJjb252ZXJzaW9uLXNpdGVcIjpcImV4YW1wbGUuY29tXCIsXCJjb252ZXJzaW9uLWRhdGFc
Ijo0NCxcInJlcG9ydC12ZXJzaW9uXCI6MX0iKTsKK30KKworVEVTVChQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCwgVmFsaWRNYXhWYWx1ZXMpCit7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQg
YXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFpZ24oUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291
cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7
IGV4YW1wbGVVUkwgfSB9OworICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRp
bWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24oUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0
eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSkpKTsKKworICAgIGF1dG8gYXR0
cmlidXRpb25VUkwgPSBhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKTsKKyAgICAKKyAgICBBU1NFUlRf
RVEoYXR0cmlidXRpb25VUkwuc3RyaW5nKCksICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25v
d24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8iKTsKKworICAgIEFTU0VSVF9FUShhdHRyaWJ1
dGlvbi5qc29uKCktPnRvSlNPTlN0cmluZygpLCAie1wiY29udGVudC10eXBlXCI6XCJjbGlja1wi
LFwiY29udGVudC1zaXRlXCI6XCJ3ZWJraXQub3JnXCIsXCJjb250ZW50LWlkXCI6NjMsXCJjb252
ZXJzaW9uLXNpdGVcIjpcImV4YW1wbGUuY29tXCIsXCJjb252ZXJzaW9uLWRhdGFcIjo2MyxcInJl
cG9ydC12ZXJzaW9uXCI6MX0iKTsKK30KKworVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwg
RWFybGllc3RUaW1lVG9TZW5kQXR0cmlidXRpb25NaW5pbXVtRGVsYXkpCit7CisgICAgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
Q2FtcGFpZ24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OworICAgIGF1dG8gbm93ID0gV2FsbFRp
bWU6Om5vdygpOworICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1Nl
bmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSkpKTsKKyAgICBhdXRvIGVhcmxpZXN0VGlt
ZVRvU2VuZCA9IGF0dHJpYnV0aW9uLmVhcmxpZXN0VGltZVRvU2VuZCgpOworICAgIEFTU0VSVF9U
UlVFKGVhcmxpZXN0VGltZVRvU2VuZCk7CisgICAgQVNTRVJUX1RSVUUoZWFybGllc3RUaW1lVG9T
ZW5kLnZhbHVlKCkuc2Vjb25kc1NpbmNlRXBvY2goKSAtIDI0X2ggPj0gbm93LnNlY29uZHNTaW5j
ZUVwb2NoKCkpOworfQorCitURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZENvbnZl
cnNpb25VUkxzKQoreworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5
IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVh
c3VyZW1lbnQvMjIiX3MgfTsKKyAgICBhdXRvIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRo
b3V0UHJpb3JpdHkpOworICAgIEFTU0VSVF9UUlVFKG9wdGlvbmFsQ29udmVyc2lvbik7CisgICAg
QVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90KTIyKTsKKworICAg
IGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5TWF4RW50cm9weSB7IHsgfSwg
Imh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50
LzYzIl9zIH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhvdXRQcmlvcml0eU1h
eEVudHJvcHkpOworICAgIEFTU0VSVF9UUlVFKG9wdGlvbmFsQ29udmVyc2lvbik7CisgICAgQVNT
RVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90KTYzKTsKKyAgICAKKyAg
ICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhvdXRQcmlvcml0eUFuZExlYWRpbmdaZXJvIHsg
eyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3Vy
ZW1lbnQvMDIiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aG91dFByaW9y
aXR5QW5kTGVhZGluZ1plcm8pOworICAgIEFTU0VSVF9UUlVFKG9wdGlvbmFsQ29udmVyc2lvbik7
CisgICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90KTIpOwor
CisgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHkgeyB7IH0sICJodHRwczov
L3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8xMiJf
cyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpw
YXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHkpOworICAgIEFT
U0VSVF9UUlVFKG9wdGlvbmFsQ29udmVyc2lvbik7CisgICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29u
dmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90KTIyKTsKKyAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252
ZXJzaW9uLT5wcmlvcml0eSwgKHVpbnQzMl90KTEyKTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJz
aW9uVVJMV2l0aFByaW9yaXR5TWF4RW50cm9weSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8u
d2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzYzLzYzIl9zIH07CisgICAgb3B0
aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lv
blJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhQcmlvcml0eU1heEVudHJvcHkpOworICAgIEFTU0VS
VF9UUlVFKG9wdGlvbmFsQ29udmVyc2lvbik7CisgICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29udmVy
c2lvbi0+ZGF0YSwgKHVpbnQzMl90KTYzKTsKKyAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJz
aW9uLT5wcmlvcml0eSwgKHVpbnQzMl90KTYzKTsKKyAgICAKKyAgICBjb25zdCBVUkwgY29udmVy
c2lvblVSTFdpdGhQcmlvcml0eUFuZExlYWRpbmdaZXJvIHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQu
b3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMjIvMDIiX3MgfTsKKyAg
ICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252
ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5QW5kTGVhZGluZ1plcm8pOwor
ICAgIEFTU0VSVF9UUlVFKG9wdGlvbmFsQ29udmVyc2lvbik7CisgICAgQVNTRVJUX0VRKG9wdGlv
bmFsQ29udmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90KTIyKTsKKyAgICBBU1NFUlRfRVEob3B0aW9u
YWxDb252ZXJzaW9uLT5wcmlvcml0eSwgKHVpbnQzMl90KTIpOworfQorCisvLyBOZWdhdGl2ZSB0
ZXN0IGNhc2VzLgorCitURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkQ2FtcGFp
Z25JZCkKK3sKKyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4
RW50cm9weSArIDEpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJM
IH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9
OworICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1h
eEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6TWF4RW50cm9weSkpKTsKKworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9u
LnJlcG9ydFVSTCgpLmlzRW1wdHkoKSk7Cit9CisKK1RFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsIEludmFsaWRTb3VyY2VIb3N0KQoreworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0
dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNhbXBhaWduKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJj
ZSB7IGVtcHR5VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4
YW1wbGVVUkwgfSB9OworICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVU
b1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSkpKTsKKworICAgIEFTU0VSVF9UUlVF
KGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlzRW1wdHkoKSk7Cit9CisKK1RFU1QoUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQsIEludmFsaWREZXN0aW5hdGlvbkhvc3QpCit7CisgICAgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2Ft
cGFpZ24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkgKyAxKSwgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6RGVzdGluYXRpb24geyBlbXB0eVVSTCB9IH07CisgICAgYXR0cmlidXRpb24uY29udmVy
dEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVy
c2lvbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSwgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSkp
OworCisgICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsK
K30KKworVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZENvbnZlcnNpb25EYXRh
KQoreworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkNhbXBhaWduKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRy
b3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKKyAgICBh
dHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpDb252ZXJzaW9uKChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9w
eSArIDEpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6Ok1heEVudHJvcHkpKSk7CisKKyAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5y
ZXBvcnRVUkwoKS5pc0VtcHR5KCkpOworfQorCitURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50
LCBJbnZhbGlkUHJpb3JpdHkpCit7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmli
dXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFpZ24oUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlIHsg
d2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1w
bGVVUkwgfSB9OworICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1Nl
bmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSArIDEpKSk7CisKKyAgICBBU1NFUlRfVFJV
RShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkpOworfQorCitURVNUKFByaXZhdGVD
bGlja01lYXN1cmVtZW50LCBJbnZhbGlkTWlzc2luZ0NvbnZlcnNpb24pCit7CisgICAgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
Q2FtcGFpZ24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OworCisgICAgQVNTRVJUX1RSVUUoYXR0
cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlRfRkFMU0UoYXR0cmli
dXRpb24uZWFybGllc3RUaW1lVG9TZW5kKCkpOworfQorCitURVNUKFByaXZhdGVDbGlja01lYXN1
cmVtZW50LCBJbnZhbGlkQ29udmVyc2lvblVSTHMpCit7CisgICAgY29uc3QgVVJMIGNvbnZlcnNp
b25VUkxXaXRoU2luZ2xlRGlnaXRDb252ZXJzaW9uRGF0YSB7IHsgfSwgImh0dHBzOi8vd2Via2l0
Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIiX3MgfTsKKyAgICBh
dXRvIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNv
bnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoU2luZ2xlRGlnaXRDb252ZXJzaW9uRGF0
YSk7CisgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CisgICAgCisgICAgY29u
c3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoTm9uTnVtZXJhbENvbnZlcnNpb25EYXRhIHsgeyB9LCAi
aHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQv
MnMiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aE5vbk51bWVyYWxDb252
ZXJzaW9uRGF0YSk7CisgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CisKKyAg
ICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhOZWdhdGl2ZUNvbnZlcnNpb25EYXRhIHsgeyB9
LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1l
bnQvLTIiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aE5lZ2F0aXZlQ29u
dmVyc2lvbkRhdGEpOworICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworCisg
ICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VDb252ZXJzaW9uRGF0YSB7IHsg
fSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVt
ZW50LzY0Il9zIH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhUb29MYXJnZUNv
bnZlcnNpb25EYXRhKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKwor
ICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFNpbmdsZURpZ2l0UHJpb3JpdHkgeyB7IH0s
ICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVu
dC8yMi8yIl9zIH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhTaW5nbGVEaWdp
dFByaW9yaXR5KTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKyAgICAK
KyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhOb25OdW1lcmFsUHJpb3JpdHkgeyB7IH0s
ICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVu
dC8yMi8ycyJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoTm9uTnVtZXJh
bFByaW9yaXR5KTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKyAgICAK
KyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhOZWdhdGl2ZVByaW9yaXR5IHsgeyB9LCAi
aHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQv
MjIvLTIiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aE5lZ2F0aXZlUHJp
b3JpdHkpOworICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworICAgIAorICAg
IGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlUHJpb3JpdHkgeyB7IH0sICJodHRw
czovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi82
NCJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VQcmlvcml0
eSk7CisgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CisKKyAgICBjb25zdCBV
UkwgY29udmVyc2lvblVSTFdpdGhUb29MYXJnZUNvbnZlcnNpb25EYXRhQW5kUHJpb3JpdHkgeyB7
IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJl
bWVudC82NC8yMiJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVG9vTGFy
Z2VDb252ZXJzaW9uRGF0YUFuZFByaW9yaXR5KTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxD
b252ZXJzaW9uKTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29u
dmVyc2lvbkRhdGFBbmRUb29MYXJnZVByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3Jn
Ly53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvNjQvNjQiX3MgfTsKKyAgICBv
cHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJz
aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRhdGFBbmRUb29M
YXJnZVByaW9yaXR5KTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKwor
ICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aEV4dHJhTGVhZGluZ1NsYXNoID0geyB7IH0s
ICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVu
dC8vMjIvMTIiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aEV4dHJhTGVh
ZGluZ1NsYXNoKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKworICAg
IGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aEV4dHJhVHJhaWxpbmdTbGFzaCA9IHsgeyB9LCAi
aHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQv
MjIvMTIvIl9zIH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhFeHRyYVRyYWls
aW5nU2xhc2gpOworICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworCisgICAg
Y29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdRdWVzdGlvbk1hcmsgPSB7IHsgfSwg
Imh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50
LzIyLzEyPyJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdR
dWVzdGlvbk1hcmspOworICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworfQor
CitURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkQ29udmVyc2lvbldpdGhEaXNh
bGxvd2VkVVJMQ29tcG9uZW50cykKK3sKKyAgICAvLyBQcm90b2NvbC4KKyAgICBjb25zdCBVUkwg
Y29udmVyc2lvblVSTFdpdGhIdHRwUHJvdG9jb2wgeyB7IH0sICJodHRwOi8vd2Via2l0Lm9yZy8u
d2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIiX3MgfTsKKyAgICBhdXRvIG9w
dGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNp
b25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoSHR0cFByb3RvY29sKTsKKyAgICBBU1NFUlRfRkFM
U0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0
aFdzc1Byb3RvY29sIHsgeyB9LCAid3NzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRl
LWNsaWNrLW1lYXN1cmVtZW50LzIiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJM
V2l0aFdzc1Byb3RvY29sKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsK
KworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aEZpbGVQcm90b2NvbCB7IHsgfSwgImZp
bGU6Ly8vLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yIl9zIH07CisgICAg
b3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVy
c2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhGaWxlUHJvdG9jb2wpOworICAgIEFTU0VSVF9G
QUxTRShvcHRpb25hbENvbnZlcnNpb24pOworCisgICAgLy8gVXNlcm5hbWUgYW5kIHBhc3N3b3Jk
LgorICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFVzZXJOYW1lIHsgeyB9LCAiaHR0cHM6
Ly91c2VyQHdlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8y
Il9zIH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhVc2VyTmFtZSk7CisgICAg
QVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CisKKyAgICBjb25zdCBVUkwgY29udmVy
c2lvblVSTFdpdGhQYXNzd29yZCA9IHsgeyB9LCAiaHR0cHM6Ly86cHdkQHdlYmtpdC5vcmcvLndl
bGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8xMj8iX3MgfTsKKyAgICBvcHRp
b25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9u
UmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFBhc3N3b3JkKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0
aW9uYWxDb252ZXJzaW9uKTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFVzZXJu
YW1lQW5kUGFzc3dvcmQgPSB7IHsgfSwgImh0dHBzOi8vdXNlcjpwd2RAd2Via2l0Lm9yZy8ud2Vs
bC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIyLzEyPyJfcyB9OworICAgIG9wdGlv
bmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25S
ZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVXNlcm5hbWVBbmRQYXNzd29yZCk7CisgICAgQVNTRVJU
X0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CisKKyAgICAvLyBRdWVyeSBzdHJpbmcuCisgICAg
Y29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdRdWVzdGlvbk1hcmsgPSB7IHsgfSwg
Imh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50
LzIyLzEyPyJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdR
dWVzdGlvbk1hcmspOworICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworCisg
ICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoUXVlcnlTdHJpbmcgPSB7IHsgfSwgImh0dHBz
Oi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIyLzEy
P2V4dHJhPWRhdGEiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFF1ZXJ5
U3RyaW5nKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKyAgICAKKyAg
ICAvLyBGcmFnbWVudC4KKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhUcmFpbGluZ0hh
c2ggPSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNr
LW1lYXN1cmVtZW50LzIyLzEyIyJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxX
aXRoVHJhaWxpbmdIYXNoKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsK
KworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aEZyYWdtZW50ID0geyB7IH0sICJodHRw
czovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8x
MiNmcmFnbWVudCJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoRnJhZ21l
bnQpOworICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworfQorCit9IC8vIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA1NTE2
MmZmMzQzZDI1ZjY5MDZjMzkyNzZmZDVhODkxZWRmMjliODY5Li5mZTg1MzlmMzUxOGZlNjU3MGQ3
NDM1OGRhNzcwMDRhZTA5YmY5Y2RkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTY2
LDcgKzY2LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHVuZGVmaW5lZCBkdW1wRE9N
QXNXZWJBcmNoaXZlKCk7CiAgICAgdW5kZWZpbmVkIGR1bXBQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNr
cygpOwogICAgIHVuZGVmaW5lZCBkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOwotICAgIHVu
ZGVmaW5lZCBkdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7CisgICAgdW5kZWZpbmVkIGR1bXBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwogCiAgICAgdW5kZWZpbmVkIGNsZWFyRE9NQ2FjaGVzKCk7
CiAgICAgdW5kZWZpbmVkIGNsZWFyRE9NQ2FjaGUoRE9NU3RyaW5nIG9yaWdpbik7CkBAIC0zOTcs
MTAgKzM5NywxMCBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdW5kZWZpbmVkIGNsZWFu
VXBLZXljaGFpbihET01TdHJpbmcgYXR0ckxhYmVsLCBvcHRpb25hbCBET01TdHJpbmcgYXBwbGlj
YXRpb25MYWJlbEJhc2U2NCk7CiAgICAgYm9vbGVhbiBrZXlFeGlzdHNJbktleWNoYWluKERPTVN0
cmluZyBhdHRyTGFiZWwsIERPTVN0cmluZyBhcHBsaWNhdGlvbkxhYmVsQmFzZTY0KTsKIAotICAg
IC8vIEFkIENsaWNrIEF0dHJpYnV0aW9uCi0gICAgdW5kZWZpbmVkIGNsZWFyQWRDbGlja0F0dHJp
YnV0aW9uKCk7Ci0gICAgdW5kZWZpbmVkIGNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hX
ZWJzaXRlRGF0YVJlbW92YWwoKTsKLSAgICB1bmRlZmluZWQgc2V0QWRDbGlja0F0dHJpYnV0aW9u
T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbGVhbiB2YWx1ZSk7Ci0gICAgdW5kZWZpbmVkIHNl
dEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKERPTVN0cmluZyB1cmwp
OwotICAgIHVuZGVmaW5lZCBtYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3Rp
bmcoKTsKKyAgICAvLyBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50CisgICAgdW5kZWZpbmVkIGNs
ZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICB1bmRlZmluZWQgY2xlYXJQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCk7CisgICAgdW5kZWZp
bmVkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9v
bGVhbiB2YWx1ZSk7CisgICAgdW5kZWZpbmVkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29u
dmVyc2lvblVSTEZvclRlc3RpbmcoRE9NU3RyaW5nIHVybCk7CisgICAgdW5kZWZpbmVkIG1hcmtQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CiB9OwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAK
aW5kZXggOTM0N2Y4MTg0ZmViZTI1ZDMzZjk0MWE0NGY5MmM3NmY3ZjVlNmE3ZC4uMDc3ZTIyYjM2
Njc1NjAyNDE0NjgwNzY1NzJhNTYxMzc4MGFiMjY3OCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xOTk1LDM1ICsx
OTk1LDM1IEBAIHZvaWQgVGVzdFJ1bm5lcjo6YWJvcnRNb2RhbCgpCiAgICAgcG9zdFN5bmNocm9u
b3VzTWVzc2FnZSgiQWJvcnRNb2RhbCIpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OmR1bXBBZENs
aWNrQXR0cmlidXRpb24oKQordm9pZCBUZXN0UnVubmVyOjpkdW1wUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQoKQogewotICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJEdW1wQWRDbGlja0F0
dHJpYnV0aW9uIik7CisgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIkR1bXBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCIpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OmNsZWFyQWRDbGlja0F0
dHJpYnV0aW9uKCkKK3ZvaWQgVGVzdFJ1bm5lcjo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCgpCiB7Ci0gICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIkNsZWFyQWRDbGlja0F0dHJp
YnV0aW9uIik7CisgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIkNsZWFyUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQiKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpjbGVhckFkQ2xpY2tBdHRy
aWJ1dGlvbnNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCkKK3ZvaWQgVGVzdFJ1bm5lcjo6Y2xl
YXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCkKIHsK
LSAgICBwb3N0U3luY2hyb25vdXNNZXNzYWdlKCJDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJv
dWdoV2Vic2l0ZURhdGFSZW1vdmFsIik7CisgICAgcG9zdFN5bmNocm9ub3VzTWVzc2FnZSgiQ2xl
YXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsIik7CiB9
CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZv
clRlc3RpbmcoYm9vbCB2YWx1ZSkKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHVlKQogewotICAgIHBvc3RT
eW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJTZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVy
Rm9yVGVzdGluZyIsIHZhbHVlKTsKKyAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiU2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyIsIHZhbHVlKTsK
IH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJM
Rm9yVGVzdGluZyhKU1N0cmluZ1JlZiB1cmxTdHJpbmcpCit2b2lkIFRlc3RSdW5uZXI6OnNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoSlNTdHJpbmdSZWYg
dXJsU3RyaW5nKQogewotICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJTZXRBZENsaWNr
QXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyIsCisgICAgcG9zdFN5bmNocm9ub3Vz
UGFnZU1lc3NhZ2UoIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRl
c3RpbmciLAogICAgICAgICBhZG9wdFdLKFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHRvV1RG
U3RyaW5nKHVybFN0cmluZykudXRmOCgpLmRhdGEoKSkpKTsKIH0KIAotdm9pZCBUZXN0UnVubmVy
OjptYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoKQordm9pZCBUZXN0
UnVubmVyOjptYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygp
CiB7Ci0gICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIk1hcmtBZENsaWNrQXR0cmlidXRp
b25zQXNFeHBpcmVkRm9yVGVzdGluZyIpOworICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdl
KCJNYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyIpOwogfQog
CiBib29sIFRlc3RSdW5uZXI6Omhhc0FwcEJvdW5kU2Vzc2lvbigpCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDBiZDNhMDll
MzJkNzFiMzUxNmU0ZjhlMDViZWEyMmFmOTk0YjFkMjMuLjE0ZTUzYzUxM2EyOTJiMWEwMDNjZWZk
MjM1MzdiNjA5NDg4YTdhZGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC01MDcsMTMgKzUwNywxMyBAQCBwdWJsaWM6CiAK
ICAgICB1bnNpZ25lZCBsb25nIHNlcnZlclRydXN0RXZhbHVhdGlvbkNhbGxiYWNrQ2FsbHNDb3Vu
dCgpOwogCi0gICAgLy8gQWQgQ2xpY2sgQXR0cmlidXRpb24uCi0gICAgdm9pZCBkdW1wQWRDbGlj
a0F0dHJpYnV0aW9uKCk7Ci0gICAgdm9pZCBjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbigpOwotICAg
IHZvaWQgY2xlYXJBZENsaWNrQXR0cmlidXRpb25zVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCgp
OwotICAgIHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3Rpbmco
Ym9vbCB2YWx1ZSk7Ci0gICAgdm9pZCBzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJM
Rm9yVGVzdGluZyhKU1N0cmluZ1JlZik7Ci0gICAgdm9pZCBtYXJrQWRDbGlja0F0dHJpYnV0aW9u
c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICAvLyBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50
LgorICAgIHZvaWQgZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgdm9pZCBjbGVh
clByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01l
YXN1cmVtZW50c1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoKTsKKyAgICB2b2lkIHNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7Cisg
ICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5n
KEpTU3RyaW5nUmVmKTsKKyAgICB2b2lkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4
cGlyZWRGb3JUZXN0aW5nKCk7CiAKIHByaXZhdGU6CiAgICAgVGVzdFJ1bm5lcigpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBlNGFhZjM4YjU4YmMyZGYw
NTYwYzUyOTBmMWFkOGY0ZDRkZmIzNTVhLi4xNmFkMTdlMjRiYTNlYjFkZTc3Mzc5ZWZiODUyNGI4
NjZlM2M3YjY3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApA
QCAtMTA0Niw3ICsxMDQ2LDcgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29u
c2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUKICAgICBzdGF0aXN0
aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpOwogICAgIGNsZWFyTG9hZGVkU3VicmVzb3VyY2VE
b21haW5zKCk7CiAgICAgY2xlYXJBcHBCb3VuZFNlc3Npb24oKTsKLSAgICBjbGVhckFkQ2xpY2tB
dHRyaWJ1dGlvbigpOworICAgIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKIAogICAg
IFdLUGFnZURpc3BhdGNoQWN0aXZpdHlTdGF0ZVVwZGF0ZUZvclRlc3RpbmcobV9tYWluV2ViVmll
dy0+cGFnZSgpKTsKIApAQCAtMzUwOCwzNSArMzUwOCwzNSBAQCB2b2lkIFRlc3RDb250cm9sbGVy
OjpzZXRTZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0Rm9yVGVzdGluZyhkb3VibGUgc2Vjb25kcykK
ICAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0Rm9yVGVz
dGluZyh3ZWJzaXRlRGF0YVN0b3JlKCksIHNlY29uZHMpOwogfQogCi1zdHJ1Y3QgQWRDbGlja0F0
dHJpYnV0aW9uU3RyaW5nUmVzdWx0Q2FsbGJhY2tDb250ZXh0IHsKLSAgICBleHBsaWNpdCBBZENs
aWNrQXR0cmlidXRpb25TdHJpbmdSZXN1bHRDYWxsYmFja0NvbnRleHQoVGVzdENvbnRyb2xsZXIm
IGNvbnRyb2xsZXIpCitzdHJ1Y3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdHJpbmdSZXN1bHRD
YWxsYmFja0NvbnRleHQgeworICAgIGV4cGxpY2l0IFByaXZhdGVDbGlja01lYXN1cmVtZW50U3Ry
aW5nUmVzdWx0Q2FsbGJhY2tDb250ZXh0KFRlc3RDb250cm9sbGVyJiBjb250cm9sbGVyKQogICAg
ICAgICA6IHRlc3RDb250cm9sbGVyKGNvbnRyb2xsZXIpCiAgICAgewogICAgIH0KICAgICAKICAg
ICBUZXN0Q29udHJvbGxlciYgdGVzdENvbnRyb2xsZXI7CiAgICAgYm9vbCBkb25lIHsgZmFsc2Ug
fTsKLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gYWRDbGlja0F0dHJpYnV0aW9uUmVwcmVz
ZW50YXRpb247CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHByaXZhdGVDbGlja01lYXN1
cmVtZW50UmVwcmVzZW50YXRpb247CiB9OwogCi1zdGF0aWMgdm9pZCBhZENsaWNrQXR0cmlidXRp
b25TdHJpbmdSZXN1bHRDYWxsYmFjayhXS1N0cmluZ1JlZiBhZENsaWNrQXR0cmlidXRpb25SZXBy
ZXNlbnRhdGlvbiwgdm9pZCogdXNlckRhdGEpCitzdGF0aWMgdm9pZCBwcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFN0cmluZ1Jlc3VsdENhbGxiYWNrKFdLU3RyaW5nUmVmIHByaXZhdGVDbGlja01lYXN1
cmVtZW50UmVwcmVzZW50YXRpb24sIHZvaWQqIHVzZXJEYXRhKQogewotICAgIGF1dG8qIGNvbnRl
eHQgPSBzdGF0aWNfY2FzdDxBZENsaWNrQXR0cmlidXRpb25TdHJpbmdSZXN1bHRDYWxsYmFja0Nv
bnRleHQqPih1c2VyRGF0YSk7Ci0gICAgY29udGV4dC0+YWRDbGlja0F0dHJpYnV0aW9uUmVwcmVz
ZW50YXRpb24gPSBhZENsaWNrQXR0cmlidXRpb25SZXByZXNlbnRhdGlvbjsKKyAgICBhdXRvKiBj
b250ZXh0ID0gc3RhdGljX2Nhc3Q8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdHJpbmdSZXN1bHRD
YWxsYmFja0NvbnRleHQqPih1c2VyRGF0YSk7CisgICAgY29udGV4dC0+cHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRSZXByZXNlbnRhdGlvbiA9IHByaXZhdGVDbGlja01lYXN1cmVtZW50UmVwcmVzZW50
YXRpb247CiAgICAgY29udGV4dC0+ZG9uZSA9IHRydWU7CiAgICAgY29udGV4dC0+dGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOwogfQogCi1TdHJpbmcgVGVzdENvbnRyb2xsZXI6OmR1bXBBZENs
aWNrQXR0cmlidXRpb24oKQorU3RyaW5nIFRlc3RDb250cm9sbGVyOjpkdW1wUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQoKQogewotICAgIEFkQ2xpY2tBdHRyaWJ1dGlvblN0cmluZ1Jlc3VsdENhbGxi
YWNrQ29udGV4dCBjYWxsYmFja0NvbnRleHQoKnRoaXMpOwotICAgIFdLUGFnZUR1bXBBZENsaWNr
QXR0cmlidXRpb24obV9tYWluV2ViVmlldy0+cGFnZSgpLCBhZENsaWNrQXR0cmlidXRpb25TdHJp
bmdSZXN1bHRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4dCk7CisgICAgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRTdHJpbmdSZXN1bHRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlz
KTsKKyAgICBXS1BhZ2VEdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQobV9tYWluV2ViVmlldy0+
cGFnZSgpLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0cmluZ1Jlc3VsdENhbGxiYWNrLCAmY2Fs
bGJhY2tDb250ZXh0KTsKICAgICBydW5VbnRpbChjYWxsYmFja0NvbnRleHQuZG9uZSwgbm9UaW1l
b3V0KTsKLSAgICByZXR1cm4gdG9XVEZTdHJpbmcoY2FsbGJhY2tDb250ZXh0LmFkQ2xpY2tBdHRy
aWJ1dGlvblJlcHJlc2VudGF0aW9uLmdldCgpKTsKKyAgICByZXR1cm4gdG9XVEZTdHJpbmcoY2Fs
bGJhY2tDb250ZXh0LnByaXZhdGVDbGlja01lYXN1cmVtZW50UmVwcmVzZW50YXRpb24uZ2V0KCkp
OwogfQogCi1zdHJ1Y3QgQWRDbGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrQ29udGV4dCB7Ci0g
ICAgZXhwbGljaXQgQWRDbGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrQ29udGV4dChUZXN0Q29u
dHJvbGxlciYgY29udHJvbGxlcikKK3N0cnVjdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRD
YWxsYmFja0NvbnRleHQgeworICAgIGV4cGxpY2l0IFByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9p
ZENhbGxiYWNrQ29udGV4dChUZXN0Q29udHJvbGxlciYgY29udHJvbGxlcikKICAgICAgICAgOiB0
ZXN0Q29udHJvbGxlcihjb250cm9sbGVyKQogICAgIHsKICAgICB9CkBAIC0zNTQ1LDQ1ICszNTQ1
LDQ1IEBAIHN0cnVjdCBBZENsaWNrQXR0cmlidXRpb25Wb2lkQ2FsbGJhY2tDb250ZXh0IHsKICAg
ICBib29sIGRvbmUgeyBmYWxzZSB9OwogfTsKIAotc3RhdGljIHZvaWQgYWRDbGlja0F0dHJpYnV0
aW9uVm9pZENhbGxiYWNrKHZvaWQqIHVzZXJEYXRhKQorc3RhdGljIHZvaWQgcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2sodm9pZCogdXNlckRhdGEpCiB7Ci0gICAgYXV0byogY29u
dGV4dCA9IHN0YXRpY19jYXN0PEFkQ2xpY2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFja0NvbnRleHQq
Pih1c2VyRGF0YSk7CisgICAgYXV0byogY29udGV4dCA9IHN0YXRpY19jYXN0PFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Vm9pZENhbGxiYWNrQ29udGV4dCo+KHVzZXJEYXRhKTsKICAgICBjb250ZXh0
LT5kb25lID0gdHJ1ZTsKICAgICBjb250ZXh0LT50ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OmNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKCkKK3Zv
aWQgVGVzdENvbnRyb2xsZXI6OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKQogewotICAg
IEFkQ2xpY2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0
aGlzKTsKLSAgICBXS1BhZ2VDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbihtX21haW5XZWJWaWV3LT5w
YWdlKCksIGFkQ2xpY2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4dCk7
CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2tDb250ZXh0IGNhbGxiYWNr
Q29udGV4dCgqdGhpcyk7CisgICAgV0tQYWdlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCht
X21haW5XZWJWaWV3LT5wYWdlKCksIHByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNr
LCAmY2FsbGJhY2tDb250ZXh0KTsKICAgICBydW5VbnRpbChjYWxsYmFja0NvbnRleHQuZG9uZSwg
bm9UaW1lb3V0KTsKIH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6Y2xlYXJBZENsaWNrQXR0cmli
dXRpb25zVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCgpCit2b2lkIFRlc3RDb250cm9sbGVyOjpj
bGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoKQog
ewotICAgIEFkQ2xpY2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250
ZXh0KCp0aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhckFkQ2xpY2tBdHRyaWJ1dGlv
bnNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKHdlYnNpdGVEYXRhU3RvcmUoKSwgJmNhbGxiYWNr
Q29udGV4dCwgYWRDbGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrKTsKKyAgICBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudFZvaWRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsK
KyAgICBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Rocm91
Z2hXZWJzaXRlRGF0YVJlbW92YWwod2Vic2l0ZURhdGFTdG9yZSgpLCAmY2FsbGJhY2tDb250ZXh0
LCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY2Fs
bGJhY2tDb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6
OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUp
Cit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRl
VGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpCiB7Ci0gICAgQWRDbGlja0F0dHJpYnV0aW9uVm9p
ZENhbGxiYWNrQ29udGV4dCBjYWxsYmFja0NvbnRleHQoKnRoaXMpOwotICAgIFdLUGFnZVNldEFk
Q2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKG1fbWFpbldlYlZpZXctPnBh
Z2UoKSwgdmFsdWUsIGFkQ2xpY2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29u
dGV4dCk7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2tDb250ZXh0IGNh
bGxiYWNrQ29udGV4dCgqdGhpcyk7CisgICAgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhtX21haW5XZWJWaWV3LT5wYWdlKCksIHZhbHVlLCBw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4dCk7CiAg
ICAgcnVuVW50aWwoY2FsbGJhY2tDb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiB9CiAKLXZvaWQg
VGVzdENvbnRyb2xsZXI6OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0
aW5nKFdLVVJMUmVmIHVybCkKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoV0tVUkxSZWYgdXJsKQogewotICAgIEFk
Q2xpY2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlz
KTsKLSAgICBXS1BhZ2VTZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGlu
ZyhtX21haW5XZWJWaWV3LT5wYWdlKCksIHVybCwgYWRDbGlja0F0dHJpYnV0aW9uVm9pZENhbGxi
YWNrLCAmY2FsbGJhY2tDb250ZXh0KTsKKyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRD
YWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKKyAgICBXS1BhZ2VTZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKG1fbWFpbldlYlZpZXct
PnBhZ2UoKSwgdXJsLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFjaywgJmNhbGxi
YWNrQ29udGV4dCk7CiAgICAgcnVuVW50aWwoY2FsbGJhY2tDb250ZXh0LmRvbmUsIG5vVGltZW91
dCk7CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6Om1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNF
eHBpcmVkRm9yVGVzdGluZygpCit2b2lkIFRlc3RDb250cm9sbGVyOjptYXJrUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpCiB7Ci0gICAgQWRDbGlja0F0dHJpYnV0
aW9uVm9pZENhbGxiYWNrQ29udGV4dCBjYWxsYmFja0NvbnRleHQoKnRoaXMpOwotICAgIFdLUGFn
ZU1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZyhtX21haW5XZWJWaWV3
LT5wYWdlKCksIGFkQ2xpY2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4
dCk7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2tDb250ZXh0IGNhbGxi
YWNrQ29udGV4dCgqdGhpcyk7CisgICAgV0tQYWdlTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50
c0FzRXhwaXJlZEZvclRlc3RpbmcobV9tYWluV2ViVmlldy0+cGFnZSgpLCBwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4dCk7CiAgICAgcnVuVW50aWwo
Y2FsbGJhY2tDb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCAzM2I2NDk0YWM2MjQ0YjkyZmNiNzgwOWE1OGQ3MjAz
YzdjMTI1OGE4Li4wOTE1ZWQ4Y2ZiNWVjNGM1NzhlMjg4YTk5ODk1YTQ4YjA5ZWM0M2RhIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0zNDAsMTIgKzM0MCwxMiBA
QCBwdWJsaWM6CiAKICAgICBib29sIGlzRG9pbmdNZWRpYUNhcHR1cmUoKSBjb25zdDsKIAotICAg
IFN0cmluZyBkdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7Ci0gICAgdm9pZCBjbGVhckFkQ2xpY2tB
dHRyaWJ1dGlvbigpOwotICAgIHZvaWQgY2xlYXJBZENsaWNrQXR0cmlidXRpb25zVGhyb3VnaFdl
YnNpdGVEYXRhUmVtb3ZhbCgpOwotICAgIHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJp
ZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7Ci0gICAgdm9pZCBzZXRBZENsaWNrQXR0cmli
dXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyhXS1VSTFJlZik7Ci0gICAgdm9pZCBtYXJrQWRD
bGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICBTdHJpbmcgZHVtcFBy
aXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1
cmVtZW50KCk7CisgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Rocm91Z2hX
ZWJzaXRlRGF0YVJlbW92YWwoKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7CisgICAgdm9pZCBzZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdLVVJMUmVmKTsKKyAgICB2
b2lkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CiAK
ICAgICB2b2lkIGRpZFNldEFwcEJvdW5kRG9tYWlucygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDE0YzA0ZWQxZmE5Mzk0ZjU3MmY2NDlh
OTFiNDdlZmIyMDZlZjg1NGUuLmYyNDdmYjU2YTA1NjgzZDI4ZmUzOGY0NTk2ZDMzZjNhMDg0N2Vi
MWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0yNDMs
OCArMjQzLDggQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6ZHVtcFJlc3VsdHMoKQogICAgIGlmICht
X3Nob3VsZER1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKQogICAgICAgICBtX3RleHRPdXRwdXQu
YXBwZW5kKG1fc2F2ZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmlzTnVsbCgpID8gVGVzdENvbnRy
b2xsZXI6OnNpbmdsZXRvbigpLmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkgOiBtX3NhdmVk
UmVzb3VyY2VMb2FkU3RhdGlzdGljcyk7CiAKLSAgICBpZiAobV9zaG91bGREdW1wQWRDbGlja0F0
dHJpYnV0aW9uKQotICAgICAgICBtX3RleHRPdXRwdXQuYXBwZW5kKFRlc3RDb250cm9sbGVyOjpz
aW5nbGV0b24oKS5kdW1wQWRDbGlja0F0dHJpYnV0aW9uKCkpOworICAgIGlmIChtX3Nob3VsZER1
bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkKKyAgICAgICAgbV90ZXh0T3V0cHV0LmFwcGVuZChU
ZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KCkp
OwogICAgIAogICAgIGlmIChtX3RleHRPdXRwdXQubGVuZ3RoKCkgfHwgIW1fYXVkaW9SZXN1bHQp
CiAgICAgICAgIGR1bXAobV90ZXh0T3V0cHV0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CkBA
IC0xMzA0LDE4ICsxMzA0LDE4IEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRp
b246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKG1lc3NhZ2VOYW1lLCAiRHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbiIpKSB7Ci0gICAgICAgIGR1
bXBBZENsaWNrQXR0cmlidXRpb24oKTsKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhtZXNzYWdlTmFtZSwgIkR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCIpKSB7CisgICAg
ICAgIGR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiAgICAgCi0gICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVz
c2FnZU5hbWUsICJDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbiIpKSB7Ci0gICAgICAgIFRlc3RDb250
cm9sbGVyOjpzaW5nbGV0b24oKS5jbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbigpOworICAgIGlmIChX
S1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiQ2xlYXJQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCIpKSB7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5j
bGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KIAotICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1l
LCAiQ2xlYXJBZENsaWNrQXR0cmlidXRpb25zVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCIpKSB7
Ci0gICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jbGVhckFkQ2xpY2tBdHRyaWJ1
dGlvbnNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCk7CisgICAgaWYgKFdLU3RyaW5nSXNFcXVh
bFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJDbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50
c1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwiKSkgeworICAgICAgICBUZXN0Q29udHJvbGxlcjo6
c2luZ2xldG9uKCkuY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURh
dGFSZW1vdmFsKCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICAKQEAgLTEz
MjQsMTkgKzEzMjQsMTkgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6
ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgfQogCi0gICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
bWVzc2FnZU5hbWUsICJTZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGlu
ZyIpKSB7Ci0gICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRBZENsaWNrQXR0
cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sZWFuVmFsdWUobWVzc2FnZUJvZHkp
KTsKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmciKSkgeworICAg
ICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sZWFuVmFsdWUobWVzc2FnZUJvZHkpKTsKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAotICAgIGlmIChXS1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVy
c2lvblVSTEZvclRlc3RpbmciKSkgeworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKG1lc3NhZ2VOYW1lLCAiU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJM
Rm9yVGVzdGluZyIpKSB7CiAgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkg
PT0gV0tVUkxHZXRUeXBlSUQoKSk7Ci0gICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24o
KS5zZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyhzdGF0aWNfY2Fz
dDxXS1VSTFJlZj4obWVzc2FnZUJvZHkpKTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmds
ZXRvbigpLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rpbmco
c3RhdGljX2Nhc3Q8V0tVUkxSZWY+KG1lc3NhZ2VCb2R5KSk7CiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KIAotICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3Nh
Z2VOYW1lLCAiTWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nIikpIHsK
LSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1hcmtBZENsaWNrQXR0cmlidXRp
b25zQXNFeHBpcmVkRm9yVGVzdGluZygpOworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKG1lc3NhZ2VOYW1lLCAiTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJl
ZEZvclRlc3RpbmciKSkgeworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFy
a1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgfQogCkBAIC0xNTMzLDkgKzE1MzMsOSBAQCB2b2lkIFRlc3RJ
bnZvY2F0aW9uOjpkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpCiAgICAgbV9zaG91bGREdW1w
UmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHRydWU7CiB9CiAKLXZvaWQgVGVzdEludm9jYXRpb246
OmR1bXBBZENsaWNrQXR0cmlidXRpb24oKQordm9pZCBUZXN0SW52b2NhdGlvbjo6ZHVtcFByaXZh
dGVDbGlja01lYXN1cmVtZW50KCkKIHsKLSAgICBtX3Nob3VsZER1bXBBZENsaWNrQXR0cmlidXRp
b24gPSB0cnVlOworICAgIG1fc2hvdWxkRHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gdHJ1
ZTsKIH0KIAogdm9pZCBUZXN0SW52b2NhdGlvbjo6cGVyZm9ybUN1c3RvbU1lbnVBY3Rpb24oKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCmluZGV4IGI4Y2E2YjdiZGNmZDM0
NzQ1NTYyZDBjYzdiYjllZTc2NGEwZDBkMjEuLmQ5NGY1NGUxNzczMzkxZGZmZDkxMWMzZTU2ODNi
NTdjOTg5YzgzNzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKQEAg
LTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGNhbk9wZW5XaW5kb3dzKCkgY29u
c3QgeyByZXR1cm4gbV9jYW5PcGVuV2luZG93czsgfQogCi0gICAgdm9pZCBkdW1wQWRDbGlja0F0
dHJpYnV0aW9uKCk7CisgICAgdm9pZCBkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKICAg
ICB2b2lkIHBlcmZvcm1DdXN0b21NZW51QWN0aW9uKCk7CiAKICAgICB2b2lkIHdpbGxDcmVhdGVO
ZXdQYWdlKCk7CkBAIC0xNjIsNyArMTYyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcGl4ZWxS
ZXN1bHRJc1BlbmRpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGREdW1wUmVzb3VyY2VM
b2FkU3RhdGlzdGljcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Nhbk9wZW5XaW5kb3dzIHsgZmFs
c2UgfTsKLSAgICBib29sIG1fc2hvdWxkRHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbiB7IGZhbHNlIH07
CisgICAgYm9vbCBtX3Nob3VsZER1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB7IGZhbHNlIH07
CiAgICAgV2hhdFRvRHVtcCBtX3doYXRUb0R1bXAgeyBXaGF0VG9EdW1wOjpSZW5kZXJUcmVlIH07
CiAKICAgICBTdHJpbmdCdWlsZGVyIG1fdGV4dE91dHB1dDsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2NjZmYWU5ZDdhYTU1
ZTFmOTI4ZjViODUzY2Y2YjY5NGVhY2JiMzgzLi43NjJiNzNjNTk4ZTdmYmI1NzI5ZjkyNzc3MjBi
MjI3NjhjNmM3ZTdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIwMjAtMTEtMTEgIEpvaG4gV2ls
YW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBDaGFuZ2UgZnJvbSBh
ZC1jbGljay1hdHRyaWJ1dGlvbiB0byBwcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50IChpbiBhbGwg
Zm9ybXMsIGluY2x1ZGluZyAud2VsbC1rbm93biBVUkwpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg3MzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzcxMDk0Mjk2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIENoYW5nZSB0byB0aGUgb2ZmaWNpYWwgbmFtZSBvZiB0aGUgcHJvcG9zZWQgc3RhbmRhcmQg
UHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudAorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vcHJp
dmFjeWNnL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQuCisKKyAgICAgICAgVGhpcyBpbmNsdWRl
cyBhIGNoYW5nZSBvZiB0aGUgcmVwb3J0aW5nIFVSTCBmcm9tIAorICAgICAgICAiLy53ZWxsLWtu
b3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLyIgdG8KKyAgICAgICAgIi8ud2VsbC1rbm93bi9wcml2
YXRlLWNsaWNrLW1lYXN1cmVtZW50LyIuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZl
cnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0LWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9leHBpcmVkLWF0
dHJpYnV0aW9ucy1yZW1vdmVkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb25P
bklQQWRkcmVzcy5waHA6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9hZENsaWNrQXR0
cmlidXRpb24vc3RvcmUtYWQtY2xpY2stYXR0cmlidXRpb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWRpc2FibGVk
LWluLWVwaGVtZXJhbC1zZXNzaW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNp
b25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xp
Y2stbWVhc3VyZW1lbnQuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
Y29udGVudGV4dGVuc2lvbnMvYmxvY2stYWQtY2xpY2stYXR0cmlidXRpb24uaHRtbC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVh
c3VyZW1lbnQuaHRtbC5qc29uOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9j
b250ZW50ZXh0ZW5zaW9ucy9ibG9jay1hZC1jbGljay1hdHRyaWJ1dGlvbi5odG1sLmpzb24uCisg
ICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hbmNob3ItdGFnLWF0
dHJpYnV0ZXMtcmVmbGVjdC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtcmVmbGVj
dC1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtcmVmbGVjdC5odG1sOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5jaG9yLXRhZy1hdHRyaWJ1
dGVzLXJlZmxlY3QuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L2FuY2hvci10YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2FuY2hv
ci10YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2FuY2hvci10YWctYXR0cmlidXRlcy12YWxp
ZGF0aW9uLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tB
dHRyaWJ1dGlvbi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtdmFsaWRhdGlvbi5odG1sLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVy
c2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0
aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0Lmh0bWw6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRy
aWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC5odG1s
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRp
b24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3ctZXhwZWN0
ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmli
dXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5l
dy13aW5kb3ctZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0
LWluLW5ldy13aW5kb3cuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
YWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1y
ZWRpcmVjdC1pbi1uZXctd2luZG93Lmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVk
aXJlY3Qtd2l0aC1wcmlvcml0eS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRo
cm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS1leHBlY3RlZC50eHQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJz
aW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS5odG1sOiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24t
Y29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHkuaHRtbC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNv
bnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5LWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0
aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0
LXByaW9yaXR5LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVj
dC13aXRob3V0LXByaW9yaXR5Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1h
Z2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlvcml0eS5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY2xlYXItdGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3Zh
bC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9jbGVhci10aHJvdWdoLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NsZWFy
LXRocm91Z2gtd2Vic2l0ZS1kYXRhLXJlbW92YWwuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NsZWFyLXRocm91Z2gtd2Vic2l0ZS1k
YXRhLXJlbW92YWwuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQu
dHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRp
b24vY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1leHBlY3RlZC50eHQu
CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9u
LWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252ZXJzaW9uLWRpc2FibGVkLWlu
LWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBp
cmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVk
Lmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNv
dXJjZXMvY29udmVyc2lvbkZpbGVQYXRoLnBocDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252ZXJzaW9uRmlsZVBhdGgu
cGhwLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3Vy
Y2VzL2NvbnZlcnNpb25SZXBvcnQucGhwOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2Nv
bnZlcnRBbmRQb3N0TWVzc2FnZUJhY2suaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252ZXJ0QW5kUG9zdE1lc3Nh
Z2VCYWNrLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhwOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2dldENvbnZlcnNpb25E
YXRhLnBocC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jl
c291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZl
cnNpb24ucGhwLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
cmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uT25JUEFkZHJlc3MucGhwOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy91dGls
LmpzOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRp
b24vcmVzb3VyY2VzL3V0aWwuanMuCisgICAgICAgIChwcmVwYXJlVGVzdCk6CisgICAgICAgICh0
ZWFyRG93bkFuZEZpbmlzaCk6CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5
LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlj
a0F0dHJpYnV0aW9uL3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1oaWdoZXItcHJp
b3JpdHktZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0
eS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmli
dXRpb24vc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5o
dG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25k
LWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Nl
Y29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50
eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQt
YXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHkuaHRtbDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1hdHRy
aWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS5odG1sLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1o
aWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXIt
cHJpb3JpdHktZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Nl
Y29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwuCisgICAgICAgICogaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxv
d2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1jb252ZXJzaW9uLXdpdGgtbG93ZXItcHJp
b3JpdHktZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS5odG1sOiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25k
LWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS5odG1sLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJl
cXVlc3QtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
ZENsaWNrQXR0cmlidXRpb24vc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QtZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
c2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlbmQtYXR0cmlidXRpb24t
Y29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9zdG9yZS1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWRpc2FibGVk
LWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zdG9yZS1hZC1jbGljay1hdHRy
aWJ1dGlvbi5odG1sLgorICAgICAgICAqIGluc3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1B
ZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVi
dWdNb2RlRW5hYmxlZC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Bh
Z2Uvb3ZlcnJpZGVTZXR0aW5nLUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQuaHRt
bC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAg
ICogcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjAtMTEtMTEgIFJvYiBCdWlz
ICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXN5bmMgd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3Mtc2l6aW5nL2FzcGVjdC1yYXRpbyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCBiMDdlZTQ0Y2UzZDU3ZjY1NGY5M2RiZjk3NTg5MWM4M2M1Mjc2OTU4Li5kZWNlYTMx
ZjQ5MTcxOTQ1NmZiMDBhNTk5OGRlZmE3MjlhOWQzZmFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTExMDEsOCArMTEwMSw4IEBAIGluc3BlY3Rvci9ydW50aW1lL2NhbGxGdW5jdGlvbk9uLWVtdWxh
dGVVc2VyR2VzdHVyZS11c2VySXNJbnRlcmFjdGluZy5odG1sIFsgU2tpCiAjIFRhcmdldCBkb21h
aW4gaXMgb25seSBwcmVzZW50IGluIFdLMi4KIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3RhcmdldCBb
IFNraXAgXQogCi0jIElUUCBhbmQgQWRDbGlja0F0dHJpYnV0aW9uIGFyZSBXSzIgb25seS4KLWlu
c3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1BZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVF
bmFibGVkLmh0bWwgWyBTa2lwIF0KKyMgSVRQIGFuZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBh
cmUgV0syIG9ubHkuCitpbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkLmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9wYWdl
L292ZXJyaWRlU2V0dGluZy1JVFBEZWJ1Z01vZGVFbmFibGVkLmh0bWwgWyBTa2lwIF0KIAogIyBU
aGVzZSBjb25mb3JtYW5jZSB0ZXN0cyBhcmUgbm8gbG9uZ2VyIGluIHN5bmMgd2l0aCB0aGUgbGF0
ZXN0IHNwZWNpZmljYXRpb24KQEAgLTI3NzIsNyArMjc3Miw3IEBAIHdlYmtpdC5vcmcvYi8xNzkw
NjkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250CiB3ZWJraXQub3JnL2IvMTU3MDY4IFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL25vc25pZmYvaW1wb3J0c2NyaXB0cy5odG1sIFsgUGFzcyBDcmFz
aCBdCiB3ZWJraXQub3JnL2IvMTU3MDY4IFsgUmVsZWFzZSBdIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvbm9zbmlmZi9pbXBvcnRzY3JpcHRzLmh0bWwgWyBQYXNzIEZhaWx1
cmUgXQogCi1odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbiBbIFNraXAgXQoraHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBbIFNraXAgXQogCiAjIEFwcGxpY2F0aW9uIE1hbmlm
ZXN0IHRlc3RzCiB3ZWJraXQub3JnL2IvMTUzMTUyIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L21hbmlmZXN0LXNyYy1hbGxvd2VkLmh0bWwgWyBTa2lwIF0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2FuY2hvci10
YWctYXR0cmlidXRlcy1yZWZsZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYWRDbGlja0F0dHJpYnV0aW9uL2FuY2hvci10YWctYXR0cmlidXRlcy1yZWZsZWN0LWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWM3YTk1ZWFlNGU4MGNlY2M1
MzI2MGYwYWY3NDVhMTFiNjg1YmFiZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9h
bmNob3ItdGFnLWF0dHJpYnV0ZXMtcmVmbGVjdC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwxMSArMCwwIEBACi1UZXN0IGZvciB0aGUgbmV3IGFkIGNsaWNrIGF0dHJpYnV0aW9uIGF0
dHJpYnV0ZXMgb24gYW5jaG9yIHRhZ3MuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci1QQVNTIGFuY2hvclRhZy5hZGNhbXBhaWduaWQgaXMgIjQwIgotUEFTUyBhbmNob3JUYWcuYWRk
ZXN0aW5hdGlvbiBpcyAiZGVzdGluYXRpb24uZXhhbXBsZSIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtcmVmbGVj
dC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5jaG9y
LXRhZy1hdHRyaWJ1dGVzLXJlZmxlY3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOGQ5OTU2ZmRlZWM3OGVkNzBiMmZiNDgyMDAxZmRkZDViNTM5ODI5NS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FkQ2xpY2tBdHRyaWJ1dGlvbi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtcmVmbGVjdC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgQWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZD10cnVlIF0gLS0+Ci08aHRt
bCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPGEgaWQ9InRlc3RUYWciIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIg
YWRjYW1wYWlnbmlkPSI0MCIgYWRkZXN0aW5hdGlvbj0iZGVzdGluYXRpb24uZXhhbXBsZSI+PC9h
PgotPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgdGhlIG5ldyBhZCBjbGljayBh
dHRyaWJ1dGlvbiBhdHRyaWJ1dGVzIG9uIGFuY2hvciB0YWdzLiIpOwotCi0gICAgY29uc3QgYW5j
aG9yVGFnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RUYWciKTsKLSAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImFuY2hvclRhZy5hZGNhbXBhaWduaWQiLCAiNDAiKTsKLSAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImFuY2hvclRhZy5hZGRlc3RpbmF0aW9uIiwgImRlc3RpbmF0aW9u
LmV4YW1wbGUiKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5jaG9yLXRhZy1hdHRyaWJ1
dGVzLXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENs
aWNrQXR0cmlidXRpb24vYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlkYXRpb24tZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYjU0OTlmNGFkNDE0N2ExZThiYTAy
Zjk0OTZhOTEwN2MyYTkwMTlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2FuY2hv
ci10YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDIwICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogYWRjYW1wYWlnbmlkIG11c3QgaGF2ZSBh
IG5vbi1uZWdhdGl2ZSB2YWx1ZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNjMgZm9yIEFkIENsaWNr
IEF0dHJpYnV0aW9uLgotQ09OU09MRSBNRVNTQUdFOiBhZGNhbXBhaWduaWQgbXVzdCBoYXZlIGEg
bm9uLW5lZ2F0aXZlIHZhbHVlIGxlc3MgdGhhbiBvciBlcXVhbCB0byA2MyBmb3IgQWQgQ2xpY2sg
QXR0cmlidXRpb24uCi1DT05TT0xFIE1FU1NBR0U6IGFkY2FtcGFpZ25pZCBjYW4gbm90IGJlIGNv
bnZlcnRlZCB0byBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBB
ZCBDbGljayBBdHRyaWJ1dGlvbi4KLUNPTlNPTEUgTUVTU0FHRTogYWRjYW1wYWlnbmlkIGNhbiBu
b3QgYmUgY29udmVydGVkIHRvIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgd2hpY2ggaXMgcmVxdWly
ZWQgZm9yIEFkIENsaWNrIEF0dHJpYnV0aW9uLgotQ09OU09MRSBNRVNTQUdFOiBhZGNhbXBhaWdu
aWQgY2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSBub24tbmVnYXRpdmUgaW50ZWdlciB3aGljaCBp
cyByZXF1aXJlZCBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24uCi1DT05TT0xFIE1FU1NBR0U6IGFk
ZGVzdGluYXRpb24gY291bGQgbm90IGJlIGNvbnZlcnRlZCB0byBhIHZhbGlkIEhUVFAtZmFtaWx5
IFVSTC4KLUNPTlNPTEUgTUVTU0FHRTogYWRkZXN0aW5hdGlvbiBjb3VsZCBub3QgYmUgY29udmVy
dGVkIHRvIGEgdmFsaWQgSFRUUC1mYW1pbHkgVVJMLgotQ09OU09MRSBNRVNTQUdFOiBhZGRlc3Rp
bmF0aW9uIGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSB2YWxpZCBIVFRQLWZhbWlseSBVUkwu
Ci1DT05TT0xFIE1FU1NBR0U6IEJvdGggYWRjYW1wYWlnbmlkIGFuZCBhZGRlc3RpbmF0aW9uIG5l
ZWQgdG8gYmUgc2V0IGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbiB0byB3b3JrLgotQ09OU09MRSBN
RVNTQUdFOiBCb3RoIGFkY2FtcGFpZ25pZCBhbmQgYWRkZXN0aW5hdGlvbiBuZWVkIHRvIGJlIHNl
dCBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24gdG8gd29yay4KLUNPTlNPTEUgTUVTU0FHRTogYWRk
ZXN0aW5hdGlvbiBjYW4gbm90IGJlIHRoZSBzYW1lIHNpdGUgYXMgdGhlIGN1cnJlbnQgd2Vic2l0
ZS4KLVRlc3QgZm9yIHZhbGlkaXR5IG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uIGF0dHJpYnV0ZXMg
b24gYW5jaG9yIHRhZ3MuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5jaG9yLXRhZy1hdHRy
aWJ1dGVzLXZhbGlkYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0
dHJpYnV0aW9uL2FuY2hvci10YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlMmZkNjNlNDM1ODc3MzM1ZWRiYTc5ZmJhNjUwNDhlOWIw
OGVkOTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5jaG9yLXRhZy1hdHRyaWJ1
dGVzLXZhbGlkYXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9
dHJ1ZSBdIC0tPgotPGh0bWwgbGFuZz0iZW4iPgotPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0i
VVRGLTgiPgotICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Ut
d2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+Ci0gICAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHN0
eWxlPgotICAgICAgICAud2lkZS1saW5rIHsKLSAgICAgICAgICAgIHdpZHRoOiAxNTBweDsKLSAg
ICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKLSAgICAgICAgfQotICAgIDwvc3R5bGU+
Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1bkFsbFRlc3RzKCkiPgotPGRpdiBpZD0iZGVzY3Jp
cHRpb24iPjwvZGl2PgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj48YnI+Ci08ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIHZhbGlkaXR5
IG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uIGF0dHJpYnV0ZXMgb24gYW5jaG9yIHRhZ3MuIik7Ci0g
ICAganNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLSAgICBmdW5jdGlvbiBjcmVhdGVBZENsaWNrQXR0
cmlidXRpb25BbmNob3JFbGVtZW50KGVsZW1lbnRJRCwgYWRDYW1wYWlnbklELCBhZERlc3RpbmF0
aW9uKSB7Ci0gICAgICAgIGxldCBhbmNob3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiYSIpOwotICAgICAgICBhbmNob3JFbGVtZW50LmlkID0gZWxlbWVudElEOwotICAgICAgICBh
bmNob3JFbGVtZW50LmNsYXNzTGlzdC5hZGQoIndpZGUtbGluayIpOwotICAgICAgICBhbmNob3JF
bGVtZW50LmFkY2FtcGFpZ25pZCA9IGFkQ2FtcGFpZ25JRDsKLSAgICAgICAgYW5jaG9yRWxlbWVu
dC5hZGRlc3RpbmF0aW9uID0gYWREZXN0aW5hdGlvbjsKLSAgICAgICAgYW5jaG9yRWxlbWVudC5o
cmVmID0gIiMiOwotICAgICAgICBhbmNob3JFbGVtZW50LmlubmVyVGV4dCA9ICJMaW5rIiArIGN1
cnJlbnRUZXN0OwotICAgICAgICByZXR1cm4gYW5jaG9yRWxlbWVudDsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElELCBjYWxsYmFjaykgewotICAgICAgICBV
SUhlbHBlci5hY3RpdmF0ZUVsZW1lbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElE
KSkudGhlbigKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBjYWxs
YmFjaygpOwotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOwotICAgICAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgfQotICAgICAgICApOwotICAgIH0KLQot
ICAgIGxldCBjdXJyZW50VGVzdCA9IDA7Ci0gICAgZnVuY3Rpb24gcnVuT25lVGVzdChhZENhbXBh
aWduSUQsIGFkRGVzdGluYXRpb24sIGNhbGxiYWNrKSB7Ci0gICAgICAgIGNvbnN0IGN1cnJlbnRF
bGVtZW50SUQgPSAidGVzdCIgKyBjdXJyZW50VGVzdCsrOwotICAgICAgICBjb25zdCBhbmNob3JF
bGVtZW50ID0gY3JlYXRlQWRDbGlja0F0dHJpYnV0aW9uQW5jaG9yRWxlbWVudChjdXJyZW50RWxl
bWVudElELCBhZENhbXBhaWduSUQsIGFkRGVzdGluYXRpb24pOwotICAgICAgICBvdXRwdXQuYXBw
ZW5kQ2hpbGQoYW5jaG9yRWxlbWVudCk7Ci0gICAgICAgIGFjdGl2YXRlRWxlbWVudChjdXJyZW50
RWxlbWVudElELCBjYWxsYmFjayk7Ci0gICAgfQotCi0gICAgY29uc3QgdmFsaWRBZENhbXBhaWdu
SUQgPSAiMDMiOwotICAgIGNvbnN0IHZhbGlkQWREZXN0aW5hdGlvbiA9ICJodHRwOi8vd2Via2l0
Lm9yZyI7Ci0gICAgY29uc3Qgc2FtZVNpdGUgPSBkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW47Ci0g
ICAgY29uc3QgdGVzdENhc2VzID0gWwotICAgICAgICBbIHZhbGlkQWRDYW1wYWlnbklELCB2YWxp
ZEFkRGVzdGluYXRpb24gXSwKLSAgICAgICAgWyAiMTAwIiwgdmFsaWRBZERlc3RpbmF0aW9uIF0s
ICAgICAgICAgICAvLyBUb28gbWFueSBjaGFyYWN0ZXJzLgotICAgICAgICBbICIxIiwgdmFsaWRB
ZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAgIC8vIFRvbyBmZXcgY2hhcmFjdGVycy4KLSAgICAg
ICAgWyAiOTgiLCB2YWxpZEFkRGVzdGluYXRpb24gXSwgICAgICAgICAgICAvLyBUb28gaGlnaCB2
YWx1ZS4KLSAgICAgICAgWyAiLTEiLCB2YWxpZEFkRGVzdGluYXRpb24gXSwgICAgICAgICAgICAv
LyBOZWdhdGl2ZSB2YWx1ZS4KLSAgICAgICAgWyAiYWIiLCB2YWxpZEFkRGVzdGluYXRpb24gXSwg
ICAgICAgICAgICAvLyBOb24tZGlnaXRzLgotICAgICAgICBbICLvo78xIiwgdmFsaWRBZERlc3Rp
bmF0aW9uIF0sICAgICAgICAgICAgLy8gTm9uLUFTQ0lJLgotICAgICAgICBbICIgMSIsIHZhbGlk
QWREZXN0aW5hdGlvbiBdLCAgICAgICAgICAgIC8vIExlYWRpbmcgc3BhY2UuCi0gICAgICAgIFsg
IjEgIiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAgLy8gVHJhaWxpbmcgc3BhY2Uu
Ci0gICAgICAgIFsgdmFsaWRBZENhbXBhaWduSUQsICJ3ZWJraXQub3JnIiBdLCAgICAgLy8gTWlz
c2luZyBwcm90b2NvbC4KLSAgICAgICAgWyB2YWxpZEFkQ2FtcGFpZ25JRCwgIjovL3dlYmtpdC5v
cmciIF0sICAvLyBQYXJ0aWFsbHkgbWlzc2luZyBwcm90b2NvbC4KLSAgICAgICAgWyB2YWxpZEFk
Q2FtcGFpZ25JRCwgIu+jv++jv++jvyIgXSwgICAgICAgICAgIC8vIE5vbi1BU0NJSSBjaGFyYWN0
ZXJzIGFzIGRlc3RpbmF0aW9uLgotICAgICAgICBbICIiLCB2YWxpZEFkRGVzdGluYXRpb24gXSwg
ICAgICAgICAgICAgIC8vIEVtcHR5IGNhbXBhaWduIElELgotICAgICAgICBbIHZhbGlkQWRDYW1w
YWlnbklELCAiIiBdLCAgICAgICAgICAgICAgIC8vIEVtcHR5IGRlc3RpbmF0aW9uLgotICAgICAg
ICBbIHZhbGlkQWRDYW1wYWlnbklELCBzYW1lU2l0ZSBdICAgICAgICAgIC8vIFNhbWUtc2l0ZSBk
ZXN0aW5hdGlvbi4KLSAgICBdOwotCi0gICAgZnVuY3Rpb24gcnVuQWxsVGVzdHMoKSB7Ci0gICAg
ICAgIGlmIChjdXJyZW50VGVzdCA8IHRlc3RDYXNlcy5sZW5ndGgpCi0gICAgICAgICAgICBydW5P
bmVUZXN0KHRlc3RDYXNlc1tjdXJyZW50VGVzdF1bMF0sIHRlc3RDYXNlc1tjdXJyZW50VGVzdF1b
MV0sIHJ1bkFsbFRlc3RzKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5i
b2R5LnJlbW92ZUNoaWxkKG91dHB1dCk7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAg
ICAgICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29u
dmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29u
dmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZWE1ZTYxZmM4NWNkZjU0MmY5MTc1MzNmYWJm
YmI4MzVkNjhlNjU4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9u
LWNvbnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0LWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotVGVzdHMgdGhhdCB0cmlnZ2VyaW5nIG9m
IGFkIGNsaWNrIGF0dHJpYnV0aW9uIGNvbnZlcnNpb25zIHRocm91Z2ggY3Jvc3Mtc2l0ZSByZWRp
cmVjdHMgZG8gbm90IHdvcmsuCi0KLQotVW5jb252ZXJ0ZWQgQWQgQ2xpY2sgQXR0cmlidXRpb25z
OgotV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uIDEKLVNvdXJjZTogMTI3LjAuMC4xCi1EZXN0
aW5hdGlvbjogbG9jYWxob3N0Ci1DYW1wYWlnbiBJRDogMwotTm8gY29udmVyc2lvbiBkYXRhLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0
cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9u
LWNvbnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0Lmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY1NzI2ZTkwOWZmYzkwYjIxMDlmZmJhMDRiNDA2ZDA4
NTMxNjhhOWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29u
dmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDUyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBBZENsaWNrQXR0cmlidXRpb25FbmFibGVk
PXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9
IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl
LXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgotICAgIDxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25s
b2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0
cyB0aGF0IHRyaWdnZXJpbmcgb2YgYWQgY2xpY2sgYXR0cmlidXRpb24gY29udmVyc2lvbnMgdGhy
b3VnaCBjcm9zcy1zaXRlIHJlZGlyZWN0cyBkbyBub3Qgd29yay48L2Rpdj4KLTxhIGlkPSJ0YXJn
ZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL2F0
dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0Lmh0
bWw/c3RlcFR3byIgYWRjYW1wYWlnbmlkPSIzIiBhZGRlc3RpbmF0aW9uPSJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiPkxpbms8L2E+PGJyPgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTxzY3JpcHQ+
Ci0gICAgcHJlcGFyZVRlc3QoKTsKLQotICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVt
ZW50SUQpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChl
bGVtZW50SUQpOwotICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVs
ZW1lbnQub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zm
c2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwotICAgICAgICBVSUhlbHBlci5hY3Rp
dmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7
Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQ
cm9taXNlIHJlamVjdGVkLiI7Ci0gICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0
KCkgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgIGlmICh3
aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7Ci0gICAgICAgICAgICAgICAg
bGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwotICAgICAg
ICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My9hZENs
aWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uT25JUEFkZHJlc3Mu
cGhwP2NvbnZlcnNpb25EYXRhPTEyIjsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQg
PSAicGl4ZWwiOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmli
dXRpb24oKTsKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKLSAgICAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4
ZWwiKSk7Ci0gICAgICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAg
ICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlt
YWdlRWxlbWVudCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGFjdGl2
YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4
dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKLSAgICAgICAgfQotICAgIH0KLTwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENs
aWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGly
ZWN0LWluLW5ldy13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
ZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJl
ZGlyZWN0LWluLW5ldy13aW5kb3ctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAzODQzNmIwOTY5MzU2YzU2M2I4NWNiYWFhOWFkNTYyYTViM2IzNmY2Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1p
bWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDEyICswLDAgQEAKLVRlc3RzIHRyaWdnZXJpbmcgb2YgYWQgY2xpY2sgYXR0cmlidXRpb24g
Y29udmVyc2lvbnMgaW4gYSBuZXcgd2luZG93LgotCi0KLUNvbnZlcnRlZCBBZCBDbGljayBBdHRy
aWJ1dGlvbnM6Ci1XZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24gMQotU291cmNlOiAxMjcuMC4w
LjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWduIElEOiAzCi1Db252ZXJzaW9uIGRh
dGE6IDEyCi1Db252ZXJzaW9uIHByaW9yaXR5OiAzCi1Db252ZXJzaW9uIGVhcmxpZXN0IHRpbWUg
dG8gc2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCi1Db252ZXJzaW9uIHJlcXVlc3Qgc2VudDogZmFs
c2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9u
L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2lu
ZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRy
aWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYWQyYjQzNDdiZDZmZjllNmE2OGRk
ZDliMWQxOWU1NjViY2NhZTI2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJp
YnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93Lmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgQWRDbGlja0F0dHJp
YnV0aW9uRW5hYmxlZD10cnVlIF0gLS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8
bWV0YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9
IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4K
LSAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+VGVzdHMgdHJpZ2dlcmluZyBvZiBhZCBjbGljayBhdHRyaWJ1dGlvbiBjb252ZXJz
aW9ucyBpbiBhIG5ldyB3aW5kb3cuPC9kaXY+Ci08YSB0YXJnZXQ9Il9ibGFuayIgcmVsPSJvcGVu
ZXIiIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvYWRDbGlja0F0
dHJpYnV0aW9uL3Jlc291cmNlcy9jb252ZXJ0QW5kUG9zdE1lc3NhZ2VCYWNrLmh0bWwiIGFkY2Ft
cGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9h
Pjxicj4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHByZXBhcmVUZXN0
KCk7Ci0KLSAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7Ci0gICAgICAg
IHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKLSAgICAg
ICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRo
IC8gMjsKLSAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQu
b2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBj
ZW50ZXJZKS50aGVuKAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4i
OwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsK
LSAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsK
LSAgICAgICAgICAgIGlmIChldmVudC5kYXRhID09PSAiRG9uZSIpIHsKLSAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsKLSAgICAgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRM
aW5rIikpOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIHVua25vd24g
bWVzc2FnZTogIiArIGV2ZW50LmRhdGEpOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmlu
aXNoKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0ZXN0
RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiAr
IGV2ZW50Lm9yaWdpbik7Ci0gICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAg
ICB9Ci0gICAgfQotCi0gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNl
aXZlTWVzc2FnZSwgZmFsc2UpOwotCi0gICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLnNldENhbk9w
ZW5XaW5kb3dzKCk7Ci0gICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsK
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJv
dXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7Ci0gICAgICAgICAgICB0
ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRy
aWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0
aC1wcmlvcml0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tB
dHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qt
d2l0aC1wcmlvcml0eS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDU5N2Y2NWNkMThkNTk0MDgxOTc3MDhmNzBlYTQyZTQwM2VkMGFkZDMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
ZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJl
ZGlyZWN0LXdpdGgtcHJpb3JpdHktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIg
KzAsMCBAQAotVGVzdHMgdHJpZ2dlcmluZyBvZiBhZCBjbGljayBhdHRyaWJ1dGlvbiBjb252ZXJz
aW9ucyB3aXRoIHByaW9yaXR5LgotCi0KLUNvbnZlcnRlZCBBZCBDbGljayBBdHRyaWJ1dGlvbnM6
Ci1XZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24gMQotU291cmNlOiAxMjcuMC4wLjEKLURlc3Rp
bmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWduIElEOiAzCi1Db252ZXJzaW9uIGRhdGE6IDEyCi1D
b252ZXJzaW9uIHByaW9yaXR5OiAzCi1Db252ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8gc2VuZDog
V2l0aGluIDI0LTQ4IGhvdXJzCi1Db252ZXJzaW9uIHJlcXVlc3Qgc2VudDogZmFsc2UKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0
aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1j
b252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NTZiNDI1MzYwYTNjMjVmOWIyZDJkNWI1ZDkxNDM0
NDllZTg0ZjMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNv
bnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5Lmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgQWRDbGlja0F0dHJpYnV0aW9uRW5h
YmxlZD10cnVlIF0gLS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFy
c2V0PSJVVEYtOCI+Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRl
dmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+
VGVzdHMgdHJpZ2dlcmluZyBvZiBhZCBjbGljayBhdHRyaWJ1dGlvbiBjb252ZXJzaW9ucyB3aXRo
IHByaW9yaXR5LjwvZGl2PgotPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdo
LWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHkuaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9
IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Ci08
ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBwcmVwYXJlVGVzdCgpOwotCi0g
ICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxl
bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBj
ZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0g
ICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhl
aWdodCAvIDI7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSku
dGhlbigKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAg
ICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICAp
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09
ICI/c3RlcFR3byIpIHsKLSAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNy
YyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMv
cmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PTAzIjsK
LSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOwotICAgICAgICAgICAg
ICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsKLSAgICAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0TGluayIpKTsKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7Ci0gICAgICAgICAgICAgICAg
ICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7Ci0gICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIp
OwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIu
IjsKLSAgICAgICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRp
b24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJpb3JpdHktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0
cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJpb3Jp
dHktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZTBhMjgwZmFk
MTg2YTc2ZmFhOTQyZjYyZjliMTA0NThjOGQxMmMxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJp
YnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRo
b3V0LXByaW9yaXR5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAK
LVRlc3RzIHRyaWdnZXJpbmcgb2YgYWQgY2xpY2sgYXR0cmlidXRpb24gY29udmVyc2lvbnMgd2l0
aG91dCBwcmlvcml0eS4KLQotCi1Db252ZXJ0ZWQgQWQgQ2xpY2sgQXR0cmlidXRpb25zOgotV2Vi
Q29yZTo6QWRDbGlja0F0dHJpYnV0aW9uIDEKLVNvdXJjZTogMTI3LjAuMC4xCi1EZXN0aW5hdGlv
bjogbG9jYWxob3N0Ci1DYW1wYWlnbiBJRDogMwotQ29udmVyc2lvbiBkYXRhOiAxMgotQ29udmVy
c2lvbiBwcmlvcml0eTogMAotQ29udmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6IFdpdGhp
biAyNC00OCBob3VycwotQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1j
b252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlvcml0eS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29u
dmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJpb3JpdHkuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGEwYjJkODk2ZGM0MTAwMzI1ODJlM2YxNzNjNGI1
MWNkYzZkY2QxMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1j
b252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlvcml0eS5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Ci08aHRtbCBsYW5n
PSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAgPG1ldGEgbmFt
ZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0x
LCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGls
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0
LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdHJpZ2dlcmluZyBvZiBhZCBjbGlj
ayBhdHRyaWJ1dGlvbiBjb252ZXJzaW9ucyB3aXRob3V0IHByaW9yaXR5LjwvZGl2PgotPGEgaWQ9
InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9hZENsaWNrQXR0cmlidXRp
b24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQt
cHJpb3JpdHkuaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2
PgotPHNjcmlwdD4KLSAgICBwcmVwYXJlVGVzdCgpOwotCi0gICAgZnVuY3Rpb24gYWN0aXZhdGVF
bGVtZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZz
ZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciBjZW50ZXJZID0g
ZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAgIFVJ
SGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKLSAgICAgICAgICAgIGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4
dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFu
ZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICApOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAg
ICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKLSAgICAg
ICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1n
Iik7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAu
MTo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24u
cGhwP2NvbnZlcnNpb25EYXRhPTEyIjsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQg
PSAicGl4ZWwiOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFkQ2xpY2tBdHRyaWJ1
dGlvbigpOwotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOwotICAgICAgICAgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhl
bCIpKTsKLSAgICAgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAg
ICAgICAgICB9OwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1h
Z2VFbGVtZW50KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYWN0aXZh
dGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0
ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOwotICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9jbGVhci10aHJvdWdoLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NsZWFyLXRo
cm91Z2gtd2Vic2l0ZS1kYXRhLXJlbW92YWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlMmVlNmE5M2NhZDBiNWU1Y2E4NTFlNmJiMmYyMWI5YWY5YTk2YzViLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NsZWFyLXRocm91Z2gtd2Vic2l0ZS1kYXRh
LXJlbW92YWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1UZXN0
cyB0aGF0IGJvdGggdW5jb252ZXJ0ZWQgYW5kIGNvbnZlcnRlZCBhdHRyaWJ1dGlvbnMgYXJlIGNs
ZWFyZWQgb24gd2Vic2l0ZSBkYXRhIHJlbW92YWwuCi0KLQotCi1ObyBzdG9yZWQgQWQgQ2xpY2sg
QXR0cmlidXRpb24gZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRD
bGlja0F0dHJpYnV0aW9uL2NsZWFyLXRocm91Z2gtd2Vic2l0ZS1kYXRhLXJlbW92YWwuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NsZWFyLXRocm91Z2gt
d2Vic2l0ZS1kYXRhLXJlbW92YWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NmQ2ZWNiNTAyZmJhYTJkNjJhNWQ3YmUwZGViNTE2YmQ2NzI4ODgzYi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9jbGVhci10aHJvdWdoLXdlYnNpdGUtZGF0YS1yZW1vdmFsLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw4MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgQWRDbGlja0F0dHJpYnV0
aW9uRW5hYmxlZD10cnVlIF0gLS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0
YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9Indp
ZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+VGVzdHMgdGhhdCBib3RoIHVuY29udmVydGVkIGFuZCBjb252ZXJ0ZWQgYXR0cmlidXRp
b25zIGFyZSBjbGVhcmVkIG9uIHdlYnNpdGUgZGF0YSByZW1vdmFsLjwvZGl2PgotPGEgaWQ9InRh
cmdldExpbmsiPkxpbms8L2E+PGJyPgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTxzY3JpcHQ+
Ci0gICAgY29uc3QgcGF0aCA9ICIvYWRDbGlja0F0dHJpYnV0aW9uL2NsZWFyLXRocm91Z2gtd2Vi
c2l0ZS1kYXRhLXJlbW92YWwuaHRtbCI7Ci0gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFsKLSAg
ICAgICAgewotICAgICAgICAgICAgaHJlZjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgKyBwYXRo
ICsgIj9zdGVwVHdvIiwKLSAgICAgICAgICAgIGFkY2FtcGFpZ25pZDogIjMiLAotICAgICAgICAg
ICAgYWRkZXN0aW5hdGlvbjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKLSAgICAgICAgfSwKLSAg
ICAgICAgewotICAgICAgICAgICAgaHJlZjogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgKyBwYXRo
ICsgIj9zdGVwVGhyZWUiLAotICAgICAgICAgICAgYWRjYW1wYWlnbmlkOiAiNCIsCi0gICAgICAg
ICAgICBhZGRlc3RpbmF0aW9uOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIgotICAgICAgICB9Ci0g
ICAgXTsKLQotICAgIHByZXBhcmVUZXN0KCk7Ci0KLSAgICBmdW5jdGlvbiBjb25maWd1cmVMaW5r
KGluZGV4KSB7Ci0gICAgICAgIGxldCBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiaHJl
ZiIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmhyZWYpOwotICAgICAgICBsaW5rRWxlbWVudC5zZXRB
dHRyaWJ1dGUoImFkY2FtcGFpZ25pZCIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmFkY2FtcGFpZ25p
ZCk7Ci0gICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRkZXN0aW5hdGlvbiIsIGNv
bmZpZ3VyYXRpb25baW5kZXhdLmFkZGVzdGluYXRpb24pOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOwotICAgICAgICB2YXIgY2VudGVyWCA9IGVs
ZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICB2YXIg
Y2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwot
ICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCi0gICAg
ICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgZnVuY3Rp
b24gKCkgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQi
KS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7Ci0gICAgICAgICAgICAgICAg
dGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgKTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiIikgewotICAg
ICAgICAgICAgICAgIC8vIEZpcnN0IGFkIGNsaWNrIDEyNy4wLjAuMSDigJM+IGxvY2FsaG9zdC4K
LSAgICAgICAgICAgICAgICBjb25maWd1cmVMaW5rKDApOwotICAgICAgICAgICAgICAgIGFjdGl2
YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwotICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cu
bG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7Ci0gICAgICAgICAgICAgICAgLy8gQ29u
dmVydCB0aGUgZmlyc3QgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSA0LCB0aGVuIGRvIGEgcmV2ZXJz
ZSBhZCBjbGljay4KLSAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9
ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVk
aXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PTA0IjsKLSAg
ICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOwotICAgICAgICAgICAgICAg
IGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgICAg
ICAvLyBTZWNvbmQgYWQgY2xpY2sgbG9jYWxob3N0IOKAkz4gMTI3LjAuMC4xLgotICAgICAgICAg
ICAgICAgICAgICBjb25maWd1cmVMaW5rKDEpOwotICAgICAgICAgICAgICAgICAgICBhY3RpdmF0
ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAgICAgICAgICAg
IH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVGhyZWUiKSB7Ci0g
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5jbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJvdWdo
V2Vic2l0ZURhdGFSZW1vdmFsKCk7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQWRD
bGlja0F0dHJpYnV0aW9uKCk7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKLSAgICAgICAgICAg
ICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZB
SUwgVW5rbm93biB3aW5kb3cubG9jYXRpb24uc2VhcmNoID09ICIgKyB3aW5kb3cubG9jYXRpb24u
c2VhcmNoICsgIi4iOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOwotICAg
ICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252ZXJzaW9uLWRpc2Fi
bGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFs
LXNlc3Npb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMzRh
YjVkOTEyNTk0NTgzMGEyYjg0M2U3MTc0ZTE1MDlkMmNkNTgwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlj
a0F0dHJpYnV0aW9uL2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVGVzdHMgdGhhdCBzdG9y
ZWQgYXR0cmlidXRpb25zIGNhbm5vdCBiZSBjb252ZXJ0ZWQgaW4gYW4gZXBoZW1lcmFsIHNlc3Np
b24uCi0KLQotCi0tLS0tLS0tLQotRnJhbWU6ICc8IS0tZnJhbWUxLS0+JwotLS0tLS0tLS0KLUNv
bnZlcnNpb24gbm90IHJlY2VpdmVkIC0gdGltZWQgb3V0LgotCi1VbmNvbnZlcnRlZCBBZCBDbGlj
ayBBdHRyaWJ1dGlvbnM6Ci1XZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24gMQotU291cmNlOiAx
MjcuMC4wLjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWduIElEOiAzCi1ObyBjb252
ZXJzaW9uIGRhdGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tB
dHRyaWJ1dGlvbi9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252ZXJzaW9uLWRp
c2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDlhOGYxODRmYTlmMTYyZjY2Yzk0NWYzNjMzODQ0ZTQwYjY5ZWQ1ZmYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwt
c2Vzc2lvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0g
LS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+
Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwg
aW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2V0
VGltZW91dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBz
dG9yZWQgYXR0cmlidXRpb25zIGNhbm5vdCBiZSBjb252ZXJ0ZWQgaW4gYW4gZXBoZW1lcmFsIHNl
c3Npb24uPC9kaXY+Ci08YSBpZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4
MDAwL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1z
ZXNzaW9uLmh0bWw/c3RlcFR3byIgYWRjYW1wYWlnbmlkPSIzIiBhZGRlc3RpbmF0aW9uPSJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4K
LTxzY3JpcHQ+Ci0gICAgY29uc3QgY3VycmVudFRpbWVNaWxsaXMgPSAobmV3IERhdGUoKSkuZ2V0
VGltZSgpOwotICAgIGNvbnN0IGhpZ2hFbnRyb3B5Qml0cyA9IGN1cnJlbnRUaW1lTWlsbGlzIC0g
KE1hdGguZmxvb3IoY3VycmVudFRpbWVNaWxsaXMgLyAxMDAwMDAwKSAqIDEwMDAwMDApOwotICAg
IGNvbnN0IG5vbmNlID0gaGlnaEVudHJvcHlCaXRzICsgIiIgKyBNYXRoLmZsb29yKE1hdGgucmFu
ZG9tKCkgKiAxMDApOwotCi0gICAgcHJlcGFyZVRlc3QoKTsKLQotICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJz
aW9uVVJMRm9yVGVzdGluZygiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHA/bm9uY2U9IiArIG5vbmNlKTsKLQotICAg
IGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKLSAgICAgICAgdmFyIGVsZW1l
bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOwotICAgICAgICB2YXIgY2Vu
dGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwotICAg
ICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWln
aHQgLyAyOwotICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRo
ZW4oCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICB9LAotICAgICAgICAg
ICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7Ci0gICAgICAg
ICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgKTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhcHBlbmRJZnJhbWUodXJsLCBvbmxvYWRDYWxsYmFjaykg
ewotICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlm
cmFtZSIpOwotICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9IHVybDsKLSAgICAgICAgaWYgKG9u
bG9hZENhbGxiYWNrKQotICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBvbmxvYWRD
YWxsYmFjazsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhcHBlbmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZp
bmlzaCgpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7Ci0g
ICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRhcmdldExpbmsiKSk7Ci0KLSAgICAgICAgYXBwZW5kSWZyYW1lKCJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHA/
dGltZW91dF9tcz0xMDAwJm5vbmNlPSIgKyBub25jZSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBydW5UZXN0KCkgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAg
ICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7Ci0gICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9uT25OZXh0
TmF2aWdhdGlvbih0cnVlKTsKLSAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252ZXJzaW9uLWRpc2FibGVk
LWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWw/c3RlcFRocmVlIjsKLSAgICAgICAgICAgIH0gZWxz
ZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVGhyZWUiKSB7Ci0gICAgICAg
ICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIp
OwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6
ODQ0My9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBo
cD9jb252ZXJzaW9uRGF0YT0xMiZub25jZT0iICsgbm9uY2U7Ci0gICAgICAgICAgICAgICAgaW1h
Z2VFbGVtZW50LmlkID0gInBpeGVsIjsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25l
cnJvciA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFNo
b3VsZFN3YXBUb0RlZmF1bHRTZXNzaW9uT25OZXh0TmF2aWdhdGlvbih0cnVlKTsKLSAgICAgICAg
ICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9hZENs
aWNrQXR0cmlidXRpb24vY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5o
dG1sP3N0ZXBGb3VyIjsKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAgICAgICAgICAgIH0gZWxzZSBp
ZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwRm91ciIpIHsKLSAgICAgICAgICAg
ICAgICBhcHBlbmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZpbmlzaCgpOwotICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiY29va2llU2V0QXNG
aXJzdFBhcnR5PTE7IHBhdGg9LyI7Ci0gICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0
YXJnZXRMaW5rIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8g
dGVzdFJ1bm5lci4iOwotICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2V4cGlyZWQtYXR0cmlidXRpb25zLXJlbW92
ZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZTdhZWRkMWZm
NjY4MWNkOGY3MGQwZjg0ODQ5MTM2NDRhNjU2YzEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJp
YnV0aW9uL2V4cGlyZWQtYXR0cmlidXRpb25zLXJlbW92ZWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsNSArMCwwIEBACi1UZXN0cyBleHBpcmF0aW9uIG9mIGFkIGNsaWNrIGF0dHJp
YnV0aW9uLgotCi0KLQotTm8gc3RvcmVkIEFkIENsaWNrIEF0dHJpYnV0aW9uIGRhdGEuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9leHBpcmVk
LWF0dHJpYnV0aW9ucy1yZW1vdmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhMzU5MzE2NmUyZWQzNGViMTg4ZGJjOWIwM2FjMmNjM2U4
ZDQyODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vZXhwaXJlZC1hdHRyaWJ1dGlv
bnMtcmVtb3ZlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVl
IF0gLS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYt
OCI+Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0
aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0i
c2V0VGltZW91dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgZXhw
aXJhdGlvbiBvZiBhZCBjbGljayBhdHRyaWJ1dGlvbi48L2Rpdj4KLTxhIGlkPSJ0YXJnZXRMaW5r
IiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL2V4cGlyZWQt
YXR0cmlidXRpb25zLXJlbW92ZWQuaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMiIGFkZGVz
dGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Ci08ZGl2IGlkPSJv
dXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBwcmVwYXJlVGVzdCgpOwotCi0gICAgZnVuY3Rp
b24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBjZW50ZXJYID0g
ZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZh
ciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7
Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKLSAg
ICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBmdW5j
dGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1
dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAgICAgICAgICAg
ICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICApOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3
byIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm1hcmtBZENsaWNrQXR0cmlidXRpb25z
QXNFeHBpcmVkRm9yVGVzdGluZygpOwotICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAgICAgICAgICBpbWFnZUVs
ZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvYWRDbGlja0F0dHJpYnV0aW9uL3Jl
c291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTIiOwotICAg
ICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0gICAgICAgICAgICAgICAg
aW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7Ci0gICAgICAgICAgICAgICAgICAg
IGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dExpbmsiKSk7Ci0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOwotICAgICAgICAgICAgICAgICAgICB0
ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOwotICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7Ci0g
ICAgICAgIH0KLSAgICB9Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252
ZXJzaW9uRmlsZVBhdGgucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmli
dXRpb24vcmVzb3VyY2VzL2NvbnZlcnNpb25GaWxlUGF0aC5waHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGJhMTEyNDBjMWQ5OGMzODg4YjhlOWYwNzk2YjZjNjQ3ODQ4ZGNlOWQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2NvbnZlcnNpb25GaWxlUGF0
aC5waHAKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLTw/cGhwCi1yZXF1aXJlX29uY2Ug
Jy4uLy4uL3Jlc291cmNlcy9wb3J0YWJpbGl0eUxheWVyLnBocCc7Ci0KLWlmIChpc3NldCgkX0dF
VFsibm9uY2UiXSkpCi0gICAgJGNvbnZlcnNpb25GaWxlTmFtZSA9ICIvYWRDbGlja0NvbnZlcnNp
b24iIC4gJF9HRVRbIm5vbmNlIl0gLiAiLnR4dCI7Ci1lbHNlCi0gICAgJGNvbnZlcnNpb25GaWxl
TmFtZSA9ICIvYWRDbGlja0NvbnZlcnNpb24udHh0IjsKLSRjb252ZXJzaW9uRmlsZVBhdGggPSBz
eXNfZ2V0X3RlbXBfZGlyKCkgLiAkY29udmVyc2lvbkZpbGVOYW1lOwotPz4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252
ZXJzaW9uUmVwb3J0LnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0
aW9uL3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYjVjMjAyNjljNzg0OTA2ZmZmNzQ3NDQ4YjM4ODFmNDA2MzdhYmMwMS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHAK
KysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi08P3BocAotcmVxdWlyZV9vbmNlICdjb252
ZXJzaW9uRmlsZVBhdGgucGhwJzsKLQotJGNvbnZlcnNpb25GaWxlID0gZm9wZW4oJGNvbnZlcnNp
b25GaWxlUGF0aCAuICIudG1wIiwgJ3cnKTsKLSRodHRwSGVhZGVycyA9ICRfU0VSVkVSOwotJGNv
b2tpZXNGb3VuZCA9IGZhbHNlOwotZm9yZWFjaCAoJGh0dHBIZWFkZXJzIGFzICRuYW1lID0+ICR2
YWx1ZSkgewotICAgIGlmICgkbmFtZSA9PT0gIkhUVFBfSE9TVCIpIHsKLSAgICAgICAgZndyaXRl
KCRjb252ZXJzaW9uRmlsZSwgIiRuYW1lOiAkdmFsdWVcbiIpOwotICAgIH0gZWxzZSBpZiAoJG5h
bWUgPT09ICJSRVFVRVNUX1VSSSIpIHsKLSAgICAgICAgJHBvc2l0aW9uT2ZOb25jZSA9IHN0cnBv
cygkdmFsdWUsICI/bm9uY2U9Iik7Ci0gICAgICAgIGlmICgkcG9zaXRpb25PZk5vbmNlID09PSBm
YWxzZSkKLSAgICAgICAgICAgICRvdXRwdXRVUkwgPSAkdmFsdWU7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICRvdXRwdXRVUkwgPSBzdWJzdHIoJHZhbHVlLCAwLCAkcG9zaXRpb25PZk5vbmNl
KTsKLSAgICAgICAgZndyaXRlKCRjb252ZXJzaW9uRmlsZSwgIiRuYW1lOiAkb3V0cHV0VVJMXG4i
KTsKLSAgICB9IGVsc2UgaWYgKCRuYW1lID09PSAiSFRUUF9DT09LSUUiKSB7Ci0gICAgICAgIGZ3
cml0ZSgkY29udmVyc2lvbkZpbGUsICJDb29raWVzIGluIGNvbnZlcnNpb24gcmVxdWVzdDogJHZh
bHVlXG4iKTsKLSAgICAgICAgJGNvb2tpZXNGb3VuZCA9IHRydWU7Ci0gICAgfSBlbHNlIGlmICgk
bmFtZSA9PT0gIkNPTlRFTlRfVFlQRSIpIHsKLSAgICAgICAgZndyaXRlKCRjb252ZXJzaW9uRmls
ZSwgIkNvbnRlbnQgdHlwZTogJHZhbHVlXG4iKTsKLSAgICB9Ci19Ci1pZiAoISRjb29raWVzRm91
bmQpIHsKLSAgICBmd3JpdGUoJGNvbnZlcnNpb25GaWxlLCAiTm8gY29va2llcyBpbiBjb252ZXJz
aW9uIHJlcXVlc3QuXG4iKTsKLX0KLQotJHJlcXVlc3RCb2R5ID0gZmlsZV9nZXRfY29udGVudHMo
J3BocDovL2lucHV0Jyk7Ci1md3JpdGUoJGNvbnZlcnNpb25GaWxlLCAiUmVxdWVzdCBib2R5Olxu
JHJlcXVlc3RCb2R5XG4iKTsKLQotZmNsb3NlKCRjb252ZXJzaW9uRmlsZSk7Ci1yZW5hbWUoJGNv
bnZlcnNpb25GaWxlUGF0aCAuICIudG1wIiwgJGNvbnZlcnNpb25GaWxlUGF0aCk7Ci0KLWhlYWRl
cigiSFRUUC8xLjEgMjAwIE9LIik7Ci1zZXRjb29raWUoImNvb2tpZVNldEluQ29udmVyc2lvblJl
cG9ydCIsICIxIiwgMCwgIi8iKTsKLQotPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252ZXJ0QW5kUG9zdE1lc3NhZ2VC
YWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNv
dXJjZXMvY29udmVydEFuZFBvc3RNZXNzYWdlQmFjay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyNDgzNWE3MTIxODU1ZGViMjgwMGY2OTgzOTNkNmMyODgzOGEyMzIxLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252ZXJ0QW5kUG9zdE1lc3Nh
Z2VCYWNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4K
LSAgICA8c2NyaXB0PgotICAgICAgICBmdW5jdGlvbiBmaXJlQ29udmVyc2lvblBpeGVsKCkgewot
ICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlt
ZyIpOwotICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4
NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhw
P2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PTAzIjsKLSAgICAgICAgICAgIGltYWdlRWxlbWVu
dC5pZCA9ICJwaXhlbCI7Ci0gICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOwotICAgICAgICAgICAgICAgIHBvc3RNZXNzYWdl
QmFjaygpOwotICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIHBvc3RN
ZXNzYWdlQmFjaygpIHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cub3BlbmVyKSB7Ci0gICAgICAg
ICAgICAgICAgd2luZG93Lm9wZW5lci5wb3N0TWVzc2FnZSgiRG9uZSIsICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiKTsKLSAgICAgICAgICAgICAgICB3aW5kb3cuY2xvc2UoKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgIDwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRU
aW1lb3V0KGZpcmVDb252ZXJzaW9uUGl4ZWwsIDApIj4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhwIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2dldENvbnZl
cnNpb25EYXRhLnBocApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmYxMTI0Yjg5Y2Zk
NDk3ZDYxOWY3ZTljZGRjYTUxZjdlOTM3NTZmNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1
dGlvbi9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhwCisrKyAvZGV2L251bGwKQEAgLTEs
NTQgKzAsMCBAQAotPD9waHAKLXJlcXVpcmVfb25jZSAnY29udmVyc2lvbkZpbGVQYXRoLnBocCc7
Ci0KLSRub1RpbWVvdXQgPSBUcnVlOwotJHRpbWVvdXRNc2VjcyA9IDA7Ci1pZiAoaXNzZXQoJF9H
RVRbJ3RpbWVvdXRfbXMnXSkpIHsKLSAgICAkbm9UaW1lb3V0ID0gRmFsc2U7Ci0gICAgJHRpbWVv
dXRNc2VjcyA9IChpbnQpICRfR0VUWyd0aW1lb3V0X21zJ107Ci19Ci0KLSRjb252ZXJzaW9uRmls
ZUZvdW5kID0gRmFsc2U7Ci13aGlsZSAoJG5vVGltZW91dCB8fCAkdGltZW91dE1zZWNzID4gMCkg
ewotICAgIGlmIChmaWxlX2V4aXN0cygkY29udmVyc2lvbkZpbGVQYXRoKSkgewotICAgICAgICAk
Y29udmVyc2lvbkZpbGVGb3VuZCA9IFRydWU7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICAk
c2xlZXBNc2VjcyA9IDEwOwotICAgIHVzbGVlcCgkc2xlZXBNc2VjcyAqIDEwMDApOwotICAgIGlm
ICghJG5vVGltZW91dCkgewotICAgICAgICAkdGltZW91dE1zZWNzIC09ICRzbGVlcE1zZWNzOwot
ICAgIH0KLSAgICAvLyBmaWxlX2V4aXN0cygpIGNhY2hlcyByZXN1bHRzLCB3ZSB3YW50IHRvIGlu
dmFsaWRhdGUgdGhlIGNhY2hlLgotICAgIGNsZWFyc3RhdGNhY2hlKCk7Ci19Ci0KLQotZWNobyAi
PGh0bWw+PGJvZHk+XG4iOwotCi1pZiAoJGNvbnZlcnNpb25GaWxlRm91bmQpIHsKLSAgICBlY2hv
ICJDb252ZXJzaW9uIHJlY2VpdmVkLiI7Ci0gICAgJGNvbnZlcnNpb25GaWxlID0gZm9wZW4oJGNv
bnZlcnNpb25GaWxlUGF0aCwgJ3InKTsKLSAgICB3aGlsZSAoJGxpbmUgPSBmZ2V0cygkY29udmVy
c2lvbkZpbGUpKSB7Ci0gICAgICAgIGVjaG8gIjxicj4iOwotICAgICAgICBlY2hvIHRyaW0oJGxp
bmUpOwotICAgIH0KLSAgICBlY2hvICI8YnI+IjsKLSAgICBmY2xvc2UoJGNvbnZlcnNpb25GaWxl
KTsKLSAgICB1bmxpbmsoJGNvbnZlcnNpb25GaWxlUGF0aCk7Ci19IGVsc2UgewotICAgIGVjaG8g
IkNvbnZlcnNpb24gbm90IHJlY2VpdmVkIC0gdGltZWQgb3V0Ljxicj4iOwotfQotCi1pZiAoaXNz
ZXQoJF9HRVRbJ2VuZFRlc3QnXSkpIHsKLSAgICBlY2hvICI8c2NyaXB0PiI7Ci0gICAgZWNobyAi
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7IjsKLSAgICBlY2hvICIgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7IjsKLSAgICBlY2hvICIgICAgdGVzdFJ1bm5lci5zZXRBZENsaWNrQXR0cmlidXRp
b25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhmYWxzZSk7IjsKLSAgICBlY2hvICIgICAgdGVzdFJ1
bm5lci5zZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZygnJyk7IjsK
LSAgICBlY2hvICJ9IjsKLSAgICBlY2hvICI8L3NjcmlwdD4iOwotfQotCi1lY2hvICI8L2JvZHk+
PC9odG1sPiI7Ci0/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNr
QXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9yZWRpcmVjdFRvQ29u
dmVyc2lvbi5waHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwY2ViNDYxN2QwZWVi
MWUzNzVkZmRiNjMzZThjY2Q3N2RhNWUxM2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRp
b24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocAorKysgL2Rldi9udWxsCkBAIC0x
LDkgKzAsMCBAQAotPD9waHAKLWhlYWRlcigiSFRUUC8xLjEgMzAyIEZvdW5kIik7Ci1oZWFkZXIo
IkNhY2hlLUNvbnRyb2w6IG5vLWNhY2hlLCBuby1zdG9yZSwgbXVzdC1yZXZhbGlkYXRlIik7Ci1p
ZiAoaXNzZXQoJF9HRVRbImNvbnZlcnNpb25EYXRhIl0pICYmIGlzc2V0KCRfR0VUWyJwcmlvcml0
eSJdKSkgewotICBoZWFkZXIoIkxvY2F0aW9uOiAvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmli
dXRpb24vIiAuICRfR0VUWyJjb252ZXJzaW9uRGF0YSJdIC4gIi8iIC4gJF9HRVRbInByaW9yaXR5
Il0pOwotfSBlbHNlIGlmIChpc3NldCgkX0dFVFsiY29udmVyc2lvbkRhdGEiXSkpIHsKLSAgaGVh
ZGVyKCJMb2NhdGlvbjogLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLyIgLiAkX0dF
VFsiY29udmVyc2lvbkRhdGEiXSk7Ci19Ci0/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9u
T25JUEFkZHJlc3MucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRp
b24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uT25JUEFkZHJlc3MucGhwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZmUxYWE5ODc0ODM4MDg2NWU5MTZmMTUyMTg1NWQzYzgy
NjhiMjc3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9yZWRpcmVj
dFRvQ29udmVyc2lvbk9uSVBBZGRyZXNzLnBocAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBA
QAotPD9waHAKLWhlYWRlcigiSFRUUC8xLjAgMzAyIEZvdW5kIik7Ci1pZiAoaXNzZXQoJF9HRVRb
ImNvbnZlcnNpb25EYXRhIl0pICYmIGlzc2V0KCRfR0VUWyJwcmlvcml0eSJdKSkgewotICBoZWFk
ZXIoIkxvY2F0aW9uOiBodHRwczovLzEyNy4wLjAuMTo4MDAwLy53ZWxsLWtub3duL2FkLWNsaWNr
LWF0dHJpYnV0aW9uLyIgLiAkX0dFVFsiY29udmVyc2lvbkRhdGEiXSAuICIvIiAuICRfR0VUWyJw
cmlvcml0eSJdKTsKLX0gZWxzZSBpZiAoaXNzZXQoJF9HRVRbImNvbnZlcnNpb25EYXRhIl0pKSB7
Ci0gIGhlYWRlcigiTG9jYXRpb246IGh0dHBzOi8vMTI3LjAuMC4xOjgwMDAvLndlbGwta25vd24v
YWQtY2xpY2stYXR0cmlidXRpb24vIiAuICRfR0VUWyJjb252ZXJzaW9uRGF0YSJdKTsKLX0KLT8+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9y
ZXNvdXJjZXMvdXRpbC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0
aW9uL3Jlc291cmNlcy91dGlsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjYy
NTQ1M2QwYzAzYTE2ZGFiNmYyODRmM2JkMjU0MDBjOGQ3OTZhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlj
a0F0dHJpYnV0aW9uL3Jlc291cmNlcy91dGlsLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAs
MCBAQAotZnVuY3Rpb24gcHJlcGFyZVRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSh0cnVl
KTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIHRlYXJEb3duQW5kRmluaXNoKCkgewotICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLnNldEFsbG93c0FueVNTTENl
cnRpZmljYXRlKGZhbHNlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRBZENsaWNrQXR0cmlidXRp
b25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhmYWxzZSk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0
QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3RpbmcoIiIpOwotICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtYXR0cmlidXRpb24tY29udmVy
dGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0
aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhOTBmY2JjYmZkZjFjODE1ZGRhNDI1YjU0NmIyMGRlMTMzYTNmMWE4Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1o
aWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBA
QAotVGVzdHMgdGhhdCBhIHNlY29uZCBhdHRyaWJ1dGlvbiBjb252ZXJzaW9uIHdpdGggaGlnaGVy
IHByaW9yaXR5IHJlcGxhY2VzIGFuIG9sZGVyIHdpdGggbG93ZXIgcHJpb3JpdHkuCi0KLQotQ29u
dmVydGVkIEFkIENsaWNrIEF0dHJpYnV0aW9uczoKLVdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlv
biAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRpb246IGxvY2FsaG9zdAotQ2FtcGFpZ24g
SUQ6IDQKLUNvbnZlcnNpb24gZGF0YTogMTIKLUNvbnZlcnNpb24gcHJpb3JpdHk6IDQKLUNvbnZl
cnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKLUNvbnZlcnNp
b24gcmVxdWVzdCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhp
Z2hlci1wcmlvcml0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmli
dXRpb24vc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzN2UyYTBjMmNjNzQ2YzUyNmFmY2Ix
YmVhODMxNGIxY2UwYzlkMDQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29u
ZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDkyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgotPGh0bWwgbGFuZz0iZW4i
PgotPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgotICAgIDxtZXRhIG5hbWU9InZp
ZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNl
ci1zY2FsYWJsZT1ubyI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1o
ZWxwZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCki
PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgYSBzZWNvbmQgYXR0cmlidXRpb24g
Y29udmVyc2lvbiB3aXRoIGhpZ2hlciBwcmlvcml0eSByZXBsYWNlcyBhbiBvbGRlciB3aXRoIGxv
d2VyIHByaW9yaXR5LjwvZGl2PgotPGEgaWQ9InRhcmdldExpbmsiPkxpbms8L2E+PGJyPgotPGRp
diBpZD0ib3V0cHV0Ij48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgY29uc3QgcGF0aCA9ICIvYWRDbGlj
a0F0dHJpYnV0aW9uL3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1oaWdoZXItcHJp
b3JpdHkuaHRtbCI7Ci0gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFsKLSAgICAgICAgewotICAg
ICAgICAgICAgaHJlZjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgKyBwYXRoICsgIj9zdGVwVHdv
IiwKLSAgICAgICAgICAgIGFkY2FtcGFpZ25pZDogIjMiLAotICAgICAgICAgICAgYWRkZXN0aW5h
dGlvbjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKLSAgICAgICAgfSwKLSAgICAgICAgewotICAg
ICAgICAgICAgaHJlZjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgKyBwYXRoICsgIj9zdGVwRm91
ciIsCi0gICAgICAgICAgICBhZGNhbXBhaWduaWQ6ICI0IiwKLSAgICAgICAgICAgIGFkZGVzdGlu
YXRpb246ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiCi0gICAgICAgIH0KLSAgICBdOwotCi0gICAg
cHJlcGFyZVRlc3QoKTsKLQotICAgIGZ1bmN0aW9uIGNvbmZpZ3VyZUxpbmsoaW5kZXgpIHsKLSAg
ICAgICAgbGV0IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExp
bmsiKTsKLSAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJocmVmIiwgY29uZmlndXJh
dGlvbltpbmRleF0uaHJlZik7Ci0gICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRj
YW1wYWlnbmlkIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRjYW1wYWlnbmlkKTsKLSAgICAgICAg
bGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhZGRlc3RpbmF0aW9uIiwgY29uZmlndXJhdGlvbltp
bmRleF0uYWRkZXN0aW5hdGlvbik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVt
ZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRM
ZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciBjZW50ZXJZID0gZWxl
bWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAgIFVJSGVs
cGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKLSAgICAgICAgICAgIGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9
ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZp
bmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICApOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAg
ICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICIiKSB7Ci0gICAgICAgICAgICAgICAg
Ly8gRmlyc3QgYWQgY2xpY2sgMTI3LjAuMC4xIOKAkz4gbG9jYWxob3N0LgotICAgICAgICAgICAg
ICAgIGNvbmZpZ3VyZUxpbmsoMCk7Ci0gICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0
YXJnZXRMaW5rIik7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFy
Y2ggPT09ICI/c3RlcFR3byIpIHsKLSAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBmaXJz
dCBhZCBjbGljayB3aXRoIHByaW9yaXR5IDMgYW5kIG5hdmlnYXRlIGJhY2sgdG8gMTI3LjAuMC4x
LgotICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJpbWciKTsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8v
MTI3LjAuMC4xOjg0NDMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9yZWRpcmVjdFRvQ29u
dmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImcHJpb3JpdHk9MDMiOwotICAgICAgICAgICAg
ICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVt
ZW50Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiArIHBhdGggKyAiP3N0ZXBU
aHJlZSI7Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRv
dy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFRocmVlIikgewotICAgICAgICAgICAgICAgIC8v
IFNlY29uZCBhZCBjbGljayAxMjcuMC4wLjEg4oCTPiBsb2NhbGhvc3QuCi0gICAgICAgICAgICAg
ICAgY29uZmlndXJlTGluaygxKTsKLSAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRh
cmdldExpbmsiKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJj
aCA9PT0gIj9zdGVwRm91ciIpIHsKLSAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBzZWNv
bmQgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSA0IGFuZCBmaW5pc2guCi0gICAgICAgICAgICAgICAg
bGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwotICAgICAg
ICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9hZENs
aWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJz
aW9uRGF0YT0xMiZwcmlvcml0eT0wNCI7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lmlk
ID0gInBpeGVsIjsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQWRDbGlja0F0dHJp
YnV0aW9uKCk7Ci0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7Ci0gICAgICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBp
eGVsIikpOwotICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAg
ICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChp
bWFnZUVsZW1lbnQpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgVW5rbm93biB3
aW5kb3cubG9jYXRpb24uc2VhcmNoID09ICIgKyB3aW5kb3cubG9jYXRpb24uc2VhcmNoICsgIi4i
OwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0
cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOwotICAgICAgICB9Ci0gICAg
fQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVk
LXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWxv
d2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YTdlMmRmNzBjYzlmYmUzNWE4ZTQzN2NkZTY0MjA4Yzc2Y2I4N2ExOC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93ZXIt
cHJpb3JpdHktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotVGVz
dHMgdGhhdCBhIHNlY29uZCBhdHRyaWJ1dGlvbiBjb252ZXJzaW9uIHdpdGggbG93ZXIgcHJpb3Jp
dHkgZG9lcyBub3QgcmVwbGFjZSBhbiBvbGRlciB3aXRoIGhpZ2hlciBwcmlvcml0eS4KLQotCi1D
b252ZXJ0ZWQgQWQgQ2xpY2sgQXR0cmlidXRpb25zOgotV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0
aW9uIDEKLVNvdXJjZTogMTI3LjAuMC4xCi1EZXN0aW5hdGlvbjogbG9jYWxob3N0Ci1DYW1wYWln
biBJRDogMwotQ29udmVyc2lvbiBkYXRhOiAxMgotQ29udmVyc2lvbiBwcmlvcml0eTogNAotQ29u
dmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAyNC00OCBob3VycwotQ29udmVy
c2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgt
bG93ZXItcHJpb3JpdHkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJp
YnV0aW9uL3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YTM1NzJkYmQwYzJmMGJkNjU2YTk0
ZTA1MWMxMDc5ZmEyMmY4OWFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29u
ZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsOTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Ci08aHRtbCBsYW5nPSJlbiI+
Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAgPG1ldGEgbmFtZT0idmll
d3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2Vy
LXNjYWxhYmxlPW5vIj4KLSAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+
Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBhIHNlY29uZCBhdHRyaWJ1dGlvbiBj
b252ZXJzaW9uIHdpdGggbG93ZXIgcHJpb3JpdHkgZG9lcyBub3QgcmVwbGFjZSBhbiBvbGRlciB3
aXRoIGhpZ2hlciBwcmlvcml0eS48L2Rpdj4KLTxhIGlkPSJ0YXJnZXRMaW5rIj5MaW5rPC9hPjxi
cj4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0PgotICAgIGNvbnN0IHBhdGggPSAi
L2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93
ZXItcHJpb3JpdHkuaHRtbCI7Ci0gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFsKLSAgICAgICAg
ewotICAgICAgICAgICAgaHJlZjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgKyBwYXRoICsgIj9z
dGVwVHdvIiwKLSAgICAgICAgICAgIGFkY2FtcGFpZ25pZDogIjMiLAotICAgICAgICAgICAgYWRk
ZXN0aW5hdGlvbjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICAgaHJlZjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgKyBwYXRoICsgIj9z
dGVwRm91ciIsCi0gICAgICAgICAgICBhZGNhbXBhaWduaWQ6ICI0IiwKLSAgICAgICAgICAgIGFk
ZGVzdGluYXRpb246ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiCi0gICAgICAgIH0KLSAgICBdOwot
Ci0gICAgcHJlcGFyZVRlc3QoKTsKLQotICAgIGZ1bmN0aW9uIGNvbmZpZ3VyZUxpbmsoaW5kZXgp
IHsKLSAgICAgICAgbGV0IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldExpbmsiKTsKLSAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJocmVmIiwgY29u
ZmlndXJhdGlvbltpbmRleF0uaHJlZik7Ci0gICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0
ZSgiYWRjYW1wYWlnbmlkIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRjYW1wYWlnbmlkKTsKLSAg
ICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhZGRlc3RpbmF0aW9uIiwgY29uZmlndXJh
dGlvbltpbmRleF0uYWRkZXN0aW5hdGlvbik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYWN0aXZh
dGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5v
ZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciBjZW50ZXJZ
ID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAg
IFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKLSAgICAgICAgICAg
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7
Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVy
VGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93
bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICApOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAg
ICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICIiKSB7Ci0gICAgICAgICAg
ICAgICAgLy8gRmlyc3QgYWQgY2xpY2sgMTI3LjAuMC4xIOKAkz4gbG9jYWxob3N0LgotICAgICAg
ICAgICAgICAgIGNvbmZpZ3VyZUxpbmsoMCk7Ci0gICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVt
ZW50KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlv
bi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKLSAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRo
ZSBmaXJzdCBhZCBjbGljayB3aXRoIHByaW9yaXR5IDQgYW5kIG5hdmlnYXRlIGJhY2sgdG8gMTI3
LjAuMC4xLgotICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0
dHBzOi8vMTI3LjAuMC4xOjg0NDMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9yZWRpcmVj
dFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImcHJpb3JpdHk9MDQiOwotICAgICAg
ICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0gICAgICAgICAgICAgICAgaW1h
Z2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiArIHBhdGggKyAi
P3N0ZXBUaHJlZSI7Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYg
KHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFRocmVlIikgewotICAgICAgICAgICAg
ICAgIC8vIFNlY29uZCBhZCBjbGljayAxMjcuMC4wLjEg4oCTPiBsb2NhbGhvc3QuCi0gICAgICAg
ICAgICAgICAgY29uZmlndXJlTGluaygxKTsKLSAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1l
bnQoInRhcmdldExpbmsiKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9u
LnNlYXJjaCA9PT0gIj9zdGVwRm91ciIpIHsKLSAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRo
ZSBzZWNvbmQgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSAzIGFuZCBmaW5pc2guCi0gICAgICAgICAg
ICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwot
ICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0
My9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9j
b252ZXJzaW9uRGF0YT0xMiZwcmlvcml0eT0wMyI7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVt
ZW50LmlkID0gInBpeGVsIjsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9
IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQWRDbGlj
a0F0dHJpYnV0aW9uKCk7Ci0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3Zl
Q2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInBpeGVsIikpOwotICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwot
ICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChpbWFnZUVsZW1lbnQpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgVW5r
bm93biB3aW5kb3cubG9jYXRpb24uc2VhcmNoID09ICIgKyB3aW5kb3cubG9jYXRpb24uc2VhcmNo
ICsgIi4iOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOwotICAgICAgICB9
Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRo
LWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0eS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlMWIxYmEzODY1YTI1
NWFkNzlkZjg2MjIxZDU0MGFmNTY3OTI4NzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRp
b24vc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotVGVzdHMgdGhhdCB0aGUgYXR0cmlidXRpb24g
aXMgdXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGNvbnZlcnNpb24gd2l0aCBoaWdoZXIgcHJp
b3JpdHkuCi0KLQotQ29udmVydGVkIEFkIENsaWNrIEF0dHJpYnV0aW9uczoKLVdlYkNvcmU6OkFk
Q2xpY2tBdHRyaWJ1dGlvbiAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRpb246IGxvY2Fs
aG9zdAotQ2FtcGFpZ24gSUQ6IDMKLUNvbnZlcnNpb24gZGF0YTogMTIKLUNvbnZlcnNpb24gcHJp
b3JpdHk6IDQKLUNvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDgg
aG91cnMKLUNvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWNvbnZlcnNpb24td2l0
aC1oaWdoZXItcHJpb3JpdHkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0
dHJpYnV0aW9uL3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkZmY1OTJmNzFkOGM0ZTkxNGYxMDkwZDViOWUz
NzJkNjlhNjc3ZDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWNvbnZl
cnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg1ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhp
YmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgotPGh0bWwgbGFuZz0iZW4iPgotPGhlYWQ+Ci0gICAgPG1l
dGEgY2hhcnNldD0iVVRGLTgiPgotICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3
aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+Ci0g
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgotPGRpdiBpZD0iZGVzY3Jp
cHRpb24iPlRlc3RzIHRoYXQgdGhlIGF0dHJpYnV0aW9uIGlzIHVwZGF0ZWQgaWYgaXQgZ2V0cyBh
IHNlY29uZCBjb252ZXJzaW9uIHdpdGggaGlnaGVyIHByaW9yaXR5LjwvZGl2PgotPGEgaWQ9InRh
cmdldExpbmsiPkxpbms8L2E+PGJyPgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTxzY3JpcHQ+
Ci0gICAgY29uc3QgcGF0aCA9ICIvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1jb252ZXJzaW9u
LXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwiOwotICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBb
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGhyZWY6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiICsg
cGF0aCArICI/c3RlcFR3byIsCi0gICAgICAgICAgICBhZGNhbXBhaWduaWQ6ICIzIiwKLSAgICAg
ICAgICAgIGFkZGVzdGluYXRpb246ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiCi0gICAgICAgIH0K
LSAgICBdOwotCi0gICAgcHJlcGFyZVRlc3QoKTsKLQotICAgIGZ1bmN0aW9uIGNvbmZpZ3VyZUxp
bmsoaW5kZXgpIHsKLSAgICAgICAgbGV0IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldExpbmsiKTsKLSAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJo
cmVmIiwgY29uZmlndXJhdGlvbltpbmRleF0uaHJlZik7Ci0gICAgICAgIGxpbmtFbGVtZW50LnNl
dEF0dHJpYnV0ZSgiYWRjYW1wYWlnbmlkIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRjYW1wYWln
bmlkKTsKLSAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhZGRlc3RpbmF0aW9uIiwg
Y29uZmlndXJhdGlvbltpbmRleF0uYWRkZXN0aW5hdGlvbik7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBjZW50ZXJYID0g
ZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZh
ciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7
Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKLSAg
ICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBmdW5j
dGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1
dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAgICAgICAgICAg
ICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICApOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIGNvbnZlcnQocHJpb3JpdHksIGNhbGxiYWNrKSB7Ci0gICAgICAgIGxl
dCBwaXhlbEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKTsKLSAgICAg
ICAgaWYgKHBpeGVsRWxlbWVudCkKLSAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQocGl4ZWxFbGVtZW50KTsKLQotICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6
Ly8xMjcuMC4wLjE6ODQ0My9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9D
b252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZwcmlvcml0eT0iICsgcHJpb3JpdHk7Ci0g
ICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0gICAgICAgIGltYWdlRWxlbWVudC5v
bmVycm9yID0gY2FsbGJhY2s7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1h
Z2VFbGVtZW50KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24u
c2VhcmNoID09PSAiIikgewotICAgICAgICAgICAgICAgIC8vIEFkIGNsaWNrIDEyNy4wLjAuMSDi
gJM+IGxvY2FsaG9zdC4KLSAgICAgICAgICAgICAgICBjb25maWd1cmVMaW5rKDApOwotICAgICAg
ICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwotICAgICAgICAgICAgfSBl
bHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7Ci0gICAgICAg
ICAgICAgICAgLy8gQ29udmVydCB0aGUgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSAzLgotICAgICAg
ICAgICAgICAgIGNvbnZlcnQoIjAzIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAg
IC8vIENvbnZlcnQgdGhlIGFkIGNsaWNrIHdpdGggcHJpb3JpdHkgNC4KLSAgICAgICAgICAgICAg
ICAgICAgY29udmVydCgiMDQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbigpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0TGluayIpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVt
b3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBV
bmtub3duIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT0gIiArIHdpbmRvdy5sb2NhdGlvbi5zZWFy
Y2ggKyAiLiI7Ci0gICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7Ci0gICAgICAg
IH0KLSAgICB9Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1jb252ZXJzaW9uLXdp
dGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
ZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwM2NmZGJhM2VmZjUw
OTE4MjVmZWNmNDJhY2FmNGMxZjE4MWFlOGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRp
b24vc2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UZXN0cyB0aGF0IHRoZSBhdHRyaWJ1dGlvbiBp
cyBub3QgdXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGNvbnZlcnNpb24gd2l0aCBsb3dlciBw
cmlvcml0eS4KLQotCi1Db252ZXJ0ZWQgQWQgQ2xpY2sgQXR0cmlidXRpb25zOgotV2ViQ29yZTo6
QWRDbGlja0F0dHJpYnV0aW9uIDEKLVNvdXJjZTogMTI3LjAuMC4xCi1EZXN0aW5hdGlvbjogbG9j
YWxob3N0Ci1DYW1wYWlnbiBJRDogMwotQ29udmVyc2lvbiBkYXRhOiAxMgotQ29udmVyc2lvbiBw
cmlvcml0eTogNAotQ29udmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAyNC00
OCBob3VycwotQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13
aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tB
dHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjZmY5NmFhNTlhNDRhNjFjOTdiYzZiNTY4YmQw
NzA5MWEwZWNjZGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWNvbnZl
cnNpb24td2l0aC1sb3dlci1wcmlvcml0eS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGli
bGVWaWV3cG9ydD10cnVlIF0gLS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0
YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9Indp
ZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+VGVzdHMgdGhhdCB0aGUgYXR0cmlidXRpb24gaXMgbm90IHVwZGF0ZWQgaWYgaXQgZ2V0
cyBhIHNlY29uZCBjb252ZXJzaW9uIHdpdGggbG93ZXIgcHJpb3JpdHkuPC9kaXY+Ci08YSBpZD0i
dGFyZ2V0TGluayI+TGluazwvYT48YnI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPHNjcmlw
dD4KLSAgICBjb25zdCBwYXRoID0gIi9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWNvbnZlcnNp
b24td2l0aC1sb3dlci1wcmlvcml0eS5odG1sIjsKLSAgICBjb25zdCBjb25maWd1cmF0aW9uID0g
WwotICAgICAgICB7Ci0gICAgICAgICAgICBocmVmOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiAr
IHBhdGggKyAiP3N0ZXBUd28iLAotICAgICAgICAgICAgYWRjYW1wYWlnbmlkOiAiMyIsCi0gICAg
ICAgICAgICBhZGRlc3RpbmF0aW9uOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIgotICAgICAgICB9
Ci0gICAgXTsKLQotICAgIHByZXBhcmVUZXN0KCk7Ci0KLSAgICBmdW5jdGlvbiBjb25maWd1cmVM
aW5rKGluZGV4KSB7Ci0gICAgICAgIGxldCBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgi
aHJlZiIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmhyZWYpOwotICAgICAgICBsaW5rRWxlbWVudC5z
ZXRBdHRyaWJ1dGUoImFkY2FtcGFpZ25pZCIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmFkY2FtcGFp
Z25pZCk7Ci0gICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRkZXN0aW5hdGlvbiIs
IGNvbmZpZ3VyYXRpb25baW5kZXhdLmFkZGVzdGluYXRpb24pOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOwotICAgICAgICB2YXIgY2VudGVyWCA9
IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICB2
YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAy
OwotICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCi0g
ICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgZnVu
Y3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRw
dXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7Ci0gICAgICAgICAgICAg
ICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBjb252ZXJ0KHByaW9yaXR5LCBjYWxsYmFjaykgewotICAgICAgICBs
ZXQgcGl4ZWxFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIik7Ci0gICAg
ICAgIGlmIChwaXhlbEVsZW1lbnQpCi0gICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNo
aWxkKHBpeGVsRWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImltZyIpOwotICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBz
Oi8vMTI3LjAuMC4xOjg0NDMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9yZWRpcmVjdFRv
Q29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImcHJpb3JpdHk9IiArIHByaW9yaXR5Owot
ICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOwotICAgICAgICBpbWFnZUVsZW1lbnQu
b25lcnJvciA9IGNhbGxiYWNrOwotICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlt
YWdlRWxlbWVudCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9u
LnNlYXJjaCA9PT0gIiIpIHsKLSAgICAgICAgICAgICAgICAvLyBBZCBjbGljayAxMjcuMC4wLjEg
4oCTPiBsb2NhbGhvc3QuCi0gICAgICAgICAgICAgICAgY29uZmlndXJlTGluaygwKTsKLSAgICAg
ICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKLSAgICAgICAgICAgIH0g
ZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgewotICAgICAg
ICAgICAgICAgIC8vIENvbnZlcnQgdGhlIGFkIGNsaWNrIHdpdGggcHJpb3JpdHkgNC4KLSAgICAg
ICAgICAgICAgICBjb252ZXJ0KCIwNCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAg
ICAvLyBDb252ZXJ0IHRoZSBhZCBjbGljayB3aXRoIHByaW9yaXR5IDMuCi0gICAgICAgICAgICAg
ICAgICAgIGNvbnZlcnQoIjAzIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRhcmdldExpbmsiKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwg
VW5rbm93biB3aW5kb3cubG9jYXRpb24uc2VhcmNoID09ICIgKyB3aW5kb3cubG9jYXRpb24uc2Vh
cmNoICsgIi4iOwotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKLSAg
ICAgICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2VuZC1hdHRyaWJ1dGlv
bi1jb252ZXJzaW9uLXJlcXVlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hZENsaWNrQXR0cmlidXRpb24vc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3Qt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhODIzN2QxNTNmYzdm
MGI4MWJkOTAxMTRiYjJhMmU3MGVhOGJiZDliLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0
aW9uL3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLVRlc3RzIHNlbmRpbmcgb2YgYWQgY2xpY2sgYXR0
cmlidXRpb24gcmVxdWVzdHMgYWZ0ZXIgYSBjb252ZXJzaW9uLiBBbHNvIHRlc3RzIHRoYXQgY29v
a2llcyBhcmUgbm90IHNlbnQgaW4gdGhvc2UgcmVxdWVzdHMgYW5kIGNvb2tpZXMgYXJlIG5vdCBh
Y2NlcHRlZCBpbiB0aGUgcmVzcG9uc2VzLgotCi0KLQotLS0tLS0tLS0KLUZyYW1lOiAnPCEtLWZy
YW1lMS0tPicKLS0tLS0tLS0tCi1Db29raWVzIGFyZTogY29va2llU2V0QXNGaXJzdFBhcnR5ID0g
MQotCi0tLS0tLS0tLQotRnJhbWU6ICc8IS0tZnJhbWUyLS0+JwotLS0tLS0tLS0KLUNvbnZlcnNp
b24gcmVjZWl2ZWQuCi1IVFRQX0hPU1Q6IDEyNy4wLjAuMTo4MDAwCi1Db250ZW50IHR5cGU6IGFw
cGxpY2F0aW9uL2pzb24KLVJFUVVFU1RfVVJJOiAvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNl
cy9jb252ZXJzaW9uUmVwb3J0LnBocAotTm8gY29va2llcyBpbiBjb252ZXJzaW9uIHJlcXVlc3Qu
Ci1SZXF1ZXN0IGJvZHk6Ci17ImNvbnRlbnQtdHlwZSI6ImNsaWNrIiwiY29udGVudC1zaXRlIjoi
MTI3LjAuMC4xIiwiY29udGVudC1pZCI6MywiY29udmVyc2lvbi1zaXRlIjoibG9jYWxob3N0Iiwi
Y29udmVyc2lvbi1kYXRhIjoxMiwicmVwb3J0LXZlcnNpb24iOjF9Ci0KLQotLS0tLS0tLS0KLUZy
YW1lOiAnPCEtLWZyYW1lMy0tPicKLS0tLS0tLS0tCi1Db29raWVzIGFyZTogY29va2llU2V0QXNG
aXJzdFBhcnR5ID0gMQotCi1ObyBzdG9yZWQgQWQgQ2xpY2sgQXR0cmlidXRpb24gZGF0YS4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlbmQt
YXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVz
dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OGZjYmZhMjVlM2Y1ZTNkYzgx
OGJhMGNhOTU1MjlkYzNjMWQyMzNjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Nl
bmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw4MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1
c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgot
ICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29u
dGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9
bm8iPgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48
L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj5UZXN0cyBzZW5kaW5nIG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uIHJlcXVl
c3RzIGFmdGVyIGEgY29udmVyc2lvbi4gQWxzbyB0ZXN0cyB0aGF0IGNvb2tpZXMgYXJlIG5vdCBz
ZW50IGluIHRob3NlIHJlcXVlc3RzIGFuZCBjb29raWVzIGFyZSBub3QgYWNjZXB0ZWQgaW4gdGhl
IHJlc3BvbnNlcy48L2Rpdj4KLTxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1y
ZXF1ZXN0Lmh0bWw/c3RlcFR3byIgYWRjYW1wYWlnbmlkPSIzIiBhZGRlc3RpbmF0aW9uPSJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4K
LTxzY3JpcHQ+Ci0gICAgY29uc3QgY3VycmVudFRpbWVNaWxsaXMgPSAobmV3IERhdGUoKSkuZ2V0
VGltZSgpOwotICAgIGNvbnN0IGhpZ2hFbnRyb3B5Qml0cyA9IGN1cnJlbnRUaW1lTWlsbGlzIC0g
KE1hdGguZmxvb3IoY3VycmVudFRpbWVNaWxsaXMgLyAxMDAwMDAwKSAqIDEwMDAwMDApOwotICAg
IGNvbnN0IG5vbmNlID0gaGlnaEVudHJvcHlCaXRzICsgIiIgKyBNYXRoLmZsb29yKE1hdGgucmFu
ZG9tKCkgKiAxMDApOwotCi0gICAgcHJlcGFyZVRlc3QoKTsKLQotICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLnNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJy
aWRlVGltZXJGb3JUZXN0aW5nKHRydWUpOwotICAgICAgICB0ZXN0UnVubmVyLnNldEFkQ2xpY2tB
dHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAv
YWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocD9ub25jZT0i
ICsgbm9uY2UpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50
SUQpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVt
ZW50SUQpOwotICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1l
bnQub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0
VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwotICAgICAgICBVSUhlbHBlci5hY3RpdmF0
ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgICAgICB9LAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9t
aXNlIHJlamVjdGVkLiI7Ci0gICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhcHBlbmRJZnJh
bWUodXJsLCBvbmxvYWRDYWxsYmFjaykgewotICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICAgICAgICBpZnJhbWVFbGVtZW50LnNy
YyA9IHVybDsKLSAgICAgICAgaWYgKG9ubG9hZENhbGxiYWNrKQotICAgICAgICAgICAgaWZyYW1l
RWxlbWVudC5vbmxvYWQgPSBvbmxvYWRDYWxsYmFjazsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhcHBlbmRD
b252ZXJzaW9uRGF0YUlmcmFtZUFuZEZpbmlzaCgpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QWRDbGlja0F0dHJpYnV0aW9uKCk7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7Ci0gICAgICAgIGRvY3VtZW50
LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOwotCi0g
ICAgICAgIGFwcGVuZElmcmFtZSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2Nvb2tpZXMvcmVzb3Vy
Y2VzL2VjaG8tY29va2llcy5waHAiKTsKLSAgICAgICAgYXBwZW5kSWZyYW1lKCJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0
YS5waHA/dGltZW91dF9tcz0yMDAwJm5vbmNlPSIgKyBub25jZSwgZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICBhcHBlbmRJZnJhbWUoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9jb29raWVzL3Jlc291
cmNlcy9lY2hvLWNvb2tpZXMucGhwIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgdGVh
ckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28i
KSB7Ci0gICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImltZyIpOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6
Ly8xMjcuMC4wLjE6ODQ0My9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9D
b252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZub25jZT0iICsgbm9uY2U7Ci0gICAgICAg
ICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKLSAgICAgICAgICAgICAgICBpbWFn
ZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBhcHBl
bmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZpbmlzaCgpOwotICAgICAgICAgICAgICAgIH07Ci0g
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOwot
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAi
Y29va2llU2V0QXNGaXJzdFBhcnR5PTE7IHBhdGg9LyI7Ci0gICAgICAgICAgICAgICAgYWN0aXZh
dGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0
ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOwotICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9zdG9yZS1hZC1jbGljay1hdHRyaWJ1dGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zdG9yZS1hZC1jbGljay1h
dHRyaWJ1dGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNm
ZDMxYTk3YmYxY2ZhY2Y2NTUyYmY1ZjIyNGUyMTMxNDBlMDFhOTQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENs
aWNrQXR0cmlidXRpb24vc3RvcmUtYWQtY2xpY2stYXR0cmlidXRpb24tZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1UZXN0cyBzdG9yYWdlIG9mIGFkIGNsaWNrIGF0
dHJpYnV0aW9uLgotCi0KLVVuY29udmVydGVkIEFkIENsaWNrIEF0dHJpYnV0aW9uczoKLVdlYkNv
cmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbiAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRpb246
IGxvY2FsaG9zdAotQ2FtcGFpZ24gSUQ6IDMKLU5vIGNvbnZlcnNpb24gZGF0YS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWFkLWNs
aWNrLWF0dHJpYnV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRy
aWJ1dGlvbi9zdG9yZS1hZC1jbGljay1hdHRyaWJ1dGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzZGY3NmIwNGY1OWJmYmNiYjRmODAwOTliNmYyOGI3MWNjMGU2MDM3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWFkLWNsaWNrLWF0dHJpYnV0aW9u
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KLTxo
dG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8
bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFs
LXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0
KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyBzdG9yYWdlIG9mIGFk
IGNsaWNrIGF0dHJpYnV0aW9uLjwvZGl2PgotPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUtYWQtY2xpY2stYXR0cmli
dXRpb24uaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2Pgot
PHNjcmlwdD4KLSAgICBwcmVwYXJlVGVzdCgpOwotCi0gICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVt
ZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRM
ZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciBjZW50ZXJZID0gZWxl
bWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAgIFVJSGVs
cGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKLSAgICAgICAgICAgIGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9
ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZp
bmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICApOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAg
ICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKLSAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsKLSAgICAgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXRMaW5rIikpOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0
TGluayIpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RS
dW5uZXIuIjsKLSAgICAgICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc3Rv
cmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1l
cmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
ZTMzYjc1NzBiODJiZjQxNzYzZGFkYzFkNTNkZTU2ZGUyYzIwMDUwLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRD
bGlja0F0dHJpYnV0aW9uL3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotVGVzdHMgdGhhdCBzdG9yYWdl
IG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uIGlzIGRpc2FibGVkIGluIGVwaGVtZXJhbCBzZXNzaW9u
cy4KLQotCi0KLU5vIHN0b3JlZCBBZCBDbGljayBBdHRyaWJ1dGlvbiBkYXRhLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUtZGlzYWJs
ZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRD
bGlja0F0dHJpYnV0aW9uL3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmYzI3NDFhYjExYmMxYzdhOTYwZTQ5ZWEy
NzM2ZTRlNjQ4NjQ2ZGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUtZGlz
YWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICsw
LDAgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVl
IHVzZUVwaGVtZXJhbFNlc3Npb249dHJ1ZSBdIC0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbCBs
YW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAgPG1ldGEg
bmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2Fs
ZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5U
ZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBzdG9yYWdlIG9mIGFk
IGNsaWNrIGF0dHJpYnV0aW9uIGlzIGRpc2FibGVkIGluIGVwaGVtZXJhbCBzZXNzaW9ucy48L2Rp
dj4KLTxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvYWRDbGlj
a0F0dHJpYnV0aW9uL3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWw/c3Rl
cFR3byIgYWRjYW1wYWlnbmlkPSIzIiBhZGRlc3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiPkxpbms8L2E+PGJyPgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAg
cHJlcGFyZVRlc3QoKTsKLQotICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQp
IHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50
SUQpOwotICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQu
b2Zmc2V0V2lkdGggLyAyOwotICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9w
ICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwotICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0
KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgICAgICB9LAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNl
IHJlamVjdGVkLiI7Ci0gICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0KCkgewot
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cu
bG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQu
Ym9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsK
LSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7Ci0gICAg
ICAgIH0KLSAgICB9Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2stYWQtY2xpY2stYXR0
cmlidXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0
ZW5zaW9ucy9ibG9jay1hZC1jbGljay1hdHRyaWJ1dGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3MDc0Zjc5OTViMWI4OWQ1ZTg3ZDA0NjEzYjZlYjA0NWFk
NTViOGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1hZC1jbGljay1hdHRy
aWJ1dGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1DT05T
T0xFIE1FU1NBR0U6IEJsb2NrZWQgYnkgY29udGVudCBleHRlbnNpb24KLUNPTlNPTEUgTUVTU0FH
RTogQ2Fubm90IGxvYWQgaW1hZ2UgaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9hZENsaWNrQXR0cmli
dXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0x
MiBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotVGVzdHMgdGhhdCBhZCBjbGljayBhdHRy
aWJ1dGlvbiByZWRpcmVjdHMgdG8gd2VsbC1rbm93biBsb2NhdGlvbiBkb24ndCB0cmlnZ2VyIGEg
Y29udmVyc2lvbiBpZiB0aGV5IGFyZSBibG9ja2VkIGJ5IGNvbnRlbnQgYmxvY2tlcnMuCi0KLQot
Ci0tLS0tLS0tLQotRnJhbWU6ICc8IS0tZnJhbWUxLS0+JwotLS0tLS0tLS0KLUNvbnZlcnNpb24g
bm90IHJlY2VpdmVkIC0gdGltZWQgb3V0LgotCi1VbmNvbnZlcnRlZCBBZCBDbGljayBBdHRyaWJ1
dGlvbnM6Ci1XZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24gMQotU291cmNlOiAxMjcuMC4wLjEK
LURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWduIElEOiAzCi1ObyBjb252ZXJzaW9uIGRh
dGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25z
L2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxNGNjZTg2MDU0YjYzMDhmYmIyMzI2NTY2ZWZkMGM5
ZTYxYTYwYWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1hZC1jbGljay1h
dHRyaWJ1dGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVl
IF0gLS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYt
OCI+Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0
aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBz
cmM9Ii4uL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgotPGRpdiBpZD0i
ZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgYWQgY2xpY2sgYXR0cmlidXRpb24gcmVkaXJlY3RzIHRv
IHdlbGwta25vd24gbG9jYXRpb24gZG9uJ3QgdHJpZ2dlciBhIGNvbnZlcnNpb24gaWYgdGhleSBh
cmUgYmxvY2tlZCBieSBjb250ZW50IGJsb2NrZXJzLjwvZGl2PgotPGEgaWQ9InRhcmdldExpbmsi
IGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1hZC1j
bGljay1hdHRyaWJ1dGlvbi5odG1sP3N0ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5h
dGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KLTxkaXYgaWQ9Im91dHB1
dCI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHByZXBhcmVUZXN0KCk7Ci0KLSAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRBZENsaWNrQXR0cmlidXRpb25P
dmVycmlkZVRpbWVyRm9yVGVzdGluZyh0cnVlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRBZENs
aWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZygiaHR0cDovLzEyNy4wLjAuMTo4
MDAwL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHAiKTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7Ci0gICAg
ICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKLSAg
ICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdp
ZHRoIC8gMjsKLSAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1l
bnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJY
LCBjZW50ZXJZKS50aGVuKAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3Rl
ZC4iOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYXBwZW5kSWZyYW1lKHVybCwgb25s
b2FkQ2FsbGJhY2spIHsKLSAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpZnJhbWUiKTsKLSAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSB1cmw7Ci0g
ICAgICAgIGlmIChvbmxvYWRDYWxsYmFjaykKLSAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25s
b2FkID0gb25sb2FkQ2FsbGJhY2s7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
aWZyYW1lRWxlbWVudCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYXBwZW5kQ29udmVyc2lvbkRh
dGFJZnJhbWVBbmRGaW5pc2goKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFkQ2xpY2tBdHRy
aWJ1dGlvbigpOwotICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOwotICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92
ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKLQotICAgICAgICBhcHBl
bmRJZnJhbWUoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vcmVzb3Vy
Y2VzL2dldENvbnZlcnNpb25EYXRhLnBocD90aW1lb3V0X21zPTEwMDAiLCBmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIp
IHsKLSAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaW1nIik7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczov
LzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0Nv
bnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyIjsKLSAgICAgICAgICAgICAgICBpbWFnZUVs
ZW1lbnQuaWQgPSAicGl4ZWwiOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9y
ID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFwcGVuZENvbnZlcnNpb25EYXRh
SWZyYW1lQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7Ci0gICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKLSAg
ICAgICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1hZC1jbGljay1h
dHRyaWJ1dGlvbi5odG1sLmpzb24gYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRl
bnNpb25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLmh0bWwuanNvbgpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNWUzOTRlZjExODBiYzhmYmE2ODc2ZTE1NjMxNDRlODRhNjQ5NGQx
NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0
aW9uLmh0bWwuanNvbgorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVsKLSAgewotICAg
ICJ0cmlnZ2VyIjogewotICAgICAgInVybC1maWx0ZXIiOiAiLy53ZWxsLWtub3duL2FkLWNsaWNr
LWF0dHJpYnV0aW9uLyIKLSAgICB9LAotICAgICJhY3Rpb24iOiB7Ci0gICAgICAidHlwZSI6ICJi
bG9jayIKLSAgICB9Ci0gIH0KLV0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
Y29udGVudGV4dGVuc2lvbnMvYmxvY2stcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXBy
aXZhdGUtY2xpY2stbWVhc3VyZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxZmFhYmU5
YjI5YzVmNTJhMWM2ZjUxMTM5ZmVlMjUxMmZjMDc5ODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2st
bWVhc3VyZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK0NPTlNPTEUgTUVTU0FH
RTogQmxvY2tlZCBieSBjb250ZW50IGV4dGVuc2lvbgorQ09OU09MRSBNRVNTQUdFOiBDYW5ub3Qg
bG9hZCBpbWFnZSBodHRwczovLzEyNy4wLjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTIgZHVl
IHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KK1Rlc3RzIHRoYXQgcHJpdmF0ZSBjbGljayBtZWFz
dXJlbWVudCByZWRpcmVjdHMgdG8gd2VsbC1rbm93biBsb2NhdGlvbiBkb24ndCB0cmlnZ2VyIGEg
Y29udmVyc2lvbiBpZiB0aGV5IGFyZSBibG9ja2VkIGJ5IGNvbnRlbnQgYmxvY2tlcnMuCisKKwor
CistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK0NvbnZlcnNpb24g
bm90IHJlY2VpdmVkIC0gdGltZWQgb3V0LgorCitVbmNvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1l
YXN1cmVtZW50czoKK1dlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEKK1NvdXJjZTog
MTI3LjAuMC4xCitEZXN0aW5hdGlvbjogbG9jYWxob3N0CitDYW1wYWlnbiBJRDogMworTm8gY29u
dmVyc2lvbiBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50
ZXh0ZW5zaW9ucy9ibG9jay1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVh
c3VyZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTkxMDdmNTIyYTRhN2ZlYzNhZGEzMTliOTI4NDlj
ZTIyODJkZTFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250
ZW50ZXh0ZW5zaW9ucy9ibG9jay1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50Lmh0bWwKQEAgLTAs
MCArMSw3MiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNl
RmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAg
ICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRl
bnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5v
Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91
dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBwcml2YXRl
IGNsaWNrIG1lYXN1cmVtZW50IHJlZGlyZWN0cyB0byB3ZWxsLWtub3duIGxvY2F0aW9uIGRvbid0
IHRyaWdnZXIgYSBjb252ZXJzaW9uIGlmIHRoZXkgYXJlIGJsb2NrZWQgYnkgY29udGVudCBibG9j
a2Vycy48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0Ojgw
MDAvY29udGVudGV4dGVuc2lvbnMvYmxvY2stcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC5odG1s
P3N0ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9z
dDo4MDAwIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0Pgor
ICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JU
ZXN0aW5nKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHAiKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7CisgICAgICAgIHZh
ciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKKyAgICAgICAg
dmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8g
MjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zm
c2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50
ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOwor
ICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICB9CisgICAg
ICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYXBwZW5kSWZyYW1lKHVybCwgb25sb2FkQ2Fs
bGJhY2spIHsKKyAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJpZnJhbWUiKTsKKyAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAg
IGlmIChvbmxvYWRDYWxsYmFjaykKKyAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2FkID0g
b25sb2FkQ2FsbGJhY2s7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1l
RWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYXBwZW5kQ29udmVyc2lvbkRhdGFJZnJh
bWVBbmRGaW5pc2goKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZhdGVDbGlja01lYXN1
cmVtZW50KCk7CisgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3Zl
Q2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOworCisgICAgICAgIGFwcGVu
ZElmcmFtZSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jl
c291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHA/dGltZW91dF9tcz0xMDAwIiwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBU
d28iKSB7CisgICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImltZyIpOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0
cHM6Ly8xMjcuMC4wLjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVk
aXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyIjsKKyAgICAgICAgICAgICAg
ICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVu
dC5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZENvbnZl
cnNpb25EYXRhSWZyYW1lQW5kRmluaXNoKCk7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGlu
ayIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5u
ZXIuIjsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1w
cml2YXRlLWNsaWNrLW1lYXN1cmVtZW50Lmh0bWwuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2stcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC5odG1s
Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODhmNTFkZTdhYTExODVmMzNmZWM2MDVhYjg1MTkwZTlhYjVhYTEx
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVu
c2lvbnMvYmxvY2stcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC5odG1sLmpzb24KQEAgLTAsMCAr
MSwxMCBAQAorWworICB7CisgICAgInRyaWdnZXIiOiB7CisgICAgICAidXJsLWZpbHRlciI6ICIv
LndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8iCisgICAgfSwKKyAgICAiYWN0
aW9uIjogeworICAgICAgInR5cGUiOiAiYmxvY2siCisgICAgfQorICB9CitdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2FuY2hvci10
YWctYXR0cmlidXRlcy1yZWZsZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXJlZmxlY3Qt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzZDMwYmQ2ZDdkY2E5ZjdhODNhNzU2ZGNiZTQ2YTFh
ZGM2ZTcwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L2FuY2hvci10YWctYXR0cmlidXRlcy1yZWZsZWN0LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0IGZvciB0aGUgbmV3IHByaXZhdGUgY2xpY2sgbWVh
c3VyZW1lbnQgYXR0cmlidXRlcyBvbiBhbmNob3IgdGFncy4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgYW5jaG9yVGFnLmFkY2FtcGFpZ25pZCBpcyAiNDAiCitQQVNTIGFu
Y2hvclRhZy5hZGRlc3RpbmF0aW9uIGlzICJkZXN0aW5hdGlvbi5leGFtcGxlIgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1h
dHRyaWJ1dGVzLXJlZmxlY3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXJlZmxlY3QuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMjE2OWZkNmMzZTkxZmQwZmViODJmOTVkZDhhYzY0MjliMGU1ZDY4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9h
bmNob3ItdGFnLWF0dHJpYnV0ZXMtcmVmbGVjdC5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9D
VFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50RW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0
YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGEgaWQ9InRlc3RUYWciIGhy
ZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgYWRjYW1wYWlnbmlkPSI0MCIgYWRkZXN0aW5hdGlv
bj0iZGVzdGluYXRpb24uZXhhbXBsZSI+PC9hPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigi
VGVzdCBmb3IgdGhlIG5ldyBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGF0dHJpYnV0ZXMgb24g
YW5jaG9yIHRhZ3MuIik7CisKKyAgICBjb25zdCBhbmNob3JUYWcgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdFRhZyIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiYW5jaG9yVGFn
LmFkY2FtcGFpZ25pZCIsICI0MCIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiYW5jaG9y
VGFnLmFkZGVzdGluYXRpb24iLCAiZGVzdGluYXRpb24uZXhhbXBsZSIpOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L2FuY2hvci10YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
YW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjgwZTlkMTQ2ZTU0ZGJiMzI1N2RhNjRiZDI3OTMwY2UyZmYwMWJjMGMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2FuY2hv
ci10YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBA
CitDT05TT0xFIE1FU1NBR0U6IGFkY2FtcGFpZ25pZCBtdXN0IGhhdmUgYSBub24tbmVnYXRpdmUg
dmFsdWUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDYzIGZvciBQcml2YXRlIENsaWNrIE1lYXN1cmVt
ZW50LgorQ09OU09MRSBNRVNTQUdFOiBhZGNhbXBhaWduaWQgbXVzdCBoYXZlIGEgbm9uLW5lZ2F0
aXZlIHZhbHVlIGxlc3MgdGhhbiBvciBlcXVhbCB0byA2MyBmb3IgUHJpdmF0ZSBDbGljayBNZWFz
dXJlbWVudC4KK0NPTlNPTEUgTUVTU0FHRTogYWRjYW1wYWlnbmlkIGNhbiBub3QgYmUgY29udmVy
dGVkIHRvIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgd2hpY2ggaXMgcmVxdWlyZWQgZm9yIFByaXZh
dGUgQ2xpY2sgTWVhc3VyZW1lbnQuCitDT05TT0xFIE1FU1NBR0U6IGFkY2FtcGFpZ25pZCBjYW4g
bm90IGJlIGNvbnZlcnRlZCB0byBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHdoaWNoIGlzIHJlcXVp
cmVkIGZvciBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50LgorQ09OU09MRSBNRVNTQUdFOiBhZGNh
bXBhaWduaWQgY2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSBub24tbmVnYXRpdmUgaW50ZWdlciB3
aGljaCBpcyByZXF1aXJlZCBmb3IgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudC4KK0NPTlNPTEUg
TUVTU0FHRTogYWRkZXN0aW5hdGlvbiBjb3VsZCBub3QgYmUgY29udmVydGVkIHRvIGEgdmFsaWQg
SFRUUC1mYW1pbHkgVVJMLgorQ09OU09MRSBNRVNTQUdFOiBhZGRlc3RpbmF0aW9uIGNvdWxkIG5v
dCBiZSBjb252ZXJ0ZWQgdG8gYSB2YWxpZCBIVFRQLWZhbWlseSBVUkwuCitDT05TT0xFIE1FU1NB
R0U6IGFkZGVzdGluYXRpb24gY291bGQgbm90IGJlIGNvbnZlcnRlZCB0byBhIHZhbGlkIEhUVFAt
ZmFtaWx5IFVSTC4KK0NPTlNPTEUgTUVTU0FHRTogQm90aCBhZGNhbXBhaWduaWQgYW5kIGFkZGVz
dGluYXRpb24gbmVlZCB0byBiZSBzZXQgZm9yIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgdG8g
d29yay4KK0NPTlNPTEUgTUVTU0FHRTogQm90aCBhZGNhbXBhaWduaWQgYW5kIGFkZGVzdGluYXRp
b24gbmVlZCB0byBiZSBzZXQgZm9yIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgdG8gd29yay4K
K0NPTlNPTEUgTUVTU0FHRTogYWRkZXN0aW5hdGlvbiBjYW4gbm90IGJlIHRoZSBzYW1lIHNpdGUg
YXMgdGhlIGN1cnJlbnQgd2Vic2l0ZS4KK1Rlc3QgZm9yIHZhbGlkaXR5IG9mIHByaXZhdGUgY2xp
Y2sgbWVhc3VyZW1lbnQgYXR0cmlidXRlcyBvbiBhbmNob3IgdGFncy4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L2FuY2hvci10YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2FuY2hvci10YWct
YXR0cmlidXRlcy12YWxpZGF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWMzYTZmOGIzZTM0MDJhNjBh
ZTViYjQ0NzRmMWI2OTE5YWEwZGIzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXZh
bGlkYXRpb24uaHRtbApAQCAtMCwwICsxLDg1IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sIGxh
bmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8bWV0YSBu
YW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxl
PTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICAgLndpZGUt
bGluayB7CisgICAgICAgICAgICB3aWR0aDogMTUwcHg7CisgICAgICAgICAgICBkaXNwbGF5OiBp
bmxpbmUtYmxvY2s7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5BbGxUZXN0cygpIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYg
aWQ9Im91dHB1dCI+PC9kaXY+PGJyPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0
PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZvciB2YWxpZGl0eSBvZiBwcml2YXRlIGNsaWNrIG1l
YXN1cmVtZW50IGF0dHJpYnV0ZXMgb24gYW5jaG9yIHRhZ3MuIik7CisgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisKKyAgICBmdW5jdGlvbiBjcmVhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFu
Y2hvckVsZW1lbnQoZWxlbWVudElELCBhZENhbXBhaWduSUQsIGFkRGVzdGluYXRpb24pIHsKKyAg
ICAgICAgbGV0IGFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7Cisg
ICAgICAgIGFuY2hvckVsZW1lbnQuaWQgPSBlbGVtZW50SUQ7CisgICAgICAgIGFuY2hvckVsZW1l
bnQuY2xhc3NMaXN0LmFkZCgid2lkZS1saW5rIik7CisgICAgICAgIGFuY2hvckVsZW1lbnQuYWRj
YW1wYWlnbmlkID0gYWRDYW1wYWlnbklEOworICAgICAgICBhbmNob3JFbGVtZW50LmFkZGVzdGlu
YXRpb24gPSBhZERlc3RpbmF0aW9uOworICAgICAgICBhbmNob3JFbGVtZW50LmhyZWYgPSAiIyI7
CisgICAgICAgIGFuY2hvckVsZW1lbnQuaW5uZXJUZXh0ID0gIkxpbmsiICsgY3VycmVudFRlc3Q7
CisgICAgICAgIHJldHVybiBhbmNob3JFbGVtZW50OworICAgIH0KKworICAgIGZ1bmN0aW9uIGFj
dGl2YXRlRWxlbWVudChlbGVtZW50SUQsIGNhbGxiYWNrKSB7CisgICAgICAgIFVJSGVscGVyLmFj
dGl2YXRlRWxlbWVudChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpKS50aGVuKAor
ICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7Cisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlByb21pc2UgcmVqZWN0ZWQuIik7CisgICAgICAgICAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgbGV0IGN1
cnJlbnRUZXN0ID0gMDsKKyAgICBmdW5jdGlvbiBydW5PbmVUZXN0KGFkQ2FtcGFpZ25JRCwgYWRE
ZXN0aW5hdGlvbiwgY2FsbGJhY2spIHsKKyAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnRJRCA9
ICJ0ZXN0IiArIGN1cnJlbnRUZXN0Kys7CisgICAgICAgIGNvbnN0IGFuY2hvckVsZW1lbnQgPSBj
cmVhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFuY2hvckVsZW1lbnQoY3VycmVudEVsZW1lbnRJ
RCwgYWRDYW1wYWlnbklELCBhZERlc3RpbmF0aW9uKTsKKyAgICAgICAgb3V0cHV0LmFwcGVuZENo
aWxkKGFuY2hvckVsZW1lbnQpOworICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoY3VycmVudEVsZW1l
bnRJRCwgY2FsbGJhY2spOworICAgIH0KKworICAgIGNvbnN0IHZhbGlkQWRDYW1wYWlnbklEID0g
IjAzIjsKKyAgICBjb25zdCB2YWxpZEFkRGVzdGluYXRpb24gPSAiaHR0cDovL3dlYmtpdC5vcmci
OworICAgIGNvbnN0IHNhbWVTaXRlID0gZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luOworICAgIGNv
bnN0IHRlc3RDYXNlcyA9IFsKKyAgICAgICAgWyB2YWxpZEFkQ2FtcGFpZ25JRCwgdmFsaWRBZERl
c3RpbmF0aW9uIF0sCisgICAgICAgIFsgIjEwMCIsIHZhbGlkQWREZXN0aW5hdGlvbiBdLCAgICAg
ICAgICAgLy8gVG9vIG1hbnkgY2hhcmFjdGVycy4KKyAgICAgICAgWyAiMSIsIHZhbGlkQWREZXN0
aW5hdGlvbiBdLCAgICAgICAgICAgICAvLyBUb28gZmV3IGNoYXJhY3RlcnMuCisgICAgICAgIFsg
Ijk4IiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAgLy8gVG9vIGhpZ2ggdmFsdWUu
CisgICAgICAgIFsgIi0xIiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAgLy8gTmVn
YXRpdmUgdmFsdWUuCisgICAgICAgIFsgImFiIiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAg
ICAgICAgLy8gTm9uLWRpZ2l0cy4KKyAgICAgICAgWyAi76O/MSIsIHZhbGlkQWREZXN0aW5hdGlv
biBdLCAgICAgICAgICAgIC8vIE5vbi1BU0NJSS4KKyAgICAgICAgWyAiIDEiLCB2YWxpZEFkRGVz
dGluYXRpb24gXSwgICAgICAgICAgICAvLyBMZWFkaW5nIHNwYWNlLgorICAgICAgICBbICIxICIs
IHZhbGlkQWREZXN0aW5hdGlvbiBdLCAgICAgICAgICAgIC8vIFRyYWlsaW5nIHNwYWNlLgorICAg
ICAgICBbIHZhbGlkQWRDYW1wYWlnbklELCAid2Via2l0Lm9yZyIgXSwgICAgIC8vIE1pc3Npbmcg
cHJvdG9jb2wuCisgICAgICAgIFsgdmFsaWRBZENhbXBhaWduSUQsICI6Ly93ZWJraXQub3JnIiBd
LCAgLy8gUGFydGlhbGx5IG1pc3NpbmcgcHJvdG9jb2wuCisgICAgICAgIFsgdmFsaWRBZENhbXBh
aWduSUQsICLvo7/vo7/vo78iIF0sICAgICAgICAgICAvLyBOb24tQVNDSUkgY2hhcmFjdGVycyBh
cyBkZXN0aW5hdGlvbi4KKyAgICAgICAgWyAiIiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAg
ICAgICAgICAvLyBFbXB0eSBjYW1wYWlnbiBJRC4KKyAgICAgICAgWyB2YWxpZEFkQ2FtcGFpZ25J
RCwgIiIgXSwgICAgICAgICAgICAgICAvLyBFbXB0eSBkZXN0aW5hdGlvbi4KKyAgICAgICAgWyB2
YWxpZEFkQ2FtcGFpZ25JRCwgc2FtZVNpdGUgXSAgICAgICAgICAvLyBTYW1lLXNpdGUgZGVzdGlu
YXRpb24uCisgICAgXTsKKworICAgIGZ1bmN0aW9uIHJ1bkFsbFRlc3RzKCkgeworICAgICAgICBp
ZiAoY3VycmVudFRlc3QgPCB0ZXN0Q2FzZXMubGVuZ3RoKQorICAgICAgICAgICAgcnVuT25lVGVz
dCh0ZXN0Q2FzZXNbY3VycmVudFRlc3RdWzBdLCB0ZXN0Q2FzZXNbY3VycmVudFRlc3RdWzFdLCBy
dW5BbGxUZXN0cyk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5y
ZW1vdmVDaGlsZChvdXRwdXQpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAg
IH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29u
dmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlv
bi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTdkODY3ZmM2MjA2ODg0NWQ5ZWQyZjlkODhhOTMyNTNiMjI1MDVhNgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2Ut
cmVkaXJlY3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdHMgdGhhdCB0cmlnZ2Vy
aW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgY29udmVyc2lvbnMgdGhyb3VnaCBjcm9z
cy1zaXRlIHJlZGlyZWN0cyBkbyBub3Qgd29yay4KKworCitVbmNvbnZlcnRlZCBQcml2YXRlIENs
aWNrIE1lYXN1cmVtZW50czoKK1dlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEKK1Nv
dXJjZTogMTI3LjAuMC4xCitEZXN0aW5hdGlvbjogbG9jYWxob3N0CitDYW1wYWlnbiBJRDogMwor
Tm8gY29udmVyc2lvbiBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jv
c3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mt
c2l0ZS1pbWFnZS1yZWRpcmVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3NzFiZDYwNmUzNjA2ODIyMzEy
MjkwMjRlNDM0OTAwY2M4MmEyMjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhy
b3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0Lmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFE
T0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9y
dD10cnVlIFByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbCBs
YW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEg
bmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2Fs
ZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5U
ZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCB0cmlnZ2VyaW5nIG9m
IHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgY29udmVyc2lvbnMgdGhyb3VnaCBjcm9zcy1zaXRl
IHJlZGlyZWN0cyBkbyBub3Qgd29yay48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24t
Y29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QuaHRtbD9zdGVwVHdv
IiBhZGNhbXBhaWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+
TGluazwvYT48YnI+Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBwcmVw
YXJlVGVzdCgpOworCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewor
ICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7
CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZz
ZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBl
bGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2Vu
dGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVq
ZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAg
ICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2Nh
dGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAgICAgICAgICAgICBsZXQgaW1hZ2VF
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CisgICAgICAgICAgICAgICAg
aW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovL2xvY2FsaG9zdDo4NDQzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbk9uSVBBZGRyZXNzLnBocD9j
b252ZXJzaW9uRGF0YT0xMiI7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBp
eGVsIjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKKyAgICAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4
ZWwiKSk7CisgICAgICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAg
ICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlt
YWdlRWxlbWVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGFjdGl2
YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4
dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2Ut
cmVkaXJlY3QtaW4tbmV3LXdpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3Vn
aC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
NDFkMmJmZjVkZDM1YjU5ZmE1M2EyNjBlNjRkZWI4Y2I0NWJhOTc1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1
dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdHJpZ2dlcmluZyBvZiBwcml2YXRlIGNs
aWNrIG1lYXN1cmVtZW50IGNvbnZlcnNpb25zIGluIGEgbmV3IHdpbmRvdy4KKworCitDb252ZXJ0
ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CitXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCAxCitTb3VyY2U6IDEyNy4wLjAuMQorRGVzdGluYXRpb246IGxvY2FsaG9zdAorQ2Ft
cGFpZ24gSUQ6IDMKK0NvbnZlcnNpb24gZGF0YTogMTIKK0NvbnZlcnNpb24gcHJpb3JpdHk6IDMK
K0NvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKK0Nv
bnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRo
cm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRo
cm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3MjIz
MDI2ZmU2YmNhZGMyZjJhNWZiNWZkODI2MTFiMWEzZTZjOWUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9u
LWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93Lmh0bWwKQEAg
LTAsMCArMSw1OSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
dXNlRmxleGlibGVWaWV3cG9ydD10cnVlIFByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZD10
cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJV
VEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13
aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMg
dHJpZ2dlcmluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGNvbnZlcnNpb25zIGluIGEg
bmV3IHdpbmRvdy48L2Rpdj4KKzxhIHRhcmdldD0iX2JsYW5rIiByZWw9Im9wZW5lciIgaWQ9InRh
cmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9yZXNvdXJjZXMvY29udmVydEFuZFBvc3RNZXNzYWdlQmFjay5odG1sIiBhZGNhbXBhaWdu
aWQ9IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+
Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBwcmVwYXJlVGVzdCgpOwor
CisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2YXIg
ZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZh
ciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7
CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNl
dEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVy
WSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKKyAg
ICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAgICAg
ICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAg
ICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAg
ICAgICAgICBpZiAoZXZlbnQuZGF0YSA9PT0gIkRvbmUiKSB7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRM
aW5rIikpOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIHVua25vd24g
bWVzc2FnZTogIiArIGV2ZW50LmRhdGEpOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmlu
aXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiAr
IGV2ZW50Lm9yaWdpbik7CisgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAg
ICB9CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNl
aXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldENhbk9w
ZW5XaW5kb3dzKCk7CisgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJv
dXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAgICAgICB0
ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVj
dC13aXRoLXByaW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdl
LXJlZGlyZWN0LXdpdGgtcHJpb3JpdHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0YjI3MjRm
NGZiNTU5ZTU2Y2QxZDlmNGQxZmZjNTk1ZDI0YjY0YjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNv
bnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0cmlnZ2VyaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVh
c3VyZW1lbnQgY29udmVyc2lvbnMgd2l0aCBwcmlvcml0eS4KKworCitDb252ZXJ0ZWQgUHJpdmF0
ZSBDbGljayBNZWFzdXJlbWVudHM6CitXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAx
CitTb3VyY2U6IDEyNy4wLjAuMQorRGVzdGluYXRpb246IGxvY2FsaG9zdAorQ2FtcGFpZ24gSUQ6
IDMKK0NvbnZlcnNpb24gZGF0YTogMTIKK0NvbnZlcnNpb24gcHJpb3JpdHk6IDMKK0NvbnZlcnNp
b24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKK0NvbnZlcnNpb24g
cmVxdWVzdCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1h
Z2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1h
Z2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5Zjk0NTEwZWNjODA0
MGQ5OWNmMmY2ZDYyZjhkNGQ1M2VmOWI5ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNp
b24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5Lmh0bWwKQEAgLTAsMCArMSw1
MiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGli
bGVWaWV3cG9ydD10cnVlIFByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZD10cnVlIF0gLS0+
Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Cisg
ICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5p
dGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGlt
ZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdHJpZ2dlcmlu
ZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGNvbnZlcnNpb25zIHdpdGggcHJpb3JpdHku
PC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFn
ZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5Lmh0bWw/c3RlcFR3byIgYWRjYW1wYWlnbmlkPSIzIiBh
ZGRlc3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgorPGRpdiBp
ZD0ib3V0cHV0Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAgcHJlcGFyZVRlc3QoKTsKKworICAgIGZ1
bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOworICAgICAgICB2YXIgY2VudGVy
WCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAg
ICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQg
LyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4o
CisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJv
dXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7CisgICAgICAgICAg
ICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0
ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImltZyIpOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAi
aHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMv
cmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PTAzIjsK
KyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICAgICAg
ICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOworICAgICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXRMaW5rIikpOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKKyAgICAgICAgICAg
ICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKKyAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRM
aW5rIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1
bm5lci4iOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXBy
aW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0
LXdpdGhvdXQtcHJpb3JpdHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxZjQ2MmNkMGVjMzBj
NmEwMzgyNDE1ZTAzNGUxNjc1ZjFmMDIzYjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNp
b24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEyIEBACitUZXN0cyB0cmlnZ2VyaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3Vy
ZW1lbnQgY29udmVyc2lvbnMgd2l0aG91dCBwcmlvcml0eS4KKworCitDb252ZXJ0ZWQgUHJpdmF0
ZSBDbGljayBNZWFzdXJlbWVudHM6CitXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAx
CitTb3VyY2U6IDEyNy4wLjAuMQorRGVzdGluYXRpb246IGxvY2FsaG9zdAorQ2FtcGFpZ24gSUQ6
IDMKK0NvbnZlcnNpb24gZGF0YTogMTIKK0NvbnZlcnNpb24gcHJpb3JpdHk6IDAKK0NvbnZlcnNp
b24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKK0NvbnZlcnNpb24g
cmVxdWVzdCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1h
Z2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlvcml0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gt
aW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlvcml0eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyMzBiNjlk
Nzk0YzZlMWE1YmNlNjRhOTY0NGRmNjliZTNlM2VkYWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNv
bnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5Lmh0bWwKQEAg
LTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
dXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4K
KyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNv
bnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxl
PW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlk
PSJkZXNjcmlwdGlvbiI+VGVzdHMgdHJpZ2dlcmluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVt
ZW50IGNvbnZlcnNpb25zIHdpdGhvdXQgcHJpb3JpdHkuPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGlu
ayIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0
dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9y
aXR5Lmh0bWw/c3RlcFR3byIgYWRjYW1wYWlnbmlkPSIzIiBhZGRlc3RpbmF0aW9uPSJodHRwOi8v
bG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KKzxz
Y3JpcHQ+CisgICAgcHJlcGFyZVRlc3QoKTsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVu
dChlbGVtZW50SUQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChlbGVtZW50SUQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVm
dCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1l
bnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBl
ci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAi
RkFJTCBQcm9taXNlIHJlamVjdGVkLiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5p
c2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAg
IGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAg
ICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwor
ICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0
My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24u
cGhwP2NvbnZlcnNpb25EYXRhPTEyIjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQg
PSAicGl4ZWwiOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZhdGVDbGlja01l
YXN1cmVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InBpeGVsIikpOworICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAg
ICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChpbWFnZUVsZW1lbnQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBh
Y3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5l
clRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAgIH0KKyAgICB9Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY2xlYXItdGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3Zh
bC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L2NsZWFyLXRocm91Z2gtd2Vic2l0ZS1kYXRhLXJlbW92YWwtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmZjYjVkMzZiNjM0YmEwZjViNWI1NjY3MzFkMDMzMDJkZTNjOTA3ZjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L2NsZWFyLXRocm91Z2gtd2Vic2l0ZS1kYXRhLXJlbW92YWwtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorVGVzdHMgdGhhdCBib3RoIHVuY29udmVydGVkIGFuZCBjb252ZXJ0ZWQgYXR0
cmlidXRpb25zIGFyZSBjbGVhcmVkIG9uIHdlYnNpdGUgZGF0YSByZW1vdmFsLgorCisKKworTm8g
c3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY2xlYXItdGhyb3VnaC13
ZWJzaXRlLWRhdGEtcmVtb3ZhbC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9jbGVhci10aHJvdWdoLXdlYnNpdGUtZGF0YS1yZW1vdmFsLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWU3NGFlYmMzZjIxYzYwODUxN2U2NDNkNzA3YTE4OTdiZjc1NzZhZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvY2xlYXItdGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC5odG1sCkBAIC0wLDAgKzEs
ODMgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhp
YmxlVmlld3BvcnQ9dHJ1ZSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQ9dHJ1ZSBdIC0t
PgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgor
ICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGlu
aXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRp
bWVvdXQocnVuVGVzdCwgMCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgYm90
aCB1bmNvbnZlcnRlZCBhbmQgY29udmVydGVkIGF0dHJpYnV0aW9ucyBhcmUgY2xlYXJlZCBvbiB3
ZWJzaXRlIGRhdGEgcmVtb3ZhbC48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRMaW5rIj5MaW5rPC9hPjxi
cj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0PgorICAgIGNvbnN0IHBhdGggPSAi
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NsZWFyLXRocm91Z2gtd2Vic2l0ZS1kYXRhLXJlbW92
YWwuaHRtbCI7CisgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFsKKyAgICAgICAgeworICAgICAg
ICAgICAgaHJlZjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgKyBwYXRoICsgIj9zdGVwVHdvIiwK
KyAgICAgICAgICAgIGFkY2FtcGFpZ25pZDogIjMiLAorICAgICAgICAgICAgYWRkZXN0aW5hdGlv
bjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgICAgaHJlZjogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgKyBwYXRoICsgIj9zdGVwVGhyZWUi
LAorICAgICAgICAgICAgYWRjYW1wYWlnbmlkOiAiNCIsCisgICAgICAgICAgICBhZGRlc3RpbmF0
aW9uOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIgorICAgICAgICB9CisgICAgXTsKKworICAgIHBy
ZXBhcmVUZXN0KCk7CisKKyAgICBmdW5jdGlvbiBjb25maWd1cmVMaW5rKGluZGV4KSB7CisgICAg
ICAgIGxldCBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5r
Iik7CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiaHJlZiIsIGNvbmZpZ3VyYXRp
b25baW5kZXhdLmhyZWYpOworICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFkY2Ft
cGFpZ25pZCIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmFkY2FtcGFpZ25pZCk7CisgICAgICAgIGxp
bmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRkZXN0aW5hdGlvbiIsIGNvbmZpZ3VyYXRpb25baW5k
ZXhdLmFkZGVzdGluYXRpb24pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVu
dChlbGVtZW50SUQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChlbGVtZW50SUQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVm
dCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1l
bnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBl
ci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAi
RkFJTCBQcm9taXNlIHJlamVjdGVkLiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5p
c2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAg
IGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiIikgeworICAgICAgICAgICAgICAgIC8v
IEZpcnN0IGFkIGNsaWNrIDEyNy4wLjAuMSDigJM+IGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAg
ICBjb25maWd1cmVMaW5rKDApOworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFy
Z2V0TGluayIpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNo
ID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgZmlyc3Qg
YWQgY2xpY2sgd2l0aCBwcmlvcml0eSA0LCB0aGVuIGRvIGEgcmV2ZXJzZSBhZCBjbGljay4KKyAg
ICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aW1nIik7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4w
LjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29u
dmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImcHJpb3JpdHk9MDQiOworICAgICAgICAgICAg
ICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVt
ZW50Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFNlY29u
ZCBhZCBjbGljayBsb2NhbGhvc3Qg4oCTPiAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgICAg
IGNvbmZpZ3VyZUxpbmsoMSk7CisgICAgICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgi
dGFyZ2V0TGluayIpOworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOworICAgICAgICAgICAgfSBlbHNlIGlm
ICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUaHJlZSIpIHsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNp
dGVEYXRhUmVtb3ZhbCgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZhdGVD
bGlja01lYXN1cmVtZW50KCk7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKKyAgICAgICAgICAg
ICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZB
SUwgVW5rbm93biB3aW5kb3cubG9jYXRpb24uc2VhcmNoID09ICIgKyB3aW5kb3cubG9jYXRpb24u
c2VhcmNoICsgIi4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAg
ICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvbnZlcnNpb24t
ZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRpc2FibGVkLWlu
LWVwaGVtZXJhbC1zZXNzaW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZjFhYTA0MmIxMDI3
MzkwNDYyNzdmMWQ4YmNiMGM3OTliZDZiNTk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRpc2FibGVk
LWluLWVwaGVtZXJhbC1zZXNzaW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0
cyB0aGF0IHN0b3JlZCBhdHRyaWJ1dGlvbnMgY2Fubm90IGJlIGNvbnZlcnRlZCBpbiBhbiBlcGhl
bWVyYWwgc2Vzc2lvbi4KKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCist
LS0tLS0tLQorQ29udmVyc2lvbiBub3QgcmVjZWl2ZWQgLSB0aW1lZCBvdXQuCisKK1VuY29udmVy
dGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgorV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQgMQorU291cmNlOiAxMjcuMC4wLjEKK0Rlc3RpbmF0aW9uOiBsb2NhbGhvc3QKK0Nh
bXBhaWduIElEOiAzCitObyBjb252ZXJzaW9uIGRhdGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvbnZlcnNpb24tZGlzYWJsZWQt
aW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lv
bi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjNjMDc4NDY2MmM1MDVjNmIxYjY5MTgwNTU5MDg4YjhjZjNjOTYx
OTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRt
bApAQCAtMCwwICsxLDgwIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sIGxhbmc9ImVuIj4KKzxo
ZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9y
dCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2Nh
bGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KKzxk
aXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IHN0b3JlZCBhdHRyaWJ1dGlvbnMgY2Fubm90
IGJlIGNvbnZlcnRlZCBpbiBhbiBlcGhlbWVyYWwgc2Vzc2lvbi48L2Rpdj4KKzxhIGlkPSJ0YXJn
ZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sP3N0ZXBUd28i
IGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5M
aW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0PgorICAgIGNvbnN0
IGN1cnJlbnRUaW1lTWlsbGlzID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKKyAgICBjb25zdCBo
aWdoRW50cm9weUJpdHMgPSBjdXJyZW50VGltZU1pbGxpcyAtIChNYXRoLmZsb29yKGN1cnJlbnRU
aW1lTWlsbGlzIC8gMTAwMDAwMCkgKiAxMDAwMDAwKTsKKyAgICBjb25zdCBub25jZSA9IGhpZ2hF
bnRyb3B5Qml0cyArICIiICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwKTsKKworICAg
IHByZXBhcmVUZXN0KCk7CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRl
c3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGlu
ZygiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNl
cy9jb252ZXJzaW9uUmVwb3J0LnBocD9ub25jZT0iICsgbm9uY2UpOworCisgICAgZnVuY3Rpb24g
YWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxl
bWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBj
ZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7Cisg
ICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAg
ICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIp
LmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0
ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIGFwcGVuZElmcmFtZSh1cmwsIG9ubG9hZENhbGxiYWNrKSB7CisgICAgICAg
IGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Cisg
ICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25sb2FkQ2FsbGJh
Y2spCisgICAgICAgICAgICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IG9ubG9hZENhbGxiYWNrOwor
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGFwcGVuZENvbnZlcnNpb25EYXRhSWZyYW1lQW5kRmluaXNoKCkgewor
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOworICAgICAg
ICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJn
ZXRMaW5rIikpOworCisgICAgICAgIGFwcGVuZElmcmFtZSgiaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHA/
dGltZW91dF9tcz0xMDAwJm5vbmNlPSIgKyBub25jZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAg
ICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9uT25OZXh0
TmF2aWdhdGlvbih0cnVlKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvbnZlcnNpb24tZGlz
YWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbD9zdGVwVGhyZWUiOworICAgICAgICAgICAg
fSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUaHJlZSIpIHsKKyAg
ICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aW1nIik7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4w
LjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29u
dmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImbm9uY2U9IiArIG5vbmNlOworICAgICAgICAg
ICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7CisgICAgICAgICAgICAgICAgaW1hZ2VF
bGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24odHJ1ZSk7
CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICJodHRwOi8vbG9jYWxob3N0
OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhl
bWVyYWwtc2Vzc2lvbi5odG1sP3N0ZXBGb3VyIjsKKyAgICAgICAgICAgICAgICB9OworICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKKyAgICAg
ICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwRm91ciIp
IHsKKyAgICAgICAgICAgICAgICBhcHBlbmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZpbmlzaCgp
OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUg
PSAiY29va2llU2V0QXNGaXJzdFBhcnR5PTE7IHBhdGg9LyI7CisgICAgICAgICAgICAgICAgYWN0
aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJU
ZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb25zLXJlbW92ZWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9l
eHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjNl
MmI4ZDEyZmMyYWVhZmJlOTAyNDkyMjUzOGU3OGJkMjU4N2RlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0
dHJpYnV0aW9ucy1yZW1vdmVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Rlc3RzIGV4
cGlyYXRpb24gb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudC4KKworCisKK05vIHN0b3JlZCBQ
cml2YXRlIENsaWNrIE1lYXN1cmVtZW50IGRhdGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb25zLXJl
bW92ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvZXhwaXJlZC1hdHRyaWJ1dGlvbnMtcmVtb3ZlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3ZjMwMjRj
MDFhMzcxZDc0YTI3ODAyMzZjMTk1ZTcwYzI2MzQ4Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmli
dXRpb25zLXJlbW92ZWQuaHRtbApAQCAtMCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4gPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxo
dG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8
bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFs
LXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0
KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyBleHBpcmF0aW9uIG9m
IHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQuPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluayIgaHJl
Zj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQt
YXR0cmlidXRpb25zLXJlbW92ZWQuaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMiIGFkZGVz
dGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Cis8ZGl2IGlkPSJv
dXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBwcmVwYXJlVGVzdCgpOworCisgICAgZnVuY3Rp
b24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJYID0g
ZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZh
ciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7
CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAg
ICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1
dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAg
ICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3
byIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm1hcmtQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CisgICAgICAgICAgICAgICAgbGV0IGltYWdlRWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAgICAgICAgICAgICAgIGlt
YWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRh
PTEyIjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAg
ICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJv
ZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOworICAgICAg
ICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgICAgIH07Cisg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOwor
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRh
cmdldExpbmsiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0
ZXN0UnVubmVyLiI7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25GaWxlUGF0aC5waHAgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uRmlsZVBh
dGgucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjdjZTk0NzI2NjUxNTdmZWViMzdjZjllNWVkNTFkYzNjYjVkNjdh
YmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uRmlsZVBhdGgucGhwCkBAIC0wLDAgKzEs
OSBAQAorPD9waHAKK3JlcXVpcmVfb25jZSAnLi4vLi4vcmVzb3VyY2VzL3BvcnRhYmlsaXR5TGF5
ZXIucGhwJzsKKworaWYgKGlzc2V0KCRfR0VUWyJub25jZSJdKSkKKyAgICAkY29udmVyc2lvbkZp
bGVOYW1lID0gIi9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24iIC4gJF9HRVRbIm5v
bmNlIl0gLiAiLnR4dCI7CitlbHNlCisgICAgJGNvbnZlcnNpb25GaWxlTmFtZSA9ICIvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uLnR4dCI7CiskY29udmVyc2lvbkZpbGVQYXRoID0g
c3lzX2dldF90ZW1wX2RpcigpIC4gJGNvbnZlcnNpb25GaWxlTmFtZTsKKz8+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNl
cy9jb252ZXJzaW9uUmVwb3J0LnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmI1YzIwMjY5Yzc4NDkwNmZmZjc0NzQ0OGIzODgxZjQwNjM3YWJjMDEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291
cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocApAQCAtMCwwICsxLDM3IEBACis8P3BocAorcmVxdWly
ZV9vbmNlICdjb252ZXJzaW9uRmlsZVBhdGgucGhwJzsKKworJGNvbnZlcnNpb25GaWxlID0gZm9w
ZW4oJGNvbnZlcnNpb25GaWxlUGF0aCAuICIudG1wIiwgJ3cnKTsKKyRodHRwSGVhZGVycyA9ICRf
U0VSVkVSOworJGNvb2tpZXNGb3VuZCA9IGZhbHNlOworZm9yZWFjaCAoJGh0dHBIZWFkZXJzIGFz
ICRuYW1lID0+ICR2YWx1ZSkgeworICAgIGlmICgkbmFtZSA9PT0gIkhUVFBfSE9TVCIpIHsKKyAg
ICAgICAgZndyaXRlKCRjb252ZXJzaW9uRmlsZSwgIiRuYW1lOiAkdmFsdWVcbiIpOworICAgIH0g
ZWxzZSBpZiAoJG5hbWUgPT09ICJSRVFVRVNUX1VSSSIpIHsKKyAgICAgICAgJHBvc2l0aW9uT2ZO
b25jZSA9IHN0cnBvcygkdmFsdWUsICI/bm9uY2U9Iik7CisgICAgICAgIGlmICgkcG9zaXRpb25P
Zk5vbmNlID09PSBmYWxzZSkKKyAgICAgICAgICAgICRvdXRwdXRVUkwgPSAkdmFsdWU7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICRvdXRwdXRVUkwgPSBzdWJzdHIoJHZhbHVlLCAwLCAkcG9z
aXRpb25PZk5vbmNlKTsKKyAgICAgICAgZndyaXRlKCRjb252ZXJzaW9uRmlsZSwgIiRuYW1lOiAk
b3V0cHV0VVJMXG4iKTsKKyAgICB9IGVsc2UgaWYgKCRuYW1lID09PSAiSFRUUF9DT09LSUUiKSB7
CisgICAgICAgIGZ3cml0ZSgkY29udmVyc2lvbkZpbGUsICJDb29raWVzIGluIGNvbnZlcnNpb24g
cmVxdWVzdDogJHZhbHVlXG4iKTsKKyAgICAgICAgJGNvb2tpZXNGb3VuZCA9IHRydWU7CisgICAg
fSBlbHNlIGlmICgkbmFtZSA9PT0gIkNPTlRFTlRfVFlQRSIpIHsKKyAgICAgICAgZndyaXRlKCRj
b252ZXJzaW9uRmlsZSwgIkNvbnRlbnQgdHlwZTogJHZhbHVlXG4iKTsKKyAgICB9Cit9CitpZiAo
ISRjb29raWVzRm91bmQpIHsKKyAgICBmd3JpdGUoJGNvbnZlcnNpb25GaWxlLCAiTm8gY29va2ll
cyBpbiBjb252ZXJzaW9uIHJlcXVlc3QuXG4iKTsKK30KKworJHJlcXVlc3RCb2R5ID0gZmlsZV9n
ZXRfY29udGVudHMoJ3BocDovL2lucHV0Jyk7Citmd3JpdGUoJGNvbnZlcnNpb25GaWxlLCAiUmVx
dWVzdCBib2R5OlxuJHJlcXVlc3RCb2R5XG4iKTsKKworZmNsb3NlKCRjb252ZXJzaW9uRmlsZSk7
CityZW5hbWUoJGNvbnZlcnNpb25GaWxlUGF0aCAuICIudG1wIiwgJGNvbnZlcnNpb25GaWxlUGF0
aCk7CisKK2hlYWRlcigiSFRUUC8xLjEgMjAwIE9LIik7CitzZXRjb29raWUoImNvb2tpZVNldElu
Q29udmVyc2lvblJlcG9ydCIsICIxIiwgMCwgIi8iKTsKKworPz4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZl
cnRBbmRQb3N0TWVzc2FnZUJhY2suaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnRBbmRQb3N0TWVzc2FnZUJhY2suaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42ZTgxOTNmYTEwNjk0NDU5MGRmNjgyYmE2NGIzM2FmNTg5NzUwYjk4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9yZXNvdXJjZXMvY29udmVydEFuZFBvc3RNZXNzYWdlQmFjay5odG1sCkBAIC0wLDAg
KzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAg
PG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIGZp
cmVDb252ZXJzaW9uUGl4ZWwoKSB7CisgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CisgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3Jj
ID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3Vy
Y2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZwcmlvcml0eT0w
MyI7CisgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICAgICAg
aW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsK
KyAgICAgICAgICAgICAgICBwb3N0TWVzc2FnZUJhY2soKTsKKyAgICAgICAgICAgIH07CisgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBwb3N0TWVzc2FnZUJhY2soKSB7CisgICAgICAgICAgICBp
ZiAod2luZG93Lm9wZW5lcikgeworICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuZXIucG9zdE1l
c3NhZ2UoIkRvbmUiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIik7CisgICAgICAgICAgICAgICAg
d2luZG93LmNsb3NlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChmaXJlQ29udmVyc2lvblBpeGVsLCAw
KSI+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNv
dXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU1ZTIyMDcxNWFmZDY3ZTBiOGVhODk1Njc5MmY0OTBhNGJlMDNhY2EKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHAKQEAgLTAsMCArMSw1NCBAQAorPD9waHAK
K3JlcXVpcmVfb25jZSAnY29udmVyc2lvbkZpbGVQYXRoLnBocCc7CisKKyRub1RpbWVvdXQgPSBU
cnVlOworJHRpbWVvdXRNc2VjcyA9IDA7CitpZiAoaXNzZXQoJF9HRVRbJ3RpbWVvdXRfbXMnXSkp
IHsKKyAgICAkbm9UaW1lb3V0ID0gRmFsc2U7CisgICAgJHRpbWVvdXRNc2VjcyA9IChpbnQpICRf
R0VUWyd0aW1lb3V0X21zJ107Cit9CisKKyRjb252ZXJzaW9uRmlsZUZvdW5kID0gRmFsc2U7Cit3
aGlsZSAoJG5vVGltZW91dCB8fCAkdGltZW91dE1zZWNzID4gMCkgeworICAgIGlmIChmaWxlX2V4
aXN0cygkY29udmVyc2lvbkZpbGVQYXRoKSkgeworICAgICAgICAkY29udmVyc2lvbkZpbGVGb3Vu
ZCA9IFRydWU7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICAkc2xlZXBNc2VjcyA9IDEwOwor
ICAgIHVzbGVlcCgkc2xlZXBNc2VjcyAqIDEwMDApOworICAgIGlmICghJG5vVGltZW91dCkgewor
ICAgICAgICAkdGltZW91dE1zZWNzIC09ICRzbGVlcE1zZWNzOworICAgIH0KKyAgICAvLyBmaWxl
X2V4aXN0cygpIGNhY2hlcyByZXN1bHRzLCB3ZSB3YW50IHRvIGludmFsaWRhdGUgdGhlIGNhY2hl
LgorICAgIGNsZWFyc3RhdGNhY2hlKCk7Cit9CisKKworZWNobyAiPGh0bWw+PGJvZHk+XG4iOwor
CitpZiAoJGNvbnZlcnNpb25GaWxlRm91bmQpIHsKKyAgICBlY2hvICJDb252ZXJzaW9uIHJlY2Vp
dmVkLiI7CisgICAgJGNvbnZlcnNpb25GaWxlID0gZm9wZW4oJGNvbnZlcnNpb25GaWxlUGF0aCwg
J3InKTsKKyAgICB3aGlsZSAoJGxpbmUgPSBmZ2V0cygkY29udmVyc2lvbkZpbGUpKSB7CisgICAg
ICAgIGVjaG8gIjxicj4iOworICAgICAgICBlY2hvIHRyaW0oJGxpbmUpOworICAgIH0KKyAgICBl
Y2hvICI8YnI+IjsKKyAgICBmY2xvc2UoJGNvbnZlcnNpb25GaWxlKTsKKyAgICB1bmxpbmsoJGNv
bnZlcnNpb25GaWxlUGF0aCk7Cit9IGVsc2UgeworICAgIGVjaG8gIkNvbnZlcnNpb24gbm90IHJl
Y2VpdmVkIC0gdGltZWQgb3V0Ljxicj4iOworfQorCitpZiAoaXNzZXQoJF9HRVRbJ2VuZFRlc3Qn
XSkpIHsKKyAgICBlY2hvICI8c2NyaXB0PiI7CisgICAgZWNobyAiaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7IjsKKyAgICBlY2hvICIgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7IjsKKyAgICBl
Y2hvICIgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGlt
ZXJGb3JUZXN0aW5nKGZhbHNlKTsiOworICAgIGVjaG8gIiAgICB0ZXN0UnVubmVyLnNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoJycpOyI7CisgICAgZWNo
byAifSI7CisgICAgZWNobyAiPC9zY3JpcHQ+IjsKK30KKworZWNobyAiPC9ib2R5PjwvaHRtbD4i
OworPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9D
b252ZXJzaW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOGEzNjY3MDNlZDkzMjFiZGUyNTNkMmEwZjVhZTU3
OTk2ZGYwMGZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwCkBA
IC0wLDAgKzEsOSBAQAorPD9waHAKK2hlYWRlcigiSFRUUC8xLjEgMzAyIEZvdW5kIik7CitoZWFk
ZXIoIkNhY2hlLUNvbnRyb2w6IG5vLWNhY2hlLCBuby1zdG9yZSwgbXVzdC1yZXZhbGlkYXRlIik7
CitpZiAoaXNzZXQoJF9HRVRbImNvbnZlcnNpb25EYXRhIl0pICYmIGlzc2V0KCRfR0VUWyJwcmlv
cml0eSJdKSkgeworICBoZWFkZXIoIkxvY2F0aW9uOiAvLndlbGwta25vd24vcHJpdmF0ZS1jbGlj
ay1tZWFzdXJlbWVudC8iIC4gJF9HRVRbImNvbnZlcnNpb25EYXRhIl0gLiAiLyIgLiAkX0dFVFsi
cHJpb3JpdHkiXSk7Cit9IGVsc2UgaWYgKGlzc2V0KCRfR0VUWyJjb252ZXJzaW9uRGF0YSJdKSkg
eworICBoZWFkZXIoIkxvY2F0aW9uOiAvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJl
bWVudC8iIC4gJF9HRVRbImNvbnZlcnNpb25EYXRhIl0pOworfQorPz4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3Jl
ZGlyZWN0VG9Db252ZXJzaW9uT25JUEFkZHJlc3MucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb25P
bklQQWRkcmVzcy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjg0YWVhOGQ0Mjc5NDhjMTlhZmRhZjYxZDJlYmNl
MWJlM2I2YmY3ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uT25JUEFk
ZHJlc3MucGhwCkBAIC0wLDAgKzEsOCBAQAorPD9waHAKK2hlYWRlcigiSFRUUC8xLjAgMzAyIEZv
dW5kIik7CitpZiAoaXNzZXQoJF9HRVRbImNvbnZlcnNpb25EYXRhIl0pICYmIGlzc2V0KCRfR0VU
WyJwcmlvcml0eSJdKSkgeworICBoZWFkZXIoIkxvY2F0aW9uOiBodHRwczovLzEyNy4wLjAuMTo4
MDAwLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvIiAuICRfR0VUWyJjb252
ZXJzaW9uRGF0YSJdIC4gIi8iIC4gJF9HRVRbInByaW9yaXR5Il0pOworfSBlbHNlIGlmIChpc3Nl
dCgkX0dFVFsiY29udmVyc2lvbkRhdGEiXSkpIHsKKyAgaGVhZGVyKCJMb2NhdGlvbjogaHR0cHM6
Ly8xMjcuMC4wLjE6ODAwMC8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LyIg
LiAkX0dFVFsiY29udmVyc2lvbkRhdGEiXSk7Cit9Cis/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvdXRpbC5qcyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2Vz
L3V0aWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTdiMzM2YTk5OTdmN2VhOWYyZGJhZWU4Y2NhNjYxYzk0YWRk
MjE3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3V0aWwuanMKQEAgLTAsMCArMSwxNyBAQAorZnVuY3Rp
b24gcHJlcGFyZVRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGls
ZEZyYW1lc0FzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSh0cnVlKTsKKyAgICB9Cit9
CisKK2Z1bmN0aW9uIHRlYXJEb3duQW5kRmluaXNoKCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGZh
bHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJy
aWRlVGltZXJGb3JUZXN0aW5nKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKCIiKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29u
dmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZl
cnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTkwZDI2
ZjZhZmRiZDNlY2RjMjEzYmZlMjNhMzYzZGQxNzQ3YmNhMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJp
YnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMiBAQAorVGVzdHMgdGhhdCBhIHNlY29uZCBhdHRyaWJ1dGlvbiBjb252ZXJzaW9uIHdp
dGggaGlnaGVyIHByaW9yaXR5IHJlcGxhY2VzIGFuIG9sZGVyIHdpdGggbG93ZXIgcHJpb3JpdHku
CisKKworQ29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgorV2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQorU291cmNlOiAxMjcuMC4wLjEKK0Rlc3RpbmF0aW9uOiBs
b2NhbGhvc3QKK0NhbXBhaWduIElEOiA0CitDb252ZXJzaW9uIGRhdGE6IDEyCitDb252ZXJzaW9u
IHByaW9yaXR5OiA0CitDb252ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogV2l0aGluIDI0
LTQ4IGhvdXJzCitDb252ZXJzaW9uIHJlcXVlc3Qgc2VudDogZmFsc2UKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJp
YnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29u
dmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjE2OWFiYTAyNTg2
ZmNmNTdlYThkOTA2OTI4NDRmMDliZGYwNTU2MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9u
LWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sCkBAIC0wLDAgKzEsOTIgQEAKKzwh
RE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3Bv
cnQ9dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNl
dD0iVVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZp
Y2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRl
c3RzIHRoYXQgYSBzZWNvbmQgYXR0cmlidXRpb24gY29udmVyc2lvbiB3aXRoIGhpZ2hlciBwcmlv
cml0eSByZXBsYWNlcyBhbiBvbGRlciB3aXRoIGxvd2VyIHByaW9yaXR5LjwvZGl2PgorPGEgaWQ9
InRhcmdldExpbmsiPkxpbms8L2E+PGJyPgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KKzxzY3Jp
cHQ+CisgICAgY29uc3QgcGF0aCA9ICIvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0
dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sIjsKKyAgICBjb25z
dCBjb25maWd1cmF0aW9uID0gWworICAgICAgICB7CisgICAgICAgICAgICBocmVmOiAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIiArIHBhdGggKyAiP3N0ZXBUd28iLAorICAgICAgICAgICAgYWRjYW1w
YWlnbmlkOiAiMyIsCisgICAgICAgICAgICBhZGRlc3RpbmF0aW9uOiAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICBocmVmOiAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIiArIHBhdGggKyAiP3N0ZXBGb3VyIiwKKyAgICAgICAgICAgIGFkY2Ft
cGFpZ25pZDogIjQiLAorICAgICAgICAgICAgYWRkZXN0aW5hdGlvbjogImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIKKyAgICAgICAgfQorICAgIF07CisKKyAgICBwcmVwYXJlVGVzdCgpOworCisgICAg
ZnVuY3Rpb24gY29uZmlndXJlTGluayhpbmRleCkgeworICAgICAgICBsZXQgbGlua0VsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpOworICAgICAgICBsaW5rRWxl
bWVudC5zZXRBdHRyaWJ1dGUoImhyZWYiLCBjb25maWd1cmF0aW9uW2luZGV4XS5ocmVmKTsKKyAg
ICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhZGNhbXBhaWduaWQiLCBjb25maWd1cmF0
aW9uW2luZGV4XS5hZGNhbXBhaWduaWQpOworICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1
dGUoImFkZGVzdGluYXRpb24iLCBjb25maWd1cmF0aW9uW2luZGV4XS5hZGRlc3RpbmF0aW9uKTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7CisgICAg
ICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKKyAg
ICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdp
ZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1l
bnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJY
LCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3Rl
ZC4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICB9
CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9u
LnNlYXJjaCA9PT0gIiIpIHsKKyAgICAgICAgICAgICAgICAvLyBGaXJzdCBhZCBjbGljayAxMjcu
MC4wLjEg4oCTPiBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgY29uZmlndXJlTGluaygwKTsK
KyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICAgICAg
ICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgewor
ICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIGZpcnN0IGFkIGNsaWNrIHdpdGggcHJpb3Jp
dHkgMyBhbmQgbmF2aWdhdGUgYmFjayB0byAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgbGV0
IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAgICAgICAg
ICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZl
cnNpb25EYXRhPTEyJnByaW9yaXR5PTAzIjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQu
aWQgPSAicGl4ZWwiOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgKyBwYXRoICsgIj9zdGVwVGhyZWUiOworICAgICAgICAg
ICAgICAgIH07CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFn
ZUVsZW1lbnQpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNo
ID09PSAiP3N0ZXBUaHJlZSIpIHsKKyAgICAgICAgICAgICAgICAvLyBTZWNvbmQgYWQgY2xpY2sg
MTI3LjAuMC4xIOKAkz4gbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGNvbmZpZ3VyZUxpbmso
MSk7CisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAg
ICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcEZvdXIi
KSB7CisgICAgICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgc2Vjb25kIGFkIGNsaWNrIHdpdGgg
cHJpb3JpdHkgNCBhbmQgZmluaXNoLgorICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAgICAgICAgICAgICBpbWFnZUVs
ZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZw
cmlvcml0eT0wNCI7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsK
KyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQo
KTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKKyAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7
CisgICAgICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICAg
ICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxl
bWVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBVbmtub3duIHdpbmRvdy5s
b2NhdGlvbi5zZWFyY2ggPT0gIiArIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggKyAiLiI7CisgICAg
ICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5p
bm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAgIH0KKyAgICB9Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13
aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRo
LWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzdmMzE4ZmM3NjlhZjFl
NmMxOTU3NWQ1MDg0YzAyNTc1MmVjNmRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29u
dmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAK
K1Rlc3RzIHRoYXQgYSBzZWNvbmQgYXR0cmlidXRpb24gY29udmVyc2lvbiB3aXRoIGxvd2VyIHBy
aW9yaXR5IGRvZXMgbm90IHJlcGxhY2UgYW4gb2xkZXIgd2l0aCBoaWdoZXIgcHJpb3JpdHkuCisK
KworQ29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgorV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgMQorU291cmNlOiAxMjcuMC4wLjEKK0Rlc3RpbmF0aW9uOiBsb2Nh
bGhvc3QKK0NhbXBhaWduIElEOiAzCitDb252ZXJzaW9uIGRhdGE6IDEyCitDb252ZXJzaW9uIHBy
aW9yaXR5OiA0CitDb252ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogV2l0aGluIDI0LTQ4
IGhvdXJzCitDb252ZXJzaW9uIHJlcXVlc3Qgc2VudDogZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0
aW9uLWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0
ZWQtd2l0aC1sb3dlci1wcmlvcml0eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5MjVmYWIyMTg2YzQ4NzYx
MGQxM2NiZjA2NjNlOWI4NjQ1NjliNTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252
ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS5odG1sCkBAIC0wLDAgKzEsOTIgQEAKKzwhRE9DVFlQ
RSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1
ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRG
LTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lk
dGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+CisgICAgPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRo
YXQgYSBzZWNvbmQgYXR0cmlidXRpb24gY29udmVyc2lvbiB3aXRoIGxvd2VyIHByaW9yaXR5IGRv
ZXMgbm90IHJlcGxhY2UgYW4gb2xkZXIgd2l0aCBoaWdoZXIgcHJpb3JpdHkuPC9kaXY+Cis8YSBp
ZD0idGFyZ2V0TGluayI+TGluazwvYT48YnI+Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNj
cmlwdD4KKyAgICBjb25zdCBwYXRoID0gIi9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQt
YXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHkuaHRtbCI7CisgICAgY29u
c3QgY29uZmlndXJhdGlvbiA9IFsKKyAgICAgICAgeworICAgICAgICAgICAgaHJlZjogImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCIgKyBwYXRoICsgIj9zdGVwVHdvIiwKKyAgICAgICAgICAgIGFkY2Ft
cGFpZ25pZDogIjMiLAorICAgICAgICAgICAgYWRkZXN0aW5hdGlvbjogImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgaHJlZjogImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCIgKyBwYXRoICsgIj9zdGVwRm91ciIsCisgICAgICAgICAgICBhZGNh
bXBhaWduaWQ6ICI0IiwKKyAgICAgICAgICAgIGFkZGVzdGluYXRpb246ICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiCisgICAgICAgIH0KKyAgICBdOworCisgICAgcHJlcGFyZVRlc3QoKTsKKworICAg
IGZ1bmN0aW9uIGNvbmZpZ3VyZUxpbmsoaW5kZXgpIHsKKyAgICAgICAgbGV0IGxpbmtFbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKTsKKyAgICAgICAgbGlua0Vs
ZW1lbnQuc2V0QXR0cmlidXRlKCJocmVmIiwgY29uZmlndXJhdGlvbltpbmRleF0uaHJlZik7Cisg
ICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRjYW1wYWlnbmlkIiwgY29uZmlndXJh
dGlvbltpbmRleF0uYWRjYW1wYWlnbmlkKTsKKyAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmli
dXRlKCJhZGRlc3RpbmF0aW9uIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRkZXN0aW5hdGlvbik7
CisgICAgfQorCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAg
ICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Cisg
ICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRX
aWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVt
ZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVy
WCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
IH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0
ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAg
fQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlv
bi5zZWFyY2ggPT09ICIiKSB7CisgICAgICAgICAgICAgICAgLy8gRmlyc3QgYWQgY2xpY2sgMTI3
LjAuMC4xIOKAkz4gbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGNvbmZpZ3VyZUxpbmsoMCk7
CisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAg
ICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsK
KyAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBmaXJzdCBhZCBjbGljayB3aXRoIHByaW9y
aXR5IDQgYW5kIG5hdmlnYXRlIGJhY2sgdG8gMTI3LjAuMC4xLgorICAgICAgICAgICAgICAgIGxl
dCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAgICAg
ICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252
ZXJzaW9uRGF0YT0xMiZwcmlvcml0eT0wNCI7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50
LmlkID0gInBpeGVsIjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiICsgcGF0aCArICI/c3RlcFRocmVlIjsKKyAgICAgICAg
ICAgICAgICB9OworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1h
Z2VFbGVtZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJj
aCA9PT0gIj9zdGVwVGhyZWUiKSB7CisgICAgICAgICAgICAgICAgLy8gU2Vjb25kIGFkIGNsaWNr
IDEyNy4wLjAuMSDigJM+IGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICBjb25maWd1cmVMaW5r
KDEpOworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOworICAg
ICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBGb3Vy
IikgeworICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIHNlY29uZCBhZCBjbGljayB3aXRo
IHByaW9yaXR5IDMgYW5kIGZpbmlzaC4KKyAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CisgICAgICAgICAgICAgICAgaW1hZ2VF
bGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTIm
cHJpb3JpdHk9MDMiOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7
CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50
KCk7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIikp
OworICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAg
ICAgIH07CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVs
ZW1lbnQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgVW5rbm93biB3aW5kb3cu
bG9jYXRpb24uc2VhcmNoID09ICIgKyB3aW5kb3cubG9jYXRpb24uc2VhcmNoICsgIi4iOworICAg
ICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iiku
aW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9CisgICAgfQorPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVy
LXByaW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHktZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwYTRmZmVlZDZkZmE4MmU5ODAzZjZmNmQxMjdhOTY0OThm
M2I4MGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHRoZSBhdHRyaWJ1dGlvbiBp
cyB1cGRhdGVkIGlmIGl0IGdldHMgYSBzZWNvbmQgY29udmVyc2lvbiB3aXRoIGhpZ2hlciBwcmlv
cml0eS4KKworCitDb252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CitXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCitTb3VyY2U6IDEyNy4wLjAuMQorRGVzdGluYXRp
b246IGxvY2FsaG9zdAorQ2FtcGFpZ24gSUQ6IDMKK0NvbnZlcnNpb24gZGF0YTogMTIKK0NvbnZl
cnNpb24gcHJpb3JpdHk6IDQKK0NvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRo
aW4gMjQtNDggaG91cnMKK0NvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQt
Y29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hl
ci1wcmlvcml0eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhOGIzOGE5NDA2YmNhOWE3ZWJmMzQxYjI1YjEx
OTI0NjI4NDMwNDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9y
aXR5Lmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJl
biI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0i
dmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1
c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3Vp
LWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAw
KSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCB0aGUgYXR0cmlidXRpb24gaXMg
dXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGNvbnZlcnNpb24gd2l0aCBoaWdoZXIgcHJpb3Jp
dHkuPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluayI+TGluazwvYT48YnI+Cis8ZGl2IGlkPSJvdXRw
dXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBjb25zdCBwYXRoID0gIi9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sIjsKKyAg
ICBjb25zdCBjb25maWd1cmF0aW9uID0gWworICAgICAgICB7CisgICAgICAgICAgICBocmVmOiAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIiArIHBhdGggKyAiP3N0ZXBUd28iLAorICAgICAgICAgICAg
YWRjYW1wYWlnbmlkOiAiMyIsCisgICAgICAgICAgICBhZGRlc3RpbmF0aW9uOiAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIgorICAgICAgICB9CisgICAgXTsKKworICAgIHByZXBhcmVUZXN0KCk7CisK
KyAgICBmdW5jdGlvbiBjb25maWd1cmVMaW5rKGluZGV4KSB7CisgICAgICAgIGxldCBsaW5rRWxl
bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIik7CisgICAgICAgIGxp
bmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiaHJlZiIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmhyZWYp
OworICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFkY2FtcGFpZ25pZCIsIGNvbmZp
Z3VyYXRpb25baW5kZXhdLmFkY2FtcGFpZ25pZCk7CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0
dHJpYnV0ZSgiYWRkZXN0aW5hdGlvbiIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmFkZGVzdGluYXRp
b24pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsK
KyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQp
OworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zm
c2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsg
ZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNl
bnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJl
amVjdGVkLiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjb252ZXJ0KHByaW9yaXR5
LCBjYWxsYmFjaykgeworICAgICAgICBsZXQgcGl4ZWxFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInBpeGVsIik7CisgICAgICAgIGlmIChwaXhlbEVsZW1lbnQpCisgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHBpeGVsRWxlbWVudCk7CisKKyAgICAgICAgbGV0
IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAgICAgICBp
bWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0
YT0xMiZwcmlvcml0eT0iICsgcHJpb3JpdHk7CisgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJw
aXhlbCI7CisgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gY2FsbGJhY2s7CisgICAgICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiIikgeworICAgICAgICAg
ICAgICAgIC8vIEFkIGNsaWNrIDEyNy4wLjAuMSDigJM+IGxvY2FsaG9zdC4KKyAgICAgICAgICAg
ICAgICBjb25maWd1cmVMaW5rKDApOworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgi
dGFyZ2V0TGluayIpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2Vh
cmNoID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgYWQg
Y2xpY2sgd2l0aCBwcmlvcml0eSAzLgorICAgICAgICAgICAgICAgIGNvbnZlcnQoIjAzIiwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIGFkIGNsaWNrIHdp
dGggcHJpb3JpdHkgNC4KKyAgICAgICAgICAgICAgICAgICAgY29udmVydCgiMDQiLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZhdGVDbGlj
a01lYXN1cmVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOworICAgICAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicGl4ZWwiKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFu
ZEZpbmlzaCgpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFVua25vd24gd2luZG93LmxvY2F0aW9u
LnNlYXJjaCA9PSAiICsgd2luZG93LmxvY2F0aW9uLnNlYXJjaCArICIuIjsKKyAgICAgICAgICAg
ICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4
dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjNmNWRjZDg5NGMwNDgzNTdjOTE4M2ZmNjAwNDE2NTMyZGI4MmI0YQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCB0aGUgYXR0cmlidXRpb24gaXMgbm90IHVwZGF0
ZWQgaWYgaXQgZ2V0cyBhIHNlY29uZCBjb252ZXJzaW9uIHdpdGggbG93ZXIgcHJpb3JpdHkuCisK
KworQ29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgorV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgMQorU291cmNlOiAxMjcuMC4wLjEKK0Rlc3RpbmF0aW9uOiBsb2Nh
bGhvc3QKK0NhbXBhaWduIElEOiAzCitDb252ZXJzaW9uIGRhdGE6IDEyCitDb252ZXJzaW9uIHBy
aW9yaXR5OiA0CitDb252ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogV2l0aGluIDI0LTQ4
IGhvdXJzCitDb252ZXJzaW9uIHJlcXVlc3Qgc2VudDogZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNp
b24td2l0aC1sb3dlci1wcmlvcml0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjM5NjJjOGI0MjRkNDI5NGI4YmMxN2Y0OWFiZGNiOTMyMTE3MDky
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS5odG1sCkBA
IC0wLDAgKzEsODUgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBj
b250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJs
ZT1ubyI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRpdiBp
ZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgdGhlIGF0dHJpYnV0aW9uIGlzIG5vdCB1cGRhdGVk
IGlmIGl0IGdldHMgYSBzZWNvbmQgY29udmVyc2lvbiB3aXRoIGxvd2VyIHByaW9yaXR5LjwvZGl2
PgorPGEgaWQ9InRhcmdldExpbmsiPkxpbms8L2E+PGJyPgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rp
dj4KKzxzY3JpcHQ+CisgICAgY29uc3QgcGF0aCA9ICIvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
c2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS5odG1sIjsKKyAgICBjb25zdCBj
b25maWd1cmF0aW9uID0gWworICAgICAgICB7CisgICAgICAgICAgICBocmVmOiAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIiArIHBhdGggKyAiP3N0ZXBUd28iLAorICAgICAgICAgICAgYWRjYW1wYWln
bmlkOiAiMyIsCisgICAgICAgICAgICBhZGRlc3RpbmF0aW9uOiAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIgorICAgICAgICB9CisgICAgXTsKKworICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBmdW5j
dGlvbiBjb25maWd1cmVMaW5rKGluZGV4KSB7CisgICAgICAgIGxldCBsaW5rRWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIik7CisgICAgICAgIGxpbmtFbGVtZW50
LnNldEF0dHJpYnV0ZSgiaHJlZiIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmhyZWYpOworICAgICAg
ICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFkY2FtcGFpZ25pZCIsIGNvbmZpZ3VyYXRpb25b
aW5kZXhdLmFkY2FtcGFpZ25pZCk7CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgi
YWRkZXN0aW5hdGlvbiIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmFkZGVzdGluYXRpb24pOworICAg
IH0KKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKKyAgICAgICAg
dmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOworICAgICAg
ICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGgg
LyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5v
ZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNl
bnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7
CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjb252ZXJ0KHByaW9yaXR5LCBjYWxsYmFj
aykgeworICAgICAgICBsZXQgcGl4ZWxFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InBpeGVsIik7CisgICAgICAgIGlmIChwaXhlbEVsZW1lbnQpCisgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5LnJlbW92ZUNoaWxkKHBpeGVsRWxlbWVudCk7CisKKyAgICAgICAgbGV0IGltYWdlRWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAgICAgICBpbWFnZUVsZW1l
bnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
cmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZwcmlv
cml0eT0iICsgcHJpb3JpdHk7CisgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Cisg
ICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gY2FsbGJhY2s7CisgICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAg
IGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiIikgeworICAgICAgICAgICAgICAgIC8v
IEFkIGNsaWNrIDEyNy4wLjAuMSDigJM+IGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICBjb25m
aWd1cmVMaW5rKDApOworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGlu
ayIpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAi
P3N0ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgYWQgY2xpY2sgd2l0
aCBwcmlvcml0eSA0LgorICAgICAgICAgICAgICAgIGNvbnZlcnQoIjA0IiwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIGFkIGNsaWNrIHdpdGggcHJpb3Jp
dHkgMy4KKyAgICAgICAgICAgICAgICAgICAgY29udmVydCgiMDMiLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxk
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOworICAgICAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicGl4ZWwiKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgp
OworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91
dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFVua25vd24gd2luZG93LmxvY2F0aW9uLnNlYXJjaCA9
PSAiICsgd2luZG93LmxvY2F0aW9uLnNlYXJjaCArICIuIjsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAi
RkFJTCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9z
ZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYWNlMjA3Njg1MmZmZDhmYTczZGVjOGFmN2I4YTFkMjBiMTE3M2ExYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vu
ZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjcgQEAKK1Rlc3RzIHNlbmRpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCByZXF1ZXN0
cyBhZnRlciBhIGNvbnZlcnNpb24uIEFsc28gdGVzdHMgdGhhdCBjb29raWVzIGFyZSBub3Qgc2Vu
dCBpbiB0aG9zZSByZXF1ZXN0cyBhbmQgY29va2llcyBhcmUgbm90IGFjY2VwdGVkIGluIHRoZSBy
ZXNwb25zZXMuCisKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0t
LS0KK0Nvb2tpZXMgYXJlOiBjb29raWVTZXRBc0ZpcnN0UGFydHkgPSAxCisKKy0tLS0tLS0tCitG
cmFtZTogJzwhLS1mcmFtZTItLT4nCistLS0tLS0tLQorQ29udmVyc2lvbiByZWNlaXZlZC4KK0hU
VFBfSE9TVDogMTI3LjAuMC4xOjgwMDAKK0NvbnRlbnQgdHlwZTogYXBwbGljYXRpb24vanNvbgor
UkVRVUVTVF9VUkk6IC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lv
blJlcG9ydC5waHAKK05vIGNvb2tpZXMgaW4gY29udmVyc2lvbiByZXF1ZXN0LgorUmVxdWVzdCBi
b2R5OgoreyJjb250ZW50LXR5cGUiOiJjbGljayIsImNvbnRlbnQtc2l0ZSI6IjEyNy4wLjAuMSIs
ImNvbnRlbnQtaWQiOjMsImNvbnZlcnNpb24tc2l0ZSI6ImxvY2FsaG9zdCIsImNvbnZlcnNpb24t
ZGF0YSI6MTIsInJlcG9ydC12ZXJzaW9uIjoxfQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1m
cmFtZTMtLT4nCistLS0tLS0tLQorQ29va2llcyBhcmU6IGNvb2tpZVNldEFzRmlyc3RQYXJ0eSA9
IDEKKworTm8gc3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgZGF0YS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1h
dHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJl
cXVlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDY1ZDA3YzdlMGQ5M2I4MzgwYmVlYWM0ZTczNzI5N2Mw
MjI2MGQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1s
CkBAIC0wLDAgKzEsODAgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhl
YWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0
IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2Fs
YWJsZT1ubyI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRp
diBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHNlbmRpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJl
bWVudCByZXF1ZXN0cyBhZnRlciBhIGNvbnZlcnNpb24uIEFsc28gdGVzdHMgdGhhdCBjb29raWVz
IGFyZSBub3Qgc2VudCBpbiB0aG9zZSByZXF1ZXN0cyBhbmQgY29va2llcyBhcmUgbm90IGFjY2Vw
dGVkIGluIHRoZSByZXNwb25zZXMuPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmlidXRp
b24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWw/c3RlcFR3byIgYWRjYW1wYWlnbmlkPSIzIiBhZGRl
c3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgorPGRpdiBpZD0i
b3V0cHV0Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAgY29uc3QgY3VycmVudFRpbWVNaWxsaXMgPSAo
bmV3IERhdGUoKSkuZ2V0VGltZSgpOworICAgIGNvbnN0IGhpZ2hFbnRyb3B5Qml0cyA9IGN1cnJl
bnRUaW1lTWlsbGlzIC0gKE1hdGguZmxvb3IoY3VycmVudFRpbWVNaWxsaXMgLyAxMDAwMDAwKSAq
IDEwMDAwMDApOworICAgIGNvbnN0IG5vbmNlID0gaGlnaEVudHJvcHlCaXRzICsgIiIgKyBNYXRo
LmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApOworCisgICAgcHJlcGFyZVRlc3QoKTsKKworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcodHJ1ZSk7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGlu
ZygiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNl
cy9jb252ZXJzaW9uUmVwb3J0LnBocD9ub25jZT0iICsgbm9uY2UpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOworICAgICAgICB2YXIgY2VudGVy
WCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAg
ICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQg
LyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4o
CisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJv
dXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7CisgICAgICAgICAg
ICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBhcHBlbmRJZnJhbWUodXJsLCBvbmxvYWRDYWxsYmFjaykgewor
ICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFt
ZSIpOworICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9ubG9h
ZENhbGxiYWNrKQorICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBvbmxvYWRDYWxs
YmFjazsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBhcHBlbmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZpbmlz
aCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsK
KyAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0TGluayIpKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7CisKKyAgICAgICAgYXBwZW5kSWZyYW1lKCJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvY29va2llcy9yZXNvdXJjZXMvZWNoby1jb29raWVzLnBocCIp
OworICAgICAgICBhcHBlbmRJZnJhbWUoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhwP3RpbWVvdXRfbXM9
MjAwMCZub25jZT0iICsgbm9uY2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXBwZW5kSWZy
YW1lKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvY29va2llcy9yZXNvdXJjZXMvZWNoby1jb29raWVz
LnBocCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBp
ZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgeworICAgICAgICAgICAg
ICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAg
ICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBo
cD9jb252ZXJzaW9uRGF0YT0xMiZub25jZT0iICsgbm9uY2U7CisgICAgICAgICAgICAgICAgaW1h
Z2VFbGVtZW50LmlkID0gInBpeGVsIjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25l
cnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBhcHBlbmRDb252ZXJzaW9u
RGF0YUlmcmFtZUFuZEZpbmlzaCgpOworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOworICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiY29va2llU2V0QXNG
aXJzdFBhcnR5PTE7IHBhdGg9LyI7CisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0
YXJnZXRMaW5rIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8g
dGVzdFJ1bm5lci4iOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtZGlz
YWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyYTli
ZTg4MDMzYjE0NWQxYTk1NTRhM2VhYTVkZmNhYjM0ODc1MWIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLWRpc2Fi
bGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Rl
c3RzIHRoYXQgc3RvcmFnZSBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGlzIGRpc2FibGVk
IGluIGVwaGVtZXJhbCBzZXNzaW9ucy4KKworCisKK05vIHN0b3JlZCBQcml2YXRlIENsaWNrIE1l
YXN1cmVtZW50IGRhdGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3Jl
LWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDNlODJkNWM5
OGYzMDJiNDEzY2ExODE4NzI0NWVmMGYwYjY0NWNmYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtZGlzYWJsZWQt
aW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSB1c2VFcGhlbWVyYWxTZXNzaW9u
PXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250
ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1u
byI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRpdiBpZD0i
ZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgc3RvcmFnZSBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVt
ZW50IGlzIGRpc2FibGVkIGluIGVwaGVtZXJhbCBzZXNzaW9ucy48L2Rpdj4KKzxhIGlkPSJ0YXJn
ZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbD9zdGVwVHdvIiBhZGNh
bXBhaWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwv
YT48YnI+Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBwcmVwYXJlVGVz
dCgpOworCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAgICAg
ICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAg
ICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0
aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50
Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwg
Y2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQu
IjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQor
ICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5z
ZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHku
cmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAg
ICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xp
Y2stbWVhc3VyZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zMzhiMTBlZTVkZTgwNjc1MWZiN2MwNGYzNWRiYWVkMDNhOTcz
MTE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDkgQEAKK1Rlc3RzIHN0b3JhZ2Ugb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJl
bWVudC4KKworCitVbmNvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKK1dlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEKK1NvdXJjZTogMTI3LjAuMC4xCitEZXN0aW5h
dGlvbjogbG9jYWxob3N0CitDYW1wYWlnbiBJRDogMworTm8gY29udmVyc2lvbiBkYXRhLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9z
dG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xpY2stbWVhc3VyZW1l
bnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wZWFlNmU5M2E4NzFkYWNlMzU5ZDBlZjkzNTBjZTg4ZGMxYjYw
ZmY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50Lmh0bWwKQEAgLTAs
MCArMSw0NSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNl
RmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAg
ICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRl
bnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5v
Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+VGVzdHMgc3RvcmFnZSBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50Ljwv
ZGl2PgorPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50Lmh0bWw/
c3RlcFR3byIgYWRjYW1wYWlnbmlkPSIzIiBhZGRlc3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0
OjgwMDAiPkxpbms8L2E+PGJyPgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KKzxzY3JpcHQ+Cisg
ICAgcHJlcGFyZVRlc3QoKTsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50
SUQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVt
ZW50SUQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1l
bnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0
VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0
ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9t
aXNlIHJlamVjdGVkLiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkg
eworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIGlmICh3aW5k
b3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRM
aW5rIikpOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIp
OworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIu
IjsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLUFkQ2xpY2tB
dHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVu
YWJsZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZjE1NDQ5
MGU1MGM5M2U5YzhhNDU3YmIwNTM2ZWFkYzRmM2U4NWQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL292ZXJy
aWRlU2V0dGluZy1BZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBbQWQgQ2xp
Y2sgQXR0cmlidXRpb25dIFR1cm5lZCBEZWJ1ZyBNb2RlIG9uLgotVGVzdHMgZm9yIHRoZSBQYWdl
Lm92ZXJyaWRlU2V0dGluZyBjb21tYW5kLgotCi0KLT09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUGFn
ZS5vdmVycmlkZVNldHRpbmcKLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBQYWdlLm92ZXJyaWRlU2V0
dGluZy5BZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkCi1FbmFibGluZyBhZCBjbGlj
ayBhdHRyaWJ1dGlvbiBkZWJ1ZyBtb2RlLi4uCi1QQVNTOiBTaG91bGQgYnJvYWRjYXN0IGF0IGxl
YXN0IG9uZSBjb25zb2xlIG1lc3NhZ2UuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1BZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFi
bGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctQWRD
bGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBmYWRmMTFkN2MxYzE1ZjQ4YWE0MzA1ZTEwNDRmNzc1NjQ5NmVlZDgyLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1BZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVF
bmFibGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5j
dGlvbiB0ZXN0KCkKLXsKLSAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5j
U3VpdGUoIlBhZ2Uub3ZlcnJpZGVTZXR0aW5nIik7Ci0KLSAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7
Ci0gICAgICAgIG5hbWU6ICJQYWdlLm92ZXJyaWRlU2V0dGluZy5BZENsaWNrQXR0cmlidXRpb25E
ZWJ1Z01vZGVFbmFibGVkIiwKLSAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0IHRoYXQgY2hhbmdp
bmcgd2hldGhlciBhZCBjbGljayBhdHRyaWJ1dGlvbiBkZWJ1ZyBtb2RlIGlzIGVuYWJsZWQgaGFz
IGFuIGVmZmVjdC4iLAotICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAg
ICAgbGV0IGxpc3RlbmVyID0gV0kuY29uc29sZU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5D
b25zb2xlTWFuYWdlci5FdmVudC5NZXNzYWdlQWRkZWQsIChldmVudCkgPT4gewotICAgICAgICAg
ICAgICAgIGxldCB7bWVzc2FnZX0gPSBldmVudC5kYXRhOwotICAgICAgICAgICAgICAgIGlmICht
ZXNzYWdlLnNvdXJjZSAhPT0gV0kuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5BZENsaWNr
QXR0cmlidXRpb24pCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QucGFzcygiU2hvdWxkIGJyb2FkY2FzdCBhdCBsZWFzdCBvbmUgY29u
c29sZSBtZXNzYWdlLiIpOwotCi0gICAgICAgICAgICAgICAgV0kuY29uc29sZU1hbmFnZXIucmVt
b3ZlRXZlbnRMaXN0ZW5lcihXSS5Db25zb2xlTWFuYWdlci5FdmVudC5NZXNzYWdlQWRkZWQsIGxp
c3RlbmVyKTsKLSAgICAgICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgICAgICB9KTsKLQot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVuYWJsaW5nIGFkIGNsaWNrIGF0dHJpYnV0
aW9uIGRlYnVnIG1vZGUuLi4iKTsKLSAgICAgICAgICAgIFBhZ2VBZ2VudC5vdmVycmlkZVNldHRp
bmcoSW5zcGVjdG9yQmFja2VuZC5FbnVtLlBhZ2UuU2V0dGluZy5BZENsaWNrQXR0cmlidXRpb25E
ZWJ1Z01vZGVFbmFibGVkLCB0cnVlKS5jYXRjaChyZWplY3QpOwotICAgICAgICB9LAotICAgIH0p
OwotCi0gICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Ci19Ci0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotICAgIDxwPlRlc3RzIGZvciB0aGUg
UGFnZS5vdmVycmlkZVNldHRpbmcgY29tbWFuZC48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dERlYnVnTW9kZUVuYWJsZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1ZDhlNTUyNzRiODg5
MDIwNjJhNmRjMmNlMDIwYWFkYzU5ZTJhYzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRE
ZWJ1Z01vZGVFbmFibGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0NPTlNPTEUgTUVT
U0FHRTogW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFR1cm5lZCBEZWJ1ZyBNb2RlIG9uLgor
VGVzdHMgZm9yIHRoZSBQYWdlLm92ZXJyaWRlU2V0dGluZyBjb21tYW5kLgorCisKKz09IFJ1bm5p
bmcgdGVzdCBzdWl0ZTogUGFnZS5vdmVycmlkZVNldHRpbmcKKy0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBQYWdlLm92ZXJyaWRlU2V0dGluZy5Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVu
YWJsZWQKK0VuYWJsaW5nIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgZGVidWcgbW9kZS4uLgor
UEFTUzogU2hvdWxkIGJyb2FkY2FzdCBhdCBsZWFzdCBvbmUgY29uc29sZSBtZXNzYWdlLgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1
Z01vZGVFbmFibGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTdiMjVjYzgzMDE4NWFmMzE1NDQwMmY5NTA2
ZjJmNWRjZWExOTNiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
YWdlL292ZXJyaWRlU2V0dGluZy1Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJs
ZWQuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAg
ICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlBhZ2Uub3ZlcnJp
ZGVTZXR0aW5nIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJQ
YWdlLm92ZXJyaWRlU2V0dGluZy5Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJs
ZWQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3QgdGhhdCBjaGFuZ2luZyB3aGV0aGVyIHBy
aXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgZGVidWcgbW9kZSBpcyBlbmFibGVkIGhhcyBhbiBlZmZl
Y3QuIiwKKyAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIGxldCBs
aXN0ZW5lciA9IFdJLmNvbnNvbGVNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29uc29sZU1h
bmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBs
ZXQge21lc3NhZ2V9ID0gZXZlbnQuZGF0YTsKKyAgICAgICAgICAgICAgICBpZiAobWVzc2FnZS5z
b3VyY2UgIT09IFdJLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UuUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QucGFzcygiU2hvdWxkIGJyb2FkY2FzdCBhdCBsZWFzdCBvbmUgY29uc29s
ZSBtZXNzYWdlLiIpOworCisgICAgICAgICAgICAgICAgV0kuY29uc29sZU1hbmFnZXIucmVtb3Zl
RXZlbnRMaXN0ZW5lcihXSS5Db25zb2xlTWFuYWdlci5FdmVudC5NZXNzYWdlQWRkZWQsIGxpc3Rl
bmVyKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVuYWJsaW5nIHByaXZhdGUgY2xpY2sgbWVhc3Vy
ZW1lbnQgZGVidWcgbW9kZS4uLiIpOworICAgICAgICAgICAgUGFnZUFnZW50Lm92ZXJyaWRlU2V0
dGluZyhJbnNwZWN0b3JCYWNrZW5kLkVudW0uUGFnZS5TZXR0aW5nLlByaXZhdGVDbGlja01lYXN1
cmVtZW50RGVidWdNb2RlRW5hYmxlZCwgdHJ1ZSkuY2F0Y2gocmVqZWN0KTsKKyAgICAgICAgfSwK
KyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorCis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0cyBm
b3IgdGhlIFBhZ2Uub3ZlcnJpZGVTZXR0aW5nIGNvbW1hbmQuPC9wPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDZhYzNlNzBiYmM1YjE4ZjU0MTllNzA4Mjk1N2E4OTYyZjRmMTFmYTcuLmYzY2Q2M2ZmZjA0ODM5
MzgxY2U5MDhmNWZmMTNhYzM0MGM2NzUyZWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEwODAsOSArMTA4MCw2IEBAIHdlYmtpdC5vcmcv
Yi82ODI3OCBodHRwL3Rlc3RzL2hpc3RvcnkvYmFjay13aXRoLWZyYWdtZW50LWNoYW5nZS5waHAg
WyBQYXNzIEZhaWx1CiAjIDxyZGFyOi8vcHJvYmxlbS8zNzMzMDM3Nz4gQVNhbiB0ZXN0cyBleGl0
aW5nIGVhcmx5IGR1ZSB0byB0aW1lb3V0cwogWyBSZWxlYXNlIF0gaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZGVyaXZlX2JpdHNfa2V5cyBbIFNraXAgXQogCi0j
IDxyZGFyOi8vcHJvYmxlbS82MDA2MzAwMj4gUkVHUkVTU0lPTjogKHIyNTc3NTgpIGh0dHAvdGVz
dHMvYWRDbGlja0F0dHJpYnV0aW9uL2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNl
c3Npb24uaHRtbCBpcyBjcmFzaGluZwotaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vY29u
dmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sIFsgUGFzcyBDcmFzaCBd
Ci0KICMgPHJkYXI6Ly9wcm9ibGVtLzYwMTA1OTI3PiBbIE1hYyB3azIgUmVsZWFzZSBdIHdlYmdw
dS93aGxzbC9tYWtlLWFycmF5LXJlZmVyZW5jZS5odG1sIGlzIGZsYWt5IGZhaWxpbmcKIFsgUmVs
ZWFzZSBdIHdlYmdwdS93aGxzbC9tYWtlLWFycmF5LXJlZmVyZW5jZS5odG1sIFsgUGFzcyBGYWls
dXJlIF0KIApAQCAtMTEzMSw4ICsxMTI4LDggQEAgd2VicnRjL3NpbXVsY2FzdC1oMjY0Lmh0bWwg
WyBQYXNzIFRpbWVvdXQgXQogIyA8cmRhcjovL3Byb2JsZW0vNjMyNzUyMTM+IFJFR1JFU1NJT046
IGh0dHAvdGVzdHMvSW5kZXhlZERCL3N0b3JhZ2UtbGltaXQtMS5odHRwcy5odG1sIGlzIGEgZmxh
a3kgZmFpbHVyZQogWyBCaWdTdXIrIFJlbGVhc2UgXSBodHRwL3Rlc3RzL0luZGV4ZWREQi9zdG9y
YWdlLWxpbWl0LTEuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKLSMgPHJkYXI6Ly9wcm9i
bGVtLzYzMzU3NDgxPiBodHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZW5kLWF0dHJpYnV0
aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1sIGlzIGEgc3VwZXIgZmxha3kgZmFpbHVyZQotWyBC
aWdTdXIrIERlYnVnIF0gaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2VuZC1hdHRyaWJ1
dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCisjIDxyZGFyOi8v
cHJvYmxlbS82MzM1NzQ4MT4gaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5k
LWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1sIGlzIGEgc3VwZXIgZmxha3kgZmFp
bHVyZQorWyBCaWdTdXIrIERlYnVnIF0gaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1sIFsgUGFzcyBGYWlsdXJl
IF0KIAogIyA8cmRhcjovL3Byb2JsZW0vNjM1NTQyNDk+IFsyMEEyNzldIERRIGJvdHMgYXJlIHNl
ZWluZyBodHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvZGlzay1jYWNoZS12YWxpZGF0aW9uLWJh
Y2stbmF2aWdhdGlvbi1wb2xpY3kuaHRtbCBhbmQgaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hl
L2Rpc2stY2FjaGUtdmFsaWRhdGlvbi1uby1ib2R5Lmh0bWwgYXJlIHRpbWluZyBvdXQKIHdlYmtp
dC5vcmcvYi8xNzk3OTYgaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL2Rpc2stY2FjaGUtdmFs
aWRhdGlvbi1iYWNrLW5hdmlnYXRpb24tcG9saWN5Lmh0bWwgWyBQYXNzIEZhaWx1cmUgVGltZW91
dCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDhkN2Q0
OTBlYjMyODRjMzA5ZGNjZDJhMGUxODZkOTgwNDM2MjdlOTQuLjE0OWFmNzhlMTVlMGExMjBmNzcy
NzRlMjUxZDliMzk4NGNmODc1NzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dr
Mi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhw
ZWN0YXRpb25zCkBAIC03NDYsNyArNzQ2LDcgQEAgc3RvcmFnZS9pbmRleGVkZGIvSURCT2JqZWN0
LWxlYWsuaHRtbCBbIFBhc3MgXQogCiBmYXN0L2Zvcm1zL2NhbGwtdGV4dC1kaWQtY2hhbmdlLWlu
LXRleHQtZmllbGQtd2hlbi10eXBpbmcuaHRtbCBbIFBhc3MgXQogCi1odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbiBbIFBhc3MgXQoraHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCBbIFBhc3MgXQogCiAjIFVzZXIgaW50ZXJhY3Rpb24gaXMgYSBXZWJLaXQyIGNvbmNlcHQuCiBp
bnNwZWN0b3IvZGVidWdnZXIvZXZhbHVhdGVPbkNhbGxGcmFtZS1lbXVsYXRlVXNlckdlc3R1cmUt
dXNlcklzSW50ZXJhY3RpbmcuaHRtbCBbIFBhc3MgXQpAQCAtNzU2LDggKzc1Niw4IEBAIGluc3Bl
Y3Rvci9ydW50aW1lL2NhbGxGdW5jdGlvbk9uLWVtdWxhdGVVc2VyR2VzdHVyZS11c2VySXNJbnRl
cmFjdGluZy5odG1sIFsgUGFzCiAjIFRhcmdldCBkb21haW4gaXMgb25seSBwcmVzZW50IGluIFdl
YktpdDIuCiBodHRwL3Rlc3RzL2luc3BlY3Rvci90YXJnZXQgWyBQYXNzIF0KIAotIyBJVFAgYW5k
IEFkQ2xpY2tBdHRyaWJ1dGlvbiBhcmUgV0syIG9ubHkuCi1pbnNwZWN0b3IvcGFnZS9vdmVycmlk
ZVNldHRpbmctQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZC5odG1sIFsgUGFzcyBd
CisjIElUUCBhbmQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXJlIFdLMiBvbmx5LgoraW5zcGVj
dG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2Rl
RW5hYmxlZC5odG1sIFsgUGFzcyBdCiBpbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctSVRQ
RGVidWdNb2RlRW5hYmxlZC5odG1sIFsgUGFzcyBdCiAKICMgSGlnaGxpZ2h0aW5nIG1hcmtlZCB0
ZXh0IHJhbmdlcyBmcm9tIGxheW91dCB0ZXN0cyBpcyBvbmx5IHN1cHBvcnRlZCBpbiBXZWJLaXQy
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2MzllZDIx
MjNjMGM5ZmY1Y2UwMDJiMGYzYTAwZTZkYjEyMzRkYjUwLi41YzAwMDk4MWVlM2E0MjAyZmM0Mzlh
ZWZhZjFjMGVhZGEwYTY0Y2EzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMjQ4LDcgKzI0OCw3IEBAIHdlYmtpdC5vcmcvYi8yMTU1MDIgZmFzdC9mbGV4
Ym94L2ltYWdlLXBlcmNlbnQtbWF4LWhlaWdodC5odG1sIFsgRmFpbHVyZSBQYXNzIEltCiB3ZWJr
aXQub3JnL2IvMjE4Njg5IGltcG9ydGVkL2JsaW5rL2Zhc3QvZm9ybXMvdGV4dGFyZWEtcGxhY2Vo
b2xkZXItdmlzaWJpbGl0eS0zLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogIyBMaW5rIHRh
cmdldAotd2Via2l0Lm9yZy9iLzIxODU1MyBodHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9h
dHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRv
dy5odG1sIFsgVGltZW91dCBdCit3ZWJraXQub3JnL2IvMjE4NTUzIGh0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJl
ZGlyZWN0LWluLW5ldy13aW5kb3cuaHRtbCBbIFRpbWVvdXQgXQogd2Via2l0Lm9yZy9iLzIxMjA4
MyBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJuYWwtdXJscy91c2Vy
LWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGgtZmxhZy1mcm9tLXN1YmZyYW1lLmh0bWwKIHdlYmtp
dC5vcmcvYi8yMTIwODMgbG9hZGVyL25hdmlnYXRpb24tcG9saWN5L3Nob3VsZC1vcGVuLWV4dGVy
bmFsLXVybHMvdXNlci1nZXN0dXJlLXRhcmdldC1ibGFuay13aXRoLWZsYWcuaHRtbAogd2Via2l0
Lm9yZy9iLzIxMjA4MyBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJu
YWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGhvdXQtZmxhZy1mcm9tLXN1YmZy
YW1lLmh0bWwK
</data>
<flag name="commit-queue"
          id="430600"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>