<?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>134822</bug_id>
          
          <creation_ts>2014-07-10 19:02:16 -0700</creation_ts>
          <short_desc>Add pointer/hover media queries</short_desc>
          <delta_ts>2020-12-10 08:25:18 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rick Byers">rbyers</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>ap</cc>
    
    <cc>bruno</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>koivisto</cc>
    
    <cc>sabberworm</cc>
    
    <cc>syoichi</cc>
    
    <cc>tabatkins</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1021759</commentid>
    <comment_count>0</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2014-07-10 19:02:16 -0700</bug_when>
    <thetext>Chrome and IE will soon be shipping full support for the &quot;interaction media features&quot; from MQ4: http://dev.w3.org/csswg/mediaqueries4/#mf-interaction (Eg. pointer and hover).  https://code.google.com/p/chromium/issues/detail?id=136119

We feel these are important to help rationalize touch feature detection (eg. dev tools emulation, touchscreen laptops, etc.) and help correct some of the many false assumptions web developers make when they see that touch events are supported.

Any chance WebKit would also be interested in implementing these features?  It would probably be OK to trivially hard-code them as follows:
on Mac OS X: pointer: fine, hover, any-pointer: fine, any-hover
on iOS: pointer: coarse, !hover, any-pointer: coarse, !any-hover

Although you may want to do the work to detect whether a mouse is plugged in on Mac OS X to properly differentiate pointer: fine and pointer: none.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023849</commentid>
    <comment_count>1</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2014-07-21 18:04:47 -0700</bug_when>
    <thetext>*** Bug 87806 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023851</commentid>
    <comment_count>2</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2014-07-21 18:05:05 -0700</bug_when>
    <thetext>*** Bug 88339 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063584</commentid>
    <comment_count>3</comment_count>
      <attachid>245199</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-01-22 20:13:34 -0800</bug_when>
    <thetext>Created attachment 245199
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063585</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-22 20:15:33 -0800</bug_when>
    <thetext>Attachment 245199 did not pass style-queue:


ERROR: Source/WebCore/css/MediaQueryEvaluator.cpp:668:  any_hoverMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/css/MediaQueryEvaluator.cpp:686:  any_pointerMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 48 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063752</commentid>
    <comment_count>5</comment_count>
      <attachid>245199</attachid>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2015-01-23 13:21:53 -0800</bug_when>
    <thetext>Comment on attachment 245199
Patch

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

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:662
&gt; +    return hoverCSSKeywordID == CSSValueNone;

I think the spec would expect mobile Safari to return true for &quot;on-demand&quot;.  I.e. long press (last I checked) triggers :hover styles.  Personally I don&apos;t see a ton of value in differentiating between on-demand and none (wasn&apos;t my idea to add that bit to the spec), but that&apos;s how we implement it in chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063758</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-01-23 13:32:01 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 245199 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=245199&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/MediaQueryEvaluator.cpp:662
&gt; &gt; +    return hoverCSSKeywordID == CSSValueNone;
&gt; 
&gt; I think the spec would expect mobile Safari to return true for &quot;on-demand&quot;. 
&gt; I.e. long press (last I checked) triggers :hover styles.  Personally I don&apos;t
&gt; see a ton of value in differentiating between on-demand and none (wasn&apos;t my
&gt; idea to add that bit to the spec), but that&apos;s how we implement it in
&gt; chromium.

I understand the idea of &quot;on-demand&quot; for Android but I don&apos;t think it is interesting for iOS:
1) Hover is not at all part of the design language of the platform.
2) The &quot;hover&quot; event we support is pure legacy stuff, that is not something you can easily rely on.

When given the choice of a stylesheet that relies little to hover or a stylesheet that do not rely at all on hover, iOS should get the later IMHO.

Thanks for checking the patch by the way!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063761</commentid>
    <comment_count>7</comment_count>
      <attachid>245199</attachid>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2015-01-23 13:43:32 -0800</bug_when>
    <thetext>Comment on attachment 245199
Patch

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

&gt;&gt;&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:662
&gt;&gt;&gt; +    return hoverCSSKeywordID == CSSValueNone;
&gt;&gt; 
&gt;&gt; I think the spec would expect mobile Safari to return true for &quot;on-demand&quot;.  I.e. long press (last I checked) triggers :hover styles.  Personally I don&apos;t see a ton of value in differentiating between on-demand and none (wasn&apos;t my idea to add that bit to the spec), but that&apos;s how we implement it in chromium.
&gt; 
&gt; I understand the idea of &quot;on-demand&quot; for Android but I don&apos;t think it is interesting for iOS:
&gt; 1) Hover is not at all part of the design language of the platform.
&gt; 2) The &quot;hover&quot; event we support is pure legacy stuff, that is not something you can easily rely on.
&gt; 
&gt; When given the choice of a stylesheet that relies little to hover or a stylesheet that do not rely at all on hover, iOS should get the later IMHO.
&gt; 
&gt; Thanks for checking the patch by the way!

Interesting.  I&apos;m not sure Android is any different in this regard - I agree we&apos;d always prefer a stylesheet that doesn&apos;t rely on hover (except on devices like the Galaxy S4 which have a hover-sensitive touchscreen, should we decide to expose that to the web platform).  If you think &apos;none&apos; is the better value for mobile Safari, perhaps we should change Chrome android to match?  Are you interested in starting a discussion with CSSWG around this?  I don&apos;t think I was part of the discussion where on-demand was added (or at least I didn&apos;t pay enough attention).

&gt; Thanks for checking the patch by the way!

You bet, I believe this is my old code that you&apos;re cleaning up (sorry) &lt;grin&gt;.  Thanks for adding this to Safari even though it doesn&apos;t communicate any new information!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063776</commentid>
    <comment_count>8</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-01-23 14:28:45 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt;&gt; I think the spec would expect mobile Safari to return true for &quot;on-demand&quot;.  I.e. long press (last I checked) triggers :hover styles.  Personally I don&apos;t see a ton of value in differentiating between on-demand and none (wasn&apos;t my idea to add that bit to the spec), but that&apos;s how we implement it in chromium.
&gt; &gt; 
&gt; &gt; I understand the idea of &quot;on-demand&quot; for Android but I don&apos;t think it is interesting for iOS:
&gt; &gt; 1) Hover is not at all part of the design language of the platform.
&gt; &gt; 2) The &quot;hover&quot; event we support is pure legacy stuff, that is not something you can easily rely on.
&gt; &gt; 
&gt; &gt; When given the choice of a stylesheet that relies little to hover or a stylesheet that do not rely at all on hover, iOS should get the later IMHO.
&gt; &gt; 
&gt; &gt; Thanks for checking the patch by the way!
&gt; 
&gt; Interesting.  I&apos;m not sure Android is any different in this regard - I agree
&gt; we&apos;d always prefer a stylesheet that doesn&apos;t rely on hover (except on
&gt; devices like the Galaxy S4 which have a hover-sensitive touchscreen, should
&gt; we decide to expose that to the web platform).  If you think &apos;none&apos; is the
&gt; better value for mobile Safari, perhaps we should change Chrome android to
&gt; match?  Are you interested in starting a discussion with CSSWG around this? 
&gt; I don&apos;t think I was part of the discussion where on-demand was added (or at
&gt; least I didn&apos;t pay enough attention).

I am already in the CSS WG if you want to start a thread.

I am not sure there is any need to spec here. It seems more like a policy problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063864</commentid>
    <comment_count>9</comment_count>
      <attachid>245199</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-01-23 20:15:59 -0800</bug_when>
    <thetext>Comment on attachment 245199
Patch

Clearing flags on attachment: 245199

Committed r179055: &lt;http://trac.webkit.org/changeset/179055&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063865</commentid>
    <comment_count>10</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-01-23 20:16:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063874</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-01-23 21:27:35 -0800</bug_when>
    <thetext>This broke Mac build:

/Volumes/Data/slave/yosemite-release/build/WebKitBuild/Release/DerivedSources/WebCore/JSInternalSettingsGenerated.cpp:1061:10: error: no member named &apos;setDeviceSupportsMouse&apos; in &apos;WebCore::InternalSettingsGenerated&apos;
    impl.setDeviceSupportsMouse(deviceSupportsMouse);
    ~~~~ ^
/Volumes/Data/slave/yosemite-release/build/WebKitBuild/Release/DerivedSources/WebCore/JSInternalSettingsGenerated.cpp:1078:10: error: no member named &apos;setDeviceSupportsTouch&apos; in &apos;WebCore::InternalSettingsGenerated&apos;
    impl.setDeviceSupportsTouch(deviceSupportsTouch);
    ~~~~ ^
2 errors generated.

Surprised that EWS didn&apos;t say so, were there additional changes landed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109580</commentid>
    <comment_count>12</comment_count>
    <who name="hexalys">bruno</who>
    <bug_when>2015-07-15 00:05:49 -0700</bug_when>
    <thetext>(In reply to comment #8)

&gt; I am not sure there is any need to spec here. It seems more like a policy
&gt; problem.

Any-hover:none seems ok. But I am looking at the iOS Simulator where it should technically be &apos;pointer: fine&apos;. It&apos;s coarse ATM. That&apos;ll help making the distinction between a simulator or touch emulation and the actual device with a touch screen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109582</commentid>
    <comment_count>13</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-07-15 00:07:41 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #8)
&gt; 
&gt; &gt; I am not sure there is any need to spec here. It seems more like a policy
&gt; &gt; problem.
&gt; 
&gt; Any-hover:none seems ok. But I am looking at the iOS Simulator where it
&gt; should technically be &apos;pointer: fine&apos;. It&apos;s coarse ATM. That&apos;ll help making
&gt; the distinction between a simulator or touch emulation and the actual device
&gt; with a touch screen.

That is intended. The simulator is supposed to behave like the device as much as possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109585</commentid>
    <comment_count>14</comment_count>
    <who name="hexalys">bruno</who>
    <bug_when>2015-07-15 00:32:20 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; Any-hover:none seems ok. But I am looking at the iOS Simulator where it
&gt; &gt; should technically be &apos;pointer: fine&apos;. 
&gt; 
&gt; That is intended. The simulator is supposed to behave like the device as
&gt; much as possible.

Ok, fair enough. But the problem is, it&apos;s so identical that it can&apos;t be detected anymore. I&apos;d welcome a return of &apos;Emulator&apos; in the UA or navigator.platform as it was in iOS 5 phone simulator. There are valid reasons to exclude simulator visits from analytics (e.g. not to pollute google analytics performance stats) or identify them as debug mode, etc...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109587</commentid>
    <comment_count>15</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-07-15 00:36:24 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; &gt; Any-hover:none seems ok. But I am looking at the iOS Simulator where it
&gt; &gt; &gt; should technically be &apos;pointer: fine&apos;. 
&gt; &gt; 
&gt; &gt; That is intended. The simulator is supposed to behave like the device as
&gt; &gt; much as possible.
&gt; 
&gt; Ok, fair enough. But the problem is, it&apos;s so identical that it can&apos;t be
&gt; detected anymore. I&apos;d welcome a return of &apos;Emulator&apos; in the UA or
&gt; navigator.platform as it was in iOS 5 phone simulator. There are valid
&gt; reasons to exclude simulator visits from analytics (e.g. not to pollute
&gt; google analytics performance stats) or identify them as debug mode, etc...

We used to get quite a bit of complain when the user-agent was saying it is the emulator. Some websites could not be tested properly because they relied on user-agent sniffing.

Can the iOS emulator really be a problem for analytics? There are several thousands iOS developers against several millions iOS users. At worst that is a drop in the ocean.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109599</commentid>
    <comment_count>16</comment_count>
    <who name="hexalys">bruno</who>
    <bug_when>2015-07-15 01:39:56 -0700</bug_when>
    <thetext>(In reply to comment #15) 

&gt; We used to get quite a bit of complain when the user-agent was saying it is
&gt; the emulator. Some websites could not be tested properly because they relied
&gt; on user-agent sniffing.

Ok. Odd complaint for not doing it right. But I could see how it somehow affected their readings.

&gt; Can the iOS emulator really be a problem for analytics? There are several
&gt; thousands iOS developers against several millions iOS users. At worst that
&gt; is a drop in the ocean.

Not a deal breaker in terms of performance data. But for a small site that has less then 30 visits a days, with a Dev or any other person doing 10+ visits a day, it can affect metrics significantly over short periods of time, yes.

One method is via Device Orientation readings at load which is not exactly ideal... I am setting debug cookies for scripts anyway. I was just looking for a better detection method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713549</commentid>
    <comment_count>17</comment_count>
    <who name="Raphael Schweikert">sabberworm</who>
    <bug_when>2020-12-10 08:25:18 -0800</bug_when>
    <thetext>It seems that iPadOS with an attached pointing device will still report none for the pointer and hover media queries. Any chance of this being fixed?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245199</attachid>
            <date>2015-01-22 20:13:34 -0800</date>
            <delta_ts>2015-01-23 20:15:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134822-20150122201342.patch</filename>
            <type>text/plain</type>
            <size>70643</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4Nzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWQxNjIxNjIwOTg0MzM3
ZGFkNWNlODZmNTVkOWE4MWRjMzIyNWU2MS4uMjY2MzYyYzEwNzU3NmYwNjdjNmMwYzQ3MjcxYjIw
OWRiMTNlMDYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE1LTAxLTIyICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBwb2ludGVy
L2hvdmVyIG1lZGlhIHF1ZXJpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzNDgyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1lZGlhIFF1ZXJpZXMgTGV2ZWwgNCBpbnRyb2R1Y2VzIHR3byB0eXBlcyBv
ZiBJbnRlcmFjdGlvbiBNZWRpYSBGZWF0dXJlczoKKyAgICAgICAgInBvaW50ZXIiIGFuZCAiaG92
ZXIiLiBUaG9zZSBtZWRpYSBmZWF0dXJlcyBhcmUgdXNlZnVsIGZvciBhZGFwdGluZyB0aGUgZGVz
aWduCisgICAgICAgIHRvIHRoZSB0eXBlIG9mIGlucHV0OgorICAgICAgICAgICAgaHR0cDovL2Rl
di53My5vcmcvY3Nzd2cvbWVkaWFxdWVyaWVzLTQvI21mLWludGVyYWN0aW9uCisKKyAgICAgICAg
VGhpcyBpbXBsZW1lbnRhdGlvbiBpcyB0cml2aWFsOiBqdXN0ICNpZmRlZiB0aGUgcmV0dXJuIHZh
bHVlIGRlcGVuZGluZyBvbgorICAgICAgICB0aGUgc3VwcG9ydCBmb3IgdG91Y2ggZXZlbnRzLgor
ICAgICAgICBJbiB0aGUgZnV0dXJlIHdlIHNob3VsZCBtb3ZlIHRoYXQgdG8gYSBjbGllbnQgaW50
ZXJmYWNlIGJ1dCBsZXQncyBzdGFydCBlYXN5CisgICAgICAgIGZvciBub3cuCisKKyAgICAgICAg
VGVzdHM6IGZhc3QvbWVkaWEvbXEtYW55LWhvdmVyLWNzc29tLmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3QvbWVkaWEvbXEtYW55LWhvdmVyLWludmFsaWQuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9tZWRpYS9tcS1hbnktaG92ZXItbWF0Y2hNZWRpYS5odG1sCisgICAgICAgICAgICAgICBmYXN0
L21lZGlhL21xLWFueS1ob3Zlci1zdHlsaW5nLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvbWVk
aWEvbXEtYW55LXBvaW50ZXItY3Nzb20uaHRtbAorICAgICAgICAgICAgICAgZmFzdC9tZWRpYS9t
cS1hbnktcG9pbnRlci1pbnZhbGlkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvbWVkaWEvbXEt
YW55LXBvaW50ZXItbWF0Y2hNZWRpYS5odG1sCisgICAgICAgICAgICAgICBmYXN0L21lZGlhL21x
LWFueS1wb2ludGVyLXN0eWxpbmcuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9tZWRpYS9tcS1o
b3Zlci1jc3NvbS5odG1sCisgICAgICAgICAgICAgICBmYXN0L21lZGlhL21xLWhvdmVyLWludmFs
aWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9tZWRpYS9tcS1ob3Zlci1tYXRjaE1lZGlhLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvbWVkaWEvbXEtaG92ZXItc3R5bGluZy5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L21lZGlhL21xLXBvaW50ZXItY3Nzb20uaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9tZWRpYS9tcS1wb2ludGVyLWludmFsaWQuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9tZWRpYS9tcS1wb2ludGVyLW1hdGNoTWVkaWEuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9t
ZWRpYS9tcS1wb2ludGVyLXN0eWxpbmcuaHRtbAorCisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW46CisgICAgICAgICogY3NzL01lZGlhRmVhdHVyZU5hbWVzLmg6CisgICAgICAgICog
Y3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aG92ZXJNZWRp
YUZlYXR1cmVFdmFsKToKKyAgICAgICAgKFdlYkNvcmU6OmFueV9ob3Zlck1lZGlhRmVhdHVyZUV2
YWwpOgorICAgICAgICAoV2ViQ29yZTo6cG9pbnRlck1lZGlhRmVhdHVyZUV2YWwpOgorICAgICAg
ICAoV2ViQ29yZTo6YW55X3BvaW50ZXJNZWRpYUZlYXR1cmVFdmFsKToKKyAgICAgICAgKFdlYkNv
cmU6OmxlYXN0Q2FwYWJsZVByaW1hcnlQb2ludGVyRGV2aWNlVHlwZSk6IERlbGV0ZWQuCisgICAg
ICAgICogY3NzL01lZGlhUXVlcnlFeHAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmVhdHVyZVdp
dGhDU1NWYWx1ZUlEKToKKyAgICAgICAgKFdlYkNvcmU6OmZlYXR1cmVXaXRoWmVyb09yT25lKToK
KyAgICAgICAgKFdlYkNvcmU6OmZlYXR1cmVXaXRob3V0VmFsdWUpOgorICAgICAgICAqIHBhZ2Uv
RXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGlzcGF0
Y2hGYWtlTW91c2VNb3ZlRXZlbnRTb29uKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZCk6CisgICAgICAgICogcGFnZS9TZXR0aW5n
cy5pbjoKKwogMjAxNS0wMS0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFNpbXBsaWZ5IERpYWdub3N0aWNMb2dnaW5nQ2xpZW50IGNhbGwgc2l0ZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggN2Q0NTZhODJhZDMzZjIxZmFmNTZh
NDM1MjAxNGRjNjZjOTZhNDViMC4uNDcwOWFhOGNlOTdlZGY4N2FmYjA2YjQ5ZGQ0Yzc2YWNjYTQ0
YThkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTEwMzAsNiAr
MTAzMCwxMSBAQCBhbHBoYWJldGljCiBjb2Fyc2UKIGZpbmUKIAorLy8gKGhvdmVyOikgbWVkaWEg
ZmVhdHVyZS4KKy8vIG5vbmUKK2hvdmVyCitvbi1kZW1hbmQKKwogLy8gYmxlbmQgbW9kZXMKIC8v
IG5vcm1hbAogbXVsdGlwbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZl
YXR1cmVOYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmgKaW5k
ZXggNTE0NzkwYjI2ZDYyY2RhMzFkZTRkZTM2NDI5MjRkZmNkOWZkMjRkMS4uNTEyYWY5MGUwMjlh
MmYzODhlNzZjNDA0ZThhNDdkNWY2ZjU0ZWE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhRmVhdHVyZU5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhRmVh
dHVyZU5hbWVzLmgKQEAgLTMyLDYgKzMyLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlm
CiAKICNkZWZpbmUgQ1NTX01FRElBUVVFUllfTkFNRVNfRk9SX0VBQ0hfTUVESUFGRUFUVVJFKG1h
Y3JvKSBcCisgICAgbWFjcm8oYW55X2hvdmVyLCAiYW55LWhvdmVyIikgXAorICAgIG1hY3JvKGFu
eV9wb2ludGVyLCAiYW55LXBvaW50ZXIiKSBcCiAgICAgbWFjcm8oY29sb3IsICJjb2xvciIpIFwK
ICAgICBtYWNybyhjb2xvcl9pbmRleCwgImNvbG9yLWluZGV4IikgXAogICAgIG1hY3JvKGdyaWQs
ICJncmlkIikgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFs
dWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmlu
ZGV4IDViZmI0MWY5YjY3MWI2OWVmNjYzYTA0MTlmOGY3OGRlZDA1MGFjZTYuLjJhMDA4MWNlOWUx
MTYyODQ3Mjg1NDI4OWQ2NGY0MWJmZTYzMzg1NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVk
aWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTY0Nyw2NCArNjQ3LDQ1IEBAIHN0YXRpYyBib29sIHZp
ZGVvX3BsYXlhYmxlX2lubGluZU1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqLCBjb25zdCBDU1NU
b0xlbmd0aENvCiAgICAgcmV0dXJuICFpc1J1bm5pbmdPbklQaG9uZU9ySVBvZCgpIHx8IGZyYW1l
LT5zZXR0aW5ncygpLm1lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmUoKTsKIH0KIAotZW51bSBQb2lu
dGVyRGV2aWNlVHlwZSB7IFRvdWNoUG9pbnRlciwgTW91c2VQb2ludGVyLCBOb1BvaW50ZXIsIFVu
a25vd25Qb2ludGVyIH07Ci0KLXN0YXRpYyBQb2ludGVyRGV2aWNlVHlwZSBsZWFzdENhcGFibGVQ
cmltYXJ5UG9pbnRlckRldmljZVR5cGUoRnJhbWUqIGZyYW1lKQorc3RhdGljIGJvb2wgaG92ZXJN
ZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YSYsIEZyYW1lKiwgTWVkaWFGZWF0dXJlUHJlZml4KQogewotICAgIGlmIChmcmFtZS0+
c2V0dGluZ3MoKS5kZXZpY2VTdXBwb3J0c1RvdWNoKCkpCi0gICAgICAgIHJldHVybiBUb3VjaFBv
aW50ZXI7Ci0KLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGFsc28gdHJ5IHRvIGRldGVybWluZSBp
ZiB3ZSBrbm93IHdlIGhhdmUgYSBtb3VzZS4KLSAgICAvLyBXaGVuIHdlIGRvIHRoaXMsIHdlJ2xs
IGFsc28gbmVlZCB0byBkaWZmZXJlbnRpYXRlIGJldHdlZW4ga25vd24gbm90IHRvCi0gICAgLy8g
aGF2ZSBtb3VzZSBvciB0b3VjaCBzY3JlZW4gKE5vUG9pbnRlcikgYW5kIHVua25vd24gKFVua25v
d25Qb2ludGVyKS4KLSAgICAvLyBXZSBjb3VsZCBhbHNvIHRha2UgaW50byBhY2NvdW50IG90aGVy
IHByZWZlcmVuY2VzIGxpa2UgYWNjZXNzaWJpbGl0eQotICAgIC8vIHNldHRpbmdzIHRvIGRlY2lk
ZSB3aGljaCBvZiB0aGUgYXZhaWxhYmxlIHBvaW50ZXJzIHNob3VsZCBiZSBjb25zaWRlcmVkCi0g
ICAgLy8gInByaW1hcnkiLgotCi0gICAgcmV0dXJuIFVua25vd25Qb2ludGVyOwotfQotCi1zdGF0
aWMgYm9vbCBob3Zlck1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhJiwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgp
Ci17Ci0gICAgUG9pbnRlckRldmljZVR5cGUgcG9pbnRlciA9IGxlYXN0Q2FwYWJsZVByaW1hcnlQ
b2ludGVyRGV2aWNlVHlwZShmcmFtZSk7Ci0KLSAgICAvLyBJZiB3ZSdyZSBvbiBhIHBvcnQgdGhh
dCBoYXNuJ3QgZXhwbGljaXRseSBvcHRlZCBpbnRvIHByb3ZpZGluZyBwb2ludGVyIGRldmljZSBp
bmZvcm1hdGlvbgotICAgIC8vIChvciBvdGhlcndpc2UgY2FuJ3QgYmUgY29uZmlkZW50IGluIHRo
ZSBwb2ludGVyIGhhcmR3YXJlIGF2YWlsYWJsZSksIHRoZW4gYmVoYXZlIGV4YWN0bHkKLSAgICAv
LyBhcyBpZiB0aGlzIGZlYXR1cmUgZmVhdHVyZSBpc24ndCBzdXBwb3J0ZWQuCi0gICAgaWYgKHBv
aW50ZXIgPT0gVW5rbm93blBvaW50ZXIpCisgICAgaWYgKCFpczxDU1NQcmltaXRpdmVWYWx1ZT4o
dmFsdWUpKSB7CisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgZmxvYXQgbnVtYmVyID0gMTsKLSAgICBpZiAodmFsdWUpIHsKLSAgICAgICAgaWYg
KCFudW1iZXJWYWx1ZSh2YWx1ZSwgbnVtYmVyKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyNlbHNlCisgICAgICAgIHJldHVybiB0cnVlOworI2VuZGlmCiAgICAgfQogCi0gICAgcmV0dXJu
IChwb2ludGVyID09IE5vUG9pbnRlciAmJiAhbnVtYmVyKQotICAgICAgICB8fCAocG9pbnRlciA9
PSBUb3VjaFBvaW50ZXIgJiYgIW51bWJlcikKLSAgICAgICAgfHwgKHBvaW50ZXIgPT0gTW91c2VQ
b2ludGVyICYmIG51bWJlciA9PSAxKTsKKyAgICBpbnQgaG92ZXJDU1NLZXl3b3JkSUQgPSBkb3du
Y2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS5nZXRWYWx1ZUlEKCk7CisjaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykKKyAgICByZXR1cm4gaG92ZXJDU1NLZXl3b3JkSUQgPT0gQ1NTVmFsdWVO
b25lOworI2Vsc2UKKyAgICByZXR1cm4gaG92ZXJDU1NLZXl3b3JkSUQgPT0gQ1NTVmFsdWVIb3Zl
cjsKKyNlbmRpZgogfQogCi1zdGF0aWMgYm9vbCBwb2ludGVyTWVkaWFGZWF0dXJlRXZhbChDU1NW
YWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSogZnJh
bWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKK3N0YXRpYyBib29sIGFueV9ob3Zlck1lZGlhRmVhdHVy
ZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhJiBj
c3NUb0xlbmd0aENvbnZlcnNpb25EYXRhLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZp
eCBwcmVmaXgpCiB7Ci0gICAgUG9pbnRlckRldmljZVR5cGUgcG9pbnRlciA9IGxlYXN0Q2FwYWJs
ZVByaW1hcnlQb2ludGVyRGV2aWNlVHlwZShmcmFtZSk7Ci0KLSAgICAvLyBJZiB3ZSdyZSBvbiBh
IHBvcnQgdGhhdCBoYXNuJ3QgZXhwbGljaXRseSBvcHRlZCBpbnRvIHByb3ZpZGluZyBwb2ludGVy
IGRldmljZSBpbmZvcm1hdGlvbgotICAgIC8vIChvciBvdGhlcndpc2UgY2FuJ3QgYmUgY29uZmlk
ZW50IGluIHRoZSBwb2ludGVyIGhhcmR3YXJlIGF2YWlsYWJsZSksIHRoZW4gYmVoYXZlIGV4YWN0
bHkKLSAgICAvLyBhcyBpZiB0aGlzIGZlYXR1cmUgZmVhdHVyZSBpc24ndCBzdXBwb3J0ZWQuCi0g
ICAgaWYgKHBvaW50ZXIgPT0gVW5rbm93blBvaW50ZXIpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICByZXR1cm4gaG92ZXJNZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBjc3NUb0xlbmd0aENvbnZl
cnNpb25EYXRhLCBmcmFtZSwgcHJlZml4KTsKK30KIAotICAgIGlmICghdmFsdWUpCi0gICAgICAg
IHJldHVybiBwb2ludGVyICE9IE5vUG9pbnRlcjsKK3N0YXRpYyBib29sIHBvaW50ZXJNZWRpYUZl
YXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0
YSYsIEZyYW1lKiwgTWVkaWFGZWF0dXJlUHJlZml4KQoreworICAgIGlmICghaXM8Q1NTUHJpbWl0
aXZlVmFsdWU+KHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAoIWlzPENT
U1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaW50
IHBvaW50ZXJDU1NLZXl3b3JkSUQgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVl
KS5nZXRWYWx1ZUlEKCk7CisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICByZXR1cm4gcG9p
bnRlckNTU0tleXdvcmRJRCA9PSBDU1NWYWx1ZUNvYXJzZTsKKyNlbHNlCisgICAgcmV0dXJuIHBv
aW50ZXJDU1NLZXl3b3JkSUQgPT0gQ1NTVmFsdWVGaW5lOworI2VuZGlmCit9CiAKLSAgICBjb25z
dCBDU1NWYWx1ZUlEIGlkID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkuZ2V0
VmFsdWVJRCgpOwotICAgIHJldHVybiAocG9pbnRlciA9PSBOb1BvaW50ZXIgJiYgaWQgPT0gQ1NT
VmFsdWVOb25lKQotICAgICAgICB8fCAocG9pbnRlciA9PSBUb3VjaFBvaW50ZXIgJiYgaWQgPT0g
Q1NTVmFsdWVDb2Fyc2UpCi0gICAgICAgIHx8IChwb2ludGVyID09IE1vdXNlUG9pbnRlciAmJiBp
ZCA9PSBDU1NWYWx1ZUZpbmUpOworc3RhdGljIGJvb2wgYW55X3BvaW50ZXJNZWRpYUZlYXR1cmVF
dmFsKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYgY3Nz
VG9MZW5ndGhDb252ZXJzaW9uRGF0YSwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgg
cHJlZml4KQoreworICAgIHJldHVybiBwb2ludGVyTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgY3Nz
VG9MZW5ndGhDb252ZXJzaW9uRGF0YSwgZnJhbWUsIHByZWZpeCk7CiB9CiAKIC8vIEZJWE1FOiBS
ZW1vdmUgdW5uZWNlc3NhcnkgJyYnIGZyb20gdGhlIGZvbGxvd2luZyAnQUREX1RPX0ZVTkNUSU9O
TUFQJyBkZWZpbml0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV4cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAKaW5kZXggMzdi
ZWQ3NTA0OTJhZTAzY2Q4Y2E2YTY2OWFmM2I1ZDRmMzBhODU5My4uYzgwZDk3NDc2NDI2YmRlNTc3
MzBlY2VkMWU2NDhlN2FiMWZjMjNhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01l
ZGlhUXVlcnlFeHAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNw
cApAQCAtNDcsNiArNDcsOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhDU1NWYWx1
ZUlEKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBjb25zdAogI2lmIEVOQUJMRShW
SUVXX01PREVfQ1NTX01FRElBKQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0
dXJlTmFtZXM6OnZpZXdfbW9kZU1lZGlhRmVhdHVyZQogI2VuZGlmIC8vIEVOQUJMRShWSUVXX01P
REVfQ1NTX01FRElBKQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFt
ZXM6OmFueV9ob3Zlck1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVk
aWFGZWF0dXJlTmFtZXM6OmFueV9wb2ludGVyTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlh
RmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6aG92ZXJNZWRpYUZlYXR1cmUKICAgICAgICAg
fHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjppbnZlcnRlZF9jb2xvcnNNZWRp
YUZlYXR1cmUKICAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpw
b2ludGVyTWVkaWFGZWF0dXJlOwogfQpAQCAtMTE0LDggKzExNyw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBmZWF0dXJlV2l0aFplcm9Pck9uZShjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVy
ZSwgY29uc3QKICAgICBpZiAoIXZhbHVlLT5pc0ludCB8fCAhKHZhbHVlLT5mVmFsdWUgPT0gMSB8
fCAhdmFsdWUtPmZWYWx1ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBt
ZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmdyaWRNZWRpYUZlYXR1cmUKLSAgICAg
ICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpob3Zlck1lZGlhRmVhdHVy
ZTsKKyAgICByZXR1cm4gbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpncmlkTWVk
aWFGZWF0dXJlOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhBc3BlY3RSYXRp
byhjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSkKQEAgLTEzMSw3ICsxMzMsOSBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhBc3BlY3RSYXRpbyhjb25zdCBBdG9taWNTdHJp
bmcmIG1lZGlhRmVhdHVyZSkKIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aG91dFZhbHVl
KGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlKQogewogICAgIC8vIE1lZGlhIGZlYXR1
cmVzIHRoYXQgYXJlIHByZWZpeGVkIGJ5IG1pbi9tYXggY2Fubm90IGJlIHVzZWQgd2l0aG91dCBh
IHZhbHVlLgotICAgIHJldHVybiBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1v
bm9jaHJvbWVNZWRpYUZlYXR1cmUKKyAgICByZXR1cm4gbWVkaWFGZWF0dXJlID09IE1lZGlhRmVh
dHVyZU5hbWVzOjphbnlfaG92ZXJNZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJl
ID09IE1lZGlhRmVhdHVyZU5hbWVzOjphbnlfcG9pbnRlck1lZGlhRmVhdHVyZQorICAgICAgICB8
fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1vbm9jaHJvbWVNZWRpYUZlYXR1
cmUKICAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpjb2xvck1l
ZGlhRmVhdHVyZQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6
OmNvbG9yX2luZGV4TWVkaWFGZWF0dXJlCiAgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRp
YUZlYXR1cmVOYW1lczo6Z3JpZE1lZGlhRmVhdHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCmluZGV4IDljNjkxZjUyZGVjZGU1MmI2NWQ1NDVhM2E1YjVkMzBjOTA1MzRmM2IuLjYw
NjFhMzk1YTExMmViNDM3ZmVlODQ2MmI2NGNmMDI0MDJmMTU4ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKQEAgLTI4OTgsOSArMjg5OCw2IEBAIHZvaWQgRXZlbnRIYW5kbGVy
OjpkaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb24oKQogICAgIGlmIChtX21vdXNlUG9zaXRp
b25Jc1Vua25vd24pCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghbV9mcmFtZS5zZXR0aW5n
cygpLmRldmljZVN1cHBvcnRzTW91c2UoKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKFBh
Z2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkgewogICAgICAgICBpZiAoIXBhZ2UtPmNocm9tZSgp
LmNsaWVudCgpLnNob3VsZERpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50cygpKQogICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtMjk0Nyw5ICsyOTQ0LDYgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmZha2VN
b3VzZU1vdmVFdmVudFRpbWVyRmlyZWQoKQogewogICAgIEFTU0VSVCghbV9tb3VzZVByZXNzZWQp
OwogCi0gICAgaWYgKCFtX2ZyYW1lLnNldHRpbmdzKCkuZGV2aWNlU3VwcG9ydHNNb3VzZSgpKQot
ICAgICAgICByZXR1cm47Ci0KICAgICBGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLnZpZXcoKTsK
ICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCmlu
ZGV4IGU3MzBhMjAwNWUxNWE2NmY0YjM5MDQ2NjA5MzlmYzJjMmJhOTRiNGYuLmQ2YTczNTBhYjE4
MTVmZTZjZmNkZjFiZjhmMDRiYTVjNDFmZDIxMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgpA
QCAtMTQ4LDggKzE0OCw2IEBAIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIGluaXRpYWw9
ZGVmYXVsdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uCiBpbWFnZVN1YnNhbXBsaW5nRW5h
YmxlZCBpbml0aWFsPWRlZmF1bHRJbWFnZVN1YnNhbXBsaW5nRW5hYmxlZAogd2FudHNCYWxhbmNl
ZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvciBpbml0aWFsPWZhbHNlCiByZXF1ZXN0QW5pbWF0aW9u
RnJhbWVFbmFibGVkIGluaXRpYWw9dHJ1ZQotZGV2aWNlU3VwcG9ydHNUb3VjaCBpbml0aWFsPWZh
bHNlCi1kZXZpY2VTdXBwb3J0c01vdXNlIGluaXRpYWw9dHJ1ZQogCiBmaXhlZFBvc2l0aW9uQ3Jl
YXRlc1N0YWNraW5nQ29udGV4dCBpbml0aWFsPWRlZmF1bHRGaXhlZFBvc2l0aW9uQ3JlYXRlc1N0
YWNraW5nQ29udGV4dAogc3luY1hIUkluRG9jdW1lbnRzRW5hYmxlZCBpbml0aWFsPXRydWUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBjZGMwNjg4ZGE2ZTIxNWRiZDFmODU4YmFiYmFkMjYyYWVmZTIyMjEwLi42ODAzODY0MDZi
MDYzNzcwMzI3OGYwMDJjYTMwNDZkMTdhM2JhYmRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIw
MTUtMDEtMjIgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIHBvaW50ZXIvaG92ZXIgbWVkaWEgcXVlcmllcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0ODIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L21lZGlhL21xLWFueS1ob3Zlci1jc3Nv
bS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbXEtYW55LWhvdmVy
LWNzc29tLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbXEtYW55LWhvdmVyLWlu
dmFsaWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21xLWFueS1o
b3Zlci1pbnZhbGlkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbXEtYW55LWhv
dmVyLW1hdGNoTWVkaWEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlh
L21xLWFueS1ob3Zlci1tYXRjaE1lZGlhLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVk
aWEvbXEtYW55LWhvdmVyLXN0eWxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L21lZGlhL21xLWFueS1ob3Zlci1zdHlsaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvbWVkaWEvbXEtYW55LXBvaW50ZXItY3Nzb20tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L21lZGlhL21xLWFueS1wb2ludGVyLWNzc29tLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvbWVkaWEvbXEtYW55LXBvaW50ZXItaW52YWxpZC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvbWVkaWEvbXEtYW55LXBvaW50ZXItaW52YWxpZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21xLWFueS1wb2ludGVyLW1hdGNoTWVkaWEtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21xLWFueS1wb2ludGVyLW1hdGNo
TWVkaWEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tcS1hbnktcG9pbnRlci1z
dHlsaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tcS1hbnkt
cG9pbnRlci1zdHlsaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbXEtaG92
ZXItY3Nzb20tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21xLWhv
dmVyLWNzc29tLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbXEtaG92ZXItaW52
YWxpZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbXEtaG92ZXIt
aW52YWxpZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21xLWhvdmVyLW1hdGNo
TWVkaWEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21xLWhvdmVy
LW1hdGNoTWVkaWEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tcS1ob3Zlci1z
dHlsaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tcS1ob3Zl
ci1zdHlsaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcG9pbnRlci1j
c3NvbS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcG9pbnRl
ci1jc3NvbS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21xLXBvaW50ZXItZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcG9pbnRlci1pbnZhbGlkLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tcS1wb2ludGVyLWludmFsaWQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tcS1wb2ludGVyLW1hdGNoTWVkaWEt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21xLXBvaW50ZXItbWF0
Y2hNZWRpYS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21xLXBvaW50ZXItc3R5
bGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcG9pbnRl
ci1zdHlsaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcG9pbnRlci5o
dG1sOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11bGF0b3IvZmFzdC9tZWRpYS9tcS1hbnkt
aG92ZXItbWF0Y2hNZWRpYS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2lvcy1zaW11bGF0b3IvZmFzdC9tZWRpYS9tcS1hbnktaG92ZXItc3R5bGluZy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11bGF0b3IvZmFzdC9tZWRpYS9t
cS1hbnktcG9pbnRlci1tYXRjaE1lZGlhLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vaW9zLXNpbXVsYXRvci9mYXN0L21lZGlhL21xLWFueS1wb2ludGVyLXN0eWxpbmct
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL2Zh
c3QvbWVkaWEvbXEtaG92ZXItbWF0Y2hNZWRpYS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2lvcy1zaW11bGF0b3IvZmFzdC9tZWRpYS9tcS1ob3Zlci1zdHlsaW5nLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9mYXN0
L21lZGlhL21xLXBvaW50ZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9pb3Mtc2ltdWxhdG9yL2Zhc3QvbWVkaWEvbXEtcG9pbnRlci1tYXRjaE1lZGlhLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9mYXN0L21lZGlh
L21xLXBvaW50ZXItc3R5bGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDE1LTAxLTIwICBK
b3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBnYXJkZW5pbmcuIFJlbW92ZSB2YXJpYWJsZSBvYmplY3RJZCBmcm9tIG91dHB1dC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtYW55LWhvdmVyLWNzc29tLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtYW55LWhvdmVyLWNzc29tLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44OTU0ZDVmNGU0YmYwMDI3YjE2MTkxMTFjMGU1NDg5MTVmYzY2NmU2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1hbnktaG92ZXIt
Y3Nzb20tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAKK1Rlc3QgdGhlIENTU09NIHNlcmlh
bGl6YXRpb24gb2YgdGhlIGFueS1ob3ZlciBtZWRpYSBmZWF0dXJlLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1sw
XS5tZWRpYS5tZWRpYVRleHQgaXMgIihhbnktaG92ZXIpIgorUEFTUyBkb2N1bWVudC5zdHlsZVNo
ZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMgIihhbnktaG92ZXIpIgorUEFT
UyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMg
IihhbnktaG92ZXIpIgorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5t
ZWRpYS5tZWRpYVRleHQgaXMgIihhbnktaG92ZXIpIgorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0
c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMgIihhbnktaG92ZXI6IGhvdmVyKSIK
K1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEubWVkaWFUZXh0
IGlzICIoYW55LWhvdmVyOiBob3ZlcikiCitQQVNTIGRvY3VtZW50LnN0eWxlU2hlZXRzWzFdLmNz
c1J1bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCBpcyAiKGFueS1ob3ZlcjogaG92ZXIpIgorUEFTUyBk
b2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMgIihh
bnktaG92ZXI6IGhvdmVyKSIKK1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNb
MF0ubWVkaWEubWVkaWFUZXh0IGlzICIoYW55LWhvdmVyOiBob3ZlcikiCitQQVNTIGRvY3VtZW50
LnN0eWxlU2hlZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCBpcyAiKGFueS1ob3Zl
cjogaG92ZXIpIgorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRp
YS5tZWRpYVRleHQgaXMgIihhbnktaG92ZXI6IG9uLWRlbWFuZCkiCitQQVNTIGRvY3VtZW50LnN0
eWxlU2hlZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCBpcyAiKGFueS1ob3Zlcjog
b24tZGVtYW5kKSIKK1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVk
aWEubWVkaWFUZXh0IGlzICIoYW55LWhvdmVyOiBub25lKSIKK1BBU1MgZG9jdW1lbnQuc3R5bGVT
aGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEubWVkaWFUZXh0IGlzICIoYW55LWhvdmVyOiBub25l
KSIKK1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEubWVkaWFU
ZXh0IGlzICIoYW55LWhvdmVyOiBob3ZlcikiCitQQVNTIGRvY3VtZW50LnN0eWxlU2hlZXRzWzFd
LmNzc1J1bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCBpcyAiKGFueS1ob3ZlcjogaG92ZXIpIgorUEFT
UyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMg
IihhbnktaG92ZXI6IGhvdmVyKSIKK1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVs
ZXNbMF0ubWVkaWEubWVkaWFUZXh0IGlzICIoYW55LWhvdmVyOiBob3ZlcikiCitQQVNTIGRvY3Vt
ZW50LnN0eWxlU2hlZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCBpcyAiKGFueS1o
b3ZlcjogaG92ZXIpIgorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5t
ZWRpYS5tZWRpYVRleHQgaXMgIihhbnktaG92ZXI6IGhvdmVyKSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhL21xLWFueS1ob3Zlci1jc3NvbS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tcS1hbnktaG92ZXItY3Nzb20uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTU4YjIyYmM5MDMyZjA5
ZDM4YzI3YTMxYTY4MDhkZGIzZDJlODk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tcS1hbnktaG92ZXItY3Nzb20uaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZSBpZD0idGFyZ2V0LXN0eWxlIj48L3N0
eWxlPgorCis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IHRoZSBDU1NPTSBzZXJpYWxp
emF0aW9uIG9mIHRoZSBhbnktaG92ZXIgbWVkaWEgZmVhdHVyZS4iKQorCisgICAgdmFyIHRlc3RD
YXNlcyA9IFsKKyAgICAgICAgLy8gQ2FzZS4KKyAgICAgICAgWyIoYW55LWhvdmVyKSIsICIoYW55
LWhvdmVyKSJdLAorICAgICAgICBbIiggICAgYW55LWhvdmVyKSIsICIoYW55LWhvdmVyKSJdLAor
ICAgICAgICBbIihhbnktaG92ZXIgICAgKSIsICIoYW55LWhvdmVyKSJdLAorICAgICAgICBbIigg
ICAgYW55LWhvdmVyICAgICkiLCAiKGFueS1ob3ZlcikiXSwKKyAgICAgICAgWyIoYW55LWhvdmVy
OiBob3ZlcikiLCAiKGFueS1ob3ZlcjogaG92ZXIpIl0sCisgICAgICAgIFsiKGFueS1ob3Zlcjog
SG92ZXIpIiwgIihhbnktaG92ZXI6IGhvdmVyKSJdLAorICAgICAgICBbIihhbnktaG92ZXI6IEhP
VkVSKSIsICIoYW55LWhvdmVyOiBob3ZlcikiXSwKKyAgICAgICAgWyIoQW55LUhvdmVyOiBob3Zl
cikiLCAiKGFueS1ob3ZlcjogaG92ZXIpIl0sCisgICAgICAgIFsiKEFOWS1IT1ZFUjogaG92ZXIp
IiwgIihhbnktaG92ZXI6IGhvdmVyKSJdLAorICAgICAgICBbIihBbnktSG92ZXI6IEhvdmVyKSIs
ICIoYW55LWhvdmVyOiBob3ZlcikiXSwKKyAgICAgICAgWyIoYW55LWhvdmVyOiBPTi1ERU1BTkQp
IiwgIihhbnktaG92ZXI6IG9uLWRlbWFuZCkiXSwKKyAgICAgICAgWyIoQW55LUhvdmVyOiBPbi1k
ZW1hbmQpIiwgIihhbnktaG92ZXI6IG9uLWRlbWFuZCkiXSwKKyAgICAgICAgWyIoYW55LWhvdmVy
OiBOT05FKSIsICIoYW55LWhvdmVyOiBub25lKSJdLAorICAgICAgICBbIihBbnktSG92ZXI6IE5v
bmUpIiwgIihhbnktaG92ZXI6IG5vbmUpIl0sCisKKyAgICAgICAgLy8gU3BhY2luZy4KKyAgICAg
ICAgWyIoYW55LWhvdmVyOmhvdmVyKSIsICIoYW55LWhvdmVyOiBob3ZlcikiXSwKKyAgICAgICAg
WyIoYW55LWhvdmVyOiBob3ZlcikiLCAiKGFueS1ob3ZlcjogaG92ZXIpIl0sCisgICAgICAgIFsi
KGFueS1ob3ZlciA6aG92ZXIpIiwgIihhbnktaG92ZXI6IGhvdmVyKSJdLAorICAgICAgICBbIihh
bnktaG92ZXIgOiBob3ZlcikiLCAiKGFueS1ob3ZlcjogaG92ZXIpIl0sCisgICAgICAgIFsiKCAg
ICAgYW55LWhvdmVyICAgIDogaG92ZXIgICAgICkiLCAiKGFueS1ob3ZlcjogaG92ZXIpIl0sCisg
ICAgICAgIFsiKGFueS1ob3Zlclx0Olx0aG92ZXIpIiwgIihhbnktaG92ZXI6IGhvdmVyKSJdLAor
ICAgIF07CisKKyAgICB2YXIgdGFyZ2V0U3R5bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGFyZ2V0LXN0eWxlJyk7CisgICAgZm9yICh2YXIgdGVzdENhc2Ugb2YgdGVzdENhc2VzKSB7Cisg
ICAgICAgIHRhcmdldFN0eWxlLmlubmVyVGV4dCA9ICJAbWVkaWEgIiArIHRlc3RDYXNlWzBdICsg
IiB7IH0iOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LnN0eWxlU2hl
ZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCIsIHRlc3RDYXNlWzFdKTsKKyAgICB9
Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tcS1hbnktaG92ZXItaW52YWxpZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhL21xLWFueS1ob3Zlci1pbnZhbGlkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mMmQ2ZWI4NmUwMGNhNThlMjU5OWMzYTI1OGUwNzQ1ZTAyYjNjYzk2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1hbnktaG92ZXItaW52YWxpZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyMyBAQAorVGVzdCBpbnZhbGlkIGlucHV0IHdpdGggdGhlIGFueS1o
b3ZlciBtZWRpYSBmZWF0dXJlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyB3aW5kb3cubWF0Y2hNZWRpYSgiKGFueS1ob3ZlcjopIikubWF0Y2hlcyBpcyBmYWxzZQorUEFT
UyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5sZW5ndGggaXMgMAor
UEFTUyB3aW5kb3cubWF0Y2hNZWRpYSgiKGFueS1ob3ZlcjogKSIpLm1hdGNoZXMgaXMgZmFsc2UK
K1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEubGVuZ3RoIGlz
IDAKK1BBU1Mgd2luZG93Lm1hdGNoTWVkaWEoIihhbnktaG92ZXI6IFdlYktpdCkiKS5tYXRjaGVz
IGlzIGZhbHNlCitQQVNTIGRvY3VtZW50LnN0eWxlU2hlZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlh
Lmxlbmd0aCBpcyAwCitQQVNTIHdpbmRvdy5tYXRjaE1lZGlhKCIoYW55LWhvdmVyOiBmaW5lKSIp
Lm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNb
MF0ubWVkaWEubGVuZ3RoIGlzIDAKK1BBU1Mgd2luZG93Lm1hdGNoTWVkaWEoIihhbnktaG92ZXI6
IHBvcnRyYWl0KSIpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNb
MV0uY3NzUnVsZXNbMF0ubWVkaWEubGVuZ3RoIGlzIDAKK1BBU1Mgd2luZG93Lm1hdGNoTWVkaWEo
IihhbnktaG92ZXI6IFwiTm9uZVwiKSIpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgZG9jdW1lbnQu
c3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEubGVuZ3RoIGlzIDAKK1BBU1Mgd2luZG93
Lm1hdGNoTWVkaWEoIihhbnktaG92ZXI6ICdOb25lJykiKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNT
IGRvY3VtZW50LnN0eWxlU2hlZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlhLmxlbmd0aCBpcyAwCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1hbnktaG92ZXItaW52YWxpZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1hbnktaG92ZXItaW52YWxpZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZjMmZlY2U0Yzc0YjQ3MWEzNzE0ODRmMmM2ZmRlNjc3ZjJhOWQ2ZGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLWFueS1ob3Zlci1pbnZhbGlkLmh0bWwK
QEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGUg
aWQ9InRhcmdldC1zdHlsZSI+PC9zdHlsZT4KKworPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigi
VGVzdCBpbnZhbGlkIGlucHV0IHdpdGggdGhlIGFueS1ob3ZlciBtZWRpYSBmZWF0dXJlLiIpCisK
KyAgICB2YXIgdGVzdENhc2VzID0gWworICAgICAgICAiYW55LWhvdmVyOiIsCisgICAgICAgICJh
bnktaG92ZXI6ICIsCisgICAgICAgICJhbnktaG92ZXI6IFdlYktpdCIsCisgICAgICAgICJhbnkt
aG92ZXI6IGZpbmUiLAorICAgICAgICAiYW55LWhvdmVyOiBwb3J0cmFpdCIsCisgICAgICAgICJh
bnktaG92ZXI6IFxcXCJOb25lXFxcIiIsCisgICAgICAgICJhbnktaG92ZXI6ICdOb25lJyIsCisg
ICAgXTsKKworICAgIHZhciB0YXJnZXRTdHlsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
YXJnZXQtc3R5bGUnKTsKKyAgICBmb3IgKHZhciB0ZXN0Q2FzZSBvZiB0ZXN0Q2FzZXMpIHsKKyAg
ICAgICAgdmFyIHRlc3RTdHJpbmcgPSAnd2luZG93Lm1hdGNoTWVkaWEoIignICsgdGVzdENhc2Ug
KyAnKSIpLm1hdGNoZXMnOworICAgICAgICBzaG91bGRCZUZhbHNlKCd3aW5kb3cubWF0Y2hNZWRp
YSgiKCcgKyB0ZXN0Q2FzZSArICcpIikubWF0Y2hlcycpOworCisgICAgICAgIHRhcmdldFN0eWxl
LmlubmVyVGV4dCA9ICJAbWVkaWEgIiArIHRlc3RDYXNlICsgIiB7IH0iOworICAgICAgICBzaG91
bGRCZSgiZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEubGVuZ3RoIiwg
IjAiKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1hbnktaG92ZXItbWF0Y2hNZWRpYS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLWFueS1ob3Zlci1tYXRjaE1lZGlhLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jODUwZjViNTZhN2M5YzE4MmFiMjQyMjAwZTFkOTE4NzUzZDU3
YjAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1hbnktaG92
ZXItbWF0Y2hNZWRpYS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorVGVzdCB0aGUgYW55
LWhvdmVyIG1lZGlhIGZlYXR1cmUgd2l0aCBtYWNoTWVkaWEuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCit3aW5kb3cubWF0Y2hNZWRpYSgiKGFueS1ob3ZlcikiKS5tYXRjaGVzID0g
dHJ1ZQord2luZG93Lm1hdGNoTWVkaWEoIihhbnktaG92ZXI6IGhvdmVyKSIpLm1hdGNoZXMgPSB0
cnVlCit3aW5kb3cubWF0Y2hNZWRpYSgiKGFueS1ob3Zlcjogb24tZGVtYW5kKSIpLm1hdGNoZXMg
PSBmYWxzZQord2luZG93Lm1hdGNoTWVkaWEoIihhbnktaG92ZXI6IG5vbmUpIikubWF0Y2hlcyA9
IGZhbHNlCit3aW5kb3cubWF0Y2hNZWRpYSgiKGFueS1ob3ZlcjogSG92ZXIpIikubWF0Y2hlcyA9
IHRydWUKK3dpbmRvdy5tYXRjaE1lZGlhKCIoYW55LWhvdmVyOiBPbi1kZW1hbmQpIikubWF0Y2hl
cyA9IGZhbHNlCit3aW5kb3cubWF0Y2hNZWRpYSgiKGFueS1ob3ZlcjogTm9uZSkiKS5tYXRjaGVz
ID0gZmFsc2UKK3dpbmRvdy5tYXRjaE1lZGlhKCIoQW55LUhvdmVyOiBob3ZlcikiKS5tYXRjaGVz
ID0gdHJ1ZQord2luZG93Lm1hdGNoTWVkaWEoIihBbnktSG92ZXI6IG9uLWRlbWFuZCkiKS5tYXRj
aGVzID0gZmFsc2UKK3dpbmRvdy5tYXRjaE1lZGlhKCIoQW55LUhvdmVyOiBub25lKSIpLm1hdGNo
ZXMgPSBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtYW55LWhvdmVyLW1h
dGNoTWVkaWEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtYW55LWhvdmVyLW1hdGNo
TWVkaWEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjJlMGIyNzFiM2UxZmU4MjA1ZTUzY2MzYzk5MGVmNGI3
ZTRlZWM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1hbnkt
aG92ZXItbWF0Y2hNZWRpYS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCB0aGUgYW55LWhv
dmVyIG1lZGlhIGZlYXR1cmUgd2l0aCBtYWNoTWVkaWEuIikKKworICAgIGZ1bmN0aW9uIHRlc3RI
b3ZlckNvbmRpdGlvbihjb25kaXRpb24pIHsKKyAgICAgICAgdmFyIHRlc3RTdHJpbmcgPSAnd2lu
ZG93Lm1hdGNoTWVkaWEoIignICsgY29uZGl0aW9uICsgJykiKS5tYXRjaGVzJzsKKyAgICAgICAg
ZGVidWcodGVzdFN0cmluZyArICIgPSAiICsgZXZhbCh0ZXN0U3RyaW5nKSk7CisgICAgfQorCisg
ICAgdGVzdEhvdmVyQ29uZGl0aW9uKCJhbnktaG92ZXIiKTsKKworICAgIHRlc3RIb3ZlckNvbmRp
dGlvbigiYW55LWhvdmVyOiBob3ZlciIpOworICAgIHRlc3RIb3ZlckNvbmRpdGlvbigiYW55LWhv
dmVyOiBvbi1kZW1hbmQiKTsKKyAgICB0ZXN0SG92ZXJDb25kaXRpb24oImFueS1ob3Zlcjogbm9u
ZSIpOworCisgICAgdGVzdEhvdmVyQ29uZGl0aW9uKCJhbnktaG92ZXI6IEhvdmVyIik7CisgICAg
dGVzdEhvdmVyQ29uZGl0aW9uKCJhbnktaG92ZXI6IE9uLWRlbWFuZCIpOworICAgIHRlc3RIb3Zl
ckNvbmRpdGlvbigiYW55LWhvdmVyOiBOb25lIik7CisKKyAgICB0ZXN0SG92ZXJDb25kaXRpb24o
IkFueS1Ib3ZlcjogaG92ZXIiKTsKKyAgICB0ZXN0SG92ZXJDb25kaXRpb24oIkFueS1Ib3Zlcjog
b24tZGVtYW5kIik7CisgICAgdGVzdEhvdmVyQ29uZGl0aW9uKCJBbnktSG92ZXI6IG5vbmUiKTsK
Kzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhL21xLWFueS1ob3Zlci1zdHlsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvbXEtYW55LWhvdmVyLXN0eWxpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUwODkwOTk2Y2I2MDM2MGE4NjZiNmE1Njg1YzE0NGNlNzQ5OTIzNjkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLWFueS1ob3Zlci1zdHlsaW5nLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEzIEBACitUZXN0IHRoZSBhbnktaG92ZXIgbWVkaWEgZmVhdHVyZSB0
byBndWFyZCBzdHlsZSBydWxlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2dl
dENvbXB1dGVkU3R5bGUodGFyZ2V0KVsiY29sb3IiXSA9IHJnYigwLCAxMjgsIDApCitnZXRDb21w
dXRlZFN0eWxlKHRhcmdldClbImJhY2tncm91bmQtY29sb3IiXSA9IHJnYigwLCAwLCAyNTUpCitn
ZXRDb21wdXRlZFN0eWxlKHRhcmdldClbIndpZHRoIl0gPSAxMDBweAorZ2V0Q29tcHV0ZWRTdHls
ZSh0YXJnZXQpWyJoZWlnaHQiXSA9IDEwMHB4CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YS9tcS1hbnktaG92ZXItc3R5bGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1h
bnktaG92ZXItc3R5bGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1OGZmMzFiODg4YjI4MWNlNjE3Mzc5
ZWRiYjJhOGUxMTViMzA0NDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhL21xLWFueS1ob3Zlci1zdHlsaW5nLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2PgorPHN0eWxlPgor
ICAgICN0YXJnZXQgeworICAgICAgICBjb2xvcjogcmVkOworICAgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBibGFjazsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4
OworICAgICAgICBkaXNwbGF5OiBub25lOworICAgIH0KKyAgICBAbWVkaWEgKGFueS1ob3Zlcikg
eworICAgICAgICAjdGFyZ2V0IHsKKyAgICAgICAgICAgIGNvbG9yOiBncmVlbjsKKyAgICAgICAg
fQorICAgIH0KKyAgICBAbWVkaWEgKGFueS1ob3ZlcjogaG92ZXIpIHsKKyAgICAgICAgI3Rhcmdl
dCB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICB9CisgICAg
fQorICAgIEBtZWRpYSAoYW55LWhvdmVyOiBvbi1kZW1hbmQpIHsKKyAgICAgICAgI3RhcmdldCB7
CisgICAgICAgICAgICB3aWR0aDogMTBweDsKKyAgICAgICAgfQorICAgIH0KKyAgICBAbWVkaWEg
KGFueS1ob3Zlcjogbm9uZSkgeworICAgICAgICAjdGFyZ2V0IHsKKyAgICAgICAgICAgIGhlaWdo
dDogMTBweDsKKyAgICAgICAgfQorICAgIH0KKzwvc3R5bGU+CisKKzxzY3JpcHQ+CisgICAgZGVz
Y3JpcHRpb24oIlRlc3QgdGhlIGFueS1ob3ZlciBtZWRpYSBmZWF0dXJlIHRvIGd1YXJkIHN0eWxl
IHJ1bGVzLiIpCisKKyAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rh
cmdldCcpOworCisgICAgZnVuY3Rpb24gZGlzcGxheVByb3BlcnR5KHByb3BlcnR5KSB7CisgICAg
ICAgIHZhciB0ZXN0U3RyaW5nID0gJ2dldENvbXB1dGVkU3R5bGUodGFyZ2V0KVsiJyArIHByb3Bl
cnR5ICsgJyJdJzsKKyAgICAgICAgZGVidWcodGVzdFN0cmluZyArICIgPSAiICsgZXZhbCh0ZXN0
U3RyaW5nKSk7CisgICAgfQorCisgICAgZGlzcGxheVByb3BlcnR5KCJjb2xvciIpOworICAgIGRp
c3BsYXlQcm9wZXJ0eSgiYmFja2dyb3VuZC1jb2xvciIpOworICAgIGRpc3BsYXlQcm9wZXJ0eSgi
d2lkdGgiKTsKKyAgICBkaXNwbGF5UHJvcGVydHkoImhlaWdodCIpOworPC9zY3JpcHQ+CisKKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtYW55
LXBvaW50ZXItY3Nzb20tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1h
bnktcG9pbnRlci1jc3NvbS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2FhOTc1MzQyODBmM2Y3
MTg2OGI0YTU4ODM3ZDk5ZmMxNzc0ZjU0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvbXEtYW55LXBvaW50ZXItY3Nzb20tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjkgQEAKK1Rlc3QgdGhlIENTU09NIHNlcmlhbGl6YXRpb24gb2YgdGhlIGFueS1wb2ludGVyIG1l
ZGlhIGZlYXR1cmUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3Vt
ZW50LnN0eWxlU2hlZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCBpcyAiKGFueS1w
b2ludGVyKSIKK1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEu
bWVkaWFUZXh0IGlzICIoYW55LXBvaW50ZXIpIgorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sx
XS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMgIihhbnktcG9pbnRlcikiCitQQVNTIGRv
Y3VtZW50LnN0eWxlU2hlZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCBpcyAiKGFu
eS1wb2ludGVyKSIKK1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVk
aWEubWVkaWFUZXh0IGlzICIoYW55LXBvaW50ZXI6IGZpbmUpIgorUEFTUyBkb2N1bWVudC5zdHls
ZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMgIihhbnktcG9pbnRlcjog
ZmluZSkiCitQQVNTIGRvY3VtZW50LnN0eWxlU2hlZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlhLm1l
ZGlhVGV4dCBpcyAiKGFueS1wb2ludGVyOiBmaW5lKSIKK1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVl
dHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEubWVkaWFUZXh0IGlzICIoYW55LXBvaW50ZXI6IGZpbmUp
IgorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRl
eHQgaXMgIihhbnktcG9pbnRlcjogZmluZSkiCitQQVNTIGRvY3VtZW50LnN0eWxlU2hlZXRzWzFd
LmNzc1J1bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCBpcyAiKGFueS1wb2ludGVyOiBmaW5lKSIKK1BB
U1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEubWVkaWFUZXh0IGlz
ICIoYW55LXBvaW50ZXI6IGNvYXJzZSkiCitQQVNTIGRvY3VtZW50LnN0eWxlU2hlZXRzWzFdLmNz
c1J1bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCBpcyAiKGFueS1wb2ludGVyOiBjb2Fyc2UpIgorUEFT
UyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMg
IihhbnktcG9pbnRlcjogbm9uZSkiCitQQVNTIGRvY3VtZW50LnN0eWxlU2hlZXRzWzFdLmNzc1J1
bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCBpcyAiKGFueS1wb2ludGVyOiBub25lKSIKK1BBU1MgZG9j
dW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEubWVkaWFUZXh0IGlzICIoYW55
LXBvaW50ZXI6IGZpbmUpIgorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1sw
XS5tZWRpYS5tZWRpYVRleHQgaXMgIihhbnktcG9pbnRlcjogZmluZSkiCitQQVNTIGRvY3VtZW50
LnN0eWxlU2hlZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCBpcyAiKGFueS1wb2lu
dGVyOiBmaW5lKSIKK1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVk
aWEubWVkaWFUZXh0IGlzICIoYW55LXBvaW50ZXI6IGZpbmUpIgorUEFTUyBkb2N1bWVudC5zdHls
ZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMgIihhbnktcG9pbnRlcjog
ZmluZSkiCitQQVNTIGRvY3VtZW50LnN0eWxlU2hlZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlhLm1l
ZGlhVGV4dCBpcyAiKGFueS1wb2ludGVyOiBmaW5lKSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhL21xLWFueS1wb2ludGVyLWNzc29tLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
L21xLWFueS1wb2ludGVyLWNzc29tLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2QzNWFmYTcwNDVlZjk4N2Q1
YzgzOGQwYTkwNWU4M2QyMTNhZmQ3MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbXEtYW55LXBvaW50ZXItY3Nzb20uaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZSBpZD0idGFyZ2V0LXN0eWxlIj48L3N0
eWxlPgorCis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IHRoZSBDU1NPTSBzZXJpYWxp
emF0aW9uIG9mIHRoZSBhbnktcG9pbnRlciBtZWRpYSBmZWF0dXJlLiIpCisKKyAgICB2YXIgdGVz
dENhc2VzID0gWworICAgICAgICAvLyBDYXNlLgorICAgICAgICBbIihhbnktcG9pbnRlcikiLCAi
KGFueS1wb2ludGVyKSJdLAorICAgICAgICBbIiggICAgYW55LXBvaW50ZXIpIiwgIihhbnktcG9p
bnRlcikiXSwKKyAgICAgICAgWyIoYW55LXBvaW50ZXIgICAgKSIsICIoYW55LXBvaW50ZXIpIl0s
CisgICAgICAgIFsiKCAgICBhbnktcG9pbnRlciAgICApIiwgIihhbnktcG9pbnRlcikiXSwKKyAg
ICAgICAgWyIoYW55LXBvaW50ZXI6IGZpbmUpIiwgIihhbnktcG9pbnRlcjogZmluZSkiXSwKKyAg
ICAgICAgWyIoYW55LXBvaW50ZXI6IEZpbmUpIiwgIihhbnktcG9pbnRlcjogZmluZSkiXSwKKyAg
ICAgICAgWyIoYW55LXBvaW50ZXI6IEZJTkUpIiwgIihhbnktcG9pbnRlcjogZmluZSkiXSwKKyAg
ICAgICAgWyIoQW55LVBvaW50ZXI6IGZpbmUpIiwgIihhbnktcG9pbnRlcjogZmluZSkiXSwKKyAg
ICAgICAgWyIoQU5ZLVBPSU5URVI6IGZpbmUpIiwgIihhbnktcG9pbnRlcjogZmluZSkiXSwKKyAg
ICAgICAgWyIoQW55LVBvaW50ZXI6IEZpbmUpIiwgIihhbnktcG9pbnRlcjogZmluZSkiXSwKKyAg
ICAgICAgWyIoYW55LXBvaW50ZXI6IENPQVJTRSkiLCAiKGFueS1wb2ludGVyOiBjb2Fyc2UpIl0s
CisgICAgICAgIFsiKEFueS1Qb2ludGVyOiBDb2Fyc2UpIiwgIihhbnktcG9pbnRlcjogY29hcnNl
KSJdLAorICAgICAgICBbIihhbnktcG9pbnRlcjogTk9ORSkiLCAiKGFueS1wb2ludGVyOiBub25l
KSJdLAorICAgICAgICBbIihBbnktUG9pbnRlcjogTm9uZSkiLCAiKGFueS1wb2ludGVyOiBub25l
KSJdLAorCisgICAgICAgIC8vIFNwYWNpbmcuCisgICAgICAgIFsiKGFueS1wb2ludGVyOmZpbmUp
IiwgIihhbnktcG9pbnRlcjogZmluZSkiXSwKKyAgICAgICAgWyIoYW55LXBvaW50ZXI6IGZpbmUp
IiwgIihhbnktcG9pbnRlcjogZmluZSkiXSwKKyAgICAgICAgWyIoYW55LXBvaW50ZXIgOmZpbmUp
IiwgIihhbnktcG9pbnRlcjogZmluZSkiXSwKKyAgICAgICAgWyIoYW55LXBvaW50ZXIgOiBmaW5l
KSIsICIoYW55LXBvaW50ZXI6IGZpbmUpIl0sCisgICAgICAgIFsiKCAgICAgYW55LXBvaW50ZXIg
ICAgOiBmaW5lICAgICApIiwgIihhbnktcG9pbnRlcjogZmluZSkiXSwKKyAgICAgICAgWyIoYW55
LXBvaW50ZXJcdDpcdGZpbmUpIiwgIihhbnktcG9pbnRlcjogZmluZSkiXSwKKyAgICBdOworCisg
ICAgdmFyIHRhcmdldFN0eWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldC1zdHls
ZScpOworICAgIGZvciAodmFyIHRlc3RDYXNlIG9mIHRlc3RDYXNlcykgeworICAgICAgICB0YXJn
ZXRTdHlsZS5pbm5lclRleHQgPSAiQG1lZGlhICIgKyB0ZXN0Q2FzZVswXSArICIgeyB9IjsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NS
dWxlc1swXS5tZWRpYS5tZWRpYVRleHQiLCB0ZXN0Q2FzZVsxXSk7CisgICAgfQorPC9zY3JpcHQ+
CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bXEtYW55LXBvaW50ZXItaW52YWxpZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhL21xLWFueS1wb2ludGVyLWludmFsaWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0MDA3
NzY3ZjE5NzY5NTVhZTI0Yzg4MWNkNzJjNTZmMjIyYTJlNmYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLWFueS1wb2ludGVyLWludmFsaWQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjUgQEAKK1Rlc3QgaW52YWxpZCBpbnB1dCB3aXRoIHRoZSBhbnktcG9pbnRl
ciBtZWRpYSBmZWF0dXJlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB3
aW5kb3cubWF0Y2hNZWRpYSgiKGFueS1wb2ludGVyOikiKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNT
IGRvY3VtZW50LnN0eWxlU2hlZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlhLmxlbmd0aCBpcyAwCitQ
QVNTIHdpbmRvdy5tYXRjaE1lZGlhKCIoYW55LXBvaW50ZXI6ICkiKS5tYXRjaGVzIGlzIGZhbHNl
CitQQVNTIGRvY3VtZW50LnN0eWxlU2hlZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlhLmxlbmd0aCBp
cyAwCitQQVNTIHdpbmRvdy5tYXRjaE1lZGlhKCIoYW55LXBvaW50ZXI6IFdlYktpdCkiKS5tYXRj
aGVzIGlzIGZhbHNlCitQQVNTIGRvY3VtZW50LnN0eWxlU2hlZXRzWzFdLmNzc1J1bGVzWzBdLm1l
ZGlhLmxlbmd0aCBpcyAwCitQQVNTIHdpbmRvdy5tYXRjaE1lZGlhKCIoYW55LXBvaW50ZXI6IHBv
aW50ZXIpIikubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5j
c3NSdWxlc1swXS5tZWRpYS5sZW5ndGggaXMgMAorUEFTUyB3aW5kb3cubWF0Y2hNZWRpYSgiKGFu
eS1wb2ludGVyOiBob3ZlcikiKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIGRvY3VtZW50LnN0eWxl
U2hlZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlhLmxlbmd0aCBpcyAwCitQQVNTIHdpbmRvdy5tYXRj
aE1lZGlhKCIoYW55LXBvaW50ZXI6IHBvcnRyYWl0KSIpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1Mg
ZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEubGVuZ3RoIGlzIDAKK1BB
U1Mgd2luZG93Lm1hdGNoTWVkaWEoIihhbnktcG9pbnRlcjogXCJOb25lXCIpIikubWF0Y2hlcyBp
cyBmYWxzZQorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5s
ZW5ndGggaXMgMAorUEFTUyB3aW5kb3cubWF0Y2hNZWRpYSgiKGFueS1wb2ludGVyOiAnTm9uZScp
IikubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxl
c1swXS5tZWRpYS5sZW5ndGggaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEt
YW55LXBvaW50ZXItaW52YWxpZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1hbnkt
cG9pbnRlci1pbnZhbGlkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2NiMWFmOTlhYTBkNGI1NDIxNDZiNDlm
NjIxOThhYTRkM2Q5NTk1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWEvbXEtYW55LXBvaW50ZXItaW52YWxpZC5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlIGlkPSJ0YXJnZXQtc3R5bGUiPjwvc3R5bGU+
CisKKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgaW52YWxpZCBpbnB1dCB3aXRoIHRo
ZSBhbnktcG9pbnRlciBtZWRpYSBmZWF0dXJlLiIpCisKKyAgICB2YXIgdGVzdENhc2VzID0gWwor
ICAgICAgICAiYW55LXBvaW50ZXI6IiwKKyAgICAgICAgImFueS1wb2ludGVyOiAiLAorICAgICAg
ICAiYW55LXBvaW50ZXI6IFdlYktpdCIsCisgICAgICAgICJhbnktcG9pbnRlcjogcG9pbnRlciIs
CisgICAgICAgICJhbnktcG9pbnRlcjogaG92ZXIiLAorICAgICAgICAiYW55LXBvaW50ZXI6IHBv
cnRyYWl0IiwKKyAgICAgICAgImFueS1wb2ludGVyOiBcXFwiTm9uZVxcXCIiLAorICAgICAgICAi
YW55LXBvaW50ZXI6ICdOb25lJyIsCisgICAgXTsKKworICAgIHZhciB0YXJnZXRTdHlsZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQtc3R5bGUnKTsKKyAgICBmb3IgKHZhciB0ZXN0
Q2FzZSBvZiB0ZXN0Q2FzZXMpIHsKKyAgICAgICAgdmFyIHRlc3RTdHJpbmcgPSAnd2luZG93Lm1h
dGNoTWVkaWEoIignICsgdGVzdENhc2UgKyAnKSIpLm1hdGNoZXMnOworICAgICAgICBzaG91bGRC
ZUZhbHNlKCd3aW5kb3cubWF0Y2hNZWRpYSgiKCcgKyB0ZXN0Q2FzZSArICcpIikubWF0Y2hlcycp
OworCisgICAgICAgIHRhcmdldFN0eWxlLmlubmVyVGV4dCA9ICJAbWVkaWEgIiArIHRlc3RDYXNl
ICsgIiB7IH0iOworICAgICAgICBzaG91bGRCZSgiZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3Nz
UnVsZXNbMF0ubWVkaWEubGVuZ3RoIiwgIjAiKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1hbnktcG9p
bnRlci1tYXRjaE1lZGlhLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEt
YW55LXBvaW50ZXItbWF0Y2hNZWRpYS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjk2MWNjNjJk
ODY0OGMyMDE0MGM3OTkzNmViZmRlNTdlZGE0ZGE5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWEvbXEtYW55LXBvaW50ZXItbWF0Y2hNZWRpYS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxOSBAQAorVGVzdCB0aGUgYW55LXBvaW50ZXIgbWVkaWEgZmVhdHVyZSB3aXRo
IG1hY2hNZWRpYS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK3dpbmRvdy5tYXRj
aE1lZGlhKCIoYW55LXBvaW50ZXIpIikubWF0Y2hlcyA9IHRydWUKK3dpbmRvdy5tYXRjaE1lZGlh
KCIoYW55LXBvaW50ZXI6IGZpbmUpIikubWF0Y2hlcyA9IHRydWUKK3dpbmRvdy5tYXRjaE1lZGlh
KCIoYW55LXBvaW50ZXI6IGNvYXJzZSkiKS5tYXRjaGVzID0gZmFsc2UKK3dpbmRvdy5tYXRjaE1l
ZGlhKCIoYW55LXBvaW50ZXI6IG5vbmUpIikubWF0Y2hlcyA9IGZhbHNlCit3aW5kb3cubWF0Y2hN
ZWRpYSgiKGFueS1wb2ludGVyOiBGaW5lKSIpLm1hdGNoZXMgPSB0cnVlCit3aW5kb3cubWF0Y2hN
ZWRpYSgiKGFueS1wb2ludGVyOiBDb2Fyc2UpIikubWF0Y2hlcyA9IGZhbHNlCit3aW5kb3cubWF0
Y2hNZWRpYSgiKGFueS1wb2ludGVyOiBOb25lKSIpLm1hdGNoZXMgPSBmYWxzZQord2luZG93Lm1h
dGNoTWVkaWEoIihBbnktUG9pbnRlcjogZmluZSkiKS5tYXRjaGVzID0gdHJ1ZQord2luZG93Lm1h
dGNoTWVkaWEoIihBbnktUG9pbnRlcjogY29hcnNlKSIpLm1hdGNoZXMgPSBmYWxzZQord2luZG93
Lm1hdGNoTWVkaWEoIihBbnktUG9pbnRlcjogbm9uZSkiKS5tYXRjaGVzID0gZmFsc2UKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLWFueS1wb2ludGVyLW1hdGNoTWVkaWEuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtYW55LXBvaW50ZXItbWF0Y2hNZWRpYS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ0OTNmMjFlNjUxNDFmYzZkZWYwMWMyZDAzMDdjZTMxOTViNmJkZGQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLWFueS1wb2ludGVyLW1hdGNo
TWVkaWEuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgdGhlIGFueS1wb2ludGVyIG1lZGlh
IGZlYXR1cmUgd2l0aCBtYWNoTWVkaWEuIikKKworICAgIGZ1bmN0aW9uIHRlc3RQb2ludGVyQ29u
ZGl0aW9uKGNvbmRpdGlvbikgeworICAgICAgICB2YXIgdGVzdFN0cmluZyA9ICd3aW5kb3cubWF0
Y2hNZWRpYSgiKCcgKyBjb25kaXRpb24gKyAnKSIpLm1hdGNoZXMnOworICAgICAgICBkZWJ1Zyh0
ZXN0U3RyaW5nICsgIiA9ICIgKyBldmFsKHRlc3RTdHJpbmcpKTsKKyAgICB9CisKKyAgICB0ZXN0
UG9pbnRlckNvbmRpdGlvbigiYW55LXBvaW50ZXIiKTsKKworICAgIHRlc3RQb2ludGVyQ29uZGl0
aW9uKCJhbnktcG9pbnRlcjogZmluZSIpOworICAgIHRlc3RQb2ludGVyQ29uZGl0aW9uKCJhbnkt
cG9pbnRlcjogY29hcnNlIik7CisgICAgdGVzdFBvaW50ZXJDb25kaXRpb24oImFueS1wb2ludGVy
OiBub25lIik7CisKKyAgICB0ZXN0UG9pbnRlckNvbmRpdGlvbigiYW55LXBvaW50ZXI6IEZpbmUi
KTsKKyAgICB0ZXN0UG9pbnRlckNvbmRpdGlvbigiYW55LXBvaW50ZXI6IENvYXJzZSIpOworICAg
IHRlc3RQb2ludGVyQ29uZGl0aW9uKCJhbnktcG9pbnRlcjogTm9uZSIpOworCisgICAgdGVzdFBv
aW50ZXJDb25kaXRpb24oIkFueS1Qb2ludGVyOiBmaW5lIik7CisgICAgdGVzdFBvaW50ZXJDb25k
aXRpb24oIkFueS1Qb2ludGVyOiBjb2Fyc2UiKTsKKyAgICB0ZXN0UG9pbnRlckNvbmRpdGlvbigi
QW55LVBvaW50ZXI6IG5vbmUiKTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLWFueS1wb2ludGVyLXN0eWxpbmctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1hbnktcG9pbnRlci1zdHlsaW5n
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDhkZjBhYWUxODMwN2M0ZjA1NjM5YTNhMWMxMDM0
Mjk2MDVhZWI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1h
bnktcG9pbnRlci1zdHlsaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUZXN0IHRo
ZSBhbnktcG9pbnRlciBtZWRpYSBmZWF0dXJlIHRvIGd1YXJkIHN0eWxlIHJ1bGVzLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpWyJjb2xv
ciJdID0gcmdiKDAsIDEyOCwgMCkKK2dldENvbXB1dGVkU3R5bGUodGFyZ2V0KVsiYmFja2dyb3Vu
ZC1jb2xvciJdID0gcmdiKDAsIDAsIDI1NSkKK2dldENvbXB1dGVkU3R5bGUodGFyZ2V0KVsid2lk
dGgiXSA9IDEwMHB4CitnZXRDb21wdXRlZFN0eWxlKHRhcmdldClbImhlaWdodCJdID0gMTAwcHgK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLWFueS1wb2ludGVyLXN0eWxpbmcuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtYW55LXBvaW50ZXItc3R5bGluZy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRlOTk0YmNmZGU1MmU5ZjUyMGI1NzI5MTgwNTg3YjAyMWE5N2RjNTkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLWFueS1wb2ludGVyLXN0eWxp
bmcuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxkaXYgaWQ9InRhcmdldCI+PC9kaXY+Cis8c3R5bGU+CisgICAgI3RhcmdldCB7CisgICAgICAg
IGNvbG9yOiByZWQ7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOworICAgICAgICB3
aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIGRpc3BsYXk6IG5v
bmU7CisgICAgfQorICAgIEBtZWRpYSAoYW55LXBvaW50ZXIpIHsKKyAgICAgICAgI3RhcmdldCB7
CisgICAgICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgICAgIH0KKyAgICB9CisgICAgQG1lZGlh
IChhbnktcG9pbnRlcjogZmluZSkgeworICAgICAgICAjdGFyZ2V0IHsKKyAgICAgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgIH0KKyAgICB9CisgICAgQG1lZGlhIChhbnkt
cG9pbnRlcjogY29hcnNlKSB7CisgICAgICAgICN0YXJnZXQgeworICAgICAgICAgICAgd2lkdGg6
IDEwcHg7CisgICAgICAgIH0KKyAgICB9CisgICAgQG1lZGlhIChhbnktcG9pbnRlcjogbm9uZSkg
eworICAgICAgICAjdGFyZ2V0IHsKKyAgICAgICAgICAgIGhlaWdodDogMTBweDsKKyAgICAgICAg
fQorICAgIH0KKzwvc3R5bGU+CisKKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgdGhl
IGFueS1wb2ludGVyIG1lZGlhIGZlYXR1cmUgdG8gZ3VhcmQgc3R5bGUgcnVsZXMuIikKKworICAg
IHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICBm
dW5jdGlvbiBkaXNwbGF5UHJvcGVydHkocHJvcGVydHkpIHsKKyAgICAgICAgdmFyIHRlc3RTdHJp
bmcgPSAnZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpWyInICsgcHJvcGVydHkgKyAnIl0nOworICAg
ICAgICBkZWJ1Zyh0ZXN0U3RyaW5nICsgIiA9ICIgKyBldmFsKHRlc3RTdHJpbmcpKTsKKyAgICB9
CisKKyAgICBkaXNwbGF5UHJvcGVydHkoImNvbG9yIik7CisgICAgZGlzcGxheVByb3BlcnR5KCJi
YWNrZ3JvdW5kLWNvbG9yIik7CisgICAgZGlzcGxheVByb3BlcnR5KCJ3aWR0aCIpOworICAgIGRp
c3BsYXlQcm9wZXJ0eSgiaGVpZ2h0Iik7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1ob3Zlci1jc3NvbS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLWhvdmVyLWNzc29tLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xZGNjNjNiYmE0YmQ1ZmY2YmZiZTQ5OTY1ZjI4OWY2NDBkODM5NzAzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1ob3Zlci1jc3NvbS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOSBAQAorVGVzdCB0aGUgQ1NTT00gc2VyaWFsaXphdGlv
biBvZiB0aGUgaG92ZXIgbWVkaWEgZmVhdHVyZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEubWVk
aWFUZXh0IGlzICIoaG92ZXIpIgorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxl
c1swXS5tZWRpYS5tZWRpYVRleHQgaXMgIihob3ZlcikiCitQQVNTIGRvY3VtZW50LnN0eWxlU2hl
ZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCBpcyAiKGhvdmVyKSIKK1BBU1MgZG9j
dW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEubWVkaWFUZXh0IGlzICIoaG92
ZXIpIgorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRp
YVRleHQgaXMgIihob3ZlcjogaG92ZXIpIgorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5j
c3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMgIihob3ZlcjogaG92ZXIpIgorUEFTUyBkb2N1
bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMgIihob3Zl
cjogaG92ZXIpIgorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRp
YS5tZWRpYVRleHQgaXMgIihob3ZlcjogaG92ZXIpIgorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0
c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMgIihob3ZlcjogaG92ZXIpIgorUEFT
UyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMg
Iihob3ZlcjogaG92ZXIpIgorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1sw
XS5tZWRpYS5tZWRpYVRleHQgaXMgIihob3Zlcjogb24tZGVtYW5kKSIKK1BBU1MgZG9jdW1lbnQu
c3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEubWVkaWFUZXh0IGlzICIoaG92ZXI6IG9u
LWRlbWFuZCkiCitQQVNTIGRvY3VtZW50LnN0eWxlU2hlZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlh
Lm1lZGlhVGV4dCBpcyAiKGhvdmVyOiBub25lKSIKK1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNb
MV0uY3NzUnVsZXNbMF0ubWVkaWEubWVkaWFUZXh0IGlzICIoaG92ZXI6IG5vbmUpIgorUEFTUyBk
b2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMgIiho
b3ZlcjogaG92ZXIpIgorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5t
ZWRpYS5tZWRpYVRleHQgaXMgIihob3ZlcjogaG92ZXIpIgorUEFTUyBkb2N1bWVudC5zdHlsZVNo
ZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMgIihob3ZlcjogaG92ZXIpIgor
UEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQg
aXMgIihob3ZlcjogaG92ZXIpIgorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxl
c1swXS5tZWRpYS5tZWRpYVRleHQgaXMgIihob3ZlcjogaG92ZXIpIgorUEFTUyBkb2N1bWVudC5z
dHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMgIihob3ZlcjogaG92
ZXIpIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtaG92ZXItY3Nzb20uaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtaG92ZXItY3Nzb20uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
NDM3YWQzZjcyYTY2NmNjZDRmNTYzOTljODZiMTJjMDk2YzE4NzcwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1ob3Zlci1jc3NvbS5odG1sCkBAIC0wLDAgKzEs
NDUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlIGlkPSJ0YXJnZXQt
c3R5bGUiPjwvc3R5bGU+CisKKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgdGhlIENT
U09NIHNlcmlhbGl6YXRpb24gb2YgdGhlIGhvdmVyIG1lZGlhIGZlYXR1cmUuIikKKworICAgIHZh
ciB0ZXN0Q2FzZXMgPSBbCisgICAgICAgIC8vIENhc2UuCisgICAgICAgIFsiKGhvdmVyKSIsICIo
aG92ZXIpIl0sCisgICAgICAgIFsiKCAgICBob3ZlcikiLCAiKGhvdmVyKSJdLAorICAgICAgICBb
Iihob3ZlciAgICApIiwgIihob3ZlcikiXSwKKyAgICAgICAgWyIoICAgIGhvdmVyICAgICkiLCAi
KGhvdmVyKSJdLAorICAgICAgICBbIihob3ZlcjogaG92ZXIpIiwgIihob3ZlcjogaG92ZXIpIl0s
CisgICAgICAgIFsiKGhvdmVyOiBIb3ZlcikiLCAiKGhvdmVyOiBob3ZlcikiXSwKKyAgICAgICAg
WyIoaG92ZXI6IEhPVkVSKSIsICIoaG92ZXI6IGhvdmVyKSJdLAorICAgICAgICBbIihIb3Zlcjog
aG92ZXIpIiwgIihob3ZlcjogaG92ZXIpIl0sCisgICAgICAgIFsiKEhPVkVSOiBob3ZlcikiLCAi
KGhvdmVyOiBob3ZlcikiXSwKKyAgICAgICAgWyIoSG92ZXI6IEhvdmVyKSIsICIoaG92ZXI6IGhv
dmVyKSJdLAorICAgICAgICBbIihob3ZlcjogT04tREVNQU5EKSIsICIoaG92ZXI6IG9uLWRlbWFu
ZCkiXSwKKyAgICAgICAgWyIoSG92ZXI6IE9uLWRlbWFuZCkiLCAiKGhvdmVyOiBvbi1kZW1hbmQp
Il0sCisgICAgICAgIFsiKGhvdmVyOiBOT05FKSIsICIoaG92ZXI6IG5vbmUpIl0sCisgICAgICAg
IFsiKEhvdmVyOiBOb25lKSIsICIoaG92ZXI6IG5vbmUpIl0sCisKKyAgICAgICAgLy8gU3BhY2lu
Zy4KKyAgICAgICAgWyIoaG92ZXI6aG92ZXIpIiwgIihob3ZlcjogaG92ZXIpIl0sCisgICAgICAg
IFsiKGhvdmVyOiBob3ZlcikiLCAiKGhvdmVyOiBob3ZlcikiXSwKKyAgICAgICAgWyIoaG92ZXIg
OmhvdmVyKSIsICIoaG92ZXI6IGhvdmVyKSJdLAorICAgICAgICBbIihob3ZlciA6IGhvdmVyKSIs
ICIoaG92ZXI6IGhvdmVyKSJdLAorICAgICAgICBbIiggICAgIGhvdmVyICAgIDogaG92ZXIgICAg
ICkiLCAiKGhvdmVyOiBob3ZlcikiXSwKKyAgICAgICAgWyIoaG92ZXJcdDpcdGhvdmVyKSIsICIo
aG92ZXI6IGhvdmVyKSJdLAorICAgIF07CisKKyAgICB2YXIgdGFyZ2V0U3R5bGUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0LXN0eWxlJyk7CisgICAgZm9yICh2YXIgdGVzdENhc2Ug
b2YgdGVzdENhc2VzKSB7CisgICAgICAgIHRhcmdldFN0eWxlLmlubmVyVGV4dCA9ICJAbWVkaWEg
IiArIHRlc3RDYXNlWzBdICsgIiB7IH0iOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImRvY3VtZW50LnN0eWxlU2hlZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCIsIHRl
c3RDYXNlWzFdKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1ob3Zlci1pbnZhbGlkLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtaG92ZXItaW52YWxpZC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTdkMzY5Y2ZjNWQxY2UyNTFlMWNhMTM5OTFjNzNkZWMxMjZjMDc2NwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtaG92ZXItaW52YWxpZC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBAQAorVGVzdCBpbnZhbGlkIGlucHV0IHdpdGggdGhl
IGhvdmVyIG1lZGlhIGZlYXR1cmUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHdpbmRvdy5tYXRjaE1lZGlhKCIoaG92ZXI6KSIpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1Mg
ZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEubGVuZ3RoIGlzIDAKK1BB
U1Mgd2luZG93Lm1hdGNoTWVkaWEoIihob3ZlcjogKSIpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1Mg
ZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEubGVuZ3RoIGlzIDAKK1BB
U1Mgd2luZG93Lm1hdGNoTWVkaWEoIihob3ZlcjogV2ViS2l0KSIpLm1hdGNoZXMgaXMgZmFsc2UK
K1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEubGVuZ3RoIGlz
IDAKK1BBU1Mgd2luZG93Lm1hdGNoTWVkaWEoIihob3ZlcjogZmluZSkiKS5tYXRjaGVzIGlzIGZh
bHNlCitQQVNTIGRvY3VtZW50LnN0eWxlU2hlZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlhLmxlbmd0
aCBpcyAwCitQQVNTIHdpbmRvdy5tYXRjaE1lZGlhKCIoaG92ZXI6IHBvcnRyYWl0KSIpLm1hdGNo
ZXMgaXMgZmFsc2UKK1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVk
aWEubGVuZ3RoIGlzIDAKK1BBU1Mgd2luZG93Lm1hdGNoTWVkaWEoIihob3ZlcjogXCJOb25lXCIp
IikubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxl
c1swXS5tZWRpYS5sZW5ndGggaXMgMAorUEFTUyB3aW5kb3cubWF0Y2hNZWRpYSgiKGhvdmVyOiAn
Tm9uZScpIikubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5j
c3NSdWxlc1swXS5tZWRpYS5sZW5ndGggaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWEvbXEtaG92ZXItaW52YWxpZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1ob3Zl
ci1pbnZhbGlkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzcyNGQxMGNkYTczMWYyNWIxMjFmZmMxNWMxZTdk
ZjJmMWY5ZmEwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEt
aG92ZXItaW52YWxpZC5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHN0eWxlIGlkPSJ0YXJnZXQtc3R5bGUiPjwvc3R5bGU+CisKKzxzY3JpcHQ+
CisgICAgZGVzY3JpcHRpb24oIlRlc3QgaW52YWxpZCBpbnB1dCB3aXRoIHRoZSBob3ZlciBtZWRp
YSBmZWF0dXJlLiIpCisKKyAgICB2YXIgdGVzdENhc2VzID0gWworICAgICAgICAiaG92ZXI6IiwK
KyAgICAgICAgImhvdmVyOiAiLAorICAgICAgICAiaG92ZXI6IFdlYktpdCIsCisgICAgICAgICJo
b3ZlcjogZmluZSIsCisgICAgICAgICJob3ZlcjogcG9ydHJhaXQiLAorICAgICAgICAiaG92ZXI6
IFxcXCJOb25lXFxcIiIsCisgICAgICAgICJob3ZlcjogJ05vbmUnIiwKKyAgICBdOworCisgICAg
dmFyIHRhcmdldFN0eWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldC1zdHlsZScp
OworICAgIGZvciAodmFyIHRlc3RDYXNlIG9mIHRlc3RDYXNlcykgeworICAgICAgICB2YXIgdGVz
dFN0cmluZyA9ICd3aW5kb3cubWF0Y2hNZWRpYSgiKCcgKyB0ZXN0Q2FzZSArICcpIikubWF0Y2hl
cyc7CisgICAgICAgIHNob3VsZEJlRmFsc2UoJ3dpbmRvdy5tYXRjaE1lZGlhKCIoJyArIHRlc3RD
YXNlICsgJykiKS5tYXRjaGVzJyk7CisKKyAgICAgICAgdGFyZ2V0U3R5bGUuaW5uZXJUZXh0ID0g
IkBtZWRpYSAiICsgdGVzdENhc2UgKyAiIHsgfSI7CisgICAgICAgIHNob3VsZEJlKCJkb2N1bWVu
dC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5sZW5ndGgiLCAiMCIpOworICAgIH0K
Kzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhL21xLWhvdmVyLW1hdGNoTWVkaWEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tcS1ob3Zlci1tYXRjaE1lZGlhLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
YmE2ZjQxYTg0ZWE5YTczZTAwNmEzMjJjOGRkMjU5NzExMWM1MGQzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1ob3Zlci1tYXRjaE1lZGlhLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE5IEBACitUZXN0IHRoZSBob3ZlciBtZWRpYSBmZWF0dXJlIHdpdGggbWFj
aE1lZGlhLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKword2luZG93Lm1hdGNoTWVk
aWEoIihob3ZlcikiKS5tYXRjaGVzID0gdHJ1ZQord2luZG93Lm1hdGNoTWVkaWEoIihob3Zlcjog
aG92ZXIpIikubWF0Y2hlcyA9IHRydWUKK3dpbmRvdy5tYXRjaE1lZGlhKCIoaG92ZXI6IG9uLWRl
bWFuZCkiKS5tYXRjaGVzID0gZmFsc2UKK3dpbmRvdy5tYXRjaE1lZGlhKCIoaG92ZXI6IG5vbmUp
IikubWF0Y2hlcyA9IGZhbHNlCit3aW5kb3cubWF0Y2hNZWRpYSgiKGhvdmVyOiBIb3ZlcikiKS5t
YXRjaGVzID0gdHJ1ZQord2luZG93Lm1hdGNoTWVkaWEoIihob3ZlcjogT24tZGVtYW5kKSIpLm1h
dGNoZXMgPSBmYWxzZQord2luZG93Lm1hdGNoTWVkaWEoIihob3ZlcjogTm9uZSkiKS5tYXRjaGVz
ID0gZmFsc2UKK3dpbmRvdy5tYXRjaE1lZGlhKCIoSG92ZXI6IGhvdmVyKSIpLm1hdGNoZXMgPSB0
cnVlCit3aW5kb3cubWF0Y2hNZWRpYSgiKEhvdmVyOiBvbi1kZW1hbmQpIikubWF0Y2hlcyA9IGZh
bHNlCit3aW5kb3cubWF0Y2hNZWRpYSgiKEhvdmVyOiBub25lKSIpLm1hdGNoZXMgPSBmYWxzZQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtaG92ZXItbWF0Y2hNZWRpYS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1ob3Zlci1tYXRjaE1lZGlhLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzViYWUzM2NjMjQ4NDYyNzNhMzFjNzQzYmQ3N2I1ZWFkNmIxMTNhNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtaG92ZXItbWF0Y2hNZWRpYS5odG1sCkBA
IC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
KyAgICBkZXNjcmlwdGlvbigiVGVzdCB0aGUgaG92ZXIgbWVkaWEgZmVhdHVyZSB3aXRoIG1hY2hN
ZWRpYS4iKQorCisgICAgZnVuY3Rpb24gdGVzdEhvdmVyQ29uZGl0aW9uKGNvbmRpdGlvbikgewor
ICAgICAgICB2YXIgdGVzdFN0cmluZyA9ICd3aW5kb3cubWF0Y2hNZWRpYSgiKCcgKyBjb25kaXRp
b24gKyAnKSIpLm1hdGNoZXMnOworICAgICAgICBkZWJ1Zyh0ZXN0U3RyaW5nICsgIiA9ICIgKyBl
dmFsKHRlc3RTdHJpbmcpKTsKKyAgICB9CisKKyAgICB0ZXN0SG92ZXJDb25kaXRpb24oImhvdmVy
Iik7CisKKyAgICB0ZXN0SG92ZXJDb25kaXRpb24oImhvdmVyOiBob3ZlciIpOworICAgIHRlc3RI
b3ZlckNvbmRpdGlvbigiaG92ZXI6IG9uLWRlbWFuZCIpOworICAgIHRlc3RIb3ZlckNvbmRpdGlv
bigiaG92ZXI6IG5vbmUiKTsKKworICAgIHRlc3RIb3ZlckNvbmRpdGlvbigiaG92ZXI6IEhvdmVy
Iik7CisgICAgdGVzdEhvdmVyQ29uZGl0aW9uKCJob3ZlcjogT24tZGVtYW5kIik7CisgICAgdGVz
dEhvdmVyQ29uZGl0aW9uKCJob3ZlcjogTm9uZSIpOworCisgICAgdGVzdEhvdmVyQ29uZGl0aW9u
KCJIb3ZlcjogaG92ZXIiKTsKKyAgICB0ZXN0SG92ZXJDb25kaXRpb24oIkhvdmVyOiBvbi1kZW1h
bmQiKTsKKyAgICB0ZXN0SG92ZXJDb25kaXRpb24oIkhvdmVyOiBub25lIik7Cis8L3NjcmlwdD4K
KworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
cS1ob3Zlci1zdHlsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEt
aG92ZXItc3R5bGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTVkOTJjM2FmZmFjYTcwNGM2
Nzg1Y2IzODQ1NDYwYmYxZDRhNGJkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbXEtaG92ZXItc3R5bGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAor
VGVzdCB0aGUgaG92ZXIgbWVkaWEgZmVhdHVyZSB0byBndWFyZCBzdHlsZSBydWxlcy4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2dldENvbXB1dGVkU3R5bGUodGFyZ2V0KVsiY29s
b3IiXSA9IHJnYigwLCAxMjgsIDApCitnZXRDb21wdXRlZFN0eWxlKHRhcmdldClbImJhY2tncm91
bmQtY29sb3IiXSA9IHJnYigwLCAwLCAyNTUpCitnZXRDb21wdXRlZFN0eWxlKHRhcmdldClbIndp
ZHRoIl0gPSAxMDBweAorZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpWyJoZWlnaHQiXSA9IDEwMHB4
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1ob3Zlci1zdHlsaW5nLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLWhvdmVyLXN0eWxpbmcuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
YTdjNTkwNDM5MGJmN2M4OGEzOWZlODFkODk3ZjJkZjNhYjg5ZmVlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1ob3Zlci1zdHlsaW5nLmh0bWwKQEAgLTAsMCAr
MSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJ0YXJnZXQi
PjwvZGl2PgorPHN0eWxlPgorICAgICN0YXJnZXQgeworICAgICAgICBjb2xvcjogcmVkOworICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAg
ICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBkaXNwbGF5OiBub25lOworICAgIH0KKyAgICBA
bWVkaWEgKGhvdmVyKSB7CisgICAgICAgICN0YXJnZXQgeworICAgICAgICAgICAgY29sb3I6IGdy
ZWVuOworICAgICAgICB9CisgICAgfQorICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7CisgICAg
ICAgICN0YXJnZXQgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAg
ICAgfQorICAgIH0KKyAgICBAbWVkaWEgKGhvdmVyOiBvbi1kZW1hbmQpIHsKKyAgICAgICAgI3Rh
cmdldCB7CisgICAgICAgICAgICB3aWR0aDogMTBweDsKKyAgICAgICAgfQorICAgIH0KKyAgICBA
bWVkaWEgKGhvdmVyOiBub25lKSB7CisgICAgICAgICN0YXJnZXQgeworICAgICAgICAgICAgaGVp
Z2h0OiAxMHB4OworICAgICAgICB9CisgICAgfQorPC9zdHlsZT4KKworPHNjcmlwdD4KKyAgICBk
ZXNjcmlwdGlvbigiVGVzdCB0aGUgaG92ZXIgbWVkaWEgZmVhdHVyZSB0byBndWFyZCBzdHlsZSBy
dWxlcy4iKQorCisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJn
ZXQnKTsKKworICAgIGZ1bmN0aW9uIGRpc3BsYXlQcm9wZXJ0eShwcm9wZXJ0eSkgeworICAgICAg
ICB2YXIgdGVzdFN0cmluZyA9ICdnZXRDb21wdXRlZFN0eWxlKHRhcmdldClbIicgKyBwcm9wZXJ0
eSArICciXSc7CisgICAgICAgIGRlYnVnKHRlc3RTdHJpbmcgKyAiID0gIiArIGV2YWwodGVzdFN0
cmluZykpOworICAgIH0KKworICAgIGRpc3BsYXlQcm9wZXJ0eSgiY29sb3IiKTsKKyAgICBkaXNw
bGF5UHJvcGVydHkoImJhY2tncm91bmQtY29sb3IiKTsKKyAgICBkaXNwbGF5UHJvcGVydHkoIndp
ZHRoIik7CisgICAgZGlzcGxheVByb3BlcnR5KCJoZWlnaHQiKTsKKzwvc2NyaXB0PgorCis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXBvaW50
ZXItY3Nzb20tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1wb2ludGVy
LWNzc29tLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YTRlMzMxZjU2MGVmMzYwYzQzYmI1NDQ1
ODIwMWQ2YjFiODY2YjUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YS9tcS1wb2ludGVyLWNzc29tLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACitUZXN0IHRo
ZSBDU1NPTSBzZXJpYWxpemF0aW9uIG9mIHRoZSBwb2ludGVyIG1lZGlhIGZlYXR1cmUuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LnN0eWxlU2hlZXRzWzFd
LmNzc1J1bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCBpcyAiKHBvaW50ZXIpIgorUEFTUyBkb2N1bWVu
dC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMgIihwb2ludGVy
KSIKK1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEubWVkaWFU
ZXh0IGlzICIocG9pbnRlcikiCitQQVNTIGRvY3VtZW50LnN0eWxlU2hlZXRzWzFdLmNzc1J1bGVz
WzBdLm1lZGlhLm1lZGlhVGV4dCBpcyAiKHBvaW50ZXIpIgorUEFTUyBkb2N1bWVudC5zdHlsZVNo
ZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMgIihwb2ludGVyOiBmaW5lKSIK
K1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEubWVkaWFUZXh0
IGlzICIocG9pbnRlcjogZmluZSkiCitQQVNTIGRvY3VtZW50LnN0eWxlU2hlZXRzWzFdLmNzc1J1
bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCBpcyAiKHBvaW50ZXI6IGZpbmUpIgorUEFTUyBkb2N1bWVu
dC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMgIihwb2ludGVy
OiBmaW5lKSIKK1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEu
bWVkaWFUZXh0IGlzICIocG9pbnRlcjogZmluZSkiCitQQVNTIGRvY3VtZW50LnN0eWxlU2hlZXRz
WzFdLmNzc1J1bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCBpcyAiKHBvaW50ZXI6IGZpbmUpIgorUEFT
UyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMg
Iihwb2ludGVyOiBjb2Fyc2UpIgorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxl
c1swXS5tZWRpYS5tZWRpYVRleHQgaXMgIihwb2ludGVyOiBjb2Fyc2UpIgorUEFTUyBkb2N1bWVu
dC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMgIihwb2ludGVy
OiBub25lKSIKK1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEu
bWVkaWFUZXh0IGlzICIocG9pbnRlcjogbm9uZSkiCitQQVNTIGRvY3VtZW50LnN0eWxlU2hlZXRz
WzFdLmNzc1J1bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCBpcyAiKHBvaW50ZXI6IGZpbmUpIgorUEFT
UyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRpYVRleHQgaXMg
Iihwb2ludGVyOiBmaW5lKSIKK1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNb
MF0ubWVkaWEubWVkaWFUZXh0IGlzICIocG9pbnRlcjogZmluZSkiCitQQVNTIGRvY3VtZW50LnN0
eWxlU2hlZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCBpcyAiKHBvaW50ZXI6IGZp
bmUpIgorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5tZWRp
YVRleHQgaXMgIihwb2ludGVyOiBmaW5lKSIKK1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0u
Y3NzUnVsZXNbMF0ubWVkaWEubWVkaWFUZXh0IGlzICIocG9pbnRlcjogZmluZSkiCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1wb2ludGVyLWNzc29tLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhL21xLXBvaW50ZXItY3Nzb20uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzBlZWUwMDUz
ZTI5YWYxZTQ2YjY2NjJlNjhlMTZkY2ZlZjMzOWIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYS9tcS1wb2ludGVyLWNzc29tLmh0bWwKQEAgLTAsMCArMSw0NSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGUgaWQ9InRhcmdldC1zdHlsZSI+
PC9zdHlsZT4KKworPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCB0aGUgQ1NTT00gc2Vy
aWFsaXphdGlvbiBvZiB0aGUgcG9pbnRlciBtZWRpYSBmZWF0dXJlLiIpCisKKyAgICB2YXIgdGVz
dENhc2VzID0gWworICAgICAgICAvLyBDYXNlLgorICAgICAgICBbIihwb2ludGVyKSIsICIocG9p
bnRlcikiXSwKKyAgICAgICAgWyIoICAgIHBvaW50ZXIpIiwgIihwb2ludGVyKSJdLAorICAgICAg
ICBbIihwb2ludGVyICAgICkiLCAiKHBvaW50ZXIpIl0sCisgICAgICAgIFsiKCAgICBwb2ludGVy
ICAgICkiLCAiKHBvaW50ZXIpIl0sCisgICAgICAgIFsiKHBvaW50ZXI6IGZpbmUpIiwgIihwb2lu
dGVyOiBmaW5lKSJdLAorICAgICAgICBbIihwb2ludGVyOiBGaW5lKSIsICIocG9pbnRlcjogZmlu
ZSkiXSwKKyAgICAgICAgWyIocG9pbnRlcjogRklORSkiLCAiKHBvaW50ZXI6IGZpbmUpIl0sCisg
ICAgICAgIFsiKFBvaW50ZXI6IGZpbmUpIiwgIihwb2ludGVyOiBmaW5lKSJdLAorICAgICAgICBb
IihQT0lOVEVSOiBmaW5lKSIsICIocG9pbnRlcjogZmluZSkiXSwKKyAgICAgICAgWyIoUG9pbnRl
cjogRmluZSkiLCAiKHBvaW50ZXI6IGZpbmUpIl0sCisgICAgICAgIFsiKHBvaW50ZXI6IENPQVJT
RSkiLCAiKHBvaW50ZXI6IGNvYXJzZSkiXSwKKyAgICAgICAgWyIoUG9pbnRlcjogQ29hcnNlKSIs
ICIocG9pbnRlcjogY29hcnNlKSJdLAorICAgICAgICBbIihwb2ludGVyOiBOT05FKSIsICIocG9p
bnRlcjogbm9uZSkiXSwKKyAgICAgICAgWyIoUG9pbnRlcjogTm9uZSkiLCAiKHBvaW50ZXI6IG5v
bmUpIl0sCisKKyAgICAgICAgLy8gU3BhY2luZy4KKyAgICAgICAgWyIocG9pbnRlcjpmaW5lKSIs
ICIocG9pbnRlcjogZmluZSkiXSwKKyAgICAgICAgWyIocG9pbnRlcjogZmluZSkiLCAiKHBvaW50
ZXI6IGZpbmUpIl0sCisgICAgICAgIFsiKHBvaW50ZXIgOmZpbmUpIiwgIihwb2ludGVyOiBmaW5l
KSJdLAorICAgICAgICBbIihwb2ludGVyIDogZmluZSkiLCAiKHBvaW50ZXI6IGZpbmUpIl0sCisg
ICAgICAgIFsiKCAgICAgcG9pbnRlciAgICA6IGZpbmUgICAgICkiLCAiKHBvaW50ZXI6IGZpbmUp
Il0sCisgICAgICAgIFsiKHBvaW50ZXJcdDpcdGZpbmUpIiwgIihwb2ludGVyOiBmaW5lKSJdLAor
ICAgIF07CisKKyAgICB2YXIgdGFyZ2V0U3R5bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGFyZ2V0LXN0eWxlJyk7CisgICAgZm9yICh2YXIgdGVzdENhc2Ugb2YgdGVzdENhc2VzKSB7Cisg
ICAgICAgIHRhcmdldFN0eWxlLmlubmVyVGV4dCA9ICJAbWVkaWEgIiArIHRlc3RDYXNlWzBdICsg
IiB7IH0iOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LnN0eWxlU2hl
ZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlhLm1lZGlhVGV4dCIsIHRlc3RDYXNlWzFdKTsKKyAgICB9
Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tcS1wb2ludGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWEvbXEtcG9pbnRlci1leHBlY3RlZC50eHQKaW5kZXggY2Y3YTY5NTZkZGVmZmIyZDMwNWI1MzA0
NzU5MjAzY2RhYWM0YmMxMC4uZTg3MWFhYTdlYWY0MTE5YWVlZTVmMTY5MWI5N2Y0ODU3NDA1ZTI0
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1wb2ludGVyLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXBvaW50ZXItZXhwZWN0ZWQudHh0
CkBAIC0xLDI3ICsxLDE0IEBACiBUZXN0IHRoZSAocG9pbnRlcikgYW5kIChob3ZlcikgbWVkaWEg
ZmVhdHVyZXMuIFNlZSBCdWcgODc0MDMgZm9yIGRldGFpbHMuCiAKLS0tLS0tLS0tLS0tLS0gZGVm
YXVsdCBjb25maWd1cmF0aW9uIC0tLS0tLS0tLS0tLS0KLVF1ZXJ5ICIocG9pbnRlcikiOiBmYWxz
ZQotUXVlcnkgIihQb2ludGVyKSI6IGZhbHNlCitRdWVyeSAiKHBvaW50ZXIpIjogdHJ1ZQorUXVl
cnkgIihQb2ludGVyKSI6IHRydWUKIFF1ZXJ5ICIocG9pbnRlcjpub25lKSI6IGZhbHNlCiBRdWVy
eSAiKHBvaW50ZXI6Y29hcnNlKSI6IGZhbHNlCiBRdWVyeSAiKHBvaW50ZXI6Y29BUnNlKSI6IGZh
bHNlCiBRdWVyeSAiKHBvaW50ZXI6Ym9ndXN2YWx1ZSkiOiBmYWxzZQotUXVlcnkgIihwb2ludGVy
OmZpbmUpIjogZmFsc2UKLVF1ZXJ5ICIoaG92ZXIpIjogZmFsc2UKK1F1ZXJ5ICIocG9pbnRlcjpm
aW5lKSI6IHRydWUKK1F1ZXJ5ICIoaG92ZXIpIjogdHJ1ZQogUXVlcnkgIihob3ZlcjowKSI6IGZh
bHNlCiBRdWVyeSAiKGhvdmVyOjEpIjogZmFsc2UKIFF1ZXJ5ICIoaG92ZXI6Ym9ndXN2YWx1ZSki
OiBmYWxzZQotLS0tLS0tLS0tLS0tLSB3aXRoIHRvdWNoIHNjcmVlbiAtLS0tLS0tLS0tLS0tCi1R
dWVyeSAiKHBvaW50ZXIpIjogdHJ1ZQotUXVlcnkgIihQb2ludGVyKSI6IHRydWUKLVF1ZXJ5ICIo
cG9pbnRlcjpub25lKSI6IGZhbHNlCi1RdWVyeSAiKHBvaW50ZXI6Y29hcnNlKSI6IHRydWUKLVF1
ZXJ5ICIocG9pbnRlcjpjb0FSc2UpIjogdHJ1ZQotUXVlcnkgIihwb2ludGVyOmJvZ3VzdmFsdWUp
IjogZmFsc2UKLVF1ZXJ5ICIocG9pbnRlcjpmaW5lKSI6IGZhbHNlCi1RdWVyeSAiKGhvdmVyKSI6
IGZhbHNlCi1RdWVyeSAiKGhvdmVyOjApIjogdHJ1ZQotUXVlcnkgIihob3ZlcjoxKSI6IGZhbHNl
Ci1RdWVyeSAiKGhvdmVyOmJvZ3VzdmFsdWUpIjogZmFsc2UKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYS9tcS1wb2ludGVyLWludmFsaWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYS9tcS1wb2ludGVyLWludmFsaWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIyOWM4YjQ5NmEyYWQ3MGIxNGU2NTQ5YTIzY2RlMzRiNWEzZTEwMjUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXBvaW50ZXItaW52YWxpZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyNSBAQAorVGVzdCBpbnZhbGlkIGlucHV0IHdpdGggdGhlIHBvaW50
ZXIgbWVkaWEgZmVhdHVyZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
d2luZG93Lm1hdGNoTWVkaWEoIihwb2ludGVyOikiKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIGRv
Y3VtZW50LnN0eWxlU2hlZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlhLmxlbmd0aCBpcyAwCitQQVNT
IHdpbmRvdy5tYXRjaE1lZGlhKCIocG9pbnRlcjogKSIpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1Mg
ZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNbMF0ubWVkaWEubGVuZ3RoIGlzIDAKK1BB
U1Mgd2luZG93Lm1hdGNoTWVkaWEoIihwb2ludGVyOiBXZWJLaXQpIikubWF0Y2hlcyBpcyBmYWxz
ZQorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5sZW5ndGgg
aXMgMAorUEFTUyB3aW5kb3cubWF0Y2hNZWRpYSgiKHBvaW50ZXI6IHBvaW50ZXIpIikubWF0Y2hl
cyBpcyBmYWxzZQorUEFTUyBkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRp
YS5sZW5ndGggaXMgMAorUEFTUyB3aW5kb3cubWF0Y2hNZWRpYSgiKHBvaW50ZXI6IGhvdmVyKSIp
Lm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgZG9jdW1lbnQuc3R5bGVTaGVldHNbMV0uY3NzUnVsZXNb
MF0ubWVkaWEubGVuZ3RoIGlzIDAKK1BBU1Mgd2luZG93Lm1hdGNoTWVkaWEoIihwb2ludGVyOiBw
b3J0cmFpdCkiKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIGRvY3VtZW50LnN0eWxlU2hlZXRzWzFd
LmNzc1J1bGVzWzBdLm1lZGlhLmxlbmd0aCBpcyAwCitQQVNTIHdpbmRvdy5tYXRjaE1lZGlhKCIo
cG9pbnRlcjogXCJOb25lXCIpIikubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBkb2N1bWVudC5zdHls
ZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5sZW5ndGggaXMgMAorUEFTUyB3aW5kb3cubWF0
Y2hNZWRpYSgiKHBvaW50ZXI6ICdOb25lJykiKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIGRvY3Vt
ZW50LnN0eWxlU2hlZXRzWzFdLmNzc1J1bGVzWzBdLm1lZGlhLmxlbmd0aCBpcyAwCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1wb2ludGVyLWludmFsaWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWEvbXEtcG9pbnRlci1pbnZhbGlkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE3ZTg0
NmY0Yjk2ODFjNTQ1ZmM1NTZmOTkxZjcwZTIxZTkyZDFmZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcG9pbnRlci1pbnZhbGlkLmh0bWwKQEAgLTAsMCArMSwz
MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGUgaWQ9InRhcmdldC1z
dHlsZSI+PC9zdHlsZT4KKworPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCBpbnZhbGlk
IGlucHV0IHdpdGggdGhlIHBvaW50ZXIgbWVkaWEgZmVhdHVyZS4iKQorCisgICAgdmFyIHRlc3RD
YXNlcyA9IFsKKyAgICAgICAgInBvaW50ZXI6IiwKKyAgICAgICAgInBvaW50ZXI6ICIsCisgICAg
ICAgICJwb2ludGVyOiBXZWJLaXQiLAorICAgICAgICAicG9pbnRlcjogcG9pbnRlciIsCisgICAg
ICAgICJwb2ludGVyOiBob3ZlciIsCisgICAgICAgICJwb2ludGVyOiBwb3J0cmFpdCIsCisgICAg
ICAgICJwb2ludGVyOiBcXFwiTm9uZVxcXCIiLAorICAgICAgICAicG9pbnRlcjogJ05vbmUnIiwK
KyAgICBdOworCisgICAgdmFyIHRhcmdldFN0eWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3RhcmdldC1zdHlsZScpOworICAgIGZvciAodmFyIHRlc3RDYXNlIG9mIHRlc3RDYXNlcykgewor
ICAgICAgICB2YXIgdGVzdFN0cmluZyA9ICd3aW5kb3cubWF0Y2hNZWRpYSgiKCcgKyB0ZXN0Q2Fz
ZSArICcpIikubWF0Y2hlcyc7CisgICAgICAgIHNob3VsZEJlRmFsc2UoJ3dpbmRvdy5tYXRjaE1l
ZGlhKCIoJyArIHRlc3RDYXNlICsgJykiKS5tYXRjaGVzJyk7CisKKyAgICAgICAgdGFyZ2V0U3R5
bGUuaW5uZXJUZXh0ID0gIkBtZWRpYSAiICsgdGVzdENhc2UgKyAiIHsgfSI7CisgICAgICAgIHNo
b3VsZEJlKCJkb2N1bWVudC5zdHlsZVNoZWV0c1sxXS5jc3NSdWxlc1swXS5tZWRpYS5sZW5ndGgi
LCAiMCIpOworICAgIH0KKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXBvaW50ZXItbWF0Y2hNZWRpYS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXBvaW50ZXItbWF0Y2hNZWRpYS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGE4MTRhMTY4YTI2MzZjYjAyYjM1MTNmMTVkNjMxM2YyNzBmZjZh
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcG9pbnRlci1t
YXRjaE1lZGlhLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitUZXN0IHRoZSBwb2ludGVy
IG1lZGlhIGZlYXR1cmUgd2l0aCBtYWNoTWVkaWEuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCit3aW5kb3cubWF0Y2hNZWRpYSgiKHBvaW50ZXIpIikubWF0Y2hlcyA9IHRydWUKK3dp
bmRvdy5tYXRjaE1lZGlhKCIocG9pbnRlcjogZmluZSkiKS5tYXRjaGVzID0gdHJ1ZQord2luZG93
Lm1hdGNoTWVkaWEoIihwb2ludGVyOiBjb2Fyc2UpIikubWF0Y2hlcyA9IGZhbHNlCit3aW5kb3cu
bWF0Y2hNZWRpYSgiKHBvaW50ZXI6IG5vbmUpIikubWF0Y2hlcyA9IGZhbHNlCit3aW5kb3cubWF0
Y2hNZWRpYSgiKHBvaW50ZXI6IEZpbmUpIikubWF0Y2hlcyA9IHRydWUKK3dpbmRvdy5tYXRjaE1l
ZGlhKCIocG9pbnRlcjogQ29hcnNlKSIpLm1hdGNoZXMgPSBmYWxzZQord2luZG93Lm1hdGNoTWVk
aWEoIihwb2ludGVyOiBOb25lKSIpLm1hdGNoZXMgPSBmYWxzZQord2luZG93Lm1hdGNoTWVkaWEo
IihQb2ludGVyOiBmaW5lKSIpLm1hdGNoZXMgPSB0cnVlCit3aW5kb3cubWF0Y2hNZWRpYSgiKFBv
aW50ZXI6IGNvYXJzZSkiKS5tYXRjaGVzID0gZmFsc2UKK3dpbmRvdy5tYXRjaE1lZGlhKCIoUG9p
bnRlcjogbm9uZSkiKS5tYXRjaGVzID0gZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhL21xLXBvaW50ZXItbWF0Y2hNZWRpYS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
cS1wb2ludGVyLW1hdGNoTWVkaWEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzQ4NDM0ZjM1MmMzYWIxMzUz
YzZlNGI3MjI3NjI3ODQ0ZGRkMjNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYS9tcS1wb2ludGVyLW1hdGNoTWVkaWEuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRl
c3QgdGhlIHBvaW50ZXIgbWVkaWEgZmVhdHVyZSB3aXRoIG1hY2hNZWRpYS4iKQorCisgICAgZnVu
Y3Rpb24gdGVzdFBvaW50ZXJDb25kaXRpb24oY29uZGl0aW9uKSB7CisgICAgICAgIHZhciB0ZXN0
U3RyaW5nID0gJ3dpbmRvdy5tYXRjaE1lZGlhKCIoJyArIGNvbmRpdGlvbiArICcpIikubWF0Y2hl
cyc7CisgICAgICAgIGRlYnVnKHRlc3RTdHJpbmcgKyAiID0gIiArIGV2YWwodGVzdFN0cmluZykp
OworICAgIH0KKworICAgIHRlc3RQb2ludGVyQ29uZGl0aW9uKCJwb2ludGVyIik7CisKKyAgICB0
ZXN0UG9pbnRlckNvbmRpdGlvbigicG9pbnRlcjogZmluZSIpOworICAgIHRlc3RQb2ludGVyQ29u
ZGl0aW9uKCJwb2ludGVyOiBjb2Fyc2UiKTsKKyAgICB0ZXN0UG9pbnRlckNvbmRpdGlvbigicG9p
bnRlcjogbm9uZSIpOworCisgICAgdGVzdFBvaW50ZXJDb25kaXRpb24oInBvaW50ZXI6IEZpbmUi
KTsKKyAgICB0ZXN0UG9pbnRlckNvbmRpdGlvbigicG9pbnRlcjogQ29hcnNlIik7CisgICAgdGVz
dFBvaW50ZXJDb25kaXRpb24oInBvaW50ZXI6IE5vbmUiKTsKKworICAgIHRlc3RQb2ludGVyQ29u
ZGl0aW9uKCJQb2ludGVyOiBmaW5lIik7CisgICAgdGVzdFBvaW50ZXJDb25kaXRpb24oIlBvaW50
ZXI6IGNvYXJzZSIpOworICAgIHRlc3RQb2ludGVyQ29uZGl0aW9uKCJQb2ludGVyOiBub25lIik7
Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tcS1wb2ludGVyLXN0eWxpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tcS1wb2ludGVyLXN0eWxpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0
ZjQ5MzZkM2Y2NWQzYTc1MGJiNzhlNDI5ZjRlN2Q4Mjk5NmY0YWUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXBvaW50ZXItc3R5bGluZy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMyBAQAorVGVzdCB0aGUgcG9pbnRlciBtZWRpYSBmZWF0dXJlIHRvIGd1YXJk
IHN0eWxlIHJ1bGVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworZ2V0Q29tcHV0
ZWRTdHlsZSh0YXJnZXQpWyJjb2xvciJdID0gcmdiKDAsIDEyOCwgMCkKK2dldENvbXB1dGVkU3R5
bGUodGFyZ2V0KVsiYmFja2dyb3VuZC1jb2xvciJdID0gcmdiKDAsIDAsIDI1NSkKK2dldENvbXB1
dGVkU3R5bGUodGFyZ2V0KVsid2lkdGgiXSA9IDEwMHB4CitnZXRDb21wdXRlZFN0eWxlKHRhcmdl
dClbImhlaWdodCJdID0gMTAwcHgKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXBv
aW50ZXItc3R5bGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1wb2ludGVyLXN0
eWxpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjE2ZjhkYmI2NTYxNTBkYzQ5YWRkZWQwM2Q5MjYxYTJj
NjQxZjA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1wb2lu
dGVyLXN0eWxpbmcuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxkaXYgaWQ9InRhcmdldCI+PC9kaXY+Cis8c3R5bGU+CisgICAgI3RhcmdldCB7
CisgICAgICAgIGNvbG9yOiByZWQ7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOwor
ICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIGRp
c3BsYXk6IG5vbmU7CisgICAgfQorICAgIEBtZWRpYSAocG9pbnRlcikgeworICAgICAgICAjdGFy
Z2V0IHsKKyAgICAgICAgICAgIGNvbG9yOiBncmVlbjsKKyAgICAgICAgfQorICAgIH0KKyAgICBA
bWVkaWEgKHBvaW50ZXI6IGZpbmUpIHsKKyAgICAgICAgI3RhcmdldCB7CisgICAgICAgICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICB9CisgICAgfQorICAgIEBtZWRpYSAocG9p
bnRlcjogY29hcnNlKSB7CisgICAgICAgICN0YXJnZXQgeworICAgICAgICAgICAgd2lkdGg6IDEw
cHg7CisgICAgICAgIH0KKyAgICB9CisgICAgQG1lZGlhIChwb2ludGVyOiBub25lKSB7CisgICAg
ICAgICN0YXJnZXQgeworICAgICAgICAgICAgaGVpZ2h0OiAxMHB4OworICAgICAgICB9CisgICAg
fQorPC9zdHlsZT4KKworPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCB0aGUgcG9pbnRl
ciBtZWRpYSBmZWF0dXJlIHRvIGd1YXJkIHN0eWxlIHJ1bGVzLiIpCisKKyAgICB2YXIgdGFyZ2V0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCisgICAgZnVuY3Rpb24gZGlz
cGxheVByb3BlcnR5KHByb3BlcnR5KSB7CisgICAgICAgIHZhciB0ZXN0U3RyaW5nID0gJ2dldENv
bXB1dGVkU3R5bGUodGFyZ2V0KVsiJyArIHByb3BlcnR5ICsgJyJdJzsKKyAgICAgICAgZGVidWco
dGVzdFN0cmluZyArICIgPSAiICsgZXZhbCh0ZXN0U3RyaW5nKSk7CisgICAgfQorCisgICAgZGlz
cGxheVByb3BlcnR5KCJjb2xvciIpOworICAgIGRpc3BsYXlQcm9wZXJ0eSgiYmFja2dyb3VuZC1j
b2xvciIpOworICAgIGRpc3BsYXlQcm9wZXJ0eSgid2lkdGgiKTsKKyAgICBkaXNwbGF5UHJvcGVy
dHkoImhlaWdodCIpOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcG9pbnRlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYS9tcS1wb2ludGVyLmh0bWwKaW5kZXggOWFkMDFhNmY1YjdmZTBkYjU4YmMyMDRkYzcz
NmZkZjAyOTU4MTk3MC4uZDE0YWViNzhiMGU0NTRhZThiZjJjY2UzYmFjZTM3MTkxYTgwNTI2MiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1wb2ludGVyLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1wb2ludGVyLmh0bWwKQEAgLTM0LDE1ICszNCw3IEBA
CiAKICAgICBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAgewotICAgICAgICBsb2coIi0tLS0tLS0t
LS0tLS0gZGVmYXVsdCBjb25maWd1cmF0aW9uIC0tLS0tLS0tLS0tLS0iKTsKICAgICAgICAgdGVz
dFF1ZXJpZXMoKTsKLQotICAgICAgICBpZiAod2luZG93LmludGVybmFscykgewotICAgICAgICAg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldERldmljZVN1cHBvcnRzVG91Y2godHJ1ZSk7Ci0KLSAg
ICAgICAgICAgIGxvZygiLS0tLS0tLS0tLS0tLSB3aXRoIHRvdWNoIHNjcmVlbiAtLS0tLS0tLS0t
LS0tIik7Ci0gICAgICAgICAgICB0ZXN0UXVlcmllcygpOwotICAgICAgICB9CiAgICAgfQogCiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Iv
ZmFzdC9tZWRpYS9tcS1hbnktaG92ZXItbWF0Y2hNZWRpYS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL2Zhc3QvbWVkaWEvbXEtYW55LWhvdmVyLW1hdGNo
TWVkaWEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmZDA1N2I5MTZkZGFiYzZhN2ZkMmZkNjVj
YTQwNDk4MDZlMzM5NTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3Mtc2ltdWxhdG9yL2Zhc3QvbWVkaWEvbXEtYW55LWhvdmVyLW1hdGNoTWVkaWEtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTkgQEAKK1Rlc3QgdGhlIGFueS1ob3ZlciBtZWRpYSBmZWF0dXJlIHdp
dGggbWFjaE1lZGlhLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKword2luZG93Lm1h
dGNoTWVkaWEoIihhbnktaG92ZXIpIikubWF0Y2hlcyA9IGZhbHNlCit3aW5kb3cubWF0Y2hNZWRp
YSgiKGFueS1ob3ZlcjogaG92ZXIpIikubWF0Y2hlcyA9IGZhbHNlCit3aW5kb3cubWF0Y2hNZWRp
YSgiKGFueS1ob3Zlcjogb24tZGVtYW5kKSIpLm1hdGNoZXMgPSBmYWxzZQord2luZG93Lm1hdGNo
TWVkaWEoIihhbnktaG92ZXI6IG5vbmUpIikubWF0Y2hlcyA9IHRydWUKK3dpbmRvdy5tYXRjaE1l
ZGlhKCIoYW55LWhvdmVyOiBIb3ZlcikiKS5tYXRjaGVzID0gZmFsc2UKK3dpbmRvdy5tYXRjaE1l
ZGlhKCIoYW55LWhvdmVyOiBPbi1kZW1hbmQpIikubWF0Y2hlcyA9IGZhbHNlCit3aW5kb3cubWF0
Y2hNZWRpYSgiKGFueS1ob3ZlcjogTm9uZSkiKS5tYXRjaGVzID0gdHJ1ZQord2luZG93Lm1hdGNo
TWVkaWEoIihBbnktSG92ZXI6IGhvdmVyKSIpLm1hdGNoZXMgPSBmYWxzZQord2luZG93Lm1hdGNo
TWVkaWEoIihBbnktSG92ZXI6IG9uLWRlbWFuZCkiKS5tYXRjaGVzID0gZmFsc2UKK3dpbmRvdy5t
YXRjaE1lZGlhKCIoQW55LUhvdmVyOiBub25lKSIpLm1hdGNoZXMgPSB0cnVlCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9mYXN0L21lZGlhL21xLWFueS1ob3Zlci1z
dHlsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Iv
ZmFzdC9tZWRpYS9tcS1hbnktaG92ZXItc3R5bGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTU0Y2NhOTQ2ZmM0ZTgzMGEzYzU2MGM1YzI5ZWM5Y2IxNGIyNTdmZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvZmFzdC9tZWRpYS9tcS1hbnkt
aG92ZXItc3R5bGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdCB0aGUgYW55
LWhvdmVyIG1lZGlhIGZlYXR1cmUgdG8gZ3VhcmQgc3R5bGUgcnVsZXMuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitnZXRDb21wdXRlZFN0eWxlKHRhcmdldClbImNvbG9yIl0gPSBy
Z2IoMjU1LCAwLCAwKQorZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpWyJiYWNrZ3JvdW5kLWNvbG9y
Il0gPSByZ2IoMCwgMCwgMCkKK2dldENvbXB1dGVkU3R5bGUodGFyZ2V0KVsid2lkdGgiXSA9IDEw
MHB4CitnZXRDb21wdXRlZFN0eWxlKHRhcmdldClbImhlaWdodCJdID0gMTBweAorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvZmFzdC9tZWRpYS9tcS1hbnktcG9pbnRl
ci1tYXRjaE1lZGlhLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11
bGF0b3IvZmFzdC9tZWRpYS9tcS1hbnktcG9pbnRlci1tYXRjaE1lZGlhLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40ZTZhMjM2ZGUyYmU1ZjdkN2RiMmZhYzNmNTgzOGY4ZTc4NjY4YTNlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9mYXN0L21l
ZGlhL21xLWFueS1wb2ludGVyLW1hdGNoTWVkaWEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkg
QEAKK1Rlc3QgdGhlIGFueS1wb2ludGVyIG1lZGlhIGZlYXR1cmUgd2l0aCBtYWNoTWVkaWEuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCit3aW5kb3cubWF0Y2hNZWRpYSgiKGFueS1w
b2ludGVyKSIpLm1hdGNoZXMgPSB0cnVlCit3aW5kb3cubWF0Y2hNZWRpYSgiKGFueS1wb2ludGVy
OiBmaW5lKSIpLm1hdGNoZXMgPSBmYWxzZQord2luZG93Lm1hdGNoTWVkaWEoIihhbnktcG9pbnRl
cjogY29hcnNlKSIpLm1hdGNoZXMgPSB0cnVlCit3aW5kb3cubWF0Y2hNZWRpYSgiKGFueS1wb2lu
dGVyOiBub25lKSIpLm1hdGNoZXMgPSBmYWxzZQord2luZG93Lm1hdGNoTWVkaWEoIihhbnktcG9p
bnRlcjogRmluZSkiKS5tYXRjaGVzID0gZmFsc2UKK3dpbmRvdy5tYXRjaE1lZGlhKCIoYW55LXBv
aW50ZXI6IENvYXJzZSkiKS5tYXRjaGVzID0gdHJ1ZQord2luZG93Lm1hdGNoTWVkaWEoIihhbnkt
cG9pbnRlcjogTm9uZSkiKS5tYXRjaGVzID0gZmFsc2UKK3dpbmRvdy5tYXRjaE1lZGlhKCIoQW55
LVBvaW50ZXI6IGZpbmUpIikubWF0Y2hlcyA9IGZhbHNlCit3aW5kb3cubWF0Y2hNZWRpYSgiKEFu
eS1Qb2ludGVyOiBjb2Fyc2UpIikubWF0Y2hlcyA9IHRydWUKK3dpbmRvdy5tYXRjaE1lZGlhKCIo
QW55LVBvaW50ZXI6IG5vbmUpIikubWF0Y2hlcyA9IGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zLXNpbXVsYXRvci9mYXN0L21lZGlhL21xLWFueS1wb2ludGVyLXN0eWxpbmct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9mYXN0L21l
ZGlhL21xLWFueS1wb2ludGVyLXN0eWxpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4Yzg4
OGM5NTc0NDA0MTQwMDI2MTJjYmIwN2M4OTYyZTE2OTE0OTcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL2Zhc3QvbWVkaWEvbXEtYW55LXBvaW50
ZXItc3R5bGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdCB0aGUgYW55LXBv
aW50ZXIgbWVkaWEgZmVhdHVyZSB0byBndWFyZCBzdHlsZSBydWxlcy4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK2dldENvbXB1dGVkU3R5bGUodGFyZ2V0KVsiY29sb3IiXSA9IHJn
YigwLCAxMjgsIDApCitnZXRDb21wdXRlZFN0eWxlKHRhcmdldClbImJhY2tncm91bmQtY29sb3Ii
XSA9IHJnYigwLCAwLCAwKQorZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpWyJ3aWR0aCJdID0gMTBw
eAorZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpWyJoZWlnaHQiXSA9IDEwMHB4CitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9mYXN0L21lZGlhL21xLWhvdmVyLW1hdGNo
TWVkaWEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9m
YXN0L21lZGlhL21xLWhvdmVyLW1hdGNoTWVkaWEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcw
NmZjOWYxMDI2YTA0NTM5ZDRiZWQ1MjZlNzc1ODMzMGVhNmMxOGEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL2Zhc3QvbWVkaWEvbXEtaG92ZXIt
bWF0Y2hNZWRpYS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorVGVzdCB0aGUgaG92ZXIg
bWVkaWEgZmVhdHVyZSB3aXRoIG1hY2hNZWRpYS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK3dpbmRvdy5tYXRjaE1lZGlhKCIoaG92ZXIpIikubWF0Y2hlcyA9IGZhbHNlCit3aW5k
b3cubWF0Y2hNZWRpYSgiKGhvdmVyOiBob3ZlcikiKS5tYXRjaGVzID0gZmFsc2UKK3dpbmRvdy5t
YXRjaE1lZGlhKCIoaG92ZXI6IG9uLWRlbWFuZCkiKS5tYXRjaGVzID0gZmFsc2UKK3dpbmRvdy5t
YXRjaE1lZGlhKCIoaG92ZXI6IG5vbmUpIikubWF0Y2hlcyA9IHRydWUKK3dpbmRvdy5tYXRjaE1l
ZGlhKCIoaG92ZXI6IEhvdmVyKSIpLm1hdGNoZXMgPSBmYWxzZQord2luZG93Lm1hdGNoTWVkaWEo
Iihob3ZlcjogT24tZGVtYW5kKSIpLm1hdGNoZXMgPSBmYWxzZQord2luZG93Lm1hdGNoTWVkaWEo
Iihob3ZlcjogTm9uZSkiKS5tYXRjaGVzID0gdHJ1ZQord2luZG93Lm1hdGNoTWVkaWEoIihIb3Zl
cjogaG92ZXIpIikubWF0Y2hlcyA9IGZhbHNlCit3aW5kb3cubWF0Y2hNZWRpYSgiKEhvdmVyOiBv
bi1kZW1hbmQpIikubWF0Y2hlcyA9IGZhbHNlCit3aW5kb3cubWF0Y2hNZWRpYSgiKEhvdmVyOiBu
b25lKSIpLm1hdGNoZXMgPSB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNp
bXVsYXRvci9mYXN0L21lZGlhL21xLWhvdmVyLXN0eWxpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9mYXN0L21lZGlhL21xLWhvdmVyLXN0eWxpbmct
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhODAyYWU5MmM4ODYyMTYwMDkwZGE3Yjg0NmY0Yjk2
NzY3NzAyOWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2lt
dWxhdG9yL2Zhc3QvbWVkaWEvbXEtaG92ZXItc3R5bGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMyBAQAorVGVzdCB0aGUgaG92ZXIgbWVkaWEgZmVhdHVyZSB0byBndWFyZCBzdHlsZSBydWxl
cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2dldENvbXB1dGVkU3R5bGUodGFy
Z2V0KVsiY29sb3IiXSA9IHJnYigyNTUsIDAsIDApCitnZXRDb21wdXRlZFN0eWxlKHRhcmdldClb
ImJhY2tncm91bmQtY29sb3IiXSA9IHJnYigwLCAwLCAwKQorZ2V0Q29tcHV0ZWRTdHlsZSh0YXJn
ZXQpWyJ3aWR0aCJdID0gMTAwcHgKK2dldENvbXB1dGVkU3R5bGUodGFyZ2V0KVsiaGVpZ2h0Il0g
PSAxMHB4CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9mYXN0L21l
ZGlhL21xLXBvaW50ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNp
bXVsYXRvci9mYXN0L21lZGlhL21xLXBvaW50ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0
MjQ3ZDM4NWViODcyZDNkZjQ3YTkyZTgwOWNjZTE3NTQ3MmY0NmUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL2Zhc3QvbWVkaWEvbXEtcG9pbnRl
ci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCB0aGUgKHBvaW50ZXIpIGFuZCAo
aG92ZXIpIG1lZGlhIGZlYXR1cmVzLiBTZWUgQnVnIDg3NDAzIGZvciBkZXRhaWxzLgorCitRdWVy
eSAiKHBvaW50ZXIpIjogdHJ1ZQorUXVlcnkgIihQb2ludGVyKSI6IHRydWUKK1F1ZXJ5ICIocG9p
bnRlcjpub25lKSI6IGZhbHNlCitRdWVyeSAiKHBvaW50ZXI6Y29hcnNlKSI6IHRydWUKK1F1ZXJ5
ICIocG9pbnRlcjpjb0FSc2UpIjogdHJ1ZQorUXVlcnkgIihwb2ludGVyOmJvZ3VzdmFsdWUpIjog
ZmFsc2UKK1F1ZXJ5ICIocG9pbnRlcjpmaW5lKSI6IGZhbHNlCitRdWVyeSAiKGhvdmVyKSI6IGZh
bHNlCitRdWVyeSAiKGhvdmVyOjApIjogZmFsc2UKK1F1ZXJ5ICIoaG92ZXI6MSkiOiBmYWxzZQor
UXVlcnkgIihob3Zlcjpib2d1c3ZhbHVlKSI6IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvZmFzdC9tZWRpYS9tcS1wb2ludGVyLW1hdGNoTWVk
aWEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9mYXN0
L21lZGlhL21xLXBvaW50ZXItbWF0Y2hNZWRpYS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDY2
YzUwZDY5ZjA0NjliMjc3NDFmYWIxOGU2NTFjMWJkNDEzNjMxYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvZmFzdC9tZWRpYS9tcS1wb2ludGVy
LW1hdGNoTWVkaWEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAKK1Rlc3QgdGhlIHBvaW50
ZXIgbWVkaWEgZmVhdHVyZSB3aXRoIG1hY2hNZWRpYS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK3dpbmRvdy5tYXRjaE1lZGlhKCIocG9pbnRlcikiKS5tYXRjaGVzID0gdHJ1ZQor
d2luZG93Lm1hdGNoTWVkaWEoIihwb2ludGVyOiBmaW5lKSIpLm1hdGNoZXMgPSBmYWxzZQord2lu
ZG93Lm1hdGNoTWVkaWEoIihwb2ludGVyOiBjb2Fyc2UpIikubWF0Y2hlcyA9IHRydWUKK3dpbmRv
dy5tYXRjaE1lZGlhKCIocG9pbnRlcjogbm9uZSkiKS5tYXRjaGVzID0gZmFsc2UKK3dpbmRvdy5t
YXRjaE1lZGlhKCIocG9pbnRlcjogRmluZSkiKS5tYXRjaGVzID0gZmFsc2UKK3dpbmRvdy5tYXRj
aE1lZGlhKCIocG9pbnRlcjogQ29hcnNlKSIpLm1hdGNoZXMgPSB0cnVlCit3aW5kb3cubWF0Y2hN
ZWRpYSgiKHBvaW50ZXI6IE5vbmUpIikubWF0Y2hlcyA9IGZhbHNlCit3aW5kb3cubWF0Y2hNZWRp
YSgiKFBvaW50ZXI6IGZpbmUpIikubWF0Y2hlcyA9IGZhbHNlCit3aW5kb3cubWF0Y2hNZWRpYSgi
KFBvaW50ZXI6IGNvYXJzZSkiKS5tYXRjaGVzID0gdHJ1ZQord2luZG93Lm1hdGNoTWVkaWEoIihQ
b2ludGVyOiBub25lKSIpLm1hdGNoZXMgPSBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy1zaW11bGF0b3IvZmFzdC9tZWRpYS9tcS1wb2ludGVyLXN0eWxpbmctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9mYXN0L21lZGlhL21xLXBv
aW50ZXItc3R5bGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTlmOTZlOTE4ZWRiZGRlY2Nm
MjA4N2FlMTY2MzM0NjJjYmE0ZDZkZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy1zaW11bGF0b3IvZmFzdC9tZWRpYS9tcS1wb2ludGVyLXN0eWxpbmctZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3QgdGhlIHBvaW50ZXIgbWVkaWEgZmVhdHVyZSB0
byBndWFyZCBzdHlsZSBydWxlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2dl
dENvbXB1dGVkU3R5bGUodGFyZ2V0KVsiY29sb3IiXSA9IHJnYigwLCAxMjgsIDApCitnZXRDb21w
dXRlZFN0eWxlKHRhcmdldClbImJhY2tncm91bmQtY29sb3IiXSA9IHJnYigwLCAwLCAwKQorZ2V0
Q29tcHV0ZWRTdHlsZSh0YXJnZXQpWyJ3aWR0aCJdID0gMTBweAorZ2V0Q29tcHV0ZWRTdHlsZSh0
YXJnZXQpWyJoZWlnaHQiXSA9IDEwMHB4CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>