<?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>223899</bug_id>
          
          <creation_ts>2021-03-29 13:20:42 -0700</creation_ts>
          <short_desc>v2: REGRESSION(r266890): [Cocoa] Fix API::InspectorClient leak</short_desc>
          <delta_ts>2021-05-14 10:42:16 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>225815</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>bburg</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1744862</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-03-29 13:20:42 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744865</commentid>
    <comment_count>1</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-03-29 13:21:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/75249282&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744872</commentid>
    <comment_count>2</comment_count>
      <attachid>424570</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-03-29 13:25:35 -0700</bug_when>
    <thetext>Created attachment 424570
Patch v1.0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744971</commentid>
    <comment_count>3</comment_count>
      <attachid>424598</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-03-29 15:54:01 -0700</bug_when>
    <thetext>Created attachment 424598
Patch v2.0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745177</commentid>
    <comment_count>4</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-03-30 10:31:06 -0700</bug_when>
    <thetext>I am attempting to repro the API test crash, so far no luck in a release build.

&gt; Crashed
&gt;    TestWebKitAPI.WKInspectorDelegate.ShowURLExternally</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745739</commentid>
    <comment_count>5</comment_count>
      <attachid>424806</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-03-31 12:53:08 -0700</bug_when>
    <thetext>Created attachment 424806
Patch v2.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746236</commentid>
    <comment_count>6</comment_count>
      <attachid>424806</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-04-01 13:47:46 -0700</bug_when>
    <thetext>Comment on attachment 424806
Patch v2.1

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

&gt; Source/WebKit/UIProcess/API/APIInspectorClient.h:41
&gt; -    virtual void openURLExternally(WebKit::WebInspectorUIProxy&amp;, const WTF::String&amp; url) { }
&gt; +    virtual void openURLExternally(WebKit::WebInspectorUIProxy&amp;, const WTF::String&amp; url) { };

oops

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspector.mm:64
&gt; +    void openURLExternally(WebKit::WebInspectorUIProxy&amp; inspector, const WTF::String&amp; url)

NIT: I think we still add an `override` or `final` even if the overall `class` is marked as `final`.

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspector.mm:208
&gt; +    _inspector-&gt;~WebInspectorUIProxy();

Wait what?  This object isn&apos;t held elsewhere?  Does this mean that if Web Inspector is open and the app containing the `WKWebView` releases the `_WKInspector`, Web Inspector will close?

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspectorInternal.h:-46
&gt; -    std::unique_ptr&lt;WebKit::InspectorDelegate&gt; _delegate;

NIT: Please also remove the forward declare :)

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspectorTesting.mm:52
&gt; +        _inspector-&gt;evaluateInFrontendForTesting(JavaScriptSnippetToOpenURLExternally([url copy]));

Why?

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspectorTesting.mm:56
&gt; +        [self.inspectorWebView loadRequest:[NSURLRequest requestWithURL:[url copy]]];

ditto (:+52)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746277</commentid>
    <comment_count>7</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-04-01 14:52:51 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #6)
&gt; Comment on attachment 424806 [details]
&gt; Patch v2.1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=424806&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/APIInspectorClient.h:41
&gt; &gt; -    virtual void openURLExternally(WebKit::WebInspectorUIProxy&amp;, const WTF::String&amp; url) { }
&gt; &gt; +    virtual void openURLExternally(WebKit::WebInspectorUIProxy&amp;, const WTF::String&amp; url) { };
&gt; 
&gt; oops
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspector.mm:64
&gt; &gt; +    void openURLExternally(WebKit::WebInspectorUIProxy&amp; inspector, const WTF::String&amp; url)
&gt; 
&gt; NIT: I think we still add an `override` or `final` even if the overall
&gt; `class` is marked as `final`.

OK

&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspector.mm:208
&gt; &gt; +    _inspector-&gt;~WebInspectorUIProxy();
&gt; 
&gt; Wait what?  This object isn&apos;t held elsewhere?  Does this mean that if Web
&gt; Inspector is open and the app containing the `WKWebView` releases the
&gt; `_WKInspector`, Web Inspector will close?

Hmm, good catch. I think this is only needed if WebInspectorUIProxy is allocated in the wrapper which it is not. It is owned by the inspected WebPageProxy (i.e, there is not -_apiObject or constructInWrapper() calls.) I&apos;ll remove it.


&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspectorInternal.h:-46
&gt; &gt; -    std::unique_ptr&lt;WebKit::InspectorDelegate&gt; _delegate;
&gt; 
&gt; NIT: Please also remove the forward declare :)
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspectorTesting.mm:52
&gt; &gt; +        _inspector-&gt;evaluateInFrontendForTesting(JavaScriptSnippetToOpenURLExternally([url copy]));
&gt; 
&gt; Why?
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspectorTesting.mm:56
&gt; &gt; +        [self.inspectorWebView loadRequest:[NSURLRequest requestWithURL:[url copy]]];
&gt; 
&gt; ditto (:+52)

`url` is not passed in with a +1 reference and its object lifetime is controlled by client code. Unless it&apos;s copied or autoreleased, it will be overreleased by the containing autoreleasepool. I prefer [url copy] as it is a more defensive approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746314</commentid>
    <comment_count>8</comment_count>
      <attachid>424958</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-04-01 16:08:11 -0700</bug_when>
    <thetext>Created attachment 424958
Patch v2.2 - address Devin feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746317</commentid>
    <comment_count>9</comment_count>
      <attachid>424958</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-04-01 16:13:21 -0700</bug_when>
    <thetext>Comment on attachment 424958
Patch v2.2 - address Devin feedback

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

r=me

&gt; Source/WebKit/UIProcess/API/APIInspectorClient.h:41
&gt; -    virtual void openURLExternally(WebKit::WebInspectorUIProxy&amp;, const WTF::String&amp; url) { }
&gt; +    virtual void openURLExternally(WebKit::WebInspectorUIProxy&amp;, const WTF::String&amp; url) { };

oops</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746321</commentid>
    <comment_count>10</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-04-01 16:32:31 -0700</bug_when>
    <thetext>Committed r275393 (236057@main): &lt;https://commits.webkit.org/236057@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748361</commentid>
    <comment_count>11</comment_count>
      <attachid>424958</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2021-04-08 10:57:31 -0700</bug_when>
    <thetext>Comment on attachment 424958
Patch v2.2 - address Devin feedback

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

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspector.mm:72
&gt; +    WeakObjCPtr&lt;id &lt;_WKInspectorDelegate&gt; &gt; m_delegate;

`&gt; &gt;` =&gt; `&gt;&gt;` again I hope!

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspector.mm:74
&gt; +    bool m_respondsToInspectorOpenURLExternally : 1;

Probably not worth making this a bit right now instead of just a boolean. Unless you expect more of these in the future. The size shouldn&apos;t be any different, and maybe the generated code might be slower on some platforms.

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspectorInternal.h:42
&gt; +    WeakObjCPtr&lt;id &lt;_WKInspectorDelegate&gt; &gt; _delegate;

I assume you can change `&gt; &gt;` to `&gt;&gt;` for all supported compilers now.

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspectorTesting.mm:52
&gt; +        _inspector-&gt;evaluateInFrontendForTesting(JavaScriptSnippetToOpenURLExternally([url copy]));

Why do we need these copy calls? And if we do, how do these get released?

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:224
&gt; +    urlToOpen = adoptNS([NSURL URLWithString:@&quot;https://www.webkit.org/&quot;]);

You do not want to adopt an autoreleased NSURL, that would result in an overrelease. Just the regular assignment seems right, or adopt a `[[NSURL alloc] initWithString:...]`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748369</commentid>
    <comment_count>12</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2021-04-08 11:05:44 -0700</bug_when>
    <thetext>&gt; &gt; &gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspectorTesting.mm:52
&gt; &gt; &gt; +        _inspector-&gt;evaluateInFrontendForTesting(JavaScriptSnippetToOpenURLExternally([url copy]));
&gt; &gt; 
&gt; &gt; Why?
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspectorTesting.mm:56
&gt; &gt; &gt; +        [self.inspectorWebView loadRequest:[NSURLRequest requestWithURL:[url copy]]];
&gt; &gt; 
&gt; &gt; ditto (:+52)
&gt; 
&gt; `url` is not passed in with a +1 reference and its object lifetime is
&gt; controlled by client code. Unless it&apos;s copied or autoreleased, it will be
&gt; overreleased by the containing autoreleasepool. I prefer [url copy] as it is
&gt; a more defensive approach.

Hmm, I don&apos;t follow this.

Given:

```
[NSURLRequest requestWithURL:url]
```

It would be the responsibility of NSURLRequest to copy the input if it needs to hold a reference to the url beyond the current run loop.

If you&apos;re getting an over-release somewhere, we should look around elsewhere. I&apos;m afraid this copy would just be covering it up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753245</commentid>
    <comment_count>13</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-04-22 12:04:30 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753246</commentid>
    <comment_count>14</comment_count>
      <attachid>426835</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-04-22 12:04:31 -0700</bug_when>
    <thetext>Created attachment 426835
Patch v2.2.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753247</commentid>
    <comment_count>15</comment_count>
      <attachid>426835</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-04-22 12:04:55 -0700</bug_when>
    <thetext>Comment on attachment 426835
Patch v2.2.1

Submitting the leak fix separately for commit-queue integration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753258</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-22 12:48:25 -0700</bug_when>
    <thetext>Committed r276454 (236914@main): &lt;https://commits.webkit.org/236914@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 426835.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424570</attachid>
            <date>2021-03-29 13:25:35 -0700</date>
            <delta_ts>2021-03-29 13:28:10 -0700</delta_ts>
            <desc>Patch v1.0</desc>
            <filename>bug-223899-20210329132534.patch</filename>
            <type>text/plain</type>
            <size>2840</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE0N2FhYjZiOGEyZDRlNDJh
Y2U2M2ZiYjJlMTZlYjYyN2Q1ZDZjYzMuLmZjZGQ0Mjk0YWI4M2U0YWI4NmM2MGNkZTUzYTljZjcy
ODI0NzBlZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDMtMjkgIEJKIEJ1cmcg
IDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgdjI6IFJFR1JFU1NJT04ocjI2Njg5MCk6IFtD
b2NvYV0gRml4IEFQSTo6SW5zcGVjdG9yQ2xpZW50IGxlYWsKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzg5OQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzUyNDkyODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbToKKyAgICAgICAgKC1b
X1dLSW5zcGVjdG9yIHNldERlbGVnYXRlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yVUlQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clVJUHJveHk6OnNldEluc3BlY3RvckNsaWVudCk6CisgICAgICAgIEJlIHN1cmUgdG8gY29tcGxl
dGVseSBjbGVhciB0aGUgZGVsZWdhdGUgLyBjbGllbnQuCisKKyAgICAgICAgKFdlYktpdDo6V2Vi
SW5zcGVjdG9yVUlQcm94eTo6b3BlblVSTEV4dGVybmFsbHkpOgorICAgICAgICBOb3cgdGhhdCB3
ZSBkb24ndCBoYXZlIGEgZHVtbXkgQVBJOjpJbnNwZWN0b3JDbGllbnQgd2hlbiBfV0tJbnNwZWN0
b3JEZWxlZ2F0ZSBpcworICAgICAgICBub3Qgc2V0LCBjaGVjayBpZiBtX2luc3BlY3RvckNsaWVu
dCBpcyBzZXQgYmVmb3JlIGNhbGxpbmcgaW50byBpdC4KKwogMjAyMS0wMy0yOCAgU2FtIFdlaW5p
ZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRV9JTkRFWEVEX0RB
VEFCQVNFICYgRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUywgaXQgc2VlbXMgbGlr
ZSBpdCBpcyBvbiBmb3IgYWxsIHBvcnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQppbmRleCAyYzFiYTdjODUzOGMwY2NhYmEzZDgxMDA4
MDBlMTEyYjkxMDlkNWM2Li4xMzI0NzI4ZWI5YTdkNDJhZmQyOTYxYjZhMDQyMTFiZDg1YTI3Njgw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVj
dG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0
b3IubW0KQEAgLTYxLDYgKzYxLDExIEBAIC0gKHZvaWQpc2V0RGVsZWdhdGU6KGlkPF9XS0luc3Bl
Y3RvckRlbGVnYXRlPilkZWxlZ2F0ZQogICAgIGlmICghZGVsZWdhdGUgJiYgIV9kZWxlZ2F0ZSkK
ICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKCFkZWxlZ2F0ZSkgeworICAgICAgICBfZGVsZWdh
dGUgPSBudWxscHRyOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgX2RlbGVnYXRlID0g
bWFrZVVuaXF1ZTxXZWJLaXQ6Okluc3BlY3RvckRlbGVnYXRlPihzZWxmLCBkZWxlZ2F0ZSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JVSVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JVSVByb3h5LmNwcAppbmRleCBkYWE3YTllNTMxMTkyM2IwMDAxMWE1NWRmNDk1MzEw
YmM0ZGRlNGRkLi5iMTQxZTZmNGFjNzFiN2U0NzM1MmY0MjgxMGNmZjA4ODc1N2NhM2EwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3Bl
Y3RvclVJUHJveHkuY3BwCkBAIC04NCw3ICs4NCw3IEBAIFdlYkluc3BlY3RvclVJUHJveHk6On5X
ZWJJbnNwZWN0b3JVSVByb3h5KCkKIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6c2V0SW5zcGVj
dG9yQ2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6Okluc3BlY3RvckNsaWVudD4mJiBpbnNwZWN0
b3JDbGllbnQpCiB7CiAgICAgaWYgKCFpbnNwZWN0b3JDbGllbnQpIHsKLSAgICAgICAgbV9pbnNw
ZWN0b3JDbGllbnQgPSBtYWtlVW5pcXVlPEFQSTo6SW5zcGVjdG9yQ2xpZW50PigpOworICAgICAg
ICBtX2luc3BlY3RvckNsaWVudCA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
QEAgLTYzNCw3ICs2MzQsOCBAQCB2b2lkIFdlYkluc3BlY3RvclVJUHJveHk6OnNldEZvcmNlZEFw
cGVhcmFuY2UoSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OkFwcGVhcmFuYwogCiB2b2lkIFdlYklu
c3BlY3RvclVJUHJveHk6Om9wZW5VUkxFeHRlcm5hbGx5KGNvbnN0IFN0cmluZyYgdXJsKQogewot
ICAgIG1faW5zcGVjdG9yQ2xpZW50LT5vcGVuVVJMRXh0ZXJuYWxseSgqdGhpcywgdXJsKTsKKyAg
ICBpZiAobV9pbnNwZWN0b3JDbGllbnQpCisgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50LT5vcGVu
VVJMRXh0ZXJuYWxseSgqdGhpcywgdXJsKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5
OjppbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424598</attachid>
            <date>2021-03-29 15:54:01 -0700</date>
            <delta_ts>2021-03-31 12:53:07 -0700</delta_ts>
            <desc>Patch v2.0</desc>
            <filename>bug-223899-20210329155400.patch</filename>
            <type>text/plain</type>
            <size>18817</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE0N2FhYjZiOGEyZDRlNDJh
Y2U2M2ZiYjJlMTZlYjYyN2Q1ZDZjYzMuLmYwNWRmOGUwYzZhMGVhYTFlMmU2ZTg2M2ZjZWVlMDhj
NmYyYjNmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDMtMjkgIEJKIEJ1cmcg
IDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgdjI6IFJFR1JFU1NJT04ocjI2Njg5MCk6IFtD
b2NvYV0gRml4IEFQSTo6SW5zcGVjdG9yQ2xpZW50IGxlYWsKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzg5OQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzUyNDkyODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVmYWN0b3IgdG8gKm5vdCogdXNlIHRoZSBoZWxwZXIgT2JqQyBjbGFzcyBJbnNwZWN0
b3JEZWxlZ2F0ZS4KKyAgICAgICAgSW5zdGVhZCwgc3RvcmUgdGhlIF9XS0luc3BlY3RvckRlbGVn
YXRlIGluIF9XS0luc3BlY3RvciBkaXJlY3RseQorICAgICAgICB1c2luZyBhIFdlYWtPYmpDUHRy
IGl2YXIuIE1vdmUgdGhlIEMrKyBicmlkZ2UgY2xhc3MgdG8gYmUgZGVmaW5lZAorICAgICAgICBp
bnNpZGUgX1dLSW5zcGVjdG9yLm1tIHNpbmNlIGl0J3Mgb25seSB1c2VkIHRoZXJlLiBBZGFwdCBp
dCB0bworICAgICAgICB3b3JrIGJldHRlciB3aXRoIGEgbmlsIGRlbGVnYXRlLiBBbmQgbWFrZSBz
dXJlIHRvIGNhbGwgdGhlIGRlc3RydWN0b3IKKyAgICAgICAgZm9yIHRoZSB1bmRlcmx5aW5nIFdl
Ykluc3BlY3RvclVJUHJveHkgd2hlbiB0aGUgX1dLSW5zcGVjdG9yIHdyYXBwZXIKKyAgICAgICAg
aXMgZGVhbGxvY2F0ZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckNs
aWVudC5oOgorICAgICAgICAoQVBJOjpJbnNwZWN0b3JDbGllbnQ6Om9wZW5VUkxFeHRlcm5hbGx5
KToKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9ySW50ZXJuYWwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbToKKyAgICAg
ICAgKC1bX1dLSW5zcGVjdG9yIGRlbGVnYXRlXSk6CisgICAgICAgICgtW19XS0luc3BlY3RvciBz
ZXREZWxlZ2F0ZTpdKToKKyAgICAgICAgKC1bX1dLSW5zcGVjdG9yIGRlYWxsb2NdKToKKworICAg
ICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0
b3JEZWxlZ2F0ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvQ29j
b2EvSW5zcGVjdG9yRGVsZWdhdGUubW06IFJlbW92ZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
SW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtX
S0luc3BlY3RvclZpZXdDb250cm9sbGVyIGluaXRXaXRoQ29uZmlndXJhdGlvbjppbnNwZWN0ZWRQ
YWdlOl0pOgorICAgICAgICBEcml2ZS1ieSwgZml4IHRoZSBsZWFrIF9XS0luc3BlY3RvckNvbmZp
Z3VyYXRpb24uCisKIDIwMjEtMDMtMjggIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbW92ZSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSAmIEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFX0lOX1dPUktFUlMsIGl0IHNlZW1zIGxpa2UgaXQgaXMgb24gZm9yIGFsbCBwb3J0
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGRkNGQyYTUwNzY1NzZiYTNkNDU2MmVjYWMzMzFi
MTk5OTNjOTk2OWYuLmRmNDI3MmExYWNmMWU4MTEzYmFjN2U4NmJmZDBkNzFmZGE4NGNlZmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTQyMSw3ICs0MjEsNiBAQCBVSVByb2Nlc3MvR2FtZXBh
ZC9jb2NvYS9VSUdhbWVwYWRQcm92aWRlckNvY29hLm1tCiBVSVByb2Nlc3MvR2FtZXBhZC9pb3Mv
VUlHYW1lcGFkUHJvdmlkZXJJT1MubW0KIFVJUHJvY2Vzcy9HYW1lcGFkL21hYy9VSUdhbWVwYWRQ
cm92aWRlck1hYy5tbQogCi1VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckRlbGVn
YXRlLm1tCiBVSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lvbkRlbGVn
YXRlLm1tCiAKIFVJUHJvY2Vzcy9JbnNwZWN0b3IvaW9zL1dLSW5zcGVjdG9ySGlnaGxpZ2h0Vmll
dy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3Rv
ckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckNsaWVu
dC5oCmluZGV4IDYxMTkxNDBkMzY5NGZjMzZhNmNlNzQ5ZDg1ZWU0OTlmMWY0ODYxMjAuLmQ1Y2Yz
YjUyOTQ3YWQ0NzdmZTg4Y2M3NDhhNWU0MmNmNDVlMDE0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50LmgKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsNyArMzgsNyBAQCBjbGFz
cyBJbnNwZWN0b3JDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkluc3BlY3RvckNsaWVu
dCgpID0gZGVmYXVsdDsKIAotICAgIHZpcnR1YWwgdm9pZCBvcGVuVVJMRXh0ZXJuYWxseShXZWJL
aXQ6OldlYkluc3BlY3RvclVJUHJveHkmLCBjb25zdCBXVEY6OlN0cmluZyYgdXJsKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgb3BlblVSTEV4dGVybmFsbHkoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVBy
b3h5JiwgY29uc3QgV1RGOjpTdHJpbmcmIHVybCkgeyB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
QVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5z
cGVjdG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rv
ci5tbQppbmRleCAyYzFiYTdjODUzOGMwY2NhYmEzZDgxMDA4MDBlMTEyYjkxMDlkNWM2Li4yNzE2
MjcwM2Q5OGU3Nzg4ZmVhN2RjNWI3OWYzNmNkZmY5OGRiNWJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0KQEAgLTI2LDEyICsyNiwx
NCBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJfV0tJbnNwZWN0b3JJbnRlcm5hbC5o
IgogCi0jaW1wb3J0ICJJbnNwZWN0b3JEZWxlZ2F0ZS5oIgorI2ltcG9ydCAiQVBJSW5zcGVjdG9y
Q2xpZW50LmgiCiAjaW1wb3J0ICJXS0Vycm9yLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5h
bC5oIgorI2ltcG9ydCAiV2ViSW5zcGVjdG9yVUlQcm94eS5oIgogI2ltcG9ydCAiV2ViUGFnZVBy
b3h5LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIl9XS0ZyYW1lSGFu
ZGxlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIl9XS0luc3BlY3RvckRlbGVnYXRlLmgiCiAjaW1wb3J0
ICJfV0tJbnNwZWN0b3JQcml2YXRlRm9yVGVzdGluZy5oIgogI2ltcG9ydCAiX1dLUmVtb3RlT2Jq
ZWN0UmVnaXN0cnkuaCIKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CkBAIC00
NywyMSArNDksNDUgQEAKICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2VuZGlmCiAKK2NsYXNz
IEluc3BlY3RvckNsaWVudCBmaW5hbCA6IHB1YmxpYyBBUEk6Okluc3BlY3RvckNsaWVudCB7Citw
dWJsaWM6CisgICAgZXhwbGljaXQgSW5zcGVjdG9yQ2xpZW50KGlkIDxfV0tJbnNwZWN0b3JEZWxl
Z2F0ZT4gZGVsZWdhdGUpCisgICAgICAgIDogbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkKKyAgICAgICAg
LCBtX3Jlc3BvbmRzVG9JbnNwZWN0b3JPcGVuVVJMRXh0ZXJuYWxseShbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihpbnNwZWN0b3I6b3BlblVSTEV4dGVybmFsbHk6KV0pCisg
ICAgeworICAgIH0KKworICAgIH5JbnNwZWN0b3JDbGllbnQoKSA9IGRlZmF1bHQ7CisKK3ByaXZh
dGU6CisgICAgLy8gQVBJOjpJbnNwZWN0b3JDbGllbnQKKyAgICB2b2lkIG9wZW5VUkxFeHRlcm5h
bGx5KFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eSYgaW5zcGVjdG9yLCBjb25zdCBXVEY6OlN0
cmluZyYgdXJsKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2RlbGVnYXRlIHx8ICFtX3Jlc3BvbmRz
VG9JbnNwZWN0b3JPcGVuVVJMRXh0ZXJuYWxseSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBSZXRhaW5QdHI8TlNVUkw+IHJlcXVlc3RlZFVSTCA9IGFkb3B0TlMoW05TVVJMIFVSTFdp
dGhTdHJpbmc6dXJsXSk7CisgICAgICAgIFttX2RlbGVnYXRlIGluc3BlY3Rvcjp3cmFwcGVyKGlu
c3BlY3Rvcikgb3BlblVSTEV4dGVybmFsbHk6cmVxdWVzdGVkVVJMLmdldCgpXTsKKyAgICB9CisK
KyAgICBXZWFrT2JqQ1B0cjxpZCA8X1dLSW5zcGVjdG9yRGVsZWdhdGU+ID4gbV9kZWxlZ2F0ZTsK
KworICAgIGJvb2wgbV9yZXNwb25kc1RvSW5zcGVjdG9yT3BlblVSTEV4dGVybmFsbHkgOiAxOwor
fTsKKwogQGltcGxlbWVudGF0aW9uIF9XS0luc3BlY3RvcgogCiAvLyBNQVJLOiBfV0tJbnNwZWN0
b3IgbWV0aG9kcwogCiAtIChpZCA8X1dLSW5zcGVjdG9yRGVsZWdhdGU+KWRlbGVnYXRlCiB7Ci0g
ICAgcmV0dXJuIF9kZWxlZ2F0ZS0+ZGVsZWdhdGUoKS5hdXRvcmVsZWFzZSgpOworICAgIHJldHVy
biBfZGVsZWdhdGUuZ2V0KCkuZ2V0KCk7CiB9CiAKIC0gKHZvaWQpc2V0RGVsZWdhdGU6KGlkPF9X
S0luc3BlY3RvckRlbGVnYXRlPilkZWxlZ2F0ZQogewotICAgIGlmICghZGVsZWdhdGUgJiYgIV9k
ZWxlZ2F0ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgX2RlbGVnYXRlID0gbWFrZVVuaXF1ZTxX
ZWJLaXQ6Okluc3BlY3RvckRlbGVnYXRlPihzZWxmLCBkZWxlZ2F0ZSk7CisgICAgX2RlbGVnYXRl
ID0gZGVsZWdhdGU7CisgICAgX2luc3BlY3Rvci0+c2V0SW5zcGVjdG9yQ2xpZW50KFdURjo6bWFr
ZVVuaXF1ZTxJbnNwZWN0b3JDbGllbnQ+KGRlbGVnYXRlKSk7CiB9CiAKIC0gKFdLV2ViVmlldyAq
KXdlYlZpZXcKQEAgLTE3Niw2ICsyMDIsMTQgQEAgLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QK
ICAgICByZXR1cm4gKl9pbnNwZWN0b3I7CiB9CiAKKy0gKHZvaWQpZGVhbGxvYworeworICAgIGlm
IChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblJ1bkxvb3AoX1dLSW5zcGVjdG9y
LmNsYXNzLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworICAgIF9pbnNwZWN0b3ItPn5XZWJJbnNw
ZWN0b3JVSVByb3h5KCk7CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCiAvLyBNQVJLOiBfV0tJ
bnNwZWN0b3JFeHRlbnNpb25Ib3N0IG1ldGhvZHMKIAogLSAoV0tXZWJWaWV3ICopZXh0ZW5zaW9u
SG9zdFdlYlZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tJbnNwZWN0b3JJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0luc3BlY3RvckludGVybmFsLmgKaW5kZXggZmM0MTlhYmM2ODIwYjRiY2U1ZDdlMWJk
Y2IxMTI2NDY3ZmUzNTk4OS4uMzEzNjc3MjhlYWJiNWYzOTJkMTQxYzQxYjZhNTVkN2RhOGVlMGQy
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3Bl
Y3RvckludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0luc3BlY3RvckludGVybmFsLmgKQEAgLTQzLDYgKzQzLDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
V3JhcHBlclRyYWl0czxXZWJJbnNwZWN0b3JVSVByb3h5PiB7CiBAaW50ZXJmYWNlIF9XS0luc3Bl
Y3RvciAoKSA8V0tPYmplY3Q+IHsKIEBwYWNrYWdlCiAgICAgQVBJOjpPYmplY3RTdG9yYWdlPFdl
YktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eT4gX2luc3BlY3RvcjsKLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViS2l0OjpJbnNwZWN0b3JEZWxlZ2F0ZT4gX2RlbGVnYXRlOworICAgIFdlYWtPYmpDUHRy
PGlkIDxfV0tJbnNwZWN0b3JEZWxlZ2F0ZT4gPiBfZGVsZWdhdGU7CiB9CiBAZW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVs
ZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0
b3JEZWxlZ2F0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MGQ3NGU3NWMyYWYy
MmY5M2MwOWRmNjU1YTUxMjgyZDQ1MjlhNDIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2Nv
YS9JbnNwZWN0b3JEZWxlZ2F0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNzAgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW1wb3J0ICJBUElJbnNwZWN0b3JDbGllbnQuaCIK
LSNpbXBvcnQgIldLRm91bmRhdGlvbi5oIgotI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+Ci0K
LUBjbGFzcyBfV0tJbnNwZWN0b3I7Ci1AcHJvdG9jb2wgX1dLSW5zcGVjdG9yRGVsZWdhdGU7Ci0K
LW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJJbnNwZWN0b3JVSVByb3h5OwotCi1jbGFz
cyBJbnNwZWN0b3JEZWxlZ2F0ZSB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJs
aWM6Ci0gICAgSW5zcGVjdG9yRGVsZWdhdGUoX1dLSW5zcGVjdG9yICosIGlkIDxfV0tJbnNwZWN0
b3JEZWxlZ2F0ZT4pOwotICAgIH5JbnNwZWN0b3JEZWxlZ2F0ZSgpOwotCi0gICAgUmV0YWluUHRy
PGlkIDxfV0tJbnNwZWN0b3JEZWxlZ2F0ZT4+IGRlbGVnYXRlKCk7Ci0gICAgdm9pZCBzZXREZWxl
Z2F0ZShpZCA8X1dLSW5zcGVjdG9yRGVsZWdhdGU+KTsKLQotcHJpdmF0ZToKLSAgICBjbGFzcyBJ
bnNwZWN0b3JDbGllbnQgZmluYWwgOiBwdWJsaWMgQVBJOjpJbnNwZWN0b3JDbGllbnQgewotICAg
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGV4cGxp
Y2l0IEluc3BlY3RvckNsaWVudChJbnNwZWN0b3JEZWxlZ2F0ZSYpOwotICAgICAgICB+SW5zcGVj
dG9yQ2xpZW50KCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICAvLyBBUEk6Okluc3BlY3RvckNs
aWVudAotICAgICAgICB2b2lkIG9wZW5VUkxFeHRlcm5hbGx5KFdlYkluc3BlY3RvclVJUHJveHkm
LCBjb25zdCBTdHJpbmcmIHVybCk7Ci0KLSAgICAgICAgSW5zcGVjdG9yRGVsZWdhdGUmIG1faW5z
cGVjdG9yRGVsZWdhdGU7Ci0gICAgfTsKLQotICAgIFdlYWtPYmpDUHRyPF9XS0luc3BlY3Rvcj4g
bV9pbnNwZWN0b3I7Ci0gICAgV2Vha09iakNQdHI8aWQgPF9XS0luc3BlY3RvckRlbGVnYXRlPj4g
bV9kZWxlZ2F0ZTsKLQotICAgIHN0cnVjdCB7Ci0gICAgICAgIGJvb2wgaW5zcGVjdG9yT3BlblVS
TEV4dGVybmFsbHkgOiAxOwotICAgIH0gbV9kZWxlZ2F0ZU1ldGhvZHM7Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3Bl
Y3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5tbQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYzJiOGUwYzliZjIzZTZiMGNhZGRlMTk4YzRlMDExYzA2NDY0NDVjNy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUubW0KKysrIC9kZXYv
bnVsbApAQCAtMSw3MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0j
aW1wb3J0ICJJbnNwZWN0b3JEZWxlZ2F0ZS5oIgotCi0jaW1wb3J0ICJXZWJJbnNwZWN0b3JVSVBy
b3h5LmgiCi0jaW1wb3J0ICJfV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oIgotI2ltcG9ydCAiX1dLSW5z
cGVjdG9ySW50ZXJuYWwuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLUluc3BlY3RvckRlbGVn
YXRlOjpJbnNwZWN0b3JEZWxlZ2F0ZShfV0tJbnNwZWN0b3IgKmluc3BlY3RvciwgaWQgPF9XS0lu
c3BlY3RvckRlbGVnYXRlPiBkZWxlZ2F0ZSkKLSAgICA6IG1faW5zcGVjdG9yKGluc3BlY3RvcikK
LSAgICAsIG1fZGVsZWdhdGUoZGVsZWdhdGUpCi17Ci0gICAgbV9kZWxlZ2F0ZU1ldGhvZHMuaW5z
cGVjdG9yT3BlblVSTEV4dGVybmFsbHkgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3RvcihpbnNwZWN0b3I6b3BlblVSTEV4dGVybmFsbHk6KV07Ci0KLSAgICBpbnNwZWN0b3It
Pl9pbnNwZWN0b3ItPnNldEluc3BlY3RvckNsaWVudChkZWxlZ2F0ZSA/IG1ha2VVbmlxdWU8SW5z
cGVjdG9yQ2xpZW50PigqdGhpcykgOiBudWxscHRyKTsKLX0KLQotSW5zcGVjdG9yRGVsZWdhdGU6
On5JbnNwZWN0b3JEZWxlZ2F0ZSgpID0gZGVmYXVsdDsKLQotUmV0YWluUHRyPGlkIDxfV0tJbnNw
ZWN0b3JEZWxlZ2F0ZT4+IEluc3BlY3RvckRlbGVnYXRlOjpkZWxlZ2F0ZSgpCi17Ci0gICAgcmV0
dXJuIG1fZGVsZWdhdGUuZ2V0KCk7Ci19Ci0KLUluc3BlY3RvckRlbGVnYXRlOjpJbnNwZWN0b3JD
bGllbnQ6Okluc3BlY3RvckNsaWVudChJbnNwZWN0b3JEZWxlZ2F0ZSYgZGVsZWdhdGUpCi0gICAg
OiBtX2luc3BlY3RvckRlbGVnYXRlKGRlbGVnYXRlKQotewotfQotCi1JbnNwZWN0b3JEZWxlZ2F0
ZTo6SW5zcGVjdG9yQ2xpZW50Ojp+SW5zcGVjdG9yQ2xpZW50KCkKLXsKLX0KLQotdm9pZCBJbnNw
ZWN0b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yQ2xpZW50OjpvcGVuVVJMRXh0ZXJuYWxseShXZWJJbnNw
ZWN0b3JVSVByb3h5JiwgY29uc3QgU3RyaW5nJiB1cmwpCi17Ci0gICAgaWYgKCFtX2luc3BlY3Rv
ckRlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLmluc3BlY3Rvck9wZW5VUkxFeHRlcm5hbGx5KQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvJiBkZWxlZ2F0ZSA9IG1faW5zcGVjdG9yRGVsZWdh
dGUubV9kZWxlZ2F0ZTsKLSAgICBpZiAoIWRlbGVnYXRlKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBbZGVsZWdhdGUgaW5zcGVjdG9yOm1faW5zcGVjdG9yRGVsZWdhdGUubV9pbnNwZWN0b3IuZ2V0
KCkuZ2V0KCkgb3BlblVSTEV4dGVybmFsbHk6W05TVVJMIFVSTFdpdGhTdHJpbmc6dXJsXV07Ci19
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJUHJveHkuY3BwCmluZGV4IGRhYTdhOWU1
MzExOTIzYjAwMDExYTU1ZGY0OTUzMTBiYzRkZGU0ZGQuLmIxNDFlNmY0YWM3MWI3ZTQ3MzUyZjQy
ODEwY2ZmMDg4NzU3Y2EzYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlQcm94eS5jcHAKQEAgLTg0LDcgKzg0LDcgQEAg
V2ViSW5zcGVjdG9yVUlQcm94eTo6fldlYkluc3BlY3RvclVJUHJveHkoKQogdm9pZCBXZWJJbnNw
ZWN0b3JVSVByb3h5OjpzZXRJbnNwZWN0b3JDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6SW5z
cGVjdG9yQ2xpZW50PiYmIGluc3BlY3RvckNsaWVudCkKIHsKICAgICBpZiAoIWluc3BlY3RvckNs
aWVudCkgewotICAgICAgICBtX2luc3BlY3RvckNsaWVudCA9IG1ha2VVbmlxdWU8QVBJOjpJbnNw
ZWN0b3JDbGllbnQ+KCk7CisgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50ID0gbnVsbHB0cjsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNjM0LDcgKzYzNCw4IEBAIHZvaWQgV2ViSW5zcGVj
dG9yVUlQcm94eTo6c2V0Rm9yY2VkQXBwZWFyYW5jZShJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6
QXBwZWFyYW5jCiAKIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6b3BlblVSTEV4dGVybmFsbHko
Y29uc3QgU3RyaW5nJiB1cmwpCiB7Ci0gICAgbV9pbnNwZWN0b3JDbGllbnQtPm9wZW5VUkxFeHRl
cm5hbGx5KCp0aGlzLCB1cmwpOworICAgIGlmIChtX2luc3BlY3RvckNsaWVudCkKKyAgICAgICAg
bV9pbnNwZWN0b3JDbGllbnQtPm9wZW5VUkxFeHRlcm5hbGx5KCp0aGlzLCB1cmwpOwogfQogCiB2
b2lkIFdlYkluc3BlY3RvclVJUHJveHk6Omluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5n
JiB1cmxTdHJpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KaW5kZXggZWQ2
Zjc2MzI5MjAzYzA5MGMxNmY0N2NmNjE2NTZiYmFkMDM0YWMzMC4uN2UxNjY5NjZlMWY4Y2RiZGE2
NWExYzE2NGNkNGIyMzlmZGY3ZDdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxl
ci5tbQpAQCAtNTYsNyArNTYsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tJbnNwZWN0b3JWaWV3Q29u
dHJvbGxlciB7CiAgICAgTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IF9pbnNwZWN0ZWRQ
YWdlOwogICAgIFJldGFpblB0cjxXS0luc3BlY3RvcldLV2ViVmlldz4gX3dlYlZpZXc7CiAgICAg
V2Vha09iakNQdHI8aWQgPFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4+IF9kZWxl
Z2F0ZTsKLSAgICBfV0tJbnNwZWN0b3JDb25maWd1cmF0aW9uICpfY29uZmlndXJhdGlvbjsKKyAg
ICBSZXRhaW5QdHI8X1dLSW5zcGVjdG9yQ29uZmlndXJhdGlvbj4gX2NvbmZpZ3VyYXRpb247CiB9
CiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbmZpZ3VyYXRpb246KF9XS0luc3BlY3RvckNv
bmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uIGluc3BlY3RlZFBhZ2U6KE5ha2VkUHRyPFdlYktp
dDo6V2ViUGFnZVByb3h5PilpbnNwZWN0ZWRQYWdlCkBAIC02NCw3ICs2NCw3IEBAIC0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aENvbmZpZ3VyYXRpb246KF9XS0luc3BlY3RvckNvbmZpZ3VyYXRpb24g
Kiljb25maWd1cmF0aW9uCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAg
IHJldHVybiBuaWw7CiAKLSAgICBfY29uZmlndXJhdGlvbiA9IFtjb25maWd1cmF0aW9uIGNvcHld
OworICAgIF9jb25maWd1cmF0aW9uID0gYWRvcHROUyhbY29uZmlndXJhdGlvbiBjb3B5XSk7CiAK
ICAgICAvLyBUaGUgKGxvY2FsKSBpbnNwZWN0ZWQgcGFnZSBpcyBuaWwgaWYgdGhlIGNvbnRyb2xs
ZXIgaXMgaG9zdGluZyBhIFJlbW90ZSBXZWIgSW5zcGVjdG9yIHZpZXcuCiAgICAgX2luc3BlY3Rl
ZFBhZ2UgPSBpbnNwZWN0ZWRQYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2VmZjRmMjZlMzM1MTIyYjBmNmViNTljYjgwMTRjMTFi
YWRlMGVlZi4uZGVkZGZjZTE4YjlmNWRlYTJjMzZjZGNjMTY0YzY0YmE3YTlkYzFjOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDI2
LDcgKzE0MjYsNiBAQAogCQk4NkY5NTM2NTE4RkY1OEY1MDAxREIyRUYgLyogUHJvY2Vzc0Fzc2Vy
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZG
OTUzNjAxOEZGNEZENDAwMURCMkVGIC8qIFByb2Nlc3NBc3NlcnRpb24uaCAqLzsgfTsKIAkJOERD
MkVGNTMwNDg2QTY5NDAwOThCMjE2IC8qIEluZm9QbGlzdC5zdHJpbmdzIGluIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODlDMTY2NkZFODQxMTU4QzAyQUFD
MDcgLyogSW5mb1BsaXN0LnN0cmluZ3MgKi87IH07CiAJCTkwOTg1NEVEMTJCQzRFMTgwMDBBRDA4
MCAvKiBXZWJNZW1vcnlTYW1wbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MDU2MjBFOTEyQkMyNDhCMDAwNzk5QjYgLyogV2ViTWVtb3J5U2FtcGxl
ci5oICovOyB9OwotCQk5MTk3OTQwMjIzREJDNDkwMDAyNTc4OTIgLyogSW5zcGVjdG9yRGVsZWdh
dGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxOTc5
NDAwMjNEQkM0OTAwMDI1Nzg5MiAvKiBJbnNwZWN0b3JEZWxlZ2F0ZS5oICovOyB9OwogCQk5MTk3
OTQwNTIzREJDNEJCMDAyNTc4OTIgLyogSW5zcGVjdG9yQnJvd3NlckFnZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MTk3OTQwMzIzREJDNEJCMDAy
NTc4OTIgLyogSW5zcGVjdG9yQnJvd3NlckFnZW50LmggKi87IH07CiAJCTkxOTc5NDA4MjNEQkM0
Q0IwMDI1Nzg5MiAvKiBXZWJQYWdlSW5zcGVjdG9yQWdlbnRCYXNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MTk3OTQwNzIzREJDNENBMDAyNTc4OTIg
LyogV2ViUGFnZUluc3BlY3RvckFnZW50QmFzZS5oICovOyB9OwogCQk5MTk3OTQwQTIzREJDNEUw
MDAyNTc4OTIgLyogQVBJSW5zcGVjdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MTk3OTQwOTIzREJDNEUwMDAyNTc4OTIgLyogQVBJSW5z
cGVjdG9yQ2xpZW50LmggKi87IH07CkBAIC00NzM3LDggKzQ3MzYsNiBAQAogCQk5MDU2MjBFNTEy
QkMyNDc2MDAwNzk5QjYgLyogV2ViTWVtb3J5U2FtcGxlci5tYWMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYk1lbW9yeVNhbXBs
ZXIubWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKIAkJOTA1NjIwRTgxMkJDMjQ4QjAwMDc5OUI2IC8qIFdlYk1lbW9yeVNhbXBsZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTWVtb3J5U2FtcGxl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwNTYyMEU5MTJCQzI0OEIwMDA3
OTlCNiAvKiBXZWJNZW1vcnlTYW1wbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYk1lbW9yeVNhbXBsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTE5
NzkzRkYyM0RCQzQ5MDAwMjU3ODkyIC8qIEluc3BlY3RvckRlbGVnYXRlLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW5zcGVjdG9yRGVsZWdhdGUubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkxOTc5NDAwMjNEQkM0OTAwMDI1Nzg5MiAvKiBJbnNw
ZWN0b3JEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0
b3JEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MTk3OTQwMzIzREJD
NEJCMDAyNTc4OTIgLyogSW5zcGVjdG9yQnJvd3NlckFnZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckJyb3dzZXJBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MTk3OTQwNDIzREJDNEJCMDAyNTc4OTIgLyogSW5zcGVjdG9yQnJvd3Nl
ckFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3Rv
ckJyb3dzZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxOTc5NDA3
MjNEQkM0Q0EwMDI1Nzg5MiAvKiBXZWJQYWdlSW5zcGVjdG9yQWdlbnRCYXNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBhZ2VJbnNwZWN0b3JBZ2VudEJhc2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkyMjQsOCArOTIyMSw2IEBACiAJCTkxOTc5M0ZF
MjNEQkM0NzQwMDI1Nzg5MiAvKiBDb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCi0JCQkJOTE5Nzk0MDAyM0RCQzQ5MDAwMjU3ODkyIC8qIEluc3BlY3RvckRl
bGVnYXRlLmggKi8sCi0JCQkJOTE5NzkzRkYyM0RCQzQ5MDAwMjU3ODkyIC8qIEluc3BlY3RvckRl
bGVnYXRlLm1tICovLAogCQkJCTk5NkIyQjlDMjVFMjU3RUUwMDcxOTM3OSAvKiBJbnNwZWN0b3JF
eHRlbnNpb25EZWxlZ2F0ZS5oICovLAogCQkJCTk5NkIyQjlCMjVFMjU3RUUwMDcxOTM3OSAvKiBJ
bnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbSAqLywKIAkJCSk7CkBAIC0xMTgxMyw3ICsxMTgw
OCw2IEBACiAJCQkJMkRENDVBREUxRTVGODk3MjAwNkMzNTVGIC8qIElucHV0Vmlld1VwZGF0ZURl
ZmVycmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTU1MEUxNTIyODM3NTIyMDBEMjg3OTEgLyog
SW5zZXJ0VGV4dE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkxOTc5NDA1MjNEQkM0QkIw
MDI1Nzg5MiAvKiBJbnNwZWN0b3JCcm93c2VyQWdlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTkx
OTc5NDAyMjNEQkM0OTAwMDI1Nzg5MiAvKiBJbnNwZWN0b3JEZWxlZ2F0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTk2QjJCOUQyNUUyNTdGRjAwNzE5Mzc5IC8qIEluc3BlY3RvckV4dGVuc2lvbkRl
bGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUUzOTFGRDIxODNDMUY4MDBDOEZCMzEgLyog
SW5zcGVjdG9yVGFyZ2V0UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1QkNFNURGMUM1MDc2
NkEwMENERTNGQSAvKiBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIGluIEhlYWRl
cnMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424806</attachid>
            <date>2021-03-31 12:53:08 -0700</date>
            <delta_ts>2021-04-01 16:08:10 -0700</delta_ts>
            <desc>Patch v2.1</desc>
            <filename>bug-223899-20210331125307.patch</filename>
            <type>text/plain</type>
            <size>20600</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFmZGUyOWIxZTU0YjI5MDA2
OGNiNGZmNGNjYzE0YjFhN2MyYjVkNGIuLmY2MTRhZDYxNTIxZTc4Nzk4NzM5MjhjYjU2MDQ3N2M3
NjRmZGUwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDMtMjkgIEJKIEJ1cmcg
IDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgdjI6IFJFR1JFU1NJT04ocjI2Njg5MCk6IFtD
b2NvYV0gRml4IEFQSTo6SW5zcGVjdG9yQ2xpZW50IGxlYWsKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzg5OQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzUyNDkyODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVmYWN0b3IgdG8gKm5vdCogdXNlIHRoZSBoZWxwZXIgT2JqQyBjbGFzcyBJbnNwZWN0
b3JEZWxlZ2F0ZS4KKyAgICAgICAgSW5zdGVhZCwgc3RvcmUgdGhlIF9XS0luc3BlY3RvckRlbGVn
YXRlIGluIF9XS0luc3BlY3RvciBkaXJlY3RseQorICAgICAgICB1c2luZyBhIFdlYWtPYmpDUHRy
IGl2YXIuIE1vdmUgdGhlIEMrKyBicmlkZ2UgY2xhc3MgdG8gYmUgZGVmaW5lZAorICAgICAgICBp
bnNpZGUgX1dLSW5zcGVjdG9yLm1tIHNpbmNlIGl0J3Mgb25seSB1c2VkIHRoZXJlLiBBZGFwdCBp
dCB0bworICAgICAgICB3b3JrIGJldHRlciB3aXRoIGEgbmlsIGRlbGVnYXRlLiBBbmQgbWFrZSBz
dXJlIHRvIGNhbGwgdGhlIGRlc3RydWN0b3IKKyAgICAgICAgZm9yIHRoZSB1bmRlcmx5aW5nIFdl
Ykluc3BlY3RvclVJUHJveHkgd2hlbiB0aGUgX1dLSW5zcGVjdG9yIHdyYXBwZXIKKyAgICAgICAg
aXMgZGVhbGxvY2F0ZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckNs
aWVudC5oOgorICAgICAgICAoQVBJOjpJbnNwZWN0b3JDbGllbnQ6Om9wZW5VUkxFeHRlcm5hbGx5
KToKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9ySW50ZXJuYWwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbToKKyAgICAg
ICAgKC1bX1dLSW5zcGVjdG9yIGRlbGVnYXRlXSk6CisgICAgICAgICgtW19XS0luc3BlY3RvciBz
ZXREZWxlZ2F0ZTpdKToKKyAgICAgICAgKC1bX1dLSW5zcGVjdG9yIGRlYWxsb2NdKToKKworICAg
ICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0
b3JEZWxlZ2F0ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvQ29j
b2EvSW5zcGVjdG9yRGVsZWdhdGUubW06IFJlbW92ZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
SW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtX
S0luc3BlY3RvclZpZXdDb250cm9sbGVyIGluaXRXaXRoQ29uZmlndXJhdGlvbjppbnNwZWN0ZWRQ
YWdlOl0pOgorICAgICAgICBEcml2ZS1ieSwgZml4IHRoZSBsZWFrIF9XS0luc3BlY3RvckNvbmZp
Z3VyYXRpb24uCisKIDIwMjEtMDMtMzEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGxvZ2dpbmcgaW4gSW5kZXhlZERCIHRvIGhlbHAgZGVidWcgZmxha3kg
cXVvdGEgdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBi
L1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBhODZlNzE3ZjcyMDQzM2M2NzMy
MWM0ZjVkMTk3MDQyYzE0MDM4MzU0Li42ZTU2NzI5YmRmYmZmMmViMzc5NzdlMzE2ZmNjNTQ2Njdk
ZmY3ZGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC00MjEsNyArNDIxLDYgQEAgVUlQcm9j
ZXNzL0dhbWVwYWQvY29jb2EvVUlHYW1lcGFkUHJvdmlkZXJDb2NvYS5tbQogVUlQcm9jZXNzL0dh
bWVwYWQvaW9zL1VJR2FtZXBhZFByb3ZpZGVySU9TLm1tCiBVSVByb2Nlc3MvR2FtZXBhZC9tYWMv
VUlHYW1lcGFkUHJvdmlkZXJNYWMubW0KIAotVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNw
ZWN0b3JEZWxlZ2F0ZS5tbQogVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JFeHRl
bnNpb25EZWxlZ2F0ZS5tbQogCiBVSVByb2Nlc3MvSW5zcGVjdG9yL2lvcy9XS0luc3BlY3Rvckhp
Z2hsaWdodFZpZXcubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElJbnNwZWN0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNw
ZWN0b3JDbGllbnQuaAppbmRleCA2MTE5MTQwZDM2OTRmYzM2YTZjZTc0OWQ4NWVlNDk5ZjFmNDg2
MTIwLi5kNWNmM2I1Mjk0N2FkNDc3ZmU4OGNjNzQ4YTVlNDJjZjQ1ZTAxNDY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckNsaWVudC5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDcgKzM4
LDcgQEAgY2xhc3MgSW5zcGVjdG9yQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbnNw
ZWN0b3JDbGllbnQoKSA9IGRlZmF1bHQ7CiAKLSAgICB2aXJ0dWFsIHZvaWQgb3BlblVSTEV4dGVy
bmFsbHkoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5JiwgY29uc3QgV1RGOjpTdHJpbmcmIHVy
bCkgeyB9CisgICAgdmlydHVhbCB2b2lkIG9wZW5VUkxFeHRlcm5hbGx5KFdlYktpdDo6V2ViSW5z
cGVjdG9yVUlQcm94eSYsIGNvbnN0IFdURjo6U3RyaW5nJiB1cmwpIHsgfTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0luc3BlY3Rvci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tJbnNwZWN0b3IubW0KaW5kZXggMmMxYmE3Yzg1MzhjMGNjYWJhM2Q4MTAwODAwZTExMmI5MTA5
ZDVjNi4uZmVjYmRjNTYzNjg0ZDY4OTkwYzE5ZjZhZjZlMTEwNDk5ZjgzYmFiMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCkBAIC0y
NiwxMiArMjYsMTQgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiX1dLSW5zcGVjdG9y
SW50ZXJuYWwuaCIKIAotI2ltcG9ydCAiSW5zcGVjdG9yRGVsZWdhdGUuaCIKKyNpbXBvcnQgIkFQ
SUluc3BlY3RvckNsaWVudC5oIgogI2ltcG9ydCAiV0tFcnJvci5oIgogI2ltcG9ydCAiV0tXZWJW
aWV3SW50ZXJuYWwuaCIKKyNpbXBvcnQgIldlYkluc3BlY3RvclVJUHJveHkuaCIKICNpbXBvcnQg
IldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0ICJf
V0tGcmFtZUhhbmRsZUludGVybmFsLmgiCisjaW1wb3J0ICJfV0tJbnNwZWN0b3JEZWxlZ2F0ZS5o
IgogI2ltcG9ydCAiX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaCIKICNpbXBvcnQgIl9X
S1JlbW90ZU9iamVjdFJlZ2lzdHJ5LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmll
ci5oPgpAQCAtNDcsMjEgKzQ5LDQ0IEBACiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KICNlbmRp
ZgogCitjbGFzcyBJbnNwZWN0b3JDbGllbnQgZmluYWwgOiBwdWJsaWMgQVBJOjpJbnNwZWN0b3JD
bGllbnQgeworcHVibGljOgorICAgIGV4cGxpY2l0IEluc3BlY3RvckNsaWVudChpZCA8X1dLSW5z
cGVjdG9yRGVsZWdhdGU+IGRlbGVnYXRlKQorICAgICAgICA6IG1fZGVsZWdhdGUoZGVsZWdhdGUp
CisgICAgICAgICwgbV9yZXNwb25kc1RvSW5zcGVjdG9yT3BlblVSTEV4dGVybmFsbHkoW2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVjdG9yOm9wZW5VUkxFeHRlcm5h
bGx5OildKQorICAgIHsKKyAgICB9CisKKyAgICB+SW5zcGVjdG9yQ2xpZW50KCkgPSBkZWZhdWx0
OworCitwcml2YXRlOgorICAgIC8vIEFQSTo6SW5zcGVjdG9yQ2xpZW50CisgICAgdm9pZCBvcGVu
VVJMRXh0ZXJuYWxseShXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHkmIGluc3BlY3RvciwgY29u
c3QgV1RGOjpTdHJpbmcmIHVybCkKKyAgICB7CisgICAgICAgIGlmICghbV9kZWxlZ2F0ZSB8fCAh
bV9yZXNwb25kc1RvSW5zcGVjdG9yT3BlblVSTEV4dGVybmFsbHkpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgW21fZGVsZWdhdGUgaW5zcGVjdG9yOndyYXBwZXIoaW5zcGVjdG9yKSBv
cGVuVVJMRXh0ZXJuYWxseTpbTlNVUkwgVVJMV2l0aFN0cmluZzp1cmxdXTsKKyAgICB9CisKKyAg
ICBXZWFrT2JqQ1B0cjxpZCA8X1dLSW5zcGVjdG9yRGVsZWdhdGU+ID4gbV9kZWxlZ2F0ZTsKKwor
ICAgIGJvb2wgbV9yZXNwb25kc1RvSW5zcGVjdG9yT3BlblVSTEV4dGVybmFsbHkgOiAxOworfTsK
KwogQGltcGxlbWVudGF0aW9uIF9XS0luc3BlY3RvcgogCiAvLyBNQVJLOiBfV0tJbnNwZWN0b3Ig
bWV0aG9kcwogCiAtIChpZCA8X1dLSW5zcGVjdG9yRGVsZWdhdGU+KWRlbGVnYXRlCiB7Ci0gICAg
cmV0dXJuIF9kZWxlZ2F0ZS0+ZGVsZWdhdGUoKS5hdXRvcmVsZWFzZSgpOworICAgIHJldHVybiBf
ZGVsZWdhdGUuZ2V0KCkuZ2V0KCk7CiB9CiAKIC0gKHZvaWQpc2V0RGVsZWdhdGU6KGlkPF9XS0lu
c3BlY3RvckRlbGVnYXRlPilkZWxlZ2F0ZQogewotICAgIGlmICghZGVsZWdhdGUgJiYgIV9kZWxl
Z2F0ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgX2RlbGVnYXRlID0gbWFrZVVuaXF1ZTxXZWJL
aXQ6Okluc3BlY3RvckRlbGVnYXRlPihzZWxmLCBkZWxlZ2F0ZSk7CisgICAgX2RlbGVnYXRlID0g
ZGVsZWdhdGU7CisgICAgX2luc3BlY3Rvci0+c2V0SW5zcGVjdG9yQ2xpZW50KFdURjo6bWFrZVVu
aXF1ZTxJbnNwZWN0b3JDbGllbnQ+KGRlbGVnYXRlKSk7CiB9CiAKIC0gKFdLV2ViVmlldyAqKXdl
YlZpZXcKQEAgLTE3Niw2ICsyMDEsMTQgQEAgLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKICAg
ICByZXR1cm4gKl9pbnNwZWN0b3I7CiB9CiAKKy0gKHZvaWQpZGVhbGxvYworeworICAgIGlmIChX
ZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblJ1bkxvb3AoX1dLSW5zcGVjdG9yLmNs
YXNzLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworICAgIF9pbnNwZWN0b3ItPn5XZWJJbnNwZWN0
b3JVSVByb3h5KCk7CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCiAvLyBNQVJLOiBfV0tJbnNw
ZWN0b3JFeHRlbnNpb25Ib3N0IG1ldGhvZHMKIAogLSAoV0tXZWJWaWV3ICopZXh0ZW5zaW9uSG9z
dFdlYlZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tJbnNwZWN0b3JJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0luc3BlY3RvckludGVybmFsLmgKaW5kZXggZmM0MTlhYmM2ODIwYjRiY2U1ZDdlMWJkY2Ix
MTI2NDY3ZmUzNTk4OS4uMzEzNjc3MjhlYWJiNWYzOTJkMTQxYzQxYjZhNTVkN2RhOGVlMGQyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rv
ckludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0lu
c3BlY3RvckludGVybmFsLmgKQEAgLTQzLDYgKzQzLDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgV3Jh
cHBlclRyYWl0czxXZWJJbnNwZWN0b3JVSVByb3h5PiB7CiBAaW50ZXJmYWNlIF9XS0luc3BlY3Rv
ciAoKSA8V0tPYmplY3Q+IHsKIEBwYWNrYWdlCiAgICAgQVBJOjpPYmplY3RTdG9yYWdlPFdlYktp
dDo6V2ViSW5zcGVjdG9yVUlQcm94eT4gX2luc3BlY3RvcjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViS2l0OjpJbnNwZWN0b3JEZWxlZ2F0ZT4gX2RlbGVnYXRlOworICAgIFdlYWtPYmpDUHRyPGlk
IDxfV0tJbnNwZWN0b3JEZWxlZ2F0ZT4gPiBfZGVsZWdhdGU7CiB9CiBAZW5kCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yVGVzdGluZy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JUZXN0aW5n
Lm1tCmluZGV4IDkwZDkwMDEyNDI2NTcyZTZhNzlkZDhhMzY2ZWUyMDEyNDRiYmM3ZmEuLjY2OGJk
NmYxZDY3NzU4YTk5MDdkYmZkZjI2NjY1ZmQ2NjUyNDc1ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JUZXN0aW5nLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JUZXN0aW5nLm1tCkBA
IC00OSwxMSArNDksMTEgQEAgLSAoV0tXZWJWaWV3ICopaW5zcGVjdG9yV2ViVmlldwogLSAodm9p
ZClfb3BlblVSTEV4dGVybmFsbHlGb3JUZXN0aW5nOihOU1VSTCAqKXVybCB1c2VGcm9udGVuZEFQ
STooQk9PTCl1c2VGcm9udGVuZEFQSQogewogICAgIGlmICh1c2VGcm9udGVuZEFQSSkKLSAgICAg
ICAgX2luc3BlY3Rvci0+ZXZhbHVhdGVJbkZyb250ZW5kRm9yVGVzdGluZyhKYXZhU2NyaXB0U25p
cHBldFRvT3BlblVSTEV4dGVybmFsbHkodXJsKSk7CisgICAgICAgIF9pbnNwZWN0b3ItPmV2YWx1
YXRlSW5Gcm9udGVuZEZvclRlc3RpbmcoSmF2YVNjcmlwdFNuaXBwZXRUb09wZW5VUkxFeHRlcm5h
bGx5KFt1cmwgY29weV0pKTsKICAgICBlbHNlIHsKICAgICAgICAgLy8gRm9yY2UgdGhlIG5hdmln
YXRpb24gcmVxdWVzdCB0byBiZSBoYW5kbGVkIG5hdHVyYWxseSB0aHJvdWdoIHRoZQogICAgICAg
ICAvLyBpbnRlcm5hbCBOYXZpZ2F0aW9uRGVsZWdhdGUgb2YgV0tJbnNwZWN0b3JWaWV3Q29udHJv
bGxlci4KLSAgICAgICAgW3NlbGYuaW5zcGVjdG9yV2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnVybF1dOworICAgICAgICBbc2VsZi5pbnNwZWN0b3JXZWJW
aWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W3VybCBjb3B5XV1d
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVj
dG9yL0NvY29hL0luc3BlY3RvckRlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9J
bnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggODBkNzRlNzVjMmFmMjJmOTNjMDlkZjY1NWE1MTI4MmQ0NTI5YTQyMC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUuaAorKysgL2Rldi9udWxs
CkBAIC0xLDcwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2ltcG9ydCAi
QVBJSW5zcGVjdG9yQ2xpZW50LmgiCi0jaW1wb3J0ICJXS0ZvdW5kYXRpb24uaCIKLSNpbXBvcnQg
PHd0Zi9XZWFrT2JqQ1B0ci5oPgotCi1AY2xhc3MgX1dLSW5zcGVjdG9yOwotQHByb3RvY29sIF9X
S0luc3BlY3RvckRlbGVnYXRlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViSW5z
cGVjdG9yVUlQcm94eTsKLQotY2xhc3MgSW5zcGVjdG9yRGVsZWdhdGUgewotICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIEluc3BlY3RvckRlbGVnYXRlKF9XS0luc3Bl
Y3RvciAqLCBpZCA8X1dLSW5zcGVjdG9yRGVsZWdhdGU+KTsKLSAgICB+SW5zcGVjdG9yRGVsZWdh
dGUoKTsKLQotICAgIFJldGFpblB0cjxpZCA8X1dLSW5zcGVjdG9yRGVsZWdhdGU+PiBkZWxlZ2F0
ZSgpOwotICAgIHZvaWQgc2V0RGVsZWdhdGUoaWQgPF9XS0luc3BlY3RvckRlbGVnYXRlPik7Ci0K
LXByaXZhdGU6Ci0gICAgY2xhc3MgSW5zcGVjdG9yQ2xpZW50IGZpbmFsIDogcHVibGljIEFQSTo6
SW5zcGVjdG9yQ2xpZW50IHsKLSAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci0gICAg
cHVibGljOgotICAgICAgICBleHBsaWNpdCBJbnNwZWN0b3JDbGllbnQoSW5zcGVjdG9yRGVsZWdh
dGUmKTsKLSAgICAgICAgfkluc3BlY3RvckNsaWVudCgpOwotCi0gICAgcHJpdmF0ZToKLSAgICAg
ICAgLy8gQVBJOjpJbnNwZWN0b3JDbGllbnQKLSAgICAgICAgdm9pZCBvcGVuVVJMRXh0ZXJuYWxs
eShXZWJJbnNwZWN0b3JVSVByb3h5JiwgY29uc3QgU3RyaW5nJiB1cmwpOwotCi0gICAgICAgIElu
c3BlY3RvckRlbGVnYXRlJiBtX2luc3BlY3RvckRlbGVnYXRlOwotICAgIH07Ci0KLSAgICBXZWFr
T2JqQ1B0cjxfV0tJbnNwZWN0b3I+IG1faW5zcGVjdG9yOwotICAgIFdlYWtPYmpDUHRyPGlkIDxf
V0tJbnNwZWN0b3JEZWxlZ2F0ZT4+IG1fZGVsZWdhdGU7Ci0KLSAgICBzdHJ1Y3QgewotICAgICAg
ICBib29sIGluc3BlY3Rvck9wZW5VUkxFeHRlcm5hbGx5IDogMTsKLSAgICB9IG1fZGVsZWdhdGVN
ZXRob2RzOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUu
bW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyYjhlMGM5YmYyM2U2YjBjYWRkZTE5
OGM0ZTAxMWMwNjQ2NDQ1YzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3Rv
ckRlbGVnYXRlLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiSW5zcGVjdG9yRGVsZWdhdGUuaCIKLQotI2lt
cG9ydCAiV2ViSW5zcGVjdG9yVUlQcm94eS5oIgotI2ltcG9ydCAiX1dLSW5zcGVjdG9yRGVsZWdh
dGUuaCIKLSNpbXBvcnQgIl9XS0luc3BlY3RvckludGVybmFsLmgiCi0KLW5hbWVzcGFjZSBXZWJL
aXQgewotCi1JbnNwZWN0b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yRGVsZWdhdGUoX1dLSW5zcGVjdG9y
ICppbnNwZWN0b3IsIGlkIDxfV0tJbnNwZWN0b3JEZWxlZ2F0ZT4gZGVsZWdhdGUpCi0gICAgOiBt
X2luc3BlY3RvcihpbnNwZWN0b3IpCi0gICAgLCBtX2RlbGVnYXRlKGRlbGVnYXRlKQotewotICAg
IG1fZGVsZWdhdGVNZXRob2RzLmluc3BlY3Rvck9wZW5VUkxFeHRlcm5hbGx5ID0gW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVjdG9yOm9wZW5VUkxFeHRlcm5hbGx5
OildOwotCi0gICAgaW5zcGVjdG9yLT5faW5zcGVjdG9yLT5zZXRJbnNwZWN0b3JDbGllbnQoZGVs
ZWdhdGUgPyBtYWtlVW5pcXVlPEluc3BlY3RvckNsaWVudD4oKnRoaXMpIDogbnVsbHB0cik7Ci19
Ci0KLUluc3BlY3RvckRlbGVnYXRlOjp+SW5zcGVjdG9yRGVsZWdhdGUoKSA9IGRlZmF1bHQ7Ci0K
LVJldGFpblB0cjxpZCA8X1dLSW5zcGVjdG9yRGVsZWdhdGU+PiBJbnNwZWN0b3JEZWxlZ2F0ZTo6
ZGVsZWdhdGUoKQotewotICAgIHJldHVybiBtX2RlbGVnYXRlLmdldCgpOwotfQotCi1JbnNwZWN0
b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yQ2xpZW50OjpJbnNwZWN0b3JDbGllbnQoSW5zcGVjdG9yRGVs
ZWdhdGUmIGRlbGVnYXRlKQotICAgIDogbV9pbnNwZWN0b3JEZWxlZ2F0ZShkZWxlZ2F0ZSkKLXsK
LX0KLQotSW5zcGVjdG9yRGVsZWdhdGU6Okluc3BlY3RvckNsaWVudDo6fkluc3BlY3RvckNsaWVu
dCgpCi17Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRGVsZWdhdGU6Okluc3BlY3RvckNsaWVudDo6b3Bl
blVSTEV4dGVybmFsbHkoV2ViSW5zcGVjdG9yVUlQcm94eSYsIGNvbnN0IFN0cmluZyYgdXJsKQot
ewotICAgIGlmICghbV9pbnNwZWN0b3JEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy5pbnNwZWN0
b3JPcGVuVVJMRXh0ZXJuYWxseSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byYgZGVsZWdh
dGUgPSBtX2luc3BlY3RvckRlbGVnYXRlLm1fZGVsZWdhdGU7Ci0gICAgaWYgKCFkZWxlZ2F0ZSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgW2RlbGVnYXRlIGluc3BlY3RvcjptX2luc3BlY3RvckRl
bGVnYXRlLm1faW5zcGVjdG9yLmdldCgpLmdldCgpIG9wZW5VUkxFeHRlcm5hbGx5OltOU1VSTCBV
UkxXaXRoU3RyaW5nOnVybF1dOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSVBy
b3h5LmNwcAppbmRleCBkYWE3YTllNTMxMTkyM2IwMDAxMWE1NWRmNDk1MzEwYmM0ZGRlNGRkLi5i
MTQxZTZmNGFjNzFiN2U0NzM1MmY0MjgxMGNmZjA4ODc1N2NhM2EwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJUHJveHku
Y3BwCkBAIC04NCw3ICs4NCw3IEBAIFdlYkluc3BlY3RvclVJUHJveHk6On5XZWJJbnNwZWN0b3JV
SVByb3h5KCkKIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6c2V0SW5zcGVjdG9yQ2xpZW50KHN0
ZDo6dW5pcXVlX3B0cjxBUEk6Okluc3BlY3RvckNsaWVudD4mJiBpbnNwZWN0b3JDbGllbnQpCiB7
CiAgICAgaWYgKCFpbnNwZWN0b3JDbGllbnQpIHsKLSAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQg
PSBtYWtlVW5pcXVlPEFQSTo6SW5zcGVjdG9yQ2xpZW50PigpOworICAgICAgICBtX2luc3BlY3Rv
ckNsaWVudCA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTYzNCw3ICs2
MzQsOCBAQCB2b2lkIFdlYkluc3BlY3RvclVJUHJveHk6OnNldEZvcmNlZEFwcGVhcmFuY2UoSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnQ6OkFwcGVhcmFuYwogCiB2b2lkIFdlYkluc3BlY3RvclVJUHJv
eHk6Om9wZW5VUkxFeHRlcm5hbGx5KGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIG1faW5zcGVj
dG9yQ2xpZW50LT5vcGVuVVJMRXh0ZXJuYWxseSgqdGhpcywgdXJsKTsKKyAgICBpZiAobV9pbnNw
ZWN0b3JDbGllbnQpCisgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50LT5vcGVuVVJMRXh0ZXJuYWxs
eSgqdGhpcywgdXJsKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjppbnNwZWN0ZWRV
UkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdD
b250cm9sbGVyLm1tCmluZGV4IGVkNmY3NjMyOTIwM2MwOTBjMTZmNDdjZjYxNjU2YmJhZDAzNGFj
MzAuLjdlMTY2OTY2ZTFmOGNkYmRhNjVhMWMxNjRjZDRiMjM5ZmRmN2Q3YjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29u
dHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dL
SW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KQEAgLTU2LDcgKzU2LDcgQEAgQGltcGxlbWVudGF0
aW9uIFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgewogICAgIE5ha2VkUHRyPFdlYktpdDo6V2Vi
UGFnZVByb3h5PiBfaW5zcGVjdGVkUGFnZTsKICAgICBSZXRhaW5QdHI8V0tJbnNwZWN0b3JXS1dl
YlZpZXc+IF93ZWJWaWV3OwogICAgIFdlYWtPYmpDUHRyPGlkIDxXS0luc3BlY3RvclZpZXdDb250
cm9sbGVyRGVsZWdhdGU+PiBfZGVsZWdhdGU7Ci0gICAgX1dLSW5zcGVjdG9yQ29uZmlndXJhdGlv
biAqX2NvbmZpZ3VyYXRpb247CisgICAgUmV0YWluUHRyPF9XS0luc3BlY3RvckNvbmZpZ3VyYXRp
b24+IF9jb25maWd1cmF0aW9uOwogfQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb25maWd1
cmF0aW9uOihfV0tJbnNwZWN0b3JDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbiBpbnNwZWN0
ZWRQYWdlOihOYWtlZFB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4paW5zcGVjdGVkUGFnZQpAQCAt
NjQsNyArNjQsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb25maWd1cmF0aW9uOihfV0tJ
bnNwZWN0b3JDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgogICAgIGlmICghKHNlbGYgPSBb
c3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX2NvbmZpZ3VyYXRpb24g
PSBbY29uZmlndXJhdGlvbiBjb3B5XTsKKyAgICBfY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW2Nv
bmZpZ3VyYXRpb24gY29weV0pOwogCiAgICAgLy8gVGhlIChsb2NhbCkgaW5zcGVjdGVkIHBhZ2Ug
aXMgbmlsIGlmIHRoZSBjb250cm9sbGVyIGlzIGhvc3RpbmcgYSBSZW1vdGUgV2ViIEluc3BlY3Rv
ciB2aWV3LgogICAgIF9pbnNwZWN0ZWRQYWdlID0gaW5zcGVjdGVkUGFnZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGFiM2Y3MzI5ZWMx
NGJkOWU2NGMyOWY4MmNiMTYxYjYxYjM3YmVlNjIuLmY0NjJhMjEwMmE0N2VlMzZkM2U0NmZlZmMw
ZTgyYmUzYzFmNGU4M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTQyOSw3ICsxNDI5LDYgQEAKIAkJODZGOTUzNjUxOEZGNThGNTAw
MURCMkVGIC8qIFByb2Nlc3NBc3NlcnRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg2Rjk1MzYwMThGRjRGRDQwMDFEQjJFRiAvKiBQcm9jZXNzQXNz
ZXJ0aW9uLmggKi87IH07CiAJCThEQzJFRjUzMDQ4NkE2OTQwMDk4QjIxNiAvKiBJbmZvUGxpc3Qu
c3RyaW5ncyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDg5QzE2NjZGRTg0MTE1OEMwMkFBQzA3IC8qIEluZm9QbGlzdC5zdHJpbmdzICovOyB9OwogCQk5
MDk4NTRFRDEyQkM0RTE4MDAwQUQwODAgLyogV2ViTWVtb3J5U2FtcGxlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTA1NjIwRTkxMkJDMjQ4QjAwMDc5
OUI2IC8qIFdlYk1lbW9yeVNhbXBsZXIuaCAqLzsgfTsKLQkJOTE5Nzk0MDIyM0RCQzQ5MDAwMjU3
ODkyIC8qIEluc3BlY3RvckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MTk3OTQwMDIzREJDNDkwMDAyNTc4OTIgLyogSW5zcGVjdG9yRGVs
ZWdhdGUuaCAqLzsgfTsKIAkJOTE5Nzk0MDUyM0RCQzRCQjAwMjU3ODkyIC8qIEluc3BlY3RvckJy
b3dzZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTE5Nzk0MDMyM0RCQzRCQjAwMjU3ODkyIC8qIEluc3BlY3RvckJyb3dzZXJBZ2VudC5oICov
OyB9OwogCQk5MTk3OTQwODIzREJDNENCMDAyNTc4OTIgLyogV2ViUGFnZUluc3BlY3RvckFnZW50
QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTE5
Nzk0MDcyM0RCQzRDQTAwMjU3ODkyIC8qIFdlYlBhZ2VJbnNwZWN0b3JBZ2VudEJhc2UuaCAqLzsg
fTsKIAkJOTE5Nzk0MEEyM0RCQzRFMDAwMjU3ODkyIC8qIEFQSUluc3BlY3RvckNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTE5Nzk0MDkyM0RC
QzRFMDAwMjU3ODkyIC8qIEFQSUluc3BlY3RvckNsaWVudC5oICovOyB9OwpAQCAtNDc1Niw4ICs0
NzU1LDYgQEAKIAkJOTA1NjIwRTUxMkJDMjQ3NjAwMDc5OUI2IC8qIFdlYk1lbW9yeVNhbXBsZXIu
bWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGlu
ZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXZWJNZW1vcnlTYW1wbGVyLm1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkwNTYyMEU4MTJCQzI0OEIwMDA3OTlC
NiAvKiBXZWJNZW1vcnlTYW1wbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYk1lbW9yeVNhbXBsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MDU2MjBFOTEyQkMyNDhCMDAwNzk5QjYgLyogV2ViTWVtb3J5U2FtcGxlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJNZW1vcnlTYW1wbGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTkxOTc5M0ZGMjNEQkM0OTAwMDI1Nzg5MiAvKiBJbnNwZWN0b3JE
ZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEluc3Bl
Y3RvckRlbGVnYXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5MTk3OTQwMDIz
REJDNDkwMDAyNTc4OTIgLyogSW5zcGVjdG9yRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTE5Nzk0MDMyM0RCQzRCQjAwMjU3ODkyIC8qIEluc3BlY3RvckJyb3dzZXJBZ2Vu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JCcm93c2VyQWdl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTE5Nzk0MDQyM0RCQzRCQjAwMjU3
ODkyIC8qIEluc3BlY3RvckJyb3dzZXJBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJbnNwZWN0b3JCcm93c2VyQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MTk3OTQwNzIzREJDNENBMDAyNTc4OTIgLyogV2ViUGFnZUluc3BlY3Rv
ckFnZW50QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYWdlSW5z
cGVjdG9yQWdlbnRCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MjU2LDgg
KzkyNTMsNiBAQAogCQk5MTk3OTNGRTIzREJDNDc0MDAyNTc4OTIgLyogQ29jb2EgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTkxOTc5NDAwMjNEQkM0OTAw
MDI1Nzg5MiAvKiBJbnNwZWN0b3JEZWxlZ2F0ZS5oICovLAotCQkJCTkxOTc5M0ZGMjNEQkM0OTAw
MDI1Nzg5MiAvKiBJbnNwZWN0b3JEZWxlZ2F0ZS5tbSAqLywKIAkJCQk5OTZCMkI5QzI1RTI1N0VF
MDA3MTkzNzkgLyogSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuaCAqLywKIAkJCQk5OTZCMkI5
QjI1RTI1N0VFMDA3MTkzNzkgLyogSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0gKi8sCiAJ
CQkpOwpAQCAtMTE4NTYsNyArMTE4NTEsNiBAQAogCQkJCTJERDQ1QURFMUU1Rjg5NzIwMDZDMzU1
RiAvKiBJbnB1dFZpZXdVcGRhdGVEZWZlcnJlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U1NTBF
MTUyMjgzNzUyMjAwRDI4NzkxIC8qIEluc2VydFRleHRPcHRpb25zLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MTk3OTQwNTIzREJDNEJCMDAyNTc4OTIgLyogSW5zcGVjdG9yQnJvd3NlckFnZW50Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQk5MTk3OTQwMjIzREJDNDkwMDAyNTc4OTIgLyogSW5zcGVjdG9y
RGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NkIyQjlEMjVFMjU3RkYwMDcxOTM3OSAv
KiBJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVFMzkx
RkQyMTgzQzFGODAwQzhGQjMxIC8qIEluc3BlY3RvclRhcmdldFByb3h5LmggaW4gSGVhZGVycyAq
LywKIAkJCQlDNUJDRTVERjFDNTA3NjZBMDBDREUzRkEgLyogSW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb24uaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckRlbGVnYXRlLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckRlbGVnYXRlLm1tCmluZGV4
IDlkZWE2M2NkODZhN2I3ZjEyZDkwODU5YmY0MDJjMjExYmQyMjQ5Y2UuLmJhNWJhYmEwZGY4NjQz
MzVlNjUxMDFhZDUxMGE1NWU2MzBiZWUyMTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JEZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRGVsZWdhdGUubW0KQEAg
LTIyMSw3ICsyMjEsNyBAQCBURVNUKFdLSW5zcGVjdG9yRGVsZWdhdGUsIFNob3dVUkxFeHRlcm5h
bGx5KQogICAgIFtbd2ViVmlldyBfaW5zcGVjdG9yXSBzaG93XTsKICAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRpZEF0dGFjaExvY2FsSW5zcGVjdG9yQ2FsbGVkKTsKIAotICAgIHVybFRv
T3BlbiA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly93d3cud2Via2l0Lm9yZy8iXTsK
KyAgICB1cmxUb09wZW4gPSBhZG9wdE5TKFtOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly93
d3cud2Via2l0Lm9yZy8iXSk7CiAKICAgICAvLyBDaGVjayB0aGUgY2FzZSB3aGVyZSB0aGUgbG9h
ZCBpcyBpbnRlcmNlcHRlZCBieSB0aGUgbmF2aWdhdGlvbiBkZWxlZ2F0ZS4KICAgICBbW3dlYlZp
ZXcgX2luc3BlY3Rvcl0gX29wZW5VUkxFeHRlcm5hbGx5Rm9yVGVzdGluZzp1cmxUb09wZW4uZ2V0
KCkgdXNlRnJvbnRlbmRBUEk6Tk9dOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424958</attachid>
            <date>2021-04-01 16:08:11 -0700</date>
            <delta_ts>2021-04-22 12:04:28 -0700</delta_ts>
            <desc>Patch v2.2 - address Devin feedback</desc>
            <filename>bug-223899-20210401160810.patch</filename>
            <type>text/plain</type>
            <size>20791</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDMyMWY4YTU4NzdjOGVhNDRi
Njc5ZDI0OTQ3YmEwODRhZjY5Yjc5NDkuLjVmNjRkMDEzNDllY2Y0ZGQyN2Y1OTBhMWU0NmYyNDQy
MDVlMDhmNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDQtMDEgIEJKIEJ1cmcg
IDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgdjI6IFJFR1JFU1NJT04ocjI2Njg5MCk6IFtD
b2NvYV0gRml4IEFQSTo6SW5zcGVjdG9yQ2xpZW50IGxlYWsKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzg5OQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzUyNDkyODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVmYWN0b3IgdG8gKm5vdCogdXNlIHRoZSBoZWxwZXIgT2JqQyBjbGFzcyBJbnNwZWN0
b3JEZWxlZ2F0ZS4KKyAgICAgICAgSW5zdGVhZCwgc3RvcmUgdGhlIF9XS0luc3BlY3RvckRlbGVn
YXRlIGluIF9XS0luc3BlY3RvciBkaXJlY3RseQorICAgICAgICB1c2luZyBhIFdlYWtPYmpDUHRy
IGl2YXIuIE1vdmUgdGhlIEMrKyBicmlkZ2UgY2xhc3MgdG8gYmUgZGVmaW5lZAorICAgICAgICBp
bnNpZGUgX1dLSW5zcGVjdG9yLm1tIHNpbmNlIGl0J3Mgb25seSB1c2VkIHRoZXJlLiBBZGFwdCBp
dCB0bworICAgICAgICB3b3JrIGJldHRlciB3aXRoIGEgbmlsIGRlbGVnYXRlLiBBbmQgbWFrZSBz
dXJlIHRvIGNhbGwgdGhlIGRlc3RydWN0b3IKKyAgICAgICAgZm9yIHRoZSB1bmRlcmx5aW5nIFdl
Ykluc3BlY3RvclVJUHJveHkgd2hlbiB0aGUgX1dLSW5zcGVjdG9yIHdyYXBwZXIKKyAgICAgICAg
aXMgZGVhbGxvY2F0ZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckNs
aWVudC5oOgorICAgICAgICAoQVBJOjpJbnNwZWN0b3JDbGllbnQ6Om9wZW5VUkxFeHRlcm5hbGx5
KToKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9ySW50ZXJuYWwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbToKKyAgICAg
ICAgKC1bX1dLSW5zcGVjdG9yIGRlbGVnYXRlXSk6CisgICAgICAgICgtW19XS0luc3BlY3RvciBz
ZXREZWxlZ2F0ZTpdKToKKyAgICAgICAgKC1bX1dLSW5zcGVjdG9yIGRlYWxsb2NdKToKKworICAg
ICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0
b3JEZWxlZ2F0ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvQ29j
b2EvSW5zcGVjdG9yRGVsZWdhdGUubW06IFJlbW92ZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
SW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtX
S0luc3BlY3RvclZpZXdDb250cm9sbGVyIGluaXRXaXRoQ29uZmlndXJhdGlvbjppbnNwZWN0ZWRQ
YWdlOl0pOgorICAgICAgICBEcml2ZS1ieSwgZml4IHRoZSBsZWFrIF9XS0luc3BlY3RvckNvbmZp
Z3VyYXRpb24uCisKIDIwMjEtMDQtMDEgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIEV4cG9zZSBhbiBhbGlhcyBmb3IgU2Nyb2xsU25hcE9mZnNldElu
Zm88VD4gdG8gbWFrZSBpdCBlYXNpZXIgdG8gdXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXgg
YTg2ZTcxN2Y3MjA0MzNjNjczMjFjNGY1ZDE5NzA0MmMxNDAzODM1NC4uNmU1NjcyOWJkZmJmZjJl
YjM3OTc3ZTMxNmZjYzU0NjY3ZGZmN2RlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNDIx
LDcgKzQyMSw2IEBAIFVJUHJvY2Vzcy9HYW1lcGFkL2NvY29hL1VJR2FtZXBhZFByb3ZpZGVyQ29j
b2EubW0KIFVJUHJvY2Vzcy9HYW1lcGFkL2lvcy9VSUdhbWVwYWRQcm92aWRlcklPUy5tbQogVUlQ
cm9jZXNzL0dhbWVwYWQvbWFjL1VJR2FtZXBhZFByb3ZpZGVyTWFjLm1tCiAKLVVJUHJvY2Vzcy9J
bnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUubW0KIFVJUHJvY2Vzcy9JbnNwZWN0b3Iv
Q29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0KIAogVUlQcm9jZXNzL0luc3BlY3Rv
ci9pb3MvV0tJbnNwZWN0b3JIaWdobGlnaHRWaWV3Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggNjExOTE0MGQzNjk0ZmMzNmE2
Y2U3NDlkODVlZTQ5OWYxZjQ4NjEyMC4uZDVjZjNiNTI5NDdhZDQ3N2ZlODhjYzc0OGE1ZTQyY2Y0
NWUwMTQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3Bl
Y3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0
b3JDbGllbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEluc3BlY3RvckNsaWVudCB7CiBwdWJsaWM6
CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yQ2xpZW50KCkgPSBkZWZhdWx0OwogCi0gICAgdmlydHVh
bCB2b2lkIG9wZW5VUkxFeHRlcm5hbGx5KFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eSYsIGNv
bnN0IFdURjo6U3RyaW5nJiB1cmwpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBvcGVuVVJMRXh0ZXJu
YWxseShXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHkmLCBjb25zdCBXVEY6OlN0cmluZyYgdXJs
KSB7IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCmluZGV4IDJjMWJhN2M4NTM4YzBjY2Fi
YTNkODEwMDgwMGUxMTJiOTEwOWQ1YzYuLjI5ZGMxNzQ5OGE1NmQ0MTU3OWZkMjMyNWQzMDU5MGU4
ZWI4NWE2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tJbnNwZWN0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0luc3BlY3Rvci5tbQpAQCAtMjYsMTIgKzI2LDE0IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNp
bXBvcnQgIl9XS0luc3BlY3RvckludGVybmFsLmgiCiAKLSNpbXBvcnQgIkluc3BlY3RvckRlbGVn
YXRlLmgiCisjaW1wb3J0ICJBUElJbnNwZWN0b3JDbGllbnQuaCIKICNpbXBvcnQgIldLRXJyb3Iu
aCIKICNpbXBvcnQgIldLV2ViVmlld0ludGVybmFsLmgiCisjaW1wb3J0ICJXZWJJbnNwZWN0b3JV
SVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQ
cm94eS5oIgogI2ltcG9ydCAiX1dLRnJhbWVIYW5kbGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiX1dL
SW5zcGVjdG9yRGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS0luc3BlY3RvclByaXZhdGVGb3JUZXN0
aW5nLmgiCiAjaW1wb3J0ICJfV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5oIgogI2ltcG9ydCA8V2Vi
Q29yZS9GcmFtZUlkZW50aWZpZXIuaD4KQEAgLTQ3LDIxICs0OSw0NCBAQAogI2ltcG9ydCA8d3Rm
L0Jsb2NrUHRyLmg+CiAjZW5kaWYKIAorY2xhc3MgSW5zcGVjdG9yQ2xpZW50IGZpbmFsIDogcHVi
bGljIEFQSTo6SW5zcGVjdG9yQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBJbnNwZWN0
b3JDbGllbnQoaWQgPF9XS0luc3BlY3RvckRlbGVnYXRlPiBkZWxlZ2F0ZSkKKyAgICAgICAgOiBt
X2RlbGVnYXRlKGRlbGVnYXRlKQorICAgICAgICAsIG1fcmVzcG9uZHNUb0luc3BlY3Rvck9wZW5V
UkxFeHRlcm5hbGx5KFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGluc3Bl
Y3RvcjpvcGVuVVJMRXh0ZXJuYWxseTopXSkKKyAgICB7CisgICAgfQorCisgICAgfkluc3BlY3Rv
ckNsaWVudCgpID0gZGVmYXVsdDsKKworcHJpdmF0ZToKKyAgICAvLyBBUEk6Okluc3BlY3RvckNs
aWVudAorICAgIHZvaWQgb3BlblVSTEV4dGVybmFsbHkoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVBy
b3h5JiBpbnNwZWN0b3IsIGNvbnN0IFdURjo6U3RyaW5nJiB1cmwpIGZpbmFsCisgICAgeworICAg
ICAgICBpZiAoIW1fZGVsZWdhdGUgfHwgIW1fcmVzcG9uZHNUb0luc3BlY3Rvck9wZW5VUkxFeHRl
cm5hbGx5KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIFttX2RlbGVnYXRlIGluc3Bl
Y3Rvcjp3cmFwcGVyKGluc3BlY3Rvcikgb3BlblVSTEV4dGVybmFsbHk6W05TVVJMIFVSTFdpdGhT
dHJpbmc6dXJsXV07CisgICAgfQorCisgICAgV2Vha09iakNQdHI8aWQgPF9XS0luc3BlY3RvckRl
bGVnYXRlPiA+IG1fZGVsZWdhdGU7CisKKyAgICBib29sIG1fcmVzcG9uZHNUb0luc3BlY3Rvck9w
ZW5VUkxFeHRlcm5hbGx5IDogMTsKK307CisKIEBpbXBsZW1lbnRhdGlvbiBfV0tJbnNwZWN0b3IK
IAogLy8gTUFSSzogX1dLSW5zcGVjdG9yIG1ldGhvZHMKIAogLSAoaWQgPF9XS0luc3BlY3RvckRl
bGVnYXRlPilkZWxlZ2F0ZQogewotICAgIHJldHVybiBfZGVsZWdhdGUtPmRlbGVnYXRlKCkuYXV0
b3JlbGVhc2UoKTsKKyAgICByZXR1cm4gX2RlbGVnYXRlLmdldCgpLmdldCgpOwogfQogCiAtICh2
b2lkKXNldERlbGVnYXRlOihpZDxfV0tJbnNwZWN0b3JEZWxlZ2F0ZT4pZGVsZWdhdGUKIHsKLSAg
ICBpZiAoIWRlbGVnYXRlICYmICFfZGVsZWdhdGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIF9k
ZWxlZ2F0ZSA9IG1ha2VVbmlxdWU8V2ViS2l0OjpJbnNwZWN0b3JEZWxlZ2F0ZT4oc2VsZiwgZGVs
ZWdhdGUpOworICAgIF9kZWxlZ2F0ZSA9IGRlbGVnYXRlOworICAgIF9pbnNwZWN0b3ItPnNldElu
c3BlY3RvckNsaWVudChXVEY6Om1ha2VVbmlxdWU8SW5zcGVjdG9yQ2xpZW50PihkZWxlZ2F0ZSkp
OwogfQogCiAtIChXS1dlYlZpZXcgKil3ZWJWaWV3CkBAIC0xNzYsNiArMjAxLDE0IEBAIC0gKEFQ
STo6T2JqZWN0JilfYXBpT2JqZWN0CiAgICAgcmV0dXJuICpfaW5zcGVjdG9yOwogfQogCistICh2
b2lkKWRlYWxsb2MKK3sKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1h
aW5SdW5Mb29wKF9XS0luc3BlY3Rvci5jbGFzcywgc2VsZikpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKwogLy8gTUFSSzogX1dLSW5zcGVjdG9yRXh0ZW5zaW9u
SG9zdCBtZXRob2RzCiAKIC0gKFdLV2ViVmlldyAqKWV4dGVuc2lvbkhvc3RXZWJWaWV3CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9ySW50
ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JJ
bnRlcm5hbC5oCmluZGV4IGZjNDE5YWJjNjgyMGI0YmNlNWQ3ZTFiZGNiMTEyNjQ2N2ZlMzU5ODku
Ljg2YmZkYTBhYmI3M2YzODU3YjcwZWYwZDJkOWViOWJlYjk3YWY4MmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JJbnRlcm5hbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JJbnRlcm5h
bC5oCkBAIC0yOCwxMCArMjgsNiBAQAogI2ltcG9ydCAiV0tPYmplY3QuaCIKICNpbXBvcnQgIldl
Ykluc3BlY3RvclVJUHJveHkuaCIKIAotbmFtZXNwYWNlIFdlYktpdCB7Ci1jbGFzcyBJbnNwZWN0
b3JEZWxlZ2F0ZTsKLX0KLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHRlbXBsYXRlPD4gc3RydWN0
IFdyYXBwZXJUcmFpdHM8V2ViSW5zcGVjdG9yVUlQcm94eT4gewpAQCAtNDMsNiArMzksNiBAQCB0
ZW1wbGF0ZTw+IHN0cnVjdCBXcmFwcGVyVHJhaXRzPFdlYkluc3BlY3RvclVJUHJveHk+IHsKIEBp
bnRlcmZhY2UgX1dLSW5zcGVjdG9yICgpIDxXS09iamVjdD4gewogQHBhY2thZ2UKICAgICBBUEk6
Ok9iamVjdFN0b3JhZ2U8V2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5PiBfaW5zcGVjdG9yOwot
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6Okluc3BlY3RvckRlbGVnYXRlPiBfZGVsZWdhdGU7
CisgICAgV2Vha09iakNQdHI8aWQgPF9XS0luc3BlY3RvckRlbGVnYXRlPiA+IF9kZWxlZ2F0ZTsK
IH0KIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tJbnNwZWN0b3JUZXN0aW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0luc3BlY3RvclRlc3RpbmcubW0KaW5kZXggOTBkOTAwMTI0MjY1NzJlNmE3OWRkOGEzNjZl
ZTIwMTI0NGJiYzdmYS4uNjY4YmQ2ZjFkNjc3NThhOTkwN2RiZmRmMjY2NjVmZDY2NTI0NzVlNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rv
clRlc3RpbmcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0lu
c3BlY3RvclRlc3RpbmcubW0KQEAgLTQ5LDExICs0OSwxMSBAQCAtIChXS1dlYlZpZXcgKilpbnNw
ZWN0b3JXZWJWaWV3CiAtICh2b2lkKV9vcGVuVVJMRXh0ZXJuYWxseUZvclRlc3Rpbmc6KE5TVVJM
ICopdXJsIHVzZUZyb250ZW5kQVBJOihCT09MKXVzZUZyb250ZW5kQVBJCiB7CiAgICAgaWYgKHVz
ZUZyb250ZW5kQVBJKQotICAgICAgICBfaW5zcGVjdG9yLT5ldmFsdWF0ZUluRnJvbnRlbmRGb3JU
ZXN0aW5nKEphdmFTY3JpcHRTbmlwcGV0VG9PcGVuVVJMRXh0ZXJuYWxseSh1cmwpKTsKKyAgICAg
ICAgX2luc3BlY3Rvci0+ZXZhbHVhdGVJbkZyb250ZW5kRm9yVGVzdGluZyhKYXZhU2NyaXB0U25p
cHBldFRvT3BlblVSTEV4dGVybmFsbHkoW3VybCBjb3B5XSkpOwogICAgIGVsc2UgewogICAgICAg
ICAvLyBGb3JjZSB0aGUgbmF2aWdhdGlvbiByZXF1ZXN0IHRvIGJlIGhhbmRsZWQgbmF0dXJhbGx5
IHRocm91Z2ggdGhlCiAgICAgICAgIC8vIGludGVybmFsIE5hdmlnYXRpb25EZWxlZ2F0ZSBvZiBX
S0luc3BlY3RvclZpZXdDb250cm9sbGVyLgotICAgICAgICBbc2VsZi5pbnNwZWN0b3JXZWJWaWV3
IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dXJsXV07CisgICAgICAg
IFtzZWxmLmluc3BlY3RvcldlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDpbdXJsIGNvcHldXV07CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MGQ3NGU3NWMyYWYyMmY5M2MwOWRmNjU1YTUx
MjgyZDQ1MjlhNDIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxl
Z2F0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNzAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFn
bWEgb25jZQotCi0jaW1wb3J0ICJBUElJbnNwZWN0b3JDbGllbnQuaCIKLSNpbXBvcnQgIldLRm91
bmRhdGlvbi5oIgotI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+Ci0KLUBjbGFzcyBfV0tJbnNw
ZWN0b3I7Ci1AcHJvdG9jb2wgX1dLSW5zcGVjdG9yRGVsZWdhdGU7Ci0KLW5hbWVzcGFjZSBXZWJL
aXQgewotCi1jbGFzcyBXZWJJbnNwZWN0b3JVSVByb3h5OwotCi1jbGFzcyBJbnNwZWN0b3JEZWxl
Z2F0ZSB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgSW5zcGVj
dG9yRGVsZWdhdGUoX1dLSW5zcGVjdG9yICosIGlkIDxfV0tJbnNwZWN0b3JEZWxlZ2F0ZT4pOwot
ICAgIH5JbnNwZWN0b3JEZWxlZ2F0ZSgpOwotCi0gICAgUmV0YWluUHRyPGlkIDxfV0tJbnNwZWN0
b3JEZWxlZ2F0ZT4+IGRlbGVnYXRlKCk7Ci0gICAgdm9pZCBzZXREZWxlZ2F0ZShpZCA8X1dLSW5z
cGVjdG9yRGVsZWdhdGU+KTsKLQotcHJpdmF0ZToKLSAgICBjbGFzcyBJbnNwZWN0b3JDbGllbnQg
ZmluYWwgOiBwdWJsaWMgQVBJOjpJbnNwZWN0b3JDbGllbnQgewotICAgICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGV4cGxpY2l0IEluc3BlY3RvckNs
aWVudChJbnNwZWN0b3JEZWxlZ2F0ZSYpOwotICAgICAgICB+SW5zcGVjdG9yQ2xpZW50KCk7Ci0K
LSAgICBwcml2YXRlOgotICAgICAgICAvLyBBUEk6Okluc3BlY3RvckNsaWVudAotICAgICAgICB2
b2lkIG9wZW5VUkxFeHRlcm5hbGx5KFdlYkluc3BlY3RvclVJUHJveHkmLCBjb25zdCBTdHJpbmcm
IHVybCk7Ci0KLSAgICAgICAgSW5zcGVjdG9yRGVsZWdhdGUmIG1faW5zcGVjdG9yRGVsZWdhdGU7
Ci0gICAgfTsKLQotICAgIFdlYWtPYmpDUHRyPF9XS0luc3BlY3Rvcj4gbV9pbnNwZWN0b3I7Ci0g
ICAgV2Vha09iakNQdHI8aWQgPF9XS0luc3BlY3RvckRlbGVnYXRlPj4gbV9kZWxlZ2F0ZTsKLQot
ICAgIHN0cnVjdCB7Ci0gICAgICAgIGJvb2wgaW5zcGVjdG9yT3BlblVSTEV4dGVybmFsbHkgOiAx
OwotICAgIH0gbV9kZWxlZ2F0ZU1ldGhvZHM7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNw
ZWN0b3JEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2Nv
YS9JbnNwZWN0b3JEZWxlZ2F0ZS5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzJi
OGUwYzliZjIzZTZiMGNhZGRlMTk4YzRlMDExYzA2NDY0NDVjNy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUubW0KKysrIC9kZXYvbnVsbApAQCAtMSw3MiAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJJbnNwZWN0
b3JEZWxlZ2F0ZS5oIgotCi0jaW1wb3J0ICJXZWJJbnNwZWN0b3JVSVByb3h5LmgiCi0jaW1wb3J0
ICJfV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oIgotI2ltcG9ydCAiX1dLSW5zcGVjdG9ySW50ZXJuYWwu
aCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLUluc3BlY3RvckRlbGVnYXRlOjpJbnNwZWN0b3JE
ZWxlZ2F0ZShfV0tJbnNwZWN0b3IgKmluc3BlY3RvciwgaWQgPF9XS0luc3BlY3RvckRlbGVnYXRl
PiBkZWxlZ2F0ZSkKLSAgICA6IG1faW5zcGVjdG9yKGluc3BlY3RvcikKLSAgICAsIG1fZGVsZWdh
dGUoZGVsZWdhdGUpCi17Ci0gICAgbV9kZWxlZ2F0ZU1ldGhvZHMuaW5zcGVjdG9yT3BlblVSTEV4
dGVybmFsbHkgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihpbnNwZWN0
b3I6b3BlblVSTEV4dGVybmFsbHk6KV07Ci0KLSAgICBpbnNwZWN0b3ItPl9pbnNwZWN0b3ItPnNl
dEluc3BlY3RvckNsaWVudChkZWxlZ2F0ZSA/IG1ha2VVbmlxdWU8SW5zcGVjdG9yQ2xpZW50Pigq
dGhpcykgOiBudWxscHRyKTsKLX0KLQotSW5zcGVjdG9yRGVsZWdhdGU6On5JbnNwZWN0b3JEZWxl
Z2F0ZSgpID0gZGVmYXVsdDsKLQotUmV0YWluUHRyPGlkIDxfV0tJbnNwZWN0b3JEZWxlZ2F0ZT4+
IEluc3BlY3RvckRlbGVnYXRlOjpkZWxlZ2F0ZSgpCi17Ci0gICAgcmV0dXJuIG1fZGVsZWdhdGUu
Z2V0KCk7Ci19Ci0KLUluc3BlY3RvckRlbGVnYXRlOjpJbnNwZWN0b3JDbGllbnQ6Okluc3BlY3Rv
ckNsaWVudChJbnNwZWN0b3JEZWxlZ2F0ZSYgZGVsZWdhdGUpCi0gICAgOiBtX2luc3BlY3RvckRl
bGVnYXRlKGRlbGVnYXRlKQotewotfQotCi1JbnNwZWN0b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yQ2xp
ZW50Ojp+SW5zcGVjdG9yQ2xpZW50KCkKLXsKLX0KLQotdm9pZCBJbnNwZWN0b3JEZWxlZ2F0ZTo6
SW5zcGVjdG9yQ2xpZW50OjpvcGVuVVJMRXh0ZXJuYWxseShXZWJJbnNwZWN0b3JVSVByb3h5Jiwg
Y29uc3QgU3RyaW5nJiB1cmwpCi17Ci0gICAgaWYgKCFtX2luc3BlY3RvckRlbGVnYXRlLm1fZGVs
ZWdhdGVNZXRob2RzLmluc3BlY3Rvck9wZW5VUkxFeHRlcm5hbGx5KQotICAgICAgICByZXR1cm47
Ci0KLSAgICBhdXRvJiBkZWxlZ2F0ZSA9IG1faW5zcGVjdG9yRGVsZWdhdGUubV9kZWxlZ2F0ZTsK
LSAgICBpZiAoIWRlbGVnYXRlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBbZGVsZWdhdGUgaW5z
cGVjdG9yOm1faW5zcGVjdG9yRGVsZWdhdGUubV9pbnNwZWN0b3IuZ2V0KCkuZ2V0KCkgb3BlblVS
TEV4dGVybmFsbHk6W05TVVJMIFVSTFdpdGhTdHJpbmc6dXJsXV07Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvclVJUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVj
dG9yL1dlYkluc3BlY3RvclVJUHJveHkuY3BwCmluZGV4IGRhYTdhOWU1MzExOTIzYjAwMDExYTU1
ZGY0OTUzMTBiYzRkZGU0ZGQuLmIxNDFlNmY0YWM3MWI3ZTQ3MzUyZjQyODEwY2ZmMDg4NzU3Y2Ez
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JVSVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUlQcm94eS5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgV2ViSW5zcGVjdG9yVUlQ
cm94eTo6fldlYkluc3BlY3RvclVJUHJveHkoKQogdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5Ojpz
ZXRJbnNwZWN0b3JDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6SW5zcGVjdG9yQ2xpZW50PiYm
IGluc3BlY3RvckNsaWVudCkKIHsKICAgICBpZiAoIWluc3BlY3RvckNsaWVudCkgewotICAgICAg
ICBtX2luc3BlY3RvckNsaWVudCA9IG1ha2VVbmlxdWU8QVBJOjpJbnNwZWN0b3JDbGllbnQ+KCk7
CisgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50ID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtNjM0LDcgKzYzNCw4IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6c2V0
Rm9yY2VkQXBwZWFyYW5jZShJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6QXBwZWFyYW5jCiAKIHZv
aWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6b3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1
cmwpCiB7Ci0gICAgbV9pbnNwZWN0b3JDbGllbnQtPm9wZW5VUkxFeHRlcm5hbGx5KCp0aGlzLCB1
cmwpOworICAgIGlmIChtX2luc3BlY3RvckNsaWVudCkKKyAgICAgICAgbV9pbnNwZWN0b3JDbGll
bnQtPm9wZW5VUkxFeHRlcm5hbGx5KCp0aGlzLCB1cmwpOwogfQogCiB2b2lkIFdlYkluc3BlY3Rv
clVJUHJveHk6Omluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVj
dG9yVmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
bWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KaW5kZXggZWQ2Zjc2MzI5MjAzYzA5MGMx
NmY0N2NmNjE2NTZiYmFkMDM0YWMzMC4uN2UxNjY5NjZlMWY4Y2RiZGE2NWExYzE2NGNkNGIyMzlm
ZGY3ZDdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21h
Yy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQpAQCAtNTYsNyAr
NTYsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciB7CiAgICAg
TmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IF9pbnNwZWN0ZWRQYWdlOwogICAgIFJldGFp
blB0cjxXS0luc3BlY3RvcldLV2ViVmlldz4gX3dlYlZpZXc7CiAgICAgV2Vha09iakNQdHI8aWQg
PFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4+IF9kZWxlZ2F0ZTsKLSAgICBfV0tJ
bnNwZWN0b3JDb25maWd1cmF0aW9uICpfY29uZmlndXJhdGlvbjsKKyAgICBSZXRhaW5QdHI8X1dL
SW5zcGVjdG9yQ29uZmlndXJhdGlvbj4gX2NvbmZpZ3VyYXRpb247CiB9CiAKIC0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aENvbmZpZ3VyYXRpb246KF9XS0luc3BlY3RvckNvbmZpZ3VyYXRpb24gKilj
b25maWd1cmF0aW9uIGluc3BlY3RlZFBhZ2U6KE5ha2VkUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5
PilpbnNwZWN0ZWRQYWdlCkBAIC02NCw3ICs2NCw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0
aENvbmZpZ3VyYXRpb246KF9XS0luc3BlY3RvckNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9u
CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAK
LSAgICBfY29uZmlndXJhdGlvbiA9IFtjb25maWd1cmF0aW9uIGNvcHldOworICAgIF9jb25maWd1
cmF0aW9uID0gYWRvcHROUyhbY29uZmlndXJhdGlvbiBjb3B5XSk7CiAKICAgICAvLyBUaGUgKGxv
Y2FsKSBpbnNwZWN0ZWQgcGFnZSBpcyBuaWwgaWYgdGhlIGNvbnRyb2xsZXIgaXMgaG9zdGluZyBh
IFJlbW90ZSBXZWIgSW5zcGVjdG9yIHZpZXcuCiAgICAgX2luc3BlY3RlZFBhZ2UgPSBpbnNwZWN0
ZWRQYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggYzJhNWY1MDk2MDYyNzFmNDMzMTdiYTViZjgyNmIyYWZlYWNlMWQ5Mi4uOWM5ZWQ0
NmE0ZTQ0MDFiNGEzMDgyYTNlYWJkZWI5ZDYwYmYzZDllMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDI5LDcgKzE0MjksNiBAQAog
CQk4NkY5NTM2NTE4RkY1OEY1MDAxREIyRUYgLyogUHJvY2Vzc0Fzc2VydGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZGOTUzNjAxOEZGNEZENDAw
MURCMkVGIC8qIFByb2Nlc3NBc3NlcnRpb24uaCAqLzsgfTsKIAkJOERDMkVGNTMwNDg2QTY5NDAw
OThCMjE2IC8qIEluZm9QbGlzdC5zdHJpbmdzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwODlDMTY2NkZFODQxMTU4QzAyQUFDMDcgLyogSW5mb1BsaXN0
LnN0cmluZ3MgKi87IH07CiAJCTkwOTg1NEVEMTJCQzRFMTgwMDBBRDA4MCAvKiBXZWJNZW1vcnlT
YW1wbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MDU2MjBFOTEyQkMyNDhCMDAwNzk5QjYgLyogV2ViTWVtb3J5U2FtcGxlci5oICovOyB9OwotCQk5
MTk3OTQwMjIzREJDNDkwMDAyNTc4OTIgLyogSW5zcGVjdG9yRGVsZWdhdGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxOTc5NDAwMjNEQkM0OTAwMDI1
Nzg5MiAvKiBJbnNwZWN0b3JEZWxlZ2F0ZS5oICovOyB9OwogCQk5MTk3OTQwNTIzREJDNEJCMDAy
NTc4OTIgLyogSW5zcGVjdG9yQnJvd3NlckFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MTk3OTQwMzIzREJDNEJCMDAyNTc4OTIgLyogSW5zcGVj
dG9yQnJvd3NlckFnZW50LmggKi87IH07CiAJCTkxOTc5NDA4MjNEQkM0Q0IwMDI1Nzg5MiAvKiBX
ZWJQYWdlSW5zcGVjdG9yQWdlbnRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MTk3OTQwNzIzREJDNENBMDAyNTc4OTIgLyogV2ViUGFnZUluc3Bl
Y3RvckFnZW50QmFzZS5oICovOyB9OwogCQk5MTk3OTQwQTIzREJDNEUwMDAyNTc4OTIgLyogQVBJ
SW5zcGVjdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MTk3OTQwOTIzREJDNEUwMDAyNTc4OTIgLyogQVBJSW5zcGVjdG9yQ2xpZW50Lmgg
Ki87IH07CkBAIC00NzU2LDggKzQ3NTUsNiBAQAogCQk5MDU2MjBFNTEyQkMyNDc2MDAwNzk5QjYg
LyogV2ViTWVtb3J5U2FtcGxlci5tYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYk1lbW9yeVNhbXBsZXIubWFjLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOTA1
NjIwRTgxMkJDMjQ4QjAwMDc5OUI2IC8qIFdlYk1lbW9yeVNhbXBsZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTWVtb3J5U2FtcGxlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwNTYyMEU5MTJCQzI0OEIwMDA3OTlCNiAvKiBXZWJNZW1v
cnlTYW1wbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk1lbW9yeVNh
bXBsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTE5NzkzRkYyM0RCQzQ5MDAw
MjU3ODkyIC8qIEluc3BlY3RvckRlbGVnYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gSW5zcGVjdG9yRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTkxOTc5NDAwMjNEQkM0OTAwMDI1Nzg5MiAvKiBJbnNwZWN0b3JEZWxlZ2F0ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JEZWxlZ2F0ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MTk3OTQwMzIzREJDNEJCMDAyNTc4OTIgLyog
SW5zcGVjdG9yQnJvd3NlckFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEluc3BlY3RvckJyb3dzZXJBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MTk3OTQwNDIzREJDNEJCMDAyNTc4OTIgLyogSW5zcGVjdG9yQnJvd3NlckFnZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckJyb3dzZXJBZ2VudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxOTc5NDA3MjNEQkM0Q0EwMDI1Nzg5
MiAvKiBXZWJQYWdlSW5zcGVjdG9yQWdlbnRCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYlBhZ2VJbnNwZWN0b3JBZ2VudEJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTkyNTYsOCArOTI1Myw2IEBACiAJCTkxOTc5M0ZFMjNEQkM0NzQwMDI1Nzg5
MiAvKiBDb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0J
CQkJOTE5Nzk0MDAyM0RCQzQ5MDAwMjU3ODkyIC8qIEluc3BlY3RvckRlbGVnYXRlLmggKi8sCi0J
CQkJOTE5NzkzRkYyM0RCQzQ5MDAwMjU3ODkyIC8qIEluc3BlY3RvckRlbGVnYXRlLm1tICovLAog
CQkJCTk5NkIyQjlDMjVFMjU3RUUwMDcxOTM3OSAvKiBJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0
ZS5oICovLAogCQkJCTk5NkIyQjlCMjVFMjU3RUUwMDcxOTM3OSAvKiBJbnNwZWN0b3JFeHRlbnNp
b25EZWxlZ2F0ZS5tbSAqLywKIAkJCSk7CkBAIC0xMTg1Niw3ICsxMTg1MSw2IEBACiAJCQkJMkRE
NDVBREUxRTVGODk3MjAwNkMzNTVGIC8qIElucHV0Vmlld1VwZGF0ZURlZmVycmVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRTU1MEUxNTIyODM3NTIyMDBEMjg3OTEgLyogSW5zZXJ0VGV4dE9wdGlv
bnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkxOTc5NDA1MjNEQkM0QkIwMDI1Nzg5MiAvKiBJbnNw
ZWN0b3JCcm93c2VyQWdlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTkxOTc5NDAyMjNEQkM0OTAw
MDI1Nzg5MiAvKiBJbnNwZWN0b3JEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2QjJC
OUQyNUUyNTdGRjAwNzE5Mzc5IC8qIEluc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNUUzOTFGRDIxODNDMUY4MDBDOEZCMzEgLyogSW5zcGVjdG9yVGFyZ2V0
UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1QkNFNURGMUM1MDc2NkEwMENERTNGQSAvKiBJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRGVs
ZWdhdGUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVj
dG9yRGVsZWdhdGUubW0KaW5kZXggOWRlYTYzY2Q4NmE3YjdmMTJkOTA4NTliZjQwMmMyMTFiZDIy
NDljZS4uYmE1YmFiYTBkZjg2NDMzNWU2NTEwMWFkNTEwYTU1ZTYzMGJlZTIxMyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckRlbGVn
YXRlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNw
ZWN0b3JEZWxlZ2F0ZS5tbQpAQCAtMjIxLDcgKzIyMSw3IEBAIFRFU1QoV0tJbnNwZWN0b3JEZWxl
Z2F0ZSwgU2hvd1VSTEV4dGVybmFsbHkpCiAgICAgW1t3ZWJWaWV3IF9pbnNwZWN0b3JdIHNob3dd
OwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQXR0YWNoTG9jYWxJbnNwZWN0b3JD
YWxsZWQpOwogCi0gICAgdXJsVG9PcGVuID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczov
L3d3dy53ZWJraXQub3JnLyJdOworICAgIHVybFRvT3BlbiA9IGFkb3B0TlMoW05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJodHRwczovL3d3dy53ZWJraXQub3JnLyJdKTsKIAogICAgIC8vIENoZWNrIHRo
ZSBjYXNlIHdoZXJlIHRoZSBsb2FkIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBuYXZpZ2F0aW9uIGRl
bGVnYXRlLgogICAgIFtbd2ViVmlldyBfaW5zcGVjdG9yXSBfb3BlblVSTEV4dGVybmFsbHlGb3JU
ZXN0aW5nOnVybFRvT3Blbi5nZXQoKSB1c2VGcm9udGVuZEFQSTpOT107Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426835</attachid>
            <date>2021-04-22 12:04:31 -0700</date>
            <delta_ts>2021-04-22 12:48:27 -0700</delta_ts>
            <desc>Patch v2.2.1</desc>
            <filename>bug-223899-20210422120430.patch</filename>
            <type>text/plain</type>
            <size>3408</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NDQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkyYTY0OGZhNjA4YjY1YmE0
ZGQxZDMzZGE2NDM3OGM4ZWNhZjhmZTMuLmRiNDNhN2QyZTg2YzJkMjIyNzEyNzdiNDlkZmUzM2Ri
YjVlMDg4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDQtMjIgIEJKIEJ1cmcg
IDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgdjI6IFJFR1JFU1NJT04ocjI2Njg5MCk6IFtD
b2NvYV0gRml4IEFQSTo6SW5zcGVjdG9yQ2xpZW50IGxlYWsKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzg5OQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzUyNDkyODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAg
ICAgIEFkZHJlc3MgcG9zdC1yZXZpZXcgZmVlZGJhY2suCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0luc3BlY3RvclRlc3RpbmcubW06CisgICAgICAgICgtW19XS0luc3BlY3Rv
ciBfb3BlblVSTEV4dGVybmFsbHlGb3JUZXN0aW5nOnVzZUZyb250ZW5kQVBJOl0pOgorCiAyMDIx
LTA0LTIyICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBbR1RLXSBUdXJuIG9uIGVkaXRhYmxlIDxpbnB1dCB0eXBlPWRhdGU+IGFuZCA8aW5wdXQgdHlw
ZT10aW1lPiBmaWVsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tJbnNwZWN0b3JUZXN0aW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0luc3BlY3RvclRlc3RpbmcubW0KaW5kZXggNjY4YmQ2ZjFkNjc3NThhOTkwN2Ri
ZmRmMjY2NjVmZDY2NTI0NzVlNy4uOTBkOTAwMTI0MjY1NzJlNmE3OWRkOGEzNjZlZTIwMTI0NGJi
YzdmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0lu
c3BlY3RvclRlc3RpbmcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0luc3BlY3RvclRlc3RpbmcubW0KQEAgLTQ5LDExICs0OSwxMSBAQCAtIChXS1dlYlZpZXcg
KilpbnNwZWN0b3JXZWJWaWV3CiAtICh2b2lkKV9vcGVuVVJMRXh0ZXJuYWxseUZvclRlc3Rpbmc6
KE5TVVJMICopdXJsIHVzZUZyb250ZW5kQVBJOihCT09MKXVzZUZyb250ZW5kQVBJCiB7CiAgICAg
aWYgKHVzZUZyb250ZW5kQVBJKQotICAgICAgICBfaW5zcGVjdG9yLT5ldmFsdWF0ZUluRnJvbnRl
bmRGb3JUZXN0aW5nKEphdmFTY3JpcHRTbmlwcGV0VG9PcGVuVVJMRXh0ZXJuYWxseShbdXJsIGNv
cHldKSk7CisgICAgICAgIF9pbnNwZWN0b3ItPmV2YWx1YXRlSW5Gcm9udGVuZEZvclRlc3Rpbmco
SmF2YVNjcmlwdFNuaXBwZXRUb09wZW5VUkxFeHRlcm5hbGx5KHVybCkpOwogICAgIGVsc2Ugewog
ICAgICAgICAvLyBGb3JjZSB0aGUgbmF2aWdhdGlvbiByZXF1ZXN0IHRvIGJlIGhhbmRsZWQgbmF0
dXJhbGx5IHRocm91Z2ggdGhlCiAgICAgICAgIC8vIGludGVybmFsIE5hdmlnYXRpb25EZWxlZ2F0
ZSBvZiBXS0luc3BlY3RvclZpZXdDb250cm9sbGVyLgotICAgICAgICBbc2VsZi5pbnNwZWN0b3JX
ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W3VybCBjb3B5
XV1dOworICAgICAgICBbc2VsZi5pbnNwZWN0b3JXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6dXJsXV07CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTY0ZGUyMTFjZjRhYzMxZTIxMDgw
NTlmODEyNTg3MDVhOGU4ZWIxMC4uOTJhN2M2YmY5NzQzNjRkMDc1Y2E2ODMxZjE0Nzk1MjgyOWEy
N2E0MCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDIxLTA0LTIyICBCSiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgor
CisgICAgICAgIHYyOiBSRUdSRVNTSU9OKHIyNjY4OTApOiBbQ29jb2FdIEZpeCBBUEk6Okluc3Bl
Y3RvckNsaWVudCBsZWFrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjM4OTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1MjQ5MjgyPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICBBZGRyZXNzIHBvc3QtcmV2
aWV3IGZlZWRiYWNrLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9XS0luc3BlY3RvckRlbGVnYXRlLm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMjEtMDQtMjIg
IFNhbSBTbmVkZG9uICA8Z3NuZWRkZXJzQGFwcGxlLmNvbT4KIAogICAgICAgICBFbnN1cmUgYWxs
IG5vbi1sb2NhbCBBdXRvSW5zdGFsbGVkIGxpYnJhcmllcyBzcGVjaWZ5IHZlcnNpb24KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JE
ZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNw
ZWN0b3JEZWxlZ2F0ZS5tbQppbmRleCBiYTViYWJhMGRmODY0MzM1ZTY1MTAxYWQ1MTBhNTVlNjMw
YmVlMjEzLi45ZGVhNjNjZDg2YTdiN2YxMmQ5MDg1OWJmNDAyYzIxMWJkMjI0OWNlIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRGVs
ZWdhdGUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0lu
c3BlY3RvckRlbGVnYXRlLm1tCkBAIC0yMjEsNyArMjIxLDcgQEAgVEVTVChXS0luc3BlY3RvckRl
bGVnYXRlLCBTaG93VVJMRXh0ZXJuYWxseSkKICAgICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gc2hv
d107CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRBdHRhY2hMb2NhbEluc3BlY3Rv
ckNhbGxlZCk7CiAKLSAgICB1cmxUb09wZW4gPSBhZG9wdE5TKFtOU1VSTCBVUkxXaXRoU3RyaW5n
OkAiaHR0cHM6Ly93d3cud2Via2l0Lm9yZy8iXSk7CisgICAgdXJsVG9PcGVuID0gW05TVVJMIFVS
TFdpdGhTdHJpbmc6QCJodHRwczovL3d3dy53ZWJraXQub3JnLyJdOwogCiAgICAgLy8gQ2hlY2sg
dGhlIGNhc2Ugd2hlcmUgdGhlIGxvYWQgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIG5hdmlnYXRpb24g
ZGVsZWdhdGUuCiAgICAgW1t3ZWJWaWV3IF9pbnNwZWN0b3JdIF9vcGVuVVJMRXh0ZXJuYWxseUZv
clRlc3Rpbmc6dXJsVG9PcGVuLmdldCgpIHVzZUZyb250ZW5kQVBJOk5PXTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>