<?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>228803</bug_id>
          
          <creation_ts>2021-08-04 15:29:55 -0700</creation_ts>
          <short_desc>[macOS] Clean up Feature Flags related code</short_desc>
          <delta_ts>2021-08-09 15:05:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=228926</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>beidson</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>katherine_cheney</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1782073</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-04 15:29:55 -0700</bug_when>
    <thetext>[macOS] Clean up Feature Flags related code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782075</commentid>
    <comment_count>1</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-04 15:37:38 -0700</bug_when>
    <thetext>&lt;rdar://81142982&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782077</commentid>
    <comment_count>2</comment_count>
      <attachid>434944</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-04 15:39:05 -0700</bug_when>
    <thetext>Created attachment 434944
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782078</commentid>
    <comment_count>3</comment_count>
      <attachid>434944</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-04 15:42:57 -0700</bug_when>
    <thetext>Comment on attachment 434944
Patch

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

&gt; Source/WebKit/ChangeLog:8
&gt; +        For system WebKit and staged framework, we use the Feature Flags SPI to

The comment is not accurate. For staged framework, webkit parses the plist file instead of using the SPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782081</commentid>
    <comment_count>4</comment_count>
      <attachid>434944</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-08-04 15:49:29 -0700</bug_when>
    <thetext>Comment on attachment 434944
Patch

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

&gt; Source/WebKit/Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm:50
&gt; +    const static NSBundle *bundle = [NSBundle bundleForClass:NSClassFromString(@&quot;WKWebView&quot;)];
&gt; +
&gt; +    static bool isSystemWebKit = [] {
&gt; +        return [bundle.bundlePath hasPrefix:@&quot;/System/&quot;];
&gt; +    }();

Use AuxiliaryProcess::isSystemWebKit() which also had some logic for readonly system volumes?

&gt; Source/WebKit/Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm:60
&gt;      if (!isWebKitBundleFromStagedFramework)
&gt; -        return _os_feature_enabled_impl(&quot;WebKit&quot;, (const char*)featureName.utf8().data());
&gt; +        return defaultValue;

I would prefer you write this as:

if (isWebKitBundleFromStagedFramework) {
   ... read from /Library/Apple/System/Library/FeatureFlags/Domain/WebKit.plist
    return;
}

&gt; Source/WebKit/Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm:65
&gt;          return _os_feature_enabled_impl(&quot;WebKit&quot;, (const char*)featureName.characters8());

I think it would make more sense here to return defaultValue?

&gt; Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.mm:48
&gt; +bool isFeatureFlagEnabled(const String&amp; featureName, bool defaultValue)

I wish we could share this code. But make it identical.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782087</commentid>
    <comment_count>5</comment_count>
      <attachid>434944</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-04 15:55:21 -0700</bug_when>
    <thetext>Comment on attachment 434944
Patch

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

&gt;&gt; Source/WebKit/Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm:50
&gt;&gt; +    }();
&gt; 
&gt; Use AuxiliaryProcess::isSystemWebKit() which also had some logic for readonly system volumes?

Yes. But it will return true for staged framework.

&gt;&gt; Source/WebKit/Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm:60
&gt;&gt; +        return defaultValue;
&gt; 
&gt; I would prefer you write this as:
&gt; 
&gt; if (isWebKitBundleFromStagedFramework) {
&gt;    ... read from /Library/Apple/System/Library/FeatureFlags/Domain/WebKit.plist
&gt;     return;
&gt; }

Sounds a good idea considering the next comment.

&gt;&gt; Source/WebKit/Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm:65
&gt;&gt;          return _os_feature_enabled_impl(&quot;WebKit&quot;, (const char*)featureName.characters8());
&gt; 
&gt; I think it would make more sense here to return defaultValue?

Yeah, that seems better.

&gt;&gt; Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.mm:48
&gt;&gt; +bool isFeatureFlagEnabled(const String&amp; featureName, bool defaultValue)
&gt; 
&gt; I wish we could share this code. But make it identical.

Agree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782090</commentid>
    <comment_count>6</comment_count>
      <attachid>434948</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-04 16:06:00 -0700</bug_when>
    <thetext>Created attachment 434948
Revise the patch based on Simon&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782094</commentid>
    <comment_count>7</comment_count>
      <attachid>434951</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-04 16:12:41 -0700</bug_when>
    <thetext>Created attachment 434951
Update change logs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782105</commentid>
    <comment_count>8</comment_count>
      <attachid>434951</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-08-04 17:23:47 -0700</bug_when>
    <thetext>Comment on attachment 434951
Update change logs

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

&gt; Source/WebKit/ChangeLog:10
&gt; +        For other cases, let&apos;s use hardcoded values.

This could use more words, we have a /strong/ motivation.

&gt; Source/WebKit/Shared/WebPreferencesDefaultValues.cpp:258
&gt; +    // TODO: double check

This looks fine to me (since it&apos;s inside HAVE(INCREMENTAL_PDF_APIS); if you&apos;ve got them, we want to use them.)

&gt; Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.mm:81
&gt; +    // TODO: double check

Yeah, we don&apos;t have support in WebKitLegacy so this is right.

&gt; Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.mm:92
&gt; +    // TODO: double check
&gt; +    return isFeatureFlagEnabled(&quot;WebXR&quot;, false);

This is right</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782141</commentid>
    <comment_count>9</comment_count>
      <attachid>434964</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-04 22:47:28 -0700</bug_when>
    <thetext>Created attachment 434964
Update change logs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782252</commentid>
    <comment_count>10</comment_count>
      <attachid>434999</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-05 10:07:02 -0700</bug_when>
    <thetext>Created attachment 434999
Fix a layout test failure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782281</commentid>
    <comment_count>11</comment_count>
      <attachid>434999</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-08-05 10:52:49 -0700</bug_when>
    <thetext>Comment on attachment 434999
Fix a layout test failure

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

&gt; Source/WebKit/Shared/WebPreferencesDefaultValues.cpp:245
&gt;  bool defaultInAppBrowserPrivacy()

It doesn&apos;t seem like this function is used anywhere. I think we can remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782290</commentid>
    <comment_count>12</comment_count>
      <attachid>435010</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-05 11:04:41 -0700</bug_when>
    <thetext>Created attachment 435010
Revise the patch based on Kate&apos;s comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782291</commentid>
    <comment_count>13</comment_count>
      <attachid>434999</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-05 11:06:01 -0700</bug_when>
    <thetext>Comment on attachment 434999
Fix a layout test failure

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

&gt;&gt; Source/WebKit/Shared/WebPreferencesDefaultValues.cpp:245
&gt;&gt;  bool defaultInAppBrowserPrivacy()
&gt; 
&gt; It doesn&apos;t seem like this function is used anywhere. I think we can remove it.

Yes! Removed.
I will remove the corresponding item in WebKit.plist in a follow-up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782333</commentid>
    <comment_count>14</comment_count>
      <attachid>435023</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-05 14:08:06 -0700</bug_when>
    <thetext>Created attachment 435023
Update a layout test expectation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782339</commentid>
    <comment_count>15</comment_count>
      <attachid>435023</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-08-05 14:25:23 -0700</bug_when>
    <thetext>Comment on attachment 435023
Update a layout test expectation

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

I really hope we can get rid of this ASAP

&gt; Source/WebKit/Shared/WebPreferencesDefaultValues.cpp:122
&gt;  #if PLATFORM(MAC)
&gt; -    return true;
&gt; +    bool defaultValue = true;
&gt; +#else
&gt; +    bool defaultValue = false;
&gt;  #endif

This is wrong, async_frame_and_overflow_scrolling should be on everywhere (confirm with smfr, but the plists agree)

&gt; Source/WebKit/Shared/WebPreferencesDefaultValues.cpp:313
&gt; +    return isFeatureFlagEnabled(&quot;webm_webaudio&quot;, false);

Why is this `false` here if it&apos;s `true` in the plist? That means that a local build will have it off on Monterey even though it&apos;s on in the system WebKit, and seems wrong.

&gt; Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.mm:54
&gt; +        NSBundle *bundle = [NSBundle bundleForClass:NSClassFromString(@&quot;WKWebView&quot;)];

It seems exceedingly bizarre that WebKitLegacy looks up WKWebView; maybe you should use WebView here? (what does other code do?)

&gt; Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.mm:290
&gt; +    return isFeatureFlagEnabled(&quot;webm_webaudio&quot;, false);

Why is this `false` here if it&apos;s `true` in the plist? That means that a local build will have it off on Monterey even though it&apos;s on in the system WebKit, and seems wrong.

&gt; Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.mm:299
&gt; -#if HAVE(SYSTEM_FEATURE_FLAGS)
&gt; -    return isFeatureFlagEnabled(&quot;vp8_decoder&quot;);
&gt; -#endif
&gt; -
&gt; -    return false;
&gt; +    return isFeatureFlagEnabled(&quot;vp8_decoder&quot;, false);

This key does not exist in any of the feature flags plists, so this should not use isFeatureFlagEnabled, should just return false (at which point you should get rid of the function and just put the `false` in WebPreferences.yaml directly).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782342</commentid>
    <comment_count>16</comment_count>
      <attachid>435023</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-08-05 14:35:59 -0700</bug_when>
    <thetext>Comment on attachment 435023
Update a layout test expectation

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

&gt;&gt; Source/WebKit/Shared/WebPreferencesDefaultValues.cpp:122
&gt;&gt;  #endif
&gt; 
&gt; This is wrong, async_frame_and_overflow_scrolling should be on everywhere (confirm with smfr, but the plists agree)

Ah, simon points out the #ifdef above covers iOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782395</commentid>
    <comment_count>17</comment_count>
      <attachid>435023</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-05 16:41:07 -0700</bug_when>
    <thetext>Comment on attachment 435023
Update a layout test expectation

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

&gt;&gt; Source/WebKit/Shared/WebPreferencesDefaultValues.cpp:313
&gt;&gt; +    return isFeatureFlagEnabled(&quot;webm_webaudio&quot;, false);
&gt; 
&gt; Why is this `false` here if it&apos;s `true` in the plist? That means that a local build will have it off on Monterey even though it&apos;s on in the system WebKit, and seems wrong.

It was a mistake to enable `webm_webaudio` through the plist file. I will remove it from the WebKit.plist for appletvOS, watchOS, and tvOS, and change its value to false in WebKit-macOS.plist.

&gt;&gt; Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.mm:54
&gt;&gt; +        NSBundle *bundle = [NSBundle bundleForClass:NSClassFromString(@&quot;WKWebView&quot;)];
&gt; 
&gt; It seems exceedingly bizarre that WebKitLegacy looks up WKWebView; maybe you should use WebView here? (what does other code do?)

Good catch. Will fix it. Thanks!

&gt;&gt; Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.mm:290
&gt;&gt; +    return isFeatureFlagEnabled(&quot;webm_webaudio&quot;, false);
&gt; 
&gt; Why is this `false` here if it&apos;s `true` in the plist? That means that a local build will have it off on Monterey even though it&apos;s on in the system WebKit, and seems wrong.

Will fix. Actually this feature should be disabled.

&gt;&gt; Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.mm:299
&gt;&gt; +    return isFeatureFlagEnabled(&quot;vp8_decoder&quot;, false);
&gt; 
&gt; This key does not exist in any of the feature flags plists, so this should not use isFeatureFlagEnabled, should just return false (at which point you should get rid of the function and just put the `false` in WebPreferences.yaml directly).

Will add an item to the plist files to enable it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782398</commentid>
    <comment_count>18</comment_count>
      <attachid>435039</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-05 16:51:35 -0700</bug_when>
    <thetext>Created attachment 435039
Revise the patch based on Tim&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782401</commentid>
    <comment_count>19</comment_count>
      <attachid>435040</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-05 17:00:14 -0700</bug_when>
    <thetext>Created attachment 435040
Update changelogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782445</commentid>
    <comment_count>20</comment_count>
      <attachid>435055</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-05 21:43:12 -0700</bug_when>
    <thetext>Created attachment 435055
Rebase a test expectation for BigSur</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782505</commentid>
    <comment_count>21</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-08-06 09:32:01 -0700</bug_when>
    <thetext>The test failure (fast/speechrecognition/start-recognition-twice-exception.html) is not relevant to this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782507</commentid>
    <comment_count>22</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-06 09:38:35 -0700</bug_when>
    <thetext>Committed r280726 (240316@main): &lt;https://commits.webkit.org/240316@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 435055.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782991</commentid>
    <comment_count>23</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2021-08-09 15:05:50 -0700</bug_when>
    <thetext>Looks like the changes here broke 25 imported/w3c/web-platform-tests/fetch/ tests, tracking in https://bugs.webkit.org/show_bug.cgi?id=228926</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434944</attachid>
            <date>2021-08-04 15:39:05 -0700</date>
            <delta_ts>2021-08-04 16:05:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228803-20210804153904.patch</filename>
            <type>text/plain</type>
            <size>17640</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYyNTJlNDU5ZGNmMmFhOTZm
MDc1ZDMwMjJlMjIxNGYzMjY3NjMyZjYuLmVhNTIzODEyMjAwODI0ODFiYmUzZTQxNjkyNjY1Njk4
ZWMzMDU0MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjEtMDgtMDQgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIENsZWFuIHVwIEZlYXR1
cmUgRmxhZ3MgcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjg4MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBGb3Igc3lzdGVtIFdlYktpdCBhbmQgc3RhZ2VkIGZyYW1ld29yaywgd2Ug
dXNlIHRoZSBGZWF0dXJlIEZsYWdzIFNQSSB0bworICAgICAgICBnZXQgZGVmYXVsdCBwcmVmZXJl
bmNlIHZhbHVlcy4gRm9yIG90aGVyIGNhc2VzLCBsZXQncyB1c2UgaGFyZGNvZGVkIHZhbHVlcy4K
KworICAgICAgICAqIFNoYXJlZC9Db2NvYS9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNDb2Nv
YS5tbToKKyAgICAgICAgKFdlYktpdDo6aXNGZWF0dXJlRmxhZ0VuYWJsZWQpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViS2l0
Ojppc0ZlYXR1cmVGbGFnRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRBc3luY0Zy
YW1lQW5kT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVs
dFVzZUdQVVByb2Nlc3NGb3JDYW52YXNSZW5kZXJpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktp
dDo6ZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JET01SZW5kZXJpbmdFbmFibGVkKToKKyAgICAgICAg
KFdlYktpdDo6ZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQpOgorICAgICAgICAo
V2ViS2l0OjpkZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZCk6CisgICAgICAgIChX
ZWJLaXQ6OmRlZmF1bHRDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFibGVkKToKKyAgICAgICAg
KFdlYktpdDo6ZGVmYXVsdENhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQpOgorICAgICAg
ICAoV2ViS2l0OjpkZWZhdWx0V2ViUlRDQ29kZWNzSW5HUFVQcm9jZXNzKToKKyAgICAgICAgKFdl
YktpdDo6ZGVmYXVsdEluQXBwQnJvd3NlclByaXZhY3kpOgorICAgICAgICAoV2ViS2l0OjpkZWZh
dWx0SW5jcmVtZW50YWxQREZFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFdlYk1G
b3JtYXRSZWFkZXJFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFZQOERlY29kZXJF
bmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFZQOURlY29kZXJFbmFibGVkKToKKyAg
ICAgICAgKFdlYktpdDo6ZGVmYXVsdFZQOVNXRGVjb2RlckVuYWJsZWRPbkJhdHRlcnkpOgorICAg
ICAgICAoV2ViS2l0OjpkZWZhdWx0V2ViTVBhcnNlckVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0
OjpkZWZhdWx0V2ViTVdlYkF1ZGlvRW5hYmxlZCk6CisgICAgICAgICogU2hhcmVkL1dlYlByZWZl
cmVuY2VzRGVmYXVsdFZhbHVlcy5oOgorCiAyMDIxLTA4LTAyICBQZW5nIExpdSAgPHBlbmcubGl1
NkBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0UHJl
ZmVycmVkQnVmZmVyU2l6ZSgpIGRvZXMgbm90IGNoYW5nZSBpdHMgcHJlZmVycmVkQnVmZmVyU2l6
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDBkZmY0MzhjMTIwNzU3ZjM2M2UwMGRi
ODMyNDczNWY1NWUwYTFiOWMuLjI5MmIyMzM0ZTljZTE2MjYzYWQ2MWFjN2M5NDE2N2I0Y2EwNWE4
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMS0w
OC0wNCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10g
Q2xlYW4gdXAgRmVhdHVyZSBGbGFncyByZWxhdGVkIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODgwMworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBzeXN0ZW0gV2ViS2l0IGFuZCBzdGFnZWQg
ZnJhbWV3b3JrLCB3ZSB1c2UgdGhlIEZlYXR1cmUgRmxhZ3MgU1BJIHRvCisgICAgICAgIGdldCBk
ZWZhdWx0IHByZWZlcmVuY2UgdmFsdWVzLiBGb3Igb3RoZXIgY2FzZXMsIGxldCdzIHVzZSBoYXJk
Y29kZWQgdmFsdWVzLgorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRW
YWx1ZXMuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5t
bToKKyAgICAgICAgKFdlYktpdDo6aXNGZWF0dXJlRmxhZ0VuYWJsZWQpOgorICAgICAgICAoV2Vi
S2l0OjpkZWZhdWx0SW5jcmVtZW50YWxQREZFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVm
YXVsdFdlYlhSRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXZWJNUGFyc2VyRW5h
YmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXZWJNV2ViQXVkaW9FbmFibGVkKToKKyAg
ICAgICAgKFdlYktpdDo6ZGVmYXVsdFZQOERlY29kZXJFbmFibGVkKToKKyAgICAgICAgKFdlYktp
dDo6ZGVmYXVsdFZQOURlY29kZXJFbmFibGVkKToKKwogMjAyMS0wNy0yOSAgTXlsZXMgQy4gTWF4
ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3AgYnVpbGRpbmcgV2Vi
R1BVIGFuZCB0aGUgV0hMU0wgY29tcGlsZXIgdG8gZGVjcmVhc2UgYmluYXJ5IHNpemUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZh
bHVlc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViUHJlZmVyZW5jZXNE
ZWZhdWx0VmFsdWVzQ29jb2EubW0KaW5kZXggY2RiMzYzYThmOGEwM2JhMzU2MzQ5MDFhNDg5YjAw
NWYzODlhOTIzYy4uYjVhYWI5ODhmYzMyNzdhNGMwMjY3NTY0ZTM0N2IyYTgyNjc5NjE4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViUHJlZmVyZW5jZXNEZWZhdWx0
VmFsdWVzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViUHJlZmVy
ZW5jZXNEZWZhdWx0VmFsdWVzQ29jb2EubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQgImNv
bmZpZy5oIgogI2ltcG9ydCAiV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmgiCiAKLSNpZiBQ
TEFURk9STShDT0NPQSkgJiYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKKyNpZiBQTEFURk9S
TShDT0NPQSkKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9OU0J1bmRsZS5oPgogCkBAIC0zOCwxNSAr
MzgsMjYgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAvLyBCZWNhdXNlIG9mIDxyZGFyOi8vcHJv
YmxlbS82MDYwODAwOD4sIFdlYktpdCBoYXMgdG8gcGFyc2UgdGhlIGZlYXR1cmUgZmxhZ3MgcGxp
c3QgZmlsZQotYm9vbCBpc0ZlYXR1cmVGbGFnRW5hYmxlZChjb25zdCBTdHJpbmcmIGZlYXR1cmVO
YW1lKQorYm9vbCBpc0ZlYXR1cmVGbGFnRW5hYmxlZChjb25zdCBTdHJpbmcmIGZlYXR1cmVOYW1l
LCBib29sIGRlZmF1bHRWYWx1ZSkKIHsKKyNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQor
CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGNvbnN0IHN0YXRpYyBOU0J1bmRsZSAqYnVuZGxlID0g
W05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOk5TQ2xhc3NGcm9tU3RyaW5nKEAiV0tXZWJWaWV3Iild
OworCisgICAgc3RhdGljIGJvb2wgaXNTeXN0ZW1XZWJLaXQgPSBbXSB7CisgICAgICAgIHJldHVy
biBbYnVuZGxlLmJ1bmRsZVBhdGggaGFzUHJlZml4OkAiL1N5c3RlbS8iXTsKKyAgICB9KCk7CisK
ICAgICBzdGF0aWMgYm9vbCBpc1dlYktpdEJ1bmRsZUZyb21TdGFnZWRGcmFtZXdvcmsgPSBbXSB7
Ci0gICAgICAgIE5TQnVuZGxlICp3ZWJraXQyQnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNs
YXNzOk5TQ2xhc3NGcm9tU3RyaW5nKEAiV0tXZWJWaWV3IildOwotICAgICAgICByZXR1cm4gW3dl
YmtpdDJCdW5kbGUuYnVuZGxlUGF0aCBoYXNQcmVmaXg6QCIvTGlicmFyeS9BcHBsZS9TeXN0ZW0v
TGlicmFyeS9TdGFnZWRGcmFtZXdvcmtzL1NhZmFyaS8iXTsKKyAgICAgICAgcmV0dXJuIFtidW5k
bGUuYnVuZGxlUGF0aCBoYXNQcmVmaXg6QCIvTGlicmFyeS9BcHBsZS9TeXN0ZW0vIl07CiAgICAg
fSgpOwogCisgICAgaWYgKGlzU3lzdGVtV2ViS2l0KQorICAgICAgICByZXR1cm4gX29zX2ZlYXR1
cmVfZW5hYmxlZF9pbXBsKCJXZWJLaXQiLCAoY29uc3QgY2hhciopZmVhdHVyZU5hbWUuY2hhcmFj
dGVyczgoKSk7CisKICAgICBpZiAoIWlzV2ViS2l0QnVuZGxlRnJvbVN0YWdlZEZyYW1ld29yaykK
LSAgICAgICAgcmV0dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0
IGNoYXIqKWZlYXR1cmVOYW1lLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICByZXR1cm4gZGVmYXVs
dFZhbHVlOwogCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxOU0RpY3Rpb25h
cnk+PiBkaWN0aW9uYXJ5ID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aENvbnRlbnRzT2ZG
aWxlOkAiL0xpYnJhcnkvQXBwbGUvU3lzdGVtL0xpYnJhcnkvRmVhdHVyZUZsYWdzL0RvbWFpbi9X
ZWJLaXQucGxpc3QiXTsKIApAQCAtNTQsNiArNjUsMTcgQEAgYm9vbCBpc0ZlYXR1cmVGbGFnRW5h
YmxlZChjb25zdCBTdHJpbmcmIGZlYXR1cmVOYW1lKQogICAgICAgICByZXR1cm4gX29zX2ZlYXR1
cmVfZW5hYmxlZF9pbXBsKCJXZWJLaXQiLCAoY29uc3QgY2hhciopZmVhdHVyZU5hbWUuY2hhcmFj
dGVyczgoKSk7CiAKICAgICByZXR1cm4gW1tbZGljdGlvbmFyeS5nZXQoKSBvYmplY3RGb3JLZXk6
ZmVhdHVyZU5hbWVdIG9iamVjdEZvcktleTpAIkVuYWJsZWQiXSBpc0tpbmRPZkNsYXNzOltOU051
bWJlciBjbGFzc11dICYmIFtbW2RpY3Rpb25hcnkuZ2V0KCkgb2JqZWN0Rm9yS2V5OmZlYXR1cmVO
YW1lXSBvYmplY3RGb3JLZXk6QCJFbmFibGVkIl0gYm9vbFZhbHVlXTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKGRlZmF1bHRWYWx1ZSk7CisgICAgcmV0dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRf
aW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNoYXIqKWZlYXR1cmVOYW1lLmNoYXJhY3RlcnM4KCkpOwor
I2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKKworI2Vsc2UKKworICAgIFVOVVNFRF9QQVJBTShmZWF0
dXJlTmFtZSk7CisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKworI2VuZGlmIC8vIEhBVkUoU1lT
VEVNX0ZFQVRVUkVfRkxBR1MpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKaW5k
ZXggYWZhZmUzYzdlNTMzMDYyNGVhODQ2ZWJhMDc1YmYyODU1YTBhMjM3ZS4uNWNjYTZjM2VkMzZj
OTc2YWVjNzliYWIxYmMxOGM5Yzc5Mjc2OWYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwCkBAIC00MSw2ICs0MSwxMyBA
QAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorI2lmICFQTEFURk9STShDT0NPQSkKK2Jvb2wgaXNG
ZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiwgYm9vbCBkZWZhdWx0VmFsdWUpCit7Cisg
ICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKK30KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKIAogYm9vbCBkZWZhdWx0UGFzc2l2ZVRvdWNoTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1
bWVudCgpCkBAIC0xMDgsMTUgKzExNSwxMyBAQCBzdGF0aWMgYm9vbCBkZWZhdWx0QXN5bmNGcmFt
ZUFuZE92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCgpCiAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYK
IAotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZs
YWdFbmFibGVkKCJhc3luY19mcmFtZV9hbmRfb3ZlcmZsb3dfc2Nyb2xsaW5nIik7Ci0jZW5kaWYK
LQogI2lmIFBMQVRGT1JNKE1BQykKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBib29sIGRlZmF1bHRW
YWx1ZSA9IHRydWU7CisjZWxzZQorICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAjZW5k
aWYKIAotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQo
ImFzeW5jX2ZyYW1lX2FuZF9vdmVyZmxvd19zY3JvbGxpbmciLCBkZWZhdWx0VmFsdWUpOwogfQog
CiBib29sIGRlZmF1bHRBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZCgpCkBAIC0xNTAsNDkgKzE1
NSwzMyBAQCBib29sIGRlZmF1bHRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKQog
Ym9vbCBkZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvckNhbnZhc1JlbmRlcmluZ0VuYWJsZWQoKQogewog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTU19CWV9ERUZBVUxUKQotI2lmIEhBVkUoU1lTVEVNX0ZFQVRV
UkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc19j
YW52YXNfcmVuZGVyaW5nIik7CisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSB0cnVlOwogI2Vsc2UK
LSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQot
I2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSBmYWxzZTsK
ICNlbmRpZgorCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc19j
YW52YXNfcmVuZGVyaW5nIiwgZGVmYXVsdFZhbHVlKTsKIH0KIAogYm9vbCBkZWZhdWx0VXNlR1BV
UHJvY2Vzc0ZvckRPTVJlbmRlcmluZ0VuYWJsZWQoKQogewotI2lmIEVOQUJMRShHUFVfUFJPQ0VT
U19CWV9ERUZBVUxUKQotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJu
IGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc19kb21fcmVuZGVyaW5nIik7Ci0jZWxz
ZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdT
KQotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKKyAgICByZXR1cm4gaXNGZWF0dXJl
RmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX2RvbV9yZW5kZXJpbmciLCBmYWxzZSk7CiB9CiAKIGJv
b2wgZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQoKQogewogI2lmIEVOQUJMRShH
UFVfUFJPQ0VTU19CWV9ERUZBVUxUKQotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0g
ICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc19tZWRpYSIpOwotI2Vs
c2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdT
KQorICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNlbHNlCi0gICAgcmV0dXJuIGZhbHNl
OworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKKworICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfbWVkaWEiLCBkZWZhdWx0VmFsdWUpOwog
fQogCiBib29sIGRlZmF1bHRVc2VHUFVQcm9jZXNzRm9yV2ViR0xFbmFibGVkKCkKIHsKLSNpZiBI
QVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxl
ZCgiZ3B1X3Byb2Nlc3Nfd2ViZ2wiKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2ViZ2wiLCBmYWxzZSk7
CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCkBAIC0yMDIsMTkgKzE5MSwxNSBA
QCBib29sIGRlZmF1bHRVc2VHUFVQcm9jZXNzRm9yV2ViR0xFbmFibGVkKCkKIGJvb2wgZGVmYXVs
dENhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQoKQogewogI2lmIEVOQUJMRShHUFVfUFJP
Q0VTU19CWV9ERUZBVUxUKQorICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKKyNlbHNlCisg
ICAgYm9vbCBkZWZhdWx0VmFsdWUgPSBmYWxzZTsKKyNlbmRpZgogCi0jaWYgSEFWRShTWVNURU1f
RkVBVFVSRV9GTEFHUykKICNpZiBQTEFURk9STShNQUMpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZs
YWdFbmFibGVkKCJncHVfcHJvY2Vzc193ZWJydGMiKTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxh
Z0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYnJ0YyIsIGRlZmF1bHRWYWx1ZSk7CiAjZWxpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3By
b2Nlc3NfbWVkaWEiKTsKLSNlbmRpZgotI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZiAv
LyBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotCi0jZWxzZQotICAgIHJldHVybiBmYWxzZTsK
KyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX21lZGlhIiwgZGVm
YXVsdFZhbHVlKTsKICNlbmRpZgogfQogCkBAIC0yMzAsMTQgKzIxNSwxMiBAQCBib29sIGRlZmF1
bHRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzc0VuYWJsZWQoKQogYm9vbCBkZWZhdWx0Q2FwdHVyZVZp
ZGVvSW5HUFVQcm9jZXNzRW5hYmxlZCgpCiB7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTX0JZX0RF
RkFVTFQpCi0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0
dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYnJ0YyIpOwotI2Vsc2UKLSAgICByZXR1cm4g
dHJ1ZTsKLSNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQorICAgIGJvb2wgZGVm
YXVsdFZhbHVlID0gdHJ1ZTsKICNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGJvb2wgZGVm
YXVsdFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKKworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5h
YmxlZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIiwgZGVmYXVsdFZhbHVlKTsKIH0KIAogI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TVFJFQU0pCkBAIC0yNDcsMzkgKzIzMCwzMyBAQCBib29sIGRlZmF1bHRD
YXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkKCkKIGJvb2wgZGVmYXVsdFdlYlJUQ0NvZGVj
c0luR1BVUHJvY2VzcygpCiB7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTX0JZX0RFRkFVTFQpCi0j
aWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0Vu
YWJsZWQoImdwdV9wcm9jZXNzX3dlYnJ0YyIpOwotI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNl
bmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQorICAgIGJvb2wgZGVmYXVsdFZhbHVl
ID0gdHJ1ZTsKICNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGJvb2wgZGVmYXVsdFZhbHVl
ID0gZmFsc2U7CiAjZW5kaWYKKworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1
X3Byb2Nlc3Nfd2VicnRjIiwgZGVmYXVsdFZhbHVlKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShX
RUJfUlRDKQogCiBib29sIGRlZmF1bHRJbkFwcEJyb3dzZXJQcml2YWN5KCkKIHsKLSNpZiBIQVZF
KFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgi
SW5BcHBCcm93c2VyUHJpdmFjeSIpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gZmFsc2U7CisgICAg
Ly8gVE9ETzogZG91YmxlIGNoZWNrCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJJ
bkFwcEJyb3dzZXJQcml2YWN5IiwgZmFsc2UpOwogfQogCiAjaWYgSEFWRShJTkNSRU1FTlRBTF9Q
REZfQVBJUykKIGJvb2wgZGVmYXVsdEluY3JlbWVudGFsUERGRW5hYmxlZCgpCiB7Ci0jaWYgSEFW
RShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQo
ImluY3JlbWVudGFsX3BkZiIpOwotI2VuZGlmCi0KICNpZiBQTEFURk9STShNQUMpCi0gICAgcmV0
dXJuIHRydWU7CisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSB0cnVlOwogI2Vsc2UKLSAgICByZXR1
cm4gZmFsc2U7CisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSBmYWxzZTsKICNlbmRpZgorCisgICAg
Ly8gVE9ETzogZG91YmxlIGNoZWNrCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJp
bmNyZW1lbnRhbF9wZGYiLCBkZWZhdWx0VmFsdWUpOwogfQogI2VuZGlmCiAKQEAgLTMwMCwxNSAr
Mjc3LDEzIEBAIGJvb2wgZGVmYXVsdFdlYlhSRW5hYmxlZCgpCiAKIGJvb2wgZGVmYXVsdFdlYk1G
b3JtYXRSZWFkZXJFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQot
ICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgid2VibV9mb3JtYXRfcmVhZGVyIik7Ci0j
ZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1BQykKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBib29sIGRl
ZmF1bHRWYWx1ZSA9IHRydWU7CiAjZWxzZQotICAgIHJldHVybiBmYWxzZTsKKyAgICBib29sIGRl
ZmF1bHRWYWx1ZSA9IGZhbHNlOwogI2VuZGlmCisKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0Vu
YWJsZWQoIndlYm1fZm9ybWF0X3JlYWRlciIsIGRlZmF1bHRWYWx1ZSk7CiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoV0VCTV9GT1JNQVRfUkVBREVSKQpAQCAtMzE3LDI5ICsyOTIsMTkgQEAgYm9vbCBk
ZWZhdWx0V2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKQogCiBib29sIGRlZmF1bHRWUDhEZWNvZGVy
RW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4g
aXNGZWF0dXJlRmxhZ0VuYWJsZWQoInZwOF9kZWNvZGVyIik7Ci0jZW5kaWYKLQotICAgIHJldHVy
biBmYWxzZTsKKyAgICAvLyBUT0RPOiBkb3VibGUgY2hlY2sKKyAgICByZXR1cm4gaXNGZWF0dXJl
RmxhZ0VuYWJsZWQoInZwOF9kZWNvZGVyIiwgZmFsc2UpOwogfQogCiBib29sIGRlZmF1bHRWUDlE
ZWNvZGVyRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICBy
ZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoInZwOV9kZWNvZGVyIik7Ci0jZW5kaWYKLQotICAg
IHJldHVybiB0cnVlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgidnA5X2RlY29k
ZXIiLCB0cnVlKTsKIH0KIAogYm9vbCBkZWZhdWx0VlA5U1dEZWNvZGVyRW5hYmxlZE9uQmF0dGVy
eSgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0
dXJlRmxhZ0VuYWJsZWQoInN3X3ZwOV9kZWNvZGVyX29uX2JhdHRlcnkiKTsKLSNlbmRpZgotCi0g
ICAgcmV0dXJuIGZhbHNlOworICAgIC8vIFRPRE86IGRvdWJsZSBjaGVjaworICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgic3dfdnA5X2RlY29kZXJfb25fYmF0dGVyeSIsIGZhbHNlKTsK
IH0KICNlbmRpZiAvLyBFTkFCTEUoVlA5KQogCkBAIC0zNDcsMjAgKzMxMiwxMyBAQCBib29sIGRl
ZmF1bHRWUDlTV0RlY29kZXJFbmFibGVkT25CYXR0ZXJ5KCkKIAogYm9vbCBkZWZhdWx0V2ViTVBh
cnNlckVuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0
dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX3BhcnNlciIpOwotI2VuZGlmCi0KLSAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fcGFyc2Vy
IiwgdHJ1ZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFdlYk1XZWJBdWRpb0VuYWJsZWQoKQogewotI2lm
IEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFi
bGVkKCJ3ZWJtX3dlYmF1ZGlvIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICAv
LyBUT0RPOiBkb3VibGUgY2hlY2sKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndl
Ym1fd2ViYXVkaW8iLCBmYWxzZSk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU09VUkNF
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0
VmFsdWVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXMuaAppbmRleCBlNmZmMTgzNjBiMmJkYjA4ZWNmMTZmYThmYmRlOTQwOTg5NmM1NDU3Li4xMGNm
M2I2ZGQzNzZjYzNlZTA1N2IxMTIxNWQ5OGNlZDlkYTNiNzU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaApAQCAtMzUsOSArMzUs
NyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxB
R1MpCi1ib29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYpOwotI2VuZGlmCiti
b29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYsIGJvb2wgZGVmYXVsdFZhbHVl
ID0gZmFsc2UpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIGJvb2wgZGVmYXVsdFBhc3Np
dmVUb3VjaExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmgg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZh
bHVlcy5oCmluZGV4IGQwOGNiY2JlY2YzNGVjNTE3ZjI0M2Q5ZDA1YWI4MmQwM2U2NTE3NjEuLjky
MWZjNTRhOTA3MjdmMjRhYmYwN2M4ZGVlZTA5OGI2MjJlOTQ1MzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXMuaApAQCAtMzUsOCArMzUsOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotYm9vbCBpc0Zl
YXR1cmVGbGFnRW5hYmxlZChjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFURk9STShDT0NPQSkKK2Jv
b2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiwgYm9vbCBkZWZhdWx0VmFsdWUg
PSBmYWxzZSk7CiAjZW5kaWYKIAogI2lmIEhBVkUoSU5DUkVNRU5UQUxfUERGX0FQSVMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXNEZWZhdWx0VmFsdWVzLm1tCmluZGV4IDlhOTRkNjVkODVkMTc3Yjc3NzJiNzljMzg3ODQ4
YWQ0YzcyNzVmZGMuLmM5NzIzYmJmMmUwMTI3OGI2NGQ1MjQ1ZjRlNTk3YmEyYmFhNTg1ZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNE
ZWZhdWx0VmFsdWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tCkBAIC00MiwxNSArNDIsMjkgQEAKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgSEFWRShTWVNURU1fRkVBVFVS
RV9GTEFHUykKKyNpZiBQTEFURk9STShDT0NPQSkKIAogLy8gQmVjYXVzZSBvZiA8cmRhcjovL3By
b2JsZW0vNjA2MDgwMDg+LCBXZWJLaXQgaGFzIHRvIHBhcnNlIHRoZSBmZWF0dXJlIGZsYWdzIHBs
aXN0IGZpbGUKLWJvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiBmZWF0dXJl
TmFtZSkKK2Jvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiBmZWF0dXJlTmFt
ZSwgYm9vbCBkZWZhdWx0VmFsdWUpCiB7Ci0gICAgQk9PTCBpc1dlYktpdEJ1bmRsZUZyb21TdGFn
ZWRGcmFtZXdvcmsgPSBbW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVQYXRoXSBoYXNQcmVm
aXg6QCIvTGlicmFyeS9BcHBsZS9TeXN0ZW0vTGlicmFyeS9TdGFnZWRGcmFtZXdvcmtzL1dlYktp
dCJdOworI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCisKKyNpZiBQTEFURk9STShNQUMp
CisgICAgY29uc3Qgc3RhdGljIE5TQnVuZGxlICpidW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9y
Q2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07CisKKyAgICBzdGF0aWMgYm9v
bCBpc1N5c3RlbVdlYktpdCA9IFtdIHsKKyAgICAgICAgcmV0dXJuIFtidW5kbGUuYnVuZGxlUGF0
aCBoYXNQcmVmaXg6QCIvU3lzdGVtLyJdOworICAgIH0oKTsKKworICAgIHN0YXRpYyBib29sIGlz
V2ViS2l0QnVuZGxlRnJvbVN0YWdlZEZyYW1ld29yayA9IFtdIHsKKyAgICAgICAgcmV0dXJuIFti
dW5kbGUuYnVuZGxlUGF0aCBoYXNQcmVmaXg6QCIvTGlicmFyeS9BcHBsZS9TeXN0ZW0vIl07Cisg
ICAgfSgpOworCisgICAgaWYgKGlzU3lzdGVtV2ViS2l0KQorICAgICAgICByZXR1cm4gX29zX2Zl
YXR1cmVfZW5hYmxlZF9pbXBsKCJXZWJLaXQiLCAoY29uc3QgY2hhciopZmVhdHVyZU5hbWUuY2hh
cmFjdGVyczgoKSk7CiAKICAgICBpZiAoIWlzV2ViS2l0QnVuZGxlRnJvbVN0YWdlZEZyYW1ld29y
aykKLSAgICAgICAgcmV0dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNv
bnN0IGNoYXIqKWZlYXR1cmVOYW1lLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICByZXR1cm4gZGVm
YXVsdFZhbHVlOwogCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxOU0RpY3Rp
b25hcnk+PiBkaWN0aW9uYXJ5ID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aENvbnRlbnRz
T2ZGaWxlOkAiL0xpYnJhcnkvQXBwbGUvU3lzdGVtL0xpYnJhcnkvRmVhdHVyZUZsYWdzL0RvbWFp
bi9XZWJLaXQucGxpc3QiXTsKIApAQCAtNTgsNiArNzIsMTcgQEAgYm9vbCBpc0ZlYXR1cmVGbGFn
RW5hYmxlZChjb25zdCBTdHJpbmcmIGZlYXR1cmVOYW1lKQogICAgICAgICByZXR1cm4gX29zX2Zl
YXR1cmVfZW5hYmxlZF9pbXBsKCJXZWJLaXQiLCAoY29uc3QgY2hhciopZmVhdHVyZU5hbWUuY2hh
cmFjdGVyczgoKSk7CiAKICAgICByZXR1cm4gW1tbZGljdGlvbmFyeS5nZXQoKSBvYmplY3RGb3JL
ZXk6ZmVhdHVyZU5hbWVdIG9iamVjdEZvcktleTpAIkVuYWJsZWQiXSBpc0tpbmRPZkNsYXNzOltO
U051bWJlciBjbGFzc11dICYmIFtbW2RpY3Rpb25hcnkuZ2V0KCkgb2JqZWN0Rm9yS2V5OmZlYXR1
cmVOYW1lXSBvYmplY3RGb3JLZXk6QCJFbmFibGVkIl0gYm9vbFZhbHVlXTsKKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKGRlZmF1bHRWYWx1ZSk7CisgICAgcmV0dXJuIF9vc19mZWF0dXJlX2VuYWJs
ZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNoYXIqKWZlYXR1cmVOYW1lLmNoYXJhY3RlcnM4KCkp
OworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKKworI2Vsc2UKKworICAgIFVOVVNFRF9QQVJBTShm
ZWF0dXJlTmFtZSk7CisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKworI2VuZGlmIC8vIEhBVkUo
U1lTVEVNX0ZFQVRVUkVfRkxBR1MpCiB9CiAKICNlbmRpZgpAQCAtNjYsMTEgKzkxLDggQEAgYm9v
bCBpc0ZlYXR1cmVGbGFnRW5hYmxlZChjb25zdCBTdHJpbmcmIGZlYXR1cmVOYW1lKQogCiBib29s
IGRlZmF1bHRJbmNyZW1lbnRhbFBERkVuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRV
UkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJpbmNyZW1lbnRhbF9w
ZGYiKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIC8vIFRPRE86IGRvdWJsZSBj
aGVjaworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiaW5jcmVtZW50YWxfcGRmIiwg
ZmFsc2UpOwogfQogCiAjZW5kaWYKQEAgLTc5LDExICsxMDEsOCBAQCBib29sIGRlZmF1bHRJbmNy
ZW1lbnRhbFBERkVuYWJsZWQoKQogCiBib29sIGRlZmF1bHRXZWJYUkVuYWJsZWQoKQogewotI2lm
IEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFi
bGVkKCJXZWJYUiIpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gVE9ETzog
ZG91YmxlIGNoZWNrCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJXZWJYUiIsIGZh
bHNlKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKQEAgLTI3OCwyMCArMjk3LDEyIEBA
IGJvb2wgZGVmYXVsdFdoZWVsRXZlbnRHZXN0dXJlc0JlY29tZU5vbkJsb2NraW5nKCkKIAogYm9v
bCBkZWZhdWx0V2ViTVBhcnNlckVuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVf
RkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX3BhcnNlciIpOwot
I2VuZGlmCi0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJs
ZWQoIndlYm1fcGFyc2VyIiwgdHJ1ZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFdlYk1XZWJBdWRpb0Vu
YWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlz
RmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX3dlYmF1ZGlvIik7Ci0jZW5kaWYKLQotICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fd2ViYXVkaW8i
LCBmYWxzZSk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAtMzAwLDIw
ICszMTEsMTIgQEAgYm9vbCBkZWZhdWx0V2ViTVdlYkF1ZGlvRW5hYmxlZCgpCiAKIGJvb2wgZGVm
YXVsdFZQOERlY29kZXJFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdT
KQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgidnA4X2RlY29kZXIiKTsKLSNlbmRp
ZgotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgi
dnA4X2RlY29kZXIiLCBmYWxzZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFZQOURlY29kZXJFbmFibGVk
KCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1
cmVGbGFnRW5hYmxlZCgidnA5X2RlY29kZXIiKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIHRydWU7
CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ2cDlfZGVjb2RlciIsIHRydWUpOwog
fQogCiAjZW5kaWYgLy8gRU5BQkxFKFZQOSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434948</attachid>
            <date>2021-08-04 16:06:00 -0700</date>
            <delta_ts>2021-08-04 16:12:39 -0700</delta_ts>
            <desc>Revise the patch based on Simon&apos;s comments</desc>
            <filename>bug-228803-20210804160559.patch</filename>
            <type>text/plain</type>
            <size>17345</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYyNTJlNDU5ZGNmMmFhOTZm
MDc1ZDMwMjJlMjIxNGYzMjY3NjMyZjYuLjUxM2QxNTE4YWEzMDU2YWRjZDlkMzFlMmI4NDNiYmRj
OWM1ZDE0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjEtMDgtMDQgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIENsZWFuIHVwIEZlYXR1
cmUgRmxhZ3MgcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjg4MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxMTQyOTgyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBzeXN0
ZW0gV2ViS2l0IGFuZCBzdGFnZWQgZnJhbWV3b3JrLCB3ZSBnZXQgZGVmYXVsdCBwcmVmZXJlbmNl
CisgICAgICAgIHZhbHVlcyBmcm9tIFdlYktpdC5wbGlzdC4gRm9yIG90aGVyIGNhc2VzLCBsZXQn
cyB1c2UgaGFyZGNvZGVkIHZhbHVlcy4KKworICAgICAgICAqIFNoYXJlZC9Db2NvYS9XZWJQcmVm
ZXJlbmNlc0RlZmF1bHRWYWx1ZXNDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6aXNGZWF0dXJl
RmxhZ0VuYWJsZWQpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXMuY3BwOgorICAgICAgICAoV2ViS2l0Ojppc0ZlYXR1cmVGbGFnRW5hYmxlZCk6CisgICAgICAg
IChXZWJLaXQ6OmRlZmF1bHRBc3luY0ZyYW1lQW5kT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkKToK
KyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JDYW52YXNSZW5kZXJpbmdF
bmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JET01SZW5k
ZXJpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JN
ZWRpYUVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0VXNlR1BVUHJvY2Vzc0Zvcldl
YkdMRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRDYXB0dXJlQXVkaW9JbkdQVVBy
b2Nlc3NFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdENhcHR1cmVWaWRlb0luR1BV
UHJvY2Vzc0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0V2ViUlRDQ29kZWNzSW5H
UFVQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdEluQXBwQnJvd3NlclByaXZhY3kp
OgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0SW5jcmVtZW50YWxQREZFbmFibGVkKToKKyAgICAg
ICAgKFdlYktpdDo6ZGVmYXVsdFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKToKKyAgICAgICAgKFdl
YktpdDo6ZGVmYXVsdFZQOERlY29kZXJFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVs
dFZQOURlY29kZXJFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFZQOVNXRGVjb2Rl
ckVuYWJsZWRPbkJhdHRlcnkpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0V2ViTVBhcnNlckVu
YWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0V2ViTVdlYkF1ZGlvRW5hYmxlZCk6Cisg
ICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oOgorCiAyMDIxLTA4
LTAyICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIFJl
bW90ZUF1ZGlvU2Vzc2lvbjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZSgpIGRvZXMgbm90IGNoYW5n
ZSBpdHMgcHJlZmVycmVkQnVmZmVyU2l6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4
IDBkZmY0MzhjMTIwNzU3ZjM2M2UwMGRiODMyNDczNWY1NWUwYTFiOWMuLjY0N2IwYmQ2ZmJiYzY3
MjY0MzZmNjk1MWQ1ZWFmNzQ0MDczODY1MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNCBAQAorMjAyMS0wOC0wNCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUu
Y29tPgorCisgICAgICAgIFttYWNPU10gQ2xlYW4gdXAgRmVhdHVyZSBGbGFncyByZWxhdGVkIGNv
ZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODgw
MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODExNDI5ODI+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIHN5c3RlbSBXZWJLaXQgYW5kIHN0YWdl
ZCBmcmFtZXdvcmssIHdlIGdldCBkZWZhdWx0IHByZWZlcmVuY2UKKyAgICAgICAgdmFsdWVzIGZy
b20gV2ViS2l0LnBsaXN0LiBGb3Igb3RoZXIgY2FzZXMsIGxldCdzIHVzZSBoYXJkY29kZWQgdmFs
dWVzLgorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaDoK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5tbToKKyAgICAg
ICAgKFdlYktpdDo6aXNGZWF0dXJlRmxhZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZh
dWx0SW5jcmVtZW50YWxQREZFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFdlYlhS
RW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXZWJNUGFyc2VyRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXZWJNV2ViQXVkaW9FbmFibGVkKToKKyAgICAgICAgKFdl
YktpdDo6ZGVmYXVsdFZQOERlY29kZXJFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVs
dFZQOURlY29kZXJFbmFibGVkKToKKwogMjAyMS0wNy0yOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxt
bWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3AgYnVpbGRpbmcgV2ViR1BVIGFuZCB0
aGUgV0hMU0wgY29tcGlsZXIgdG8gZGVjcmVhc2UgYmluYXJ5IHNpemUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlc0NvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFs
dWVzQ29jb2EubW0KaW5kZXggY2RiMzYzYThmOGEwM2JhMzU2MzQ5MDFhNDg5YjAwNWYzODlhOTIz
Yy4uMGFjZjk2MDQ4MGUyZTkyYjI2M2QxNzcwN2FjYTkxMmNkNmQwYjM1MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViUHJlZmVyZW5jZXNEZWZh
dWx0VmFsdWVzQ29jb2EubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgog
I2ltcG9ydCAiV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmgiCiAKLSNpZiBQTEFURk9STShD
T0NPQSkgJiYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKKyNpZiBQTEFURk9STShDT0NPQSkK
IAogI2ltcG9ydCA8Rm91bmRhdGlvbi9OU0J1bmRsZS5oPgogCkBAIC0zOCwyMiArMzgsMzEgQEAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiAvLyBCZWNhdXNlIG9mIDxyZGFyOi8vcHJvYmxlbS82MDYw
ODAwOD4sIFdlYktpdCBoYXMgdG8gcGFyc2UgdGhlIGZlYXR1cmUgZmxhZ3MgcGxpc3QgZmlsZQot
Ym9vbCBpc0ZlYXR1cmVGbGFnRW5hYmxlZChjb25zdCBTdHJpbmcmIGZlYXR1cmVOYW1lKQorYm9v
bCBpc0ZlYXR1cmVGbGFnRW5hYmxlZChjb25zdCBTdHJpbmcmIGZlYXR1cmVOYW1lLCBib29sIGRl
ZmF1bHRWYWx1ZSkKIHsKLSAgICBzdGF0aWMgYm9vbCBpc1dlYktpdEJ1bmRsZUZyb21TdGFnZWRG
cmFtZXdvcmsgPSBbXSB7Ci0gICAgICAgIE5TQnVuZGxlICp3ZWJraXQyQnVuZGxlID0gW05TQnVu
ZGxlIGJ1bmRsZUZvckNsYXNzOk5TQ2xhc3NGcm9tU3RyaW5nKEAiV0tXZWJWaWV3IildOwotICAg
ICAgICByZXR1cm4gW3dlYmtpdDJCdW5kbGUuYnVuZGxlUGF0aCBoYXNQcmVmaXg6QCIvTGlicmFy
eS9BcHBsZS9TeXN0ZW0vTGlicmFyeS9TdGFnZWRGcmFtZXdvcmtzL1NhZmFyaS8iXTsKKyNpZiBI
QVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQorCisjaWYgUExBVEZPUk0oTUFDKQorICAgIHN0YXRp
YyBib29sIGlzU3lzdGVtV2ViS2l0ID0gW10geworICAgICAgICBOU0J1bmRsZSAqYnVuZGxlID0g
W05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOk5TQ2xhc3NGcm9tU3RyaW5nKEAiV0tXZWJWaWV3Iild
OworICAgICAgICByZXR1cm4gW2J1bmRsZS5idW5kbGVQYXRoIGhhc1ByZWZpeDpAIi9TeXN0ZW0v
Il07CiAgICAgfSgpOwogCi0gICAgaWYgKCFpc1dlYktpdEJ1bmRsZUZyb21TdGFnZWRGcmFtZXdv
cmspCi0gICAgICAgIHJldHVybiBfb3NfZmVhdHVyZV9lbmFibGVkX2ltcGwoIldlYktpdCIsIChj
b25zdCBjaGFyKilmZWF0dXJlTmFtZS51dGY4KCkuZGF0YSgpKTsKKyAgICBpZiAoaXNTeXN0ZW1X
ZWJLaXQpCisgICAgICAgIHJldHVybiBfb3NfZmVhdHVyZV9lbmFibGVkX2ltcGwoIldlYktpdCIs
IChjb25zdCBjaGFyKilmZWF0dXJlTmFtZS5jaGFyYWN0ZXJzOCgpKTsKKworICAgIHJldHVybiBk
ZWZhdWx0VmFsdWU7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0VmFsdWUpOworICAg
IHJldHVybiBfb3NfZmVhdHVyZV9lbmFibGVkX2ltcGwoIldlYktpdCIsIChjb25zdCBjaGFyKilm
ZWF0dXJlTmFtZS5jaGFyYWN0ZXJzOCgpKTsKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPE5TRGljdGlvbmFyeT4+IGRpY3Rpb25h
cnkgPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoQ29udGVudHNPZkZpbGU6QCIvTGlicmFy
eS9BcHBsZS9TeXN0ZW0vTGlicmFyeS9GZWF0dXJlRmxhZ3MvRG9tYWluL1dlYktpdC5wbGlzdCJd
OworI2Vsc2UKIAotICAgIGlmICghW1tkaWN0aW9uYXJ5LmdldCgpIG9iamVjdEZvcktleTpmZWF0
dXJlTmFtZV0gb2JqZWN0Rm9yS2V5OkAiRW5hYmxlZCJdKQotICAgICAgICByZXR1cm4gX29zX2Zl
YXR1cmVfZW5hYmxlZF9pbXBsKCJXZWJLaXQiLCAoY29uc3QgY2hhciopZmVhdHVyZU5hbWUuY2hh
cmFjdGVyczgoKSk7CisgICAgVU5VU0VEX1BBUkFNKGZlYXR1cmVOYW1lKTsKKyAgICByZXR1cm4g
ZGVmYXVsdFZhbHVlOwogCi0gICAgcmV0dXJuIFtbW2RpY3Rpb25hcnkuZ2V0KCkgb2JqZWN0Rm9y
S2V5OmZlYXR1cmVOYW1lXSBvYmplY3RGb3JLZXk6QCJFbmFibGVkIl0gaXNLaW5kT2ZDbGFzczpb
TlNOdW1iZXIgY2xhc3NdXSAmJiBbW1tkaWN0aW9uYXJ5LmdldCgpIG9iamVjdEZvcktleTpmZWF0
dXJlTmFtZV0gb2JqZWN0Rm9yS2V5OkAiRW5hYmxlZCJdIGJvb2xWYWx1ZV07CisjZW5kaWYgLy8g
SEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVz
LmNwcAppbmRleCBhZmFmZTNjN2U1MzMwNjI0ZWE4NDZlYmEwNzViZjI4NTVhMGEyMzdlLi41Y2Nh
NmMzZWQzNmM5NzZhZWM3OWJhYjFiYzE4YzljNzkyNzY5ZjNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKQEAgLTQxLDYg
KzQxLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCisjaWYgIVBMQVRGT1JNKENPQ09BKQor
Ym9vbCBpc0ZlYXR1cmVGbGFnRW5hYmxlZChjb25zdCBTdHJpbmcmLCBib29sIGRlZmF1bHRWYWx1
ZSkKK3sKKyAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworfQorI2VuZGlmCisKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQogCiBib29sIGRlZmF1bHRQYXNzaXZlVG91Y2hMaXN0ZW5lcnNBc0RlZmF1
bHRPbkRvY3VtZW50KCkKQEAgLTEwOCwxNSArMTE1LDEzIEBAIHN0YXRpYyBib29sIGRlZmF1bHRB
c3luY0ZyYW1lQW5kT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkKCkKICAgICByZXR1cm4gdHJ1ZTsK
ICNlbmRpZgogCi0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNG
ZWF0dXJlRmxhZ0VuYWJsZWQoImFzeW5jX2ZyYW1lX2FuZF9vdmVyZmxvd19zY3JvbGxpbmciKTsK
LSNlbmRpZgotCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHJldHVybiB0cnVlOworICAgIGJvb2wg
ZGVmYXVsdFZhbHVlID0gdHJ1ZTsKKyNlbHNlCisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSBmYWxz
ZTsKICNlbmRpZgogCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFn
RW5hYmxlZCgiYXN5bmNfZnJhbWVfYW5kX292ZXJmbG93X3Njcm9sbGluZyIsIGRlZmF1bHRWYWx1
ZSk7CiB9CiAKIGJvb2wgZGVmYXVsdEFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKCkKQEAgLTE1
MCw0OSArMTU1LDMzIEBAIGJvb2wgZGVmYXVsdE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5h
YmxlZCgpCiBib29sIGRlZmF1bHRVc2VHUFVQcm9jZXNzRm9yQ2FudmFzUmVuZGVyaW5nRW5hYmxl
ZCgpCiB7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTX0JZX0RFRkFVTFQpCi0jaWYgSEFWRShTWVNU
RU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9w
cm9jZXNzX2NhbnZhc19yZW5kZXJpbmciKTsKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IHRydWU7
CiAjZWxzZQotICAgIHJldHVybiB0cnVlOwotI2VuZGlmIC8vIEhBVkUoU1lTVEVNX0ZFQVRVUkVf
RkxBR1MpCi0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9
IGZhbHNlOwogI2VuZGlmCisKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9w
cm9jZXNzX2NhbnZhc19yZW5kZXJpbmciLCBkZWZhdWx0VmFsdWUpOwogfQogCiBib29sIGRlZmF1
bHRVc2VHUFVQcm9jZXNzRm9yRE9NUmVuZGVyaW5nRW5hYmxlZCgpCiB7Ci0jaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTX0JZX0RFRkFVTFQpCi0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAg
ICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX2RvbV9yZW5kZXJpbmci
KTsKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmIC8vIEhBVkUoU1lTVEVNX0ZFQVRV
UkVfRkxBR1MpCi0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgorICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfZG9tX3JlbmRlcmluZyIsIGZhbHNlKTsK
IH0KIAogYm9vbCBkZWZhdWx0VXNlR1BVUHJvY2Vzc0Zvck1lZGlhRW5hYmxlZCgpCiB7CiAjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTX0JZX0RFRkFVTFQpCi0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9G
TEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX21lZGlh
Iik7Ci0jZWxzZQotICAgIHJldHVybiB0cnVlOwotI2VuZGlmIC8vIEhBVkUoU1lTVEVNX0ZFQVRV
UkVfRkxBR1MpCisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSB0cnVlOwogI2Vsc2UKLSAgICByZXR1
cm4gZmFsc2U7CisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSBmYWxzZTsKICNlbmRpZgorCisgICAg
cmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc19tZWRpYSIsIGRlZmF1bHRW
YWx1ZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JXZWJHTEVuYWJsZWQoKQog
ewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZs
YWdFbmFibGVkKCJncHVfcHJvY2Vzc193ZWJnbCIpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gZmFs
c2U7CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc193ZWJnbCIs
IGZhbHNlKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKQEAgLTIwMiwxOSAr
MTkxLDE1IEBAIGJvb2wgZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JXZWJHTEVuYWJsZWQoKQogYm9v
bCBkZWZhdWx0Q2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCgpCiB7CiAjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTX0JZX0RFRkFVTFQpCisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSB0cnVlOwor
I2Vsc2UKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IGZhbHNlOworI2VuZGlmCiAKLSNpZiBIQVZF
KFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQogI2lmIFBMQVRGT1JNKE1BQykKLSAgICByZXR1cm4gaXNG
ZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYnJ0YyIpOworICAgIHJldHVybiBpc0Zl
YXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIiwgZGVmYXVsdFZhbHVlKTsKICNl
bGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVk
KCJncHVfcHJvY2Vzc19tZWRpYSIpOwotI2VuZGlmCi0jZWxzZQotICAgIHJldHVybiB0cnVlOwot
I2VuZGlmIC8vIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0KLSNlbHNlCi0gICAgcmV0dXJu
IGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfbWVk
aWEiLCBkZWZhdWx0VmFsdWUpOwogI2VuZGlmCiB9CiAKQEAgLTIzMCwxNCArMjE1LDEyIEBAIGJv
b2wgZGVmYXVsdENhcHR1cmVBdWRpb0luVUlQcm9jZXNzRW5hYmxlZCgpCiBib29sIGRlZmF1bHRD
YXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkKCkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NF
U1NfQllfREVGQVVMVCkKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVy
biBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIik7Ci0jZWxzZQotICAg
IHJldHVybiB0cnVlOwotI2VuZGlmIC8vIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCisgICAg
Ym9vbCBkZWZhdWx0VmFsdWUgPSB0cnVlOwogI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAg
Ym9vbCBkZWZhdWx0VmFsdWUgPSBmYWxzZTsKICNlbmRpZgorCisgICAgcmV0dXJuIGlzRmVhdHVy
ZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc193ZWJydGMiLCBkZWZhdWx0VmFsdWUpOwogfQogCiAj
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKQEAgLTI0NywzOSArMjMwLDMzIEBAIGJvb2wg
ZGVmYXVsdENhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQoKQogYm9vbCBkZWZhdWx0V2Vi
UlRDQ29kZWNzSW5HUFVQcm9jZXNzKCkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1NfQllfREVG
QVVMVCkKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1
cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIik7Ci0jZWxzZQotICAgIHJldHVybiB0
cnVlOwotI2VuZGlmIC8vIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCisgICAgYm9vbCBkZWZh
dWx0VmFsdWUgPSB0cnVlOwogI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBkZWZh
dWx0VmFsdWUgPSBmYWxzZTsKICNlbmRpZgorCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFi
bGVkKCJncHVfcHJvY2Vzc193ZWJydGMiLCBkZWZhdWx0VmFsdWUpOwogfQogCiAjZW5kaWYgLy8g
RU5BQkxFKFdFQl9SVEMpCiAKIGJvb2wgZGVmYXVsdEluQXBwQnJvd3NlclByaXZhY3koKQogewot
I2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdF
bmFibGVkKCJJbkFwcEJyb3dzZXJQcml2YWN5Iik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxz
ZTsKKyAgICAvLyBUT0RPOiBkb3VibGUgY2hlY2sKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0Vu
YWJsZWQoIkluQXBwQnJvd3NlclByaXZhY3kiLCBmYWxzZSk7CiB9CiAKICNpZiBIQVZFKElOQ1JF
TUVOVEFMX1BERl9BUElTKQogYm9vbCBkZWZhdWx0SW5jcmVtZW50YWxQREZFbmFibGVkKCkKIHsK
LSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFn
RW5hYmxlZCgiaW5jcmVtZW50YWxfcGRmIik7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1BQykK
LSAgICByZXR1cm4gdHJ1ZTsKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IHRydWU7CiAjZWxzZQot
ICAgIHJldHVybiBmYWxzZTsKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IGZhbHNlOwogI2VuZGlm
CisKKyAgICAvLyBUT0RPOiBkb3VibGUgY2hlY2sKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0Vu
YWJsZWQoImluY3JlbWVudGFsX3BkZiIsIGRlZmF1bHRWYWx1ZSk7CiB9CiAjZW5kaWYKIApAQCAt
MzAwLDE1ICsyNzcsMTMgQEAgYm9vbCBkZWZhdWx0V2ViWFJFbmFibGVkKCkKIAogYm9vbCBkZWZh
dWx0V2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVf
RkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX2Zvcm1hdF9yZWFk
ZXIiKTsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHJldHVybiB0cnVlOworICAg
IGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOworICAg
IGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKKworICAgIHJldHVybiBpc0ZlYXR1
cmVGbGFnRW5hYmxlZCgid2VibV9mb3JtYXRfcmVhZGVyIiwgZGVmYXVsdFZhbHVlKTsKIH0KIAog
I2VuZGlmIC8vIEVOQUJMRShXRUJNX0ZPUk1BVF9SRUFERVIpCkBAIC0zMTcsMjkgKzI5MiwxOSBA
QCBib29sIGRlZmF1bHRXZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpCiAKIGJvb2wgZGVmYXVsdFZQ
OERlY29kZXJFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAg
IHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgidnA4X2RlY29kZXIiKTsKLSNlbmRpZgotCi0g
ICAgcmV0dXJuIGZhbHNlOworICAgIC8vIFRPRE86IGRvdWJsZSBjaGVjaworICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgidnA4X2RlY29kZXIiLCBmYWxzZSk7CiB9CiAKIGJvb2wgZGVm
YXVsdFZQOURlY29kZXJFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdT
KQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgidnA5X2RlY29kZXIiKTsKLSNlbmRp
ZgotCi0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ2
cDlfZGVjb2RlciIsIHRydWUpOwogfQogCiBib29sIGRlZmF1bHRWUDlTV0RlY29kZXJFbmFibGVk
T25CYXR0ZXJ5KCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVy
biBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgic3dfdnA5X2RlY29kZXJfb25fYmF0dGVyeSIpOwotI2Vu
ZGlmCi0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gVE9ETzogZG91YmxlIGNoZWNrCisgICAg
cmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJzd192cDlfZGVjb2Rlcl9vbl9iYXR0ZXJ5Iiwg
ZmFsc2UpOwogfQogI2VuZGlmIC8vIEVOQUJMRShWUDkpCiAKQEAgLTM0NywyMCArMzEyLDEzIEBA
IGJvb2wgZGVmYXVsdFZQOVNXRGVjb2RlckVuYWJsZWRPbkJhdHRlcnkoKQogCiBib29sIGRlZmF1
bHRXZWJNUGFyc2VyRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykK
LSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fcGFyc2VyIik7Ci0jZW5kaWYK
LQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgid2Vi
bV9wYXJzZXIiLCB0cnVlKTsKIH0KIAogYm9vbCBkZWZhdWx0V2ViTVdlYkF1ZGlvRW5hYmxlZCgp
CiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJl
RmxhZ0VuYWJsZWQoIndlYm1fd2ViYXVkaW8iKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIGZhbHNl
OworICAgIC8vIFRPRE86IGRvdWJsZSBjaGVjaworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5h
YmxlZCgid2VibV93ZWJhdWRpbyIsIGZhbHNlKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9TT1VSQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNl
c0RlZmF1bHRWYWx1ZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlcy5oCmluZGV4IGU2ZmYxODM2MGIyYmRiMDhlY2YxNmZhOGZiZGU5NDA5ODk2YzU0
NTcuLjEwY2YzYjZkZDM3NmNjM2VlMDU3YjExMjE1ZDk4Y2VkOWRhM2I3NTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCkBAIC0z
NSw5ICszNSw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi0jaWYgSEFWRShTWVNURU1fRkVB
VFVSRV9GTEFHUykKLWJvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJik7Ci0j
ZW5kaWYKK2Jvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiwgYm9vbCBkZWZh
dWx0VmFsdWUgPSBmYWxzZSk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogYm9vbCBkZWZh
dWx0UGFzc2l2ZVRvdWNoTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRW
YWx1ZXMuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNE
ZWZhdWx0VmFsdWVzLmgKaW5kZXggZDA4Y2JjYmVjZjM0ZWM1MTdmMjQzZDlkMDVhYjgyZDAzZTY1
MTc2MS4uOTIxZmM1NGE5MDcyN2YyNGFiZjA3YzhkZWVlMDk4YjYyMmU5NDUzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRW
YWx1ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzRGVmYXVsdFZhbHVlcy5oCkBAIC0zNSw4ICszNSw4IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi1i
b29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYpOworI2lmIFBMQVRGT1JNKENP
Q09BKQorYm9vbCBpc0ZlYXR1cmVGbGFnRW5hYmxlZChjb25zdCBTdHJpbmcmLCBib29sIGRlZmF1
bHRWYWx1ZSA9IGZhbHNlKTsKICNlbmRpZgogCiAjaWYgSEFWRShJTkNSRU1FTlRBTF9QREZfQVBJ
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXNEZWZhdWx0VmFsdWVzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMubW0KaW5kZXggOWE5NGQ2NWQ4NWQxNzdiNzc3MmI3
OWMzODc4NDhhZDRjNzI3NWZkYy4uNmEzNTY3N2JmMDlhNmQ0ZTI2YmQyZGNhNWRhNGYxOTBmZGQ2
ZTZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlc0RlZmF1bHRWYWx1ZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMubW0KQEAgLTQyLDIyICs0MiwzNCBAQAog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBIQVZFKFNZU1RF
TV9GRUFUVVJFX0ZMQUdTKQorI2lmIFBMQVRGT1JNKENPQ09BKQogCiAvLyBCZWNhdXNlIG9mIDxy
ZGFyOi8vcHJvYmxlbS82MDYwODAwOD4sIFdlYktpdCBoYXMgdG8gcGFyc2UgdGhlIGZlYXR1cmUg
ZmxhZ3MgcGxpc3QgZmlsZQotYm9vbCBpc0ZlYXR1cmVGbGFnRW5hYmxlZChjb25zdCBTdHJpbmcm
IGZlYXR1cmVOYW1lKQorYm9vbCBpc0ZlYXR1cmVGbGFnRW5hYmxlZChjb25zdCBTdHJpbmcmIGZl
YXR1cmVOYW1lLCBib29sIGRlZmF1bHRWYWx1ZSkKIHsKLSAgICBCT09MIGlzV2ViS2l0QnVuZGxl
RnJvbVN0YWdlZEZyYW1ld29yayA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZVBhdGhd
IGhhc1ByZWZpeDpAIi9MaWJyYXJ5L0FwcGxlL1N5c3RlbS9MaWJyYXJ5L1N0YWdlZEZyYW1ld29y
a3MvV2ViS2l0Il07Ci0KLSAgICBpZiAoIWlzV2ViS2l0QnVuZGxlRnJvbVN0YWdlZEZyYW1ld29y
aykKLSAgICAgICAgcmV0dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNv
bnN0IGNoYXIqKWZlYXR1cmVOYW1lLnV0ZjgoKS5kYXRhKCkpOworI2lmIEhBVkUoU1lTVEVNX0ZF
QVRVUkVfRkxBR1MpCiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPE5TRGlj
dGlvbmFyeT4+IGRpY3Rpb25hcnkgPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoQ29udGVu
dHNPZkZpbGU6QCIvTGlicmFyeS9BcHBsZS9TeXN0ZW0vTGlicmFyeS9GZWF0dXJlRmxhZ3MvRG9t
YWluL1dlYktpdC5wbGlzdCJdOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBzdGF0aWMgYm9vbCBp
c1N5c3RlbVdlYktpdCA9IFtdIHsKKyAgICAgICAgTlNCdW5kbGUgKmJ1bmRsZSA9IFtOU0J1bmRs
ZSBidW5kbGVGb3JDbGFzczpOU0NsYXNzRnJvbVN0cmluZyhAIldLV2ViVmlldyIpXTsKKyAgICAg
ICAgcmV0dXJuIFtidW5kbGUuYnVuZGxlUGF0aCBoYXNQcmVmaXg6QCIvU3lzdGVtLyJdOworICAg
IH0oKTsKIAotICAgIGlmICghW1tkaWN0aW9uYXJ5LmdldCgpIG9iamVjdEZvcktleTpmZWF0dXJl
TmFtZV0gb2JqZWN0Rm9yS2V5OkAiRW5hYmxlZCJdKQorICAgIGlmIChpc1N5c3RlbVdlYktpdCkK
ICAgICAgICAgcmV0dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0
IGNoYXIqKWZlYXR1cmVOYW1lLmNoYXJhY3RlcnM4KCkpOwogCi0gICAgcmV0dXJuIFtbW2RpY3Rp
b25hcnkuZ2V0KCkgb2JqZWN0Rm9yS2V5OmZlYXR1cmVOYW1lXSBvYmplY3RGb3JLZXk6QCJFbmFi
bGVkIl0gaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSAmJiBbW1tkaWN0aW9uYXJ5Lmdl
dCgpIG9iamVjdEZvcktleTpmZWF0dXJlTmFtZV0gb2JqZWN0Rm9yS2V5OkAiRW5hYmxlZCJdIGJv
b2xWYWx1ZV07CisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGRlZmF1bHRWYWx1ZSk7CisgICAgcmV0dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgi
V2ViS2l0IiwgKGNvbnN0IGNoYXIqKWZlYXR1cmVOYW1lLmNoYXJhY3RlcnM4KCkpOworI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQykKKworI2Vsc2UKKworICAgIFVOVVNFRF9QQVJBTShmZWF0dXJlTmFt
ZSk7CisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKworI2VuZGlmIC8vIEhBVkUoU1lTVEVNX0ZF
QVRVUkVfRkxBR1MpCiB9CiAKICNlbmRpZgpAQCAtNjYsMTEgKzc4LDggQEAgYm9vbCBpc0ZlYXR1
cmVGbGFnRW5hYmxlZChjb25zdCBTdHJpbmcmIGZlYXR1cmVOYW1lKQogCiBib29sIGRlZmF1bHRJ
bmNyZW1lbnRhbFBERkVuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1Mp
Ci0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJpbmNyZW1lbnRhbF9wZGYiKTsKLSNl
bmRpZgotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIC8vIFRPRE86IGRvdWJsZSBjaGVjaworICAg
IHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiaW5jcmVtZW50YWxfcGRmIiwgZmFsc2UpOwog
fQogCiAjZW5kaWYKQEAgLTc5LDExICs4OCw4IEBAIGJvb2wgZGVmYXVsdEluY3JlbWVudGFsUERG
RW5hYmxlZCgpCiAKIGJvb2wgZGVmYXVsdFdlYlhSRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNU
RU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIldlYlhS
Iik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBUT0RPOiBkb3VibGUgY2hl
Y2sKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIldlYlhSIiwgZmFsc2UpOwogfQog
CiAjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpAQCAtMjc4LDIwICsyODQsMTIgQEAgYm9vbCBkZWZh
dWx0V2hlZWxFdmVudEdlc3R1cmVzQmVjb21lTm9uQmxvY2tpbmcoKQogCiBib29sIGRlZmF1bHRX
ZWJNUGFyc2VyRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAg
ICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fcGFyc2VyIik7Ci0jZW5kaWYKLQot
ICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgid2VibV9w
YXJzZXIiLCB0cnVlKTsKIH0KIAogYm9vbCBkZWZhdWx0V2ViTVdlYkF1ZGlvRW5hYmxlZCgpCiB7
Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxh
Z0VuYWJsZWQoIndlYm1fd2ViYXVkaW8iKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIGZhbHNlOwor
ICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgid2VibV93ZWJhdWRpbyIsIGZhbHNlKTsK
IH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TT1VSQ0UpCkBAIC0zMDAsMjAgKzI5OCwxMiBA
QCBib29sIGRlZmF1bHRXZWJNV2ViQXVkaW9FbmFibGVkKCkKIAogYm9vbCBkZWZhdWx0VlA4RGVj
b2RlckVuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0
dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ2cDhfZGVjb2RlciIpOwotI2VuZGlmCi0KLSAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ2cDhfZGVjb2Rl
ciIsIGZhbHNlKTsKIH0KIAogYm9vbCBkZWZhdWx0VlA5RGVjb2RlckVuYWJsZWQoKQogewotI2lm
IEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFi
bGVkKCJ2cDlfZGVjb2RlciIpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1
cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoInZwOV9kZWNvZGVyIiwgdHJ1ZSk7CiB9CiAKICNlbmRp
ZiAvLyBFTkFCTEUoVlA5KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434951</attachid>
            <date>2021-08-04 16:12:41 -0700</date>
            <delta_ts>2021-08-04 22:47:26 -0700</delta_ts>
            <desc>Update change logs</desc>
            <filename>bug-228803-20210804161240.patch</filename>
            <type>text/plain</type>
            <size>17301</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYyNTJlNDU5ZGNmMmFhOTZm
MDc1ZDMwMjJlMjIxNGYzMjY3NjMyZjYuLmQwZTEyNGU2YzU5MWU5NWI1NGI2MjBhZmUxNWI5MDg0
ZDE3M2ZkODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjEtMDgtMDQgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIENsZWFuIHVwIEZlYXR1
cmUgRmxhZ3MgcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjg4MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxMTQyOTgyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGdldCBk
ZWZhdWx0IHByZWZlcmVuY2UgdmFsdWVzIGZyb20gV2ViS2l0LnBsaXN0IGZvciBzeXN0ZW0gV2Vi
S2l0LgorICAgICAgICBGb3Igb3RoZXIgY2FzZXMsIGxldCdzIHVzZSBoYXJkY29kZWQgdmFsdWVz
LgorCisgICAgICAgICogU2hhcmVkL0NvY29hL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlc0Nv
Y29hLm1tOgorICAgICAgICAoV2ViS2l0Ojppc0ZlYXR1cmVGbGFnRW5hYmxlZCk6CisgICAgICAg
ICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OmlzRmVhdHVyZUZsYWdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdEFzeW5j
RnJhbWVBbmRPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZh
dWx0VXNlR1BVUHJvY2Vzc0ZvckNhbnZhc1JlbmRlcmluZ0VuYWJsZWQpOgorICAgICAgICAoV2Vi
S2l0OjpkZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvckRPTVJlbmRlcmluZ0VuYWJsZWQpOgorICAgICAg
ICAoV2ViS2l0OjpkZWZhdWx0VXNlR1BVUHJvY2Vzc0Zvck1lZGlhRW5hYmxlZCk6CisgICAgICAg
IChXZWJLaXQ6OmRlZmF1bHRVc2VHUFVQcm9jZXNzRm9yV2ViR0xFbmFibGVkKToKKyAgICAgICAg
KFdlYktpdDo6ZGVmYXVsdENhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQpOgorICAgICAg
ICAoV2ViS2l0OjpkZWZhdWx0Q2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxlZCk6CisgICAg
ICAgIChXZWJLaXQ6OmRlZmF1bHRXZWJSVENDb2RlY3NJbkdQVVByb2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpkZWZhdWx0SW5BcHBCcm93c2VyUHJpdmFjeSk6CisgICAgICAgIChXZWJLaXQ6OmRl
ZmF1bHRJbmNyZW1lbnRhbFBERkVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0V2Vi
TUZvcm1hdFJlYWRlckVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0VlA4RGVjb2Rl
ckVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0VlA5RGVjb2RlckVuYWJsZWQpOgor
ICAgICAgICAoV2ViS2l0OjpkZWZhdWx0VlA5U1dEZWNvZGVyRW5hYmxlZE9uQmF0dGVyeSk6Cisg
ICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXZWJNUGFyc2VyRW5hYmxlZCk6CisgICAgICAgIChXZWJL
aXQ6OmRlZmF1bHRXZWJNV2ViQXVkaW9FbmFibGVkKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJl
ZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmg6CisKIDIwMjEtMDgtMDIgIFBlbmcgTGl1ICA8cGVuZy5s
aXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUF0gUmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRQ
cmVmZXJyZWRCdWZmZXJTaXplKCkgZG9lcyBub3QgY2hhbmdlIGl0cyBwcmVmZXJyZWRCdWZmZXJT
aXplCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMGRmZjQzOGMxMjA3NTdmMzYzZTAw
ZGI4MzI0NzM1ZjU1ZTBhMWI5Yy4uMmNjNDE0MGIwY2M4MWJiY2NiNzJhZjBkNDRiMGJjMTQxOGVl
NmQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIx
LTA4LTA0ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09T
XSBDbGVhbiB1cCBGZWF0dXJlIEZsYWdzIHJlbGF0ZWQgY29kZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4ODAzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS84MTE0Mjk4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXZSBnZXQgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcyBmcm9tIFdlYktpdC5wbGlz
dCBmb3Igc3lzdGVtIFdlYktpdC4KKyAgICAgICAgRm9yIG90aGVyIGNhc2VzLCBsZXQncyB1c2Ug
aGFyZGNvZGVkIHZhbHVlcy4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZh
dWx0VmFsdWVzLmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXMubW06CisgICAgICAgIChXZWJLaXQ6OmlzRmVhdHVyZUZsYWdFbmFibGVkKToKKyAgICAgICAg
KFdlYktpdDo6ZGVmYXVsdEluY3JlbWVudGFsUERGRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6
OmRlZmF1bHRXZWJYUkVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0V2ViTVBhcnNl
ckVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0V2ViTVdlYkF1ZGlvRW5hYmxlZCk6
CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRWUDhEZWNvZGVyRW5hYmxlZCk6CisgICAgICAgIChX
ZWJLaXQ6OmRlZmF1bHRWUDlEZWNvZGVyRW5hYmxlZCk6CisKIDIwMjEtMDctMjkgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIGJ1aWxkaW5n
IFdlYkdQVSBhbmQgdGhlIFdITFNMIGNvbXBpbGVyIHRvIGRlY3JlYXNlIGJpbmFyeSBzaXplCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXNDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYlByZWZlcmVu
Y2VzRGVmYXVsdFZhbHVlc0NvY29hLm1tCmluZGV4IGNkYjM2M2E4ZjhhMDNiYTM1NjM0OTAxYTQ4
OWIwMDVmMzg5YTkyM2MuLjBhY2Y5NjA0ODBlMmU5MmIyNjNkMTc3MDdhY2E5MTJjZDZkMGIzNTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYlBy
ZWZlcmVuY2VzRGVmYXVsdFZhbHVlc0NvY29hLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0
ICJjb25maWcuaCIKICNpbXBvcnQgIldlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oIgogCi0j
aWYgUExBVEZPUk0oQ09DT0EpICYmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCisjaWYgUExB
VEZPUk0oQ09DT0EpCiAKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNCdW5kbGUuaD4KIApAQCAtMzgs
MjIgKzM4LDMxIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogLy8gQmVjYXVzZSBvZiA8cmRhcjov
L3Byb2JsZW0vNjA2MDgwMDg+LCBXZWJLaXQgaGFzIHRvIHBhcnNlIHRoZSBmZWF0dXJlIGZsYWdz
IHBsaXN0IGZpbGUKLWJvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiBmZWF0
dXJlTmFtZSkKK2Jvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiBmZWF0dXJl
TmFtZSwgYm9vbCBkZWZhdWx0VmFsdWUpCiB7Ci0gICAgc3RhdGljIGJvb2wgaXNXZWJLaXRCdW5k
bGVGcm9tU3RhZ2VkRnJhbWV3b3JrID0gW10gewotICAgICAgICBOU0J1bmRsZSAqd2Via2l0MkJ1
bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpOU0NsYXNzRnJvbVN0cmluZyhAIldLV2Vi
VmlldyIpXTsKLSAgICAgICAgcmV0dXJuIFt3ZWJraXQyQnVuZGxlLmJ1bmRsZVBhdGggaGFzUHJl
Zml4OkAiL0xpYnJhcnkvQXBwbGUvU3lzdGVtL0xpYnJhcnkvU3RhZ2VkRnJhbWV3b3Jrcy9TYWZh
cmkvIl07CisjaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKKworI2lmIFBMQVRGT1JNKE1B
QykKKyAgICBzdGF0aWMgYm9vbCBpc1N5c3RlbVdlYktpdCA9IFtdIHsKKyAgICAgICAgTlNCdW5k
bGUgKmJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpOU0NsYXNzRnJvbVN0cmluZyhA
IldLV2ViVmlldyIpXTsKKyAgICAgICAgcmV0dXJuIFtidW5kbGUuYnVuZGxlUGF0aCBoYXNQcmVm
aXg6QCIvU3lzdGVtLyJdOwogICAgIH0oKTsKIAotICAgIGlmICghaXNXZWJLaXRCdW5kbGVGcm9t
U3RhZ2VkRnJhbWV3b3JrKQotICAgICAgICByZXR1cm4gX29zX2ZlYXR1cmVfZW5hYmxlZF9pbXBs
KCJXZWJLaXQiLCAoY29uc3QgY2hhciopZmVhdHVyZU5hbWUudXRmOCgpLmRhdGEoKSk7CisgICAg
aWYgKGlzU3lzdGVtV2ViS2l0KQorICAgICAgICByZXR1cm4gX29zX2ZlYXR1cmVfZW5hYmxlZF9p
bXBsKCJXZWJLaXQiLCAoY29uc3QgY2hhciopZmVhdHVyZU5hbWUuY2hhcmFjdGVyczgoKSk7CisK
KyAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVmYXVs
dFZhbHVlKTsKKyAgICByZXR1cm4gX29zX2ZlYXR1cmVfZW5hYmxlZF9pbXBsKCJXZWJLaXQiLCAo
Y29uc3QgY2hhciopZmVhdHVyZU5hbWUuY2hhcmFjdGVyczgoKSk7CisjZW5kaWYgLy8gUExBVEZP
Uk0oTUFDKQogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxOU0RpY3Rpb25h
cnk+PiBkaWN0aW9uYXJ5ID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aENvbnRlbnRzT2ZG
aWxlOkAiL0xpYnJhcnkvQXBwbGUvU3lzdGVtL0xpYnJhcnkvRmVhdHVyZUZsYWdzL0RvbWFpbi9X
ZWJLaXQucGxpc3QiXTsKKyNlbHNlCiAKLSAgICBpZiAoIVtbZGljdGlvbmFyeS5nZXQoKSBvYmpl
Y3RGb3JLZXk6ZmVhdHVyZU5hbWVdIG9iamVjdEZvcktleTpAIkVuYWJsZWQiXSkKLSAgICAgICAg
cmV0dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNoYXIqKWZl
YXR1cmVOYW1lLmNoYXJhY3RlcnM4KCkpOworICAgIFVOVVNFRF9QQVJBTShmZWF0dXJlTmFtZSk7
CisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKIAotICAgIHJldHVybiBbW1tkaWN0aW9uYXJ5Lmdl
dCgpIG9iamVjdEZvcktleTpmZWF0dXJlTmFtZV0gb2JqZWN0Rm9yS2V5OkAiRW5hYmxlZCJdIGlz
S2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0gJiYgW1tbZGljdGlvbmFyeS5nZXQoKSBvYmpl
Y3RGb3JLZXk6ZmVhdHVyZU5hbWVdIG9iamVjdEZvcktleTpAIkVuYWJsZWQiXSBib29sVmFsdWVd
OworI2VuZGlmIC8vIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNEZWZhdWx0VmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
RGVmYXVsdFZhbHVlcy5jcHAKaW5kZXggYWZhZmUzYzdlNTMzMDYyNGVhODQ2ZWJhMDc1YmYyODU1
YTBhMjM3ZS4uNWNjYTZjM2VkMzZjOTc2YWVjNzliYWIxYmMxOGM5Yzc5Mjc2OWYzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMu
Y3BwCkBAIC00MSw2ICs0MSwxMyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorI2lmICFQTEFU
Rk9STShDT0NPQSkKK2Jvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiwgYm9v
bCBkZWZhdWx0VmFsdWUpCit7CisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKK30KKyNlbmRpZgor
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogYm9vbCBkZWZhdWx0UGFzc2l2ZVRvdWNoTGlz
dGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCgpCkBAIC0xMDgsMTUgKzExNSwxMyBAQCBzdGF0aWMg
Ym9vbCBkZWZhdWx0QXN5bmNGcmFtZUFuZE92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCgpCiAgICAg
cmV0dXJuIHRydWU7CiAjZW5kaWYKIAotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0g
ICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJhc3luY19mcmFtZV9hbmRfb3ZlcmZsb3df
c2Nyb2xsaW5nIik7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1BQykKLSAgICByZXR1cm4gdHJ1
ZTsKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IHRydWU7CisjZWxzZQorICAgIGJvb2wgZGVmYXVs
dFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKIAotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4g
aXNGZWF0dXJlRmxhZ0VuYWJsZWQoImFzeW5jX2ZyYW1lX2FuZF9vdmVyZmxvd19zY3JvbGxpbmci
LCBkZWZhdWx0VmFsdWUpOwogfQogCiBib29sIGRlZmF1bHRBc3luY0ZyYW1lU2Nyb2xsaW5nRW5h
YmxlZCgpCkBAIC0xNTAsNDkgKzE1NSwzMyBAQCBib29sIGRlZmF1bHRPZmZsaW5lV2ViQXBwbGlj
YXRpb25DYWNoZUVuYWJsZWQoKQogYm9vbCBkZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvckNhbnZhc1Jl
bmRlcmluZ0VuYWJsZWQoKQogewogI2lmIEVOQUJMRShHUFVfUFJPQ0VTU19CWV9ERUZBVUxUKQot
I2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdF
bmFibGVkKCJncHVfcHJvY2Vzc19jYW52YXNfcmVuZGVyaW5nIik7CisgICAgYm9vbCBkZWZhdWx0
VmFsdWUgPSB0cnVlOwogI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBIQVZFKFNZ
U1RFTV9GRUFUVVJFX0ZMQUdTKQotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBk
ZWZhdWx0VmFsdWUgPSBmYWxzZTsKICNlbmRpZgorCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdF
bmFibGVkKCJncHVfcHJvY2Vzc19jYW52YXNfcmVuZGVyaW5nIiwgZGVmYXVsdFZhbHVlKTsKIH0K
IAogYm9vbCBkZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvckRPTVJlbmRlcmluZ0VuYWJsZWQoKQogewot
I2lmIEVOQUJMRShHUFVfUFJPQ0VTU19CWV9ERUZBVUxUKQotI2lmIEhBVkUoU1lTVEVNX0ZFQVRV
UkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc19k
b21fcmVuZGVyaW5nIik7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZiAvLyBIQVZF
KFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYK
KyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX2RvbV9yZW5kZXJp
bmciLCBmYWxzZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJs
ZWQoKQogewogI2lmIEVOQUJMRShHUFVfUFJPQ0VTU19CWV9ERUZBVUxUKQotI2lmIEhBVkUoU1lT
VEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVf
cHJvY2Vzc19tZWRpYSIpOwotI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBIQVZF
KFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQorICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNl
bHNlCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAj
ZW5kaWYKKworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfbWVk
aWEiLCBkZWZhdWx0VmFsdWUpOwogfQogCiBib29sIGRlZmF1bHRVc2VHUFVQcm9jZXNzRm9yV2Vi
R0xFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVy
biBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2ViZ2wiKTsKLSNlbmRpZgotCi0g
ICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3By
b2Nlc3Nfd2ViZ2wiLCBmYWxzZSk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CkBAIC0yMDIsMTkgKzE5MSwxNSBAQCBib29sIGRlZmF1bHRVc2VHUFVQcm9jZXNzRm9yV2ViR0xF
bmFibGVkKCkKIGJvb2wgZGVmYXVsdENhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQoKQog
ewogI2lmIEVOQUJMRShHUFVfUFJPQ0VTU19CWV9ERUZBVUxUKQorICAgIGJvb2wgZGVmYXVsdFZh
bHVlID0gdHJ1ZTsKKyNlbHNlCisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSBmYWxzZTsKKyNlbmRp
ZgogCi0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKICNpZiBQTEFURk9STShNQUMpCi0g
ICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc193ZWJydGMiKTsKKyAg
ICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYnJ0YyIsIGRlZmF1
bHRWYWx1ZSk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHJldHVybiBpc0ZlYXR1
cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfbWVkaWEiKTsKLSNlbmRpZgotI2Vsc2UKLSAgICBy
ZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotCi0jZWxz
ZQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdw
dV9wcm9jZXNzX21lZGlhIiwgZGVmYXVsdFZhbHVlKTsKICNlbmRpZgogfQogCkBAIC0yMzAsMTQg
KzIxNSwxMiBAQCBib29sIGRlZmF1bHRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzc0VuYWJsZWQoKQog
Ym9vbCBkZWZhdWx0Q2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxlZCgpCiB7CiAjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTX0JZX0RFRkFVTFQpCi0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFH
UykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYnJ0YyIp
OwotI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFUVVJF
X0ZMQUdTKQorICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNlbHNlCi0gICAgcmV0dXJu
IGZhbHNlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKKworICAgIHJl
dHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIiwgZGVmYXVsdFZh
bHVlKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCkBAIC0yNDcsMzkgKzIz
MCwzMyBAQCBib29sIGRlZmF1bHRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkKCkKIGJv
b2wgZGVmYXVsdFdlYlJUQ0NvZGVjc0luR1BVUHJvY2VzcygpCiB7CiAjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTX0JZX0RFRkFVTFQpCi0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICBy
ZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYnJ0YyIpOwotI2Vsc2UK
LSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQor
ICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwor
ICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKKworICAgIHJldHVybiBpc0Zl
YXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIiwgZGVmYXVsdFZhbHVlKTsKIH0K
IAogI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQogCiBib29sIGRlZmF1bHRJbkFwcEJyb3dzZXJQ
cml2YWN5KCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgiSW5BcHBCcm93c2VyUHJpdmFjeSIpOwotI2VuZGlmCi0KLSAg
ICByZXR1cm4gZmFsc2U7CisgICAgLy8gVE9ETzogZG91YmxlIGNoZWNrCisgICAgcmV0dXJuIGlz
RmVhdHVyZUZsYWdFbmFibGVkKCJJbkFwcEJyb3dzZXJQcml2YWN5IiwgZmFsc2UpOwogfQogCiAj
aWYgSEFWRShJTkNSRU1FTlRBTF9QREZfQVBJUykKIGJvb2wgZGVmYXVsdEluY3JlbWVudGFsUERG
RW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4g
aXNGZWF0dXJlRmxhZ0VuYWJsZWQoImluY3JlbWVudGFsX3BkZiIpOwotI2VuZGlmCi0KICNpZiBQ
TEFURk9STShNQUMpCi0gICAgcmV0dXJuIHRydWU7CisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSB0
cnVlOwogI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSBm
YWxzZTsKICNlbmRpZgorCisgICAgLy8gVE9ETzogZG91YmxlIGNoZWNrCisgICAgcmV0dXJuIGlz
RmVhdHVyZUZsYWdFbmFibGVkKCJpbmNyZW1lbnRhbF9wZGYiLCBkZWZhdWx0VmFsdWUpOwogfQog
I2VuZGlmCiAKQEAgLTMwMCwxNSArMjc3LDEzIEBAIGJvb2wgZGVmYXVsdFdlYlhSRW5hYmxlZCgp
CiAKIGJvb2wgZGVmYXVsdFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZ
U1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgid2Vi
bV9mb3JtYXRfcmVhZGVyIik7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1BQykKLSAgICByZXR1
cm4gdHJ1ZTsKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IHRydWU7CiAjZWxzZQotICAgIHJldHVy
biBmYWxzZTsKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IGZhbHNlOwogI2VuZGlmCisKKyAgICBy
ZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fZm9ybWF0X3JlYWRlciIsIGRlZmF1bHRW
YWx1ZSk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCTV9GT1JNQVRfUkVBREVSKQpAQCAtMzE3
LDI5ICsyOTIsMTkgQEAgYm9vbCBkZWZhdWx0V2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKQogCiBi
b29sIGRlZmF1bHRWUDhEZWNvZGVyRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVS
RV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoInZwOF9kZWNvZGVyIik7
Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBUT0RPOiBkb3VibGUgY2hlY2sK
KyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoInZwOF9kZWNvZGVyIiwgZmFsc2UpOwog
fQogCiBib29sIGRlZmF1bHRWUDlEZWNvZGVyRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1f
RkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoInZwOV9kZWNv
ZGVyIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBpc0ZlYXR1cmVG
bGFnRW5hYmxlZCgidnA5X2RlY29kZXIiLCB0cnVlKTsKIH0KIAogYm9vbCBkZWZhdWx0VlA5U1dE
ZWNvZGVyRW5hYmxlZE9uQmF0dGVyeSgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFH
UykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoInN3X3ZwOV9kZWNvZGVyX29uX2Jh
dHRlcnkiKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIC8vIFRPRE86IGRvdWJs
ZSBjaGVjaworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgic3dfdnA5X2RlY29kZXJf
b25fYmF0dGVyeSIsIGZhbHNlKTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoVlA5KQogCkBAIC0zNDcs
MjAgKzMxMiwxMyBAQCBib29sIGRlZmF1bHRWUDlTV0RlY29kZXJFbmFibGVkT25CYXR0ZXJ5KCkK
IAogYm9vbCBkZWZhdWx0V2ViTVBhcnNlckVuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZF
QVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX3BhcnNl
ciIpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxh
Z0VuYWJsZWQoIndlYm1fcGFyc2VyIiwgdHJ1ZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFdlYk1XZWJB
dWRpb0VuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0
dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX3dlYmF1ZGlvIik7Ci0jZW5kaWYKLQotICAg
IHJldHVybiBmYWxzZTsKKyAgICAvLyBUT0RPOiBkb3VibGUgY2hlY2sKKyAgICByZXR1cm4gaXNG
ZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fd2ViYXVkaW8iLCBmYWxzZSk7CiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU09VUkNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaAppbmRleCBlNmZmMTgzNjBiMmJkYjA4ZWNmMTZmYThm
YmRlOTQwOTg5NmM1NDU3Li4xMGNmM2I2ZGQzNzZjYzNlZTA1N2IxMTIxNWQ5OGNlZDlkYTNiNzU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRW
YWx1ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRW
YWx1ZXMuaApAQCAtMzUsOSArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotI2lmIEhB
VkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi1ib29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0
IFN0cmluZyYpOwotI2VuZGlmCitib29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmlu
ZyYsIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2UpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKIGJvb2wgZGVmYXVsdFBhc3NpdmVUb3VjaExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXNEZWZhdWx0VmFsdWVzLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCmluZGV4IGQwOGNiY2JlY2YzNGVjNTE3ZjI0M2Q5
ZDA1YWI4MmQwM2U2NTE3NjEuLjkyMWZjNTRhOTA3MjdmMjRhYmYwN2M4ZGVlZTA5OGI2MjJlOTQ1
MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXNEZWZhdWx0VmFsdWVzLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaApAQCAtMzUsOCArMzUsOCBAQAogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBIQVZFKFNZU1RFTV9GRUFU
VVJFX0ZMQUdTKQotYm9vbCBpc0ZlYXR1cmVGbGFnRW5hYmxlZChjb25zdCBTdHJpbmcmKTsKKyNp
ZiBQTEFURk9STShDT0NPQSkKK2Jvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5n
JiwgYm9vbCBkZWZhdWx0VmFsdWUgPSBmYWxzZSk7CiAjZW5kaWYKIAogI2lmIEhBVkUoSU5DUkVN
RU5UQUxfUERGX0FQSVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tCmluZGV4IDlhOTRkNjVk
ODVkMTc3Yjc3NzJiNzljMzg3ODQ4YWQ0YzcyNzVmZGMuLjZhMzU2NzdiZjA5YTZkNGUyNmJkMmRj
YTVkYTRmMTkwZmRkNmU2ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tCkBAIC00Miwy
MiArNDIsMzQgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLSNpZiBQTEFURk9STShDT0NPQSkg
JiYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKKyNpZiBQTEFURk9STShDT0NPQSkKIAogLy8g
QmVjYXVzZSBvZiA8cmRhcjovL3Byb2JsZW0vNjA2MDgwMDg+LCBXZWJLaXQgaGFzIHRvIHBhcnNl
IHRoZSBmZWF0dXJlIGZsYWdzIHBsaXN0IGZpbGUKLWJvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQo
Y29uc3QgU3RyaW5nJiBmZWF0dXJlTmFtZSkKK2Jvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29u
c3QgU3RyaW5nJiBmZWF0dXJlTmFtZSwgYm9vbCBkZWZhdWx0VmFsdWUpCiB7Ci0gICAgQk9PTCBp
c1dlYktpdEJ1bmRsZUZyb21TdGFnZWRGcmFtZXdvcmsgPSBbW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBidW5kbGVQYXRoXSBoYXNQcmVmaXg6QCIvTGlicmFyeS9BcHBsZS9TeXN0ZW0vTGlicmFyeS9T
dGFnZWRGcmFtZXdvcmtzL1dlYktpdCJdOwotCi0gICAgaWYgKCFpc1dlYktpdEJ1bmRsZUZyb21T
dGFnZWRGcmFtZXdvcmspCi0gICAgICAgIHJldHVybiBfb3NfZmVhdHVyZV9lbmFibGVkX2ltcGwo
IldlYktpdCIsIChjb25zdCBjaGFyKilmZWF0dXJlTmFtZS51dGY4KCkuZGF0YSgpKTsKKyNpZiBI
QVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJl
dGFpblB0cjxOU0RpY3Rpb25hcnk+PiBkaWN0aW9uYXJ5ID0gW05TRGljdGlvbmFyeSBkaWN0aW9u
YXJ5V2l0aENvbnRlbnRzT2ZGaWxlOkAiL0xpYnJhcnkvQXBwbGUvU3lzdGVtL0xpYnJhcnkvRmVh
dHVyZUZsYWdzL0RvbWFpbi9XZWJLaXQucGxpc3QiXTsKKyNpZiBQTEFURk9STShNQUMpCisgICAg
c3RhdGljIGJvb2wgaXNTeXN0ZW1XZWJLaXQgPSBbXSB7CisgICAgICAgIE5TQnVuZGxlICpidW5k
bGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZp
ZXciKV07CisgICAgICAgIHJldHVybiBbYnVuZGxlLmJ1bmRsZVBhdGggaGFzUHJlZml4OkAiL1N5
c3RlbS8iXTsKKyAgICB9KCk7CiAKLSAgICBpZiAoIVtbZGljdGlvbmFyeS5nZXQoKSBvYmplY3RG
b3JLZXk6ZmVhdHVyZU5hbWVdIG9iamVjdEZvcktleTpAIkVuYWJsZWQiXSkKKyAgICBpZiAoaXNT
eXN0ZW1XZWJLaXQpCiAgICAgICAgIHJldHVybiBfb3NfZmVhdHVyZV9lbmFibGVkX2ltcGwoIldl
YktpdCIsIChjb25zdCBjaGFyKilmZWF0dXJlTmFtZS5jaGFyYWN0ZXJzOCgpKTsKIAotICAgIHJl
dHVybiBbW1tkaWN0aW9uYXJ5LmdldCgpIG9iamVjdEZvcktleTpmZWF0dXJlTmFtZV0gb2JqZWN0
Rm9yS2V5OkAiRW5hYmxlZCJdIGlzS2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0gJiYgW1tb
ZGljdGlvbmFyeS5nZXQoKSBvYmplY3RGb3JLZXk6ZmVhdHVyZU5hbWVdIG9iamVjdEZvcktleTpA
IkVuYWJsZWQiXSBib29sVmFsdWVdOworICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0VmFsdWUpOworICAgIHJldHVybiBfb3NfZmVhdHVyZV9l
bmFibGVkX2ltcGwoIldlYktpdCIsIChjb25zdCBjaGFyKilmZWF0dXJlTmFtZS5jaGFyYWN0ZXJz
OCgpKTsKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCisKKyNlbHNlCisKKyAgICBVTlVTRURfUEFS
QU0oZmVhdHVyZU5hbWUpOworICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisKKyNlbmRpZiAvLyBI
QVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQogfQogCiAjZW5kaWYKQEAgLTY2LDExICs3OCw4IEBA
IGJvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiBmZWF0dXJlTmFtZSkKIAog
Ym9vbCBkZWZhdWx0SW5jcmVtZW50YWxQREZFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9G
RUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiaW5jcmVtZW50
YWxfcGRmIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBUT0RPOiBkb3Vi
bGUgY2hlY2sKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImluY3JlbWVudGFsX3Bk
ZiIsIGZhbHNlKTsKIH0KIAogI2VuZGlmCkBAIC03OSwxMSArODgsOCBAQCBib29sIGRlZmF1bHRJ
bmNyZW1lbnRhbFBERkVuYWJsZWQoKQogCiBib29sIGRlZmF1bHRXZWJYUkVuYWJsZWQoKQogewot
I2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdF
bmFibGVkKCJXZWJYUiIpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gVE9E
TzogZG91YmxlIGNoZWNrCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJXZWJYUiIs
IGZhbHNlKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKQEAgLTI3OCwyMCArMjg0LDEy
IEBAIGJvb2wgZGVmYXVsdFdoZWVsRXZlbnRHZXN0dXJlc0JlY29tZU5vbkJsb2NraW5nKCkKIAog
Ym9vbCBkZWZhdWx0V2ViTVBhcnNlckVuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRV
UkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX3BhcnNlciIp
OwotI2VuZGlmCi0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0Vu
YWJsZWQoIndlYm1fcGFyc2VyIiwgdHJ1ZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFdlYk1XZWJBdWRp
b0VuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJu
IGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX3dlYmF1ZGlvIik7Ci0jZW5kaWYKLQotICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fd2ViYXVk
aW8iLCBmYWxzZSk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAtMzAw
LDIwICsyOTgsMTIgQEAgYm9vbCBkZWZhdWx0V2ViTVdlYkF1ZGlvRW5hYmxlZCgpCiAKIGJvb2wg
ZGVmYXVsdFZQOERlY29kZXJFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZM
QUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgidnA4X2RlY29kZXIiKTsKLSNl
bmRpZgotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxl
ZCgidnA4X2RlY29kZXIiLCBmYWxzZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFZQOURlY29kZXJFbmFi
bGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0Zl
YXR1cmVGbGFnRW5hYmxlZCgidnA5X2RlY29kZXIiKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIHRy
dWU7CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ2cDlfZGVjb2RlciIsIHRydWUp
OwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFZQOSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434964</attachid>
            <date>2021-08-04 22:47:28 -0700</date>
            <delta_ts>2021-08-05 10:07:00 -0700</delta_ts>
            <desc>Update change logs</desc>
            <filename>bug-228803-20210804224727.patch</filename>
            <type>text/plain</type>
            <size>18093</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYyNTJlNDU5ZGNmMmFhOTZm
MDc1ZDMwMjJlMjIxNGYzMjY3NjMyZjYuLjBmY2IyZmU3YjYzYjAzMGE3ODFlMDU5N2E2YTE4MGY5
MGFjNWE5ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjEtMDgtMDQgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIENsZWFuIHVwIEZlYXR1
cmUgRmxhZ3MgcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjg4MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxMTQyOTgyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uIG1hY09T
LCBTYWZhcmkgVGVjaG5vbG9neSBQcmV2aWV3IG9yIGEgbG9jYWwgYnVpbGQgV2ViS2l0L1NhZmFy
aSB3aWxsIGFsd2F5cworICAgICAgICBnZXQgdGhlIGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMg
dGhyb3VnaCB0aGUgIkZlYXR1cmUgRmxhZ3MiIFNQSS4gVW5mb3J0dW5hdGVseSwKKyAgICAgICAg
dGhpcyBhcHByb2FjaCB3b24ndCB3b3JrIGlmIHRoZSBPUyBkb2VzIG5vdCBwcm92aWRlIGNvcnJl
Y3QgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcy4KKworICAgICAgICBXaXRoIHRoaXMgcGF0Y2gs
IHdlIG9ubHkgZ2V0IGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMgd2l0aCB0aGUgU1BJIGZvciBz
eXN0ZW0KKyAgICAgICAgV2ViS2l0IG9uIG1hY09TLiBGb3IgYWxsIG90aGVyIGNhc2VzLCB3ZSB1
c2UgaGFyZGNvZGVkIHZhbHVlcy4gU28gdGhhdAorICAgICAgICBXZWJLaXQgd2lsbCBhbHdheXMg
Z2V0IHRoZSBjb3JyZWN0IGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMuCisKKyAgICAgICAgKiBT
aGFyZWQvQ29jb2EvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OmlzRmVhdHVyZUZsYWdFbmFibGVkKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJl
ZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6aXNGZWF0dXJlRmxh
Z0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0QXN5bmNGcmFtZUFuZE92ZXJmbG93
U2Nyb2xsaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRVc2VHUFVQcm9jZXNz
Rm9yQ2FudmFzUmVuZGVyaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRVc2VH
UFVQcm9jZXNzRm9yRE9NUmVuZGVyaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1
bHRVc2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVs
dFVzZUdQVVByb2Nlc3NGb3JXZWJHTEVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0
Q2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1
bHRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVm
YXVsdFdlYlJUQ0NvZGVjc0luR1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRJ
bkFwcEJyb3dzZXJQcml2YWN5KToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdEluY3JlbWVudGFs
UERGRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXZWJNRm9ybWF0UmVhZGVyRW5h
YmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRWUDhEZWNvZGVyRW5hYmxlZCk6CisgICAg
ICAgIChXZWJLaXQ6OmRlZmF1bHRWUDlEZWNvZGVyRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6
OmRlZmF1bHRWUDlTV0RlY29kZXJFbmFibGVkT25CYXR0ZXJ5KToKKyAgICAgICAgKFdlYktpdDo6
ZGVmYXVsdFdlYk1QYXJzZXJFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFdlYk1X
ZWJBdWRpb0VuYWJsZWQpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRW
YWx1ZXMuaDoKKwogMjAyMS0wOC0wMiAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgog
CiAgICAgICAgIFtHUFVQXSBSZW1vdGVBdWRpb1Nlc3Npb246OnNldFByZWZlcnJlZEJ1ZmZlclNp
emUoKSBkb2VzIG5vdCBjaGFuZ2UgaXRzIHByZWZlcnJlZEJ1ZmZlclNpemUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwppbmRleCAwZGZmNDM4YzEyMDc1N2YzNjNlMDBkYjgzMjQ3MzVmNTVlMGEx
YjljLi4xMWE2YWM3MzRjNzQ5NjQxZTI2NTEzMzdiYjVjMzczMzk0ZDk5MTYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjEtMDgtMDQgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIENsZWFuIHVwIEZlYXR1
cmUgRmxhZ3MgcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjg4MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxMTQyOTgyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uIG1hY09T
LCBTYWZhcmkgVGVjaG5vbG9neSBQcmV2aWV3IG9yIGEgbG9jYWwgYnVpbGQgV2ViS2l0L1NhZmFy
aSB3aWxsIGFsd2F5cworICAgICAgICBnZXQgdGhlIGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMg
dGhyb3VnaCB0aGUgIkZlYXR1cmUgRmxhZ3MiIFNQSS4gVW5mb3J0dW5hdGVseSwKKyAgICAgICAg
dGhpcyBhcHByb2FjaCB3b24ndCB3b3JrIGlmIHRoZSBPUyBkb2VzIG5vdCBwcm92aWRlIGNvcnJl
Y3QgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcy4KKworICAgICAgICBXaXRoIHRoaXMgcGF0Y2gs
IHdlIG9ubHkgZ2V0IGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMgd2l0aCB0aGUgU1BJIGZvciBz
eXN0ZW0KKyAgICAgICAgV2ViS2l0IG9uIG1hY09TLiBGb3IgYWxsIG90aGVyIGNhc2VzLCB3ZSB1
c2UgaGFyZGNvZGVkIHZhbHVlcy4gU28gdGhhdAorICAgICAgICBXZWJLaXQgd2lsbCBhbHdheXMg
Z2V0IHRoZSBjb3JyZWN0IGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMuCisKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oOgorICAgICAgICAqIFdlYlZpZXcv
V2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tOgorICAgICAgICAoV2ViS2l0Ojppc0ZlYXR1
cmVGbGFnRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRJbmNyZW1lbnRhbFBERkVu
YWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0V2ViWFJFbmFibGVkKToKKyAgICAgICAg
KFdlYktpdDo6ZGVmYXVsdFdlYk1QYXJzZXJFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVm
YXVsdFdlYk1XZWJBdWRpb0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0VlA4RGVj
b2RlckVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0VlA5RGVjb2RlckVuYWJsZWQp
OgorCiAyMDIxLTA3LTI5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CiAKICAgICAgICAgU3RvcCBidWlsZGluZyBXZWJHUFUgYW5kIHRoZSBXSExTTCBjb21waWxlciB0
byBkZWNyZWFzZSBiaW5hcnkgc2l6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Q29jb2EvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNDb2NvYS5tbQppbmRleCBj
ZGIzNjNhOGY4YTAzYmEzNTYzNDkwMWE0ODliMDA1ZjM4OWE5MjNjLi4wYWNmOTYwNDgwZTJlOTJi
MjYzZDE3NzA3YWNhOTEyY2Q2ZDBiMzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db2NvYS9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNDb2NvYS5tbQpA
QCAtMjYsNyArMjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJXZWJQcmVmZXJl
bmNlc0RlZmF1bHRWYWx1ZXMuaCIKIAotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBIQVZFKFNZU1RF
TV9GRUFUVVJFX0ZMQUdTKQorI2lmIFBMQVRGT1JNKENPQ09BKQogCiAjaW1wb3J0IDxGb3VuZGF0
aW9uL05TQnVuZGxlLmg+CiAKQEAgLTM4LDIyICszOCwzMSBAQAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIC8vIEJlY2F1c2Ugb2YgPHJkYXI6Ly9wcm9ibGVtLzYwNjA4MDA4PiwgV2ViS2l0IGhhcyB0
byBwYXJzZSB0aGUgZmVhdHVyZSBmbGFncyBwbGlzdCBmaWxlCi1ib29sIGlzRmVhdHVyZUZsYWdF
bmFibGVkKGNvbnN0IFN0cmluZyYgZmVhdHVyZU5hbWUpCitib29sIGlzRmVhdHVyZUZsYWdFbmFi
bGVkKGNvbnN0IFN0cmluZyYgZmVhdHVyZU5hbWUsIGJvb2wgZGVmYXVsdFZhbHVlKQogewotICAg
IHN0YXRpYyBib29sIGlzV2ViS2l0QnVuZGxlRnJvbVN0YWdlZEZyYW1ld29yayA9IFtdIHsKLSAg
ICAgICAgTlNCdW5kbGUgKndlYmtpdDJCdW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6
TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07Ci0gICAgICAgIHJldHVybiBbd2Via2l0
MkJ1bmRsZS5idW5kbGVQYXRoIGhhc1ByZWZpeDpAIi9MaWJyYXJ5L0FwcGxlL1N5c3RlbS9MaWJy
YXJ5L1N0YWdlZEZyYW1ld29ya3MvU2FmYXJpLyJdOworI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVf
RkxBR1MpCisKKyNpZiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIGJvb2wgaXNTeXN0ZW1XZWJL
aXQgPSBbXSB7CisgICAgICAgIE5TQnVuZGxlICpidW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9y
Q2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07CisgICAgICAgIHJldHVybiBb
YnVuZGxlLmJ1bmRsZVBhdGggaGFzUHJlZml4OkAiL1N5c3RlbS8iXTsKICAgICB9KCk7CiAKLSAg
ICBpZiAoIWlzV2ViS2l0QnVuZGxlRnJvbVN0YWdlZEZyYW1ld29yaykKLSAgICAgICAgcmV0dXJu
IF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNoYXIqKWZlYXR1cmVO
YW1lLnV0ZjgoKS5kYXRhKCkpOworICAgIGlmIChpc1N5c3RlbVdlYktpdCkKKyAgICAgICAgcmV0
dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNoYXIqKWZlYXR1
cmVOYW1lLmNoYXJhY3RlcnM4KCkpOworCisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRWYWx1ZSk7CisgICAgcmV0dXJuIF9vc19mZWF0dXJl
X2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNoYXIqKWZlYXR1cmVOYW1lLmNoYXJhY3Rl
cnM4KCkpOworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5Pj4gZGljdGlvbmFyeSA9IFtOU0RpY3Rpb25hcnkg
ZGljdGlvbmFyeVdpdGhDb250ZW50c09mRmlsZTpAIi9MaWJyYXJ5L0FwcGxlL1N5c3RlbS9MaWJy
YXJ5L0ZlYXR1cmVGbGFncy9Eb21haW4vV2ViS2l0LnBsaXN0Il07CisjZWxzZQogCi0gICAgaWYg
KCFbW2RpY3Rpb25hcnkuZ2V0KCkgb2JqZWN0Rm9yS2V5OmZlYXR1cmVOYW1lXSBvYmplY3RGb3JL
ZXk6QCJFbmFibGVkIl0pCi0gICAgICAgIHJldHVybiBfb3NfZmVhdHVyZV9lbmFibGVkX2ltcGwo
IldlYktpdCIsIChjb25zdCBjaGFyKilmZWF0dXJlTmFtZS5jaGFyYWN0ZXJzOCgpKTsKKyAgICBV
TlVTRURfUEFSQU0oZmVhdHVyZU5hbWUpOworICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CiAKLSAg
ICByZXR1cm4gW1tbZGljdGlvbmFyeS5nZXQoKSBvYmplY3RGb3JLZXk6ZmVhdHVyZU5hbWVdIG9i
amVjdEZvcktleTpAIkVuYWJsZWQiXSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dICYm
IFtbW2RpY3Rpb25hcnkuZ2V0KCkgb2JqZWN0Rm9yS2V5OmZlYXR1cmVOYW1lXSBvYmplY3RGb3JL
ZXk6QCJFbmFibGVkIl0gYm9vbFZhbHVlXTsKKyNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFUVVJF
X0ZMQUdTKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwCmluZGV4IGFmYWZlM2M3
ZTUzMzA2MjRlYTg0NmViYTA3NWJmMjg1NWEwYTIzN2UuLmRmNTlkYzE4MTg3YjEyNmI1MWNiM2U2
OGQ0NGM0OWI5ZjBkMTIwNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcApAQCAtNDEsNiArNDEsMTMgQEAKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCitib29sIGlzRmVhdHVyZUZsYWdF
bmFibGVkKGNvbnN0IFN0cmluZyYsIGJvb2wgZGVmYXVsdFZhbHVlKQoreworICAgIHJldHVybiBk
ZWZhdWx0VmFsdWU7Cit9CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKIGJv
b2wgZGVmYXVsdFBhc3NpdmVUb3VjaExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQoKQpAQCAt
MTA4LDE1ICsxMTUsMTMgQEAgc3RhdGljIGJvb2wgZGVmYXVsdEFzeW5jRnJhbWVBbmRPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQoKQogICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAKLSNpZiBIQVZF
KFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgi
YXN5bmNfZnJhbWVfYW5kX292ZXJmbG93X3Njcm9sbGluZyIpOwotI2VuZGlmCi0KICNpZiBQTEFU
Rk9STShNQUMpCi0gICAgcmV0dXJuIHRydWU7CisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSB0cnVl
OworI2Vsc2UKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IGZhbHNlOwogI2VuZGlmCiAKLSAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJhc3luY19mcmFt
ZV9hbmRfb3ZlcmZsb3dfc2Nyb2xsaW5nIiwgZGVmYXVsdFZhbHVlKTsKIH0KIAogYm9vbCBkZWZh
dWx0QXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQoKQpAQCAtMTUwLDQ5ICsxNTUsMzMgQEAgYm9v
bCBkZWZhdWx0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCkKIGJvb2wgZGVmYXVs
dFVzZUdQVVByb2Nlc3NGb3JDYW52YXNSZW5kZXJpbmdFbmFibGVkKCkKIHsKICNpZiBFTkFCTEUo
R1BVX1BST0NFU1NfQllfREVGQVVMVCkKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQot
ICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfY2FudmFzX3JlbmRl
cmluZyIpOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNlbHNlCi0gICAgcmV0dXJu
IHRydWU7Ci0jZW5kaWYgLy8gSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSNlbHNlCi0gICAg
cmV0dXJuIGZhbHNlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKKwor
ICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfY2FudmFzX3JlbmRl
cmluZyIsIGRlZmF1bHRWYWx1ZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JE
T01SZW5kZXJpbmdFbmFibGVkKCkKIHsKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1NfQllfREVGQVVM
VCkKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVG
bGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfZG9tX3JlbmRlcmluZyIpOwotI2Vsc2UKLSAgICByZXR1
cm4gZmFsc2U7Ci0jZW5kaWYgLy8gSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSNlbHNlCi0g
ICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVk
KCJncHVfcHJvY2Vzc19kb21fcmVuZGVyaW5nIiwgZmFsc2UpOwogfQogCiBib29sIGRlZmF1bHRV
c2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkKCkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Nf
QllfREVGQVVMVCkKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfbWVkaWEiKTsKLSNlbHNlCi0gICAgcmV0
dXJuIHRydWU7Ci0jZW5kaWYgLy8gSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKKyAgICBib29s
IGRlZmF1bHRWYWx1ZSA9IHRydWU7CiAjZWxzZQotICAgIHJldHVybiBmYWxzZTsKKyAgICBib29s
IGRlZmF1bHRWYWx1ZSA9IGZhbHNlOwogI2VuZGlmCisKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxh
Z0VuYWJsZWQoImdwdV9wcm9jZXNzX21lZGlhIiwgZGVmYXVsdFZhbHVlKTsKIH0KIAogYm9vbCBk
ZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1f
RkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9j
ZXNzX3dlYmdsIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gaXNG
ZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYmdsIiwgZmFsc2UpOwogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpAQCAtMjAyLDE5ICsxOTEsMTcgQEAgYm9vbCBkZWZh
dWx0VXNlR1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZCgpCiBib29sIGRlZmF1bHRDYXB0dXJlQXVk
aW9JbkdQVVByb2Nlc3NFbmFibGVkKCkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1NfQllfREVG
QVVMVCkKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IHRydWU7CisjZWxzZQorICAgIGJvb2wgZGVm
YXVsdFZhbHVlID0gZmFsc2U7CisjZW5kaWYKIAotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxB
R1MpCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgi
Z3B1X3Byb2Nlc3Nfd2VicnRjIik7CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJn
cHVfcHJvY2Vzc193ZWJydGMiLCBkZWZhdWx0VmFsdWUpOwogI2VsaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX21lZGlh
Iik7Ci0jZW5kaWYKLSNlbHNlCi0gICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYgLy8gSEFWRShTWVNU
RU1fRkVBVFVSRV9GTEFHUykKLQorICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1
X3Byb2Nlc3NfbWVkaWEiLCBkZWZhdWx0VmFsdWUpOwogI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKICNlbmRpZgogfQogCkBAIC0yMzAsMTQgKzIxNywx
MiBAQCBib29sIGRlZmF1bHRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzc0VuYWJsZWQoKQogYm9vbCBk
ZWZhdWx0Q2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxlZCgpCiB7CiAjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTX0JZX0RFRkFVTFQpCi0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAg
ICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYnJ0YyIpOwotI2Vs
c2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdT
KQorICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNlbHNlCi0gICAgcmV0dXJuIGZhbHNl
OworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKKworICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIiwgZGVmYXVsdFZhbHVlKTsK
IH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCkBAIC0yNDcsMzkgKzIzMiwzMyBA
QCBib29sIGRlZmF1bHRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkKCkKIGJvb2wgZGVm
YXVsdFdlYlJUQ0NvZGVjc0luR1BVUHJvY2VzcygpCiB7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
X0JZX0RFRkFVTFQpCi0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4g
aXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYnJ0YyIpOworICAgIGJvb2wgZGVm
YXVsdFZhbHVlID0gdHJ1ZTsKICNlbHNlCi0gICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYgLy8gSEFW
RShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGJv
b2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKKworICAgIHJldHVybiBpc0ZlYXR1cmVG
bGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIiwgZGVmYXVsdFZhbHVlKTsKIH0KIAogI2Vu
ZGlmIC8vIEVOQUJMRShXRUJfUlRDKQogCiBib29sIGRlZmF1bHRJbkFwcEJyb3dzZXJQcml2YWN5
KCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1
cmVGbGFnRW5hYmxlZCgiSW5BcHBCcm93c2VyUHJpdmFjeSIpOwotI2VuZGlmCi0KLSAgICByZXR1
cm4gZmFsc2U7CisgICAgLy8gVE9ETzogZG91YmxlIGNoZWNrCisgICAgcmV0dXJuIGlzRmVhdHVy
ZUZsYWdFbmFibGVkKCJJbkFwcEJyb3dzZXJQcml2YWN5IiwgZmFsc2UpOwogfQogCiAjaWYgSEFW
RShJTkNSRU1FTlRBTF9QREZfQVBJUykKIGJvb2wgZGVmYXVsdEluY3JlbWVudGFsUERGRW5hYmxl
ZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0
dXJlRmxhZ0VuYWJsZWQoImluY3JlbWVudGFsX3BkZiIpOwotI2VuZGlmCi0KICNpZiBQTEFURk9S
TShNQUMpCi0gICAgcmV0dXJuIHRydWU7CisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSB0cnVlOwog
I2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSBmYWxzZTsK
ICNlbmRpZgorCisgICAgLy8gVE9ETzogZG91YmxlIGNoZWNrCisgICAgcmV0dXJuIGlzRmVhdHVy
ZUZsYWdFbmFibGVkKCJpbmNyZW1lbnRhbF9wZGYiLCBkZWZhdWx0VmFsdWUpOwogfQogI2VuZGlm
CiAKQEAgLTMwMCwxNSArMjc5LDEzIEBAIGJvb2wgZGVmYXVsdFdlYlhSRW5hYmxlZCgpCiAKIGJv
b2wgZGVmYXVsdFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9G
RUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgid2VibV9mb3Jt
YXRfcmVhZGVyIik7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1BQykKLSAgICByZXR1cm4gdHJ1
ZTsKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IHRydWU7CiAjZWxzZQotICAgIHJldHVybiBmYWxz
ZTsKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IGZhbHNlOwogI2VuZGlmCisKKyAgICByZXR1cm4g
aXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fZm9ybWF0X3JlYWRlciIsIGRlZmF1bHRWYWx1ZSk7
CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCTV9GT1JNQVRfUkVBREVSKQpAQCAtMzE3LDI5ICsy
OTQsMTkgQEAgYm9vbCBkZWZhdWx0V2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKQogCiBib29sIGRl
ZmF1bHRWUDhEZWNvZGVyRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFH
UykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoInZwOF9kZWNvZGVyIik7Ci0jZW5k
aWYKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBUT0RPOiBkb3VibGUgY2hlY2sKKyAgICBy
ZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoInZwOF9kZWNvZGVyIiwgZmFsc2UpOwogfQogCiBi
b29sIGRlZmF1bHRWUDlEZWNvZGVyRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVS
RV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoInZwOV9kZWNvZGVyIik7
Ci0jZW5kaWYKLQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5h
YmxlZCgidnA5X2RlY29kZXIiLCB0cnVlKTsKIH0KIAogYm9vbCBkZWZhdWx0VlA5U1dEZWNvZGVy
RW5hYmxlZE9uQmF0dGVyeSgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAg
ICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoInN3X3ZwOV9kZWNvZGVyX29uX2JhdHRlcnki
KTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIC8vIFRPRE86IGRvdWJsZSBjaGVj
aworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgic3dfdnA5X2RlY29kZXJfb25fYmF0
dGVyeSIsIGZhbHNlKTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoVlA5KQogCkBAIC0zNDcsMjAgKzMx
NCwxMyBAQCBib29sIGRlZmF1bHRWUDlTV0RlY29kZXJFbmFibGVkT25CYXR0ZXJ5KCkKIAogYm9v
bCBkZWZhdWx0V2ViTVBhcnNlckVuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVf
RkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX3BhcnNlciIpOwot
I2VuZGlmCi0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJs
ZWQoIndlYm1fcGFyc2VyIiwgdHJ1ZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFdlYk1XZWJBdWRpb0Vu
YWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlz
RmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX3dlYmF1ZGlvIik7Ci0jZW5kaWYKLQotICAgIHJldHVy
biBmYWxzZTsKKyAgICAvLyBUT0RPOiBkb3VibGUgY2hlY2sKKyAgICByZXR1cm4gaXNGZWF0dXJl
RmxhZ0VuYWJsZWQoIndlYm1fd2ViYXVkaW8iLCBmYWxzZSk7CiB9CiAKICNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfU09VUkNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlc0RlZmF1bHRWYWx1ZXMuaAppbmRleCBlNmZmMTgzNjBiMmJkYjA4ZWNmMTZmYThmYmRlOTQw
OTg5NmM1NDU3Li4xMGNmM2I2ZGQzNzZjYzNlZTA1N2IxMTIxNWQ5OGNlZDlkYTNiNzU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMu
aApAQCAtMzUsOSArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotI2lmIEhBVkUoU1lT
VEVNX0ZFQVRVUkVfRkxBR1MpCi1ib29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmlu
ZyYpOwotI2VuZGlmCitib29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYsIGJv
b2wgZGVmYXVsdFZhbHVlID0gZmFsc2UpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIGJv
b2wgZGVmYXVsdFBhc3NpdmVUb3VjaExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNE
ZWZhdWx0VmFsdWVzLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzRGVmYXVsdFZhbHVlcy5oCmluZGV4IGQwOGNiY2JlY2YzNGVjNTE3ZjI0M2Q5ZDA1YWI4
MmQwM2U2NTE3NjEuLjkyMWZjNTRhOTA3MjdmMjRhYmYwN2M4ZGVlZTA5OGI2MjJlOTQ1MzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNE
ZWZhdWx0VmFsdWVzLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaApAQCAtMzUsOCArMzUsOCBAQAogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZM
QUdTKQotYm9vbCBpc0ZlYXR1cmVGbGFnRW5hYmxlZChjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFU
Rk9STShDT0NPQSkKK2Jvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiwgYm9v
bCBkZWZhdWx0VmFsdWUgPSBmYWxzZSk7CiAjZW5kaWYKIAogI2lmIEhBVkUoSU5DUkVNRU5UQUxf
UERGX0FQSVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tCmluZGV4IDlhOTRkNjVkODVkMTc3
Yjc3NzJiNzljMzg3ODQ4YWQ0YzcyNzVmZGMuLjZhMzU2NzdiZjA5YTZkNGUyNmJkMmRjYTVkYTRm
MTkwZmRkNmU2ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tCkBAIC00MiwyMiArNDIs
MzQgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgSEFW
RShTWVNURU1fRkVBVFVSRV9GTEFHUykKKyNpZiBQTEFURk9STShDT0NPQSkKIAogLy8gQmVjYXVz
ZSBvZiA8cmRhcjovL3Byb2JsZW0vNjA2MDgwMDg+LCBXZWJLaXQgaGFzIHRvIHBhcnNlIHRoZSBm
ZWF0dXJlIGZsYWdzIHBsaXN0IGZpbGUKLWJvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3Qg
U3RyaW5nJiBmZWF0dXJlTmFtZSkKK2Jvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3Ry
aW5nJiBmZWF0dXJlTmFtZSwgYm9vbCBkZWZhdWx0VmFsdWUpCiB7Ci0gICAgQk9PTCBpc1dlYktp
dEJ1bmRsZUZyb21TdGFnZWRGcmFtZXdvcmsgPSBbW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5k
bGVQYXRoXSBoYXNQcmVmaXg6QCIvTGlicmFyeS9BcHBsZS9TeXN0ZW0vTGlicmFyeS9TdGFnZWRG
cmFtZXdvcmtzL1dlYktpdCJdOwotCi0gICAgaWYgKCFpc1dlYktpdEJ1bmRsZUZyb21TdGFnZWRG
cmFtZXdvcmspCi0gICAgICAgIHJldHVybiBfb3NfZmVhdHVyZV9lbmFibGVkX2ltcGwoIldlYktp
dCIsIChjb25zdCBjaGFyKilmZWF0dXJlTmFtZS51dGY4KCkuZGF0YSgpKTsKKyNpZiBIQVZFKFNZ
U1RFTV9GRUFUVVJFX0ZMQUdTKQogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0
cjxOU0RpY3Rpb25hcnk+PiBkaWN0aW9uYXJ5ID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0
aENvbnRlbnRzT2ZGaWxlOkAiL0xpYnJhcnkvQXBwbGUvU3lzdGVtL0xpYnJhcnkvRmVhdHVyZUZs
YWdzL0RvbWFpbi9XZWJLaXQucGxpc3QiXTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgc3RhdGlj
IGJvb2wgaXNTeXN0ZW1XZWJLaXQgPSBbXSB7CisgICAgICAgIE5TQnVuZGxlICpidW5kbGUgPSBb
TlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07
CisgICAgICAgIHJldHVybiBbYnVuZGxlLmJ1bmRsZVBhdGggaGFzUHJlZml4OkAiL1N5c3RlbS8i
XTsKKyAgICB9KCk7CiAKLSAgICBpZiAoIVtbZGljdGlvbmFyeS5nZXQoKSBvYmplY3RGb3JLZXk6
ZmVhdHVyZU5hbWVdIG9iamVjdEZvcktleTpAIkVuYWJsZWQiXSkKKyAgICBpZiAoaXNTeXN0ZW1X
ZWJLaXQpCiAgICAgICAgIHJldHVybiBfb3NfZmVhdHVyZV9lbmFibGVkX2ltcGwoIldlYktpdCIs
IChjb25zdCBjaGFyKilmZWF0dXJlTmFtZS5jaGFyYWN0ZXJzOCgpKTsKIAotICAgIHJldHVybiBb
W1tkaWN0aW9uYXJ5LmdldCgpIG9iamVjdEZvcktleTpmZWF0dXJlTmFtZV0gb2JqZWN0Rm9yS2V5
OkAiRW5hYmxlZCJdIGlzS2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0gJiYgW1tbZGljdGlv
bmFyeS5nZXQoKSBvYmplY3RGb3JLZXk6ZmVhdHVyZU5hbWVdIG9iamVjdEZvcktleTpAIkVuYWJs
ZWQiXSBib29sVmFsdWVdOworICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisjZWxzZQorICAgIFVO
VVNFRF9QQVJBTShkZWZhdWx0VmFsdWUpOworICAgIHJldHVybiBfb3NfZmVhdHVyZV9lbmFibGVk
X2ltcGwoIldlYktpdCIsIChjb25zdCBjaGFyKilmZWF0dXJlTmFtZS5jaGFyYWN0ZXJzOCgpKTsK
KyNlbmRpZiAvLyBQTEFURk9STShNQUMpCisKKyNlbHNlCisKKyAgICBVTlVTRURfUEFSQU0oZmVh
dHVyZU5hbWUpOworICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisKKyNlbmRpZiAvLyBIQVZFKFNZ
U1RFTV9GRUFUVVJFX0ZMQUdTKQogfQogCiAjZW5kaWYKQEAgLTY2LDExICs3OCw4IEBAIGJvb2wg
aXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiBmZWF0dXJlTmFtZSkKIAogYm9vbCBk
ZWZhdWx0SW5jcmVtZW50YWxQREZFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJF
X0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiaW5jcmVtZW50YWxfcGRm
Iik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBUT0RPOiBkb3VibGUgY2hl
Y2sKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImluY3JlbWVudGFsX3BkZiIsIGZh
bHNlKTsKIH0KIAogI2VuZGlmCkBAIC03OSwxMSArODgsOCBAQCBib29sIGRlZmF1bHRJbmNyZW1l
bnRhbFBERkVuYWJsZWQoKQogCiBib29sIGRlZmF1bHRXZWJYUkVuYWJsZWQoKQogewotI2lmIEhB
VkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVk
KCJXZWJYUiIpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gVE9ETzogZG91
YmxlIGNoZWNrCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJXZWJYUiIsIGZhbHNl
KTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKQEAgLTI3OCwyMCArMjg0LDEyIEBAIGJv
b2wgZGVmYXVsdFdoZWVsRXZlbnRHZXN0dXJlc0JlY29tZU5vbkJsb2NraW5nKCkKIAogYm9vbCBk
ZWZhdWx0V2ViTVBhcnNlckVuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxB
R1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX3BhcnNlciIpOwotI2Vu
ZGlmCi0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQo
IndlYm1fcGFyc2VyIiwgdHJ1ZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFdlYk1XZWJBdWRpb0VuYWJs
ZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVh
dHVyZUZsYWdFbmFibGVkKCJ3ZWJtX3dlYmF1ZGlvIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBm
YWxzZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fd2ViYXVkaW8iLCBm
YWxzZSk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAtMzAwLDIwICsy
OTgsMTIgQEAgYm9vbCBkZWZhdWx0V2ViTVdlYkF1ZGlvRW5hYmxlZCgpCiAKIGJvb2wgZGVmYXVs
dFZQOERlY29kZXJFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQot
ICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgidnA4X2RlY29kZXIiKTsKLSNlbmRpZgot
Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgidnA4
X2RlY29kZXIiLCBmYWxzZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFZQOURlY29kZXJFbmFibGVkKCkK
IHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVG
bGFnRW5hYmxlZCgidnA5X2RlY29kZXIiKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIHRydWU7Cisg
ICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ2cDlfZGVjb2RlciIsIHRydWUpOwogfQog
CiAjZW5kaWYgLy8gRU5BQkxFKFZQOSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434999</attachid>
            <date>2021-08-05 10:07:02 -0700</date>
            <delta_ts>2021-08-05 11:04:38 -0700</delta_ts>
            <desc>Fix a layout test failure</desc>
            <filename>bug-228803-20210805100701.patch</filename>
            <type>text/plain</type>
            <size>19847</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYyNTJlNDU5ZGNmMmFhOTZm
MDc1ZDMwMjJlMjIxNGYzMjY3NjMyZjYuLjg0OGJhMTQ0MjIzMDJlYmVjY2M4ZjhjZTJmMGRiOWU4
N2RmZGM3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjEtMDgtMDUgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIENsZWFuIHVwIEZlYXR1
cmUgRmxhZ3MgcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjg4MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxMTQyOTgyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uIG1hY09T
LCBTYWZhcmkgVGVjaG5vbG9neSBQcmV2aWV3IG9yIGEgbG9jYWwgYnVpbGQgV2ViS2l0L1NhZmFy
aSB3aWxsIGFsd2F5cworICAgICAgICBnZXQgdGhlIGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMg
dGhyb3VnaCB0aGUgIkZlYXR1cmUgRmxhZ3MiIFNQSS4gVW5mb3J0dW5hdGVseSwKKyAgICAgICAg
dGhpcyBhcHByb2FjaCB3b24ndCB3b3JrIGlmIHRoZSBPUyBkb2VzIG5vdCBwcm92aWRlIGNvcnJl
Y3QgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcy4KKworICAgICAgICBXaXRoIHRoaXMgcGF0Y2gs
IHdlIG9ubHkgZ2V0IGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMgd2l0aCB0aGUgU1BJIGZvciBz
eXN0ZW0KKyAgICAgICAgV2ViS2l0IG9uIG1hY09TLiBGb3IgYWxsIG90aGVyIGNhc2VzLCB3ZSB1
c2UgaGFyZGNvZGVkIHZhbHVlcy4gU28gdGhhdAorICAgICAgICBXZWJLaXQgd2lsbCBhbHdheXMg
Z2V0IHRoZSBjb3JyZWN0IGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMuCisKKyAgICAgICAgKiBT
aGFyZWQvQ29jb2EvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OmlzRmVhdHVyZUZsYWdFbmFibGVkKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJl
ZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6aXNGZWF0dXJlRmxh
Z0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0QXN5bmNGcmFtZUFuZE92ZXJmbG93
U2Nyb2xsaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRVc2VHUFVQcm9jZXNz
Rm9yQ2FudmFzUmVuZGVyaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRVc2VH
UFVQcm9jZXNzRm9yRE9NUmVuZGVyaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1
bHRVc2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVs
dFVzZUdQVVByb2Nlc3NGb3JXZWJHTEVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0
Q2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1
bHRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVm
YXVsdFdlYlJUQ0NvZGVjc0luR1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRJ
bkFwcEJyb3dzZXJQcml2YWN5KToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdEluY3JlbWVudGFs
UERGRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXZWJNRm9ybWF0UmVhZGVyRW5h
YmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRWUDhEZWNvZGVyRW5hYmxlZCk6CisgICAg
ICAgIChXZWJLaXQ6OmRlZmF1bHRWUDlEZWNvZGVyRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6
OmRlZmF1bHRWUDlTV0RlY29kZXJFbmFibGVkT25CYXR0ZXJ5KToKKyAgICAgICAgKFdlYktpdDo6
ZGVmYXVsdFdlYk1QYXJzZXJFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFdlYk1X
ZWJBdWRpb0VuYWJsZWQpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRW
YWx1ZXMuaDoKKwogMjAyMS0wOC0wMiAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgog
CiAgICAgICAgIFtHUFVQXSBSZW1vdGVBdWRpb1Nlc3Npb246OnNldFByZWZlcnJlZEJ1ZmZlclNp
emUoKSBkb2VzIG5vdCBjaGFuZ2UgaXRzIHByZWZlcnJlZEJ1ZmZlclNpemUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwppbmRleCAwZGZmNDM4YzEyMDc1N2YzNjNlMDBkYjgzMjQ3MzVmNTVlMGEx
YjljLi5iNDVkYzgzNGNhYTI5Mjg2NDc4OTU2YzFiMzY5MzdlMmRhYjQwNzMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjEtMDgtMDUgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIENsZWFuIHVwIEZlYXR1
cmUgRmxhZ3MgcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjg4MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxMTQyOTgyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uIG1hY09T
LCBTYWZhcmkgVGVjaG5vbG9neSBQcmV2aWV3IG9yIGEgbG9jYWwgYnVpbGQgV2ViS2l0L1NhZmFy
aSB3aWxsIGFsd2F5cworICAgICAgICBnZXQgdGhlIGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMg
dGhyb3VnaCB0aGUgIkZlYXR1cmUgRmxhZ3MiIFNQSS4gVW5mb3J0dW5hdGVseSwKKyAgICAgICAg
dGhpcyBhcHByb2FjaCB3b24ndCB3b3JrIGlmIHRoZSBPUyBkb2VzIG5vdCBwcm92aWRlIGNvcnJl
Y3QgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcy4KKworICAgICAgICBXaXRoIHRoaXMgcGF0Y2gs
IHdlIG9ubHkgZ2V0IGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMgd2l0aCB0aGUgU1BJIGZvciBz
eXN0ZW0KKyAgICAgICAgV2ViS2l0IG9uIG1hY09TLiBGb3IgYWxsIG90aGVyIGNhc2VzLCB3ZSB1
c2UgaGFyZGNvZGVkIHZhbHVlcy4gU28gdGhhdAorICAgICAgICBXZWJLaXQgd2lsbCBhbHdheXMg
Z2V0IHRoZSBjb3JyZWN0IGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMuCisKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oOgorICAgICAgICAqIFdlYlZpZXcv
V2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tOgorICAgICAgICAoV2ViS2l0Ojppc0ZlYXR1
cmVGbGFnRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRJbmNyZW1lbnRhbFBERkVu
YWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0V2ViWFJFbmFibGVkKToKKyAgICAgICAg
KFdlYktpdDo6ZGVmYXVsdFdlYk1QYXJzZXJFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVm
YXVsdFdlYk1XZWJBdWRpb0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0VlA4RGVj
b2RlckVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0VlA5RGVjb2RlckVuYWJsZWQp
OgorCiAyMDIxLTA3LTI5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CiAKICAgICAgICAgU3RvcCBidWlsZGluZyBXZWJHUFUgYW5kIHRoZSBXSExTTCBjb21waWxlciB0
byBkZWNyZWFzZSBiaW5hcnkgc2l6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Q29jb2EvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNDb2NvYS5tbQppbmRleCBj
ZGIzNjNhOGY4YTAzYmEzNTYzNDkwMWE0ODliMDA1ZjM4OWE5MjNjLi4wYWNmOTYwNDgwZTJlOTJi
MjYzZDE3NzA3YWNhOTEyY2Q2ZDBiMzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db2NvYS9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNDb2NvYS5tbQpA
QCAtMjYsNyArMjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJXZWJQcmVmZXJl
bmNlc0RlZmF1bHRWYWx1ZXMuaCIKIAotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBIQVZFKFNZU1RF
TV9GRUFUVVJFX0ZMQUdTKQorI2lmIFBMQVRGT1JNKENPQ09BKQogCiAjaW1wb3J0IDxGb3VuZGF0
aW9uL05TQnVuZGxlLmg+CiAKQEAgLTM4LDIyICszOCwzMSBAQAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIC8vIEJlY2F1c2Ugb2YgPHJkYXI6Ly9wcm9ibGVtLzYwNjA4MDA4PiwgV2ViS2l0IGhhcyB0
byBwYXJzZSB0aGUgZmVhdHVyZSBmbGFncyBwbGlzdCBmaWxlCi1ib29sIGlzRmVhdHVyZUZsYWdF
bmFibGVkKGNvbnN0IFN0cmluZyYgZmVhdHVyZU5hbWUpCitib29sIGlzRmVhdHVyZUZsYWdFbmFi
bGVkKGNvbnN0IFN0cmluZyYgZmVhdHVyZU5hbWUsIGJvb2wgZGVmYXVsdFZhbHVlKQogewotICAg
IHN0YXRpYyBib29sIGlzV2ViS2l0QnVuZGxlRnJvbVN0YWdlZEZyYW1ld29yayA9IFtdIHsKLSAg
ICAgICAgTlNCdW5kbGUgKndlYmtpdDJCdW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6
TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07Ci0gICAgICAgIHJldHVybiBbd2Via2l0
MkJ1bmRsZS5idW5kbGVQYXRoIGhhc1ByZWZpeDpAIi9MaWJyYXJ5L0FwcGxlL1N5c3RlbS9MaWJy
YXJ5L1N0YWdlZEZyYW1ld29ya3MvU2FmYXJpLyJdOworI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVf
RkxBR1MpCisKKyNpZiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIGJvb2wgaXNTeXN0ZW1XZWJL
aXQgPSBbXSB7CisgICAgICAgIE5TQnVuZGxlICpidW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9y
Q2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07CisgICAgICAgIHJldHVybiBb
YnVuZGxlLmJ1bmRsZVBhdGggaGFzUHJlZml4OkAiL1N5c3RlbS8iXTsKICAgICB9KCk7CiAKLSAg
ICBpZiAoIWlzV2ViS2l0QnVuZGxlRnJvbVN0YWdlZEZyYW1ld29yaykKLSAgICAgICAgcmV0dXJu
IF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNoYXIqKWZlYXR1cmVO
YW1lLnV0ZjgoKS5kYXRhKCkpOworICAgIGlmIChpc1N5c3RlbVdlYktpdCkKKyAgICAgICAgcmV0
dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNoYXIqKWZlYXR1
cmVOYW1lLmNoYXJhY3RlcnM4KCkpOworCisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRWYWx1ZSk7CisgICAgcmV0dXJuIF9vc19mZWF0dXJl
X2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNoYXIqKWZlYXR1cmVOYW1lLmNoYXJhY3Rl
cnM4KCkpOworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5Pj4gZGljdGlvbmFyeSA9IFtOU0RpY3Rpb25hcnkg
ZGljdGlvbmFyeVdpdGhDb250ZW50c09mRmlsZTpAIi9MaWJyYXJ5L0FwcGxlL1N5c3RlbS9MaWJy
YXJ5L0ZlYXR1cmVGbGFncy9Eb21haW4vV2ViS2l0LnBsaXN0Il07CisjZWxzZQogCi0gICAgaWYg
KCFbW2RpY3Rpb25hcnkuZ2V0KCkgb2JqZWN0Rm9yS2V5OmZlYXR1cmVOYW1lXSBvYmplY3RGb3JL
ZXk6QCJFbmFibGVkIl0pCi0gICAgICAgIHJldHVybiBfb3NfZmVhdHVyZV9lbmFibGVkX2ltcGwo
IldlYktpdCIsIChjb25zdCBjaGFyKilmZWF0dXJlTmFtZS5jaGFyYWN0ZXJzOCgpKTsKKyAgICBV
TlVTRURfUEFSQU0oZmVhdHVyZU5hbWUpOworICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CiAKLSAg
ICByZXR1cm4gW1tbZGljdGlvbmFyeS5nZXQoKSBvYmplY3RGb3JLZXk6ZmVhdHVyZU5hbWVdIG9i
amVjdEZvcktleTpAIkVuYWJsZWQiXSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dICYm
IFtbW2RpY3Rpb25hcnkuZ2V0KCkgb2JqZWN0Rm9yS2V5OmZlYXR1cmVOYW1lXSBvYmplY3RGb3JL
ZXk6QCJFbmFibGVkIl0gYm9vbFZhbHVlXTsKKyNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFUVVJF
X0ZMQUdTKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwCmluZGV4IGFmYWZlM2M3
ZTUzMzA2MjRlYTg0NmViYTA3NWJmMjg1NWEwYTIzN2UuLmVjMzA3MDgyMGZhZGZjNTUyNjdjOWYy
ZjRhYWI1ZDNmOWNhMzk0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcApAQCAtNDEsNiArNDEsMTMgQEAKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCitib29sIGlzRmVhdHVyZUZsYWdF
bmFibGVkKGNvbnN0IFN0cmluZyYsIGJvb2wgZGVmYXVsdFZhbHVlKQoreworICAgIHJldHVybiBk
ZWZhdWx0VmFsdWU7Cit9CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKIGJv
b2wgZGVmYXVsdFBhc3NpdmVUb3VjaExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQoKQpAQCAt
MTA4LDE1ICsxMTUsMTMgQEAgc3RhdGljIGJvb2wgZGVmYXVsdEFzeW5jRnJhbWVBbmRPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQoKQogICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAKLSNpZiBIQVZF
KFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgi
YXN5bmNfZnJhbWVfYW5kX292ZXJmbG93X3Njcm9sbGluZyIpOwotI2VuZGlmCi0KICNpZiBQTEFU
Rk9STShNQUMpCi0gICAgcmV0dXJuIHRydWU7CisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSB0cnVl
OworI2Vsc2UKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IGZhbHNlOwogI2VuZGlmCiAKLSAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJhc3luY19mcmFt
ZV9hbmRfb3ZlcmZsb3dfc2Nyb2xsaW5nIiwgZGVmYXVsdFZhbHVlKTsKIH0KIAogYm9vbCBkZWZh
dWx0QXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQoKQpAQCAtMTUwLDQ5ICsxNTUsMzMgQEAgYm9v
bCBkZWZhdWx0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCkKIGJvb2wgZGVmYXVs
dFVzZUdQVVByb2Nlc3NGb3JDYW52YXNSZW5kZXJpbmdFbmFibGVkKCkKIHsKICNpZiBFTkFCTEUo
R1BVX1BST0NFU1NfQllfREVGQVVMVCkKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQot
ICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfY2FudmFzX3JlbmRl
cmluZyIpOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNlbHNlCi0gICAgcmV0dXJu
IHRydWU7Ci0jZW5kaWYgLy8gSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSNlbHNlCi0gICAg
cmV0dXJuIGZhbHNlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKKwor
ICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfY2FudmFzX3JlbmRl
cmluZyIsIGRlZmF1bHRWYWx1ZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JE
T01SZW5kZXJpbmdFbmFibGVkKCkKIHsKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1NfQllfREVGQVVM
VCkKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVG
bGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfZG9tX3JlbmRlcmluZyIpOwotI2Vsc2UKLSAgICByZXR1
cm4gZmFsc2U7Ci0jZW5kaWYgLy8gSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSNlbHNlCi0g
ICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVk
KCJncHVfcHJvY2Vzc19kb21fcmVuZGVyaW5nIiwgZmFsc2UpOwogfQogCiBib29sIGRlZmF1bHRV
c2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkKCkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Nf
QllfREVGQVVMVCkKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfbWVkaWEiKTsKLSNlbHNlCi0gICAgcmV0
dXJuIHRydWU7Ci0jZW5kaWYgLy8gSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKKyAgICBib29s
IGRlZmF1bHRWYWx1ZSA9IHRydWU7CiAjZWxzZQotICAgIHJldHVybiBmYWxzZTsKKyAgICBib29s
IGRlZmF1bHRWYWx1ZSA9IGZhbHNlOwogI2VuZGlmCisKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxh
Z0VuYWJsZWQoImdwdV9wcm9jZXNzX21lZGlhIiwgZGVmYXVsdFZhbHVlKTsKIH0KIAogYm9vbCBk
ZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1f
RkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9j
ZXNzX3dlYmdsIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gaXNG
ZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYmdsIiwgZmFsc2UpOwogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpAQCAtMjAyLDE5ICsxOTEsMTcgQEAgYm9vbCBkZWZh
dWx0VXNlR1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZCgpCiBib29sIGRlZmF1bHRDYXB0dXJlQXVk
aW9JbkdQVVByb2Nlc3NFbmFibGVkKCkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1NfQllfREVG
QVVMVCkKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IHRydWU7CisjZWxzZQorICAgIGJvb2wgZGVm
YXVsdFZhbHVlID0gZmFsc2U7CisjZW5kaWYKIAotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxB
R1MpCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgi
Z3B1X3Byb2Nlc3Nfd2VicnRjIik7CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJn
cHVfcHJvY2Vzc193ZWJydGMiLCBkZWZhdWx0VmFsdWUpOwogI2VsaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX21lZGlh
Iik7Ci0jZW5kaWYKLSNlbHNlCi0gICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYgLy8gSEFWRShTWVNU
RU1fRkVBVFVSRV9GTEFHUykKLQorICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1
X3Byb2Nlc3NfbWVkaWEiLCBkZWZhdWx0VmFsdWUpOwogI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKICNlbmRpZgogfQogCkBAIC0yMzAsMTQgKzIxNywx
MiBAQCBib29sIGRlZmF1bHRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzc0VuYWJsZWQoKQogYm9vbCBk
ZWZhdWx0Q2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxlZCgpCiB7CiAjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTX0JZX0RFRkFVTFQpCi0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAg
ICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYnJ0YyIpOwotI2Vs
c2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdT
KQorICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNlbHNlCi0gICAgcmV0dXJuIGZhbHNl
OworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKKworICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIiwgZGVmYXVsdFZhbHVlKTsK
IH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCkBAIC0yNDcsMzkgKzIzMiwzMSBA
QCBib29sIGRlZmF1bHRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkKCkKIGJvb2wgZGVm
YXVsdFdlYlJUQ0NvZGVjc0luR1BVUHJvY2VzcygpCiB7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
X0JZX0RFRkFVTFQpCi0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4g
aXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYnJ0YyIpOworICAgIGJvb2wgZGVm
YXVsdFZhbHVlID0gdHJ1ZTsKICNlbHNlCi0gICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYgLy8gSEFW
RShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGJv
b2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKKworICAgIHJldHVybiBpc0ZlYXR1cmVG
bGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIiwgZGVmYXVsdFZhbHVlKTsKIH0KIAogI2Vu
ZGlmIC8vIEVOQUJMRShXRUJfUlRDKQogCiBib29sIGRlZmF1bHRJbkFwcEJyb3dzZXJQcml2YWN5
KCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1
cmVGbGFnRW5hYmxlZCgiSW5BcHBCcm93c2VyUHJpdmFjeSIpOwotI2VuZGlmCi0KLSAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJJbkFwcEJyb3dzZXJQ
cml2YWN5IiwgZmFsc2UpOwogfQogCiAjaWYgSEFWRShJTkNSRU1FTlRBTF9QREZfQVBJUykKIGJv
b2wgZGVmYXVsdEluY3JlbWVudGFsUERGRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVB
VFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImluY3JlbWVudGFs
X3BkZiIpOwotI2VuZGlmCi0KICNpZiBQTEFURk9STShNQUMpCi0gICAgcmV0dXJuIHRydWU7Cisg
ICAgYm9vbCBkZWZhdWx0VmFsdWUgPSB0cnVlOwogI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Cisg
ICAgYm9vbCBkZWZhdWx0VmFsdWUgPSBmYWxzZTsKICNlbmRpZgorCisgICAgcmV0dXJuIGlzRmVh
dHVyZUZsYWdFbmFibGVkKCJpbmNyZW1lbnRhbF9wZGYiLCBkZWZhdWx0VmFsdWUpOwogfQogI2Vu
ZGlmCiAKQEAgLTMwMCwxNSArMjc3LDEzIEBAIGJvb2wgZGVmYXVsdFdlYlhSRW5hYmxlZCgpCiAK
IGJvb2wgZGVmYXVsdFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RF
TV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgid2VibV9m
b3JtYXRfcmVhZGVyIik7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1BQykKLSAgICByZXR1cm4g
dHJ1ZTsKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IHRydWU7CiAjZWxzZQotICAgIHJldHVybiBm
YWxzZTsKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IGZhbHNlOwogI2VuZGlmCisKKyAgICByZXR1
cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fZm9ybWF0X3JlYWRlciIsIGRlZmF1bHRWYWx1
ZSk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCTV9GT1JNQVRfUkVBREVSKQpAQCAtMzE3LDI5
ICsyOTIsMTcgQEAgYm9vbCBkZWZhdWx0V2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKQogCiBib29s
IGRlZmF1bHRWUDhEZWNvZGVyRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9G
TEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoInZwOF9kZWNvZGVyIik7Ci0j
ZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJs
ZWQoInZwOF9kZWNvZGVyIiwgZmFsc2UpOwogfQogCiBib29sIGRlZmF1bHRWUDlEZWNvZGVyRW5h
YmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNG
ZWF0dXJlRmxhZ0VuYWJsZWQoInZwOV9kZWNvZGVyIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiB0
cnVlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgidnA5X2RlY29kZXIiLCB0cnVl
KTsKIH0KIAogYm9vbCBkZWZhdWx0VlA5U1dEZWNvZGVyRW5hYmxlZE9uQmF0dGVyeSgpCiB7Ci0j
aWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0Vu
YWJsZWQoInN3X3ZwOV9kZWNvZGVyX29uX2JhdHRlcnkiKTsKLSNlbmRpZgotCi0gICAgcmV0dXJu
IGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgic3dfdnA5X2RlY29kZXJf
b25fYmF0dGVyeSIsIGZhbHNlKTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoVlA5KQogCkBAIC0zNDcs
MjAgKzMxMCwxMiBAQCBib29sIGRlZmF1bHRWUDlTV0RlY29kZXJFbmFibGVkT25CYXR0ZXJ5KCkK
IAogYm9vbCBkZWZhdWx0V2ViTVBhcnNlckVuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZF
QVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX3BhcnNl
ciIpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxh
Z0VuYWJsZWQoIndlYm1fcGFyc2VyIiwgdHJ1ZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFdlYk1XZWJB
dWRpb0VuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0
dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX3dlYmF1ZGlvIik7Ci0jZW5kaWYKLQotICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fd2Vi
YXVkaW8iLCBmYWxzZSk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU09VUkNFKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVz
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaApp
bmRleCBlNmZmMTgzNjBiMmJkYjA4ZWNmMTZmYThmYmRlOTQwOTg5NmM1NDU3Li4xMGNmM2I2ZGQz
NzZjYzNlZTA1N2IxMTIxNWQ5OGNlZDlkYTNiNzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaApAQCAtMzUsOSArMzUsNyBAQAog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi1i
b29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYpOwotI2VuZGlmCitib29sIGlz
RmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYsIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFs
c2UpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIGJvb2wgZGVmYXVsdFBhc3NpdmVUb3Vj
aExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5o
CmluZGV4IGQwOGNiY2JlY2YzNGVjNTE3ZjI0M2Q5ZDA1YWI4MmQwM2U2NTE3NjEuLjkyMWZjNTRh
OTA3MjdmMjRhYmYwN2M4ZGVlZTA5OGI2MjJlOTQ1MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXMuaApAQCAtMzUsOCArMzUsOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotYm9vbCBpc0ZlYXR1cmVG
bGFnRW5hYmxlZChjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFURk9STShDT0NPQSkKK2Jvb2wgaXNG
ZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiwgYm9vbCBkZWZhdWx0VmFsdWUgPSBmYWxz
ZSk7CiAjZW5kaWYKIAogI2lmIEhBVkUoSU5DUkVNRU5UQUxfUERGX0FQSVMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZh
bHVlcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNE
ZWZhdWx0VmFsdWVzLm1tCmluZGV4IDlhOTRkNjVkODVkMTc3Yjc3NzJiNzljMzg3ODQ4YWQ0Yzcy
NzVmZGMuLjhjNjJlYWI5OWU5NDk2OTM2NTRiZTgwY2M3OWVkZDRhNTVkOTQ0MTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0
VmFsdWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXNEZWZhdWx0VmFsdWVzLm1tCkBAIC00MiwyMiArNDIsMzQgQEAKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFH
UykKKyNpZiBQTEFURk9STShDT0NPQSkKIAogLy8gQmVjYXVzZSBvZiA8cmRhcjovL3Byb2JsZW0v
NjA2MDgwMDg+LCBXZWJLaXQgaGFzIHRvIHBhcnNlIHRoZSBmZWF0dXJlIGZsYWdzIHBsaXN0IGZp
bGUKLWJvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiBmZWF0dXJlTmFtZSkK
K2Jvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiBmZWF0dXJlTmFtZSwgYm9v
bCBkZWZhdWx0VmFsdWUpCiB7Ci0gICAgQk9PTCBpc1dlYktpdEJ1bmRsZUZyb21TdGFnZWRGcmFt
ZXdvcmsgPSBbW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVQYXRoXSBoYXNQcmVmaXg6QCIv
TGlicmFyeS9BcHBsZS9TeXN0ZW0vTGlicmFyeS9TdGFnZWRGcmFtZXdvcmtzL1dlYktpdCJdOwot
Ci0gICAgaWYgKCFpc1dlYktpdEJ1bmRsZUZyb21TdGFnZWRGcmFtZXdvcmspCi0gICAgICAgIHJl
dHVybiBfb3NfZmVhdHVyZV9lbmFibGVkX2ltcGwoIldlYktpdCIsIChjb25zdCBjaGFyKilmZWF0
dXJlTmFtZS51dGY4KCkuZGF0YSgpKTsKKyNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQog
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxOU0RpY3Rpb25hcnk+PiBkaWN0
aW9uYXJ5ID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aENvbnRlbnRzT2ZGaWxlOkAiL0xp
YnJhcnkvQXBwbGUvU3lzdGVtL0xpYnJhcnkvRmVhdHVyZUZsYWdzL0RvbWFpbi9XZWJLaXQucGxp
c3QiXTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIGJvb2wgaXNTeXN0ZW1XZWJLaXQg
PSBbXSB7CisgICAgICAgIE5TQnVuZGxlICpidW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xh
c3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07CisgICAgICAgIHJldHVybiBbYnVu
ZGxlLmJ1bmRsZVBhdGggaGFzUHJlZml4OkAiL1N5c3RlbS8iXTsKKyAgICB9KCk7CiAKLSAgICBp
ZiAoIVtbZGljdGlvbmFyeS5nZXQoKSBvYmplY3RGb3JLZXk6ZmVhdHVyZU5hbWVdIG9iamVjdEZv
cktleTpAIkVuYWJsZWQiXSkKKyAgICBpZiAoaXNTeXN0ZW1XZWJLaXQpCiAgICAgICAgIHJldHVy
biBfb3NfZmVhdHVyZV9lbmFibGVkX2ltcGwoIldlYktpdCIsIChjb25zdCBjaGFyKilmZWF0dXJl
TmFtZS5jaGFyYWN0ZXJzOCgpKTsKIAotICAgIHJldHVybiBbW1tkaWN0aW9uYXJ5LmdldCgpIG9i
amVjdEZvcktleTpmZWF0dXJlTmFtZV0gb2JqZWN0Rm9yS2V5OkAiRW5hYmxlZCJdIGlzS2luZE9m
Q2xhc3M6W05TTnVtYmVyIGNsYXNzXV0gJiYgW1tbZGljdGlvbmFyeS5nZXQoKSBvYmplY3RGb3JL
ZXk6ZmVhdHVyZU5hbWVdIG9iamVjdEZvcktleTpAIkVuYWJsZWQiXSBib29sVmFsdWVdOworICAg
IHJldHVybiBkZWZhdWx0VmFsdWU7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0VmFs
dWUpOworICAgIHJldHVybiBfb3NfZmVhdHVyZV9lbmFibGVkX2ltcGwoIldlYktpdCIsIChjb25z
dCBjaGFyKilmZWF0dXJlTmFtZS5jaGFyYWN0ZXJzOCgpKTsKKyNlbmRpZiAvLyBQTEFURk9STShN
QUMpCisKKyNlbHNlCisKKyAgICBVTlVTRURfUEFSQU0oZmVhdHVyZU5hbWUpOworICAgIHJldHVy
biBkZWZhdWx0VmFsdWU7CisKKyNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQog
fQogCiAjZW5kaWYKQEAgLTY2LDExICs3OCw3IEBAIGJvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQo
Y29uc3QgU3RyaW5nJiBmZWF0dXJlTmFtZSkKIAogYm9vbCBkZWZhdWx0SW5jcmVtZW50YWxQREZF
bmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgiaW5jcmVtZW50YWxfcGRmIik7Ci0jZW5kaWYKLQotICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImluY3JlbWVudGFs
X3BkZiIsIGZhbHNlKTsKIH0KIAogI2VuZGlmCkBAIC03OSwxMSArODcsNyBAQCBib29sIGRlZmF1
bHRJbmNyZW1lbnRhbFBERkVuYWJsZWQoKQogCiBib29sIGRlZmF1bHRXZWJYUkVuYWJsZWQoKQog
ewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZs
YWdFbmFibGVkKCJXZWJYUiIpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0
dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJXZWJYUiIsIGZhbHNlKTsKIH0KIAogI2VuZGlmIC8v
IEVOQUJMRShXRUJYUikKQEAgLTI3OCwyMCArMjgyLDEyIEBAIGJvb2wgZGVmYXVsdFdoZWVsRXZl
bnRHZXN0dXJlc0JlY29tZU5vbkJsb2NraW5nKCkKIAogYm9vbCBkZWZhdWx0V2ViTVBhcnNlckVu
YWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlz
RmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX3BhcnNlciIpOwotI2VuZGlmCi0KLSAgICByZXR1cm4g
dHJ1ZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fcGFyc2VyIiwgdHJ1
ZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFdlYk1XZWJBdWRpb0VuYWJsZWQoKQogewotI2lmIEhBVkUo
U1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3
ZWJtX3dlYmF1ZGlvIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4g
aXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fd2ViYXVkaW8iLCBmYWxzZSk7CiB9CiAKICNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAtMzAwLDIwICsyOTYsMTIgQEAgYm9vbCBkZWZh
dWx0V2ViTVdlYkF1ZGlvRW5hYmxlZCgpCiAKIGJvb2wgZGVmYXVsdFZQOERlY29kZXJFbmFibGVk
KCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1
cmVGbGFnRW5hYmxlZCgidnA4X2RlY29kZXIiKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIGZhbHNl
OworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgidnA4X2RlY29kZXIiLCBmYWxzZSk7
CiB9CiAKIGJvb2wgZGVmYXVsdFZQOURlY29kZXJFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RF
TV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgidnA5X2Rl
Y29kZXIiKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGlzRmVhdHVy
ZUZsYWdFbmFibGVkKCJ2cDlfZGVjb2RlciIsIHRydWUpOwogfQogCiAjZW5kaWYgLy8gRU5BQkxF
KFZQOSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAxOGRiYjM4M2ViY2YzODc4NzM5NmZkYzhmOGZjMzMwOWI2YTM2NzU3Li41
YTZiMDIyMzFiMjgyNjljNGQ0YTA0MzE5NzJlNWIyNzdkM2NmNGZjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMjEtMDgtMDUgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAg
ICAgICBbbWFjT1NdIENsZWFuIHVwIEZlYXR1cmUgRmxhZ3MgcmVsYXRlZCBjb2RlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg4MDMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgYSBtYWMtYmln
c3VyIHNwZWNpZmljIHRlc3QgZXhwZWN0YXRpb24gZmlsZSBiZWNhdXNlIHRoZSB0ZXN0IGlzIHBh
c3Npbmcgbm93LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjLWJpZ3N1ci9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1hZGRzb3VyY2VidWZm
ZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorCiAyMDIxLTA4LTAyICBKZWFuLVl2ZXMgQXZlbmFy
ZCAgPGp5YUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1ZGlvXSBBZGQgd2VibS92b3JiaXMg
Y29udGFpbmVyIHN1cHBvcnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1i
aWdzdXIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFz
b3VyY2UtYWRkc291cmNlYnVmZmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy1iaWdzdXIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2Uv
bWVkaWFzb3VyY2UtYWRkc291cmNlYnVmZmVyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOGUwMzMzOTZkZDBjMTVhYjU1MjJhN2ExN2JhNzQ5NzQzN2QwOTc5OC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtYmlnc3VyL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVk
aWEtc291cmNlL21lZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZlci1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0KLVBBU1MgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSBp
biAnZW5kZWQnIHN0YXRlLgotUEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggZW1wdHkg
dHlwZQotUEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggbnVsbAotUEFTUyBUZXN0IGFk
ZFNvdXJjZUJ1ZmZlcigpIHdpdGggdW5zdXBwb3J0ZWQgdHlwZQotRkFJTCBUZXN0IGFkZFNvdXJj
ZUJ1ZmZlcigpIHdpdGggVm9yYmlzIGFuZCBWUDggYXNzZXJ0X3RydWU6IHZpZGVvL3dlYm07Y29k
ZWNzPSJ2cDgsdm9yYmlzIiBpcyBzdXBwb3J0ZWQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRoIFZvcmJpcyBhbmQgVlA4IGluIHNlcGFyYXRl
IFNvdXJjZUJ1ZmZlcnMgYXNzZXJ0X3RydWU6IGF1ZGlvL3dlYm07Y29kZWNzPSJ2b3JiaXMiIGlz
IHN1cHBvcnRlZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotUEFTUyBUZXN0IGFkZFNvdXJjZUJ1
ZmZlcigpIHZpZGVvIG9ubHkKLVBBU1MgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSBhdWRpbyBvbmx5
Ci1QQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBBQUMgYW5kIEguMjY0Ci1QQVNTIFRl
c3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBBQUMgYW5kIEguMjY0IGluIHNlcGFyYXRlIFNvdXJj
ZUJ1ZmZlcnMKLQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435010</attachid>
            <date>2021-08-05 11:04:41 -0700</date>
            <delta_ts>2021-08-05 14:08:04 -0700</delta_ts>
            <desc>Revise the patch based on Kate&apos;s comment</desc>
            <filename>bug-228803-20210805110440.patch</filename>
            <type>text/plain</type>
            <size>20024</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYyNTJlNDU5ZGNmMmFhOTZm
MDc1ZDMwMjJlMjIxNGYzMjY3NjMyZjYuLjdiNmY2ZWIwZmI0OTZiNTgwMmM5ZjhjZTU3YjAxNzRh
ZjNhYmZiN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjEtMDgtMDUgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIENsZWFuIHVwIEZlYXR1
cmUgRmxhZ3MgcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjg4MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxMTQyOTgyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uIG1hY09T
LCBTYWZhcmkgVGVjaG5vbG9neSBQcmV2aWV3IG9yIGEgbG9jYWwgYnVpbGQgV2ViS2l0L1NhZmFy
aSB3aWxsIGFsd2F5cworICAgICAgICBnZXQgdGhlIGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMg
dGhyb3VnaCB0aGUgIkZlYXR1cmUgRmxhZ3MiIFNQSS4gVW5mb3J0dW5hdGVseSwKKyAgICAgICAg
dGhpcyBhcHByb2FjaCB3b24ndCB3b3JrIGlmIHRoZSBPUyBkb2VzIG5vdCBwcm92aWRlIGNvcnJl
Y3QgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcy4KKworICAgICAgICBXaXRoIHRoaXMgcGF0Y2gs
IHdlIG9ubHkgZ2V0IGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMgd2l0aCB0aGUgU1BJIGZvciBz
eXN0ZW0KKyAgICAgICAgV2ViS2l0IG9uIG1hY09TLiBGb3IgYWxsIG90aGVyIGNhc2VzLCB3ZSB1
c2UgaGFyZGNvZGVkIHZhbHVlcy4gU28gdGhhdAorICAgICAgICBXZWJLaXQgd2lsbCBhbHdheXMg
Z2V0IHRoZSBjb3JyZWN0IGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMuCisKKyAgICAgICAgKiBT
aGFyZWQvQ29jb2EvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OmlzRmVhdHVyZUZsYWdFbmFibGVkKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJl
ZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6aXNGZWF0dXJlRmxh
Z0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0QXN5bmNGcmFtZUFuZE92ZXJmbG93
U2Nyb2xsaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRVc2VHUFVQcm9jZXNz
Rm9yQ2FudmFzUmVuZGVyaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRVc2VH
UFVQcm9jZXNzRm9yRE9NUmVuZGVyaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1
bHRVc2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVs
dFVzZUdQVVByb2Nlc3NGb3JXZWJHTEVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0
Q2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1
bHRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVm
YXVsdFdlYlJUQ0NvZGVjc0luR1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRJ
bkFwcEJyb3dzZXJQcml2YWN5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdElu
Y3JlbWVudGFsUERGRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXZWJNRm9ybWF0
UmVhZGVyRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRWUDhEZWNvZGVyRW5hYmxl
ZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRWUDlEZWNvZGVyRW5hYmxlZCk6CisgICAgICAg
IChXZWJLaXQ6OmRlZmF1bHRWUDlTV0RlY29kZXJFbmFibGVkT25CYXR0ZXJ5KToKKyAgICAgICAg
KFdlYktpdDo6ZGVmYXVsdFdlYk1QYXJzZXJFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVm
YXVsdFdlYk1XZWJBdWRpb0VuYWJsZWQpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNl
c0RlZmF1bHRWYWx1ZXMuaDoKKwogMjAyMS0wOC0wMiAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBw
bGUuY29tPgogCiAgICAgICAgIFtHUFVQXSBSZW1vdGVBdWRpb1Nlc3Npb246OnNldFByZWZlcnJl
ZEJ1ZmZlclNpemUoKSBkb2VzIG5vdCBjaGFuZ2UgaXRzIHByZWZlcnJlZEJ1ZmZlclNpemUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAwZGZmNDM4YzEyMDc1N2YzNjNlMDBkYjgzMjQ3
MzVmNTVlMGExYjljLi5iNDVkYzgzNGNhYTI5Mjg2NDc4OTU2YzFiMzY5MzdlMmRhYjQwNzMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjEtMDgtMDUg
IFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIENsZWFu
IHVwIEZlYXR1cmUgRmxhZ3MgcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg4MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgx
MTQyOTgyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE9uIG1hY09TLCBTYWZhcmkgVGVjaG5vbG9neSBQcmV2aWV3IG9yIGEgbG9jYWwgYnVpbGQgV2Vi
S2l0L1NhZmFyaSB3aWxsIGFsd2F5cworICAgICAgICBnZXQgdGhlIGRlZmF1bHQgcHJlZmVyZW5j
ZSB2YWx1ZXMgdGhyb3VnaCB0aGUgIkZlYXR1cmUgRmxhZ3MiIFNQSS4gVW5mb3J0dW5hdGVseSwK
KyAgICAgICAgdGhpcyBhcHByb2FjaCB3b24ndCB3b3JrIGlmIHRoZSBPUyBkb2VzIG5vdCBwcm92
aWRlIGNvcnJlY3QgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcy4KKworICAgICAgICBXaXRoIHRo
aXMgcGF0Y2gsIHdlIG9ubHkgZ2V0IGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMgd2l0aCB0aGUg
U1BJIGZvciBzeXN0ZW0KKyAgICAgICAgV2ViS2l0IG9uIG1hY09TLiBGb3IgYWxsIG90aGVyIGNh
c2VzLCB3ZSB1c2UgaGFyZGNvZGVkIHZhbHVlcy4gU28gdGhhdAorICAgICAgICBXZWJLaXQgd2ls
bCBhbHdheXMgZ2V0IHRoZSBjb3JyZWN0IGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMuCisKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oOgorICAgICAgICAq
IFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tOgorICAgICAgICAoV2ViS2l0
Ojppc0ZlYXR1cmVGbGFnRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRJbmNyZW1l
bnRhbFBERkVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0V2ViWFJFbmFibGVkKToK
KyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFdlYk1QYXJzZXJFbmFibGVkKToKKyAgICAgICAgKFdl
YktpdDo6ZGVmYXVsdFdlYk1XZWJBdWRpb0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZh
dWx0VlA4RGVjb2RlckVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0VlA5RGVjb2Rl
ckVuYWJsZWQpOgorCiAyMDIxLTA3LTI5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBh
cHBsZS5jb20+CiAKICAgICAgICAgU3RvcCBidWlsZGluZyBXZWJHUFUgYW5kIHRoZSBXSExTTCBj
b21waWxlciB0byBkZWNyZWFzZSBiaW5hcnkgc2l6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQ29jb2EvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNDb2NvYS5t
bQppbmRleCBjZGIzNjNhOGY4YTAzYmEzNTYzNDkwMWE0ODliMDA1ZjM4OWE5MjNjLi4wYWNmOTYw
NDgwZTJlOTJiMjYzZDE3NzA3YWNhOTEyY2Q2ZDBiMzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db2NvYS9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXND
b2NvYS5tbQpAQCAtMjYsNyArMjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJX
ZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaCIKIAotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBI
QVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQorI2lmIFBMQVRGT1JNKENPQ09BKQogCiAjaW1wb3J0
IDxGb3VuZGF0aW9uL05TQnVuZGxlLmg+CiAKQEAgLTM4LDIyICszOCwzMSBAQAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIC8vIEJlY2F1c2Ugb2YgPHJkYXI6Ly9wcm9ibGVtLzYwNjA4MDA4PiwgV2Vi
S2l0IGhhcyB0byBwYXJzZSB0aGUgZmVhdHVyZSBmbGFncyBwbGlzdCBmaWxlCi1ib29sIGlzRmVh
dHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYgZmVhdHVyZU5hbWUpCitib29sIGlzRmVhdHVy
ZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYgZmVhdHVyZU5hbWUsIGJvb2wgZGVmYXVsdFZhbHVl
KQogewotICAgIHN0YXRpYyBib29sIGlzV2ViS2l0QnVuZGxlRnJvbVN0YWdlZEZyYW1ld29yayA9
IFtdIHsKLSAgICAgICAgTlNCdW5kbGUgKndlYmtpdDJCdW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxl
Rm9yQ2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07Ci0gICAgICAgIHJldHVy
biBbd2Via2l0MkJ1bmRsZS5idW5kbGVQYXRoIGhhc1ByZWZpeDpAIi9MaWJyYXJ5L0FwcGxlL1N5
c3RlbS9MaWJyYXJ5L1N0YWdlZEZyYW1ld29ya3MvU2FmYXJpLyJdOworI2lmIEhBVkUoU1lTVEVN
X0ZFQVRVUkVfRkxBR1MpCisKKyNpZiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIGJvb2wgaXNT
eXN0ZW1XZWJLaXQgPSBbXSB7CisgICAgICAgIE5TQnVuZGxlICpidW5kbGUgPSBbTlNCdW5kbGUg
YnVuZGxlRm9yQ2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07CisgICAgICAg
IHJldHVybiBbYnVuZGxlLmJ1bmRsZVBhdGggaGFzUHJlZml4OkAiL1N5c3RlbS8iXTsKICAgICB9
KCk7CiAKLSAgICBpZiAoIWlzV2ViS2l0QnVuZGxlRnJvbVN0YWdlZEZyYW1ld29yaykKLSAgICAg
ICAgcmV0dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNoYXIq
KWZlYXR1cmVOYW1lLnV0ZjgoKS5kYXRhKCkpOworICAgIGlmIChpc1N5c3RlbVdlYktpdCkKKyAg
ICAgICAgcmV0dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNo
YXIqKWZlYXR1cmVOYW1lLmNoYXJhY3RlcnM4KCkpOworCisgICAgcmV0dXJuIGRlZmF1bHRWYWx1
ZTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRWYWx1ZSk7CisgICAgcmV0dXJuIF9v
c19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNoYXIqKWZlYXR1cmVOYW1l
LmNoYXJhY3RlcnM4KCkpOworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5Pj4gZGljdGlvbmFyeSA9IFtOU0Rp
Y3Rpb25hcnkgZGljdGlvbmFyeVdpdGhDb250ZW50c09mRmlsZTpAIi9MaWJyYXJ5L0FwcGxlL1N5
c3RlbS9MaWJyYXJ5L0ZlYXR1cmVGbGFncy9Eb21haW4vV2ViS2l0LnBsaXN0Il07CisjZWxzZQog
Ci0gICAgaWYgKCFbW2RpY3Rpb25hcnkuZ2V0KCkgb2JqZWN0Rm9yS2V5OmZlYXR1cmVOYW1lXSBv
YmplY3RGb3JLZXk6QCJFbmFibGVkIl0pCi0gICAgICAgIHJldHVybiBfb3NfZmVhdHVyZV9lbmFi
bGVkX2ltcGwoIldlYktpdCIsIChjb25zdCBjaGFyKilmZWF0dXJlTmFtZS5jaGFyYWN0ZXJzOCgp
KTsKKyAgICBVTlVTRURfUEFSQU0oZmVhdHVyZU5hbWUpOworICAgIHJldHVybiBkZWZhdWx0VmFs
dWU7CiAKLSAgICByZXR1cm4gW1tbZGljdGlvbmFyeS5nZXQoKSBvYmplY3RGb3JLZXk6ZmVhdHVy
ZU5hbWVdIG9iamVjdEZvcktleTpAIkVuYWJsZWQiXSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBj
bGFzc11dICYmIFtbW2RpY3Rpb25hcnkuZ2V0KCkgb2JqZWN0Rm9yS2V5OmZlYXR1cmVOYW1lXSBv
YmplY3RGb3JLZXk6QCJFbmFibGVkIl0gYm9vbFZhbHVlXTsKKyNlbmRpZiAvLyBIQVZFKFNZU1RF
TV9GRUFUVVJFX0ZMQUdTKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwCmluZGV4
IGFmYWZlM2M3ZTUzMzA2MjRlYTg0NmViYTA3NWJmMjg1NWEwYTIzN2UuLjUxZWY5ZDJiODAyMzU1
YThiMjM5ODRiZmJjNjlkNzAwNjU2ZTkyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcApAQCAtNDEsNiArNDEsMTMgQEAK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCitib29sIGlzRmVh
dHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYsIGJvb2wgZGVmYXVsdFZhbHVlKQoreworICAg
IHJldHVybiBkZWZhdWx0VmFsdWU7Cit9CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAKIGJvb2wgZGVmYXVsdFBhc3NpdmVUb3VjaExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1l
bnQoKQpAQCAtMTA4LDE1ICsxMTUsMTMgQEAgc3RhdGljIGJvb2wgZGVmYXVsdEFzeW5jRnJhbWVB
bmRPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQoKQogICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAK
LSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFn
RW5hYmxlZCgiYXN5bmNfZnJhbWVfYW5kX292ZXJmbG93X3Njcm9sbGluZyIpOwotI2VuZGlmCi0K
ICNpZiBQTEFURk9STShNQUMpCi0gICAgcmV0dXJuIHRydWU7CisgICAgYm9vbCBkZWZhdWx0VmFs
dWUgPSB0cnVlOworI2Vsc2UKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IGZhbHNlOwogI2VuZGlm
CiAKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJh
c3luY19mcmFtZV9hbmRfb3ZlcmZsb3dfc2Nyb2xsaW5nIiwgZGVmYXVsdFZhbHVlKTsKIH0KIAog
Ym9vbCBkZWZhdWx0QXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQoKQpAQCAtMTUwLDQ5ICsxNTUs
MzMgQEAgYm9vbCBkZWZhdWx0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCkKIGJv
b2wgZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JDYW52YXNSZW5kZXJpbmdFbmFibGVkKCkKIHsKICNp
ZiBFTkFCTEUoR1BVX1BST0NFU1NfQllfREVGQVVMVCkKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJF
X0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfY2Fu
dmFzX3JlbmRlcmluZyIpOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNlbHNlCi0g
ICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYgLy8gSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSNl
bHNlCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAj
ZW5kaWYKKworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfY2Fu
dmFzX3JlbmRlcmluZyIsIGRlZmF1bHRWYWx1ZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFVzZUdQVVBy
b2Nlc3NGb3JET01SZW5kZXJpbmdFbmFibGVkKCkKIHsKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1Nf
QllfREVGQVVMVCkKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfZG9tX3JlbmRlcmluZyIpOwotI2Vsc2UK
LSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYgLy8gSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykK
LSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCisgICAgcmV0dXJuIGlzRmVhdHVyZUZs
YWdFbmFibGVkKCJncHVfcHJvY2Vzc19kb21fcmVuZGVyaW5nIiwgZmFsc2UpOwogfQogCiBib29s
IGRlZmF1bHRVc2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkKCkKIHsKICNpZiBFTkFCTEUoR1BV
X1BST0NFU1NfQllfREVGQVVMVCkKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAg
IHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfbWVkaWEiKTsKLSNlbHNl
Ci0gICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYgLy8gSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykK
KyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IHRydWU7CiAjZWxzZQotICAgIHJldHVybiBmYWxzZTsK
KyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IGZhbHNlOwogI2VuZGlmCisKKyAgICByZXR1cm4gaXNG
ZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX21lZGlhIiwgZGVmYXVsdFZhbHVlKTsKIH0K
IAogYm9vbCBkZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZCgpCiB7Ci0jaWYgSEFW
RShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQo
ImdwdV9wcm9jZXNzX3dlYmdsIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICBy
ZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYmdsIiwgZmFsc2UpOwog
fQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpAQCAtMjAyLDE5ICsxOTEsMTcgQEAg
Ym9vbCBkZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZCgpCiBib29sIGRlZmF1bHRD
YXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFibGVkKCkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NF
U1NfQllfREVGQVVMVCkKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IHRydWU7CisjZWxzZQorICAg
IGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CisjZW5kaWYKIAotI2lmIEhBVkUoU1lTVEVNX0ZF
QVRVUkVfRkxBR1MpCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFn
RW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIik7CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdF
bmFibGVkKCJncHVfcHJvY2Vzc193ZWJydGMiLCBkZWZhdWx0VmFsdWUpOwogI2VsaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9j
ZXNzX21lZGlhIik7Ci0jZW5kaWYKLSNlbHNlCi0gICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYgLy8g
SEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLQorICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5h
YmxlZCgiZ3B1X3Byb2Nlc3NfbWVkaWEiLCBkZWZhdWx0VmFsdWUpOwogI2Vsc2UKLSAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKICNlbmRpZgogfQogCkBAIC0yMzAs
MTQgKzIxNywxMiBAQCBib29sIGRlZmF1bHRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzc0VuYWJsZWQo
KQogYm9vbCBkZWZhdWx0Q2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxlZCgpCiB7CiAjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTX0JZX0RFRkFVTFQpCi0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9G
TEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYnJ0
YyIpOwotI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFU
VVJFX0ZMQUdTKQorICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNlbHNlCi0gICAgcmV0
dXJuIGZhbHNlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKKworICAg
IHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIiwgZGVmYXVs
dFZhbHVlKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCkBAIC0yNDcsMzkg
KzIzMiwyNiBAQCBib29sIGRlZmF1bHRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkKCkK
IGJvb2wgZGVmYXVsdFdlYlJUQ0NvZGVjc0luR1BVUHJvY2VzcygpCiB7CiAjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTX0JZX0RFRkFVTFQpCi0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAg
ICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYnJ0YyIpOwotI2Vs
c2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdT
KQorICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNlbHNlCi0gICAgcmV0dXJuIGZhbHNl
OworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKKworICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIiwgZGVmYXVsdFZhbHVlKTsK
IH0KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQogCi1ib29sIGRlZmF1bHRJbkFwcEJyb3dz
ZXJQcml2YWN5KCkKLXsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVy
biBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiSW5BcHBCcm93c2VyUHJpdmFjeSIpOwotI2VuZGlmCi0K
LSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KICNpZiBIQVZFKElOQ1JFTUVOVEFMX1BERl9BUElTKQog
Ym9vbCBkZWZhdWx0SW5jcmVtZW50YWxQREZFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9G
RUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiaW5jcmVtZW50
YWxfcGRmIik7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1BQykKLSAgICByZXR1cm4gdHJ1ZTsK
KyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IHRydWU7CiAjZWxzZQotICAgIHJldHVybiBmYWxzZTsK
KyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IGZhbHNlOwogI2VuZGlmCisKKyAgICByZXR1cm4gaXNG
ZWF0dXJlRmxhZ0VuYWJsZWQoImluY3JlbWVudGFsX3BkZiIsIGRlZmF1bHRWYWx1ZSk7CiB9CiAj
ZW5kaWYKIApAQCAtMzAwLDE1ICsyNzIsMTMgQEAgYm9vbCBkZWZhdWx0V2ViWFJFbmFibGVkKCkK
IAogYm9vbCBkZWZhdWx0V2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKQogewotI2lmIEhBVkUoU1lT
VEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJt
X2Zvcm1hdF9yZWFkZXIiKTsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHJldHVy
biB0cnVlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNlbHNlCi0gICAgcmV0dXJu
IGZhbHNlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKKworICAgIHJl
dHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgid2VibV9mb3JtYXRfcmVhZGVyIiwgZGVmYXVsdFZh
bHVlKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJNX0ZPUk1BVF9SRUFERVIpCkBAIC0zMTcs
MjkgKzI4NywxNyBAQCBib29sIGRlZmF1bHRXZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpCiAKIGJv
b2wgZGVmYXVsdFZQOERlY29kZXJFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJF
X0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgidnA4X2RlY29kZXIiKTsK
LSNlbmRpZgotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5h
YmxlZCgidnA4X2RlY29kZXIiLCBmYWxzZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFZQOURlY29kZXJF
bmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgidnA5X2RlY29kZXIiKTsKLSNlbmRpZgotCi0gICAgcmV0dXJu
IHRydWU7CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ2cDlfZGVjb2RlciIsIHRy
dWUpOwogfQogCiBib29sIGRlZmF1bHRWUDlTV0RlY29kZXJFbmFibGVkT25CYXR0ZXJ5KCkKIHsK
LSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFn
RW5hYmxlZCgic3dfdnA5X2RlY29kZXJfb25fYmF0dGVyeSIpOwotI2VuZGlmCi0KLSAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJzd192cDlfZGVjb2Rl
cl9vbl9iYXR0ZXJ5IiwgZmFsc2UpOwogfQogI2VuZGlmIC8vIEVOQUJMRShWUDkpCiAKQEAgLTM0
NywyMCArMzA1LDEyIEBAIGJvb2wgZGVmYXVsdFZQOVNXRGVjb2RlckVuYWJsZWRPbkJhdHRlcnko
KQogCiBib29sIGRlZmF1bHRXZWJNUGFyc2VyRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1f
RkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fcGFy
c2VyIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBpc0ZlYXR1cmVG
bGFnRW5hYmxlZCgid2VibV9wYXJzZXIiLCB0cnVlKTsKIH0KIAogYm9vbCBkZWZhdWx0V2ViTVdl
YkF1ZGlvRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICBy
ZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fd2ViYXVkaW8iKTsKLSNlbmRpZgotCi0g
ICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgid2VibV93
ZWJhdWRpbyIsIGZhbHNlKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TT1VSQ0UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5o
CmluZGV4IGU2ZmYxODM2MGIyYmRiMDhlY2YxNmZhOGZiZGU5NDA5ODk2YzU0NTcuLmE3ZDFmNWFh
ZmRkZTJjYzM2MDkyYjcxZjg1NjczYzA1YzQ5ZWUyNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCkBAIC0zNSw5ICszNSw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykK
LWJvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJik7Ci0jZW5kaWYKK2Jvb2wg
aXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiwgYm9vbCBkZWZhdWx0VmFsdWUgPSBm
YWxzZSk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogYm9vbCBkZWZhdWx0UGFzc2l2ZVRv
dWNoTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCgpOwpAQCAtODUsOCArODMsNiBAQCBib29s
IGRlZmF1bHRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkKCk7CiBib29sIGRlZmF1bHRX
ZWJSVENDb2RlY3NJbkdQVVByb2Nlc3MoKTsKICNlbmRpZgogCi1ib29sIGRlZmF1bHRJbkFwcEJy
b3dzZXJQcml2YWN5KCk7Ci0KICNpZiBIQVZFKElOQ1JFTUVOVEFMX1BERl9BUElTKQogYm9vbCBk
ZWZhdWx0SW5jcmVtZW50YWxQREZFbmFibGVkKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmgg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZh
bHVlcy5oCmluZGV4IGQwOGNiY2JlY2YzNGVjNTE3ZjI0M2Q5ZDA1YWI4MmQwM2U2NTE3NjEuLjky
MWZjNTRhOTA3MjdmMjRhYmYwN2M4ZGVlZTA5OGI2MjJlOTQ1MzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXMuaApAQCAtMzUsOCArMzUsOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotYm9vbCBpc0Zl
YXR1cmVGbGFnRW5hYmxlZChjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFURk9STShDT0NPQSkKK2Jv
b2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiwgYm9vbCBkZWZhdWx0VmFsdWUg
PSBmYWxzZSk7CiAjZW5kaWYKIAogI2lmIEhBVkUoSU5DUkVNRU5UQUxfUERGX0FQSVMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXNEZWZhdWx0VmFsdWVzLm1tCmluZGV4IDlhOTRkNjVkODVkMTc3Yjc3NzJiNzljMzg3ODQ4
YWQ0YzcyNzVmZGMuLjhjNjJlYWI5OWU5NDk2OTM2NTRiZTgwY2M3OWVkZDRhNTVkOTQ0MTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNE
ZWZhdWx0VmFsdWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tCkBAIC00MiwyMiArNDIsMzQgQEAKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgSEFWRShTWVNURU1fRkVBVFVS
RV9GTEFHUykKKyNpZiBQTEFURk9STShDT0NPQSkKIAogLy8gQmVjYXVzZSBvZiA8cmRhcjovL3By
b2JsZW0vNjA2MDgwMDg+LCBXZWJLaXQgaGFzIHRvIHBhcnNlIHRoZSBmZWF0dXJlIGZsYWdzIHBs
aXN0IGZpbGUKLWJvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiBmZWF0dXJl
TmFtZSkKK2Jvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiBmZWF0dXJlTmFt
ZSwgYm9vbCBkZWZhdWx0VmFsdWUpCiB7Ci0gICAgQk9PTCBpc1dlYktpdEJ1bmRsZUZyb21TdGFn
ZWRGcmFtZXdvcmsgPSBbW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVQYXRoXSBoYXNQcmVm
aXg6QCIvTGlicmFyeS9BcHBsZS9TeXN0ZW0vTGlicmFyeS9TdGFnZWRGcmFtZXdvcmtzL1dlYktp
dCJdOwotCi0gICAgaWYgKCFpc1dlYktpdEJ1bmRsZUZyb21TdGFnZWRGcmFtZXdvcmspCi0gICAg
ICAgIHJldHVybiBfb3NfZmVhdHVyZV9lbmFibGVkX2ltcGwoIldlYktpdCIsIChjb25zdCBjaGFy
KilmZWF0dXJlTmFtZS51dGY4KCkuZGF0YSgpKTsKKyNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZM
QUdTKQogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxOU0RpY3Rpb25hcnk+
PiBkaWN0aW9uYXJ5ID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aENvbnRlbnRzT2ZGaWxl
OkAiL0xpYnJhcnkvQXBwbGUvU3lzdGVtL0xpYnJhcnkvRmVhdHVyZUZsYWdzL0RvbWFpbi9XZWJL
aXQucGxpc3QiXTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIGJvb2wgaXNTeXN0ZW1X
ZWJLaXQgPSBbXSB7CisgICAgICAgIE5TQnVuZGxlICpidW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxl
Rm9yQ2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07CisgICAgICAgIHJldHVy
biBbYnVuZGxlLmJ1bmRsZVBhdGggaGFzUHJlZml4OkAiL1N5c3RlbS8iXTsKKyAgICB9KCk7CiAK
LSAgICBpZiAoIVtbZGljdGlvbmFyeS5nZXQoKSBvYmplY3RGb3JLZXk6ZmVhdHVyZU5hbWVdIG9i
amVjdEZvcktleTpAIkVuYWJsZWQiXSkKKyAgICBpZiAoaXNTeXN0ZW1XZWJLaXQpCiAgICAgICAg
IHJldHVybiBfb3NfZmVhdHVyZV9lbmFibGVkX2ltcGwoIldlYktpdCIsIChjb25zdCBjaGFyKilm
ZWF0dXJlTmFtZS5jaGFyYWN0ZXJzOCgpKTsKIAotICAgIHJldHVybiBbW1tkaWN0aW9uYXJ5Lmdl
dCgpIG9iamVjdEZvcktleTpmZWF0dXJlTmFtZV0gb2JqZWN0Rm9yS2V5OkAiRW5hYmxlZCJdIGlz
S2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0gJiYgW1tbZGljdGlvbmFyeS5nZXQoKSBvYmpl
Y3RGb3JLZXk6ZmVhdHVyZU5hbWVdIG9iamVjdEZvcktleTpAIkVuYWJsZWQiXSBib29sVmFsdWVd
OworICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkZWZh
dWx0VmFsdWUpOworICAgIHJldHVybiBfb3NfZmVhdHVyZV9lbmFibGVkX2ltcGwoIldlYktpdCIs
IChjb25zdCBjaGFyKilmZWF0dXJlTmFtZS5jaGFyYWN0ZXJzOCgpKTsKKyNlbmRpZiAvLyBQTEFU
Rk9STShNQUMpCisKKyNlbHNlCisKKyAgICBVTlVTRURfUEFSQU0oZmVhdHVyZU5hbWUpOworICAg
IHJldHVybiBkZWZhdWx0VmFsdWU7CisKKyNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZM
QUdTKQogfQogCiAjZW5kaWYKQEAgLTY2LDExICs3OCw3IEBAIGJvb2wgaXNGZWF0dXJlRmxhZ0Vu
YWJsZWQoY29uc3QgU3RyaW5nJiBmZWF0dXJlTmFtZSkKIAogYm9vbCBkZWZhdWx0SW5jcmVtZW50
YWxQREZFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJl
dHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiaW5jcmVtZW50YWxfcGRmIik7Ci0jZW5kaWYKLQot
ICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImluY3Jl
bWVudGFsX3BkZiIsIGZhbHNlKTsKIH0KIAogI2VuZGlmCkBAIC03OSwxMSArODcsNyBAQCBib29s
IGRlZmF1bHRJbmNyZW1lbnRhbFBERkVuYWJsZWQoKQogCiBib29sIGRlZmF1bHRXZWJYUkVuYWJs
ZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVh
dHVyZUZsYWdFbmFibGVkKCJXZWJYUiIpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJXZWJYUiIsIGZhbHNlKTsKIH0KIAogI2Vu
ZGlmIC8vIEVOQUJMRShXRUJYUikKQEAgLTI3OCwyMCArMjgyLDEyIEBAIGJvb2wgZGVmYXVsdFdo
ZWVsRXZlbnRHZXN0dXJlc0JlY29tZU5vbkJsb2NraW5nKCkKIAogYm9vbCBkZWZhdWx0V2ViTVBh
cnNlckVuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0
dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX3BhcnNlciIpOwotI2VuZGlmCi0KLSAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fcGFyc2Vy
IiwgdHJ1ZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFdlYk1XZWJBdWRpb0VuYWJsZWQoKQogewotI2lm
IEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFi
bGVkKCJ3ZWJtX3dlYmF1ZGlvIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICBy
ZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fd2ViYXVkaW8iLCBmYWxzZSk7CiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAtMzAwLDIwICsyOTYsMTIgQEAgYm9v
bCBkZWZhdWx0V2ViTVdlYkF1ZGlvRW5hYmxlZCgpCiAKIGJvb2wgZGVmYXVsdFZQOERlY29kZXJF
bmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgidnA4X2RlY29kZXIiKTsKLSNlbmRpZgotCi0gICAgcmV0dXJu
IGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgidnA4X2RlY29kZXIiLCBm
YWxzZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFZQOURlY29kZXJFbmFibGVkKCkKIHsKLSNpZiBIQVZF
KFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgi
dnA5X2RlY29kZXIiKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGlz
RmVhdHVyZUZsYWdFbmFibGVkKCJ2cDlfZGVjb2RlciIsIHRydWUpOwogfQogCiAjZW5kaWYgLy8g
RU5BQkxFKFZQOSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCAxOGRiYjM4M2ViY2YzODc4NzM5NmZkYzhmOGZjMzMwOWI2YTM2
NzU3Li41YTZiMDIyMzFiMjgyNjljNGQ0YTA0MzE5NzJlNWIyNzdkM2NmNGZjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMjEtMDgtMDUgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4K
KworICAgICAgICBbbWFjT1NdIENsZWFuIHVwIEZlYXR1cmUgRmxhZ3MgcmVsYXRlZCBjb2RlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg4MDMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgYSBt
YWMtYmlnc3VyIHNwZWNpZmljIHRlc3QgZXhwZWN0YXRpb24gZmlsZSBiZWNhdXNlIHRoZSB0ZXN0
IGlzIHBhc3Npbmcgbm93LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjLWJpZ3N1ci9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1hZGRzb3Vy
Y2VidWZmZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorCiAyMDIxLTA4LTAyICBKZWFuLVl2ZXMg
QXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1ZGlvXSBBZGQgd2VibS92
b3JiaXMgY29udGFpbmVyIHN1cHBvcnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy1iaWdzdXIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2Uv
bWVkaWFzb3VyY2UtYWRkc291cmNlYnVmZmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy1iaWdzdXIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1z
b3VyY2UvbWVkaWFzb3VyY2UtYWRkc291cmNlYnVmZmVyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOGUwMzMzOTZkZDBjMTVhYjU1MjJhN2ExN2JhNzQ5NzQzN2Qw
OTc5OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtYmlnc3VyL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZlci1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0KLVBBU1MgVGVzdCBhZGRTb3VyY2VCdWZm
ZXIoKSBpbiAnZW5kZWQnIHN0YXRlLgotUEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGgg
ZW1wdHkgdHlwZQotUEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggbnVsbAotUEFTUyBU
ZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggdW5zdXBwb3J0ZWQgdHlwZQotRkFJTCBUZXN0IGFk
ZFNvdXJjZUJ1ZmZlcigpIHdpdGggVm9yYmlzIGFuZCBWUDggYXNzZXJ0X3RydWU6IHZpZGVvL3dl
Ym07Y29kZWNzPSJ2cDgsdm9yYmlzIiBpcyBzdXBwb3J0ZWQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKLUZBSUwgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRoIFZvcmJpcyBhbmQgVlA4IGluIHNl
cGFyYXRlIFNvdXJjZUJ1ZmZlcnMgYXNzZXJ0X3RydWU6IGF1ZGlvL3dlYm07Y29kZWNzPSJ2b3Ji
aXMiIGlzIHN1cHBvcnRlZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotUEFTUyBUZXN0IGFkZFNv
dXJjZUJ1ZmZlcigpIHZpZGVvIG9ubHkKLVBBU1MgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSBhdWRp
byBvbmx5Ci1QQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBBQUMgYW5kIEguMjY0Ci1Q
QVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBBQUMgYW5kIEguMjY0IGluIHNlcGFyYXRl
IFNvdXJjZUJ1ZmZlcnMKLQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435023</attachid>
            <date>2021-08-05 14:08:06 -0700</date>
            <delta_ts>2021-08-05 19:25:03 -0700</delta_ts>
            <desc>Update a layout test expectation</desc>
            <filename>bug-228803-20210805140805.patch</filename>
            <type>text/plain</type>
            <size>21310</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYyNTJlNDU5ZGNmMmFhOTZm
MDc1ZDMwMjJlMjIxNGYzMjY3NjMyZjYuLjdiNmY2ZWIwZmI0OTZiNTgwMmM5ZjhjZTU3YjAxNzRh
ZjNhYmZiN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjEtMDgtMDUgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIENsZWFuIHVwIEZlYXR1
cmUgRmxhZ3MgcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjg4MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxMTQyOTgyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uIG1hY09T
LCBTYWZhcmkgVGVjaG5vbG9neSBQcmV2aWV3IG9yIGEgbG9jYWwgYnVpbGQgV2ViS2l0L1NhZmFy
aSB3aWxsIGFsd2F5cworICAgICAgICBnZXQgdGhlIGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMg
dGhyb3VnaCB0aGUgIkZlYXR1cmUgRmxhZ3MiIFNQSS4gVW5mb3J0dW5hdGVseSwKKyAgICAgICAg
dGhpcyBhcHByb2FjaCB3b24ndCB3b3JrIGlmIHRoZSBPUyBkb2VzIG5vdCBwcm92aWRlIGNvcnJl
Y3QgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcy4KKworICAgICAgICBXaXRoIHRoaXMgcGF0Y2gs
IHdlIG9ubHkgZ2V0IGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMgd2l0aCB0aGUgU1BJIGZvciBz
eXN0ZW0KKyAgICAgICAgV2ViS2l0IG9uIG1hY09TLiBGb3IgYWxsIG90aGVyIGNhc2VzLCB3ZSB1
c2UgaGFyZGNvZGVkIHZhbHVlcy4gU28gdGhhdAorICAgICAgICBXZWJLaXQgd2lsbCBhbHdheXMg
Z2V0IHRoZSBjb3JyZWN0IGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMuCisKKyAgICAgICAgKiBT
aGFyZWQvQ29jb2EvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OmlzRmVhdHVyZUZsYWdFbmFibGVkKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJl
ZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6aXNGZWF0dXJlRmxh
Z0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0QXN5bmNGcmFtZUFuZE92ZXJmbG93
U2Nyb2xsaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRVc2VHUFVQcm9jZXNz
Rm9yQ2FudmFzUmVuZGVyaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRVc2VH
UFVQcm9jZXNzRm9yRE9NUmVuZGVyaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1
bHRVc2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVs
dFVzZUdQVVByb2Nlc3NGb3JXZWJHTEVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0
Q2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1
bHRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVm
YXVsdFdlYlJUQ0NvZGVjc0luR1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRJ
bkFwcEJyb3dzZXJQcml2YWN5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdElu
Y3JlbWVudGFsUERGRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXZWJNRm9ybWF0
UmVhZGVyRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRWUDhEZWNvZGVyRW5hYmxl
ZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRWUDlEZWNvZGVyRW5hYmxlZCk6CisgICAgICAg
IChXZWJLaXQ6OmRlZmF1bHRWUDlTV0RlY29kZXJFbmFibGVkT25CYXR0ZXJ5KToKKyAgICAgICAg
KFdlYktpdDo6ZGVmYXVsdFdlYk1QYXJzZXJFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVm
YXVsdFdlYk1XZWJBdWRpb0VuYWJsZWQpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNl
c0RlZmF1bHRWYWx1ZXMuaDoKKwogMjAyMS0wOC0wMiAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBw
bGUuY29tPgogCiAgICAgICAgIFtHUFVQXSBSZW1vdGVBdWRpb1Nlc3Npb246OnNldFByZWZlcnJl
ZEJ1ZmZlclNpemUoKSBkb2VzIG5vdCBjaGFuZ2UgaXRzIHByZWZlcnJlZEJ1ZmZlclNpemUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAwZGZmNDM4YzEyMDc1N2YzNjNlMDBkYjgzMjQ3
MzVmNTVlMGExYjljLi5iNDVkYzgzNGNhYTI5Mjg2NDc4OTU2YzFiMzY5MzdlMmRhYjQwNzMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjEtMDgtMDUg
IFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIENsZWFu
IHVwIEZlYXR1cmUgRmxhZ3MgcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg4MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgx
MTQyOTgyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE9uIG1hY09TLCBTYWZhcmkgVGVjaG5vbG9neSBQcmV2aWV3IG9yIGEgbG9jYWwgYnVpbGQgV2Vi
S2l0L1NhZmFyaSB3aWxsIGFsd2F5cworICAgICAgICBnZXQgdGhlIGRlZmF1bHQgcHJlZmVyZW5j
ZSB2YWx1ZXMgdGhyb3VnaCB0aGUgIkZlYXR1cmUgRmxhZ3MiIFNQSS4gVW5mb3J0dW5hdGVseSwK
KyAgICAgICAgdGhpcyBhcHByb2FjaCB3b24ndCB3b3JrIGlmIHRoZSBPUyBkb2VzIG5vdCBwcm92
aWRlIGNvcnJlY3QgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcy4KKworICAgICAgICBXaXRoIHRo
aXMgcGF0Y2gsIHdlIG9ubHkgZ2V0IGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMgd2l0aCB0aGUg
U1BJIGZvciBzeXN0ZW0KKyAgICAgICAgV2ViS2l0IG9uIG1hY09TLiBGb3IgYWxsIG90aGVyIGNh
c2VzLCB3ZSB1c2UgaGFyZGNvZGVkIHZhbHVlcy4gU28gdGhhdAorICAgICAgICBXZWJLaXQgd2ls
bCBhbHdheXMgZ2V0IHRoZSBjb3JyZWN0IGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMuCisKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oOgorICAgICAgICAq
IFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tOgorICAgICAgICAoV2ViS2l0
Ojppc0ZlYXR1cmVGbGFnRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRJbmNyZW1l
bnRhbFBERkVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0V2ViWFJFbmFibGVkKToK
KyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFdlYk1QYXJzZXJFbmFibGVkKToKKyAgICAgICAgKFdl
YktpdDo6ZGVmYXVsdFdlYk1XZWJBdWRpb0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZh
dWx0VlA4RGVjb2RlckVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0VlA5RGVjb2Rl
ckVuYWJsZWQpOgorCiAyMDIxLTA3LTI5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBh
cHBsZS5jb20+CiAKICAgICAgICAgU3RvcCBidWlsZGluZyBXZWJHUFUgYW5kIHRoZSBXSExTTCBj
b21waWxlciB0byBkZWNyZWFzZSBiaW5hcnkgc2l6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQ29jb2EvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNDb2NvYS5t
bQppbmRleCBjZGIzNjNhOGY4YTAzYmEzNTYzNDkwMWE0ODliMDA1ZjM4OWE5MjNjLi4wYWNmOTYw
NDgwZTJlOTJiMjYzZDE3NzA3YWNhOTEyY2Q2ZDBiMzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db2NvYS9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXND
b2NvYS5tbQpAQCAtMjYsNyArMjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJX
ZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaCIKIAotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBI
QVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQorI2lmIFBMQVRGT1JNKENPQ09BKQogCiAjaW1wb3J0
IDxGb3VuZGF0aW9uL05TQnVuZGxlLmg+CiAKQEAgLTM4LDIyICszOCwzMSBAQAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIC8vIEJlY2F1c2Ugb2YgPHJkYXI6Ly9wcm9ibGVtLzYwNjA4MDA4PiwgV2Vi
S2l0IGhhcyB0byBwYXJzZSB0aGUgZmVhdHVyZSBmbGFncyBwbGlzdCBmaWxlCi1ib29sIGlzRmVh
dHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYgZmVhdHVyZU5hbWUpCitib29sIGlzRmVhdHVy
ZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYgZmVhdHVyZU5hbWUsIGJvb2wgZGVmYXVsdFZhbHVl
KQogewotICAgIHN0YXRpYyBib29sIGlzV2ViS2l0QnVuZGxlRnJvbVN0YWdlZEZyYW1ld29yayA9
IFtdIHsKLSAgICAgICAgTlNCdW5kbGUgKndlYmtpdDJCdW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxl
Rm9yQ2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07Ci0gICAgICAgIHJldHVy
biBbd2Via2l0MkJ1bmRsZS5idW5kbGVQYXRoIGhhc1ByZWZpeDpAIi9MaWJyYXJ5L0FwcGxlL1N5
c3RlbS9MaWJyYXJ5L1N0YWdlZEZyYW1ld29ya3MvU2FmYXJpLyJdOworI2lmIEhBVkUoU1lTVEVN
X0ZFQVRVUkVfRkxBR1MpCisKKyNpZiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIGJvb2wgaXNT
eXN0ZW1XZWJLaXQgPSBbXSB7CisgICAgICAgIE5TQnVuZGxlICpidW5kbGUgPSBbTlNCdW5kbGUg
YnVuZGxlRm9yQ2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07CisgICAgICAg
IHJldHVybiBbYnVuZGxlLmJ1bmRsZVBhdGggaGFzUHJlZml4OkAiL1N5c3RlbS8iXTsKICAgICB9
KCk7CiAKLSAgICBpZiAoIWlzV2ViS2l0QnVuZGxlRnJvbVN0YWdlZEZyYW1ld29yaykKLSAgICAg
ICAgcmV0dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNoYXIq
KWZlYXR1cmVOYW1lLnV0ZjgoKS5kYXRhKCkpOworICAgIGlmIChpc1N5c3RlbVdlYktpdCkKKyAg
ICAgICAgcmV0dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNo
YXIqKWZlYXR1cmVOYW1lLmNoYXJhY3RlcnM4KCkpOworCisgICAgcmV0dXJuIGRlZmF1bHRWYWx1
ZTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRWYWx1ZSk7CisgICAgcmV0dXJuIF9v
c19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNoYXIqKWZlYXR1cmVOYW1l
LmNoYXJhY3RlcnM4KCkpOworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5Pj4gZGljdGlvbmFyeSA9IFtOU0Rp
Y3Rpb25hcnkgZGljdGlvbmFyeVdpdGhDb250ZW50c09mRmlsZTpAIi9MaWJyYXJ5L0FwcGxlL1N5
c3RlbS9MaWJyYXJ5L0ZlYXR1cmVGbGFncy9Eb21haW4vV2ViS2l0LnBsaXN0Il07CisjZWxzZQog
Ci0gICAgaWYgKCFbW2RpY3Rpb25hcnkuZ2V0KCkgb2JqZWN0Rm9yS2V5OmZlYXR1cmVOYW1lXSBv
YmplY3RGb3JLZXk6QCJFbmFibGVkIl0pCi0gICAgICAgIHJldHVybiBfb3NfZmVhdHVyZV9lbmFi
bGVkX2ltcGwoIldlYktpdCIsIChjb25zdCBjaGFyKilmZWF0dXJlTmFtZS5jaGFyYWN0ZXJzOCgp
KTsKKyAgICBVTlVTRURfUEFSQU0oZmVhdHVyZU5hbWUpOworICAgIHJldHVybiBkZWZhdWx0VmFs
dWU7CiAKLSAgICByZXR1cm4gW1tbZGljdGlvbmFyeS5nZXQoKSBvYmplY3RGb3JLZXk6ZmVhdHVy
ZU5hbWVdIG9iamVjdEZvcktleTpAIkVuYWJsZWQiXSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBj
bGFzc11dICYmIFtbW2RpY3Rpb25hcnkuZ2V0KCkgb2JqZWN0Rm9yS2V5OmZlYXR1cmVOYW1lXSBv
YmplY3RGb3JLZXk6QCJFbmFibGVkIl0gYm9vbFZhbHVlXTsKKyNlbmRpZiAvLyBIQVZFKFNZU1RF
TV9GRUFUVVJFX0ZMQUdTKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwCmluZGV4
IGFmYWZlM2M3ZTUzMzA2MjRlYTg0NmViYTA3NWJmMjg1NWEwYTIzN2UuLjUxZWY5ZDJiODAyMzU1
YThiMjM5ODRiZmJjNjlkNzAwNjU2ZTkyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcApAQCAtNDEsNiArNDEsMTMgQEAK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCitib29sIGlzRmVh
dHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYsIGJvb2wgZGVmYXVsdFZhbHVlKQoreworICAg
IHJldHVybiBkZWZhdWx0VmFsdWU7Cit9CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAKIGJvb2wgZGVmYXVsdFBhc3NpdmVUb3VjaExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1l
bnQoKQpAQCAtMTA4LDE1ICsxMTUsMTMgQEAgc3RhdGljIGJvb2wgZGVmYXVsdEFzeW5jRnJhbWVB
bmRPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQoKQogICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAK
LSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFn
RW5hYmxlZCgiYXN5bmNfZnJhbWVfYW5kX292ZXJmbG93X3Njcm9sbGluZyIpOwotI2VuZGlmCi0K
ICNpZiBQTEFURk9STShNQUMpCi0gICAgcmV0dXJuIHRydWU7CisgICAgYm9vbCBkZWZhdWx0VmFs
dWUgPSB0cnVlOworI2Vsc2UKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IGZhbHNlOwogI2VuZGlm
CiAKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJh
c3luY19mcmFtZV9hbmRfb3ZlcmZsb3dfc2Nyb2xsaW5nIiwgZGVmYXVsdFZhbHVlKTsKIH0KIAog
Ym9vbCBkZWZhdWx0QXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQoKQpAQCAtMTUwLDQ5ICsxNTUs
MzMgQEAgYm9vbCBkZWZhdWx0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCkKIGJv
b2wgZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JDYW52YXNSZW5kZXJpbmdFbmFibGVkKCkKIHsKICNp
ZiBFTkFCTEUoR1BVX1BST0NFU1NfQllfREVGQVVMVCkKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJF
X0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfY2Fu
dmFzX3JlbmRlcmluZyIpOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNlbHNlCi0g
ICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYgLy8gSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSNl
bHNlCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAj
ZW5kaWYKKworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfY2Fu
dmFzX3JlbmRlcmluZyIsIGRlZmF1bHRWYWx1ZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFVzZUdQVVBy
b2Nlc3NGb3JET01SZW5kZXJpbmdFbmFibGVkKCkKIHsKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1Nf
QllfREVGQVVMVCkKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfZG9tX3JlbmRlcmluZyIpOwotI2Vsc2UK
LSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYgLy8gSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykK
LSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCisgICAgcmV0dXJuIGlzRmVhdHVyZUZs
YWdFbmFibGVkKCJncHVfcHJvY2Vzc19kb21fcmVuZGVyaW5nIiwgZmFsc2UpOwogfQogCiBib29s
IGRlZmF1bHRVc2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkKCkKIHsKICNpZiBFTkFCTEUoR1BV
X1BST0NFU1NfQllfREVGQVVMVCkKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAg
IHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfbWVkaWEiKTsKLSNlbHNl
Ci0gICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYgLy8gSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykK
KyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IHRydWU7CiAjZWxzZQotICAgIHJldHVybiBmYWxzZTsK
KyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IGZhbHNlOwogI2VuZGlmCisKKyAgICByZXR1cm4gaXNG
ZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX21lZGlhIiwgZGVmYXVsdFZhbHVlKTsKIH0K
IAogYm9vbCBkZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZCgpCiB7Ci0jaWYgSEFW
RShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQo
ImdwdV9wcm9jZXNzX3dlYmdsIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICBy
ZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYmdsIiwgZmFsc2UpOwog
fQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpAQCAtMjAyLDE5ICsxOTEsMTcgQEAg
Ym9vbCBkZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZCgpCiBib29sIGRlZmF1bHRD
YXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFibGVkKCkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NF
U1NfQllfREVGQVVMVCkKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IHRydWU7CisjZWxzZQorICAg
IGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CisjZW5kaWYKIAotI2lmIEhBVkUoU1lTVEVNX0ZF
QVRVUkVfRkxBR1MpCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFn
RW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIik7CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdF
bmFibGVkKCJncHVfcHJvY2Vzc193ZWJydGMiLCBkZWZhdWx0VmFsdWUpOwogI2VsaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9j
ZXNzX21lZGlhIik7Ci0jZW5kaWYKLSNlbHNlCi0gICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYgLy8g
SEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLQorICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5h
YmxlZCgiZ3B1X3Byb2Nlc3NfbWVkaWEiLCBkZWZhdWx0VmFsdWUpOwogI2Vsc2UKLSAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKICNlbmRpZgogfQogCkBAIC0yMzAs
MTQgKzIxNywxMiBAQCBib29sIGRlZmF1bHRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzc0VuYWJsZWQo
KQogYm9vbCBkZWZhdWx0Q2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxlZCgpCiB7CiAjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTX0JZX0RFRkFVTFQpCi0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9G
TEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYnJ0
YyIpOwotI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFU
VVJFX0ZMQUdTKQorICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNlbHNlCi0gICAgcmV0
dXJuIGZhbHNlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKKworICAg
IHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIiwgZGVmYXVs
dFZhbHVlKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCkBAIC0yNDcsMzkg
KzIzMiwyNiBAQCBib29sIGRlZmF1bHRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkKCkK
IGJvb2wgZGVmYXVsdFdlYlJUQ0NvZGVjc0luR1BVUHJvY2VzcygpCiB7CiAjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTX0JZX0RFRkFVTFQpCi0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAg
ICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYnJ0YyIpOwotI2Vs
c2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdT
KQorICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNlbHNlCi0gICAgcmV0dXJuIGZhbHNl
OworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKKworICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIiwgZGVmYXVsdFZhbHVlKTsK
IH0KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQogCi1ib29sIGRlZmF1bHRJbkFwcEJyb3dz
ZXJQcml2YWN5KCkKLXsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVy
biBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiSW5BcHBCcm93c2VyUHJpdmFjeSIpOwotI2VuZGlmCi0K
LSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KICNpZiBIQVZFKElOQ1JFTUVOVEFMX1BERl9BUElTKQog
Ym9vbCBkZWZhdWx0SW5jcmVtZW50YWxQREZFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9G
RUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiaW5jcmVtZW50
YWxfcGRmIik7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1BQykKLSAgICByZXR1cm4gdHJ1ZTsK
KyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IHRydWU7CiAjZWxzZQotICAgIHJldHVybiBmYWxzZTsK
KyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IGZhbHNlOwogI2VuZGlmCisKKyAgICByZXR1cm4gaXNG
ZWF0dXJlRmxhZ0VuYWJsZWQoImluY3JlbWVudGFsX3BkZiIsIGRlZmF1bHRWYWx1ZSk7CiB9CiAj
ZW5kaWYKIApAQCAtMzAwLDE1ICsyNzIsMTMgQEAgYm9vbCBkZWZhdWx0V2ViWFJFbmFibGVkKCkK
IAogYm9vbCBkZWZhdWx0V2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKQogewotI2lmIEhBVkUoU1lT
VEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJt
X2Zvcm1hdF9yZWFkZXIiKTsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHJldHVy
biB0cnVlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNlbHNlCi0gICAgcmV0dXJu
IGZhbHNlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKKworICAgIHJl
dHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgid2VibV9mb3JtYXRfcmVhZGVyIiwgZGVmYXVsdFZh
bHVlKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJNX0ZPUk1BVF9SRUFERVIpCkBAIC0zMTcs
MjkgKzI4NywxNyBAQCBib29sIGRlZmF1bHRXZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpCiAKIGJv
b2wgZGVmYXVsdFZQOERlY29kZXJFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJF
X0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgidnA4X2RlY29kZXIiKTsK
LSNlbmRpZgotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5h
YmxlZCgidnA4X2RlY29kZXIiLCBmYWxzZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFZQOURlY29kZXJF
bmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgidnA5X2RlY29kZXIiKTsKLSNlbmRpZgotCi0gICAgcmV0dXJu
IHRydWU7CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ2cDlfZGVjb2RlciIsIHRy
dWUpOwogfQogCiBib29sIGRlZmF1bHRWUDlTV0RlY29kZXJFbmFibGVkT25CYXR0ZXJ5KCkKIHsK
LSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFn
RW5hYmxlZCgic3dfdnA5X2RlY29kZXJfb25fYmF0dGVyeSIpOwotI2VuZGlmCi0KLSAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJzd192cDlfZGVjb2Rl
cl9vbl9iYXR0ZXJ5IiwgZmFsc2UpOwogfQogI2VuZGlmIC8vIEVOQUJMRShWUDkpCiAKQEAgLTM0
NywyMCArMzA1LDEyIEBAIGJvb2wgZGVmYXVsdFZQOVNXRGVjb2RlckVuYWJsZWRPbkJhdHRlcnko
KQogCiBib29sIGRlZmF1bHRXZWJNUGFyc2VyRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1f
RkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fcGFy
c2VyIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBpc0ZlYXR1cmVG
bGFnRW5hYmxlZCgid2VibV9wYXJzZXIiLCB0cnVlKTsKIH0KIAogYm9vbCBkZWZhdWx0V2ViTVdl
YkF1ZGlvRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICBy
ZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fd2ViYXVkaW8iKTsKLSNlbmRpZgotCi0g
ICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgid2VibV93
ZWJhdWRpbyIsIGZhbHNlKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TT1VSQ0UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5o
CmluZGV4IGU2ZmYxODM2MGIyYmRiMDhlY2YxNmZhOGZiZGU5NDA5ODk2YzU0NTcuLmE3ZDFmNWFh
ZmRkZTJjYzM2MDkyYjcxZjg1NjczYzA1YzQ5ZWUyNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCkBAIC0zNSw5ICszNSw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykK
LWJvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJik7Ci0jZW5kaWYKK2Jvb2wg
aXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiwgYm9vbCBkZWZhdWx0VmFsdWUgPSBm
YWxzZSk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogYm9vbCBkZWZhdWx0UGFzc2l2ZVRv
dWNoTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCgpOwpAQCAtODUsOCArODMsNiBAQCBib29s
IGRlZmF1bHRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkKCk7CiBib29sIGRlZmF1bHRX
ZWJSVENDb2RlY3NJbkdQVVByb2Nlc3MoKTsKICNlbmRpZgogCi1ib29sIGRlZmF1bHRJbkFwcEJy
b3dzZXJQcml2YWN5KCk7Ci0KICNpZiBIQVZFKElOQ1JFTUVOVEFMX1BERl9BUElTKQogYm9vbCBk
ZWZhdWx0SW5jcmVtZW50YWxQREZFbmFibGVkKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmgg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZh
bHVlcy5oCmluZGV4IGQwOGNiY2JlY2YzNGVjNTE3ZjI0M2Q5ZDA1YWI4MmQwM2U2NTE3NjEuLjky
MWZjNTRhOTA3MjdmMjRhYmYwN2M4ZGVlZTA5OGI2MjJlOTQ1MzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXMuaApAQCAtMzUsOCArMzUsOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotYm9vbCBpc0Zl
YXR1cmVGbGFnRW5hYmxlZChjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFURk9STShDT0NPQSkKK2Jv
b2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiwgYm9vbCBkZWZhdWx0VmFsdWUg
PSBmYWxzZSk7CiAjZW5kaWYKIAogI2lmIEhBVkUoSU5DUkVNRU5UQUxfUERGX0FQSVMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXNEZWZhdWx0VmFsdWVzLm1tCmluZGV4IDlhOTRkNjVkODVkMTc3Yjc3NzJiNzljMzg3ODQ4
YWQ0YzcyNzVmZGMuLjhjNjJlYWI5OWU5NDk2OTM2NTRiZTgwY2M3OWVkZDRhNTVkOTQ0MTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNE
ZWZhdWx0VmFsdWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tCkBAIC00MiwyMiArNDIsMzQgQEAKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgSEFWRShTWVNURU1fRkVBVFVS
RV9GTEFHUykKKyNpZiBQTEFURk9STShDT0NPQSkKIAogLy8gQmVjYXVzZSBvZiA8cmRhcjovL3By
b2JsZW0vNjA2MDgwMDg+LCBXZWJLaXQgaGFzIHRvIHBhcnNlIHRoZSBmZWF0dXJlIGZsYWdzIHBs
aXN0IGZpbGUKLWJvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiBmZWF0dXJl
TmFtZSkKK2Jvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiBmZWF0dXJlTmFt
ZSwgYm9vbCBkZWZhdWx0VmFsdWUpCiB7Ci0gICAgQk9PTCBpc1dlYktpdEJ1bmRsZUZyb21TdGFn
ZWRGcmFtZXdvcmsgPSBbW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVQYXRoXSBoYXNQcmVm
aXg6QCIvTGlicmFyeS9BcHBsZS9TeXN0ZW0vTGlicmFyeS9TdGFnZWRGcmFtZXdvcmtzL1dlYktp
dCJdOwotCi0gICAgaWYgKCFpc1dlYktpdEJ1bmRsZUZyb21TdGFnZWRGcmFtZXdvcmspCi0gICAg
ICAgIHJldHVybiBfb3NfZmVhdHVyZV9lbmFibGVkX2ltcGwoIldlYktpdCIsIChjb25zdCBjaGFy
KilmZWF0dXJlTmFtZS51dGY4KCkuZGF0YSgpKTsKKyNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZM
QUdTKQogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxOU0RpY3Rpb25hcnk+
PiBkaWN0aW9uYXJ5ID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aENvbnRlbnRzT2ZGaWxl
OkAiL0xpYnJhcnkvQXBwbGUvU3lzdGVtL0xpYnJhcnkvRmVhdHVyZUZsYWdzL0RvbWFpbi9XZWJL
aXQucGxpc3QiXTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIGJvb2wgaXNTeXN0ZW1X
ZWJLaXQgPSBbXSB7CisgICAgICAgIE5TQnVuZGxlICpidW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxl
Rm9yQ2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07CisgICAgICAgIHJldHVy
biBbYnVuZGxlLmJ1bmRsZVBhdGggaGFzUHJlZml4OkAiL1N5c3RlbS8iXTsKKyAgICB9KCk7CiAK
LSAgICBpZiAoIVtbZGljdGlvbmFyeS5nZXQoKSBvYmplY3RGb3JLZXk6ZmVhdHVyZU5hbWVdIG9i
amVjdEZvcktleTpAIkVuYWJsZWQiXSkKKyAgICBpZiAoaXNTeXN0ZW1XZWJLaXQpCiAgICAgICAg
IHJldHVybiBfb3NfZmVhdHVyZV9lbmFibGVkX2ltcGwoIldlYktpdCIsIChjb25zdCBjaGFyKilm
ZWF0dXJlTmFtZS5jaGFyYWN0ZXJzOCgpKTsKIAotICAgIHJldHVybiBbW1tkaWN0aW9uYXJ5Lmdl
dCgpIG9iamVjdEZvcktleTpmZWF0dXJlTmFtZV0gb2JqZWN0Rm9yS2V5OkAiRW5hYmxlZCJdIGlz
S2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0gJiYgW1tbZGljdGlvbmFyeS5nZXQoKSBvYmpl
Y3RGb3JLZXk6ZmVhdHVyZU5hbWVdIG9iamVjdEZvcktleTpAIkVuYWJsZWQiXSBib29sVmFsdWVd
OworICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkZWZh
dWx0VmFsdWUpOworICAgIHJldHVybiBfb3NfZmVhdHVyZV9lbmFibGVkX2ltcGwoIldlYktpdCIs
IChjb25zdCBjaGFyKilmZWF0dXJlTmFtZS5jaGFyYWN0ZXJzOCgpKTsKKyNlbmRpZiAvLyBQTEFU
Rk9STShNQUMpCisKKyNlbHNlCisKKyAgICBVTlVTRURfUEFSQU0oZmVhdHVyZU5hbWUpOworICAg
IHJldHVybiBkZWZhdWx0VmFsdWU7CisKKyNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZM
QUdTKQogfQogCiAjZW5kaWYKQEAgLTY2LDExICs3OCw3IEBAIGJvb2wgaXNGZWF0dXJlRmxhZ0Vu
YWJsZWQoY29uc3QgU3RyaW5nJiBmZWF0dXJlTmFtZSkKIAogYm9vbCBkZWZhdWx0SW5jcmVtZW50
YWxQREZFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJl
dHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiaW5jcmVtZW50YWxfcGRmIik7Ci0jZW5kaWYKLQot
ICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImluY3Jl
bWVudGFsX3BkZiIsIGZhbHNlKTsKIH0KIAogI2VuZGlmCkBAIC03OSwxMSArODcsNyBAQCBib29s
IGRlZmF1bHRJbmNyZW1lbnRhbFBERkVuYWJsZWQoKQogCiBib29sIGRlZmF1bHRXZWJYUkVuYWJs
ZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVh
dHVyZUZsYWdFbmFibGVkKCJXZWJYUiIpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJXZWJYUiIsIGZhbHNlKTsKIH0KIAogI2Vu
ZGlmIC8vIEVOQUJMRShXRUJYUikKQEAgLTI3OCwyMCArMjgyLDEyIEBAIGJvb2wgZGVmYXVsdFdo
ZWVsRXZlbnRHZXN0dXJlc0JlY29tZU5vbkJsb2NraW5nKCkKIAogYm9vbCBkZWZhdWx0V2ViTVBh
cnNlckVuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0
dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX3BhcnNlciIpOwotI2VuZGlmCi0KLSAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fcGFyc2Vy
IiwgdHJ1ZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFdlYk1XZWJBdWRpb0VuYWJsZWQoKQogewotI2lm
IEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFi
bGVkKCJ3ZWJtX3dlYmF1ZGlvIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICBy
ZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fd2ViYXVkaW8iLCBmYWxzZSk7CiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAtMzAwLDIwICsyOTYsMTIgQEAgYm9v
bCBkZWZhdWx0V2ViTVdlYkF1ZGlvRW5hYmxlZCgpCiAKIGJvb2wgZGVmYXVsdFZQOERlY29kZXJF
bmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgidnA4X2RlY29kZXIiKTsKLSNlbmRpZgotCi0gICAgcmV0dXJu
IGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgidnA4X2RlY29kZXIiLCBm
YWxzZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFZQOURlY29kZXJFbmFibGVkKCkKIHsKLSNpZiBIQVZF
KFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgi
dnA5X2RlY29kZXIiKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGlz
RmVhdHVyZUZsYWdFbmFibGVkKCJ2cDlfZGVjb2RlciIsIHRydWUpOwogfQogCiAjZW5kaWYgLy8g
RU5BQkxFKFZQOSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCAxOGRiYjM4M2ViY2YzODc4NzM5NmZkYzhmOGZjMzMwOWI2YTM2
NzU3Li5lYzJmZTMxOTAxYjgwN2FlNzA4ZDJkYTBiZGRhY2Q0OGY0M2Q5MDg0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMjEtMDgtMDUgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4K
KworICAgICAgICBbbWFjT1NdIENsZWFuIHVwIEZlYXR1cmUgRmxhZ3MgcmVsYXRlZCBjb2RlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg4MDMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgYSBt
YWMtYmlnc3VyIHNwZWNpZmljIHRlc3QgZXhwZWN0YXRpb24gZmlsZSBiZWNhdXNlIHRoZSB0ZXN0
IGlzIHBhc3Npbmcgbm93LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZl
ci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLWJpZ3N1ci9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1h
ZGRzb3VyY2VidWZmZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorCiAyMDIxLTA4LTAyICBKZWFu
LVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1ZGlvXSBBZGQg
d2VibS92b3JiaXMgY29udGFpbmVyIHN1cHBvcnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy1iaWdzdXIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1z
b3VyY2UvbWVkaWFzb3VyY2UtYWRkc291cmNlYnVmZmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy1iaWdzdXIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9t
ZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYWRkc291cmNlYnVmZmVyLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGUwMzMzOTZkZDBjMTVhYjU1MjJhN2ExN2JhNzQ5
NzQzN2QwOTc5OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtYmlnc3VyL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZlci1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0KLVBBU1MgVGVzdCBhZGRTb3Vy
Y2VCdWZmZXIoKSBpbiAnZW5kZWQnIHN0YXRlLgotUEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigp
IHdpdGggZW1wdHkgdHlwZQotUEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggbnVsbAot
UEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggdW5zdXBwb3J0ZWQgdHlwZQotRkFJTCBU
ZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggVm9yYmlzIGFuZCBWUDggYXNzZXJ0X3RydWU6IHZp
ZGVvL3dlYm07Y29kZWNzPSJ2cDgsdm9yYmlzIiBpcyBzdXBwb3J0ZWQgZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKLUZBSUwgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRoIFZvcmJpcyBhbmQgVlA4
IGluIHNlcGFyYXRlIFNvdXJjZUJ1ZmZlcnMgYXNzZXJ0X3RydWU6IGF1ZGlvL3dlYm07Y29kZWNz
PSJ2b3JiaXMiIGlzIHN1cHBvcnRlZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotUEFTUyBUZXN0
IGFkZFNvdXJjZUJ1ZmZlcigpIHZpZGVvIG9ubHkKLVBBU1MgVGVzdCBhZGRTb3VyY2VCdWZmZXIo
KSBhdWRpbyBvbmx5Ci1QQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBBQUMgYW5kIEgu
MjY0Ci1QQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBBQUMgYW5kIEguMjY0IGluIHNl
cGFyYXRlIFNvdXJjZUJ1ZmZlcnMKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEtc291cmNlL21lZGlhc291
cmNlLWFkZHNvdXJjZWJ1ZmZlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3Vy
Y2UtYWRkc291cmNlYnVmZmVyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNzRlMTFjOTIxN2JjZDcxMDllMDEyMTQ3ZjlhZWExYTIxZmFkMTc1ZS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFz
b3VyY2UtYWRkc291cmNlYnVmZmVyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEy
ICswLDAgQEAKLQotUEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIGluICdlbmRlZCcgc3RhdGUu
Ci1QQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBlbXB0eSB0eXBlCi1QQVNTIFRlc3Qg
YWRkU291cmNlQnVmZmVyKCkgd2l0aCBudWxsCi1QQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkg
d2l0aCB1bnN1cHBvcnRlZCB0eXBlCi1GQUlMIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBW
b3JiaXMgYW5kIFZQOCBhc3NlcnRfdHJ1ZTogdmlkZW8vd2VibTtjb2RlY3M9InZwOCx2b3JiaXMi
IGlzIHN1cHBvcnRlZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBUZXN0IGFkZFNvdXJj
ZUJ1ZmZlcigpIHdpdGggVm9yYmlzIGFuZCBWUDggaW4gc2VwYXJhdGUgU291cmNlQnVmZmVycyBh
c3NlcnRfdHJ1ZTogdmlkZW8vd2VibTtjb2RlY3M9InZwOCIgaXMgc3VwcG9ydGVkIGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCi1QQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgdmlkZW8gb25seQot
UEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIGF1ZGlvIG9ubHkKLVBBU1MgVGVzdCBhZGRTb3Vy
Y2VCdWZmZXIoKSB3aXRoIEFBQyBhbmQgSC4yNjQKLVBBU1MgVGVzdCBhZGRTb3VyY2VCdWZmZXIo
KSB3aXRoIEFBQyBhbmQgSC4yNjQgaW4gc2VwYXJhdGUgU291cmNlQnVmZmVycwotCg==
</data>
<flag name="commit-queue"
          id="457726"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435039</attachid>
            <date>2021-08-05 16:51:35 -0700</date>
            <delta_ts>2021-08-05 17:00:32 -0700</delta_ts>
            <desc>Revise the patch based on Tim&apos;s comments</desc>
            <filename>bug-228803-20210805165134.patch</filename>
            <type>text/plain</type>
            <size>25354</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYyNTJlNDU5ZGNmMmFhOTZm
MDc1ZDMwMjJlMjIxNGYzMjY3NjMyZjYuLjQ2MzZmOWI5NGJiMGQ5MWMxMjdiMzM2YTZhZThhODJm
ZDQ3OTU5ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMjEtMDgtMDUgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIENsZWFuIHVwIEZlYXR1
cmUgRmxhZ3MgcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjg4MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxMTQyOTgyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgT24gbWFjT1MsIFNh
ZmFyaSBUZWNobm9sb2d5IFByZXZpZXcgb3IgYSBsb2NhbCBidWlsZCBXZWJLaXQvU2FmYXJpIHdp
bGwgYWx3YXlzCisgICAgICAgIGdldCB0aGUgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcyB0aHJv
dWdoIHRoZSAiRmVhdHVyZSBGbGFncyIgU1BJLiBVbmZvcnR1bmF0ZWx5LAorICAgICAgICB0aGlz
IGFwcHJvYWNoIHdvbid0IHdvcmsgaWYgdGhlIE9TIGRvZXMgbm90IHByb3ZpZGUgY29ycmVjdCBk
ZWZhdWx0IHByZWZlcmVuY2UgdmFsdWVzLgorCisgICAgICAgIFdpdGggdGhpcyBwYXRjaCwgd2Ug
b25seSBnZXQgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcyB3aXRoIHRoZSBTUEkgZm9yIHN5c3Rl
bQorICAgICAgICBXZWJLaXQgb24gbWFjT1MuIEZvciBhbGwgb3RoZXIgY2FzZXMsIHdlIHVzZSBo
YXJkY29kZWQgdmFsdWVzLiBTbyB0aGF0CisgICAgICAgIFdlYktpdCB3aWxsIGFsd2F5cyBnZXQg
dGhlIGNvcnJlY3QgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcy4KKworICAgICAgICAqIEZlYXR1
cmVGbGFncy9XZWJLaXQtYXBwbGV0dm9zLnBsaXN0OgorICAgICAgICAqIEZlYXR1cmVGbGFncy9X
ZWJLaXQtaW9zLnBsaXN0OgorICAgICAgICAqIEZlYXR1cmVGbGFncy9XZWJLaXQtbWFjb3MucGxp
c3Q6CisgICAgICAgICogRmVhdHVyZUZsYWdzL1dlYktpdC13YXRjaG9zLnBsaXN0OgorICAgICAg
ICAqIFNoYXJlZC9Db2NvYS9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6aXNGZWF0dXJlRmxhZ0VuYWJsZWQpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViS2l0Ojppc0ZlYXR1
cmVGbGFnRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRBc3luY0ZyYW1lQW5kT3Zl
cmZsb3dTY3JvbGxpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFVzZUdQVVBy
b2Nlc3NGb3JDYW52YXNSZW5kZXJpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVs
dFVzZUdQVVByb2Nlc3NGb3JET01SZW5kZXJpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6
ZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0Ojpk
ZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRl
ZmF1bHRDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6
ZGVmYXVsdENhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0
OjpkZWZhdWx0V2ViUlRDQ29kZWNzSW5HUFVQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6ZGVm
YXVsdEluY3JlbWVudGFsUERGRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXZWJN
Rm9ybWF0UmVhZGVyRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRWUDhEZWNvZGVy
RW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRWUDlEZWNvZGVyRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OmRlZmF1bHRWUDlTV0RlY29kZXJFbmFibGVkT25CYXR0ZXJ5KToKKyAg
ICAgICAgKFdlYktpdDo6ZGVmYXVsdFdlYk1QYXJzZXJFbmFibGVkKToKKyAgICAgICAgKFdlYktp
dDo6ZGVmYXVsdFdlYk1XZWJBdWRpb0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0
SW5BcHBCcm93c2VyUHJpdmFjeSk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL1dlYlByZWZl
cmVuY2VzRGVmYXVsdFZhbHVlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6
CisKIDIwMjEtMDgtMDIgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAg
ICBbR1BVUF0gUmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKCkgZG9l
cyBub3QgY2hhbmdlIGl0cyBwcmVmZXJyZWRCdWZmZXJTaXplCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKaW5kZXggMGRmZjQzOGMxMjA3NTdmMzYzZTAwZGI4MzI0NzM1ZjU1ZTBhMWI5Yy4uZmNm
MjRiMTViODllZjQ4ZmQ0Yjg3ZWY3NDI3ZTE0NGY3NzJkNmJiOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA4LTA1ICBQZW5nIExpdSAgPHBlbmcu
bGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBDbGVhbiB1cCBGZWF0dXJlIEZsYWdz
IHJlbGF0ZWQgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI4ODAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MTE0Mjk4Mj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIE9uIG1hY09TLCBTYWZhcmkgVGVj
aG5vbG9neSBQcmV2aWV3IG9yIGEgbG9jYWwgYnVpbGQgV2ViS2l0L1NhZmFyaSB3aWxsIGFsd2F5
cworICAgICAgICBnZXQgdGhlIGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMgdGhyb3VnaCB0aGUg
IkZlYXR1cmUgRmxhZ3MiIFNQSS4gVW5mb3J0dW5hdGVseSwKKyAgICAgICAgdGhpcyBhcHByb2Fj
aCB3b24ndCB3b3JrIGlmIHRoZSBPUyBkb2VzIG5vdCBwcm92aWRlIGNvcnJlY3QgZGVmYXVsdCBw
cmVmZXJlbmNlIHZhbHVlcy4KKworICAgICAgICBXaXRoIHRoaXMgcGF0Y2gsIHdlIG9ubHkgZ2V0
IGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMgd2l0aCB0aGUgU1BJIGZvciBzeXN0ZW0KKyAgICAg
ICAgV2ViS2l0IG9uIG1hY09TLiBGb3IgYWxsIG90aGVyIGNhc2VzLCB3ZSB1c2UgaGFyZGNvZGVk
IHZhbHVlcy4gU28gdGhhdAorICAgICAgICBXZWJLaXQgd2lsbCBhbHdheXMgZ2V0IHRoZSBjb3Jy
ZWN0IGRlZmF1bHQgcHJlZmVyZW5jZSB2YWx1ZXMuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5j
ZXNEZWZhdWx0VmFsdWVzLm1tOgorICAgICAgICAoV2ViS2l0Ojppc0ZlYXR1cmVGbGFnRW5hYmxl
ZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRJbmNyZW1lbnRhbFBERkVuYWJsZWQpOgorICAg
ICAgICAoV2ViS2l0OjpkZWZhdWx0V2ViWFJFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVm
YXVsdFdlYk1QYXJzZXJFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFdlYk1XZWJB
dWRpb0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0VlA4RGVjb2RlckVuYWJsZWQp
OgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0VlA5RGVjb2RlckVuYWJsZWQpOgorCiAyMDIxLTA3
LTI5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAg
U3RvcCBidWlsZGluZyBXZWJHUFUgYW5kIHRoZSBXSExTTCBjb21waWxlciB0byBkZWNyZWFzZSBi
aW5hcnkgc2l6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9GZWF0dXJlRmxhZ3MvV2ViS2l0
LWFwcGxldHZvcy5wbGlzdCBiL1NvdXJjZS9XZWJLaXQvRmVhdHVyZUZsYWdzL1dlYktpdC1hcHBs
ZXR2b3MucGxpc3QKaW5kZXggNDgxNjM3NjUzMTk5MjNlZTllZTM3OWI0ZjlkYmJmN2VhMWIzZjBm
OS4uZTRjNjNlNTI3MzdhMDZjYjBiODBkMzBiMGQzZGNjYjdhNTI2ZTcyNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9GZWF0dXJlRmxhZ3MvV2ViS2l0LWFwcGxldHZvcy5wbGlzdAorKysgYi9T
b3VyY2UvV2ViS2l0L0ZlYXR1cmVGbGFncy9XZWJLaXQtYXBwbGV0dm9zLnBsaXN0CkBAIC02Nyw2
ICs2NywxMSBAQAogCQk8a2V5PkVuYWJsZWQ8L2tleT4KIAkJPHRydWUvPgogCTwvZGljdD4KKwk8
a2V5PnZwOF9kZWNvZGVyPC9rZXk+CisJPGRpY3Q+CisJCTxrZXk+RW5hYmxlZDwva2V5PgorCQk8
dHJ1ZS8+CisJPC9kaWN0PgogCTxrZXk+V2ViWFI8L2tleT4KIAk8ZGljdD4KIAkJPGtleT5FbmFi
bGVkPC9rZXk+CkBAIC04MiwxMSArODcsNiBAQAogCQk8a2V5PkVuYWJsZWQ8L2tleT4KIAkJPHRy
dWUvPgogCTwvZGljdD4KLQk8a2V5PndlYm1fd2ViYXVkaW88L2tleT4KLQk8ZGljdD4KLQkJPGtl
eT5FbmFibGVkPC9rZXk+Ci0JCTx0cnVlLz4KLQk8L2RpY3Q+CiAJPGtleT5SQl9mdWxsX21hbmFn
ZV9XS19qZXRzYW08L2tleT4KIAk8ZGljdD4KIAkJPGtleT5FbmFibGVkPC9rZXk+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0ZlYXR1cmVGbGFncy9XZWJLaXQtaW9zLnBsaXN0IGIvU291cmNl
L1dlYktpdC9GZWF0dXJlRmxhZ3MvV2ViS2l0LWlvcy5wbGlzdAppbmRleCA3OWE0ZTNjOTg0MmIy
MWQ4NDM1ZmMxOTFkMTg2MzIwNWE3YWQyMTNlLi5mNTk5YTQwMjBjZDEyMWM4ZDg4ZTE0YmI5ZWVi
YjViNTM4MzU0M2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0ZlYXR1cmVGbGFncy9XZWJL
aXQtaW9zLnBsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRmVhdHVyZUZsYWdzL1dlYktpdC1pb3Mu
cGxpc3QKQEAgLTY3LDYgKzY3LDExIEBACiAJCTxrZXk+RW5hYmxlZDwva2V5PgogCQk8dHJ1ZS8+
CiAJPC9kaWN0PgorCTxrZXk+dnA4X2RlY29kZXI8L2tleT4KKwk8ZGljdD4KKwkJPGtleT5FbmFi
bGVkPC9rZXk+CisJCTx0cnVlLz4KKwk8L2RpY3Q+CiAJPGtleT5XZWJYUjwva2V5PgogCTxkaWN0
PgogCQk8a2V5PkVuYWJsZWQ8L2tleT4KQEAgLTgyLDExICs4Nyw2IEBACiAJCTxrZXk+RW5hYmxl
ZDwva2V5PgogCQk8dHJ1ZS8+CiAJPC9kaWN0PgotCTxrZXk+d2VibV93ZWJhdWRpbzwva2V5Pgot
CTxkaWN0PgotCQk8a2V5PkVuYWJsZWQ8L2tleT4KLQkJPHRydWUvPgotCTwvZGljdD4KIAk8a2V5
PlJCX2Z1bGxfbWFuYWdlX1dLX2pldHNhbTwva2V5PgogCTxkaWN0PgogCQk8a2V5PkVuYWJsZWQ8
L2tleT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRmVhdHVyZUZsYWdzL1dlYktpdC1tYWNv
cy5wbGlzdCBiL1NvdXJjZS9XZWJLaXQvRmVhdHVyZUZsYWdzL1dlYktpdC1tYWNvcy5wbGlzdApp
bmRleCA3OWE0ZTNjOTg0MmIyMWQ4NDM1ZmMxOTFkMTg2MzIwNWE3YWQyMTNlLi5iNGY3MTEwYTJj
MDkyYTE5NDVhODEzZWM2NDZiOTMyMTVjZWQ2MjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0ZlYXR1cmVGbGFncy9XZWJLaXQtbWFjb3MucGxpc3QKKysrIGIvU291cmNlL1dlYktpdC9GZWF0
dXJlRmxhZ3MvV2ViS2l0LW1hY29zLnBsaXN0CkBAIC02Nyw2ICs2NywxMSBAQAogCQk8a2V5PkVu
YWJsZWQ8L2tleT4KIAkJPHRydWUvPgogCTwvZGljdD4KKwk8a2V5PnZwOF9kZWNvZGVyPC9rZXk+
CisJPGRpY3Q+CisJCTxrZXk+RW5hYmxlZDwva2V5PgorCQk8dHJ1ZS8+CisJPC9kaWN0PgogCTxr
ZXk+V2ViWFI8L2tleT4KIAk8ZGljdD4KIAkJPGtleT5FbmFibGVkPC9rZXk+CkBAIC04NSw3ICs5
MCw3IEBACiAJPGtleT53ZWJtX3dlYmF1ZGlvPC9rZXk+CiAJPGRpY3Q+CiAJCTxrZXk+RW5hYmxl
ZDwva2V5PgotCQk8dHJ1ZS8+CisJCTxmYWxzZS8+CiAJPC9kaWN0PgogCTxrZXk+UkJfZnVsbF9t
YW5hZ2VfV0tfamV0c2FtPC9rZXk+CiAJPGRpY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0ZlYXR1cmVGbGFncy9XZWJLaXQtd2F0Y2hvcy5wbGlzdCBiL1NvdXJjZS9XZWJLaXQvRmVhdHVy
ZUZsYWdzL1dlYktpdC13YXRjaG9zLnBsaXN0CmluZGV4IDQ4MTYzNzY1MzE5OTIzZWU5ZWUzNzli
NGY5ZGJiZjdlYTFiM2YwZjkuLmU0YzYzZTUyNzM3YTA2Y2IwYjgwZDMwYjBkM2RjY2I3YTUyNmU3
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRmVhdHVyZUZsYWdzL1dlYktpdC13YXRjaG9z
LnBsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRmVhdHVyZUZsYWdzL1dlYktpdC13YXRjaG9zLnBs
aXN0CkBAIC02Nyw2ICs2NywxMSBAQAogCQk8a2V5PkVuYWJsZWQ8L2tleT4KIAkJPHRydWUvPgog
CTwvZGljdD4KKwk8a2V5PnZwOF9kZWNvZGVyPC9rZXk+CisJPGRpY3Q+CisJCTxrZXk+RW5hYmxl
ZDwva2V5PgorCQk8dHJ1ZS8+CisJPC9kaWN0PgogCTxrZXk+V2ViWFI8L2tleT4KIAk8ZGljdD4K
IAkJPGtleT5FbmFibGVkPC9rZXk+CkBAIC04MiwxMSArODcsNiBAQAogCQk8a2V5PkVuYWJsZWQ8
L2tleT4KIAkJPHRydWUvPgogCTwvZGljdD4KLQk8a2V5PndlYm1fd2ViYXVkaW88L2tleT4KLQk8
ZGljdD4KLQkJPGtleT5FbmFibGVkPC9rZXk+Ci0JCTx0cnVlLz4KLQk8L2RpY3Q+CiAJPGtleT5S
Ql9mdWxsX21hbmFnZV9XS19qZXRzYW08L2tleT4KIAk8ZGljdD4KIAkJPGtleT5FbmFibGVkPC9r
ZXk+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJQcmVmZXJlbmNl
c0RlZmF1bHRWYWx1ZXNDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYlBy
ZWZlcmVuY2VzRGVmYXVsdFZhbHVlc0NvY29hLm1tCmluZGV4IGNkYjM2M2E4ZjhhMDNiYTM1NjM0
OTAxYTQ4OWIwMDVmMzg5YTkyM2MuLjBhY2Y5NjA0ODBlMmU5MmIyNjNkMTc3MDdhY2E5MTJjZDZk
MGIzNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYlByZWZlcmVu
Y2VzRGVmYXVsdFZhbHVlc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29h
L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlc0NvY29hLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAj
aW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIldlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5o
IgogCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCisj
aWYgUExBVEZPUk0oQ09DT0EpCiAKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNCdW5kbGUuaD4KIApA
QCAtMzgsMjIgKzM4LDMxIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogLy8gQmVjYXVzZSBvZiA8
cmRhcjovL3Byb2JsZW0vNjA2MDgwMDg+LCBXZWJLaXQgaGFzIHRvIHBhcnNlIHRoZSBmZWF0dXJl
IGZsYWdzIHBsaXN0IGZpbGUKLWJvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5n
JiBmZWF0dXJlTmFtZSkKK2Jvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiBm
ZWF0dXJlTmFtZSwgYm9vbCBkZWZhdWx0VmFsdWUpCiB7Ci0gICAgc3RhdGljIGJvb2wgaXNXZWJL
aXRCdW5kbGVGcm9tU3RhZ2VkRnJhbWV3b3JrID0gW10gewotICAgICAgICBOU0J1bmRsZSAqd2Vi
a2l0MkJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpOU0NsYXNzRnJvbVN0cmluZyhA
IldLV2ViVmlldyIpXTsKLSAgICAgICAgcmV0dXJuIFt3ZWJraXQyQnVuZGxlLmJ1bmRsZVBhdGgg
aGFzUHJlZml4OkAiL0xpYnJhcnkvQXBwbGUvU3lzdGVtL0xpYnJhcnkvU3RhZ2VkRnJhbWV3b3Jr
cy9TYWZhcmkvIl07CisjaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKKworI2lmIFBMQVRG
T1JNKE1BQykKKyAgICBzdGF0aWMgYm9vbCBpc1N5c3RlbVdlYktpdCA9IFtdIHsKKyAgICAgICAg
TlNCdW5kbGUgKmJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpOU0NsYXNzRnJvbVN0
cmluZyhAIldLV2ViVmlldyIpXTsKKyAgICAgICAgcmV0dXJuIFtidW5kbGUuYnVuZGxlUGF0aCBo
YXNQcmVmaXg6QCIvU3lzdGVtLyJdOwogICAgIH0oKTsKIAotICAgIGlmICghaXNXZWJLaXRCdW5k
bGVGcm9tU3RhZ2VkRnJhbWV3b3JrKQotICAgICAgICByZXR1cm4gX29zX2ZlYXR1cmVfZW5hYmxl
ZF9pbXBsKCJXZWJLaXQiLCAoY29uc3QgY2hhciopZmVhdHVyZU5hbWUudXRmOCgpLmRhdGEoKSk7
CisgICAgaWYgKGlzU3lzdGVtV2ViS2l0KQorICAgICAgICByZXR1cm4gX29zX2ZlYXR1cmVfZW5h
YmxlZF9pbXBsKCJXZWJLaXQiLCAoY29uc3QgY2hhciopZmVhdHVyZU5hbWUuY2hhcmFjdGVyczgo
KSk7CisKKyAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
ZGVmYXVsdFZhbHVlKTsKKyAgICByZXR1cm4gX29zX2ZlYXR1cmVfZW5hYmxlZF9pbXBsKCJXZWJL
aXQiLCAoY29uc3QgY2hhciopZmVhdHVyZU5hbWUuY2hhcmFjdGVyczgoKSk7CisjZW5kaWYgLy8g
UExBVEZPUk0oTUFDKQogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxOU0Rp
Y3Rpb25hcnk+PiBkaWN0aW9uYXJ5ID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aENvbnRl
bnRzT2ZGaWxlOkAiL0xpYnJhcnkvQXBwbGUvU3lzdGVtL0xpYnJhcnkvRmVhdHVyZUZsYWdzL0Rv
bWFpbi9XZWJLaXQucGxpc3QiXTsKKyNlbHNlCiAKLSAgICBpZiAoIVtbZGljdGlvbmFyeS5nZXQo
KSBvYmplY3RGb3JLZXk6ZmVhdHVyZU5hbWVdIG9iamVjdEZvcktleTpAIkVuYWJsZWQiXSkKLSAg
ICAgICAgcmV0dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNo
YXIqKWZlYXR1cmVOYW1lLmNoYXJhY3RlcnM4KCkpOworICAgIFVOVVNFRF9QQVJBTShmZWF0dXJl
TmFtZSk7CisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKIAotICAgIHJldHVybiBbW1tkaWN0aW9u
YXJ5LmdldCgpIG9iamVjdEZvcktleTpmZWF0dXJlTmFtZV0gb2JqZWN0Rm9yS2V5OkAiRW5hYmxl
ZCJdIGlzS2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0gJiYgW1tbZGljdGlvbmFyeS5nZXQo
KSBvYmplY3RGb3JLZXk6ZmVhdHVyZU5hbWVdIG9iamVjdEZvcktleTpAIkVuYWJsZWQiXSBib29s
VmFsdWVdOworI2VuZGlmIC8vIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKaW5kZXggYWZhZmUzYzdlNTMzMDYyNGVhODQ2ZWJhMDc1
YmYyODU1YTBhMjM3ZS4uMjMxNDY3OTE5NzYzMWFhN2FiNjNjOTZkYmYyYmQyNWU2MWE5ZTA3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFs
dWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRW
YWx1ZXMuY3BwCkBAIC00MSw2ICs0MSwxMyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorI2lm
ICFQTEFURk9STShDT0NPQSkKK2Jvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5n
JiwgYm9vbCBkZWZhdWx0VmFsdWUpCit7CisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKK30KKyNl
bmRpZgorCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogYm9vbCBkZWZhdWx0UGFzc2l2ZVRv
dWNoTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCgpCkBAIC0xMDgsMTUgKzExNSwxMyBAQCBz
dGF0aWMgYm9vbCBkZWZhdWx0QXN5bmNGcmFtZUFuZE92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCgp
CiAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKIAotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxB
R1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJhc3luY19mcmFtZV9hbmRfb3Zl
cmZsb3dfc2Nyb2xsaW5nIik7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1BQykKLSAgICByZXR1
cm4gdHJ1ZTsKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IHRydWU7CisjZWxzZQorICAgIGJvb2wg
ZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKIAotICAgIHJldHVybiBmYWxzZTsKKyAgICBy
ZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImFzeW5jX2ZyYW1lX2FuZF9vdmVyZmxvd19zY3Jv
bGxpbmciLCBkZWZhdWx0VmFsdWUpOwogfQogCiBib29sIGRlZmF1bHRBc3luY0ZyYW1lU2Nyb2xs
aW5nRW5hYmxlZCgpCkBAIC0xNTAsNDkgKzE1NSwzMyBAQCBib29sIGRlZmF1bHRPZmZsaW5lV2Vi
QXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKQogYm9vbCBkZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvckNh
bnZhc1JlbmRlcmluZ0VuYWJsZWQoKQogewogI2lmIEVOQUJMRShHUFVfUFJPQ0VTU19CWV9ERUZB
VUxUKQotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVy
ZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc19jYW52YXNfcmVuZGVyaW5nIik7CisgICAgYm9vbCBk
ZWZhdWx0VmFsdWUgPSB0cnVlOwogI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBI
QVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAg
Ym9vbCBkZWZhdWx0VmFsdWUgPSBmYWxzZTsKICNlbmRpZgorCisgICAgcmV0dXJuIGlzRmVhdHVy
ZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc19jYW52YXNfcmVuZGVyaW5nIiwgZGVmYXVsdFZhbHVl
KTsKIH0KIAogYm9vbCBkZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvckRPTVJlbmRlcmluZ0VuYWJsZWQo
KQogewotI2lmIEVOQUJMRShHUFVfUFJPQ0VTU19CWV9ERUZBVUxUKQotI2lmIEhBVkUoU1lTVEVN
X0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJv
Y2Vzc19kb21fcmVuZGVyaW5nIik7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZiAv
LyBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0j
ZW5kaWYKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX2RvbV9y
ZW5kZXJpbmciLCBmYWxzZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JNZWRp
YUVuYWJsZWQoKQogewogI2lmIEVOQUJMRShHUFVfUFJPQ0VTU19CWV9ERUZBVUxUKQotI2lmIEhB
VkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVk
KCJncHVfcHJvY2Vzc19tZWRpYSIpOwotI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZiAv
LyBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQorICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1
ZTsKICNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFs
c2U7CiAjZW5kaWYKKworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nl
c3NfbWVkaWEiLCBkZWZhdWx0VmFsdWUpOwogfQogCiBib29sIGRlZmF1bHRVc2VHUFVQcm9jZXNz
Rm9yV2ViR0xFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAg
IHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2ViZ2wiKTsKLSNlbmRp
ZgotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgi
Z3B1X3Byb2Nlc3Nfd2ViZ2wiLCBmYWxzZSk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BS
T0NFU1MpCkBAIC0yMDIsMTkgKzE5MSwxNyBAQCBib29sIGRlZmF1bHRVc2VHUFVQcm9jZXNzRm9y
V2ViR0xFbmFibGVkKCkKIGJvb2wgZGVmYXVsdENhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJs
ZWQoKQogewogI2lmIEVOQUJMRShHUFVfUFJPQ0VTU19CWV9ERUZBVUxUKQorICAgIGJvb2wgZGVm
YXVsdFZhbHVlID0gdHJ1ZTsKKyNlbHNlCisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSBmYWxzZTsK
KyNlbmRpZgogCi0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKICNpZiBQTEFURk9STShN
QUMpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc193ZWJydGMi
KTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYnJ0YyIs
IGRlZmF1bHRWYWx1ZSk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfbWVkaWEiKTsKLSNlbmRpZgotI2Vsc2UK
LSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQot
CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc19tZWRpYSIsIGRl
ZmF1bHRWYWx1ZSk7CiAjZWxzZQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gZGVmYXVs
dFZhbHVlOwogI2VuZGlmCiB9CiAKQEAgLTIzMCwxNCArMjE3LDEyIEBAIGJvb2wgZGVmYXVsdENh
cHR1cmVBdWRpb0luVUlQcm9jZXNzRW5hYmxlZCgpCiBib29sIGRlZmF1bHRDYXB0dXJlVmlkZW9J
bkdQVVByb2Nlc3NFbmFibGVkKCkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1NfQllfREVGQVVM
VCkKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVG
bGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIik7Ci0jZWxzZQotICAgIHJldHVybiB0cnVl
OwotI2VuZGlmIC8vIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCisgICAgYm9vbCBkZWZhdWx0
VmFsdWUgPSB0cnVlOwogI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBkZWZhdWx0
VmFsdWUgPSBmYWxzZTsKICNlbmRpZgorCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVk
KCJncHVfcHJvY2Vzc193ZWJydGMiLCBkZWZhdWx0VmFsdWUpOwogfQogCiAjZW5kaWYgLy8gRU5B
QkxFKE1FRElBX1NUUkVBTSkKQEAgLTI0NywzOSArMjMyLDI2IEBAIGJvb2wgZGVmYXVsdENhcHR1
cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQoKQogYm9vbCBkZWZhdWx0V2ViUlRDQ29kZWNzSW5H
UFVQcm9jZXNzKCkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1NfQllfREVGQVVMVCkKLSNpZiBI
QVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxl
ZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIik7Ci0jZWxzZQotICAgIHJldHVybiB0cnVlOwotI2VuZGlm
IC8vIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSB0
cnVlOwogI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSBm
YWxzZTsKICNlbmRpZgorCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJv
Y2Vzc193ZWJydGMiLCBkZWZhdWx0VmFsdWUpOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9S
VEMpCiAKLWJvb2wgZGVmYXVsdEluQXBwQnJvd3NlclByaXZhY3koKQotewotI2lmIEhBVkUoU1lT
VEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJJbkFw
cEJyb3dzZXJQcml2YWN5Iik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQogI2lm
IEhBVkUoSU5DUkVNRU5UQUxfUERGX0FQSVMpCiBib29sIGRlZmF1bHRJbmNyZW1lbnRhbFBERkVu
YWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlz
RmVhdHVyZUZsYWdFbmFibGVkKCJpbmNyZW1lbnRhbF9wZGYiKTsKLSNlbmRpZgotCiAjaWYgUExB
VEZPUk0oTUFDKQotICAgIHJldHVybiB0cnVlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1
ZTsKICNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFs
c2U7CiAjZW5kaWYKKworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiaW5jcmVtZW50
YWxfcGRmIiwgZGVmYXVsdFZhbHVlKTsKIH0KICNlbmRpZgogCkBAIC0zMDAsMTUgKzI3MiwxMyBA
QCBib29sIGRlZmF1bHRXZWJYUkVuYWJsZWQoKQogCiBib29sIGRlZmF1bHRXZWJNRm9ybWF0UmVh
ZGVyRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1
cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fZm9ybWF0X3JlYWRlciIpOwotI2VuZGlmCi0K
ICNpZiBQTEFURk9STShNQUMpCi0gICAgcmV0dXJuIHRydWU7CisgICAgYm9vbCBkZWZhdWx0VmFs
dWUgPSB0cnVlOwogI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBkZWZhdWx0VmFs
dWUgPSBmYWxzZTsKICNlbmRpZgorCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3
ZWJtX2Zvcm1hdF9yZWFkZXIiLCBkZWZhdWx0VmFsdWUpOwogfQogCiAjZW5kaWYgLy8gRU5BQkxF
KFdFQk1fRk9STUFUX1JFQURFUikKQEAgLTMxNywyOSArMjg3LDE3IEBAIGJvb2wgZGVmYXVsdFdl
Yk1Gb3JtYXRSZWFkZXJFbmFibGVkKCkKIAogYm9vbCBkZWZhdWx0VlA4RGVjb2RlckVuYWJsZWQo
KQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVy
ZUZsYWdFbmFibGVkKCJ2cDhfZGVjb2RlciIpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ2cDhfZGVjb2RlciIsIHRydWUpOwog
fQogCiBib29sIGRlZmF1bHRWUDlEZWNvZGVyRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1f
RkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoInZwOV9kZWNv
ZGVyIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBpc0ZlYXR1cmVG
bGFnRW5hYmxlZCgidnA5X2RlY29kZXIiLCB0cnVlKTsKIH0KIAogYm9vbCBkZWZhdWx0VlA5U1dE
ZWNvZGVyRW5hYmxlZE9uQmF0dGVyeSgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFH
UykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoInN3X3ZwOV9kZWNvZGVyX29uX2Jh
dHRlcnkiKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1
cmVGbGFnRW5hYmxlZCgic3dfdnA5X2RlY29kZXJfb25fYmF0dGVyeSIsIGZhbHNlKTsKIH0KICNl
bmRpZiAvLyBFTkFCTEUoVlA5KQogCkBAIC0zNDcsMjAgKzMwNSwxMiBAQCBib29sIGRlZmF1bHRW
UDlTV0RlY29kZXJFbmFibGVkT25CYXR0ZXJ5KCkKIAogYm9vbCBkZWZhdWx0V2ViTVBhcnNlckVu
YWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlz
RmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX3BhcnNlciIpOwotI2VuZGlmCi0KLSAgICByZXR1cm4g
dHJ1ZTsKKyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fcGFyc2VyIiwgdHJ1
ZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFdlYk1XZWJBdWRpb0VuYWJsZWQoKQogewotI2lmIEhBVkUo
U1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3
ZWJtX3dlYmF1ZGlvIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4g
aXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fd2ViYXVkaW8iLCBmYWxzZSk7CiB9CiAKICNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfU09VUkNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaAppbmRleCBlNmZmMTgzNjBiMmJkYjA4ZWNmMTZm
YThmYmRlOTQwOTg5NmM1NDU3Li5hN2QxZjVhYWZkZGUyY2MzNjA5MmI3MWY4NTY3M2MwNWM0OWVl
MjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXMuaApAQCAtMzUsOSArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotI2lm
IEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi1ib29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNv
bnN0IFN0cmluZyYpOwotI2VuZGlmCitib29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0
cmluZyYsIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2UpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKIGJvb2wgZGVmYXVsdFBhc3NpdmVUb3VjaExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1l
bnQoKTsKQEAgLTg1LDggKzgzLDYgQEAgYm9vbCBkZWZhdWx0Q2FwdHVyZVZpZGVvSW5HUFVQcm9j
ZXNzRW5hYmxlZCgpOwogYm9vbCBkZWZhdWx0V2ViUlRDQ29kZWNzSW5HUFVQcm9jZXNzKCk7CiAj
ZW5kaWYKIAotYm9vbCBkZWZhdWx0SW5BcHBCcm93c2VyUHJpdmFjeSgpOwotCiAjaWYgSEFWRShJ
TkNSRU1FTlRBTF9QREZfQVBJUykKIGJvb2wgZGVmYXVsdEluY3JlbWVudGFsUERGRW5hYmxlZCgp
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA4
ZDQxZTQ1MjNmNDdmOTIxMDUyNTljNjMwNjA1MTVlZjRmYzk4YzMzLi5lN2UwNDBiYmFjNzk5MzJk
YzUwNGNmYzgwMDBmMmNjNThkZTBlZDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKQEAgLTgyMzksNyArODIzOSw3IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMgV2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9j
CiAgICAgcGFyYW1ldGVycy5zaG91bGRFbmFibGVWUDlEZWNvZGVyID0gcHJlZmVyZW5jZXMoKS52
cDlEZWNvZGVyRW5hYmxlZCgpOwogI2lmIEVOQUJMRShWUDkpICYmIFBMQVRGT1JNKENPQ09BKQog
ICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFsc28gYmVpbmcgcGFzc2VkIG92ZXIgdGhlIHRvIFdlYlBy
b2Nlc3MgdmlhIHRoZSBQcmVmZXJlbmNlc1N0b3JlLgotICAgIHBhcmFtZXRlcnMuc2hvdWxkRW5h
YmxlVlA4RGVjb2RlciA9IHByZWZlcmVuY2VzKCkudnA5RGVjb2RlckVuYWJsZWQoKTsKKyAgICBw
YXJhbWV0ZXJzLnNob3VsZEVuYWJsZVZQOERlY29kZXIgPSBwcmVmZXJlbmNlcygpLnZwOERlY29k
ZXJFbmFibGVkKCk7CiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYWxzbyBiZWluZyBwYXNzZWQgb3Zl
ciB0aGUgdG8gV2ViUHJvY2VzcyB2aWEgdGhlIFByZWZlcmVuY2VzU3RvcmUuCiAgICAgcGFyYW1l
dGVycy5zaG91bGRFbmFibGVWUDlTV0RlY29kZXIgPSBwcmVmZXJlbmNlcygpLnZwOURlY29kZXJF
bmFibGVkKCkgJiYgKCFXZWJDb3JlOjpzeXN0ZW1IYXNCYXR0ZXJ5KCkgfHwgcHJlZmVyZW5jZXMo
KS52cDlTV0RlY29kZXJFbmFibGVkT25CYXR0ZXJ5KCkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVl
cy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXMuaAppbmRleCBkMDhjYmNiZWNmMzRlYzUxN2YyNDNkOWQwNWFiODJkMDNlNjUxNzYx
Li45MjFmYzU0YTkwNzI3ZjI0YWJmMDdjOGRlZWUwOThiNjIyZTk0NTM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVl
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNE
ZWZhdWx0VmFsdWVzLmgKQEAgLTM1LDggKzM1LDggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LSNpZiBQTEFURk9STShDT0NPQSkgJiYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLWJvb2wg
aXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZPUk0oQ09DT0Ep
Citib29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYsIGJvb2wgZGVmYXVsdFZh
bHVlID0gZmFsc2UpOwogI2VuZGlmCiAKICNpZiBIQVZFKElOQ1JFTUVOVEFMX1BERl9BUElTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
c0RlZmF1bHRWYWx1ZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5tbQppbmRleCA5YTk0ZDY1ZDg1ZDE3N2I3NzcyYjc5YzM4
Nzg0OGFkNGM3Mjc1ZmRjLi42OGIwMjEzYTA4ZDg1MTk4YzI1NjI1YzliNWI0YTg2NWE4OThlOTkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzRGVmYXVsdFZhbHVlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5tbQpAQCAtNDIsMjIgKzQyLDM0IEBACiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIEhBVkUoU1lTVEVNX0ZF
QVRVUkVfRkxBR1MpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAKIC8vIEJlY2F1c2Ugb2YgPHJkYXI6
Ly9wcm9ibGVtLzYwNjA4MDA4PiwgV2ViS2l0IGhhcyB0byBwYXJzZSB0aGUgZmVhdHVyZSBmbGFn
cyBwbGlzdCBmaWxlCi1ib29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYgZmVh
dHVyZU5hbWUpCitib29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYgZmVhdHVy
ZU5hbWUsIGJvb2wgZGVmYXVsdFZhbHVlKQogewotICAgIEJPT0wgaXNXZWJLaXRCdW5kbGVGcm9t
U3RhZ2VkRnJhbWV3b3JrID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlUGF0aF0gaGFz
UHJlZml4OkAiL0xpYnJhcnkvQXBwbGUvU3lzdGVtL0xpYnJhcnkvU3RhZ2VkRnJhbWV3b3Jrcy9X
ZWJLaXQiXTsKLQotICAgIGlmICghaXNXZWJLaXRCdW5kbGVGcm9tU3RhZ2VkRnJhbWV3b3JrKQot
ICAgICAgICByZXR1cm4gX29zX2ZlYXR1cmVfZW5hYmxlZF9pbXBsKCJXZWJLaXQiLCAoY29uc3Qg
Y2hhciopZmVhdHVyZU5hbWUudXRmOCgpLmRhdGEoKSk7CisjaWYgSEFWRShTWVNURU1fRkVBVFVS
RV9GTEFHUykKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8TlNEaWN0aW9u
YXJ5Pj4gZGljdGlvbmFyeSA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhDb250ZW50c09m
RmlsZTpAIi9MaWJyYXJ5L0FwcGxlL1N5c3RlbS9MaWJyYXJ5L0ZlYXR1cmVGbGFncy9Eb21haW4v
V2ViS2l0LnBsaXN0Il07CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHN0YXRpYyBib29sIGlzU3lz
dGVtV2ViS2l0ID0gW10geworICAgICAgICBOU0J1bmRsZSAqYnVuZGxlID0gW05TQnVuZGxlIGJ1
bmRsZUZvckNsYXNzOk5TQ2xhc3NGcm9tU3RyaW5nKEAiV2ViVmlldyIpXTsKKyAgICAgICAgcmV0
dXJuIFtidW5kbGUuYnVuZGxlUGF0aCBoYXNQcmVmaXg6QCIvU3lzdGVtLyJdOworICAgIH0oKTsK
IAotICAgIGlmICghW1tkaWN0aW9uYXJ5LmdldCgpIG9iamVjdEZvcktleTpmZWF0dXJlTmFtZV0g
b2JqZWN0Rm9yS2V5OkAiRW5hYmxlZCJdKQorICAgIGlmIChpc1N5c3RlbVdlYktpdCkKICAgICAg
ICAgcmV0dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNoYXIq
KWZlYXR1cmVOYW1lLmNoYXJhY3RlcnM4KCkpOwogCi0gICAgcmV0dXJuIFtbW2RpY3Rpb25hcnku
Z2V0KCkgb2JqZWN0Rm9yS2V5OmZlYXR1cmVOYW1lXSBvYmplY3RGb3JLZXk6QCJFbmFibGVkIl0g
aXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSAmJiBbW1tkaWN0aW9uYXJ5LmdldCgpIG9i
amVjdEZvcktleTpmZWF0dXJlTmFtZV0gb2JqZWN0Rm9yS2V5OkAiRW5hYmxlZCJdIGJvb2xWYWx1
ZV07CisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRl
ZmF1bHRWYWx1ZSk7CisgICAgcmV0dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0
IiwgKGNvbnN0IGNoYXIqKWZlYXR1cmVOYW1lLmNoYXJhY3RlcnM4KCkpOworI2VuZGlmIC8vIFBM
QVRGT1JNKE1BQykKKworI2Vsc2UKKworICAgIFVOVVNFRF9QQVJBTShmZWF0dXJlTmFtZSk7Cisg
ICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKworI2VuZGlmIC8vIEhBVkUoU1lTVEVNX0ZFQVRVUkVf
RkxBR1MpCiB9CiAKICNlbmRpZgpAQCAtNjYsMTEgKzc4LDcgQEAgYm9vbCBpc0ZlYXR1cmVGbGFn
RW5hYmxlZChjb25zdCBTdHJpbmcmIGZlYXR1cmVOYW1lKQogCiBib29sIGRlZmF1bHRJbmNyZW1l
bnRhbFBERkVuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAg
cmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJpbmNyZW1lbnRhbF9wZGYiKTsKLSNlbmRpZgot
Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiaW5j
cmVtZW50YWxfcGRmIiwgZmFsc2UpOwogfQogCiAjZW5kaWYKQEAgLTc5LDExICs4Nyw3IEBAIGJv
b2wgZGVmYXVsdEluY3JlbWVudGFsUERGRW5hYmxlZCgpCiAKIGJvb2wgZGVmYXVsdFdlYlhSRW5h
YmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNG
ZWF0dXJlRmxhZ0VuYWJsZWQoIldlYlhSIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsK
KyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIldlYlhSIiwgZmFsc2UpOwogfQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpAQCAtMjc4LDIwICsyODIsMTIgQEAgYm9vbCBkZWZhdWx0
V2hlZWxFdmVudEdlc3R1cmVzQmVjb21lTm9uQmxvY2tpbmcoKQogCiBib29sIGRlZmF1bHRXZWJN
UGFyc2VyRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICBy
ZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fcGFyc2VyIik7Ci0jZW5kaWYKLQotICAg
IHJldHVybiB0cnVlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgid2VibV9wYXJz
ZXIiLCB0cnVlKTsKIH0KIAogYm9vbCBkZWZhdWx0V2ViTVdlYkF1ZGlvRW5hYmxlZCgpCiB7Ci0j
aWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0Vu
YWJsZWQoIndlYm1fd2ViYXVkaW8iKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgid2VibV93ZWJhdWRpbyIsIGZhbHNlKTsKIH0K
IAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TT1VSQ0UpCkBAIC0zMDAsMjAgKzI5NiwxMiBAQCBi
b29sIGRlZmF1bHRXZWJNV2ViQXVkaW9FbmFibGVkKCkKIAogYm9vbCBkZWZhdWx0VlA4RGVjb2Rl
ckVuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJu
IGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ2cDhfZGVjb2RlciIpOwotI2VuZGlmCi0KLSAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ2cDhfZGVjb2RlciIs
IHRydWUpOwogfQogCiBib29sIGRlZmF1bHRWUDlEZWNvZGVyRW5hYmxlZCgpCiB7Ci0jaWYgSEFW
RShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQo
InZwOV9kZWNvZGVyIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgidnA5X2RlY29kZXIiLCB0cnVlKTsKIH0KIAogI2VuZGlmIC8v
IEVOQUJMRShWUDkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggMThkYmIzODNlYmNmMzg3ODczOTZmZGM4ZjhmYzMzMDliNmEz
Njc1Ny4uZjQ3N2IxZWU0ZmM5MTg1OTEyODhjYTVkODI2ZmQwOWFhNjE0NTRkMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDIxLTA4LTA1ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+
CisKKyAgICAgICAgW21hY09TXSBDbGVhbiB1cCBGZWF0dXJlIEZsYWdzIHJlbGF0ZWQgY29kZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4ODAzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBSZW1vdmUgYSBtYWMt
Ymlnc3VyIHNwZWNpZmljIHRlc3QgZXhwZWN0YXRpb24gZmlsZSBiZWNhdXNlIHRoZSB0ZXN0IGlz
IHBhc3Npbmcgbm93LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZlci1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLWJpZ3N1ci9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1hZGRz
b3VyY2VidWZmZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorCiAyMDIxLTA4LTAyICBKZWFuLVl2
ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1ZGlvXSBBZGQgd2Vi
bS92b3JiaXMgY29udGFpbmVyIHN1cHBvcnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy1iaWdzdXIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3Vy
Y2UvbWVkaWFzb3VyY2UtYWRkc291cmNlYnVmZmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy1iaWdzdXIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRp
YS1zb3VyY2UvbWVkaWFzb3VyY2UtYWRkc291cmNlYnVmZmVyLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGUwMzMzOTZkZDBjMTVhYjU1MjJhN2ExN2JhNzQ5NzQz
N2QwOTc5OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtYmlnc3VyL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZlci1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0KLVBBU1MgVGVzdCBhZGRTb3VyY2VC
dWZmZXIoKSBpbiAnZW5kZWQnIHN0YXRlLgotUEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdp
dGggZW1wdHkgdHlwZQotUEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggbnVsbAotUEFT
UyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggdW5zdXBwb3J0ZWQgdHlwZQotRkFJTCBUZXN0
IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggVm9yYmlzIGFuZCBWUDggYXNzZXJ0X3RydWU6IHZpZGVv
L3dlYm07Y29kZWNzPSJ2cDgsdm9yYmlzIiBpcyBzdXBwb3J0ZWQgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKLUZBSUwgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRoIFZvcmJpcyBhbmQgVlA4IGlu
IHNlcGFyYXRlIFNvdXJjZUJ1ZmZlcnMgYXNzZXJ0X3RydWU6IGF1ZGlvL3dlYm07Y29kZWNzPSJ2
b3JiaXMiIGlzIHN1cHBvcnRlZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotUEFTUyBUZXN0IGFk
ZFNvdXJjZUJ1ZmZlcigpIHZpZGVvIG9ubHkKLVBBU1MgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSBh
dWRpbyBvbmx5Ci1QQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBBQUMgYW5kIEguMjY0
Ci1QQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBBQUMgYW5kIEguMjY0IGluIHNlcGFy
YXRlIFNvdXJjZUJ1ZmZlcnMKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEtc291cmNlL21lZGlhc291cmNl
LWFkZHNvdXJjZWJ1ZmZlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Ut
YWRkc291cmNlYnVmZmVyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNzRlMTFjOTIxN2JjZDcxMDllMDEyMTQ3ZjlhZWExYTIxZmFkMTc1ZS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3Vy
Y2UtYWRkc291cmNlYnVmZmVyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICsw
LDAgQEAKLQotUEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIGluICdlbmRlZCcgc3RhdGUuCi1Q
QVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBlbXB0eSB0eXBlCi1QQVNTIFRlc3QgYWRk
U291cmNlQnVmZmVyKCkgd2l0aCBudWxsCi1QQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0
aCB1bnN1cHBvcnRlZCB0eXBlCi1GQUlMIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBWb3Ji
aXMgYW5kIFZQOCBhc3NlcnRfdHJ1ZTogdmlkZW8vd2VibTtjb2RlY3M9InZwOCx2b3JiaXMiIGlz
IHN1cHBvcnRlZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBUZXN0IGFkZFNvdXJjZUJ1
ZmZlcigpIHdpdGggVm9yYmlzIGFuZCBWUDggaW4gc2VwYXJhdGUgU291cmNlQnVmZmVycyBhc3Nl
cnRfdHJ1ZTogdmlkZW8vd2VibTtjb2RlY3M9InZwOCIgaXMgc3VwcG9ydGVkIGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCi1QQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgdmlkZW8gb25seQotUEFT
UyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIGF1ZGlvIG9ubHkKLVBBU1MgVGVzdCBhZGRTb3VyY2VC
dWZmZXIoKSB3aXRoIEFBQyBhbmQgSC4yNjQKLVBBU1MgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3
aXRoIEFBQyBhbmQgSC4yNjQgaW4gc2VwYXJhdGUgU291cmNlQnVmZmVycwotCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435040</attachid>
            <date>2021-08-05 17:00:14 -0700</date>
            <delta_ts>2021-08-05 21:43:30 -0700</delta_ts>
            <desc>Update changelogs</desc>
            <filename>bug-228803-20210805170013.patch</filename>
            <type>text/plain</type>
            <size>25576</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYyNTJlNDU5ZGNmMmFhOTZm
MDc1ZDMwMjJlMjIxNGYzMjY3NjMyZjYuLmVhNjdlNDMzYjAwZTAzMTVkYzVhOTZiOGFkMGI4YTNm
MTRhZDNiZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjEtMDgtMDUgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIENsZWFuIHVwIEZlYXR1
cmUgRmxhZ3MgcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjg4MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxMTQyOTgyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgT24gbWFjT1MsIFNh
ZmFyaSBUZWNobm9sb2d5IFByZXZpZXcgb3IgYSBsb2NhbCBidWlsZCBXZWJLaXQvU2FmYXJpIHdp
bGwgYWx3YXlzCisgICAgICAgIGdldCB0aGUgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcyB0aHJv
dWdoIHRoZSAiRmVhdHVyZSBGbGFncyIgU1BJLiBVbmZvcnR1bmF0ZWx5LAorICAgICAgICB0aGlz
IGFwcHJvYWNoIHdvbid0IHdvcmsgaWYgdGhlIE9TIGRvZXMgbm90IHByb3ZpZGUgY29ycmVjdCBk
ZWZhdWx0IHByZWZlcmVuY2UgdmFsdWVzLgorCisgICAgICAgIFdpdGggdGhpcyBwYXRjaCwgd2Ug
b25seSBnZXQgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcyB3aXRoIHRoZSBTUEkgZm9yIHN5c3Rl
bQorICAgICAgICBXZWJLaXQgb24gbWFjT1MuIEZvciBhbGwgb3RoZXIgY2FzZXMsIHdlIHVzZSBo
YXJkY29kZWQgdmFsdWVzLiBTbyB0aGF0CisgICAgICAgIFdlYktpdCB3aWxsIGFsd2F5cyBnZXQg
dGhlIGNvcnJlY3QgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcy4KKworICAgICAgICBUaGlzIHBh
dGNoIGFsc28gZml4ZXMgYSBmZXcgbWlzdGFrZXMgaW4gdHdvIHByZWZlcmVuY2VzOiAid2VibV93
ZWJhdWRpbyIgYW5kICJ2cDhfZGVjb2RlciIuCisKKyAgICAgICAgKiBGZWF0dXJlRmxhZ3MvV2Vi
S2l0LWFwcGxldHZvcy5wbGlzdDoKKyAgICAgICAgKiBGZWF0dXJlRmxhZ3MvV2ViS2l0LWlvcy5w
bGlzdDoKKyAgICAgICAgKiBGZWF0dXJlRmxhZ3MvV2ViS2l0LW1hY29zLnBsaXN0OgorICAgICAg
ICAqIEZlYXR1cmVGbGFncy9XZWJLaXQtd2F0Y2hvcy5wbGlzdDoKKworICAgICAgICAqIFNoYXJl
ZC9Db2NvYS9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6aXNGZWF0dXJlRmxhZ0VuYWJsZWQpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJl
bmNlc0RlZmF1bHRWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViS2l0Ojppc0ZlYXR1cmVGbGFnRW5h
YmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRBc3luY0ZyYW1lQW5kT3ZlcmZsb3dTY3Jv
bGxpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JD
YW52YXNSZW5kZXJpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFVzZUdQVVBy
b2Nlc3NGb3JET01SZW5kZXJpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFVz
ZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0VXNl
R1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRDYXB0
dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdENh
cHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0
V2ViUlRDQ29kZWNzSW5HUFVQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdEluY3Jl
bWVudGFsUERGRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXZWJNRm9ybWF0UmVh
ZGVyRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRWUDhEZWNvZGVyRW5hYmxlZCk6
CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRWUDlEZWNvZGVyRW5hYmxlZCk6CisgICAgICAgIChX
ZWJLaXQ6OmRlZmF1bHRWUDlTV0RlY29kZXJFbmFibGVkT25CYXR0ZXJ5KToKKyAgICAgICAgKFdl
YktpdDo6ZGVmYXVsdFdlYk1QYXJzZXJFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVs
dFdlYk1XZWJBdWRpb0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0SW5BcHBCcm93
c2VyUHJpdmFjeSk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlcy5oOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKTogRml4IGEg
dHlwby4KKwogMjAyMS0wOC0wMiAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtHUFVQXSBSZW1vdGVBdWRpb1Nlc3Npb246OnNldFByZWZlcnJlZEJ1ZmZlclNpemUo
KSBkb2VzIG5vdCBjaGFuZ2UgaXRzIHByZWZlcnJlZEJ1ZmZlclNpemUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwppbmRleCAwZGZmNDM4YzEyMDc1N2YzNjNlMDBkYjgzMjQ3MzVmNTVlMGExYjlj
Li4wODFjYzhhMDg5N2E4YjliMzM0YmFjYmZkZGQ3MzNiOGY4MmZiMWViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMDgtMDUgIFBlbmcgTGl1ICA8
cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIENsZWFuIHVwIEZlYXR1cmUg
RmxhZ3MgcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjg4MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxMTQyOTgyPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgT24gbWFjT1MsIFNhZmFy
aSBUZWNobm9sb2d5IFByZXZpZXcgb3IgYSBsb2NhbCBidWlsZCBXZWJLaXQvU2FmYXJpIHdpbGwg
YWx3YXlzCisgICAgICAgIGdldCB0aGUgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcyB0aHJvdWdo
IHRoZSAiRmVhdHVyZSBGbGFncyIgU1BJLiBVbmZvcnR1bmF0ZWx5LAorICAgICAgICB0aGlzIGFw
cHJvYWNoIHdvbid0IHdvcmsgaWYgdGhlIE9TIGRvZXMgbm90IHByb3ZpZGUgY29ycmVjdCBkZWZh
dWx0IHByZWZlcmVuY2UgdmFsdWVzLgorCisgICAgICAgIFdpdGggdGhpcyBwYXRjaCwgd2Ugb25s
eSBnZXQgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcyB3aXRoIHRoZSBTUEkgZm9yIHN5c3RlbQor
ICAgICAgICBXZWJLaXQgb24gbWFjT1MuIEZvciBhbGwgb3RoZXIgY2FzZXMsIHdlIHVzZSBoYXJk
Y29kZWQgdmFsdWVzLiBTbyB0aGF0CisgICAgICAgIFdlYktpdCB3aWxsIGFsd2F5cyBnZXQgdGhl
IGNvcnJlY3QgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcy4KKworICAgICAgICBUaGlzIHBhdGNo
IGFsc28gZml4ZXMgYSBmZXcgbWlzdGFrZXMgaW4gdHdvIHByZWZlcmVuY2VzOiAid2VibV93ZWJh
dWRpbyIgYW5kICJ2cDhfZGVjb2RlciIuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVu
Y2VzRGVmYXVsdFZhbHVlcy5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZh
dWx0VmFsdWVzLm1tOgorICAgICAgICAoV2ViS2l0Ojppc0ZlYXR1cmVGbGFnRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OmRlZmF1bHRJbmNyZW1lbnRhbFBERkVuYWJsZWQpOgorICAgICAgICAo
V2ViS2l0OjpkZWZhdWx0V2ViWFJFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFdl
Yk1QYXJzZXJFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFdlYk1XZWJBdWRpb0Vu
YWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0VlA4RGVjb2RlckVuYWJsZWQpOgorICAg
ICAgICAoV2ViS2l0OjpkZWZhdWx0VlA5RGVjb2RlckVuYWJsZWQpOgorCiAyMDIxLTA3LTI5ICBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCBi
dWlsZGluZyBXZWJHUFUgYW5kIHRoZSBXSExTTCBjb21waWxlciB0byBkZWNyZWFzZSBiaW5hcnkg
c2l6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9GZWF0dXJlRmxhZ3MvV2ViS2l0LWFwcGxl
dHZvcy5wbGlzdCBiL1NvdXJjZS9XZWJLaXQvRmVhdHVyZUZsYWdzL1dlYktpdC1hcHBsZXR2b3Mu
cGxpc3QKaW5kZXggNDgxNjM3NjUzMTk5MjNlZTllZTM3OWI0ZjlkYmJmN2VhMWIzZjBmOS4uZTRj
NjNlNTI3MzdhMDZjYjBiODBkMzBiMGQzZGNjYjdhNTI2ZTcyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9GZWF0dXJlRmxhZ3MvV2ViS2l0LWFwcGxldHZvcy5wbGlzdAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0ZlYXR1cmVGbGFncy9XZWJLaXQtYXBwbGV0dm9zLnBsaXN0CkBAIC02Nyw2ICs2Nywx
MSBAQAogCQk8a2V5PkVuYWJsZWQ8L2tleT4KIAkJPHRydWUvPgogCTwvZGljdD4KKwk8a2V5PnZw
OF9kZWNvZGVyPC9rZXk+CisJPGRpY3Q+CisJCTxrZXk+RW5hYmxlZDwva2V5PgorCQk8dHJ1ZS8+
CisJPC9kaWN0PgogCTxrZXk+V2ViWFI8L2tleT4KIAk8ZGljdD4KIAkJPGtleT5FbmFibGVkPC9r
ZXk+CkBAIC04MiwxMSArODcsNiBAQAogCQk8a2V5PkVuYWJsZWQ8L2tleT4KIAkJPHRydWUvPgog
CTwvZGljdD4KLQk8a2V5PndlYm1fd2ViYXVkaW88L2tleT4KLQk8ZGljdD4KLQkJPGtleT5FbmFi
bGVkPC9rZXk+Ci0JCTx0cnVlLz4KLQk8L2RpY3Q+CiAJPGtleT5SQl9mdWxsX21hbmFnZV9XS19q
ZXRzYW08L2tleT4KIAk8ZGljdD4KIAkJPGtleT5FbmFibGVkPC9rZXk+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0ZlYXR1cmVGbGFncy9XZWJLaXQtaW9zLnBsaXN0IGIvU291cmNlL1dlYktp
dC9GZWF0dXJlRmxhZ3MvV2ViS2l0LWlvcy5wbGlzdAppbmRleCA3OWE0ZTNjOTg0MmIyMWQ4NDM1
ZmMxOTFkMTg2MzIwNWE3YWQyMTNlLi5mNTk5YTQwMjBjZDEyMWM4ZDg4ZTE0YmI5ZWViYjViNTM4
MzU0M2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0ZlYXR1cmVGbGFncy9XZWJLaXQtaW9z
LnBsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRmVhdHVyZUZsYWdzL1dlYktpdC1pb3MucGxpc3QK
QEAgLTY3LDYgKzY3LDExIEBACiAJCTxrZXk+RW5hYmxlZDwva2V5PgogCQk8dHJ1ZS8+CiAJPC9k
aWN0PgorCTxrZXk+dnA4X2RlY29kZXI8L2tleT4KKwk8ZGljdD4KKwkJPGtleT5FbmFibGVkPC9r
ZXk+CisJCTx0cnVlLz4KKwk8L2RpY3Q+CiAJPGtleT5XZWJYUjwva2V5PgogCTxkaWN0PgogCQk8
a2V5PkVuYWJsZWQ8L2tleT4KQEAgLTgyLDExICs4Nyw2IEBACiAJCTxrZXk+RW5hYmxlZDwva2V5
PgogCQk8dHJ1ZS8+CiAJPC9kaWN0PgotCTxrZXk+d2VibV93ZWJhdWRpbzwva2V5PgotCTxkaWN0
PgotCQk8a2V5PkVuYWJsZWQ8L2tleT4KLQkJPHRydWUvPgotCTwvZGljdD4KIAk8a2V5PlJCX2Z1
bGxfbWFuYWdlX1dLX2pldHNhbTwva2V5PgogCTxkaWN0PgogCQk8a2V5PkVuYWJsZWQ8L2tleT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRmVhdHVyZUZsYWdzL1dlYktpdC1tYWNvcy5wbGlz
dCBiL1NvdXJjZS9XZWJLaXQvRmVhdHVyZUZsYWdzL1dlYktpdC1tYWNvcy5wbGlzdAppbmRleCA3
OWE0ZTNjOTg0MmIyMWQ4NDM1ZmMxOTFkMTg2MzIwNWE3YWQyMTNlLi5iNGY3MTEwYTJjMDkyYTE5
NDVhODEzZWM2NDZiOTMyMTVjZWQ2MjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0ZlYXR1
cmVGbGFncy9XZWJLaXQtbWFjb3MucGxpc3QKKysrIGIvU291cmNlL1dlYktpdC9GZWF0dXJlRmxh
Z3MvV2ViS2l0LW1hY29zLnBsaXN0CkBAIC02Nyw2ICs2NywxMSBAQAogCQk8a2V5PkVuYWJsZWQ8
L2tleT4KIAkJPHRydWUvPgogCTwvZGljdD4KKwk8a2V5PnZwOF9kZWNvZGVyPC9rZXk+CisJPGRp
Y3Q+CisJCTxrZXk+RW5hYmxlZDwva2V5PgorCQk8dHJ1ZS8+CisJPC9kaWN0PgogCTxrZXk+V2Vi
WFI8L2tleT4KIAk8ZGljdD4KIAkJPGtleT5FbmFibGVkPC9rZXk+CkBAIC04NSw3ICs5MCw3IEBA
CiAJPGtleT53ZWJtX3dlYmF1ZGlvPC9rZXk+CiAJPGRpY3Q+CiAJCTxrZXk+RW5hYmxlZDwva2V5
PgotCQk8dHJ1ZS8+CisJCTxmYWxzZS8+CiAJPC9kaWN0PgogCTxrZXk+UkJfZnVsbF9tYW5hZ2Vf
V0tfamV0c2FtPC9rZXk+CiAJPGRpY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0ZlYXR1
cmVGbGFncy9XZWJLaXQtd2F0Y2hvcy5wbGlzdCBiL1NvdXJjZS9XZWJLaXQvRmVhdHVyZUZsYWdz
L1dlYktpdC13YXRjaG9zLnBsaXN0CmluZGV4IDQ4MTYzNzY1MzE5OTIzZWU5ZWUzNzliNGY5ZGJi
ZjdlYTFiM2YwZjkuLmU0YzYzZTUyNzM3YTA2Y2IwYjgwZDMwYjBkM2RjY2I3YTUyNmU3MjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRmVhdHVyZUZsYWdzL1dlYktpdC13YXRjaG9zLnBsaXN0
CisrKyBiL1NvdXJjZS9XZWJLaXQvRmVhdHVyZUZsYWdzL1dlYktpdC13YXRjaG9zLnBsaXN0CkBA
IC02Nyw2ICs2NywxMSBAQAogCQk8a2V5PkVuYWJsZWQ8L2tleT4KIAkJPHRydWUvPgogCTwvZGlj
dD4KKwk8a2V5PnZwOF9kZWNvZGVyPC9rZXk+CisJPGRpY3Q+CisJCTxrZXk+RW5hYmxlZDwva2V5
PgorCQk8dHJ1ZS8+CisJPC9kaWN0PgogCTxrZXk+V2ViWFI8L2tleT4KIAk8ZGljdD4KIAkJPGtl
eT5FbmFibGVkPC9rZXk+CkBAIC04MiwxMSArODcsNiBAQAogCQk8a2V5PkVuYWJsZWQ8L2tleT4K
IAkJPHRydWUvPgogCTwvZGljdD4KLQk8a2V5PndlYm1fd2ViYXVkaW88L2tleT4KLQk8ZGljdD4K
LQkJPGtleT5FbmFibGVkPC9rZXk+Ci0JCTx0cnVlLz4KLQk8L2RpY3Q+CiAJPGtleT5SQl9mdWxs
X21hbmFnZV9XS19qZXRzYW08L2tleT4KIAk8ZGljdD4KIAkJPGtleT5FbmFibGVkPC9rZXk+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXNDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYlByZWZlcmVu
Y2VzRGVmYXVsdFZhbHVlc0NvY29hLm1tCmluZGV4IGNkYjM2M2E4ZjhhMDNiYTM1NjM0OTAxYTQ4
OWIwMDVmMzg5YTkyM2MuLjBhY2Y5NjA0ODBlMmU5MmIyNjNkMTc3MDdhY2E5MTJjZDZkMGIzNTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYlBy
ZWZlcmVuY2VzRGVmYXVsdFZhbHVlc0NvY29hLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0
ICJjb25maWcuaCIKICNpbXBvcnQgIldlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oIgogCi0j
aWYgUExBVEZPUk0oQ09DT0EpICYmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCisjaWYgUExB
VEZPUk0oQ09DT0EpCiAKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNCdW5kbGUuaD4KIApAQCAtMzgs
MjIgKzM4LDMxIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogLy8gQmVjYXVzZSBvZiA8cmRhcjov
L3Byb2JsZW0vNjA2MDgwMDg+LCBXZWJLaXQgaGFzIHRvIHBhcnNlIHRoZSBmZWF0dXJlIGZsYWdz
IHBsaXN0IGZpbGUKLWJvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiBmZWF0
dXJlTmFtZSkKK2Jvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiBmZWF0dXJl
TmFtZSwgYm9vbCBkZWZhdWx0VmFsdWUpCiB7Ci0gICAgc3RhdGljIGJvb2wgaXNXZWJLaXRCdW5k
bGVGcm9tU3RhZ2VkRnJhbWV3b3JrID0gW10gewotICAgICAgICBOU0J1bmRsZSAqd2Via2l0MkJ1
bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpOU0NsYXNzRnJvbVN0cmluZyhAIldLV2Vi
VmlldyIpXTsKLSAgICAgICAgcmV0dXJuIFt3ZWJraXQyQnVuZGxlLmJ1bmRsZVBhdGggaGFzUHJl
Zml4OkAiL0xpYnJhcnkvQXBwbGUvU3lzdGVtL0xpYnJhcnkvU3RhZ2VkRnJhbWV3b3Jrcy9TYWZh
cmkvIl07CisjaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKKworI2lmIFBMQVRGT1JNKE1B
QykKKyAgICBzdGF0aWMgYm9vbCBpc1N5c3RlbVdlYktpdCA9IFtdIHsKKyAgICAgICAgTlNCdW5k
bGUgKmJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpOU0NsYXNzRnJvbVN0cmluZyhA
IldLV2ViVmlldyIpXTsKKyAgICAgICAgcmV0dXJuIFtidW5kbGUuYnVuZGxlUGF0aCBoYXNQcmVm
aXg6QCIvU3lzdGVtLyJdOwogICAgIH0oKTsKIAotICAgIGlmICghaXNXZWJLaXRCdW5kbGVGcm9t
U3RhZ2VkRnJhbWV3b3JrKQotICAgICAgICByZXR1cm4gX29zX2ZlYXR1cmVfZW5hYmxlZF9pbXBs
KCJXZWJLaXQiLCAoY29uc3QgY2hhciopZmVhdHVyZU5hbWUudXRmOCgpLmRhdGEoKSk7CisgICAg
aWYgKGlzU3lzdGVtV2ViS2l0KQorICAgICAgICByZXR1cm4gX29zX2ZlYXR1cmVfZW5hYmxlZF9p
bXBsKCJXZWJLaXQiLCAoY29uc3QgY2hhciopZmVhdHVyZU5hbWUuY2hhcmFjdGVyczgoKSk7CisK
KyAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVmYXVs
dFZhbHVlKTsKKyAgICByZXR1cm4gX29zX2ZlYXR1cmVfZW5hYmxlZF9pbXBsKCJXZWJLaXQiLCAo
Y29uc3QgY2hhciopZmVhdHVyZU5hbWUuY2hhcmFjdGVyczgoKSk7CisjZW5kaWYgLy8gUExBVEZP
Uk0oTUFDKQogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxOU0RpY3Rpb25h
cnk+PiBkaWN0aW9uYXJ5ID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aENvbnRlbnRzT2ZG
aWxlOkAiL0xpYnJhcnkvQXBwbGUvU3lzdGVtL0xpYnJhcnkvRmVhdHVyZUZsYWdzL0RvbWFpbi9X
ZWJLaXQucGxpc3QiXTsKKyNlbHNlCiAKLSAgICBpZiAoIVtbZGljdGlvbmFyeS5nZXQoKSBvYmpl
Y3RGb3JLZXk6ZmVhdHVyZU5hbWVdIG9iamVjdEZvcktleTpAIkVuYWJsZWQiXSkKLSAgICAgICAg
cmV0dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNoYXIqKWZl
YXR1cmVOYW1lLmNoYXJhY3RlcnM4KCkpOworICAgIFVOVVNFRF9QQVJBTShmZWF0dXJlTmFtZSk7
CisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKIAotICAgIHJldHVybiBbW1tkaWN0aW9uYXJ5Lmdl
dCgpIG9iamVjdEZvcktleTpmZWF0dXJlTmFtZV0gb2JqZWN0Rm9yS2V5OkAiRW5hYmxlZCJdIGlz
S2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0gJiYgW1tbZGljdGlvbmFyeS5nZXQoKSBvYmpl
Y3RGb3JLZXk6ZmVhdHVyZU5hbWVdIG9iamVjdEZvcktleTpAIkVuYWJsZWQiXSBib29sVmFsdWVd
OworI2VuZGlmIC8vIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNEZWZhdWx0VmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
RGVmYXVsdFZhbHVlcy5jcHAKaW5kZXggYWZhZmUzYzdlNTMzMDYyNGVhODQ2ZWJhMDc1YmYyODU1
YTBhMjM3ZS4uMjMxNDY3OTE5NzYzMWFhN2FiNjNjOTZkYmYyYmQyNWU2MWE5ZTA3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMu
Y3BwCkBAIC00MSw2ICs0MSwxMyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorI2lmICFQTEFU
Rk9STShDT0NPQSkKK2Jvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiwgYm9v
bCBkZWZhdWx0VmFsdWUpCit7CisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKK30KKyNlbmRpZgor
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogYm9vbCBkZWZhdWx0UGFzc2l2ZVRvdWNoTGlz
dGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCgpCkBAIC0xMDgsMTUgKzExNSwxMyBAQCBzdGF0aWMg
Ym9vbCBkZWZhdWx0QXN5bmNGcmFtZUFuZE92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCgpCiAgICAg
cmV0dXJuIHRydWU7CiAjZW5kaWYKIAotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0g
ICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJhc3luY19mcmFtZV9hbmRfb3ZlcmZsb3df
c2Nyb2xsaW5nIik7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1BQykKLSAgICByZXR1cm4gdHJ1
ZTsKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IHRydWU7CisjZWxzZQorICAgIGJvb2wgZGVmYXVs
dFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKIAotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4g
aXNGZWF0dXJlRmxhZ0VuYWJsZWQoImFzeW5jX2ZyYW1lX2FuZF9vdmVyZmxvd19zY3JvbGxpbmci
LCBkZWZhdWx0VmFsdWUpOwogfQogCiBib29sIGRlZmF1bHRBc3luY0ZyYW1lU2Nyb2xsaW5nRW5h
YmxlZCgpCkBAIC0xNTAsNDkgKzE1NSwzMyBAQCBib29sIGRlZmF1bHRPZmZsaW5lV2ViQXBwbGlj
YXRpb25DYWNoZUVuYWJsZWQoKQogYm9vbCBkZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvckNhbnZhc1Jl
bmRlcmluZ0VuYWJsZWQoKQogewogI2lmIEVOQUJMRShHUFVfUFJPQ0VTU19CWV9ERUZBVUxUKQot
I2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdF
bmFibGVkKCJncHVfcHJvY2Vzc19jYW52YXNfcmVuZGVyaW5nIik7CisgICAgYm9vbCBkZWZhdWx0
VmFsdWUgPSB0cnVlOwogI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBIQVZFKFNZ
U1RFTV9GRUFUVVJFX0ZMQUdTKQotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBk
ZWZhdWx0VmFsdWUgPSBmYWxzZTsKICNlbmRpZgorCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdF
bmFibGVkKCJncHVfcHJvY2Vzc19jYW52YXNfcmVuZGVyaW5nIiwgZGVmYXVsdFZhbHVlKTsKIH0K
IAogYm9vbCBkZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvckRPTVJlbmRlcmluZ0VuYWJsZWQoKQogewot
I2lmIEVOQUJMRShHUFVfUFJPQ0VTU19CWV9ERUZBVUxUKQotI2lmIEhBVkUoU1lTVEVNX0ZFQVRV
UkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc19k
b21fcmVuZGVyaW5nIik7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZiAvLyBIQVZF
KFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYK
KyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX2RvbV9yZW5kZXJp
bmciLCBmYWxzZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJs
ZWQoKQogewogI2lmIEVOQUJMRShHUFVfUFJPQ0VTU19CWV9ERUZBVUxUKQotI2lmIEhBVkUoU1lT
VEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVf
cHJvY2Vzc19tZWRpYSIpOwotI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBIQVZF
KFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQorICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNl
bHNlCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAj
ZW5kaWYKKworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfbWVk
aWEiLCBkZWZhdWx0VmFsdWUpOwogfQogCiBib29sIGRlZmF1bHRVc2VHUFVQcm9jZXNzRm9yV2Vi
R0xFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVy
biBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2ViZ2wiKTsKLSNlbmRpZgotCi0g
ICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3By
b2Nlc3Nfd2ViZ2wiLCBmYWxzZSk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CkBAIC0yMDIsMTkgKzE5MSwxNyBAQCBib29sIGRlZmF1bHRVc2VHUFVQcm9jZXNzRm9yV2ViR0xF
bmFibGVkKCkKIGJvb2wgZGVmYXVsdENhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQoKQog
ewogI2lmIEVOQUJMRShHUFVfUFJPQ0VTU19CWV9ERUZBVUxUKQorICAgIGJvb2wgZGVmYXVsdFZh
bHVlID0gdHJ1ZTsKKyNlbHNlCisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSBmYWxzZTsKKyNlbmRp
ZgogCi0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKICNpZiBQTEFURk9STShNQUMpCi0g
ICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc193ZWJydGMiKTsKKyAg
ICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYnJ0YyIsIGRlZmF1
bHRWYWx1ZSk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHJldHVybiBpc0ZlYXR1
cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfbWVkaWEiKTsKLSNlbmRpZgotI2Vsc2UKLSAgICBy
ZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotCisgICAg
cmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc19tZWRpYSIsIGRlZmF1bHRW
YWx1ZSk7CiAjZWxzZQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gZGVmYXVsdFZhbHVl
OwogI2VuZGlmCiB9CiAKQEAgLTIzMCwxNCArMjE3LDEyIEBAIGJvb2wgZGVmYXVsdENhcHR1cmVB
dWRpb0luVUlQcm9jZXNzRW5hYmxlZCgpCiBib29sIGRlZmF1bHRDYXB0dXJlVmlkZW9JbkdQVVBy
b2Nlc3NFbmFibGVkKCkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1NfQllfREVGQVVMVCkKLSNp
ZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5h
YmxlZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIik7Ci0jZWxzZQotICAgIHJldHVybiB0cnVlOwotI2Vu
ZGlmIC8vIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCisgICAgYm9vbCBkZWZhdWx0VmFsdWUg
PSB0cnVlOwogI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBkZWZhdWx0VmFsdWUg
PSBmYWxzZTsKICNlbmRpZgorCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVf
cHJvY2Vzc193ZWJydGMiLCBkZWZhdWx0VmFsdWUpOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX1NUUkVBTSkKQEAgLTI0NywzOSArMjMyLDI2IEBAIGJvb2wgZGVmYXVsdENhcHR1cmVWaWRl
b0luR1BVUHJvY2Vzc0VuYWJsZWQoKQogYm9vbCBkZWZhdWx0V2ViUlRDQ29kZWNzSW5HUFVQcm9j
ZXNzKCkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1NfQllfREVGQVVMVCkKLSNpZiBIQVZFKFNZ
U1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1
X3Byb2Nlc3Nfd2VicnRjIik7Ci0jZWxzZQotICAgIHJldHVybiB0cnVlOwotI2VuZGlmIC8vIEhB
VkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSB0cnVlOwog
I2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSBmYWxzZTsK
ICNlbmRpZgorCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc193
ZWJydGMiLCBkZWZhdWx0VmFsdWUpOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCiAK
LWJvb2wgZGVmYXVsdEluQXBwQnJvd3NlclByaXZhY3koKQotewotI2lmIEhBVkUoU1lTVEVNX0ZF
QVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJJbkFwcEJyb3dz
ZXJQcml2YWN5Iik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQogI2lmIEhBVkUo
SU5DUkVNRU5UQUxfUERGX0FQSVMpCiBib29sIGRlZmF1bHRJbmNyZW1lbnRhbFBERkVuYWJsZWQo
KQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVy
ZUZsYWdFbmFibGVkKCJpbmNyZW1lbnRhbF9wZGYiKTsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0o
TUFDKQotICAgIHJldHVybiB0cnVlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNl
bHNlCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAj
ZW5kaWYKKworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiaW5jcmVtZW50YWxfcGRm
IiwgZGVmYXVsdFZhbHVlKTsKIH0KICNlbmRpZgogCkBAIC0zMDAsMTUgKzI3MiwxMyBAQCBib29s
IGRlZmF1bHRXZWJYUkVuYWJsZWQoKQogCiBib29sIGRlZmF1bHRXZWJNRm9ybWF0UmVhZGVyRW5h
YmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNG
ZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fZm9ybWF0X3JlYWRlciIpOwotI2VuZGlmCi0KICNpZiBQ
TEFURk9STShNQUMpCi0gICAgcmV0dXJuIHRydWU7CisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSB0
cnVlOwogI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSBm
YWxzZTsKICNlbmRpZgorCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX2Zv
cm1hdF9yZWFkZXIiLCBkZWZhdWx0VmFsdWUpOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQk1f
Rk9STUFUX1JFQURFUikKQEAgLTMxNywyOSArMjg3LDE3IEBAIGJvb2wgZGVmYXVsdFdlYk1Gb3Jt
YXRSZWFkZXJFbmFibGVkKCkKIAogYm9vbCBkZWZhdWx0VlA4RGVjb2RlckVuYWJsZWQoKQogewot
I2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdF
bmFibGVkKCJ2cDhfZGVjb2RlciIpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ2cDhfZGVjb2RlciIsIHRydWUpOwogfQogCiBi
b29sIGRlZmF1bHRWUDlEZWNvZGVyRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVS
RV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoInZwOV9kZWNvZGVyIik7
Ci0jZW5kaWYKLQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5h
YmxlZCgidnA5X2RlY29kZXIiLCB0cnVlKTsKIH0KIAogYm9vbCBkZWZhdWx0VlA5U1dEZWNvZGVy
RW5hYmxlZE9uQmF0dGVyeSgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAg
ICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoInN3X3ZwOV9kZWNvZGVyX29uX2JhdHRlcnki
KTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFn
RW5hYmxlZCgic3dfdnA5X2RlY29kZXJfb25fYmF0dGVyeSIsIGZhbHNlKTsKIH0KICNlbmRpZiAv
LyBFTkFCTEUoVlA5KQogCkBAIC0zNDcsMjAgKzMwNSwxMiBAQCBib29sIGRlZmF1bHRWUDlTV0Rl
Y29kZXJFbmFibGVkT25CYXR0ZXJ5KCkKIAogYm9vbCBkZWZhdWx0V2ViTVBhcnNlckVuYWJsZWQo
KQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVy
ZUZsYWdFbmFibGVkKCJ3ZWJtX3BhcnNlciIpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gdHJ1ZTsK
KyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fcGFyc2VyIiwgdHJ1ZSk7CiB9
CiAKIGJvb2wgZGVmYXVsdFdlYk1XZWJBdWRpb0VuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVN
X0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX3dl
YmF1ZGlvIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gaXNGZWF0
dXJlRmxhZ0VuYWJsZWQoIndlYm1fd2ViYXVkaW8iLCBmYWxzZSk7CiB9CiAKICNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU09VUkNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaAppbmRleCBlNmZmMTgzNjBiMmJkYjA4ZWNmMTZmYThmYmRl
OTQwOTg5NmM1NDU3Li5hN2QxZjVhYWZkZGUyY2MzNjA5MmI3MWY4NTY3M2MwNWM0OWVlMjZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXMuaApAQCAtMzUsOSArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotI2lmIEhBVkUo
U1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi1ib29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0
cmluZyYpOwotI2VuZGlmCitib29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYs
IGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2UpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
IGJvb2wgZGVmYXVsdFBhc3NpdmVUb3VjaExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQoKTsK
QEAgLTg1LDggKzgzLDYgQEAgYm9vbCBkZWZhdWx0Q2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5h
YmxlZCgpOwogYm9vbCBkZWZhdWx0V2ViUlRDQ29kZWNzSW5HUFVQcm9jZXNzKCk7CiAjZW5kaWYK
IAotYm9vbCBkZWZhdWx0SW5BcHBCcm93c2VyUHJpdmFjeSgpOwotCiAjaWYgSEFWRShJTkNSRU1F
TlRBTF9QREZfQVBJUykKIGJvb2wgZGVmYXVsdEluY3JlbWVudGFsUERGRW5hYmxlZCgpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA4ZDQxZTQ1
MjNmNDdmOTIxMDUyNTljNjMwNjA1MTVlZjRmYzk4YzMzLi5lN2UwNDBiYmFjNzk5MzJkYzUwNGNm
YzgwMDBmMmNjNThkZTBlZDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKQEAgLTgyMzksNyArODIzOSw3IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2Vi
UGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAgICAg
cGFyYW1ldGVycy5zaG91bGRFbmFibGVWUDlEZWNvZGVyID0gcHJlZmVyZW5jZXMoKS52cDlEZWNv
ZGVyRW5hYmxlZCgpOwogI2lmIEVOQUJMRShWUDkpICYmIFBMQVRGT1JNKENPQ09BKQogICAgIC8v
IEZJWE1FOiBUaGlzIGlzIGFsc28gYmVpbmcgcGFzc2VkIG92ZXIgdGhlIHRvIFdlYlByb2Nlc3Mg
dmlhIHRoZSBQcmVmZXJlbmNlc1N0b3JlLgotICAgIHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxlVlA4
RGVjb2RlciA9IHByZWZlcmVuY2VzKCkudnA5RGVjb2RlckVuYWJsZWQoKTsKKyAgICBwYXJhbWV0
ZXJzLnNob3VsZEVuYWJsZVZQOERlY29kZXIgPSBwcmVmZXJlbmNlcygpLnZwOERlY29kZXJFbmFi
bGVkKCk7CiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYWxzbyBiZWluZyBwYXNzZWQgb3ZlciB0aGUg
dG8gV2ViUHJvY2VzcyB2aWEgdGhlIFByZWZlcmVuY2VzU3RvcmUuCiAgICAgcGFyYW1ldGVycy5z
aG91bGRFbmFibGVWUDlTV0RlY29kZXIgPSBwcmVmZXJlbmNlcygpLnZwOURlY29kZXJFbmFibGVk
KCkgJiYgKCFXZWJDb3JlOjpzeXN0ZW1IYXNCYXR0ZXJ5KCkgfHwgcHJlZmVyZW5jZXMoKS52cDlT
V0RlY29kZXJFbmFibGVkT25CYXR0ZXJ5KCkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXMuaAppbmRleCBkMDhjYmNiZWNmMzRlYzUxN2YyNDNkOWQwNWFiODJkMDNlNjUxNzYxLi45MjFm
YzU0YTkwNzI3ZjI0YWJmMDdjOGRlZWUwOThiNjIyZTk0NTM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0
VmFsdWVzLmgKQEAgLTM1LDggKzM1LDggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLSNpZiBQ
TEFURk9STShDT0NPQSkgJiYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLWJvb2wgaXNGZWF0
dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZPUk0oQ09DT0EpCitib29s
IGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYsIGJvb2wgZGVmYXVsdFZhbHVlID0g
ZmFsc2UpOwogI2VuZGlmCiAKICNpZiBIQVZFKElOQ1JFTUVOVEFMX1BERl9BUElTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzRGVmYXVsdFZhbHVlcy5tbQppbmRleCA5YTk0ZDY1ZDg1ZDE3N2I3NzcyYjc5YzM4Nzg0OGFk
NGM3Mjc1ZmRjLi42OGIwMjEzYTA4ZDg1MTk4YzI1NjI1YzliNWI0YTg2NWE4OThlOTkxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5tbQpAQCAtNDIsMjIgKzQyLDM0IEBACiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIEhBVkUoU1lTVEVNX0ZFQVRVUkVf
RkxBR1MpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAKIC8vIEJlY2F1c2Ugb2YgPHJkYXI6Ly9wcm9i
bGVtLzYwNjA4MDA4PiwgV2ViS2l0IGhhcyB0byBwYXJzZSB0aGUgZmVhdHVyZSBmbGFncyBwbGlz
dCBmaWxlCi1ib29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYgZmVhdHVyZU5h
bWUpCitib29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYgZmVhdHVyZU5hbWUs
IGJvb2wgZGVmYXVsdFZhbHVlKQogewotICAgIEJPT0wgaXNXZWJLaXRCdW5kbGVGcm9tU3RhZ2Vk
RnJhbWV3b3JrID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlUGF0aF0gaGFzUHJlZml4
OkAiL0xpYnJhcnkvQXBwbGUvU3lzdGVtL0xpYnJhcnkvU3RhZ2VkRnJhbWV3b3Jrcy9XZWJLaXQi
XTsKLQotICAgIGlmICghaXNXZWJLaXRCdW5kbGVGcm9tU3RhZ2VkRnJhbWV3b3JrKQotICAgICAg
ICByZXR1cm4gX29zX2ZlYXR1cmVfZW5hYmxlZF9pbXBsKCJXZWJLaXQiLCAoY29uc3QgY2hhciop
ZmVhdHVyZU5hbWUudXRmOCgpLmRhdGEoKSk7CisjaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFH
UykKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5Pj4g
ZGljdGlvbmFyeSA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhDb250ZW50c09mRmlsZTpA
Ii9MaWJyYXJ5L0FwcGxlL1N5c3RlbS9MaWJyYXJ5L0ZlYXR1cmVGbGFncy9Eb21haW4vV2ViS2l0
LnBsaXN0Il07CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHN0YXRpYyBib29sIGlzU3lzdGVtV2Vi
S2l0ID0gW10geworICAgICAgICBOU0J1bmRsZSAqYnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZv
ckNsYXNzOk5TQ2xhc3NGcm9tU3RyaW5nKEAiV2ViVmlldyIpXTsKKyAgICAgICAgcmV0dXJuIFti
dW5kbGUuYnVuZGxlUGF0aCBoYXNQcmVmaXg6QCIvU3lzdGVtLyJdOworICAgIH0oKTsKIAotICAg
IGlmICghW1tkaWN0aW9uYXJ5LmdldCgpIG9iamVjdEZvcktleTpmZWF0dXJlTmFtZV0gb2JqZWN0
Rm9yS2V5OkAiRW5hYmxlZCJdKQorICAgIGlmIChpc1N5c3RlbVdlYktpdCkKICAgICAgICAgcmV0
dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNoYXIqKWZlYXR1
cmVOYW1lLmNoYXJhY3RlcnM4KCkpOwogCi0gICAgcmV0dXJuIFtbW2RpY3Rpb25hcnkuZ2V0KCkg
b2JqZWN0Rm9yS2V5OmZlYXR1cmVOYW1lXSBvYmplY3RGb3JLZXk6QCJFbmFibGVkIl0gaXNLaW5k
T2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSAmJiBbW1tkaWN0aW9uYXJ5LmdldCgpIG9iamVjdEZv
cktleTpmZWF0dXJlTmFtZV0gb2JqZWN0Rm9yS2V5OkAiRW5hYmxlZCJdIGJvb2xWYWx1ZV07Cisg
ICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRW
YWx1ZSk7CisgICAgcmV0dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNv
bnN0IGNoYXIqKWZlYXR1cmVOYW1lLmNoYXJhY3RlcnM4KCkpOworI2VuZGlmIC8vIFBMQVRGT1JN
KE1BQykKKworI2Vsc2UKKworICAgIFVOVVNFRF9QQVJBTShmZWF0dXJlTmFtZSk7CisgICAgcmV0
dXJuIGRlZmF1bHRWYWx1ZTsKKworI2VuZGlmIC8vIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1Mp
CiB9CiAKICNlbmRpZgpAQCAtNjYsMTEgKzc4LDcgQEAgYm9vbCBpc0ZlYXR1cmVGbGFnRW5hYmxl
ZChjb25zdCBTdHJpbmcmIGZlYXR1cmVOYW1lKQogCiBib29sIGRlZmF1bHRJbmNyZW1lbnRhbFBE
RkVuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJu
IGlzRmVhdHVyZUZsYWdFbmFibGVkKCJpbmNyZW1lbnRhbF9wZGYiKTsKLSNlbmRpZgotCi0gICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiaW5jcmVtZW50
YWxfcGRmIiwgZmFsc2UpOwogfQogCiAjZW5kaWYKQEAgLTc5LDExICs4Nyw3IEBAIGJvb2wgZGVm
YXVsdEluY3JlbWVudGFsUERGRW5hYmxlZCgpCiAKIGJvb2wgZGVmYXVsdFdlYlhSRW5hYmxlZCgp
CiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJl
RmxhZ0VuYWJsZWQoIldlYlhSIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICBy
ZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIldlYlhSIiwgZmFsc2UpOwogfQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFdFQlhSKQpAQCAtMjc4LDIwICsyODIsMTIgQEAgYm9vbCBkZWZhdWx0V2hlZWxF
dmVudEdlc3R1cmVzQmVjb21lTm9uQmxvY2tpbmcoKQogCiBib29sIGRlZmF1bHRXZWJNUGFyc2Vy
RW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4g
aXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fcGFyc2VyIik7Ci0jZW5kaWYKLQotICAgIHJldHVy
biB0cnVlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgid2VibV9wYXJzZXIiLCB0
cnVlKTsKIH0KIAogYm9vbCBkZWZhdWx0V2ViTVdlYkF1ZGlvRW5hYmxlZCgpCiB7Ci0jaWYgSEFW
RShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQo
IndlYm1fd2ViYXVkaW8iKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgid2VibV93ZWJhdWRpbyIsIGZhbHNlKTsKIH0KIAogI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TT1VSQ0UpCkBAIC0zMDAsMjAgKzI5NiwxMiBAQCBib29sIGRl
ZmF1bHRXZWJNV2ViQXVkaW9FbmFibGVkKCkKIAogYm9vbCBkZWZhdWx0VlA4RGVjb2RlckVuYWJs
ZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVh
dHVyZUZsYWdFbmFibGVkKCJ2cDhfZGVjb2RlciIpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gZmFs
c2U7CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ2cDhfZGVjb2RlciIsIHRydWUp
OwogfQogCiBib29sIGRlZmF1bHRWUDlEZWNvZGVyRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNU
RU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoInZwOV9k
ZWNvZGVyIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBpc0ZlYXR1
cmVGbGFnRW5hYmxlZCgidnA5X2RlY29kZXIiLCB0cnVlKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJM
RShWUDkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMThkYmIzODNlYmNmMzg3ODczOTZmZGM4ZjhmYzMzMDliNmEzNjc1Ny4u
ZjQ3N2IxZWU0ZmM5MTg1OTEyODhjYTVkODI2ZmQwOWFhNjE0NTRkMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDIxLTA4LTA1ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAg
ICAgICAgW21hY09TXSBDbGVhbiB1cCBGZWF0dXJlIEZsYWdzIHJlbGF0ZWQgY29kZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4ODAzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBSZW1vdmUgYSBtYWMtYmlnc3Vy
IHNwZWNpZmljIHRlc3QgZXhwZWN0YXRpb24gZmlsZSBiZWNhdXNlIHRoZSB0ZXN0IGlzIHBhc3Np
bmcgbm93LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZlci1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLWJpZ3N1ci9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1hZGRzb3VyY2Vi
dWZmZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorCiAyMDIxLTA4LTAyICBKZWFuLVl2ZXMgQXZl
bmFyZCAgPGp5YUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1ZGlvXSBBZGQgd2VibS92b3Ji
aXMgY29udGFpbmVyIHN1cHBvcnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy1iaWdzdXIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVk
aWFzb3VyY2UtYWRkc291cmNlYnVmZmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy1iaWdzdXIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3Vy
Y2UvbWVkaWFzb3VyY2UtYWRkc291cmNlYnVmZmVyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOGUwMzMzOTZkZDBjMTVhYjU1MjJhN2ExN2JhNzQ5NzQzN2QwOTc5
OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtYmlnc3VyL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
bWVkaWEtc291cmNlL21lZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZlci1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0KLVBBU1MgVGVzdCBhZGRTb3VyY2VCdWZmZXIo
KSBpbiAnZW5kZWQnIHN0YXRlLgotUEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggZW1w
dHkgdHlwZQotUEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggbnVsbAotUEFTUyBUZXN0
IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggdW5zdXBwb3J0ZWQgdHlwZQotRkFJTCBUZXN0IGFkZFNv
dXJjZUJ1ZmZlcigpIHdpdGggVm9yYmlzIGFuZCBWUDggYXNzZXJ0X3RydWU6IHZpZGVvL3dlYm07
Y29kZWNzPSJ2cDgsdm9yYmlzIiBpcyBzdXBwb3J0ZWQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
LUZBSUwgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRoIFZvcmJpcyBhbmQgVlA4IGluIHNlcGFy
YXRlIFNvdXJjZUJ1ZmZlcnMgYXNzZXJ0X3RydWU6IGF1ZGlvL3dlYm07Y29kZWNzPSJ2b3JiaXMi
IGlzIHN1cHBvcnRlZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotUEFTUyBUZXN0IGFkZFNvdXJj
ZUJ1ZmZlcigpIHZpZGVvIG9ubHkKLVBBU1MgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSBhdWRpbyBv
bmx5Ci1QQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBBQUMgYW5kIEguMjY0Ci1QQVNT
IFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBBQUMgYW5kIEguMjY0IGluIHNlcGFyYXRlIFNv
dXJjZUJ1ZmZlcnMKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFkZHNv
dXJjZWJ1ZmZlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYWRkc291
cmNlYnVmZmVyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzRl
MTFjOTIxN2JjZDcxMDllMDEyMTQ3ZjlhZWExYTIxZmFkMTc1ZS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYWRk
c291cmNlYnVmZmVyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAK
LQotUEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIGluICdlbmRlZCcgc3RhdGUuCi1QQVNTIFRl
c3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBlbXB0eSB0eXBlCi1QQVNTIFRlc3QgYWRkU291cmNl
QnVmZmVyKCkgd2l0aCBudWxsCi1QQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCB1bnN1
cHBvcnRlZCB0eXBlCi1GQUlMIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBWb3JiaXMgYW5k
IFZQOCBhc3NlcnRfdHJ1ZTogdmlkZW8vd2VibTtjb2RlY3M9InZwOCx2b3JiaXMiIGlzIHN1cHBv
cnRlZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigp
IHdpdGggVm9yYmlzIGFuZCBWUDggaW4gc2VwYXJhdGUgU291cmNlQnVmZmVycyBhc3NlcnRfdHJ1
ZTogdmlkZW8vd2VibTtjb2RlY3M9InZwOCIgaXMgc3VwcG9ydGVkIGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCi1QQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgdmlkZW8gb25seQotUEFTUyBUZXN0
IGFkZFNvdXJjZUJ1ZmZlcigpIGF1ZGlvIG9ubHkKLVBBU1MgVGVzdCBhZGRTb3VyY2VCdWZmZXIo
KSB3aXRoIEFBQyBhbmQgSC4yNjQKLVBBU1MgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRoIEFB
QyBhbmQgSC4yNjQgaW4gc2VwYXJhdGUgU291cmNlQnVmZmVycwotCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435055</attachid>
            <date>2021-08-05 21:43:12 -0700</date>
            <delta_ts>2021-08-06 09:38:36 -0700</delta_ts>
            <desc>Rebase a test expectation for BigSur</desc>
            <filename>bug-228803-20210805214311.patch</filename>
            <type>text/plain</type>
            <size>25738</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYyNTJlNDU5ZGNmMmFhOTZm
MDc1ZDMwMjJlMjIxNGYzMjY3NjMyZjYuLmVhNjdlNDMzYjAwZTAzMTVkYzVhOTZiOGFkMGI4YTNm
MTRhZDNiZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjEtMDgtMDUgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIENsZWFuIHVwIEZlYXR1
cmUgRmxhZ3MgcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjg4MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxMTQyOTgyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgT24gbWFjT1MsIFNh
ZmFyaSBUZWNobm9sb2d5IFByZXZpZXcgb3IgYSBsb2NhbCBidWlsZCBXZWJLaXQvU2FmYXJpIHdp
bGwgYWx3YXlzCisgICAgICAgIGdldCB0aGUgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcyB0aHJv
dWdoIHRoZSAiRmVhdHVyZSBGbGFncyIgU1BJLiBVbmZvcnR1bmF0ZWx5LAorICAgICAgICB0aGlz
IGFwcHJvYWNoIHdvbid0IHdvcmsgaWYgdGhlIE9TIGRvZXMgbm90IHByb3ZpZGUgY29ycmVjdCBk
ZWZhdWx0IHByZWZlcmVuY2UgdmFsdWVzLgorCisgICAgICAgIFdpdGggdGhpcyBwYXRjaCwgd2Ug
b25seSBnZXQgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcyB3aXRoIHRoZSBTUEkgZm9yIHN5c3Rl
bQorICAgICAgICBXZWJLaXQgb24gbWFjT1MuIEZvciBhbGwgb3RoZXIgY2FzZXMsIHdlIHVzZSBo
YXJkY29kZWQgdmFsdWVzLiBTbyB0aGF0CisgICAgICAgIFdlYktpdCB3aWxsIGFsd2F5cyBnZXQg
dGhlIGNvcnJlY3QgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcy4KKworICAgICAgICBUaGlzIHBh
dGNoIGFsc28gZml4ZXMgYSBmZXcgbWlzdGFrZXMgaW4gdHdvIHByZWZlcmVuY2VzOiAid2VibV93
ZWJhdWRpbyIgYW5kICJ2cDhfZGVjb2RlciIuCisKKyAgICAgICAgKiBGZWF0dXJlRmxhZ3MvV2Vi
S2l0LWFwcGxldHZvcy5wbGlzdDoKKyAgICAgICAgKiBGZWF0dXJlRmxhZ3MvV2ViS2l0LWlvcy5w
bGlzdDoKKyAgICAgICAgKiBGZWF0dXJlRmxhZ3MvV2ViS2l0LW1hY29zLnBsaXN0OgorICAgICAg
ICAqIEZlYXR1cmVGbGFncy9XZWJLaXQtd2F0Y2hvcy5wbGlzdDoKKworICAgICAgICAqIFNoYXJl
ZC9Db2NvYS9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6aXNGZWF0dXJlRmxhZ0VuYWJsZWQpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJl
bmNlc0RlZmF1bHRWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViS2l0Ojppc0ZlYXR1cmVGbGFnRW5h
YmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRBc3luY0ZyYW1lQW5kT3ZlcmZsb3dTY3Jv
bGxpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JD
YW52YXNSZW5kZXJpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFVzZUdQVVBy
b2Nlc3NGb3JET01SZW5kZXJpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFVz
ZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0VXNl
R1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRDYXB0
dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdENh
cHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0
V2ViUlRDQ29kZWNzSW5HUFVQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdEluY3Jl
bWVudGFsUERGRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXZWJNRm9ybWF0UmVh
ZGVyRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRWUDhEZWNvZGVyRW5hYmxlZCk6
CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRWUDlEZWNvZGVyRW5hYmxlZCk6CisgICAgICAgIChX
ZWJLaXQ6OmRlZmF1bHRWUDlTV0RlY29kZXJFbmFibGVkT25CYXR0ZXJ5KToKKyAgICAgICAgKFdl
YktpdDo6ZGVmYXVsdFdlYk1QYXJzZXJFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVs
dFdlYk1XZWJBdWRpb0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0SW5BcHBCcm93
c2VyUHJpdmFjeSk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlcy5oOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKTogRml4IGEg
dHlwby4KKwogMjAyMS0wOC0wMiAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtHUFVQXSBSZW1vdGVBdWRpb1Nlc3Npb246OnNldFByZWZlcnJlZEJ1ZmZlclNpemUo
KSBkb2VzIG5vdCBjaGFuZ2UgaXRzIHByZWZlcnJlZEJ1ZmZlclNpemUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwppbmRleCAwZGZmNDM4YzEyMDc1N2YzNjNlMDBkYjgzMjQ3MzVmNTVlMGExYjlj
Li4wODFjYzhhMDg5N2E4YjliMzM0YmFjYmZkZGQ3MzNiOGY4MmZiMWViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMDgtMDUgIFBlbmcgTGl1ICA8
cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIENsZWFuIHVwIEZlYXR1cmUg
RmxhZ3MgcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjg4MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxMTQyOTgyPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgT24gbWFjT1MsIFNhZmFy
aSBUZWNobm9sb2d5IFByZXZpZXcgb3IgYSBsb2NhbCBidWlsZCBXZWJLaXQvU2FmYXJpIHdpbGwg
YWx3YXlzCisgICAgICAgIGdldCB0aGUgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcyB0aHJvdWdo
IHRoZSAiRmVhdHVyZSBGbGFncyIgU1BJLiBVbmZvcnR1bmF0ZWx5LAorICAgICAgICB0aGlzIGFw
cHJvYWNoIHdvbid0IHdvcmsgaWYgdGhlIE9TIGRvZXMgbm90IHByb3ZpZGUgY29ycmVjdCBkZWZh
dWx0IHByZWZlcmVuY2UgdmFsdWVzLgorCisgICAgICAgIFdpdGggdGhpcyBwYXRjaCwgd2Ugb25s
eSBnZXQgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcyB3aXRoIHRoZSBTUEkgZm9yIHN5c3RlbQor
ICAgICAgICBXZWJLaXQgb24gbWFjT1MuIEZvciBhbGwgb3RoZXIgY2FzZXMsIHdlIHVzZSBoYXJk
Y29kZWQgdmFsdWVzLiBTbyB0aGF0CisgICAgICAgIFdlYktpdCB3aWxsIGFsd2F5cyBnZXQgdGhl
IGNvcnJlY3QgZGVmYXVsdCBwcmVmZXJlbmNlIHZhbHVlcy4KKworICAgICAgICBUaGlzIHBhdGNo
IGFsc28gZml4ZXMgYSBmZXcgbWlzdGFrZXMgaW4gdHdvIHByZWZlcmVuY2VzOiAid2VibV93ZWJh
dWRpbyIgYW5kICJ2cDhfZGVjb2RlciIuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVu
Y2VzRGVmYXVsdFZhbHVlcy5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZh
dWx0VmFsdWVzLm1tOgorICAgICAgICAoV2ViS2l0Ojppc0ZlYXR1cmVGbGFnRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OmRlZmF1bHRJbmNyZW1lbnRhbFBERkVuYWJsZWQpOgorICAgICAgICAo
V2ViS2l0OjpkZWZhdWx0V2ViWFJFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFdl
Yk1QYXJzZXJFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFdlYk1XZWJBdWRpb0Vu
YWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0VlA4RGVjb2RlckVuYWJsZWQpOgorICAg
ICAgICAoV2ViS2l0OjpkZWZhdWx0VlA5RGVjb2RlckVuYWJsZWQpOgorCiAyMDIxLTA3LTI5ICBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCBi
dWlsZGluZyBXZWJHUFUgYW5kIHRoZSBXSExTTCBjb21waWxlciB0byBkZWNyZWFzZSBiaW5hcnkg
c2l6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9GZWF0dXJlRmxhZ3MvV2ViS2l0LWFwcGxl
dHZvcy5wbGlzdCBiL1NvdXJjZS9XZWJLaXQvRmVhdHVyZUZsYWdzL1dlYktpdC1hcHBsZXR2b3Mu
cGxpc3QKaW5kZXggNDgxNjM3NjUzMTk5MjNlZTllZTM3OWI0ZjlkYmJmN2VhMWIzZjBmOS4uZTRj
NjNlNTI3MzdhMDZjYjBiODBkMzBiMGQzZGNjYjdhNTI2ZTcyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9GZWF0dXJlRmxhZ3MvV2ViS2l0LWFwcGxldHZvcy5wbGlzdAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0ZlYXR1cmVGbGFncy9XZWJLaXQtYXBwbGV0dm9zLnBsaXN0CkBAIC02Nyw2ICs2Nywx
MSBAQAogCQk8a2V5PkVuYWJsZWQ8L2tleT4KIAkJPHRydWUvPgogCTwvZGljdD4KKwk8a2V5PnZw
OF9kZWNvZGVyPC9rZXk+CisJPGRpY3Q+CisJCTxrZXk+RW5hYmxlZDwva2V5PgorCQk8dHJ1ZS8+
CisJPC9kaWN0PgogCTxrZXk+V2ViWFI8L2tleT4KIAk8ZGljdD4KIAkJPGtleT5FbmFibGVkPC9r
ZXk+CkBAIC04MiwxMSArODcsNiBAQAogCQk8a2V5PkVuYWJsZWQ8L2tleT4KIAkJPHRydWUvPgog
CTwvZGljdD4KLQk8a2V5PndlYm1fd2ViYXVkaW88L2tleT4KLQk8ZGljdD4KLQkJPGtleT5FbmFi
bGVkPC9rZXk+Ci0JCTx0cnVlLz4KLQk8L2RpY3Q+CiAJPGtleT5SQl9mdWxsX21hbmFnZV9XS19q
ZXRzYW08L2tleT4KIAk8ZGljdD4KIAkJPGtleT5FbmFibGVkPC9rZXk+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0ZlYXR1cmVGbGFncy9XZWJLaXQtaW9zLnBsaXN0IGIvU291cmNlL1dlYktp
dC9GZWF0dXJlRmxhZ3MvV2ViS2l0LWlvcy5wbGlzdAppbmRleCA3OWE0ZTNjOTg0MmIyMWQ4NDM1
ZmMxOTFkMTg2MzIwNWE3YWQyMTNlLi5mNTk5YTQwMjBjZDEyMWM4ZDg4ZTE0YmI5ZWViYjViNTM4
MzU0M2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0ZlYXR1cmVGbGFncy9XZWJLaXQtaW9z
LnBsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRmVhdHVyZUZsYWdzL1dlYktpdC1pb3MucGxpc3QK
QEAgLTY3LDYgKzY3LDExIEBACiAJCTxrZXk+RW5hYmxlZDwva2V5PgogCQk8dHJ1ZS8+CiAJPC9k
aWN0PgorCTxrZXk+dnA4X2RlY29kZXI8L2tleT4KKwk8ZGljdD4KKwkJPGtleT5FbmFibGVkPC9r
ZXk+CisJCTx0cnVlLz4KKwk8L2RpY3Q+CiAJPGtleT5XZWJYUjwva2V5PgogCTxkaWN0PgogCQk8
a2V5PkVuYWJsZWQ8L2tleT4KQEAgLTgyLDExICs4Nyw2IEBACiAJCTxrZXk+RW5hYmxlZDwva2V5
PgogCQk8dHJ1ZS8+CiAJPC9kaWN0PgotCTxrZXk+d2VibV93ZWJhdWRpbzwva2V5PgotCTxkaWN0
PgotCQk8a2V5PkVuYWJsZWQ8L2tleT4KLQkJPHRydWUvPgotCTwvZGljdD4KIAk8a2V5PlJCX2Z1
bGxfbWFuYWdlX1dLX2pldHNhbTwva2V5PgogCTxkaWN0PgogCQk8a2V5PkVuYWJsZWQ8L2tleT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRmVhdHVyZUZsYWdzL1dlYktpdC1tYWNvcy5wbGlz
dCBiL1NvdXJjZS9XZWJLaXQvRmVhdHVyZUZsYWdzL1dlYktpdC1tYWNvcy5wbGlzdAppbmRleCA3
OWE0ZTNjOTg0MmIyMWQ4NDM1ZmMxOTFkMTg2MzIwNWE3YWQyMTNlLi5iNGY3MTEwYTJjMDkyYTE5
NDVhODEzZWM2NDZiOTMyMTVjZWQ2MjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0ZlYXR1
cmVGbGFncy9XZWJLaXQtbWFjb3MucGxpc3QKKysrIGIvU291cmNlL1dlYktpdC9GZWF0dXJlRmxh
Z3MvV2ViS2l0LW1hY29zLnBsaXN0CkBAIC02Nyw2ICs2NywxMSBAQAogCQk8a2V5PkVuYWJsZWQ8
L2tleT4KIAkJPHRydWUvPgogCTwvZGljdD4KKwk8a2V5PnZwOF9kZWNvZGVyPC9rZXk+CisJPGRp
Y3Q+CisJCTxrZXk+RW5hYmxlZDwva2V5PgorCQk8dHJ1ZS8+CisJPC9kaWN0PgogCTxrZXk+V2Vi
WFI8L2tleT4KIAk8ZGljdD4KIAkJPGtleT5FbmFibGVkPC9rZXk+CkBAIC04NSw3ICs5MCw3IEBA
CiAJPGtleT53ZWJtX3dlYmF1ZGlvPC9rZXk+CiAJPGRpY3Q+CiAJCTxrZXk+RW5hYmxlZDwva2V5
PgotCQk8dHJ1ZS8+CisJCTxmYWxzZS8+CiAJPC9kaWN0PgogCTxrZXk+UkJfZnVsbF9tYW5hZ2Vf
V0tfamV0c2FtPC9rZXk+CiAJPGRpY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0ZlYXR1
cmVGbGFncy9XZWJLaXQtd2F0Y2hvcy5wbGlzdCBiL1NvdXJjZS9XZWJLaXQvRmVhdHVyZUZsYWdz
L1dlYktpdC13YXRjaG9zLnBsaXN0CmluZGV4IDQ4MTYzNzY1MzE5OTIzZWU5ZWUzNzliNGY5ZGJi
ZjdlYTFiM2YwZjkuLmU0YzYzZTUyNzM3YTA2Y2IwYjgwZDMwYjBkM2RjY2I3YTUyNmU3MjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRmVhdHVyZUZsYWdzL1dlYktpdC13YXRjaG9zLnBsaXN0
CisrKyBiL1NvdXJjZS9XZWJLaXQvRmVhdHVyZUZsYWdzL1dlYktpdC13YXRjaG9zLnBsaXN0CkBA
IC02Nyw2ICs2NywxMSBAQAogCQk8a2V5PkVuYWJsZWQ8L2tleT4KIAkJPHRydWUvPgogCTwvZGlj
dD4KKwk8a2V5PnZwOF9kZWNvZGVyPC9rZXk+CisJPGRpY3Q+CisJCTxrZXk+RW5hYmxlZDwva2V5
PgorCQk8dHJ1ZS8+CisJPC9kaWN0PgogCTxrZXk+V2ViWFI8L2tleT4KIAk8ZGljdD4KIAkJPGtl
eT5FbmFibGVkPC9rZXk+CkBAIC04MiwxMSArODcsNiBAQAogCQk8a2V5PkVuYWJsZWQ8L2tleT4K
IAkJPHRydWUvPgogCTwvZGljdD4KLQk8a2V5PndlYm1fd2ViYXVkaW88L2tleT4KLQk8ZGljdD4K
LQkJPGtleT5FbmFibGVkPC9rZXk+Ci0JCTx0cnVlLz4KLQk8L2RpY3Q+CiAJPGtleT5SQl9mdWxs
X21hbmFnZV9XS19qZXRzYW08L2tleT4KIAk8ZGljdD4KIAkJPGtleT5FbmFibGVkPC9rZXk+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXNDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYlByZWZlcmVu
Y2VzRGVmYXVsdFZhbHVlc0NvY29hLm1tCmluZGV4IGNkYjM2M2E4ZjhhMDNiYTM1NjM0OTAxYTQ4
OWIwMDVmMzg5YTkyM2MuLjBhY2Y5NjA0ODBlMmU5MmIyNjNkMTc3MDdhY2E5MTJjZDZkMGIzNTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYlBy
ZWZlcmVuY2VzRGVmYXVsdFZhbHVlc0NvY29hLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0
ICJjb25maWcuaCIKICNpbXBvcnQgIldlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oIgogCi0j
aWYgUExBVEZPUk0oQ09DT0EpICYmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCisjaWYgUExB
VEZPUk0oQ09DT0EpCiAKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNCdW5kbGUuaD4KIApAQCAtMzgs
MjIgKzM4LDMxIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogLy8gQmVjYXVzZSBvZiA8cmRhcjov
L3Byb2JsZW0vNjA2MDgwMDg+LCBXZWJLaXQgaGFzIHRvIHBhcnNlIHRoZSBmZWF0dXJlIGZsYWdz
IHBsaXN0IGZpbGUKLWJvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiBmZWF0
dXJlTmFtZSkKK2Jvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiBmZWF0dXJl
TmFtZSwgYm9vbCBkZWZhdWx0VmFsdWUpCiB7Ci0gICAgc3RhdGljIGJvb2wgaXNXZWJLaXRCdW5k
bGVGcm9tU3RhZ2VkRnJhbWV3b3JrID0gW10gewotICAgICAgICBOU0J1bmRsZSAqd2Via2l0MkJ1
bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpOU0NsYXNzRnJvbVN0cmluZyhAIldLV2Vi
VmlldyIpXTsKLSAgICAgICAgcmV0dXJuIFt3ZWJraXQyQnVuZGxlLmJ1bmRsZVBhdGggaGFzUHJl
Zml4OkAiL0xpYnJhcnkvQXBwbGUvU3lzdGVtL0xpYnJhcnkvU3RhZ2VkRnJhbWV3b3Jrcy9TYWZh
cmkvIl07CisjaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKKworI2lmIFBMQVRGT1JNKE1B
QykKKyAgICBzdGF0aWMgYm9vbCBpc1N5c3RlbVdlYktpdCA9IFtdIHsKKyAgICAgICAgTlNCdW5k
bGUgKmJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpOU0NsYXNzRnJvbVN0cmluZyhA
IldLV2ViVmlldyIpXTsKKyAgICAgICAgcmV0dXJuIFtidW5kbGUuYnVuZGxlUGF0aCBoYXNQcmVm
aXg6QCIvU3lzdGVtLyJdOwogICAgIH0oKTsKIAotICAgIGlmICghaXNXZWJLaXRCdW5kbGVGcm9t
U3RhZ2VkRnJhbWV3b3JrKQotICAgICAgICByZXR1cm4gX29zX2ZlYXR1cmVfZW5hYmxlZF9pbXBs
KCJXZWJLaXQiLCAoY29uc3QgY2hhciopZmVhdHVyZU5hbWUudXRmOCgpLmRhdGEoKSk7CisgICAg
aWYgKGlzU3lzdGVtV2ViS2l0KQorICAgICAgICByZXR1cm4gX29zX2ZlYXR1cmVfZW5hYmxlZF9p
bXBsKCJXZWJLaXQiLCAoY29uc3QgY2hhciopZmVhdHVyZU5hbWUuY2hhcmFjdGVyczgoKSk7CisK
KyAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVmYXVs
dFZhbHVlKTsKKyAgICByZXR1cm4gX29zX2ZlYXR1cmVfZW5hYmxlZF9pbXBsKCJXZWJLaXQiLCAo
Y29uc3QgY2hhciopZmVhdHVyZU5hbWUuY2hhcmFjdGVyczgoKSk7CisjZW5kaWYgLy8gUExBVEZP
Uk0oTUFDKQogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxOU0RpY3Rpb25h
cnk+PiBkaWN0aW9uYXJ5ID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aENvbnRlbnRzT2ZG
aWxlOkAiL0xpYnJhcnkvQXBwbGUvU3lzdGVtL0xpYnJhcnkvRmVhdHVyZUZsYWdzL0RvbWFpbi9X
ZWJLaXQucGxpc3QiXTsKKyNlbHNlCiAKLSAgICBpZiAoIVtbZGljdGlvbmFyeS5nZXQoKSBvYmpl
Y3RGb3JLZXk6ZmVhdHVyZU5hbWVdIG9iamVjdEZvcktleTpAIkVuYWJsZWQiXSkKLSAgICAgICAg
cmV0dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNoYXIqKWZl
YXR1cmVOYW1lLmNoYXJhY3RlcnM4KCkpOworICAgIFVOVVNFRF9QQVJBTShmZWF0dXJlTmFtZSk7
CisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKIAotICAgIHJldHVybiBbW1tkaWN0aW9uYXJ5Lmdl
dCgpIG9iamVjdEZvcktleTpmZWF0dXJlTmFtZV0gb2JqZWN0Rm9yS2V5OkAiRW5hYmxlZCJdIGlz
S2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0gJiYgW1tbZGljdGlvbmFyeS5nZXQoKSBvYmpl
Y3RGb3JLZXk6ZmVhdHVyZU5hbWVdIG9iamVjdEZvcktleTpAIkVuYWJsZWQiXSBib29sVmFsdWVd
OworI2VuZGlmIC8vIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNEZWZhdWx0VmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
RGVmYXVsdFZhbHVlcy5jcHAKaW5kZXggYWZhZmUzYzdlNTMzMDYyNGVhODQ2ZWJhMDc1YmYyODU1
YTBhMjM3ZS4uMjMxNDY3OTE5NzYzMWFhN2FiNjNjOTZkYmYyYmQyNWU2MWE5ZTA3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMu
Y3BwCkBAIC00MSw2ICs0MSwxMyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorI2lmICFQTEFU
Rk9STShDT0NPQSkKK2Jvb2wgaXNGZWF0dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJiwgYm9v
bCBkZWZhdWx0VmFsdWUpCit7CisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKK30KKyNlbmRpZgor
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogYm9vbCBkZWZhdWx0UGFzc2l2ZVRvdWNoTGlz
dGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCgpCkBAIC0xMDgsMTUgKzExNSwxMyBAQCBzdGF0aWMg
Ym9vbCBkZWZhdWx0QXN5bmNGcmFtZUFuZE92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCgpCiAgICAg
cmV0dXJuIHRydWU7CiAjZW5kaWYKIAotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0g
ICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJhc3luY19mcmFtZV9hbmRfb3ZlcmZsb3df
c2Nyb2xsaW5nIik7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1BQykKLSAgICByZXR1cm4gdHJ1
ZTsKKyAgICBib29sIGRlZmF1bHRWYWx1ZSA9IHRydWU7CisjZWxzZQorICAgIGJvb2wgZGVmYXVs
dFZhbHVlID0gZmFsc2U7CiAjZW5kaWYKIAotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4g
aXNGZWF0dXJlRmxhZ0VuYWJsZWQoImFzeW5jX2ZyYW1lX2FuZF9vdmVyZmxvd19zY3JvbGxpbmci
LCBkZWZhdWx0VmFsdWUpOwogfQogCiBib29sIGRlZmF1bHRBc3luY0ZyYW1lU2Nyb2xsaW5nRW5h
YmxlZCgpCkBAIC0xNTAsNDkgKzE1NSwzMyBAQCBib29sIGRlZmF1bHRPZmZsaW5lV2ViQXBwbGlj
YXRpb25DYWNoZUVuYWJsZWQoKQogYm9vbCBkZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvckNhbnZhc1Jl
bmRlcmluZ0VuYWJsZWQoKQogewogI2lmIEVOQUJMRShHUFVfUFJPQ0VTU19CWV9ERUZBVUxUKQot
I2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdF
bmFibGVkKCJncHVfcHJvY2Vzc19jYW52YXNfcmVuZGVyaW5nIik7CisgICAgYm9vbCBkZWZhdWx0
VmFsdWUgPSB0cnVlOwogI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBIQVZFKFNZ
U1RFTV9GRUFUVVJFX0ZMQUdTKQotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBk
ZWZhdWx0VmFsdWUgPSBmYWxzZTsKICNlbmRpZgorCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdF
bmFibGVkKCJncHVfcHJvY2Vzc19jYW52YXNfcmVuZGVyaW5nIiwgZGVmYXVsdFZhbHVlKTsKIH0K
IAogYm9vbCBkZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvckRPTVJlbmRlcmluZ0VuYWJsZWQoKQogewot
I2lmIEVOQUJMRShHUFVfUFJPQ0VTU19CWV9ERUZBVUxUKQotI2lmIEhBVkUoU1lTVEVNX0ZFQVRV
UkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc19k
b21fcmVuZGVyaW5nIik7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZiAvLyBIQVZF
KFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYK
KyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX2RvbV9yZW5kZXJp
bmciLCBmYWxzZSk7CiB9CiAKIGJvb2wgZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJs
ZWQoKQogewogI2lmIEVOQUJMRShHUFVfUFJPQ0VTU19CWV9ERUZBVUxUKQotI2lmIEhBVkUoU1lT
VEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVf
cHJvY2Vzc19tZWRpYSIpOwotI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBIQVZF
KFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQorICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNl
bHNlCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAj
ZW5kaWYKKworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfbWVk
aWEiLCBkZWZhdWx0VmFsdWUpOwogfQogCiBib29sIGRlZmF1bHRVc2VHUFVQcm9jZXNzRm9yV2Vi
R0xFbmFibGVkKCkKIHsKLSNpZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVy
biBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2ViZ2wiKTsKLSNlbmRpZgotCi0g
ICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3By
b2Nlc3Nfd2ViZ2wiLCBmYWxzZSk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CkBAIC0yMDIsMTkgKzE5MSwxNyBAQCBib29sIGRlZmF1bHRVc2VHUFVQcm9jZXNzRm9yV2ViR0xF
bmFibGVkKCkKIGJvb2wgZGVmYXVsdENhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQoKQog
ewogI2lmIEVOQUJMRShHUFVfUFJPQ0VTU19CWV9ERUZBVUxUKQorICAgIGJvb2wgZGVmYXVsdFZh
bHVlID0gdHJ1ZTsKKyNlbHNlCisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSBmYWxzZTsKKyNlbmRp
ZgogCi0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKICNpZiBQTEFURk9STShNQUMpCi0g
ICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc193ZWJydGMiKTsKKyAg
ICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoImdwdV9wcm9jZXNzX3dlYnJ0YyIsIGRlZmF1
bHRWYWx1ZSk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHJldHVybiBpc0ZlYXR1
cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfbWVkaWEiKTsKLSNlbmRpZgotI2Vsc2UKLSAgICBy
ZXR1cm4gdHJ1ZTsKLSNlbmRpZiAvLyBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotCisgICAg
cmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc19tZWRpYSIsIGRlZmF1bHRW
YWx1ZSk7CiAjZWxzZQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gZGVmYXVsdFZhbHVl
OwogI2VuZGlmCiB9CiAKQEAgLTIzMCwxNCArMjE3LDEyIEBAIGJvb2wgZGVmYXVsdENhcHR1cmVB
dWRpb0luVUlQcm9jZXNzRW5hYmxlZCgpCiBib29sIGRlZmF1bHRDYXB0dXJlVmlkZW9JbkdQVVBy
b2Nlc3NFbmFibGVkKCkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1NfQllfREVGQVVMVCkKLSNp
ZiBIQVZFKFNZU1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5h
YmxlZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIik7Ci0jZWxzZQotICAgIHJldHVybiB0cnVlOwotI2Vu
ZGlmIC8vIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCisgICAgYm9vbCBkZWZhdWx0VmFsdWUg
PSB0cnVlOwogI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBkZWZhdWx0VmFsdWUg
PSBmYWxzZTsKICNlbmRpZgorCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVf
cHJvY2Vzc193ZWJydGMiLCBkZWZhdWx0VmFsdWUpOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX1NUUkVBTSkKQEAgLTI0NywzOSArMjMyLDI2IEBAIGJvb2wgZGVmYXVsdENhcHR1cmVWaWRl
b0luR1BVUHJvY2Vzc0VuYWJsZWQoKQogYm9vbCBkZWZhdWx0V2ViUlRDQ29kZWNzSW5HUFVQcm9j
ZXNzKCkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1NfQllfREVGQVVMVCkKLSNpZiBIQVZFKFNZ
U1RFTV9GRUFUVVJFX0ZMQUdTKQotICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1
X3Byb2Nlc3Nfd2VicnRjIik7Ci0jZWxzZQotICAgIHJldHVybiB0cnVlOwotI2VuZGlmIC8vIEhB
VkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSB0cnVlOwog
I2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSBmYWxzZTsK
ICNlbmRpZgorCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc193
ZWJydGMiLCBkZWZhdWx0VmFsdWUpOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCiAK
LWJvb2wgZGVmYXVsdEluQXBwQnJvd3NlclByaXZhY3koKQotewotI2lmIEhBVkUoU1lTVEVNX0ZF
QVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJJbkFwcEJyb3dz
ZXJQcml2YWN5Iik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQogI2lmIEhBVkUo
SU5DUkVNRU5UQUxfUERGX0FQSVMpCiBib29sIGRlZmF1bHRJbmNyZW1lbnRhbFBERkVuYWJsZWQo
KQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVy
ZUZsYWdFbmFibGVkKCJpbmNyZW1lbnRhbF9wZGYiKTsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0o
TUFDKQotICAgIHJldHVybiB0cnVlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gdHJ1ZTsKICNl
bHNlCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2U7CiAj
ZW5kaWYKKworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiaW5jcmVtZW50YWxfcGRm
IiwgZGVmYXVsdFZhbHVlKTsKIH0KICNlbmRpZgogCkBAIC0zMDAsMTUgKzI3MiwxMyBAQCBib29s
IGRlZmF1bHRXZWJYUkVuYWJsZWQoKQogCiBib29sIGRlZmF1bHRXZWJNRm9ybWF0UmVhZGVyRW5h
YmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNG
ZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fZm9ybWF0X3JlYWRlciIpOwotI2VuZGlmCi0KICNpZiBQ
TEFURk9STShNQUMpCi0gICAgcmV0dXJuIHRydWU7CisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSB0
cnVlOwogI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBkZWZhdWx0VmFsdWUgPSBm
YWxzZTsKICNlbmRpZgorCisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX2Zv
cm1hdF9yZWFkZXIiLCBkZWZhdWx0VmFsdWUpOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQk1f
Rk9STUFUX1JFQURFUikKQEAgLTMxNywyOSArMjg3LDE3IEBAIGJvb2wgZGVmYXVsdFdlYk1Gb3Jt
YXRSZWFkZXJFbmFibGVkKCkKIAogYm9vbCBkZWZhdWx0VlA4RGVjb2RlckVuYWJsZWQoKQogewot
I2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdF
bmFibGVkKCJ2cDhfZGVjb2RlciIpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ2cDhfZGVjb2RlciIsIHRydWUpOwogfQogCiBi
b29sIGRlZmF1bHRWUDlEZWNvZGVyRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVS
RV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoInZwOV9kZWNvZGVyIik7
Ci0jZW5kaWYKLQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5h
YmxlZCgidnA5X2RlY29kZXIiLCB0cnVlKTsKIH0KIAogYm9vbCBkZWZhdWx0VlA5U1dEZWNvZGVy
RW5hYmxlZE9uQmF0dGVyeSgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAg
ICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoInN3X3ZwOV9kZWNvZGVyX29uX2JhdHRlcnki
KTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFn
RW5hYmxlZCgic3dfdnA5X2RlY29kZXJfb25fYmF0dGVyeSIsIGZhbHNlKTsKIH0KICNlbmRpZiAv
LyBFTkFCTEUoVlA5KQogCkBAIC0zNDcsMjAgKzMwNSwxMiBAQCBib29sIGRlZmF1bHRWUDlTV0Rl
Y29kZXJFbmFibGVkT25CYXR0ZXJ5KCkKIAogYm9vbCBkZWZhdWx0V2ViTVBhcnNlckVuYWJsZWQo
KQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVy
ZUZsYWdFbmFibGVkKCJ3ZWJtX3BhcnNlciIpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gdHJ1ZTsK
KyAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fcGFyc2VyIiwgdHJ1ZSk7CiB9
CiAKIGJvb2wgZGVmYXVsdFdlYk1XZWJBdWRpb0VuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVN
X0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ3ZWJtX3dl
YmF1ZGlvIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gaXNGZWF0
dXJlRmxhZ0VuYWJsZWQoIndlYm1fd2ViYXVkaW8iLCBmYWxzZSk7CiB9CiAKICNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU09VUkNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaAppbmRleCBlNmZmMTgzNjBiMmJkYjA4ZWNmMTZmYThmYmRl
OTQwOTg5NmM1NDU3Li5hN2QxZjVhYWZkZGUyY2MzNjA5MmI3MWY4NTY3M2MwNWM0OWVlMjZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXMuaApAQCAtMzUsOSArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotI2lmIEhBVkUo
U1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi1ib29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0
cmluZyYpOwotI2VuZGlmCitib29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYs
IGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2UpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
IGJvb2wgZGVmYXVsdFBhc3NpdmVUb3VjaExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQoKTsK
QEAgLTg1LDggKzgzLDYgQEAgYm9vbCBkZWZhdWx0Q2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5h
YmxlZCgpOwogYm9vbCBkZWZhdWx0V2ViUlRDQ29kZWNzSW5HUFVQcm9jZXNzKCk7CiAjZW5kaWYK
IAotYm9vbCBkZWZhdWx0SW5BcHBCcm93c2VyUHJpdmFjeSgpOwotCiAjaWYgSEFWRShJTkNSRU1F
TlRBTF9QREZfQVBJUykKIGJvb2wgZGVmYXVsdEluY3JlbWVudGFsUERGRW5hYmxlZCgpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA4ZDQxZTQ1
MjNmNDdmOTIxMDUyNTljNjMwNjA1MTVlZjRmYzk4YzMzLi5lN2UwNDBiYmFjNzk5MzJkYzUwNGNm
YzgwMDBmMmNjNThkZTBlZDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKQEAgLTgyMzksNyArODIzOSw3IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2Vi
UGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAgICAg
cGFyYW1ldGVycy5zaG91bGRFbmFibGVWUDlEZWNvZGVyID0gcHJlZmVyZW5jZXMoKS52cDlEZWNv
ZGVyRW5hYmxlZCgpOwogI2lmIEVOQUJMRShWUDkpICYmIFBMQVRGT1JNKENPQ09BKQogICAgIC8v
IEZJWE1FOiBUaGlzIGlzIGFsc28gYmVpbmcgcGFzc2VkIG92ZXIgdGhlIHRvIFdlYlByb2Nlc3Mg
dmlhIHRoZSBQcmVmZXJlbmNlc1N0b3JlLgotICAgIHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxlVlA4
RGVjb2RlciA9IHByZWZlcmVuY2VzKCkudnA5RGVjb2RlckVuYWJsZWQoKTsKKyAgICBwYXJhbWV0
ZXJzLnNob3VsZEVuYWJsZVZQOERlY29kZXIgPSBwcmVmZXJlbmNlcygpLnZwOERlY29kZXJFbmFi
bGVkKCk7CiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYWxzbyBiZWluZyBwYXNzZWQgb3ZlciB0aGUg
dG8gV2ViUHJvY2VzcyB2aWEgdGhlIFByZWZlcmVuY2VzU3RvcmUuCiAgICAgcGFyYW1ldGVycy5z
aG91bGRFbmFibGVWUDlTV0RlY29kZXIgPSBwcmVmZXJlbmNlcygpLnZwOURlY29kZXJFbmFibGVk
KCkgJiYgKCFXZWJDb3JlOjpzeXN0ZW1IYXNCYXR0ZXJ5KCkgfHwgcHJlZmVyZW5jZXMoKS52cDlT
V0RlY29kZXJFbmFibGVkT25CYXR0ZXJ5KCkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXMuaAppbmRleCBkMDhjYmNiZWNmMzRlYzUxN2YyNDNkOWQwNWFiODJkMDNlNjUxNzYxLi45MjFm
YzU0YTkwNzI3ZjI0YWJmMDdjOGRlZWUwOThiNjIyZTk0NTM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0
VmFsdWVzLmgKQEAgLTM1LDggKzM1LDggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLSNpZiBQ
TEFURk9STShDT0NPQSkgJiYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLWJvb2wgaXNGZWF0
dXJlRmxhZ0VuYWJsZWQoY29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZPUk0oQ09DT0EpCitib29s
IGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYsIGJvb2wgZGVmYXVsdFZhbHVlID0g
ZmFsc2UpOwogI2VuZGlmCiAKICNpZiBIQVZFKElOQ1JFTUVOVEFMX1BERl9BUElTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzRGVmYXVsdFZhbHVlcy5tbQppbmRleCA5YTk0ZDY1ZDg1ZDE3N2I3NzcyYjc5YzM4Nzg0OGFk
NGM3Mjc1ZmRjLi42OGIwMjEzYTA4ZDg1MTk4YzI1NjI1YzliNWI0YTg2NWE4OThlOTkxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5tbQpAQCAtNDIsMjIgKzQyLDM0IEBACiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIEhBVkUoU1lTVEVNX0ZFQVRVUkVf
RkxBR1MpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAKIC8vIEJlY2F1c2Ugb2YgPHJkYXI6Ly9wcm9i
bGVtLzYwNjA4MDA4PiwgV2ViS2l0IGhhcyB0byBwYXJzZSB0aGUgZmVhdHVyZSBmbGFncyBwbGlz
dCBmaWxlCi1ib29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYgZmVhdHVyZU5h
bWUpCitib29sIGlzRmVhdHVyZUZsYWdFbmFibGVkKGNvbnN0IFN0cmluZyYgZmVhdHVyZU5hbWUs
IGJvb2wgZGVmYXVsdFZhbHVlKQogewotICAgIEJPT0wgaXNXZWJLaXRCdW5kbGVGcm9tU3RhZ2Vk
RnJhbWV3b3JrID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlUGF0aF0gaGFzUHJlZml4
OkAiL0xpYnJhcnkvQXBwbGUvU3lzdGVtL0xpYnJhcnkvU3RhZ2VkRnJhbWV3b3Jrcy9XZWJLaXQi
XTsKLQotICAgIGlmICghaXNXZWJLaXRCdW5kbGVGcm9tU3RhZ2VkRnJhbWV3b3JrKQotICAgICAg
ICByZXR1cm4gX29zX2ZlYXR1cmVfZW5hYmxlZF9pbXBsKCJXZWJLaXQiLCAoY29uc3QgY2hhciop
ZmVhdHVyZU5hbWUudXRmOCgpLmRhdGEoKSk7CisjaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFH
UykKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5Pj4g
ZGljdGlvbmFyeSA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhDb250ZW50c09mRmlsZTpA
Ii9MaWJyYXJ5L0FwcGxlL1N5c3RlbS9MaWJyYXJ5L0ZlYXR1cmVGbGFncy9Eb21haW4vV2ViS2l0
LnBsaXN0Il07CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHN0YXRpYyBib29sIGlzU3lzdGVtV2Vi
S2l0ID0gW10geworICAgICAgICBOU0J1bmRsZSAqYnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZv
ckNsYXNzOk5TQ2xhc3NGcm9tU3RyaW5nKEAiV2ViVmlldyIpXTsKKyAgICAgICAgcmV0dXJuIFti
dW5kbGUuYnVuZGxlUGF0aCBoYXNQcmVmaXg6QCIvU3lzdGVtLyJdOworICAgIH0oKTsKIAotICAg
IGlmICghW1tkaWN0aW9uYXJ5LmdldCgpIG9iamVjdEZvcktleTpmZWF0dXJlTmFtZV0gb2JqZWN0
Rm9yS2V5OkAiRW5hYmxlZCJdKQorICAgIGlmIChpc1N5c3RlbVdlYktpdCkKICAgICAgICAgcmV0
dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNvbnN0IGNoYXIqKWZlYXR1
cmVOYW1lLmNoYXJhY3RlcnM4KCkpOwogCi0gICAgcmV0dXJuIFtbW2RpY3Rpb25hcnkuZ2V0KCkg
b2JqZWN0Rm9yS2V5OmZlYXR1cmVOYW1lXSBvYmplY3RGb3JLZXk6QCJFbmFibGVkIl0gaXNLaW5k
T2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSAmJiBbW1tkaWN0aW9uYXJ5LmdldCgpIG9iamVjdEZv
cktleTpmZWF0dXJlTmFtZV0gb2JqZWN0Rm9yS2V5OkAiRW5hYmxlZCJdIGJvb2xWYWx1ZV07Cisg
ICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRW
YWx1ZSk7CisgICAgcmV0dXJuIF9vc19mZWF0dXJlX2VuYWJsZWRfaW1wbCgiV2ViS2l0IiwgKGNv
bnN0IGNoYXIqKWZlYXR1cmVOYW1lLmNoYXJhY3RlcnM4KCkpOworI2VuZGlmIC8vIFBMQVRGT1JN
KE1BQykKKworI2Vsc2UKKworICAgIFVOVVNFRF9QQVJBTShmZWF0dXJlTmFtZSk7CisgICAgcmV0
dXJuIGRlZmF1bHRWYWx1ZTsKKworI2VuZGlmIC8vIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1Mp
CiB9CiAKICNlbmRpZgpAQCAtNjYsMTEgKzc4LDcgQEAgYm9vbCBpc0ZlYXR1cmVGbGFnRW5hYmxl
ZChjb25zdCBTdHJpbmcmIGZlYXR1cmVOYW1lKQogCiBib29sIGRlZmF1bHRJbmNyZW1lbnRhbFBE
RkVuYWJsZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJu
IGlzRmVhdHVyZUZsYWdFbmFibGVkKCJpbmNyZW1lbnRhbF9wZGYiKTsKLSNlbmRpZgotCi0gICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiaW5jcmVtZW50
YWxfcGRmIiwgZmFsc2UpOwogfQogCiAjZW5kaWYKQEAgLTc5LDExICs4Nyw3IEBAIGJvb2wgZGVm
YXVsdEluY3JlbWVudGFsUERGRW5hYmxlZCgpCiAKIGJvb2wgZGVmYXVsdFdlYlhSRW5hYmxlZCgp
CiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJl
RmxhZ0VuYWJsZWQoIldlYlhSIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICBy
ZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoIldlYlhSIiwgZmFsc2UpOwogfQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFdFQlhSKQpAQCAtMjc4LDIwICsyODIsMTIgQEAgYm9vbCBkZWZhdWx0V2hlZWxF
dmVudEdlc3R1cmVzQmVjb21lTm9uQmxvY2tpbmcoKQogCiBib29sIGRlZmF1bHRXZWJNUGFyc2Vy
RW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4g
aXNGZWF0dXJlRmxhZ0VuYWJsZWQoIndlYm1fcGFyc2VyIik7Ci0jZW5kaWYKLQotICAgIHJldHVy
biB0cnVlOworICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgid2VibV9wYXJzZXIiLCB0
cnVlKTsKIH0KIAogYm9vbCBkZWZhdWx0V2ViTVdlYkF1ZGlvRW5hYmxlZCgpCiB7Ci0jaWYgSEFW
RShTWVNURU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQo
IndlYm1fd2ViYXVkaW8iKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgid2VibV93ZWJhdWRpbyIsIGZhbHNlKTsKIH0KIAogI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TT1VSQ0UpCkBAIC0zMDAsMjAgKzI5NiwxMiBAQCBib29sIGRl
ZmF1bHRXZWJNV2ViQXVkaW9FbmFibGVkKCkKIAogYm9vbCBkZWZhdWx0VlA4RGVjb2RlckVuYWJs
ZWQoKQogewotI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCi0gICAgcmV0dXJuIGlzRmVh
dHVyZUZsYWdFbmFibGVkKCJ2cDhfZGVjb2RlciIpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gZmFs
c2U7CisgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkKCJ2cDhfZGVjb2RlciIsIHRydWUp
OwogfQogCiBib29sIGRlZmF1bHRWUDlEZWNvZGVyRW5hYmxlZCgpCiB7Ci0jaWYgSEFWRShTWVNU
RU1fRkVBVFVSRV9GTEFHUykKLSAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWQoInZwOV9k
ZWNvZGVyIik7Ci0jZW5kaWYKLQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBpc0ZlYXR1
cmVGbGFnRW5hYmxlZCgidnA5X2RlY29kZXIiLCB0cnVlKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJM
RShWUDkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMThkYmIzODNlYmNmMzg3ODczOTZmZGM4ZjhmYzMzMDliNmEzNjc1Ny4u
YzNmMzU4ODIwMTQ4YzI4YzcyZmVhMjNmMTEyM2NlNzJiZmQwNjllMiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDIxLTA4LTA1ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAg
ICAgICAgW21hY09TXSBDbGVhbiB1cCBGZWF0dXJlIEZsYWdzIHJlbGF0ZWQgY29kZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4ODAzCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84MTE0Mjk4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9y
dG9uLgorCisgICAgICAgIFVwZGF0ZSBhIG1hYy1iaWdzdXIgc3BlY2lmaWMgdGVzdCBleHBlY3Rh
dGlvbiBmaWxlIGJlY2F1c2UgdGhlIHRlc3QgaXMgcGFzc2luZyBub3cuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2Uv
bWVkaWFzb3VyY2UtYWRkc291cmNlYnVmZmVyLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMtYmlnc3VyL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
bWVkaWEtc291cmNlL21lZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZlci1leHBlY3RlZC50eHQ6CisK
IDIwMjEtMDgtMDIgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbV2ViQXVkaW9dIEFkZCB3ZWJtL3ZvcmJpcyBjb250YWluZXIgc3VwcG9ydApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWJpZ3N1ci9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1hZGRzb3VyY2VidWZmZXItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWJpZ3N1ci9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1hZGRzb3VyY2VidWZmZXIt
ZXhwZWN0ZWQudHh0CmluZGV4IDhlMDMzMzk2ZGQwYzE1YWI1NTIyYTdhMTdiYTc0OTc0MzdkMDk3
OTguLmIxZDYyOGY4ODZlNDc3NTUzNTEwNTQwY2Q4N2ZjM2RhNDM2MzUyM2YgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1iaWdzdXIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYWRkc291cmNlYnVmZmVyLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtYmlnc3VyL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZl
ci1leHBlY3RlZC50eHQKQEAgLTMsOCArMyw4IEBAIFBBU1MgVGVzdCBhZGRTb3VyY2VCdWZmZXIo
KSBpbiAnZW5kZWQnIHN0YXRlLgogUEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggZW1w
dHkgdHlwZQogUEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggbnVsbAogUEFTUyBUZXN0
IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggdW5zdXBwb3J0ZWQgdHlwZQotRkFJTCBUZXN0IGFkZFNv
dXJjZUJ1ZmZlcigpIHdpdGggVm9yYmlzIGFuZCBWUDggYXNzZXJ0X3RydWU6IHZpZGVvL3dlYm07
Y29kZWNzPSJ2cDgsdm9yYmlzIiBpcyBzdXBwb3J0ZWQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
LUZBSUwgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRoIFZvcmJpcyBhbmQgVlA4IGluIHNlcGFy
YXRlIFNvdXJjZUJ1ZmZlcnMgYXNzZXJ0X3RydWU6IGF1ZGlvL3dlYm07Y29kZWNzPSJ2b3JiaXMi
IGlzIHN1cHBvcnRlZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBUZXN0IGFkZFNvdXJj
ZUJ1ZmZlcigpIHdpdGggVm9yYmlzIGFuZCBWUDgKK1BBU1MgVGVzdCBhZGRTb3VyY2VCdWZmZXIo
KSB3aXRoIFZvcmJpcyBhbmQgVlA4IGluIHNlcGFyYXRlIFNvdXJjZUJ1ZmZlcnMKIFBBU1MgVGVz
dCBhZGRTb3VyY2VCdWZmZXIoKSB2aWRlbyBvbmx5CiBQQVNTIFRlc3QgYWRkU291cmNlQnVmZmVy
KCkgYXVkaW8gb25seQogUEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggQUFDIGFuZCBI
LjI2NApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZl
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYWRkc291cmNlYnVmZmVy
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzRlMTFjOTIxN2Jj
ZDcxMDllMDEyMTQ3ZjlhZWExYTIxZmFkMTc1ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYWRkc291cmNlYnVm
ZmVyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLQotUEFTUyBU
ZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIGluICdlbmRlZCcgc3RhdGUuCi1QQVNTIFRlc3QgYWRkU291
cmNlQnVmZmVyKCkgd2l0aCBlbXB0eSB0eXBlCi1QQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkg
d2l0aCBudWxsCi1QQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCB1bnN1cHBvcnRlZCB0
eXBlCi1GQUlMIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBWb3JiaXMgYW5kIFZQOCBhc3Nl
cnRfdHJ1ZTogdmlkZW8vd2VibTtjb2RlY3M9InZwOCx2b3JiaXMiIGlzIHN1cHBvcnRlZCBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggVm9y
YmlzIGFuZCBWUDggaW4gc2VwYXJhdGUgU291cmNlQnVmZmVycyBhc3NlcnRfdHJ1ZTogdmlkZW8v
d2VibTtjb2RlY3M9InZwOCIgaXMgc3VwcG9ydGVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1Q
QVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgdmlkZW8gb25seQotUEFTUyBUZXN0IGFkZFNvdXJj
ZUJ1ZmZlcigpIGF1ZGlvIG9ubHkKLVBBU1MgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRoIEFB
QyBhbmQgSC4yNjQKLVBBU1MgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRoIEFBQyBhbmQgSC4y
NjQgaW4gc2VwYXJhdGUgU291cmNlQnVmZmVycwotCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>