<?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>228172</bug_id>
          
          <creation_ts>2021-07-21 16:54:51 -0700</creation_ts>
          <short_desc>Avoid Quick Note overlay when scrolling to show a highlight</short_desc>
          <delta_ts>2021-07-22 10:08: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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>mifenton</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1778606</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-07-21 16:54:51 -0700</bug_when>
    <thetext>Avoid Quick Note overlay when scrolling to show a highlight</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778613</commentid>
    <comment_count>1</comment_count>
      <attachid>433977</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-07-21 17:18:35 -0700</bug_when>
    <thetext>Created attachment 433977
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778615</commentid>
    <comment_count>2</comment_count>
      <attachid>433978</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-07-21 17:26:59 -0700</bug_when>
    <thetext>Created attachment 433978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778616</commentid>
    <comment_count>3</comment_count>
      <attachid>433979</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-07-21 17:32:34 -0700</bug_when>
    <thetext>Created attachment 433979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778618</commentid>
    <comment_count>4</comment_count>
      <attachid>433977</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-07-21 17:37:44 -0700</bug_when>
    <thetext>Comment on attachment 433977
Patch

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

&gt; Source/WebCore/Modules/highlight/AppHighlightStorage.cpp:274
&gt; +        TemporarySelectionChange selectionChange(*strongDocument, { range.value() }, { TemporarySelectionOption::DelegateMainFrameScroll, TemporarySelectionOption::SmoothScroll, TemporarySelectionOption::ScrollToFullSelection });

Wenson is going to leave a note about this name, and I think we should fix all of them in a followup.

&gt; Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:1156
&gt; +- (float)adjustScrollRect:(WebCore::FloatRect)targetRect

This needs an underscore, and probably more words (because this is on WKWebView which is API)

&gt; Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:1158
&gt; +    WebCore::FloatRect overlayRect = [self convertRect:_page-&gt;appHighlightsNoteOverlayRect() fromCoordinateSpace:[_scrollView window].screen.coordinateSpace];

Probably just self.window.screen.coordinateSpace, no need to involve the poor innocent scrollview.

&gt; Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:1159
&gt; +    

What is the overlay rect if the PIP is off screen? Should we just bail if it&apos;s not shown?

&gt; Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:1160
&gt; +    overlayRect.expand(5, 5);

Magic numbers should be factored out.

&gt; Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:1165
&gt; +    float topGap = overlayRect.y() - [self bounds].origin.y;

More dots, as always. (bounds and center)

&gt; Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:1221
&gt; +    float additionalOffset =  [self adjustScrollRect:convertedStartRect];

weird extraneous space

&gt; Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:606
&gt; +CGRect WebPageProxy::appHighlightsNoteOverlayRect()

You could totally just get rid of the word &quot;Note&quot; here. It is the overlay for app highlights, regardless of the content</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778619</commentid>
    <comment_count>5</comment_count>
      <attachid>433979</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-07-21 17:41:09 -0700</bug_when>
    <thetext>Comment on attachment 433979
Patch

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

&gt; Source/WebCore/editing/Editor.h:126
&gt; +    ScrollToFullSelection = 1 &lt;&lt; 6,

Perhaps `RevealSelectionBounds` instead of `ScrollToFullSelection`?

&gt; Source/WebCore/editing/FrameSelection.h:128
&gt; +        ScrollToFullSelection = 1 &lt;&lt; 11

Ditto - perhaps `RevealSelectionBounds` instead of `ScrollToFullSelection`?

&gt; Source/WebCore/editing/FrameSelection.h:267
&gt; +    void updateAndRevealSelection(const AXTextStateChangeIntent&amp;, ScrollBehavior = ScrollBehavior::Instant, RevealExtentOption = RevealExtentOption::RevealExtent);

This isn&apos;t something we should try and tackle in this same patch, but we should consider renaming `DoNotRevealExtent` to something like `RevealSelectionBounds` to make it clear that one option is for revealing to the extent, while the other option is for revealing the entire bounds of the selection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778628</commentid>
    <comment_count>6</comment_count>
      <attachid>433977</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-07-21 18:45:47 -0700</bug_when>
    <thetext>Comment on attachment 433977
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:1159
&gt;&gt; +    
&gt; 
&gt; What is the overlay rect if the PIP is off screen? Should we just bail if it&apos;s not shown?

From code inspection, it seems like it&apos;ll be `CGRectNull`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778629</commentid>
    <comment_count>7</comment_count>
      <attachid>433982</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-07-21 19:16:11 -0700</bug_when>
    <thetext>Created attachment 433982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778630</commentid>
    <comment_count>8</comment_count>
      <attachid>433982</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-07-21 19:19:34 -0700</bug_when>
    <thetext>Comment on attachment 433982
Patch

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

&gt; Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:1185
&gt; +#endif
&gt; +    return 0;

In the ENABLE(APP_HIGHLIGHTS) case you end up having 2 returns in a row, which is pretty weird</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778649</commentid>
    <comment_count>9</comment_count>
      <attachid>433992</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-07-21 22:42:59 -0700</bug_when>
    <thetext>Created attachment 433992
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778650</commentid>
    <comment_count>10</comment_count>
      <attachid>433992</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-07-21 23:01:40 -0700</bug_when>
    <thetext>Comment on attachment 433992
Patch

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

stylebot complaint is /mystifying/

&gt; Source/WebCore/ChangeLog:3
&gt; +        Avoid Quick Note overlay when scrolling to show a highlight

This seems straightforwardly API-testable (swizzle the Synapse observer, restore+scroll, see where you end up), you should write some tests.

&gt; Source/WebCore/editing/FrameSelection.cpp:2334
&gt; +    auto visibleSelectionRect = IntRect();

This is a funny way to write `IntRect visibleSelectionRect;`

&gt; Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:1173
&gt; +    float midScreen = [self center].y;

dots!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778651</commentid>
    <comment_count>11</comment_count>
      <attachid>433992</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-07-21 23:02:40 -0700</bug_when>
    <thetext>Comment on attachment 433992
Patch

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

&gt; Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:1162
&gt; +    if (overlayRect == CGRectNull)

CGRectIsNull</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778701</commentid>
    <comment_count>12</comment_count>
      <attachid>434010</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-07-22 08:04:30 -0700</bug_when>
    <thetext>Created attachment 434010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778702</commentid>
    <comment_count>13</comment_count>
      <attachid>434010</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-07-22 08:07:13 -0700</bug_when>
    <thetext>Comment on attachment 434010
Patch

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

&gt; Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:1162
&gt; +    if (CGRectIsNull(CGRectNull))

You should probably use the `overlayRect` here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778708</commentid>
    <comment_count>14</comment_count>
      <attachid>434010</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-07-22 09:05:48 -0700</bug_when>
    <thetext>Comment on attachment 434010
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:1162
&gt;&gt; +    if (CGRectIsNull(CGRectNull))
&gt; 
&gt; You should probably use the `overlayRect` here.

Thanks for catching that, this is what I get for trying fix things really quick before a meeting...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778709</commentid>
    <comment_count>15</comment_count>
      <attachid>434012</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-07-22 09:06:02 -0700</bug_when>
    <thetext>Created attachment 434012
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778716</commentid>
    <comment_count>16</comment_count>
      <attachid>434012</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-07-22 09:21:04 -0700</bug_when>
    <thetext>Comment on attachment 434012
Patch

r=me+thorton</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778717</commentid>
    <comment_count>17</comment_count>
      <attachid>434013</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-07-22 09:24:29 -0700</bug_when>
    <thetext>Created attachment 434013
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778733</commentid>
    <comment_count>18</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-22 10:07:28 -0700</bug_when>
    <thetext>Committed r280178 (239872@main): &lt;https://commits.webkit.org/239872@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 434013.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778734</commentid>
    <comment_count>19</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-22 10:08:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/80968199&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433977</attachid>
            <date>2021-07-21 17:18:35 -0700</date>
            <delta_ts>2021-07-21 18:43:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228172-20210721171834.patch</filename>
            <type>text/plain</type>
            <size>14245</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5OTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk2MTZhMDgyMWExZDVj
ZDZmYmRlZjNlYjg3NGNiYjZmODk1NmMyOC4uZmQzNDJhOGZhNzNiZjNmN2U1MDUyYWYwNTAzMjM0
NmEwOGI2MjNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA3LTIxICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgUXVp
Y2sgTm90ZSBvdmVybGF5IHdoZW4gc2Nyb2xsaW5nIHRvIHNob3cgYSBoaWdobGlnaHQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODE3MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gc2Nyb2xsaW5n
IHRvIHNob3cgdGhlIHNlbGVjdGVkIGhpZ2hsaWdodCBhZnRlciBjbGlja2luZyBvbiBvbmUgaW4g
dGhlIFF1aWNrTm90ZSBvdmVybGF5LAorICAgICAgICBtYWtlIHN1cmUgdG8gYXZvaWQgdGhlIFF1
aWNrIE5vdGUgb3ZlcmxheSwgc28gdGhhdCB0aGUgdXNlciBjYW4gYWN0dWFsbHkgc2VlIHRoZSBo
aWdobGlnaHQuIAorICAgICAgICBUaGlzIHJlcXVpcmVkIGNhbGN1bGF0aW5nIG1vcmUgaW5mb3Jt
YXRpb24gYWJvdXQgdGhlIHNlbGVjdGlvbiByZWN0IGZvciBpT1MsIGFuZCBhbHNvIHBpcGluZyB0
aHJvdWdoCisgICAgICAgIGluZm9ybWF0aW9uIHRvIGhhdmUgdGhlIHNlbGVjdGlvbiByZWN0IGJl
IHRoZSBlbnRpcmUgcmVjdCwgcmF0aGVyIHRoYXQganVzdCB0aGUgY2FyZXQgYW5kIHRoZSBlbmQg
b2Ygc2VsZWN0aW9uLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0
U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGlnaHRTdG9yYWdlOjphdHRl
bXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2U6OnNldFNl
bGVjdGlvbik6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpz
ZXRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFu
ZFJldmVhbFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2Vs
ZWN0aW9uQm91bmRzIGNvbnN0KToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6
CisKIDIwMjEtMDctMTYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
IAogICAgICAgICBNYWtlIHRoZSBsYWNrIG9mIGFuIEFOR0xFIGR5bGliIHVuY29uZGl0aW9uYWxs
eSBsb2cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggYzViYWVjZjhkM2VjZTk3ODA2MzhkOWRiZmI2NzY1ZGFmMDExNmUw
OC4uMTJhN2FmMWFkOGY4Y2EzZTMyMjY5OWQ0N2M1MDY4NzE4NzIxYjI2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMyBAQAorMjAyMS0wNy0yMSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJA
YXBwbGUuY29tPgorCisgICAgICAgIEF2b2lkIFF1aWNrIE5vdGUgb3ZlcmxheSB3aGVuIHNjcm9s
bGluZyB0byBzaG93IGEgaGlnaGxpZ2h0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjgxNzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaGVuIHNjcm9sbGluZyB0byBzaG93IHRoZSBzZWxlY3RlZCBoaWdo
bGlnaHQgYWZ0ZXIgY2xpY2tpbmcgb24gb25lIGluIHRoZSBRdWlja05vdGUgb3ZlcmxheSwKKyAg
ICAgICAgbWFrZSBzdXJlIHRvIGF2b2lkIHRoZSBRdWljayBOb3RlIG92ZXJsYXksIHNvIHRoYXQg
dGhlIHVzZXIgY2FuIGFjdHVhbGx5IHNlZSB0aGUgaGlnaGxpZ2h0LiAKKyAgICAgICAgVGhpcyBy
ZXF1aXJlZCBjYWxjdWxhdGluZyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzZWxlY3Rpb24g
cmVjdCBmb3IgaU9TLCBhbmQgYWxzbyBwaXBpbmcgdGhyb3VnaAorICAgICAgICBpbmZvcm1hdGlv
biB0byBoYXZlIHRoZSBzZWxlY3Rpb24gcmVjdCBiZSB0aGUgZW50aXJlIHJlY3QsIHJhdGhlciB0
aGF0IGp1c3QgdGhlIGNhcmV0IGFuZCB0aGUgZW5kIG9mIHNlbGVjdGlvbi4KKworICAgICAgICAq
IFBsYXRmb3JtL3NwaS9Db2NvYS9TeW5hcHNlU1BJLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgYWRqdXN0U2Nyb2xs
UmVjdDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb1JlY3Q6b3JpZ2luOm1pbmlt
dW1TY3JvbGxEaXN0YW5jZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVBy
b3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YXBwSGlnaGxpZ2h0
c05vdGVPdmVybGF5UmVjdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
CiAyMDIxLTA3LTE2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkb3B0IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQgZm9yIGJhY2tpbmcgc3RvcmUg
KyBkaXNwbGF5IGxpc3QgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5k
ZXggNjZlZWUyNzNlODczZjgyZDgzODRmMzA3YmYzOGEwZTgxMzY5MTZlMi4uNTc2MGE4ODZmOWU4
ZjkwZDg2N2I0YzhhNGNkMzA5OWUwNWUxMWNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTI3MCw4
ICsyNzAsOCBAQCBib29sIEFwcEhpZ2hsaWdodFN0b3JhZ2U6OmF0dGVtcHRUb1Jlc3RvcmVIaWdo
bGlnaHRBbmRTY3JvbGwoQXBwSGlnaGxpZ2h0UmFuZ2VEYQogICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOwogICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKICAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOwotICAgICAg
ICAKLSAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6RGVsZWdhdGVNYWluRnJhbWVTY3JvbGwsIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6U21v
b3RoU2Nyb2xsIH0pOworCisgICAgICAgIFRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZSBzZWxlY3Rp
b25DaGFuZ2UoKnN0cm9uZ0RvY3VtZW50LCB7IHJhbmdlLnZhbHVlKCkgfSwgeyBUZW1wb3JhcnlT
ZWxlY3Rpb25PcHRpb246OkRlbGVnYXRlTWFpbkZyYW1lU2Nyb2xsLCBUZW1wb3JhcnlTZWxlY3Rp
b25PcHRpb246OlNtb290aFNjcm9sbCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpTY3JvbGxU
b0Z1bGxTZWxlY3Rpb24gfSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKaW5kZXggYzNiMTkyNWU2N2NkM2M3YWIzMzI2NTE3NWUyZTQ5OGYxZmQ1
ZWU1ZC4uZTA2OGQ2ZTI3ZGNhZWEyYzIxN2YwMjc0ZDE0YzQ0OWZiZDEyMDk5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjY5LDYgKzI2OSw4IEBAIHZvaWQgVGVtcG9yYXJ5U2Vs
ZWN0aW9uQ2hhbmdlOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0
aW9uKQogICAgICAgICBvcHRpb25zLmFkZChGcmFtZVNlbGVjdGlvbjo6RGVsZWdhdGVNYWluRnJh
bWVTY3JvbGwpOwogICAgIGlmIChtX29wdGlvbnMgJiBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246
OlNtb290aFNjcm9sbCkKICAgICAgICAgb3B0aW9ucy5hZGQoRnJhbWVTZWxlY3Rpb246OlNtb290
aFNjcm9sbCk7CisgICAgaWYgKG1fb3B0aW9ucyAmIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6
U2Nyb2xsVG9GdWxsU2VsZWN0aW9uKQorICAgICAgICBvcHRpb25zLmFkZChGcmFtZVNlbGVjdGlv
bjo6U2Nyb2xsVG9GdWxsU2VsZWN0aW9uKTsKICAgICBtX2RvY3VtZW50LT5zZWxlY3Rpb24oKS5z
ZXRTZWxlY3Rpb24oc2VsZWN0aW9uLCBvcHRpb25zKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmgKaW5kZXggZmQ1OWJmZmFlNzJkNWZhZjkyNDcyM2VmNDc5YjI4NTYwNjAzODk1NC4uZDRkMTZl
MDFjOGUzYjkzMGMxNTI3MzA2NTg2OTM4MGY0YzAxNjM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oCkBAIC0xMjIsNiArMTIyLDggQEAgZW51bSBjbGFzcyBUZW1wb3JhcnlTZWxlY3Rpb25PcHRp
b24gOiB1aW50OF90IHsKICAgICBTbW9vdGhTY3JvbGwgPSAxIDw8IDQsCiAgICAgCiAgICAgRGVs
ZWdhdGVNYWluRnJhbWVTY3JvbGwgPSAxIDw8IDUsCisgICAgCisgICAgU2Nyb2xsVG9GdWxsU2Vs
ZWN0aW9uID0gMSA8PCA2LAogfTsKIAogY2xhc3MgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggMWNhM2JmYmM5
MjFjNDU3OTY4NGIxMDM1MDJlNGM1MzMyYzI5MTEyNy4uZDBlM2MwMzZkNmMyNDM5YWYxODY3Njg4
MDM1OTYzYWU1MmI2MmY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlv
bi5jcHAKQEAgLTY2LDYgKzY2LDcgQEAKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNs
dWRlICJSZW5kZXJlZFBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0RGlzYWxsb3dlZFNjb3Bl
LmgiCisjaW5jbHVkZSAiU2VsZWN0aW9uR2VvbWV0cnkuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5o
IgogI2luY2x1ZGUgIlNpbXBsZVJhbmdlLmgiCiAjaW5jbHVkZSAiU3BhdGlhbE5hdmlnYXRpb24u
aCIKQEAgLTQ1MSw3ICs0NTIsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24o
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBPcHRpb25TZXQ8UwogICAgIGlmIChm
cmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5sYXlvdXRDb250ZXh0KCkuaXNMYXlvdXRQZW5kaW5nKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQs
IG9wdGlvbnMuY29udGFpbnMoU21vb3RoU2Nyb2xsKSA/IFNjcm9sbEJlaGF2aW9yOjpTbW9vdGgg
OiBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudCk7CisgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9u
KGludGVudCwgb3B0aW9ucy5jb250YWlucyhTbW9vdGhTY3JvbGwpID8gU2Nyb2xsQmVoYXZpb3I6
OlNtb290aCA6IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBvcHRpb25zLmNvbnRhaW5zKFNjcm9s
bFRvRnVsbFNlbGVjdGlvbikgPyBSZXZlYWxFeHRlbnRPcHRpb246OkRvTm90UmV2ZWFsRXh0ZW50
IDogUmV2ZWFsRXh0ZW50T3B0aW9uOjpSZXZlYWxFeHRlbnQpOwogCiAgICAgaWYgKG9wdGlvbnMg
JiBJc1VzZXJUcmlnZ2VyZWQpIHsKICAgICAgICAgaWYgKGF1dG8qIGNsaWVudCA9IHByb3RlY3Rl
ZERvY3VtZW50LT5lZGl0b3IoKS5jbGllbnQoKSkKQEAgLTQ3OCw3ICs0NzksNyBAQCB2b2lkIEZy
YW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZShSZXZlYWxTZWxlY3Rpb25BZnRl
clVwZGF0ZSByZXZlYWxNbwogICAgICAgICB2aWV3LT5zZWxlY3Rpb24oKS5jbGVhcigpOwogfQog
Ci12b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCwgU2Nyb2xsQmVoYXZpb3Igc2Nyb2xsQmVoYXZp
b3IpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3Qg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCwgU2Nyb2xsQmVoYXZpb3Igc2Nyb2xsQmVo
YXZpb3IsIFJldmVhbEV4dGVudE9wdGlvbiByZXZlYWxFeHRlbnQpCiB7CiAgICAgaWYgKCFtX3Bl
bmRpbmdTZWxlY3Rpb25VcGRhdGUpCiAgICAgICAgIHJldHVybjsKQEAgLTQ5NSw3ICs0OTYsNyBA
QCB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBhbGln
bm1lbnQgPSBtX2Fsd2F5c0FsaWduQ3Vyc29yT25TY3JvbGxXaGVuUmV2ZWFsaW5nU2VsZWN0aW9u
ID8gU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvcEFsd2F5cyA6IFNjcm9sbEFsaWdubWVudDo6YWxp
Z25Ub0VkZ2VJZk5lZWRlZDsKIAotICAgICAgICByZXZlYWxTZWxlY3Rpb24obV9zZWxlY3Rpb25S
ZXZlYWxNb2RlLCBhbGlnbm1lbnQsIFJldmVhbEV4dGVudCwgc2Nyb2xsQmVoYXZpb3IpOworICAg
ICAgICByZXZlYWxTZWxlY3Rpb24obV9zZWxlY3Rpb25SZXZlYWxNb2RlLCBhbGlnbm1lbnQsIHJl
dmVhbEV4dGVudCwgc2Nyb2xsQmVoYXZpb3IpOwogICAgIH0KIAogICAgIG5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoaW50ZW50KTsKQEAgLTIzMjUsMTQgKzIzMjYsMjcgQEAg
RmxvYXRSZWN0IEZyYW1lU2VsZWN0aW9uOjpzZWxlY3Rpb25Cb3VuZHMoQ2xpcFRvVmlzaWJsZUNv
bnRlbnQgY2xpcFRvVmlzaWJsZUNvbnQKICAgICBpZiAoIXJlbmRlclZpZXcpCiAgICAgICAgIHJl
dHVybiBMYXlvdXRSZWN0KCk7CiAKKyAgICBpZiAoIW1fc2VsZWN0aW9uLnJhbmdlKCkpCisgICAg
ICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CisgICAgCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICBhdXRvIHNlbGVjdGlvbkdlb21ldHJpZXMgPSBSZW5kZXJPYmplY3Q6OmNvbGxlY3RTZWxl
Y3Rpb25HZW9tZXRyaWVzKG1fc2VsZWN0aW9uLnJhbmdlKCkudmFsdWUoKSk7CisgICAgYXV0byB2
aXNpYmxlU2VsZWN0aW9uUmVjdCA9IEludFJlY3QoKTsKKyAgICBmb3IgKGF1dG8gZ2VvbWV0cnkg
OiBzZWxlY3Rpb25HZW9tZXRyaWVzKQorICAgICAgICB2aXNpYmxlU2VsZWN0aW9uUmVjdC51bml0
ZShnZW9tZXRyeS5yZWN0KCkpOworICAgIAorICAgIGlmIChjbGlwVG9WaXNpYmxlQ29udGVudCA9
PSBDbGlwVG9WaXNpYmxlQ29udGVudDo6Tm8pCisgICAgICAgIHJldHVybiB2aXNpYmxlU2VsZWN0
aW9uUmVjdDsKKyNlbHNlCiAgICAgYXV0byYgc2VsZWN0aW9uID0gcmVuZGVyVmlldy0+c2VsZWN0
aW9uKCk7CisgICAgYXV0byB2aXNpYmxlU2VsZWN0aW9uUmVjdCA9IHNlbGVjdGlvbi5ib3VuZHND
bGlwcGVkVG9WaXNpYmxlQ29udGVudCgpOworICAgIAorICAgIGlmIChjbGlwVG9WaXNpYmxlQ29u
dGVudCA9PSBDbGlwVG9WaXNpYmxlQ29udGVudDo6Tm8pCisgICAgICAgIHJldHVybiBzZWxlY3Rp
b24uYm91bmRzKCk7CisjZW5kaWYKKyAgICAKKyAgICByZXR1cm4gaW50ZXJzZWN0aW9uKHZpc2li
bGVTZWxlY3Rpb25SZWN0LCByZW5kZXJWaWV3LT5mcmFtZVZpZXcoKS52aXNpYmxlQ29udGVudFJl
Y3QoU2Nyb2xsYWJsZUFyZWE6OkxlZ2FjeUlPU0RvY3VtZW50VmlzaWJsZVJlY3QpKTsKIAotICAg
IGlmIChjbGlwVG9WaXNpYmxlQ29udGVudCA9PSBDbGlwVG9WaXNpYmxlQ29udGVudDo6WWVzKSB7
Ci0gICAgICAgIGF1dG8gc2VsZWN0aW9uUmVjdCA9IHNlbGVjdGlvbi5ib3VuZHNDbGlwcGVkVG9W
aXNpYmxlQ29udGVudCgpOwotICAgICAgICByZXR1cm4gaW50ZXJzZWN0aW9uKHNlbGVjdGlvblJl
Y3QsIHJlbmRlclZpZXctPmZyYW1lVmlldygpLnZpc2libGVDb250ZW50UmVjdChTY3JvbGxhYmxl
QXJlYTo6TGVnYWN5SU9TRG9jdW1lbnRWaXNpYmxlUmVjdCkpOwotICAgIH0KLQotICAgIHJldHVy
biBzZWxlY3Rpb24uYm91bmRzKCk7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246OmdldENsaXBw
ZWRWaXNpYmxlVGV4dFJlY3RhbmdsZXMoVmVjdG9yPEZsb2F0UmVjdD4mIHJlY3RhbmdsZXMsIFRl
eHRSZWN0YW5nbGVIZWlnaHQgdGV4dFJlY3RIZWlnaHQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggN2UxZDg5NDlkMDcxNzk1MDEzNzI5NzU5M2Q5MTk5
ZjQ3YmU0OTUyZS4uODRiYzQ2ZDU2OWJiZjJlZDk1NDhiYTk3NDkwNDljODE0NDI0MDk4YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMTI0LDcgKzEyNCw4IEBA
IHB1YmxpYzoKICAgICAgICAgUmV2ZWFsU2VsZWN0aW9uID0gMSA8PCA3LAogICAgICAgICBSZXZl
YWxTZWxlY3Rpb25VcFRvTWFpbkZyYW1lID0gMSA8PCA4LAogICAgICAgICBTbW9vdGhTY3JvbGwg
PSAxIDw8IDksCi0gICAgICAgIERlbGVnYXRlTWFpbkZyYW1lU2Nyb2xsID0gMSA8PCAxMAorICAg
ICAgICBEZWxlZ2F0ZU1haW5GcmFtZVNjcm9sbCA9IDEgPDwgMTAsCisgICAgICAgIFNjcm9sbFRv
RnVsbFNlbGVjdGlvbiA9IDEgPDwgMTEKICAgICB9OwogICAgIHN0YXRpYyBjb25zdGV4cHIgT3B0
aW9uU2V0PFNldFNlbGVjdGlvbk9wdGlvbj4gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoRVVz
ZXJUcmlnZ2VyZWQgPSBOb3RVc2VyVHJpZ2dlcmVkKTsKIApAQCAtMjYzLDcgKzI2NCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHVwZGF0ZUZyb21Bc3NvY2lhdGVkTGl2ZVJhbmdlKCk7CiAKIHByaXZh
dGU6Ci0gICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQmLCBTY3JvbGxCZWhhdmlvciA9IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50KTsK
KyAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihjb25zdCBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCYsIFNjcm9sbEJlaGF2aW9yID0gU2Nyb2xsQmVoYXZpb3I6Okluc3RhbnQsIFJldmVh
bEV4dGVudE9wdGlvbiA9IFJldmVhbEV4dGVudE9wdGlvbjo6UmV2ZWFsRXh0ZW50KTsKICAgICB2
b2lkIHVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIAogICAgIGJvb2wgc2V0U2Vs
ZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwg
T3B0aW9uU2V0PFNldFNlbGVjdGlvbk9wdGlvbj4sIEN1cnNvckFsaWduT25TY3JvbGwsIFRleHRH
cmFudWxhcml0eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2Nv
YS9TeW5hcHNlU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9TeW5hcHNl
U1BJLmgKaW5kZXggODA5MjhlMDU0NWIyYWI4ZmY0YTcxY2RmMTdmMjU1OWJjN2MxNWE2OS4uYzcw
MzkwMTJkYTZiYzhlMjU0NGE3OWJlYTczNzYwNTQ3NmExYTcxMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvU3luYXBzZVNQSS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vc3BpL0NvY29hL1N5bmFwc2VTUEkuaApAQCAtMzcsNiArMzcsOCBAQCB0eXBl
ZGVmIHZvaWQoXlNZTm90ZXNBY3RpdmF0aW9uT2JzZXJ2ZXJIYW5kbGVyKShCT09MIGlzVmlzaWJs
ZSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzVmlzaWJsZSkg
Qk9PTCB2aXNpYmxlOwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUmVjdCB2
aXNpYmxlRnJhbWU7CisKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEhhbmRsZXI6KG51bGxhYmxl
IFNZTm90ZXNBY3RpdmF0aW9uT2JzZXJ2ZXJIYW5kbGVyKWhhbmRsZXI7CiAKIEBlbmQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KaW5kZXggNDFk
ZTdiOTAyMzIxY2ZkZDA1OGYzMDQ2Y2NmZjQyNzAxMTlmMzgwZC4uY2YzYjVmZTRmMjFjNGFhOTA4
YzU1YTUyMmY1Mjg5YzBlMWNhNTczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KQEAgLTExNTMsNiArMTE1MywzMiBAQCAtICh2b2lkKV9z
Y3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQ
b3NpdGlvbiBzY3JvbAogICAgIH0KIH0KIAorLSAoZmxvYXQpYWRqdXN0U2Nyb2xsUmVjdDooV2Vi
Q29yZTo6RmxvYXRSZWN0KXRhcmdldFJlY3QKK3sKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgb3Zl
cmxheVJlY3QgPSBbc2VsZiBjb252ZXJ0UmVjdDpfcGFnZS0+YXBwSGlnaGxpZ2h0c05vdGVPdmVy
bGF5UmVjdCgpIGZyb21Db29yZGluYXRlU3BhY2U6W19zY3JvbGxWaWV3IHdpbmRvd10uc2NyZWVu
LmNvb3JkaW5hdGVTcGFjZV07CisgICAgCisgICAgb3ZlcmxheVJlY3QuZXhwYW5kKDUsIDUpOwor
ICAgIAorICAgIGlmICghdGFyZ2V0UmVjdC5pbnRlcnNlY3RzKG92ZXJsYXlSZWN0KSkKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgCisgICAgZmxvYXQgdG9wR2FwID0gb3ZlcmxheVJlY3QueSgpIC0g
W3NlbGYgYm91bmRzXS5vcmlnaW4ueTsKKyAgICBmbG9hdCBib3R0b21HYXAgPSAoW3NlbGYgYm91
bmRzXS5zaXplLmhlaWdodCArIFtzZWxmIGJvdW5kc10ub3JpZ2luLnkpIC0gb3ZlcmxheVJlY3Qu
bWF4WSgpOworICAgIAorICAgIGZsb2F0IG1pZFNjcmVlbiA9IFtzZWxmIGNlbnRlcl0ueTsKKwor
ICAgIGlmICh0b3BHYXAgPiBib3R0b21HYXApIHsKKyAgICAgICAgYXV0byBtaWRHYXAgPSB0b3BH
YXAgLyAyICsgW3NlbGYgYm91bmRzXS5vcmlnaW4ueTsKKyAgICAgICAgYXV0byBkaWZmID0gbWlk
U2NyZWVuIC0gbWlkR2FwOworICAgICAgICByZXR1cm4gZGlmZjsKKyAgICB9CisgICAgCisgICAg
YXV0byBtaWRHYXAgPSBib3R0b21HYXAgLyAyICsgW3NlbGYgYm91bmRzXS5vcmlnaW4ueTsKKyAg
ICBhdXRvIGRpZmYgPSBtaWRHYXAgLSBtaWRTY3JlZW47CisgICAgcmV0dXJuIGRpZmY7CisgICAg
Cit9CisKIC0gKEJPT0wpX3Njcm9sbFRvUmVjdDooV2ViQ29yZTo6RmxvYXRSZWN0KXRhcmdldFJl
Y3Qgb3JpZ2luOihXZWJDb3JlOjpGbG9hdFBvaW50KW9yaWdpbiBtaW5pbXVtU2Nyb2xsRGlzdGFu
Y2U6KGZsb2F0KW1pbmltdW1TY3JvbGxEaXN0YW5jZQogewogICAgIGlmICghW19zY3JvbGxWaWV3
IGlzU2Nyb2xsRW5hYmxlZF0pCkBAIC0xMTg3LDYgKzEyMTMsMTUgQEAgLSAoQk9PTClfc2Nyb2xs
VG9SZWN0OihXZWJDb3JlOjpGbG9hdFJlY3QpdGFyZ2V0UmVjdCBvcmlnaW46KFdlYkNvcmU6OkZs
b2F0UG9pbnQKICAgICBzY3JvbGxWaWV3T2Zmc2V0RGVsdGEuc2NhbGUoY29udGVudFpvb21TY2Fs
ZShzZWxmKSk7CiAKICAgICBmbG9hdCBzY3JvbGxEaXN0YW5jZSA9IHNjcm9sbFZpZXdPZmZzZXRE
ZWx0YS5kaWFnb25hbExlbmd0aCgpOworICAgIAorICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBzdGFy
dFJlY3QgPSB0YXJnZXRSZWN0OworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBjb252ZXJ0ZWRTdGFy
dFJlY3QgPSBbc2VsZiBjb252ZXJ0UmVjdDpzdGFydFJlY3QgZnJvbVZpZXc6c2VsZi5fY3VycmVu
dENvbnRlbnRWaWV3XTsKKyAgICBjb252ZXJ0ZWRTdGFydFJlY3QubW92ZSgtc2Nyb2xsVmlld09m
ZnNldERlbHRhKTsKKworICAgIGZsb2F0IGFkZGl0aW9uYWxPZmZzZXQgPSAgW3NlbGYgYWRqdXN0
U2Nyb2xsUmVjdDpjb252ZXJ0ZWRTdGFydFJlY3RdOworCisgICAgc2Nyb2xsVmlld09mZnNldERl
bHRhICs9IFdlYkNvcmU6OkZsb2F0U2l6ZSgwLCBhZGRpdGlvbmFsT2Zmc2V0KTsKKyAgICAKICAg
ICBpZiAoc2Nyb2xsRGlzdGFuY2UgPCBtaW5pbXVtU2Nyb2xsRGlzdGFuY2UpCiAgICAgICAgIHJl
dHVybiBOTzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UGFnZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdl
UHJveHlDb2NvYS5tbQppbmRleCA2ZDVmZWIzNWMzNWVjMDc3MzYwNjI0ZWQyMGU1OWJiNWU3NGYx
MjJjLi45ZjY1M2YyNmI0ZTgxYjgyZjkxMWVhYzFlNDZmZTRlOTQ3NTA3NDdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAt
NjAzLDYgKzYwMywxMyBAQCBib29sIFdlYlBhZ2VQcm94eTo6YXBwSGlnaGxpZ2h0c1Zpc2liaWxp
dHkoKQogICAgIHJldHVybiBbbV9hcHBIaWdobGlnaHRzT2JzZXJ2ZXIgaXNWaXNpYmxlXTsKIH0K
IAorQ0dSZWN0IFdlYlBhZ2VQcm94eTo6YXBwSGlnaGxpZ2h0c05vdGVPdmVybGF5UmVjdCgpCit7
CisgICAgaWYgKCFtX2FwcEhpZ2hsaWdodHNPYnNlcnZlcikKKyAgICAgICAgc2V0VXBIaWdobGln
aHRzT2JzZXJ2ZXIoKTsKKyAgICByZXR1cm4gW21fYXBwSGlnaGxpZ2h0c09ic2VydmVyIHZpc2li
bGVGcmFtZV07Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRVcEhpZ2hsaWdodHNPYnNlcnZl
cigpCiB7CiAgICAgaWYgKG1fYXBwSGlnaGxpZ2h0c09ic2VydmVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBhNjgzYjI3MWZlZDExOTQwNTY3NDgzOGQyN2IwODUx
OTBkMjYyNTg0Li5iYTMwN2JjN2Q2MDMzNDAwZDcyOWU1ZmM3NjE3NTY3YjFiYTRmOTc0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTkxMSw2ICsxOTExLDcgQEAg
cHVibGljOgogICAgIHZvaWQgcmVzdG9yZUFwcEhpZ2hsaWdodHNBbmRTY3JvbGxUb0luZGV4KGNv
bnN0IFZlY3RvcjxSZWY8V2ViS2l0OjpTaGFyZWRNZW1vcnk+PiYgaGlnaGxpZ2h0cywgY29uc3Qg
c3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gaW5kZXgpOwogICAgIHZvaWQgc2V0QXBwSGlnaGxpZ2h0
c1Zpc2liaWxpdHkoY29uc3QgV2ViQ29yZTo6SGlnaGxpZ2h0VmlzaWJpbGl0eSk7CiAgICAgYm9v
bCBhcHBIaWdobGlnaHRzVmlzaWJpbGl0eSgpOworICAgIENHUmVjdCBhcHBIaWdobGlnaHRzTm90
ZU92ZXJsYXlSZWN0KCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCg==
</data>
<flag name="commit-queue"
          id="456355"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433978</attachid>
            <date>2021-07-21 17:26:59 -0700</date>
            <delta_ts>2021-07-21 17:33:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228172-20210721172658.patch</filename>
            <type>text/plain</type>
            <size>14292</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5OTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk2MTZhMDgyMWExZDVj
ZDZmYmRlZjNlYjg3NGNiYjZmODk1NmMyOC4uZmQzNDJhOGZhNzNiZjNmN2U1MDUyYWYwNTAzMjM0
NmEwOGI2MjNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA3LTIxICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgUXVp
Y2sgTm90ZSBvdmVybGF5IHdoZW4gc2Nyb2xsaW5nIHRvIHNob3cgYSBoaWdobGlnaHQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODE3MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gc2Nyb2xsaW5n
IHRvIHNob3cgdGhlIHNlbGVjdGVkIGhpZ2hsaWdodCBhZnRlciBjbGlja2luZyBvbiBvbmUgaW4g
dGhlIFF1aWNrTm90ZSBvdmVybGF5LAorICAgICAgICBtYWtlIHN1cmUgdG8gYXZvaWQgdGhlIFF1
aWNrIE5vdGUgb3ZlcmxheSwgc28gdGhhdCB0aGUgdXNlciBjYW4gYWN0dWFsbHkgc2VlIHRoZSBo
aWdobGlnaHQuIAorICAgICAgICBUaGlzIHJlcXVpcmVkIGNhbGN1bGF0aW5nIG1vcmUgaW5mb3Jt
YXRpb24gYWJvdXQgdGhlIHNlbGVjdGlvbiByZWN0IGZvciBpT1MsIGFuZCBhbHNvIHBpcGluZyB0
aHJvdWdoCisgICAgICAgIGluZm9ybWF0aW9uIHRvIGhhdmUgdGhlIHNlbGVjdGlvbiByZWN0IGJl
IHRoZSBlbnRpcmUgcmVjdCwgcmF0aGVyIHRoYXQganVzdCB0aGUgY2FyZXQgYW5kIHRoZSBlbmQg
b2Ygc2VsZWN0aW9uLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0
U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGlnaHRTdG9yYWdlOjphdHRl
bXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2U6OnNldFNl
bGVjdGlvbik6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpz
ZXRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFu
ZFJldmVhbFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2Vs
ZWN0aW9uQm91bmRzIGNvbnN0KToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6
CisKIDIwMjEtMDctMTYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
IAogICAgICAgICBNYWtlIHRoZSBsYWNrIG9mIGFuIEFOR0xFIGR5bGliIHVuY29uZGl0aW9uYWxs
eSBsb2cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggYzViYWVjZjhkM2VjZTk3ODA2MzhkOWRiZmI2NzY1ZGFmMDExNmUw
OC4uMTJhN2FmMWFkOGY4Y2EzZTMyMjY5OWQ0N2M1MDY4NzE4NzIxYjI2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMyBAQAorMjAyMS0wNy0yMSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJA
YXBwbGUuY29tPgorCisgICAgICAgIEF2b2lkIFF1aWNrIE5vdGUgb3ZlcmxheSB3aGVuIHNjcm9s
bGluZyB0byBzaG93IGEgaGlnaGxpZ2h0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjgxNzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaGVuIHNjcm9sbGluZyB0byBzaG93IHRoZSBzZWxlY3RlZCBoaWdo
bGlnaHQgYWZ0ZXIgY2xpY2tpbmcgb24gb25lIGluIHRoZSBRdWlja05vdGUgb3ZlcmxheSwKKyAg
ICAgICAgbWFrZSBzdXJlIHRvIGF2b2lkIHRoZSBRdWljayBOb3RlIG92ZXJsYXksIHNvIHRoYXQg
dGhlIHVzZXIgY2FuIGFjdHVhbGx5IHNlZSB0aGUgaGlnaGxpZ2h0LiAKKyAgICAgICAgVGhpcyBy
ZXF1aXJlZCBjYWxjdWxhdGluZyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzZWxlY3Rpb24g
cmVjdCBmb3IgaU9TLCBhbmQgYWxzbyBwaXBpbmcgdGhyb3VnaAorICAgICAgICBpbmZvcm1hdGlv
biB0byBoYXZlIHRoZSBzZWxlY3Rpb24gcmVjdCBiZSB0aGUgZW50aXJlIHJlY3QsIHJhdGhlciB0
aGF0IGp1c3QgdGhlIGNhcmV0IGFuZCB0aGUgZW5kIG9mIHNlbGVjdGlvbi4KKworICAgICAgICAq
IFBsYXRmb3JtL3NwaS9Db2NvYS9TeW5hcHNlU1BJLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgYWRqdXN0U2Nyb2xs
UmVjdDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb1JlY3Q6b3JpZ2luOm1pbmlt
dW1TY3JvbGxEaXN0YW5jZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVBy
b3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YXBwSGlnaGxpZ2h0
c05vdGVPdmVybGF5UmVjdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
CiAyMDIxLTA3LTE2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkb3B0IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQgZm9yIGJhY2tpbmcgc3RvcmUg
KyBkaXNwbGF5IGxpc3QgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5k
ZXggNjZlZWUyNzNlODczZjgyZDgzODRmMzA3YmYzOGEwZTgxMzY5MTZlMi4uNTc2MGE4ODZmOWU4
ZjkwZDg2N2I0YzhhNGNkMzA5OWUwNWUxMWNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTI3MCw4
ICsyNzAsOCBAQCBib29sIEFwcEhpZ2hsaWdodFN0b3JhZ2U6OmF0dGVtcHRUb1Jlc3RvcmVIaWdo
bGlnaHRBbmRTY3JvbGwoQXBwSGlnaGxpZ2h0UmFuZ2VEYQogICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOwogICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKICAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOwotICAgICAg
ICAKLSAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6RGVsZWdhdGVNYWluRnJhbWVTY3JvbGwsIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6U21v
b3RoU2Nyb2xsIH0pOworCisgICAgICAgIFRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZSBzZWxlY3Rp
b25DaGFuZ2UoKnN0cm9uZ0RvY3VtZW50LCB7IHJhbmdlLnZhbHVlKCkgfSwgeyBUZW1wb3JhcnlT
ZWxlY3Rpb25PcHRpb246OkRlbGVnYXRlTWFpbkZyYW1lU2Nyb2xsLCBUZW1wb3JhcnlTZWxlY3Rp
b25PcHRpb246OlNtb290aFNjcm9sbCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpTY3JvbGxU
b0Z1bGxTZWxlY3Rpb24gfSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKaW5kZXggYzNiMTkyNWU2N2NkM2M3YWIzMzI2NTE3NWUyZTQ5OGYxZmQ1
ZWU1ZC4uZTA2OGQ2ZTI3ZGNhZWEyYzIxN2YwMjc0ZDE0YzQ0OWZiZDEyMDk5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjY5LDYgKzI2OSw4IEBAIHZvaWQgVGVtcG9yYXJ5U2Vs
ZWN0aW9uQ2hhbmdlOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0
aW9uKQogICAgICAgICBvcHRpb25zLmFkZChGcmFtZVNlbGVjdGlvbjo6RGVsZWdhdGVNYWluRnJh
bWVTY3JvbGwpOwogICAgIGlmIChtX29wdGlvbnMgJiBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246
OlNtb290aFNjcm9sbCkKICAgICAgICAgb3B0aW9ucy5hZGQoRnJhbWVTZWxlY3Rpb246OlNtb290
aFNjcm9sbCk7CisgICAgaWYgKG1fb3B0aW9ucyAmIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6
U2Nyb2xsVG9GdWxsU2VsZWN0aW9uKQorICAgICAgICBvcHRpb25zLmFkZChGcmFtZVNlbGVjdGlv
bjo6U2Nyb2xsVG9GdWxsU2VsZWN0aW9uKTsKICAgICBtX2RvY3VtZW50LT5zZWxlY3Rpb24oKS5z
ZXRTZWxlY3Rpb24oc2VsZWN0aW9uLCBvcHRpb25zKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmgKaW5kZXggZmQ1OWJmZmFlNzJkNWZhZjkyNDcyM2VmNDc5YjI4NTYwNjAzODk1NC4uZDRkMTZl
MDFjOGUzYjkzMGMxNTI3MzA2NTg2OTM4MGY0YzAxNjM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oCkBAIC0xMjIsNiArMTIyLDggQEAgZW51bSBjbGFzcyBUZW1wb3JhcnlTZWxlY3Rpb25PcHRp
b24gOiB1aW50OF90IHsKICAgICBTbW9vdGhTY3JvbGwgPSAxIDw8IDQsCiAgICAgCiAgICAgRGVs
ZWdhdGVNYWluRnJhbWVTY3JvbGwgPSAxIDw8IDUsCisgICAgCisgICAgU2Nyb2xsVG9GdWxsU2Vs
ZWN0aW9uID0gMSA8PCA2LAogfTsKIAogY2xhc3MgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggMWNhM2JmYmM5
MjFjNDU3OTY4NGIxMDM1MDJlNGM1MzMyYzI5MTEyNy4uZDBlM2MwMzZkNmMyNDM5YWYxODY3Njg4
MDM1OTYzYWU1MmI2MmY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlv
bi5jcHAKQEAgLTY2LDYgKzY2LDcgQEAKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNs
dWRlICJSZW5kZXJlZFBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0RGlzYWxsb3dlZFNjb3Bl
LmgiCisjaW5jbHVkZSAiU2VsZWN0aW9uR2VvbWV0cnkuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5o
IgogI2luY2x1ZGUgIlNpbXBsZVJhbmdlLmgiCiAjaW5jbHVkZSAiU3BhdGlhbE5hdmlnYXRpb24u
aCIKQEAgLTQ1MSw3ICs0NTIsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24o
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBPcHRpb25TZXQ8UwogICAgIGlmIChm
cmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5sYXlvdXRDb250ZXh0KCkuaXNMYXlvdXRQZW5kaW5nKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQs
IG9wdGlvbnMuY29udGFpbnMoU21vb3RoU2Nyb2xsKSA/IFNjcm9sbEJlaGF2aW9yOjpTbW9vdGgg
OiBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudCk7CisgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9u
KGludGVudCwgb3B0aW9ucy5jb250YWlucyhTbW9vdGhTY3JvbGwpID8gU2Nyb2xsQmVoYXZpb3I6
OlNtb290aCA6IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBvcHRpb25zLmNvbnRhaW5zKFNjcm9s
bFRvRnVsbFNlbGVjdGlvbikgPyBSZXZlYWxFeHRlbnRPcHRpb246OkRvTm90UmV2ZWFsRXh0ZW50
IDogUmV2ZWFsRXh0ZW50T3B0aW9uOjpSZXZlYWxFeHRlbnQpOwogCiAgICAgaWYgKG9wdGlvbnMg
JiBJc1VzZXJUcmlnZ2VyZWQpIHsKICAgICAgICAgaWYgKGF1dG8qIGNsaWVudCA9IHByb3RlY3Rl
ZERvY3VtZW50LT5lZGl0b3IoKS5jbGllbnQoKSkKQEAgLTQ3OCw3ICs0NzksNyBAQCB2b2lkIEZy
YW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZShSZXZlYWxTZWxlY3Rpb25BZnRl
clVwZGF0ZSByZXZlYWxNbwogICAgICAgICB2aWV3LT5zZWxlY3Rpb24oKS5jbGVhcigpOwogfQog
Ci12b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCwgU2Nyb2xsQmVoYXZpb3Igc2Nyb2xsQmVoYXZp
b3IpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3Qg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCwgU2Nyb2xsQmVoYXZpb3Igc2Nyb2xsQmVo
YXZpb3IsIFJldmVhbEV4dGVudE9wdGlvbiByZXZlYWxFeHRlbnQpCiB7CiAgICAgaWYgKCFtX3Bl
bmRpbmdTZWxlY3Rpb25VcGRhdGUpCiAgICAgICAgIHJldHVybjsKQEAgLTQ5NSw3ICs0OTYsNyBA
QCB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBhbGln
bm1lbnQgPSBtX2Fsd2F5c0FsaWduQ3Vyc29yT25TY3JvbGxXaGVuUmV2ZWFsaW5nU2VsZWN0aW9u
ID8gU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvcEFsd2F5cyA6IFNjcm9sbEFsaWdubWVudDo6YWxp
Z25Ub0VkZ2VJZk5lZWRlZDsKIAotICAgICAgICByZXZlYWxTZWxlY3Rpb24obV9zZWxlY3Rpb25S
ZXZlYWxNb2RlLCBhbGlnbm1lbnQsIFJldmVhbEV4dGVudCwgc2Nyb2xsQmVoYXZpb3IpOworICAg
ICAgICByZXZlYWxTZWxlY3Rpb24obV9zZWxlY3Rpb25SZXZlYWxNb2RlLCBhbGlnbm1lbnQsIHJl
dmVhbEV4dGVudCwgc2Nyb2xsQmVoYXZpb3IpOwogICAgIH0KIAogICAgIG5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoaW50ZW50KTsKQEAgLTIzMjUsMTQgKzIzMjYsMjcgQEAg
RmxvYXRSZWN0IEZyYW1lU2VsZWN0aW9uOjpzZWxlY3Rpb25Cb3VuZHMoQ2xpcFRvVmlzaWJsZUNv
bnRlbnQgY2xpcFRvVmlzaWJsZUNvbnQKICAgICBpZiAoIXJlbmRlclZpZXcpCiAgICAgICAgIHJl
dHVybiBMYXlvdXRSZWN0KCk7CiAKKyAgICBpZiAoIW1fc2VsZWN0aW9uLnJhbmdlKCkpCisgICAg
ICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CisgICAgCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICBhdXRvIHNlbGVjdGlvbkdlb21ldHJpZXMgPSBSZW5kZXJPYmplY3Q6OmNvbGxlY3RTZWxl
Y3Rpb25HZW9tZXRyaWVzKG1fc2VsZWN0aW9uLnJhbmdlKCkudmFsdWUoKSk7CisgICAgYXV0byB2
aXNpYmxlU2VsZWN0aW9uUmVjdCA9IEludFJlY3QoKTsKKyAgICBmb3IgKGF1dG8gZ2VvbWV0cnkg
OiBzZWxlY3Rpb25HZW9tZXRyaWVzKQorICAgICAgICB2aXNpYmxlU2VsZWN0aW9uUmVjdC51bml0
ZShnZW9tZXRyeS5yZWN0KCkpOworICAgIAorICAgIGlmIChjbGlwVG9WaXNpYmxlQ29udGVudCA9
PSBDbGlwVG9WaXNpYmxlQ29udGVudDo6Tm8pCisgICAgICAgIHJldHVybiB2aXNpYmxlU2VsZWN0
aW9uUmVjdDsKKyNlbHNlCiAgICAgYXV0byYgc2VsZWN0aW9uID0gcmVuZGVyVmlldy0+c2VsZWN0
aW9uKCk7CisgICAgYXV0byB2aXNpYmxlU2VsZWN0aW9uUmVjdCA9IHNlbGVjdGlvbi5ib3VuZHND
bGlwcGVkVG9WaXNpYmxlQ29udGVudCgpOworICAgIAorICAgIGlmIChjbGlwVG9WaXNpYmxlQ29u
dGVudCA9PSBDbGlwVG9WaXNpYmxlQ29udGVudDo6Tm8pCisgICAgICAgIHJldHVybiBzZWxlY3Rp
b24uYm91bmRzKCk7CisjZW5kaWYKKyAgICAKKyAgICByZXR1cm4gaW50ZXJzZWN0aW9uKHZpc2li
bGVTZWxlY3Rpb25SZWN0LCByZW5kZXJWaWV3LT5mcmFtZVZpZXcoKS52aXNpYmxlQ29udGVudFJl
Y3QoU2Nyb2xsYWJsZUFyZWE6OkxlZ2FjeUlPU0RvY3VtZW50VmlzaWJsZVJlY3QpKTsKIAotICAg
IGlmIChjbGlwVG9WaXNpYmxlQ29udGVudCA9PSBDbGlwVG9WaXNpYmxlQ29udGVudDo6WWVzKSB7
Ci0gICAgICAgIGF1dG8gc2VsZWN0aW9uUmVjdCA9IHNlbGVjdGlvbi5ib3VuZHNDbGlwcGVkVG9W
aXNpYmxlQ29udGVudCgpOwotICAgICAgICByZXR1cm4gaW50ZXJzZWN0aW9uKHNlbGVjdGlvblJl
Y3QsIHJlbmRlclZpZXctPmZyYW1lVmlldygpLnZpc2libGVDb250ZW50UmVjdChTY3JvbGxhYmxl
QXJlYTo6TGVnYWN5SU9TRG9jdW1lbnRWaXNpYmxlUmVjdCkpOwotICAgIH0KLQotICAgIHJldHVy
biBzZWxlY3Rpb24uYm91bmRzKCk7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246OmdldENsaXBw
ZWRWaXNpYmxlVGV4dFJlY3RhbmdsZXMoVmVjdG9yPEZsb2F0UmVjdD4mIHJlY3RhbmdsZXMsIFRl
eHRSZWN0YW5nbGVIZWlnaHQgdGV4dFJlY3RIZWlnaHQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggN2UxZDg5NDlkMDcxNzk1MDEzNzI5NzU5M2Q5MTk5
ZjQ3YmU0OTUyZS4uODRiYzQ2ZDU2OWJiZjJlZDk1NDhiYTk3NDkwNDljODE0NDI0MDk4YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMTI0LDcgKzEyNCw4IEBA
IHB1YmxpYzoKICAgICAgICAgUmV2ZWFsU2VsZWN0aW9uID0gMSA8PCA3LAogICAgICAgICBSZXZl
YWxTZWxlY3Rpb25VcFRvTWFpbkZyYW1lID0gMSA8PCA4LAogICAgICAgICBTbW9vdGhTY3JvbGwg
PSAxIDw8IDksCi0gICAgICAgIERlbGVnYXRlTWFpbkZyYW1lU2Nyb2xsID0gMSA8PCAxMAorICAg
ICAgICBEZWxlZ2F0ZU1haW5GcmFtZVNjcm9sbCA9IDEgPDwgMTAsCisgICAgICAgIFNjcm9sbFRv
RnVsbFNlbGVjdGlvbiA9IDEgPDwgMTEKICAgICB9OwogICAgIHN0YXRpYyBjb25zdGV4cHIgT3B0
aW9uU2V0PFNldFNlbGVjdGlvbk9wdGlvbj4gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoRVVz
ZXJUcmlnZ2VyZWQgPSBOb3RVc2VyVHJpZ2dlcmVkKTsKIApAQCAtMjYzLDcgKzI2NCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHVwZGF0ZUZyb21Bc3NvY2lhdGVkTGl2ZVJhbmdlKCk7CiAKIHByaXZh
dGU6Ci0gICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQmLCBTY3JvbGxCZWhhdmlvciA9IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50KTsK
KyAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihjb25zdCBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCYsIFNjcm9sbEJlaGF2aW9yID0gU2Nyb2xsQmVoYXZpb3I6Okluc3RhbnQsIFJldmVh
bEV4dGVudE9wdGlvbiA9IFJldmVhbEV4dGVudE9wdGlvbjo6UmV2ZWFsRXh0ZW50KTsKICAgICB2
b2lkIHVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIAogICAgIGJvb2wgc2V0U2Vs
ZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwg
T3B0aW9uU2V0PFNldFNlbGVjdGlvbk9wdGlvbj4sIEN1cnNvckFsaWduT25TY3JvbGwsIFRleHRH
cmFudWxhcml0eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2Nv
YS9TeW5hcHNlU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9TeW5hcHNl
U1BJLmgKaW5kZXggODA5MjhlMDU0NWIyYWI4ZmY0YTcxY2RmMTdmMjU1OWJjN2MxNWE2OS4uYzcw
MzkwMTJkYTZiYzhlMjU0NGE3OWJlYTczNzYwNTQ3NmExYTcxMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvU3luYXBzZVNQSS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vc3BpL0NvY29hL1N5bmFwc2VTUEkuaApAQCAtMzcsNiArMzcsOCBAQCB0eXBl
ZGVmIHZvaWQoXlNZTm90ZXNBY3RpdmF0aW9uT2JzZXJ2ZXJIYW5kbGVyKShCT09MIGlzVmlzaWJs
ZSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzVmlzaWJsZSkg
Qk9PTCB2aXNpYmxlOwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUmVjdCB2
aXNpYmxlRnJhbWU7CisKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEhhbmRsZXI6KG51bGxhYmxl
IFNZTm90ZXNBY3RpdmF0aW9uT2JzZXJ2ZXJIYW5kbGVyKWhhbmRsZXI7CiAKIEBlbmQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KaW5kZXggNDFk
ZTdiOTAyMzIxY2ZkZDA1OGYzMDQ2Y2NmZjQyNzAxMTlmMzgwZC4uZTBlNTc3MjVkYzU1YTIyMDk1
Njc5NTBjYjJhMjVlMGQwOGI3MjU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KQEAgLTExNTMsNiArMTE1MywzNSBAQCAtICh2b2lkKV9z
Y3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQ
b3NpdGlvbiBzY3JvbAogICAgIH0KIH0KIAorLSAoZmxvYXQpYWRqdXN0U2Nyb2xsUmVjdDooV2Vi
Q29yZTo6RmxvYXRSZWN0KXRhcmdldFJlY3QKK3sKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMp
CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG92ZXJsYXlSZWN0ID0gW3NlbGYgY29udmVydFJlY3Q6
X3BhZ2UtPmFwcEhpZ2hsaWdodHNOb3RlT3ZlcmxheVJlY3QoKSBmcm9tQ29vcmRpbmF0ZVNwYWNl
Oltfc2Nyb2xsVmlldyB3aW5kb3ddLnNjcmVlbi5jb29yZGluYXRlU3BhY2VdOworICAgIAorICAg
IG92ZXJsYXlSZWN0LmV4cGFuZCg1LCA1KTsKKyAgICAKKyAgICBpZiAoIXRhcmdldFJlY3QuaW50
ZXJzZWN0cyhvdmVybGF5UmVjdCkpCisgICAgICAgIHJldHVybiAwOworICAgIAorICAgIGZsb2F0
IHRvcEdhcCA9IG92ZXJsYXlSZWN0LnkoKSAtIFtzZWxmIGJvdW5kc10ub3JpZ2luLnk7CisgICAg
ZmxvYXQgYm90dG9tR2FwID0gKFtzZWxmIGJvdW5kc10uc2l6ZS5oZWlnaHQgKyBbc2VsZiBib3Vu
ZHNdLm9yaWdpbi55KSAtIG92ZXJsYXlSZWN0Lm1heFkoKTsKKyAgICAKKyAgICBmbG9hdCBtaWRT
Y3JlZW4gPSBbc2VsZiBjZW50ZXJdLnk7CisKKyAgICBpZiAodG9wR2FwID4gYm90dG9tR2FwKSB7
CisgICAgICAgIGF1dG8gbWlkR2FwID0gdG9wR2FwIC8gMiArIFtzZWxmIGJvdW5kc10ub3JpZ2lu
Lnk7CisgICAgICAgIGF1dG8gZGlmZiA9IG1pZFNjcmVlbiAtIG1pZEdhcDsKKyAgICAgICAgcmV0
dXJuIGRpZmY7CisgICAgfQorICAgIAorICAgIGF1dG8gbWlkR2FwID0gYm90dG9tR2FwIC8gMiAr
IFtzZWxmIGJvdW5kc10ub3JpZ2luLnk7CisgICAgYXV0byBkaWZmID0gbWlkR2FwIC0gbWlkU2Ny
ZWVuOworICAgIHJldHVybiBkaWZmOworI2VuZGlmCisgICAgcmV0dXJuIDA7Cit9CisKKwogLSAo
Qk9PTClfc2Nyb2xsVG9SZWN0OihXZWJDb3JlOjpGbG9hdFJlY3QpdGFyZ2V0UmVjdCBvcmlnaW46
KFdlYkNvcmU6OkZsb2F0UG9pbnQpb3JpZ2luIG1pbmltdW1TY3JvbGxEaXN0YW5jZTooZmxvYXQp
bWluaW11bVNjcm9sbERpc3RhbmNlCiB7CiAgICAgaWYgKCFbX3Njcm9sbFZpZXcgaXNTY3JvbGxF
bmFibGVkXSkKQEAgLTExODcsNiArMTIxNiwxNSBAQCAtIChCT09MKV9zY3JvbGxUb1JlY3Q6KFdl
YkNvcmU6OkZsb2F0UmVjdCl0YXJnZXRSZWN0IG9yaWdpbjooV2ViQ29yZTo6RmxvYXRQb2ludAog
ICAgIHNjcm9sbFZpZXdPZmZzZXREZWx0YS5zY2FsZShjb250ZW50Wm9vbVNjYWxlKHNlbGYpKTsK
IAogICAgIGZsb2F0IHNjcm9sbERpc3RhbmNlID0gc2Nyb2xsVmlld09mZnNldERlbHRhLmRpYWdv
bmFsTGVuZ3RoKCk7CisgICAgCisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHN0YXJ0UmVjdCA9IHRh
cmdldFJlY3Q7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZlcnRlZFN0YXJ0UmVjdCA9IFtz
ZWxmIGNvbnZlcnRSZWN0OnN0YXJ0UmVjdCBmcm9tVmlldzpzZWxmLl9jdXJyZW50Q29udGVudFZp
ZXddOworICAgIGNvbnZlcnRlZFN0YXJ0UmVjdC5tb3ZlKC1zY3JvbGxWaWV3T2Zmc2V0RGVsdGEp
OworCisgICAgZmxvYXQgYWRkaXRpb25hbE9mZnNldCA9ICBbc2VsZiBhZGp1c3RTY3JvbGxSZWN0
OmNvbnZlcnRlZFN0YXJ0UmVjdF07CisKKyAgICBzY3JvbGxWaWV3T2Zmc2V0RGVsdGEgKz0gV2Vi
Q29yZTo6RmxvYXRTaXplKDAsIGFkZGl0aW9uYWxPZmZzZXQpOworICAgIAogICAgIGlmIChzY3Jv
bGxEaXN0YW5jZSA8IG1pbmltdW1TY3JvbGxEaXN0YW5jZSkKICAgICAgICAgcmV0dXJuIE5POwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlD
b2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tCmluZGV4IDZkNWZlYjM1YzM1ZWMwNzczNjA2MjRlZDIwZTU5YmI1ZTc0ZjEyMmMuLjlmNjUz
ZjI2YjRlODFiODJmOTExZWFjMWU0NmZlNGU5NDc1MDc0N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCkBAIC02MDMsNiArNjAz
LDEzIEBAIGJvb2wgV2ViUGFnZVByb3h5OjphcHBIaWdobGlnaHRzVmlzaWJpbGl0eSgpCiAgICAg
cmV0dXJuIFttX2FwcEhpZ2hsaWdodHNPYnNlcnZlciBpc1Zpc2libGVdOwogfQogCitDR1JlY3Qg
V2ViUGFnZVByb3h5OjphcHBIaWdobGlnaHRzTm90ZU92ZXJsYXlSZWN0KCkKK3sKKyAgICBpZiAo
IW1fYXBwSGlnaGxpZ2h0c09ic2VydmVyKQorICAgICAgICBzZXRVcEhpZ2hsaWdodHNPYnNlcnZl
cigpOworICAgIHJldHVybiBbbV9hcHBIaWdobGlnaHRzT2JzZXJ2ZXIgdmlzaWJsZUZyYW1lXTsK
K30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnNldFVwSGlnaGxpZ2h0c09ic2VydmVyKCkKIHsKICAg
ICBpZiAobV9hcHBIaWdobGlnaHRzT2JzZXJ2ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCmluZGV4IGE2ODNiMjcxZmVkMTE5NDA1Njc0ODM4ZDI3YjA4NTE5MGQyNjI1ODQu
LmJhMzA3YmM3ZDYwMzM0MDBkNzI5ZTVmYzc2MTc1NjdiMWJhNGY5NzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xOTExLDYgKzE5MTEsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCByZXN0b3JlQXBwSGlnaGxpZ2h0c0FuZFNjcm9sbFRvSW5kZXgoY29uc3QgVmVjdG9y
PFJlZjxXZWJLaXQ6OlNoYXJlZE1lbW9yeT4+JiBoaWdobGlnaHRzLCBjb25zdCBzdGQ6Om9wdGlv
bmFsPHVuc2lnbmVkPiBpbmRleCk7CiAgICAgdm9pZCBzZXRBcHBIaWdobGlnaHRzVmlzaWJpbGl0
eShjb25zdCBXZWJDb3JlOjpIaWdobGlnaHRWaXNpYmlsaXR5KTsKICAgICBib29sIGFwcEhpZ2hs
aWdodHNWaXNpYmlsaXR5KCk7CisgICAgQ0dSZWN0IGFwcEhpZ2hsaWdodHNOb3RlT3ZlcmxheVJl
Y3QoKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
</data>
<flag name="commit-queue"
          id="456357"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433979</attachid>
            <date>2021-07-21 17:32:34 -0700</date>
            <delta_ts>2021-07-21 19:16:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228172-20210721173233.patch</filename>
            <type>text/plain</type>
            <size>14221</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5OTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk2MTZhMDgyMWExZDVj
ZDZmYmRlZjNlYjg3NGNiYjZmODk1NmMyOC4uZmQzNDJhOGZhNzNiZjNmN2U1MDUyYWYwNTAzMjM0
NmEwOGI2MjNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA3LTIxICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgUXVp
Y2sgTm90ZSBvdmVybGF5IHdoZW4gc2Nyb2xsaW5nIHRvIHNob3cgYSBoaWdobGlnaHQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODE3MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gc2Nyb2xsaW5n
IHRvIHNob3cgdGhlIHNlbGVjdGVkIGhpZ2hsaWdodCBhZnRlciBjbGlja2luZyBvbiBvbmUgaW4g
dGhlIFF1aWNrTm90ZSBvdmVybGF5LAorICAgICAgICBtYWtlIHN1cmUgdG8gYXZvaWQgdGhlIFF1
aWNrIE5vdGUgb3ZlcmxheSwgc28gdGhhdCB0aGUgdXNlciBjYW4gYWN0dWFsbHkgc2VlIHRoZSBo
aWdobGlnaHQuIAorICAgICAgICBUaGlzIHJlcXVpcmVkIGNhbGN1bGF0aW5nIG1vcmUgaW5mb3Jt
YXRpb24gYWJvdXQgdGhlIHNlbGVjdGlvbiByZWN0IGZvciBpT1MsIGFuZCBhbHNvIHBpcGluZyB0
aHJvdWdoCisgICAgICAgIGluZm9ybWF0aW9uIHRvIGhhdmUgdGhlIHNlbGVjdGlvbiByZWN0IGJl
IHRoZSBlbnRpcmUgcmVjdCwgcmF0aGVyIHRoYXQganVzdCB0aGUgY2FyZXQgYW5kIHRoZSBlbmQg
b2Ygc2VsZWN0aW9uLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0
U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGlnaHRTdG9yYWdlOjphdHRl
bXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2U6OnNldFNl
bGVjdGlvbik6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpz
ZXRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFu
ZFJldmVhbFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2Vs
ZWN0aW9uQm91bmRzIGNvbnN0KToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6
CisKIDIwMjEtMDctMTYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
IAogICAgICAgICBNYWtlIHRoZSBsYWNrIG9mIGFuIEFOR0xFIGR5bGliIHVuY29uZGl0aW9uYWxs
eSBsb2cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggYzViYWVjZjhkM2VjZTk3ODA2MzhkOWRiZmI2NzY1ZGFmMDExNmUw
OC4uMTJhN2FmMWFkOGY4Y2EzZTMyMjY5OWQ0N2M1MDY4NzE4NzIxYjI2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMyBAQAorMjAyMS0wNy0yMSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJA
YXBwbGUuY29tPgorCisgICAgICAgIEF2b2lkIFF1aWNrIE5vdGUgb3ZlcmxheSB3aGVuIHNjcm9s
bGluZyB0byBzaG93IGEgaGlnaGxpZ2h0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjgxNzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaGVuIHNjcm9sbGluZyB0byBzaG93IHRoZSBzZWxlY3RlZCBoaWdo
bGlnaHQgYWZ0ZXIgY2xpY2tpbmcgb24gb25lIGluIHRoZSBRdWlja05vdGUgb3ZlcmxheSwKKyAg
ICAgICAgbWFrZSBzdXJlIHRvIGF2b2lkIHRoZSBRdWljayBOb3RlIG92ZXJsYXksIHNvIHRoYXQg
dGhlIHVzZXIgY2FuIGFjdHVhbGx5IHNlZSB0aGUgaGlnaGxpZ2h0LiAKKyAgICAgICAgVGhpcyBy
ZXF1aXJlZCBjYWxjdWxhdGluZyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzZWxlY3Rpb24g
cmVjdCBmb3IgaU9TLCBhbmQgYWxzbyBwaXBpbmcgdGhyb3VnaAorICAgICAgICBpbmZvcm1hdGlv
biB0byBoYXZlIHRoZSBzZWxlY3Rpb24gcmVjdCBiZSB0aGUgZW50aXJlIHJlY3QsIHJhdGhlciB0
aGF0IGp1c3QgdGhlIGNhcmV0IGFuZCB0aGUgZW5kIG9mIHNlbGVjdGlvbi4KKworICAgICAgICAq
IFBsYXRmb3JtL3NwaS9Db2NvYS9TeW5hcHNlU1BJLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgYWRqdXN0U2Nyb2xs
UmVjdDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb1JlY3Q6b3JpZ2luOm1pbmlt
dW1TY3JvbGxEaXN0YW5jZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVBy
b3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YXBwSGlnaGxpZ2h0
c05vdGVPdmVybGF5UmVjdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
CiAyMDIxLTA3LTE2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkb3B0IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQgZm9yIGJhY2tpbmcgc3RvcmUg
KyBkaXNwbGF5IGxpc3QgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5k
ZXggNjZlZWUyNzNlODczZjgyZDgzODRmMzA3YmYzOGEwZTgxMzY5MTZlMi4uNTc2MGE4ODZmOWU4
ZjkwZDg2N2I0YzhhNGNkMzA5OWUwNWUxMWNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTI3MCw4
ICsyNzAsOCBAQCBib29sIEFwcEhpZ2hsaWdodFN0b3JhZ2U6OmF0dGVtcHRUb1Jlc3RvcmVIaWdo
bGlnaHRBbmRTY3JvbGwoQXBwSGlnaGxpZ2h0UmFuZ2VEYQogICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOwogICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKICAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOwotICAgICAg
ICAKLSAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6RGVsZWdhdGVNYWluRnJhbWVTY3JvbGwsIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6U21v
b3RoU2Nyb2xsIH0pOworCisgICAgICAgIFRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZSBzZWxlY3Rp
b25DaGFuZ2UoKnN0cm9uZ0RvY3VtZW50LCB7IHJhbmdlLnZhbHVlKCkgfSwgeyBUZW1wb3JhcnlT
ZWxlY3Rpb25PcHRpb246OkRlbGVnYXRlTWFpbkZyYW1lU2Nyb2xsLCBUZW1wb3JhcnlTZWxlY3Rp
b25PcHRpb246OlNtb290aFNjcm9sbCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpTY3JvbGxU
b0Z1bGxTZWxlY3Rpb24gfSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKaW5kZXggYzNiMTkyNWU2N2NkM2M3YWIzMzI2NTE3NWUyZTQ5OGYxZmQ1
ZWU1ZC4uZTA2OGQ2ZTI3ZGNhZWEyYzIxN2YwMjc0ZDE0YzQ0OWZiZDEyMDk5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjY5LDYgKzI2OSw4IEBAIHZvaWQgVGVtcG9yYXJ5U2Vs
ZWN0aW9uQ2hhbmdlOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0
aW9uKQogICAgICAgICBvcHRpb25zLmFkZChGcmFtZVNlbGVjdGlvbjo6RGVsZWdhdGVNYWluRnJh
bWVTY3JvbGwpOwogICAgIGlmIChtX29wdGlvbnMgJiBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246
OlNtb290aFNjcm9sbCkKICAgICAgICAgb3B0aW9ucy5hZGQoRnJhbWVTZWxlY3Rpb246OlNtb290
aFNjcm9sbCk7CisgICAgaWYgKG1fb3B0aW9ucyAmIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6
U2Nyb2xsVG9GdWxsU2VsZWN0aW9uKQorICAgICAgICBvcHRpb25zLmFkZChGcmFtZVNlbGVjdGlv
bjo6U2Nyb2xsVG9GdWxsU2VsZWN0aW9uKTsKICAgICBtX2RvY3VtZW50LT5zZWxlY3Rpb24oKS5z
ZXRTZWxlY3Rpb24oc2VsZWN0aW9uLCBvcHRpb25zKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmgKaW5kZXggZmQ1OWJmZmFlNzJkNWZhZjkyNDcyM2VmNDc5YjI4NTYwNjAzODk1NC4uZDRkMTZl
MDFjOGUzYjkzMGMxNTI3MzA2NTg2OTM4MGY0YzAxNjM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oCkBAIC0xMjIsNiArMTIyLDggQEAgZW51bSBjbGFzcyBUZW1wb3JhcnlTZWxlY3Rpb25PcHRp
b24gOiB1aW50OF90IHsKICAgICBTbW9vdGhTY3JvbGwgPSAxIDw8IDQsCiAgICAgCiAgICAgRGVs
ZWdhdGVNYWluRnJhbWVTY3JvbGwgPSAxIDw8IDUsCisgICAgCisgICAgU2Nyb2xsVG9GdWxsU2Vs
ZWN0aW9uID0gMSA8PCA2LAogfTsKIAogY2xhc3MgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggMWNhM2JmYmM5
MjFjNDU3OTY4NGIxMDM1MDJlNGM1MzMyYzI5MTEyNy4uNzgwYTJhYjBkMWU2NWU0ZTc1ZTJlZmFh
MzlmN2ExMDEyYmQ1ZDg1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlv
bi5jcHAKQEAgLTgyLDYgKzgyLDcgQEAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIlJl
bmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiU2VsZWN0
aW9uR2VvbWV0cnkuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NTEsNyAr
NDUyLDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0aW9uU2V0PFMKICAgICBpZiAoZnJhbWVWaWV3ICYmIGZy
YW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygpKQogICAgICAgICByZXR1
cm47CiAKLSAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oaW50ZW50LCBvcHRpb25zLmNvbnRh
aW5zKFNtb290aFNjcm9sbCkgPyBTY3JvbGxCZWhhdmlvcjo6U21vb3RoIDogU2Nyb2xsQmVoYXZp
b3I6Okluc3RhbnQpOworICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQsIG9wdGlv
bnMuY29udGFpbnMoU21vb3RoU2Nyb2xsKSA/IFNjcm9sbEJlaGF2aW9yOjpTbW9vdGggOiBTY3Jv
bGxCZWhhdmlvcjo6SW5zdGFudCwgb3B0aW9ucy5jb250YWlucyhTY3JvbGxUb0Z1bGxTZWxlY3Rp
b24pID8gUmV2ZWFsRXh0ZW50T3B0aW9uOjpEb05vdFJldmVhbEV4dGVudCA6IFJldmVhbEV4dGVu
dE9wdGlvbjo6UmV2ZWFsRXh0ZW50KTsKIAogICAgIGlmIChvcHRpb25zICYgSXNVc2VyVHJpZ2dl
cmVkKSB7CiAgICAgICAgIGlmIChhdXRvKiBjbGllbnQgPSBwcm90ZWN0ZWREb2N1bWVudC0+ZWRp
dG9yKCkuY2xpZW50KCkpCkBAIC00NzgsNyArNDc5LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoUmV2ZWFsU2VsZWN0aW9uQWZ0ZXJVcGRhdGUgcmV2ZWFs
TW8KICAgICAgICAgdmlldy0+c2VsZWN0aW9uKCkuY2xlYXIoKTsKIH0KIAotdm9pZCBGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50JiBpbnRlbnQsIFNjcm9sbEJlaGF2aW9yIHNjcm9sbEJlaGF2aW9yKQordm9pZCBGcmFt
ZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50JiBpbnRlbnQsIFNjcm9sbEJlaGF2aW9yIHNjcm9sbEJlaGF2aW9yLCBSZXZlYWxF
eHRlbnRPcHRpb24gcmV2ZWFsRXh0ZW50KQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9u
VXBkYXRlKQogICAgICAgICByZXR1cm47CkBAIC00OTUsNyArNDk2LDcgQEAgdm9pZCBGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50JiBpbnQKICAgICAgICAgZWxzZQogICAgICAgICAgICAgYWxpZ25tZW50ID0gbV9hbHdh
eXNBbGlnbkN1cnNvck9uU2Nyb2xsV2hlblJldmVhbGluZ1NlbGVjdGlvbiA/IFNjcm9sbEFsaWdu
bWVudDo6YWxpZ25Ub3BBbHdheXMgOiBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVk
ZWQ7CiAKLSAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKG1fc2VsZWN0aW9uUmV2ZWFsTW9kZSwgYWxp
Z25tZW50LCBSZXZlYWxFeHRlbnQsIHNjcm9sbEJlaGF2aW9yKTsKKyAgICAgICAgcmV2ZWFsU2Vs
ZWN0aW9uKG1fc2VsZWN0aW9uUmV2ZWFsTW9kZSwgYWxpZ25tZW50LCByZXZlYWxFeHRlbnQsIHNj
cm9sbEJlaGF2aW9yKTsKICAgICB9CiAKICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKGludGVudCk7CkBAIC0yMzI1LDE0ICsyMzI2LDI3IEBAIEZsb2F0UmVjdCBGcmFt
ZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzKENsaXBUb1Zpc2libGVDb250ZW50IGNsaXBUb1Zp
c2libGVDb250CiAgICAgaWYgKCFyZW5kZXJWaWV3KQogICAgICAgICByZXR1cm4gTGF5b3V0UmVj
dCgpOwogCisgICAgaWYgKCFtX3NlbGVjdGlvbi5yYW5nZSgpKQorICAgICAgICByZXR1cm4gTGF5
b3V0UmVjdCgpOworICAgIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYXV0byBzZWxl
Y3Rpb25HZW9tZXRyaWVzID0gUmVuZGVyT2JqZWN0Ojpjb2xsZWN0U2VsZWN0aW9uR2VvbWV0cmll
cyhtX3NlbGVjdGlvbi5yYW5nZSgpLnZhbHVlKCkpOworICAgIGF1dG8gdmlzaWJsZVNlbGVjdGlv
blJlY3QgPSBJbnRSZWN0KCk7CisgICAgZm9yIChhdXRvIGdlb21ldHJ5IDogc2VsZWN0aW9uR2Vv
bWV0cmllcykKKyAgICAgICAgdmlzaWJsZVNlbGVjdGlvblJlY3QudW5pdGUoZ2VvbWV0cnkucmVj
dCgpKTsKKyAgICAKKyAgICBpZiAoY2xpcFRvVmlzaWJsZUNvbnRlbnQgPT0gQ2xpcFRvVmlzaWJs
ZUNvbnRlbnQ6Ok5vKQorICAgICAgICByZXR1cm4gdmlzaWJsZVNlbGVjdGlvblJlY3Q7CisjZWxz
ZQogICAgIGF1dG8mIHNlbGVjdGlvbiA9IHJlbmRlclZpZXctPnNlbGVjdGlvbigpOworICAgIGF1
dG8gdmlzaWJsZVNlbGVjdGlvblJlY3QgPSBzZWxlY3Rpb24uYm91bmRzQ2xpcHBlZFRvVmlzaWJs
ZUNvbnRlbnQoKTsKKyAgICAKKyAgICBpZiAoY2xpcFRvVmlzaWJsZUNvbnRlbnQgPT0gQ2xpcFRv
VmlzaWJsZUNvbnRlbnQ6Ok5vKQorICAgICAgICByZXR1cm4gc2VsZWN0aW9uLmJvdW5kcygpOwor
I2VuZGlmCisgICAgCisgICAgcmV0dXJuIGludGVyc2VjdGlvbih2aXNpYmxlU2VsZWN0aW9uUmVj
dCwgcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCkudmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVB
cmVhOjpMZWdhY3lJT1NEb2N1bWVudFZpc2libGVSZWN0KSk7CiAKLSAgICBpZiAoY2xpcFRvVmlz
aWJsZUNvbnRlbnQgPT0gQ2xpcFRvVmlzaWJsZUNvbnRlbnQ6OlllcykgewotICAgICAgICBhdXRv
IHNlbGVjdGlvblJlY3QgPSBzZWxlY3Rpb24uYm91bmRzQ2xpcHBlZFRvVmlzaWJsZUNvbnRlbnQo
KTsKLSAgICAgICAgcmV0dXJuIGludGVyc2VjdGlvbihzZWxlY3Rpb25SZWN0LCByZW5kZXJWaWV3
LT5mcmFtZVZpZXcoKS52aXNpYmxlQ29udGVudFJlY3QoU2Nyb2xsYWJsZUFyZWE6OkxlZ2FjeUlP
U0RvY3VtZW50VmlzaWJsZVJlY3QpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc2VsZWN0aW9uLmJv
dW5kcygpOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjpnZXRDbGlwcGVkVmlzaWJsZVRleHRS
ZWN0YW5nbGVzKFZlY3RvcjxGbG9hdFJlY3Q+JiByZWN0YW5nbGVzLCBUZXh0UmVjdGFuZ2xlSGVp
Z2h0IHRleHRSZWN0SGVpZ2h0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVj
dGlvbi5oCmluZGV4IDdlMWQ4OTQ5ZDA3MTc5NTAxMzcyOTc1OTNkOTE5OWY0N2JlNDk1MmUuLjg0
YmM0NmQ1NjliYmYyZWQ5NTQ4YmE5NzQ5MDQ5YzgxNDQyNDA5OGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTEyNCw3ICsxMjQsOCBAQCBwdWJsaWM6CiAgICAg
ICAgIFJldmVhbFNlbGVjdGlvbiA9IDEgPDwgNywKICAgICAgICAgUmV2ZWFsU2VsZWN0aW9uVXBU
b01haW5GcmFtZSA9IDEgPDwgOCwKICAgICAgICAgU21vb3RoU2Nyb2xsID0gMSA8PCA5LAotICAg
ICAgICBEZWxlZ2F0ZU1haW5GcmFtZVNjcm9sbCA9IDEgPDwgMTAKKyAgICAgICAgRGVsZWdhdGVN
YWluRnJhbWVTY3JvbGwgPSAxIDw8IDEwLAorICAgICAgICBTY3JvbGxUb0Z1bGxTZWxlY3Rpb24g
PSAxIDw8IDExCiAgICAgfTsKICAgICBzdGF0aWMgY29uc3RleHByIE9wdGlvblNldDxTZXRTZWxl
Y3Rpb25PcHRpb24+IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKEVVc2VyVHJpZ2dlcmVkID0g
Tm90VXNlclRyaWdnZXJlZCk7CiAKQEAgLTI2Myw3ICsyNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCB1cGRhdGVGcm9tQXNzb2NpYXRlZExpdmVSYW5nZSgpOwogCiBwcml2YXRlOgotICAgIHZvaWQg
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jiwg
U2Nyb2xsQmVoYXZpb3IgPSBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudCk7CisgICAgdm9pZCB1cGRh
dGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmLCBTY3Jv
bGxCZWhhdmlvciA9IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBSZXZlYWxFeHRlbnRPcHRpb24g
PSBSZXZlYWxFeHRlbnRPcHRpb246OlJldmVhbEV4dGVudCk7CiAgICAgdm9pZCB1cGRhdGVEYXRh
RGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAKICAgICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRV
cGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIE9wdGlvblNldDxTZXRT
ZWxlY3Rpb25PcHRpb24+LCBDdXJzb3JBbGlnbk9uU2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvU3luYXBzZVNQSS5o
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvU3luYXBzZVNQSS5oCmluZGV4IDgw
OTI4ZTA1NDViMmFiOGZmNGE3MWNkZjE3ZjI1NTliYzdjMTVhNjkuLmM3MDM5MDEyZGE2YmM4ZTI1
NDRhNzliZWE3Mzc2MDU0NzZhMWE3MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vc3BpL0NvY29hL1N5bmFwc2VTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Nw
aS9Db2NvYS9TeW5hcHNlU1BJLmgKQEAgLTM3LDYgKzM3LDggQEAgdHlwZWRlZiB2b2lkKF5TWU5v
dGVzQWN0aXZhdGlvbk9ic2VydmVySGFuZGxlcikoQk9PTCBpc1Zpc2libGUpOwogCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc1Zpc2libGUpIEJPT0wgdmlzaWJsZTsK
IAorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgdmlzaWJsZUZyYW1lOwor
CiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhIYW5kbGVyOihudWxsYWJsZSBTWU5vdGVzQWN0aXZh
dGlvbk9ic2VydmVySGFuZGxlciloYW5kbGVyOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4IDQxZGU3YjkwMjMyMWNmZGQw
NThmMzA0NmNjZmY0MjcwMTE5ZjM4MGQuLmUwZTU3NzI1ZGM1NWEyMjA5NTY3OTUwY2IyYTI1ZTBk
MDhiNzI1ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tX
ZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJW
aWV3SU9TLm1tCkBAIC0xMTUzLDYgKzExNTMsMzUgQEAgLSAodm9pZClfc2Nyb2xsVG9Db250ZW50
U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2wK
ICAgICB9CiB9CiAKKy0gKGZsb2F0KWFkanVzdFNjcm9sbFJlY3Q6KFdlYkNvcmU6OkZsb2F0UmVj
dCl0YXJnZXRSZWN0Cit7CisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgIFdlYkNvcmU6
OkZsb2F0UmVjdCBvdmVybGF5UmVjdCA9IFtzZWxmIGNvbnZlcnRSZWN0Ol9wYWdlLT5hcHBIaWdo
bGlnaHRzTm90ZU92ZXJsYXlSZWN0KCkgZnJvbUNvb3JkaW5hdGVTcGFjZTpbX3Njcm9sbFZpZXcg
d2luZG93XS5zY3JlZW4uY29vcmRpbmF0ZVNwYWNlXTsKKyAgICAKKyAgICBvdmVybGF5UmVjdC5l
eHBhbmQoNSwgNSk7CisgICAgCisgICAgaWYgKCF0YXJnZXRSZWN0LmludGVyc2VjdHMob3Zlcmxh
eVJlY3QpKQorICAgICAgICByZXR1cm4gMDsKKyAgICAKKyAgICBmbG9hdCB0b3BHYXAgPSBvdmVy
bGF5UmVjdC55KCkgLSBbc2VsZiBib3VuZHNdLm9yaWdpbi55OworICAgIGZsb2F0IGJvdHRvbUdh
cCA9IChbc2VsZiBib3VuZHNdLnNpemUuaGVpZ2h0ICsgW3NlbGYgYm91bmRzXS5vcmlnaW4ueSkg
LSBvdmVybGF5UmVjdC5tYXhZKCk7CisgICAgCisgICAgZmxvYXQgbWlkU2NyZWVuID0gW3NlbGYg
Y2VudGVyXS55OworCisgICAgaWYgKHRvcEdhcCA+IGJvdHRvbUdhcCkgeworICAgICAgICBhdXRv
IG1pZEdhcCA9IHRvcEdhcCAvIDIgKyBbc2VsZiBib3VuZHNdLm9yaWdpbi55OworICAgICAgICBh
dXRvIGRpZmYgPSBtaWRTY3JlZW4gLSBtaWRHYXA7CisgICAgICAgIHJldHVybiBkaWZmOworICAg
IH0KKyAgICAKKyAgICBhdXRvIG1pZEdhcCA9IGJvdHRvbUdhcCAvIDIgKyBbc2VsZiBib3VuZHNd
Lm9yaWdpbi55OworICAgIGF1dG8gZGlmZiA9IG1pZEdhcCAtIG1pZFNjcmVlbjsKKyAgICByZXR1
cm4gZGlmZjsKKyNlbmRpZgorICAgIHJldHVybiAwOworfQorCisKIC0gKEJPT0wpX3Njcm9sbFRv
UmVjdDooV2ViQ29yZTo6RmxvYXRSZWN0KXRhcmdldFJlY3Qgb3JpZ2luOihXZWJDb3JlOjpGbG9h
dFBvaW50KW9yaWdpbiBtaW5pbXVtU2Nyb2xsRGlzdGFuY2U6KGZsb2F0KW1pbmltdW1TY3JvbGxE
aXN0YW5jZQogewogICAgIGlmICghW19zY3JvbGxWaWV3IGlzU2Nyb2xsRW5hYmxlZF0pCkBAIC0x
MTg3LDYgKzEyMTYsMTUgQEAgLSAoQk9PTClfc2Nyb2xsVG9SZWN0OihXZWJDb3JlOjpGbG9hdFJl
Y3QpdGFyZ2V0UmVjdCBvcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQKICAgICBzY3JvbGxWaWV3
T2Zmc2V0RGVsdGEuc2NhbGUoY29udGVudFpvb21TY2FsZShzZWxmKSk7CiAKICAgICBmbG9hdCBz
Y3JvbGxEaXN0YW5jZSA9IHNjcm9sbFZpZXdPZmZzZXREZWx0YS5kaWFnb25hbExlbmd0aCgpOwor
ICAgIAorICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBzdGFydFJlY3QgPSB0YXJnZXRSZWN0OworICAg
IFdlYkNvcmU6OkZsb2F0UmVjdCBjb252ZXJ0ZWRTdGFydFJlY3QgPSBbc2VsZiBjb252ZXJ0UmVj
dDpzdGFydFJlY3QgZnJvbVZpZXc6c2VsZi5fY3VycmVudENvbnRlbnRWaWV3XTsKKyAgICBjb252
ZXJ0ZWRTdGFydFJlY3QubW92ZSgtc2Nyb2xsVmlld09mZnNldERlbHRhKTsKKworICAgIGZsb2F0
IGFkZGl0aW9uYWxPZmZzZXQgPSAgW3NlbGYgYWRqdXN0U2Nyb2xsUmVjdDpjb252ZXJ0ZWRTdGFy
dFJlY3RdOworCisgICAgc2Nyb2xsVmlld09mZnNldERlbHRhICs9IFdlYkNvcmU6OkZsb2F0U2l6
ZSgwLCBhZGRpdGlvbmFsT2Zmc2V0KTsKKyAgICAKICAgICBpZiAoc2Nyb2xsRGlzdGFuY2UgPCBt
aW5pbXVtU2Nyb2xsRGlzdGFuY2UpCiAgICAgICAgIHJldHVybiBOTzsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCA2ZDVm
ZWIzNWMzNWVjMDc3MzYwNjI0ZWQyMGU1OWJiNWU3NGYxMjJjLi45ZjY1M2YyNmI0ZTgxYjgyZjkx
MWVhYzFlNDZmZTRlOTQ3NTA3NDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtNjAzLDYgKzYwMywxMyBAQCBib29sIFdl
YlBhZ2VQcm94eTo6YXBwSGlnaGxpZ2h0c1Zpc2liaWxpdHkoKQogICAgIHJldHVybiBbbV9hcHBI
aWdobGlnaHRzT2JzZXJ2ZXIgaXNWaXNpYmxlXTsKIH0KIAorQ0dSZWN0IFdlYlBhZ2VQcm94eTo6
YXBwSGlnaGxpZ2h0c05vdGVPdmVybGF5UmVjdCgpCit7CisgICAgaWYgKCFtX2FwcEhpZ2hsaWdo
dHNPYnNlcnZlcikKKyAgICAgICAgc2V0VXBIaWdobGlnaHRzT2JzZXJ2ZXIoKTsKKyAgICByZXR1
cm4gW21fYXBwSGlnaGxpZ2h0c09ic2VydmVyIHZpc2libGVGcmFtZV07Cit9CisKIHZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRVcEhpZ2hsaWdodHNPYnNlcnZlcigpCiB7CiAgICAgaWYgKG1fYXBwSGln
aGxpZ2h0c09ic2VydmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRl
eCBhNjgzYjI3MWZlZDExOTQwNTY3NDgzOGQyN2IwODUxOTBkMjYyNTg0Li5iYTMwN2JjN2Q2MDMz
NDAwZDcyOWU1ZmM3NjE3NTY3YjFiYTRmOTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaApAQCAtMTkxMSw2ICsxOTExLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVzdG9y
ZUFwcEhpZ2hsaWdodHNBbmRTY3JvbGxUb0luZGV4KGNvbnN0IFZlY3RvcjxSZWY8V2ViS2l0OjpT
aGFyZWRNZW1vcnk+PiYgaGlnaGxpZ2h0cywgY29uc3Qgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4g
aW5kZXgpOwogICAgIHZvaWQgc2V0QXBwSGlnaGxpZ2h0c1Zpc2liaWxpdHkoY29uc3QgV2ViQ29y
ZTo6SGlnaGxpZ2h0VmlzaWJpbGl0eSk7CiAgICAgYm9vbCBhcHBIaWdobGlnaHRzVmlzaWJpbGl0
eSgpOworICAgIENHUmVjdCBhcHBIaWdobGlnaHRzTm90ZU92ZXJsYXlSZWN0KCk7CiAjZW5kaWYK
IAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433982</attachid>
            <date>2021-07-21 19:16:11 -0700</date>
            <delta_ts>2021-07-21 22:42:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228172-20210721191610.patch</filename>
            <type>text/plain</type>
            <size>14652</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5OTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk2MTZhMDgyMWExZDVj
ZDZmYmRlZjNlYjg3NGNiYjZmODk1NmMyOC4uZmQzNDJhOGZhNzNiZjNmN2U1MDUyYWYwNTAzMjM0
NmEwOGI2MjNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA3LTIxICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgUXVp
Y2sgTm90ZSBvdmVybGF5IHdoZW4gc2Nyb2xsaW5nIHRvIHNob3cgYSBoaWdobGlnaHQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODE3MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gc2Nyb2xsaW5n
IHRvIHNob3cgdGhlIHNlbGVjdGVkIGhpZ2hsaWdodCBhZnRlciBjbGlja2luZyBvbiBvbmUgaW4g
dGhlIFF1aWNrTm90ZSBvdmVybGF5LAorICAgICAgICBtYWtlIHN1cmUgdG8gYXZvaWQgdGhlIFF1
aWNrIE5vdGUgb3ZlcmxheSwgc28gdGhhdCB0aGUgdXNlciBjYW4gYWN0dWFsbHkgc2VlIHRoZSBo
aWdobGlnaHQuIAorICAgICAgICBUaGlzIHJlcXVpcmVkIGNhbGN1bGF0aW5nIG1vcmUgaW5mb3Jt
YXRpb24gYWJvdXQgdGhlIHNlbGVjdGlvbiByZWN0IGZvciBpT1MsIGFuZCBhbHNvIHBpcGluZyB0
aHJvdWdoCisgICAgICAgIGluZm9ybWF0aW9uIHRvIGhhdmUgdGhlIHNlbGVjdGlvbiByZWN0IGJl
IHRoZSBlbnRpcmUgcmVjdCwgcmF0aGVyIHRoYXQganVzdCB0aGUgY2FyZXQgYW5kIHRoZSBlbmQg
b2Ygc2VsZWN0aW9uLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0
U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGlnaHRTdG9yYWdlOjphdHRl
bXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2U6OnNldFNl
bGVjdGlvbik6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpz
ZXRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFu
ZFJldmVhbFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2Vs
ZWN0aW9uQm91bmRzIGNvbnN0KToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6
CisKIDIwMjEtMDctMTYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
IAogICAgICAgICBNYWtlIHRoZSBsYWNrIG9mIGFuIEFOR0xFIGR5bGliIHVuY29uZGl0aW9uYWxs
eSBsb2cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggYzViYWVjZjhkM2VjZTk3ODA2MzhkOWRiZmI2NzY1ZGFmMDExNmUw
OC4uMTJhN2FmMWFkOGY4Y2EzZTMyMjY5OWQ0N2M1MDY4NzE4NzIxYjI2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMyBAQAorMjAyMS0wNy0yMSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJA
YXBwbGUuY29tPgorCisgICAgICAgIEF2b2lkIFF1aWNrIE5vdGUgb3ZlcmxheSB3aGVuIHNjcm9s
bGluZyB0byBzaG93IGEgaGlnaGxpZ2h0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjgxNzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaGVuIHNjcm9sbGluZyB0byBzaG93IHRoZSBzZWxlY3RlZCBoaWdo
bGlnaHQgYWZ0ZXIgY2xpY2tpbmcgb24gb25lIGluIHRoZSBRdWlja05vdGUgb3ZlcmxheSwKKyAg
ICAgICAgbWFrZSBzdXJlIHRvIGF2b2lkIHRoZSBRdWljayBOb3RlIG92ZXJsYXksIHNvIHRoYXQg
dGhlIHVzZXIgY2FuIGFjdHVhbGx5IHNlZSB0aGUgaGlnaGxpZ2h0LiAKKyAgICAgICAgVGhpcyBy
ZXF1aXJlZCBjYWxjdWxhdGluZyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzZWxlY3Rpb24g
cmVjdCBmb3IgaU9TLCBhbmQgYWxzbyBwaXBpbmcgdGhyb3VnaAorICAgICAgICBpbmZvcm1hdGlv
biB0byBoYXZlIHRoZSBzZWxlY3Rpb24gcmVjdCBiZSB0aGUgZW50aXJlIHJlY3QsIHJhdGhlciB0
aGF0IGp1c3QgdGhlIGNhcmV0IGFuZCB0aGUgZW5kIG9mIHNlbGVjdGlvbi4KKworICAgICAgICAq
IFBsYXRmb3JtL3NwaS9Db2NvYS9TeW5hcHNlU1BJLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgYWRqdXN0U2Nyb2xs
UmVjdDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb1JlY3Q6b3JpZ2luOm1pbmlt
dW1TY3JvbGxEaXN0YW5jZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVBy
b3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YXBwSGlnaGxpZ2h0
c05vdGVPdmVybGF5UmVjdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
CiAyMDIxLTA3LTE2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkb3B0IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQgZm9yIGJhY2tpbmcgc3RvcmUg
KyBkaXNwbGF5IGxpc3QgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5k
ZXggNjZlZWUyNzNlODczZjgyZDgzODRmMzA3YmYzOGEwZTgxMzY5MTZlMi4uYmI1NjlhMjFjMDM0
ZjNmNTQ0ODIwOWY2MzhjMWIzNjhmYzU2MzQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTI3MCw4
ICsyNzAsOCBAQCBib29sIEFwcEhpZ2hsaWdodFN0b3JhZ2U6OmF0dGVtcHRUb1Jlc3RvcmVIaWdo
bGlnaHRBbmRTY3JvbGwoQXBwSGlnaGxpZ2h0UmFuZ2VEYQogICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOwogICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKICAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOwotICAgICAg
ICAKLSAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6RGVsZWdhdGVNYWluRnJhbWVTY3JvbGwsIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6U21v
b3RoU2Nyb2xsIH0pOworCisgICAgICAgIFRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZSBzZWxlY3Rp
b25DaGFuZ2UoKnN0cm9uZ0RvY3VtZW50LCB7IHJhbmdlLnZhbHVlKCkgfSwgeyBUZW1wb3JhcnlT
ZWxlY3Rpb25PcHRpb246OkRlbGVnYXRlTWFpbkZyYW1lU2Nyb2xsLCBUZW1wb3JhcnlTZWxlY3Rp
b25PcHRpb246OlNtb290aFNjcm9sbCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpSZXZlYWxT
ZWxlY3Rpb25Cb3VuZHMgfSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKaW5kZXggYzNiMTkyNWU2N2NkM2M3YWIzMzI2NTE3NWUyZTQ5OGYxZmQ1
ZWU1ZC4uNWNiNjM2OTk4YmFkMmY4ZDE4ZWUwZWFlZjg5NDAwMzAxYjVlZGQ5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjY5LDYgKzI2OSw4IEBAIHZvaWQgVGVtcG9yYXJ5U2Vs
ZWN0aW9uQ2hhbmdlOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0
aW9uKQogICAgICAgICBvcHRpb25zLmFkZChGcmFtZVNlbGVjdGlvbjo6RGVsZWdhdGVNYWluRnJh
bWVTY3JvbGwpOwogICAgIGlmIChtX29wdGlvbnMgJiBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246
OlNtb290aFNjcm9sbCkKICAgICAgICAgb3B0aW9ucy5hZGQoRnJhbWVTZWxlY3Rpb246OlNtb290
aFNjcm9sbCk7CisgICAgaWYgKG1fb3B0aW9ucyAmIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6
UmV2ZWFsU2VsZWN0aW9uQm91bmRzKQorICAgICAgICBvcHRpb25zLmFkZChGcmFtZVNlbGVjdGlv
bjo6UmV2ZWFsU2VsZWN0aW9uQm91bmRzKTsKICAgICBtX2RvY3VtZW50LT5zZWxlY3Rpb24oKS5z
ZXRTZWxlY3Rpb24oc2VsZWN0aW9uLCBvcHRpb25zKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmgKaW5kZXggZmQ1OWJmZmFlNzJkNWZhZjkyNDcyM2VmNDc5YjI4NTYwNjAzODk1NC4uNjM1NWZm
ZWIzNDYxZDNiMTJiZTFkODMzNjFiOTc4YTBmZDlmZWI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oCkBAIC0xMjIsNiArMTIyLDggQEAgZW51bSBjbGFzcyBUZW1wb3JhcnlTZWxlY3Rpb25PcHRp
b24gOiB1aW50OF90IHsKICAgICBTbW9vdGhTY3JvbGwgPSAxIDw8IDQsCiAgICAgCiAgICAgRGVs
ZWdhdGVNYWluRnJhbWVTY3JvbGwgPSAxIDw8IDUsCisgICAgCisgICAgUmV2ZWFsU2VsZWN0aW9u
Qm91bmRzID0gMSA8PCA2LAogfTsKIAogY2xhc3MgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggMWNhM2JmYmM5
MjFjNDU3OTY4NGIxMDM1MDJlNGM1MzMyYzI5MTEyNy4uMWFjMWFhYTEyNmVjNWJmYzljZDJhMmEz
NDgxZjQ1MDQ0Y2RhYWFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlv
bi5jcHAKQEAgLTgyLDYgKzgyLDcgQEAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIlJl
bmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiU2VsZWN0
aW9uR2VvbWV0cnkuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NTEsNyAr
NDUyLDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0aW9uU2V0PFMKICAgICBpZiAoZnJhbWVWaWV3ICYmIGZy
YW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygpKQogICAgICAgICByZXR1
cm47CiAKLSAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oaW50ZW50LCBvcHRpb25zLmNvbnRh
aW5zKFNtb290aFNjcm9sbCkgPyBTY3JvbGxCZWhhdmlvcjo6U21vb3RoIDogU2Nyb2xsQmVoYXZp
b3I6Okluc3RhbnQpOworICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQsIG9wdGlv
bnMuY29udGFpbnMoU21vb3RoU2Nyb2xsKSA/IFNjcm9sbEJlaGF2aW9yOjpTbW9vdGggOiBTY3Jv
bGxCZWhhdmlvcjo6SW5zdGFudCwgb3B0aW9ucy5jb250YWlucyhSZXZlYWxTZWxlY3Rpb25Cb3Vu
ZHMpID8gUmV2ZWFsRXh0ZW50T3B0aW9uOjpEb05vdFJldmVhbEV4dGVudCA6IFJldmVhbEV4dGVu
dE9wdGlvbjo6UmV2ZWFsRXh0ZW50KTsKIAogICAgIGlmIChvcHRpb25zICYgSXNVc2VyVHJpZ2dl
cmVkKSB7CiAgICAgICAgIGlmIChhdXRvKiBjbGllbnQgPSBwcm90ZWN0ZWREb2N1bWVudC0+ZWRp
dG9yKCkuY2xpZW50KCkpCkBAIC00NzgsNyArNDc5LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoUmV2ZWFsU2VsZWN0aW9uQWZ0ZXJVcGRhdGUgcmV2ZWFs
TW8KICAgICAgICAgdmlldy0+c2VsZWN0aW9uKCkuY2xlYXIoKTsKIH0KIAotdm9pZCBGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50JiBpbnRlbnQsIFNjcm9sbEJlaGF2aW9yIHNjcm9sbEJlaGF2aW9yKQordm9pZCBGcmFt
ZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50JiBpbnRlbnQsIFNjcm9sbEJlaGF2aW9yIHNjcm9sbEJlaGF2aW9yLCBSZXZlYWxF
eHRlbnRPcHRpb24gcmV2ZWFsRXh0ZW50KQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9u
VXBkYXRlKQogICAgICAgICByZXR1cm47CkBAIC00OTUsNyArNDk2LDcgQEAgdm9pZCBGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50JiBpbnQKICAgICAgICAgZWxzZQogICAgICAgICAgICAgYWxpZ25tZW50ID0gbV9hbHdh
eXNBbGlnbkN1cnNvck9uU2Nyb2xsV2hlblJldmVhbGluZ1NlbGVjdGlvbiA/IFNjcm9sbEFsaWdu
bWVudDo6YWxpZ25Ub3BBbHdheXMgOiBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVk
ZWQ7CiAKLSAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKG1fc2VsZWN0aW9uUmV2ZWFsTW9kZSwgYWxp
Z25tZW50LCBSZXZlYWxFeHRlbnQsIHNjcm9sbEJlaGF2aW9yKTsKKyAgICAgICAgcmV2ZWFsU2Vs
ZWN0aW9uKG1fc2VsZWN0aW9uUmV2ZWFsTW9kZSwgYWxpZ25tZW50LCByZXZlYWxFeHRlbnQsIHNj
cm9sbEJlaGF2aW9yKTsKICAgICB9CiAKICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKGludGVudCk7CkBAIC0yMzI1LDE0ICsyMzI2LDI3IEBAIEZsb2F0UmVjdCBGcmFt
ZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzKENsaXBUb1Zpc2libGVDb250ZW50IGNsaXBUb1Zp
c2libGVDb250CiAgICAgaWYgKCFyZW5kZXJWaWV3KQogICAgICAgICByZXR1cm4gTGF5b3V0UmVj
dCgpOwogCisgICAgaWYgKCFtX3NlbGVjdGlvbi5yYW5nZSgpKQorICAgICAgICByZXR1cm4gTGF5
b3V0UmVjdCgpOworICAgIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYXV0byBzZWxl
Y3Rpb25HZW9tZXRyaWVzID0gUmVuZGVyT2JqZWN0Ojpjb2xsZWN0U2VsZWN0aW9uR2VvbWV0cmll
cyhtX3NlbGVjdGlvbi5yYW5nZSgpLnZhbHVlKCkpOworICAgIGF1dG8gdmlzaWJsZVNlbGVjdGlv
blJlY3QgPSBJbnRSZWN0KCk7CisgICAgZm9yIChhdXRvIGdlb21ldHJ5IDogc2VsZWN0aW9uR2Vv
bWV0cmllcykKKyAgICAgICAgdmlzaWJsZVNlbGVjdGlvblJlY3QudW5pdGUoZ2VvbWV0cnkucmVj
dCgpKTsKKyAgICAKKyAgICBpZiAoY2xpcFRvVmlzaWJsZUNvbnRlbnQgPT0gQ2xpcFRvVmlzaWJs
ZUNvbnRlbnQ6Ok5vKQorICAgICAgICByZXR1cm4gdmlzaWJsZVNlbGVjdGlvblJlY3Q7CisjZWxz
ZQogICAgIGF1dG8mIHNlbGVjdGlvbiA9IHJlbmRlclZpZXctPnNlbGVjdGlvbigpOworICAgIGF1
dG8gdmlzaWJsZVNlbGVjdGlvblJlY3QgPSBzZWxlY3Rpb24uYm91bmRzQ2xpcHBlZFRvVmlzaWJs
ZUNvbnRlbnQoKTsKKyAgICAKKyAgICBpZiAoY2xpcFRvVmlzaWJsZUNvbnRlbnQgPT0gQ2xpcFRv
VmlzaWJsZUNvbnRlbnQ6Ok5vKQorICAgICAgICByZXR1cm4gc2VsZWN0aW9uLmJvdW5kcygpOwor
I2VuZGlmCisgICAgCisgICAgcmV0dXJuIGludGVyc2VjdGlvbih2aXNpYmxlU2VsZWN0aW9uUmVj
dCwgcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCkudmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVB
cmVhOjpMZWdhY3lJT1NEb2N1bWVudFZpc2libGVSZWN0KSk7CiAKLSAgICBpZiAoY2xpcFRvVmlz
aWJsZUNvbnRlbnQgPT0gQ2xpcFRvVmlzaWJsZUNvbnRlbnQ6OlllcykgewotICAgICAgICBhdXRv
IHNlbGVjdGlvblJlY3QgPSBzZWxlY3Rpb24uYm91bmRzQ2xpcHBlZFRvVmlzaWJsZUNvbnRlbnQo
KTsKLSAgICAgICAgcmV0dXJuIGludGVyc2VjdGlvbihzZWxlY3Rpb25SZWN0LCByZW5kZXJWaWV3
LT5mcmFtZVZpZXcoKS52aXNpYmxlQ29udGVudFJlY3QoU2Nyb2xsYWJsZUFyZWE6OkxlZ2FjeUlP
U0RvY3VtZW50VmlzaWJsZVJlY3QpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc2VsZWN0aW9uLmJv
dW5kcygpOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjpnZXRDbGlwcGVkVmlzaWJsZVRleHRS
ZWN0YW5nbGVzKFZlY3RvcjxGbG9hdFJlY3Q+JiByZWN0YW5nbGVzLCBUZXh0UmVjdGFuZ2xlSGVp
Z2h0IHRleHRSZWN0SGVpZ2h0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVj
dGlvbi5oCmluZGV4IDdlMWQ4OTQ5ZDA3MTc5NTAxMzcyOTc1OTNkOTE5OWY0N2JlNDk1MmUuLmI0
YzEwOTk1NzIwMDE4ODhhNDdmZDgwMjM2YjBjYjJkYTI1Zjg3ODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTEyNCw3ICsxMjQsOCBAQCBwdWJsaWM6CiAgICAg
ICAgIFJldmVhbFNlbGVjdGlvbiA9IDEgPDwgNywKICAgICAgICAgUmV2ZWFsU2VsZWN0aW9uVXBU
b01haW5GcmFtZSA9IDEgPDwgOCwKICAgICAgICAgU21vb3RoU2Nyb2xsID0gMSA8PCA5LAotICAg
ICAgICBEZWxlZ2F0ZU1haW5GcmFtZVNjcm9sbCA9IDEgPDwgMTAKKyAgICAgICAgRGVsZWdhdGVN
YWluRnJhbWVTY3JvbGwgPSAxIDw8IDEwLAorICAgICAgICBSZXZlYWxTZWxlY3Rpb25Cb3VuZHMg
PSAxIDw8IDExCiAgICAgfTsKICAgICBzdGF0aWMgY29uc3RleHByIE9wdGlvblNldDxTZXRTZWxl
Y3Rpb25PcHRpb24+IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKEVVc2VyVHJpZ2dlcmVkID0g
Tm90VXNlclRyaWdnZXJlZCk7CiAKQEAgLTI2Myw3ICsyNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCB1cGRhdGVGcm9tQXNzb2NpYXRlZExpdmVSYW5nZSgpOwogCiBwcml2YXRlOgotICAgIHZvaWQg
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jiwg
U2Nyb2xsQmVoYXZpb3IgPSBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudCk7CisgICAgdm9pZCB1cGRh
dGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmLCBTY3Jv
bGxCZWhhdmlvciA9IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBSZXZlYWxFeHRlbnRPcHRpb24g
PSBSZXZlYWxFeHRlbnRPcHRpb246OlJldmVhbEV4dGVudCk7CiAgICAgdm9pZCB1cGRhdGVEYXRh
RGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAKICAgICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRV
cGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIE9wdGlvblNldDxTZXRT
ZWxlY3Rpb25PcHRpb24+LCBDdXJzb3JBbGlnbk9uU2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvU3luYXBzZVNQSS5o
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvU3luYXBzZVNQSS5oCmluZGV4IDgw
OTI4ZTA1NDViMmFiOGZmNGE3MWNkZjE3ZjI1NTliYzdjMTVhNjkuLmM3MDM5MDEyZGE2YmM4ZTI1
NDRhNzliZWE3Mzc2MDU0NzZhMWE3MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vc3BpL0NvY29hL1N5bmFwc2VTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Nw
aS9Db2NvYS9TeW5hcHNlU1BJLmgKQEAgLTM3LDYgKzM3LDggQEAgdHlwZWRlZiB2b2lkKF5TWU5v
dGVzQWN0aXZhdGlvbk9ic2VydmVySGFuZGxlcikoQk9PTCBpc1Zpc2libGUpOwogCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc1Zpc2libGUpIEJPT0wgdmlzaWJsZTsK
IAorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgdmlzaWJsZUZyYW1lOwor
CiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhIYW5kbGVyOihudWxsYWJsZSBTWU5vdGVzQWN0aXZh
dGlvbk9ic2VydmVySGFuZGxlciloYW5kbGVyOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4IDQxZGU3YjkwMjMyMWNmZGQw
NThmMzA0NmNjZmY0MjcwMTE5ZjM4MGQuLjJmZDIyMGUwNDZiYTRjNDkyMDc1ZjI5Mzk1NDRjZGUx
YjAwMzYzZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tX
ZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJW
aWV3SU9TLm1tCkBAIC04Myw2ICs4Myw3IEBAIC0gKHZvaWQpX2FjdGlvbjooaWQpc2VuZGVyIFwK
IAogc3RhdGljIGNvbnN0IFNlY29uZHMgZGVsYXlCZWZvcmVOb1Zpc2libGVDb250ZW50c1JlY3Rz
TG9nZ2luZyA9IDFfczsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIGRlbGF5QmVmb3JlTm9Db21taXRz
TG9nZ2luZyA9IDVfczsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBoaWdobGlnaHRNYXJnaW4gPSA1
OwogCiBzdGF0aWMgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbkZvclVJSW50ZXJmYWNlT3JpZW50
YXRpb24oVUlJbnRlcmZhY2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKIHsKQEAgLTExNTMsNiAr
MTE1NCwzOCBAQCAtICh2b2lkKV9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29y
ZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlvbiBzY3JvbAogICAgIH0KIH0KIAorLSAoZmxvYXQp
X2FkanVzdFNjcm9sbFJlY3RUb0F2b2lkSGlnaGxpZ2h0T3ZlcmxheTooV2ViQ29yZTo6RmxvYXRS
ZWN0KXRhcmdldFJlY3QKK3sKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgV2ViQ29y
ZTo6RmxvYXRSZWN0IG92ZXJsYXlSZWN0ID0gW3NlbGYgY29udmVydFJlY3Q6X3BhZ2UtPmFwcEhp
Z2hsaWdodHNPdmVybGF5UmVjdCgpIGZyb21Db29yZGluYXRlU3BhY2U6c2VsZi53aW5kb3cuc2Ny
ZWVuLmNvb3JkaW5hdGVTcGFjZV07CisgICAgCisgICAgaWYgKG92ZXJsYXlSZWN0ID09IENHUmVj
dE51bGwpCisgICAgICAgIHJldHVybiAwOworICAgICAgICAKKyAgICBvdmVybGF5UmVjdC5leHBh
bmQoaGlnaGxpZ2h0TWFyZ2luLCBoaWdobGlnaHRNYXJnaW4pOworICAgIAorICAgIGlmICghdGFy
Z2V0UmVjdC5pbnRlcnNlY3RzKG92ZXJsYXlSZWN0KSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
CisgICAgZmxvYXQgdG9wR2FwID0gb3ZlcmxheVJlY3QueSgpIC0gW3NlbGYgYm91bmRzXS5vcmln
aW4ueTsKKyAgICBmbG9hdCBib3R0b21HYXAgPSAoc2VsZi5ib3VuZHMuc2l6ZS5oZWlnaHQgKyBz
ZWxmLmJvdW5kcy5vcmlnaW4ueSkgLSBvdmVybGF5UmVjdC5tYXhZKCk7CisgICAgCisgICAgZmxv
YXQgbWlkU2NyZWVuID0gW3NlbGYgY2VudGVyXS55OworCisgICAgaWYgKHRvcEdhcCA+IGJvdHRv
bUdhcCkgeworICAgICAgICBhdXRvIG1pZEdhcCA9IHRvcEdhcCAvIDIgKyBzZWxmLmJvdW5kcy5v
cmlnaW4ueTsKKyAgICAgICAgYXV0byBkaWZmID0gbWlkU2NyZWVuIC0gbWlkR2FwOworICAgICAg
ICByZXR1cm4gZGlmZjsKKyAgICB9CisgICAgCisgICAgYXV0byBtaWRHYXAgPSBib3R0b21HYXAg
LyAyICsgc2VsZi5ib3VuZHMub3JpZ2luLnk7CisgICAgYXV0byBkaWZmID0gbWlkR2FwIC0gbWlk
U2NyZWVuOworICAgIHJldHVybiBkaWZmOworI2VuZGlmCisgICAgcmV0dXJuIDA7Cit9CisKKwog
LSAoQk9PTClfc2Nyb2xsVG9SZWN0OihXZWJDb3JlOjpGbG9hdFJlY3QpdGFyZ2V0UmVjdCBvcmln
aW46KFdlYkNvcmU6OkZsb2F0UG9pbnQpb3JpZ2luIG1pbmltdW1TY3JvbGxEaXN0YW5jZTooZmxv
YXQpbWluaW11bVNjcm9sbERpc3RhbmNlCiB7CiAgICAgaWYgKCFbX3Njcm9sbFZpZXcgaXNTY3Jv
bGxFbmFibGVkXSkKQEAgLTExODcsNiArMTIyMCwxNSBAQCAtIChCT09MKV9zY3JvbGxUb1JlY3Q6
KFdlYkNvcmU6OkZsb2F0UmVjdCl0YXJnZXRSZWN0IG9yaWdpbjooV2ViQ29yZTo6RmxvYXRQb2lu
dAogICAgIHNjcm9sbFZpZXdPZmZzZXREZWx0YS5zY2FsZShjb250ZW50Wm9vbVNjYWxlKHNlbGYp
KTsKIAogICAgIGZsb2F0IHNjcm9sbERpc3RhbmNlID0gc2Nyb2xsVmlld09mZnNldERlbHRhLmRp
YWdvbmFsTGVuZ3RoKCk7CisgICAgCisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHN0YXJ0UmVjdCA9
IHRhcmdldFJlY3Q7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZlcnRlZFN0YXJ0UmVjdCA9
IFtzZWxmIGNvbnZlcnRSZWN0OnN0YXJ0UmVjdCBmcm9tVmlldzpzZWxmLl9jdXJyZW50Q29udGVu
dFZpZXddOworICAgIGNvbnZlcnRlZFN0YXJ0UmVjdC5tb3ZlKC1zY3JvbGxWaWV3T2Zmc2V0RGVs
dGEpOworCisgICAgZmxvYXQgYWRkaXRpb25hbE9mZnNldCA9IFtzZWxmIF9hZGp1c3RTY3JvbGxS
ZWN0VG9Bdm9pZEhpZ2hsaWdodE92ZXJsYXk6Y29udmVydGVkU3RhcnRSZWN0XTsKKworICAgIHNj
cm9sbFZpZXdPZmZzZXREZWx0YSArPSBXZWJDb3JlOjpGbG9hdFNpemUoMCwgYWRkaXRpb25hbE9m
ZnNldCk7CisgICAgCiAgICAgaWYgKHNjcm9sbERpc3RhbmNlIDwgbWluaW11bVNjcm9sbERpc3Rh
bmNlKQogICAgICAgICByZXR1cm4gTk87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KaW5kZXggNmQ1ZmViMzVjMzVlYzA3NzM2MDYy
NGVkMjBlNTliYjVlNzRmMTIyYy4uZDg5ZWJhMmIxMzQ3MWM0YTNjZTk3OTgyZmZiZjdhN2ViYmZm
YzljZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVBy
b3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVBy
b3h5Q29jb2EubW0KQEAgLTYwMyw2ICs2MDMsMTMgQEAgYm9vbCBXZWJQYWdlUHJveHk6OmFwcEhp
Z2hsaWdodHNWaXNpYmlsaXR5KCkKICAgICByZXR1cm4gW21fYXBwSGlnaGxpZ2h0c09ic2VydmVy
IGlzVmlzaWJsZV07CiB9CiAKK0NHUmVjdCBXZWJQYWdlUHJveHk6OmFwcEhpZ2hsaWdodHNPdmVy
bGF5UmVjdCgpCit7CisgICAgaWYgKCFtX2FwcEhpZ2hsaWdodHNPYnNlcnZlcikKKyAgICAgICAg
c2V0VXBIaWdobGlnaHRzT2JzZXJ2ZXIoKTsKKyAgICByZXR1cm4gW21fYXBwSGlnaGxpZ2h0c09i
c2VydmVyIHZpc2libGVGcmFtZV07Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRVcEhpZ2hs
aWdodHNPYnNlcnZlcigpCiB7CiAgICAgaWYgKG1fYXBwSGlnaGxpZ2h0c09ic2VydmVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBhNjgzYjI3MWZlZDExOTQwNTY3
NDgzOGQyN2IwODUxOTBkMjYyNTg0Li45NzQ0ZGFlODFhYThjZDk0MzI3YTIwNzM1NDY1ZWE0YzE4
OTkxMWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTkxMSw2
ICsxOTExLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVzdG9yZUFwcEhpZ2hsaWdodHNBbmRTY3Jv
bGxUb0luZGV4KGNvbnN0IFZlY3RvcjxSZWY8V2ViS2l0OjpTaGFyZWRNZW1vcnk+PiYgaGlnaGxp
Z2h0cywgY29uc3Qgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gaW5kZXgpOwogICAgIHZvaWQgc2V0
QXBwSGlnaGxpZ2h0c1Zpc2liaWxpdHkoY29uc3QgV2ViQ29yZTo6SGlnaGxpZ2h0VmlzaWJpbGl0
eSk7CiAgICAgYm9vbCBhcHBIaWdobGlnaHRzVmlzaWJpbGl0eSgpOworICAgIENHUmVjdCBhcHBI
aWdobGlnaHRzT3ZlcmxheVJlY3QoKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433992</attachid>
            <date>2021-07-21 22:42:59 -0700</date>
            <delta_ts>2021-07-22 09:24:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228172-20210721224257.patch</filename>
            <type>text/plain</type>
            <size>14659</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5OTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk2MTZhMDgyMWExZDVj
ZDZmYmRlZjNlYjg3NGNiYjZmODk1NmMyOC4uZmQzNDJhOGZhNzNiZjNmN2U1MDUyYWYwNTAzMjM0
NmEwOGI2MjNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA3LTIxICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgUXVp
Y2sgTm90ZSBvdmVybGF5IHdoZW4gc2Nyb2xsaW5nIHRvIHNob3cgYSBoaWdobGlnaHQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODE3MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gc2Nyb2xsaW5n
IHRvIHNob3cgdGhlIHNlbGVjdGVkIGhpZ2hsaWdodCBhZnRlciBjbGlja2luZyBvbiBvbmUgaW4g
dGhlIFF1aWNrTm90ZSBvdmVybGF5LAorICAgICAgICBtYWtlIHN1cmUgdG8gYXZvaWQgdGhlIFF1
aWNrIE5vdGUgb3ZlcmxheSwgc28gdGhhdCB0aGUgdXNlciBjYW4gYWN0dWFsbHkgc2VlIHRoZSBo
aWdobGlnaHQuIAorICAgICAgICBUaGlzIHJlcXVpcmVkIGNhbGN1bGF0aW5nIG1vcmUgaW5mb3Jt
YXRpb24gYWJvdXQgdGhlIHNlbGVjdGlvbiByZWN0IGZvciBpT1MsIGFuZCBhbHNvIHBpcGluZyB0
aHJvdWdoCisgICAgICAgIGluZm9ybWF0aW9uIHRvIGhhdmUgdGhlIHNlbGVjdGlvbiByZWN0IGJl
IHRoZSBlbnRpcmUgcmVjdCwgcmF0aGVyIHRoYXQganVzdCB0aGUgY2FyZXQgYW5kIHRoZSBlbmQg
b2Ygc2VsZWN0aW9uLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0
U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGlnaHRTdG9yYWdlOjphdHRl
bXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2U6OnNldFNl
bGVjdGlvbik6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpz
ZXRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFu
ZFJldmVhbFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2Vs
ZWN0aW9uQm91bmRzIGNvbnN0KToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6
CisKIDIwMjEtMDctMTYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
IAogICAgICAgICBNYWtlIHRoZSBsYWNrIG9mIGFuIEFOR0xFIGR5bGliIHVuY29uZGl0aW9uYWxs
eSBsb2cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggYzViYWVjZjhkM2VjZTk3ODA2MzhkOWRiZmI2NzY1ZGFmMDExNmUw
OC4uMTJhN2FmMWFkOGY4Y2EzZTMyMjY5OWQ0N2M1MDY4NzE4NzIxYjI2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMyBAQAorMjAyMS0wNy0yMSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJA
YXBwbGUuY29tPgorCisgICAgICAgIEF2b2lkIFF1aWNrIE5vdGUgb3ZlcmxheSB3aGVuIHNjcm9s
bGluZyB0byBzaG93IGEgaGlnaGxpZ2h0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjgxNzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaGVuIHNjcm9sbGluZyB0byBzaG93IHRoZSBzZWxlY3RlZCBoaWdo
bGlnaHQgYWZ0ZXIgY2xpY2tpbmcgb24gb25lIGluIHRoZSBRdWlja05vdGUgb3ZlcmxheSwKKyAg
ICAgICAgbWFrZSBzdXJlIHRvIGF2b2lkIHRoZSBRdWljayBOb3RlIG92ZXJsYXksIHNvIHRoYXQg
dGhlIHVzZXIgY2FuIGFjdHVhbGx5IHNlZSB0aGUgaGlnaGxpZ2h0LiAKKyAgICAgICAgVGhpcyBy
ZXF1aXJlZCBjYWxjdWxhdGluZyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzZWxlY3Rpb24g
cmVjdCBmb3IgaU9TLCBhbmQgYWxzbyBwaXBpbmcgdGhyb3VnaAorICAgICAgICBpbmZvcm1hdGlv
biB0byBoYXZlIHRoZSBzZWxlY3Rpb24gcmVjdCBiZSB0aGUgZW50aXJlIHJlY3QsIHJhdGhlciB0
aGF0IGp1c3QgdGhlIGNhcmV0IGFuZCB0aGUgZW5kIG9mIHNlbGVjdGlvbi4KKworICAgICAgICAq
IFBsYXRmb3JtL3NwaS9Db2NvYS9TeW5hcHNlU1BJLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgYWRqdXN0U2Nyb2xs
UmVjdDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb1JlY3Q6b3JpZ2luOm1pbmlt
dW1TY3JvbGxEaXN0YW5jZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVBy
b3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YXBwSGlnaGxpZ2h0
c05vdGVPdmVybGF5UmVjdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
CiAyMDIxLTA3LTE2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkb3B0IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQgZm9yIGJhY2tpbmcgc3RvcmUg
KyBkaXNwbGF5IGxpc3QgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5k
ZXggNjZlZWUyNzNlODczZjgyZDgzODRmMzA3YmYzOGEwZTgxMzY5MTZlMi4uYmI1NjlhMjFjMDM0
ZjNmNTQ0ODIwOWY2MzhjMWIzNjhmYzU2MzQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTI3MCw4
ICsyNzAsOCBAQCBib29sIEFwcEhpZ2hsaWdodFN0b3JhZ2U6OmF0dGVtcHRUb1Jlc3RvcmVIaWdo
bGlnaHRBbmRTY3JvbGwoQXBwSGlnaGxpZ2h0UmFuZ2VEYQogICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOwogICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKICAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOwotICAgICAg
ICAKLSAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6RGVsZWdhdGVNYWluRnJhbWVTY3JvbGwsIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6U21v
b3RoU2Nyb2xsIH0pOworCisgICAgICAgIFRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZSBzZWxlY3Rp
b25DaGFuZ2UoKnN0cm9uZ0RvY3VtZW50LCB7IHJhbmdlLnZhbHVlKCkgfSwgeyBUZW1wb3JhcnlT
ZWxlY3Rpb25PcHRpb246OkRlbGVnYXRlTWFpbkZyYW1lU2Nyb2xsLCBUZW1wb3JhcnlTZWxlY3Rp
b25PcHRpb246OlNtb290aFNjcm9sbCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpSZXZlYWxT
ZWxlY3Rpb25Cb3VuZHMgfSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKaW5kZXggYzNiMTkyNWU2N2NkM2M3YWIzMzI2NTE3NWUyZTQ5OGYxZmQ1
ZWU1ZC4uNWNiNjM2OTk4YmFkMmY4ZDE4ZWUwZWFlZjg5NDAwMzAxYjVlZGQ5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjY5LDYgKzI2OSw4IEBAIHZvaWQgVGVtcG9yYXJ5U2Vs
ZWN0aW9uQ2hhbmdlOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0
aW9uKQogICAgICAgICBvcHRpb25zLmFkZChGcmFtZVNlbGVjdGlvbjo6RGVsZWdhdGVNYWluRnJh
bWVTY3JvbGwpOwogICAgIGlmIChtX29wdGlvbnMgJiBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246
OlNtb290aFNjcm9sbCkKICAgICAgICAgb3B0aW9ucy5hZGQoRnJhbWVTZWxlY3Rpb246OlNtb290
aFNjcm9sbCk7CisgICAgaWYgKG1fb3B0aW9ucyAmIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6
UmV2ZWFsU2VsZWN0aW9uQm91bmRzKQorICAgICAgICBvcHRpb25zLmFkZChGcmFtZVNlbGVjdGlv
bjo6UmV2ZWFsU2VsZWN0aW9uQm91bmRzKTsKICAgICBtX2RvY3VtZW50LT5zZWxlY3Rpb24oKS5z
ZXRTZWxlY3Rpb24oc2VsZWN0aW9uLCBvcHRpb25zKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmgKaW5kZXggZmQ1OWJmZmFlNzJkNWZhZjkyNDcyM2VmNDc5YjI4NTYwNjAzODk1NC4uNjM1NWZm
ZWIzNDYxZDNiMTJiZTFkODMzNjFiOTc4YTBmZDlmZWI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oCkBAIC0xMjIsNiArMTIyLDggQEAgZW51bSBjbGFzcyBUZW1wb3JhcnlTZWxlY3Rpb25PcHRp
b24gOiB1aW50OF90IHsKICAgICBTbW9vdGhTY3JvbGwgPSAxIDw8IDQsCiAgICAgCiAgICAgRGVs
ZWdhdGVNYWluRnJhbWVTY3JvbGwgPSAxIDw8IDUsCisgICAgCisgICAgUmV2ZWFsU2VsZWN0aW9u
Qm91bmRzID0gMSA8PCA2LAogfTsKIAogY2xhc3MgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggMWNhM2JmYmM5
MjFjNDU3OTY4NGIxMDM1MDJlNGM1MzMyYzI5MTEyNy4uMWFjMWFhYTEyNmVjNWJmYzljZDJhMmEz
NDgxZjQ1MDQ0Y2RhYWFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlv
bi5jcHAKQEAgLTgyLDYgKzgyLDcgQEAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIlJl
bmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiU2VsZWN0
aW9uR2VvbWV0cnkuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NTEsNyAr
NDUyLDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0aW9uU2V0PFMKICAgICBpZiAoZnJhbWVWaWV3ICYmIGZy
YW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygpKQogICAgICAgICByZXR1
cm47CiAKLSAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oaW50ZW50LCBvcHRpb25zLmNvbnRh
aW5zKFNtb290aFNjcm9sbCkgPyBTY3JvbGxCZWhhdmlvcjo6U21vb3RoIDogU2Nyb2xsQmVoYXZp
b3I6Okluc3RhbnQpOworICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQsIG9wdGlv
bnMuY29udGFpbnMoU21vb3RoU2Nyb2xsKSA/IFNjcm9sbEJlaGF2aW9yOjpTbW9vdGggOiBTY3Jv
bGxCZWhhdmlvcjo6SW5zdGFudCwgb3B0aW9ucy5jb250YWlucyhSZXZlYWxTZWxlY3Rpb25Cb3Vu
ZHMpID8gUmV2ZWFsRXh0ZW50T3B0aW9uOjpEb05vdFJldmVhbEV4dGVudCA6IFJldmVhbEV4dGVu
dE9wdGlvbjo6UmV2ZWFsRXh0ZW50KTsKIAogICAgIGlmIChvcHRpb25zICYgSXNVc2VyVHJpZ2dl
cmVkKSB7CiAgICAgICAgIGlmIChhdXRvKiBjbGllbnQgPSBwcm90ZWN0ZWREb2N1bWVudC0+ZWRp
dG9yKCkuY2xpZW50KCkpCkBAIC00NzgsNyArNDc5LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoUmV2ZWFsU2VsZWN0aW9uQWZ0ZXJVcGRhdGUgcmV2ZWFs
TW8KICAgICAgICAgdmlldy0+c2VsZWN0aW9uKCkuY2xlYXIoKTsKIH0KIAotdm9pZCBGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50JiBpbnRlbnQsIFNjcm9sbEJlaGF2aW9yIHNjcm9sbEJlaGF2aW9yKQordm9pZCBGcmFt
ZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50JiBpbnRlbnQsIFNjcm9sbEJlaGF2aW9yIHNjcm9sbEJlaGF2aW9yLCBSZXZlYWxF
eHRlbnRPcHRpb24gcmV2ZWFsRXh0ZW50KQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9u
VXBkYXRlKQogICAgICAgICByZXR1cm47CkBAIC00OTUsNyArNDk2LDcgQEAgdm9pZCBGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50JiBpbnQKICAgICAgICAgZWxzZQogICAgICAgICAgICAgYWxpZ25tZW50ID0gbV9hbHdh
eXNBbGlnbkN1cnNvck9uU2Nyb2xsV2hlblJldmVhbGluZ1NlbGVjdGlvbiA/IFNjcm9sbEFsaWdu
bWVudDo6YWxpZ25Ub3BBbHdheXMgOiBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVk
ZWQ7CiAKLSAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKG1fc2VsZWN0aW9uUmV2ZWFsTW9kZSwgYWxp
Z25tZW50LCBSZXZlYWxFeHRlbnQsIHNjcm9sbEJlaGF2aW9yKTsKKyAgICAgICAgcmV2ZWFsU2Vs
ZWN0aW9uKG1fc2VsZWN0aW9uUmV2ZWFsTW9kZSwgYWxpZ25tZW50LCByZXZlYWxFeHRlbnQsIHNj
cm9sbEJlaGF2aW9yKTsKICAgICB9CiAKICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKGludGVudCk7CkBAIC0yMzI1LDE0ICsyMzI2LDI3IEBAIEZsb2F0UmVjdCBGcmFt
ZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzKENsaXBUb1Zpc2libGVDb250ZW50IGNsaXBUb1Zp
c2libGVDb250CiAgICAgaWYgKCFyZW5kZXJWaWV3KQogICAgICAgICByZXR1cm4gTGF5b3V0UmVj
dCgpOwogCisgICAgaWYgKCFtX3NlbGVjdGlvbi5yYW5nZSgpKQorICAgICAgICByZXR1cm4gTGF5
b3V0UmVjdCgpOworICAgIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYXV0byBzZWxl
Y3Rpb25HZW9tZXRyaWVzID0gUmVuZGVyT2JqZWN0Ojpjb2xsZWN0U2VsZWN0aW9uR2VvbWV0cmll
cyhtX3NlbGVjdGlvbi5yYW5nZSgpLnZhbHVlKCkpOworICAgIGF1dG8gdmlzaWJsZVNlbGVjdGlv
blJlY3QgPSBJbnRSZWN0KCk7CisgICAgZm9yIChhdXRvIGdlb21ldHJ5IDogc2VsZWN0aW9uR2Vv
bWV0cmllcykKKyAgICAgICAgdmlzaWJsZVNlbGVjdGlvblJlY3QudW5pdGUoZ2VvbWV0cnkucmVj
dCgpKTsKKyAgICAKKyAgICBpZiAoY2xpcFRvVmlzaWJsZUNvbnRlbnQgPT0gQ2xpcFRvVmlzaWJs
ZUNvbnRlbnQ6Ok5vKQorICAgICAgICByZXR1cm4gdmlzaWJsZVNlbGVjdGlvblJlY3Q7CisjZWxz
ZQogICAgIGF1dG8mIHNlbGVjdGlvbiA9IHJlbmRlclZpZXctPnNlbGVjdGlvbigpOworICAgIGF1
dG8gdmlzaWJsZVNlbGVjdGlvblJlY3QgPSBzZWxlY3Rpb24uYm91bmRzQ2xpcHBlZFRvVmlzaWJs
ZUNvbnRlbnQoKTsKKyAgICAKKyAgICBpZiAoY2xpcFRvVmlzaWJsZUNvbnRlbnQgPT0gQ2xpcFRv
VmlzaWJsZUNvbnRlbnQ6Ok5vKQorICAgICAgICByZXR1cm4gc2VsZWN0aW9uLmJvdW5kcygpOwor
I2VuZGlmCisgICAgCisgICAgcmV0dXJuIGludGVyc2VjdGlvbih2aXNpYmxlU2VsZWN0aW9uUmVj
dCwgcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCkudmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVB
cmVhOjpMZWdhY3lJT1NEb2N1bWVudFZpc2libGVSZWN0KSk7CiAKLSAgICBpZiAoY2xpcFRvVmlz
aWJsZUNvbnRlbnQgPT0gQ2xpcFRvVmlzaWJsZUNvbnRlbnQ6OlllcykgewotICAgICAgICBhdXRv
IHNlbGVjdGlvblJlY3QgPSBzZWxlY3Rpb24uYm91bmRzQ2xpcHBlZFRvVmlzaWJsZUNvbnRlbnQo
KTsKLSAgICAgICAgcmV0dXJuIGludGVyc2VjdGlvbihzZWxlY3Rpb25SZWN0LCByZW5kZXJWaWV3
LT5mcmFtZVZpZXcoKS52aXNpYmxlQ29udGVudFJlY3QoU2Nyb2xsYWJsZUFyZWE6OkxlZ2FjeUlP
U0RvY3VtZW50VmlzaWJsZVJlY3QpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc2VsZWN0aW9uLmJv
dW5kcygpOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjpnZXRDbGlwcGVkVmlzaWJsZVRleHRS
ZWN0YW5nbGVzKFZlY3RvcjxGbG9hdFJlY3Q+JiByZWN0YW5nbGVzLCBUZXh0UmVjdGFuZ2xlSGVp
Z2h0IHRleHRSZWN0SGVpZ2h0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVj
dGlvbi5oCmluZGV4IDdlMWQ4OTQ5ZDA3MTc5NTAxMzcyOTc1OTNkOTE5OWY0N2JlNDk1MmUuLmI0
YzEwOTk1NzIwMDE4ODhhNDdmZDgwMjM2YjBjYjJkYTI1Zjg3ODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTEyNCw3ICsxMjQsOCBAQCBwdWJsaWM6CiAgICAg
ICAgIFJldmVhbFNlbGVjdGlvbiA9IDEgPDwgNywKICAgICAgICAgUmV2ZWFsU2VsZWN0aW9uVXBU
b01haW5GcmFtZSA9IDEgPDwgOCwKICAgICAgICAgU21vb3RoU2Nyb2xsID0gMSA8PCA5LAotICAg
ICAgICBEZWxlZ2F0ZU1haW5GcmFtZVNjcm9sbCA9IDEgPDwgMTAKKyAgICAgICAgRGVsZWdhdGVN
YWluRnJhbWVTY3JvbGwgPSAxIDw8IDEwLAorICAgICAgICBSZXZlYWxTZWxlY3Rpb25Cb3VuZHMg
PSAxIDw8IDExCiAgICAgfTsKICAgICBzdGF0aWMgY29uc3RleHByIE9wdGlvblNldDxTZXRTZWxl
Y3Rpb25PcHRpb24+IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKEVVc2VyVHJpZ2dlcmVkID0g
Tm90VXNlclRyaWdnZXJlZCk7CiAKQEAgLTI2Myw3ICsyNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCB1cGRhdGVGcm9tQXNzb2NpYXRlZExpdmVSYW5nZSgpOwogCiBwcml2YXRlOgotICAgIHZvaWQg
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jiwg
U2Nyb2xsQmVoYXZpb3IgPSBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudCk7CisgICAgdm9pZCB1cGRh
dGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmLCBTY3Jv
bGxCZWhhdmlvciA9IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBSZXZlYWxFeHRlbnRPcHRpb24g
PSBSZXZlYWxFeHRlbnRPcHRpb246OlJldmVhbEV4dGVudCk7CiAgICAgdm9pZCB1cGRhdGVEYXRh
RGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAKICAgICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRV
cGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIE9wdGlvblNldDxTZXRT
ZWxlY3Rpb25PcHRpb24+LCBDdXJzb3JBbGlnbk9uU2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvU3luYXBzZVNQSS5o
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvU3luYXBzZVNQSS5oCmluZGV4IDgw
OTI4ZTA1NDViMmFiOGZmNGE3MWNkZjE3ZjI1NTliYzdjMTVhNjkuLmM3MDM5MDEyZGE2YmM4ZTI1
NDRhNzliZWE3Mzc2MDU0NzZhMWE3MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vc3BpL0NvY29hL1N5bmFwc2VTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Nw
aS9Db2NvYS9TeW5hcHNlU1BJLmgKQEAgLTM3LDYgKzM3LDggQEAgdHlwZWRlZiB2b2lkKF5TWU5v
dGVzQWN0aXZhdGlvbk9ic2VydmVySGFuZGxlcikoQk9PTCBpc1Zpc2libGUpOwogCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc1Zpc2libGUpIEJPT0wgdmlzaWJsZTsK
IAorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgdmlzaWJsZUZyYW1lOwor
CiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhIYW5kbGVyOihudWxsYWJsZSBTWU5vdGVzQWN0aXZh
dGlvbk9ic2VydmVySGFuZGxlciloYW5kbGVyOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4IDQxZGU3YjkwMjMyMWNmZGQw
NThmMzA0NmNjZmY0MjcwMTE5ZjM4MGQuLjYwOWRjNzgxMzA5YjU0MGEwNDhhZmFjNDQzOTMzNjk0
NWI5YmM0OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tX
ZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJW
aWV3SU9TLm1tCkBAIC04Myw2ICs4Myw3IEBAIC0gKHZvaWQpX2FjdGlvbjooaWQpc2VuZGVyIFwK
IAogc3RhdGljIGNvbnN0IFNlY29uZHMgZGVsYXlCZWZvcmVOb1Zpc2libGVDb250ZW50c1JlY3Rz
TG9nZ2luZyA9IDFfczsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIGRlbGF5QmVmb3JlTm9Db21taXRz
TG9nZ2luZyA9IDVfczsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBoaWdobGlnaHRNYXJnaW4gPSA1
OwogCiBzdGF0aWMgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbkZvclVJSW50ZXJmYWNlT3JpZW50
YXRpb24oVUlJbnRlcmZhY2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKIHsKQEAgLTExNTMsNiAr
MTE1NCwzOSBAQCAtICh2b2lkKV9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29y
ZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlvbiBzY3JvbAogICAgIH0KIH0KIAorLSAoZmxvYXQp
X2FkanVzdFNjcm9sbFJlY3RUb0F2b2lkSGlnaGxpZ2h0T3ZlcmxheTooV2ViQ29yZTo6RmxvYXRS
ZWN0KXRhcmdldFJlY3QKK3sKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgV2ViQ29y
ZTo6RmxvYXRSZWN0IG92ZXJsYXlSZWN0ID0gW3NlbGYgY29udmVydFJlY3Q6X3BhZ2UtPmFwcEhp
Z2hsaWdodHNPdmVybGF5UmVjdCgpIGZyb21Db29yZGluYXRlU3BhY2U6c2VsZi53aW5kb3cuc2Ny
ZWVuLmNvb3JkaW5hdGVTcGFjZV07CisgICAgCisgICAgaWYgKG92ZXJsYXlSZWN0ID09IENHUmVj
dE51bGwpCisgICAgICAgIHJldHVybiAwOworICAgICAgICAKKyAgICBvdmVybGF5UmVjdC5leHBh
bmQoaGlnaGxpZ2h0TWFyZ2luLCBoaWdobGlnaHRNYXJnaW4pOworICAgIAorICAgIGlmICghdGFy
Z2V0UmVjdC5pbnRlcnNlY3RzKG92ZXJsYXlSZWN0KSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
CisgICAgZmxvYXQgdG9wR2FwID0gb3ZlcmxheVJlY3QueSgpIC0gW3NlbGYgYm91bmRzXS5vcmln
aW4ueTsKKyAgICBmbG9hdCBib3R0b21HYXAgPSAoc2VsZi5ib3VuZHMuc2l6ZS5oZWlnaHQgKyBz
ZWxmLmJvdW5kcy5vcmlnaW4ueSkgLSBvdmVybGF5UmVjdC5tYXhZKCk7CisgICAgCisgICAgZmxv
YXQgbWlkU2NyZWVuID0gW3NlbGYgY2VudGVyXS55OworCisgICAgaWYgKHRvcEdhcCA+IGJvdHRv
bUdhcCkgeworICAgICAgICBhdXRvIG1pZEdhcCA9IHRvcEdhcCAvIDIgKyBzZWxmLmJvdW5kcy5v
cmlnaW4ueTsKKyAgICAgICAgYXV0byBkaWZmID0gbWlkU2NyZWVuIC0gbWlkR2FwOworICAgICAg
ICByZXR1cm4gZGlmZjsKKyAgICB9CisgICAgCisgICAgYXV0byBtaWRHYXAgPSBib3R0b21HYXAg
LyAyICsgc2VsZi5ib3VuZHMub3JpZ2luLnk7CisgICAgYXV0byBkaWZmID0gbWlkR2FwIC0gbWlk
U2NyZWVuOworICAgIHJldHVybiBkaWZmOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgor
fQorCisKIC0gKEJPT0wpX3Njcm9sbFRvUmVjdDooV2ViQ29yZTo6RmxvYXRSZWN0KXRhcmdldFJl
Y3Qgb3JpZ2luOihXZWJDb3JlOjpGbG9hdFBvaW50KW9yaWdpbiBtaW5pbXVtU2Nyb2xsRGlzdGFu
Y2U6KGZsb2F0KW1pbmltdW1TY3JvbGxEaXN0YW5jZQogewogICAgIGlmICghW19zY3JvbGxWaWV3
IGlzU2Nyb2xsRW5hYmxlZF0pCkBAIC0xMTg3LDYgKzEyMjEsMTUgQEAgLSAoQk9PTClfc2Nyb2xs
VG9SZWN0OihXZWJDb3JlOjpGbG9hdFJlY3QpdGFyZ2V0UmVjdCBvcmlnaW46KFdlYkNvcmU6OkZs
b2F0UG9pbnQKICAgICBzY3JvbGxWaWV3T2Zmc2V0RGVsdGEuc2NhbGUoY29udGVudFpvb21TY2Fs
ZShzZWxmKSk7CiAKICAgICBmbG9hdCBzY3JvbGxEaXN0YW5jZSA9IHNjcm9sbFZpZXdPZmZzZXRE
ZWx0YS5kaWFnb25hbExlbmd0aCgpOworICAgIAorICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBzdGFy
dFJlY3QgPSB0YXJnZXRSZWN0OworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBjb252ZXJ0ZWRTdGFy
dFJlY3QgPSBbc2VsZiBjb252ZXJ0UmVjdDpzdGFydFJlY3QgZnJvbVZpZXc6c2VsZi5fY3VycmVu
dENvbnRlbnRWaWV3XTsKKyAgICBjb252ZXJ0ZWRTdGFydFJlY3QubW92ZSgtc2Nyb2xsVmlld09m
ZnNldERlbHRhKTsKKworICAgIGZsb2F0IGFkZGl0aW9uYWxPZmZzZXQgPSBbc2VsZiBfYWRqdXN0
U2Nyb2xsUmVjdFRvQXZvaWRIaWdobGlnaHRPdmVybGF5OmNvbnZlcnRlZFN0YXJ0UmVjdF07CisK
KyAgICBzY3JvbGxWaWV3T2Zmc2V0RGVsdGEgKz0gV2ViQ29yZTo6RmxvYXRTaXplKDAsIGFkZGl0
aW9uYWxPZmZzZXQpOworICAgIAogICAgIGlmIChzY3JvbGxEaXN0YW5jZSA8IG1pbmltdW1TY3Jv
bGxEaXN0YW5jZSkKICAgICAgICAgcmV0dXJuIE5POwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCmluZGV4IDZkNWZlYjM1YzM1ZWMw
NzczNjA2MjRlZDIwZTU5YmI1ZTc0ZjEyMmMuLmQ4OWViYTJiMTM0NzFjNGEzY2U5Nzk4MmZmYmY3
YTdlYmJmZmM5Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlBhZ2VQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlBhZ2VQcm94eUNvY29hLm1tCkBAIC02MDMsNiArNjAzLDEzIEBAIGJvb2wgV2ViUGFnZVByb3h5
OjphcHBIaWdobGlnaHRzVmlzaWJpbGl0eSgpCiAgICAgcmV0dXJuIFttX2FwcEhpZ2hsaWdodHNP
YnNlcnZlciBpc1Zpc2libGVdOwogfQogCitDR1JlY3QgV2ViUGFnZVByb3h5OjphcHBIaWdobGln
aHRzT3ZlcmxheVJlY3QoKQoreworICAgIGlmICghbV9hcHBIaWdobGlnaHRzT2JzZXJ2ZXIpCisg
ICAgICAgIHNldFVwSGlnaGxpZ2h0c09ic2VydmVyKCk7CisgICAgcmV0dXJuIFttX2FwcEhpZ2hs
aWdodHNPYnNlcnZlciB2aXNpYmxlRnJhbWVdOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0
VXBIaWdobGlnaHRzT2JzZXJ2ZXIoKQogewogICAgIGlmIChtX2FwcEhpZ2hsaWdodHNPYnNlcnZl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYTY4M2IyNzFmZWQx
MTk0MDU2NzQ4MzhkMjdiMDg1MTkwZDI2MjU4NC4uOTc0NGRhZTgxYWE4Y2Q5NDMyN2EyMDczNTQ2
NWVhNGMxODk5MTFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTE5MTEsNiArMTkxMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc3RvcmVBcHBIaWdobGlnaHRz
QW5kU2Nyb2xsVG9JbmRleChjb25zdCBWZWN0b3I8UmVmPFdlYktpdDo6U2hhcmVkTWVtb3J5Pj4m
IGhpZ2hsaWdodHMsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGluZGV4KTsKICAgICB2
b2lkIHNldEFwcEhpZ2hsaWdodHNWaXNpYmlsaXR5KGNvbnN0IFdlYkNvcmU6OkhpZ2hsaWdodFZp
c2liaWxpdHkpOwogICAgIGJvb2wgYXBwSGlnaGxpZ2h0c1Zpc2liaWxpdHkoKTsKKyAgICBDR1Jl
Y3QgYXBwSGlnaGxpZ2h0c092ZXJsYXlSZWN0KCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434010</attachid>
            <date>2021-07-22 08:04:30 -0700</date>
            <delta_ts>2021-07-22 09:24:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228172-20210722080430.patch</filename>
            <type>text/plain</type>
            <size>14647</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5OTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk2MTZhMDgyMWExZDVj
ZDZmYmRlZjNlYjg3NGNiYjZmODk1NmMyOC4uZmQzNDJhOGZhNzNiZjNmN2U1MDUyYWYwNTAzMjM0
NmEwOGI2MjNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA3LTIxICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgUXVp
Y2sgTm90ZSBvdmVybGF5IHdoZW4gc2Nyb2xsaW5nIHRvIHNob3cgYSBoaWdobGlnaHQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODE3MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gc2Nyb2xsaW5n
IHRvIHNob3cgdGhlIHNlbGVjdGVkIGhpZ2hsaWdodCBhZnRlciBjbGlja2luZyBvbiBvbmUgaW4g
dGhlIFF1aWNrTm90ZSBvdmVybGF5LAorICAgICAgICBtYWtlIHN1cmUgdG8gYXZvaWQgdGhlIFF1
aWNrIE5vdGUgb3ZlcmxheSwgc28gdGhhdCB0aGUgdXNlciBjYW4gYWN0dWFsbHkgc2VlIHRoZSBo
aWdobGlnaHQuIAorICAgICAgICBUaGlzIHJlcXVpcmVkIGNhbGN1bGF0aW5nIG1vcmUgaW5mb3Jt
YXRpb24gYWJvdXQgdGhlIHNlbGVjdGlvbiByZWN0IGZvciBpT1MsIGFuZCBhbHNvIHBpcGluZyB0
aHJvdWdoCisgICAgICAgIGluZm9ybWF0aW9uIHRvIGhhdmUgdGhlIHNlbGVjdGlvbiByZWN0IGJl
IHRoZSBlbnRpcmUgcmVjdCwgcmF0aGVyIHRoYXQganVzdCB0aGUgY2FyZXQgYW5kIHRoZSBlbmQg
b2Ygc2VsZWN0aW9uLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0
U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGlnaHRTdG9yYWdlOjphdHRl
bXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2U6OnNldFNl
bGVjdGlvbik6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpz
ZXRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFu
ZFJldmVhbFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2Vs
ZWN0aW9uQm91bmRzIGNvbnN0KToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6
CisKIDIwMjEtMDctMTYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
IAogICAgICAgICBNYWtlIHRoZSBsYWNrIG9mIGFuIEFOR0xFIGR5bGliIHVuY29uZGl0aW9uYWxs
eSBsb2cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggYzViYWVjZjhkM2VjZTk3ODA2MzhkOWRiZmI2NzY1ZGFmMDExNmUw
OC4uMTJhN2FmMWFkOGY4Y2EzZTMyMjY5OWQ0N2M1MDY4NzE4NzIxYjI2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMyBAQAorMjAyMS0wNy0yMSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJA
YXBwbGUuY29tPgorCisgICAgICAgIEF2b2lkIFF1aWNrIE5vdGUgb3ZlcmxheSB3aGVuIHNjcm9s
bGluZyB0byBzaG93IGEgaGlnaGxpZ2h0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjgxNzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaGVuIHNjcm9sbGluZyB0byBzaG93IHRoZSBzZWxlY3RlZCBoaWdo
bGlnaHQgYWZ0ZXIgY2xpY2tpbmcgb24gb25lIGluIHRoZSBRdWlja05vdGUgb3ZlcmxheSwKKyAg
ICAgICAgbWFrZSBzdXJlIHRvIGF2b2lkIHRoZSBRdWljayBOb3RlIG92ZXJsYXksIHNvIHRoYXQg
dGhlIHVzZXIgY2FuIGFjdHVhbGx5IHNlZSB0aGUgaGlnaGxpZ2h0LiAKKyAgICAgICAgVGhpcyBy
ZXF1aXJlZCBjYWxjdWxhdGluZyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzZWxlY3Rpb24g
cmVjdCBmb3IgaU9TLCBhbmQgYWxzbyBwaXBpbmcgdGhyb3VnaAorICAgICAgICBpbmZvcm1hdGlv
biB0byBoYXZlIHRoZSBzZWxlY3Rpb24gcmVjdCBiZSB0aGUgZW50aXJlIHJlY3QsIHJhdGhlciB0
aGF0IGp1c3QgdGhlIGNhcmV0IGFuZCB0aGUgZW5kIG9mIHNlbGVjdGlvbi4KKworICAgICAgICAq
IFBsYXRmb3JtL3NwaS9Db2NvYS9TeW5hcHNlU1BJLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgYWRqdXN0U2Nyb2xs
UmVjdDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb1JlY3Q6b3JpZ2luOm1pbmlt
dW1TY3JvbGxEaXN0YW5jZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVBy
b3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YXBwSGlnaGxpZ2h0
c05vdGVPdmVybGF5UmVjdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
CiAyMDIxLTA3LTE2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkb3B0IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQgZm9yIGJhY2tpbmcgc3RvcmUg
KyBkaXNwbGF5IGxpc3QgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5k
ZXggNjZlZWUyNzNlODczZjgyZDgzODRmMzA3YmYzOGEwZTgxMzY5MTZlMi4uYmI1NjlhMjFjMDM0
ZjNmNTQ0ODIwOWY2MzhjMWIzNjhmYzU2MzQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTI3MCw4
ICsyNzAsOCBAQCBib29sIEFwcEhpZ2hsaWdodFN0b3JhZ2U6OmF0dGVtcHRUb1Jlc3RvcmVIaWdo
bGlnaHRBbmRTY3JvbGwoQXBwSGlnaGxpZ2h0UmFuZ2VEYQogICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOwogICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKICAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOwotICAgICAg
ICAKLSAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6RGVsZWdhdGVNYWluRnJhbWVTY3JvbGwsIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6U21v
b3RoU2Nyb2xsIH0pOworCisgICAgICAgIFRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZSBzZWxlY3Rp
b25DaGFuZ2UoKnN0cm9uZ0RvY3VtZW50LCB7IHJhbmdlLnZhbHVlKCkgfSwgeyBUZW1wb3JhcnlT
ZWxlY3Rpb25PcHRpb246OkRlbGVnYXRlTWFpbkZyYW1lU2Nyb2xsLCBUZW1wb3JhcnlTZWxlY3Rp
b25PcHRpb246OlNtb290aFNjcm9sbCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpSZXZlYWxT
ZWxlY3Rpb25Cb3VuZHMgfSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKaW5kZXggYzNiMTkyNWU2N2NkM2M3YWIzMzI2NTE3NWUyZTQ5OGYxZmQ1
ZWU1ZC4uNWNiNjM2OTk4YmFkMmY4ZDE4ZWUwZWFlZjg5NDAwMzAxYjVlZGQ5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjY5LDYgKzI2OSw4IEBAIHZvaWQgVGVtcG9yYXJ5U2Vs
ZWN0aW9uQ2hhbmdlOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0
aW9uKQogICAgICAgICBvcHRpb25zLmFkZChGcmFtZVNlbGVjdGlvbjo6RGVsZWdhdGVNYWluRnJh
bWVTY3JvbGwpOwogICAgIGlmIChtX29wdGlvbnMgJiBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246
OlNtb290aFNjcm9sbCkKICAgICAgICAgb3B0aW9ucy5hZGQoRnJhbWVTZWxlY3Rpb246OlNtb290
aFNjcm9sbCk7CisgICAgaWYgKG1fb3B0aW9ucyAmIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6
UmV2ZWFsU2VsZWN0aW9uQm91bmRzKQorICAgICAgICBvcHRpb25zLmFkZChGcmFtZVNlbGVjdGlv
bjo6UmV2ZWFsU2VsZWN0aW9uQm91bmRzKTsKICAgICBtX2RvY3VtZW50LT5zZWxlY3Rpb24oKS5z
ZXRTZWxlY3Rpb24oc2VsZWN0aW9uLCBvcHRpb25zKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmgKaW5kZXggZmQ1OWJmZmFlNzJkNWZhZjkyNDcyM2VmNDc5YjI4NTYwNjAzODk1NC4uNjM1NWZm
ZWIzNDYxZDNiMTJiZTFkODMzNjFiOTc4YTBmZDlmZWI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oCkBAIC0xMjIsNiArMTIyLDggQEAgZW51bSBjbGFzcyBUZW1wb3JhcnlTZWxlY3Rpb25PcHRp
b24gOiB1aW50OF90IHsKICAgICBTbW9vdGhTY3JvbGwgPSAxIDw8IDQsCiAgICAgCiAgICAgRGVs
ZWdhdGVNYWluRnJhbWVTY3JvbGwgPSAxIDw8IDUsCisgICAgCisgICAgUmV2ZWFsU2VsZWN0aW9u
Qm91bmRzID0gMSA8PCA2LAogfTsKIAogY2xhc3MgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggMWNhM2JmYmM5
MjFjNDU3OTY4NGIxMDM1MDJlNGM1MzMyYzI5MTEyNy4uNTUzZjU5Y2E0NWZlNzk1YmE4NzU4MTEz
NTM4MDQxZTEwMzAzYjczMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlv
bi5jcHAKQEAgLTgyLDYgKzgyLDcgQEAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIlJl
bmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiU2VsZWN0
aW9uR2VvbWV0cnkuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NTEsNyAr
NDUyLDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0aW9uU2V0PFMKICAgICBpZiAoZnJhbWVWaWV3ICYmIGZy
YW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygpKQogICAgICAgICByZXR1
cm47CiAKLSAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oaW50ZW50LCBvcHRpb25zLmNvbnRh
aW5zKFNtb290aFNjcm9sbCkgPyBTY3JvbGxCZWhhdmlvcjo6U21vb3RoIDogU2Nyb2xsQmVoYXZp
b3I6Okluc3RhbnQpOworICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQsIG9wdGlv
bnMuY29udGFpbnMoU21vb3RoU2Nyb2xsKSA/IFNjcm9sbEJlaGF2aW9yOjpTbW9vdGggOiBTY3Jv
bGxCZWhhdmlvcjo6SW5zdGFudCwgb3B0aW9ucy5jb250YWlucyhSZXZlYWxTZWxlY3Rpb25Cb3Vu
ZHMpID8gUmV2ZWFsRXh0ZW50T3B0aW9uOjpEb05vdFJldmVhbEV4dGVudCA6IFJldmVhbEV4dGVu
dE9wdGlvbjo6UmV2ZWFsRXh0ZW50KTsKIAogICAgIGlmIChvcHRpb25zICYgSXNVc2VyVHJpZ2dl
cmVkKSB7CiAgICAgICAgIGlmIChhdXRvKiBjbGllbnQgPSBwcm90ZWN0ZWREb2N1bWVudC0+ZWRp
dG9yKCkuY2xpZW50KCkpCkBAIC00NzgsNyArNDc5LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoUmV2ZWFsU2VsZWN0aW9uQWZ0ZXJVcGRhdGUgcmV2ZWFs
TW8KICAgICAgICAgdmlldy0+c2VsZWN0aW9uKCkuY2xlYXIoKTsKIH0KIAotdm9pZCBGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50JiBpbnRlbnQsIFNjcm9sbEJlaGF2aW9yIHNjcm9sbEJlaGF2aW9yKQordm9pZCBGcmFt
ZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50JiBpbnRlbnQsIFNjcm9sbEJlaGF2aW9yIHNjcm9sbEJlaGF2aW9yLCBSZXZlYWxF
eHRlbnRPcHRpb24gcmV2ZWFsRXh0ZW50KQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9u
VXBkYXRlKQogICAgICAgICByZXR1cm47CkBAIC00OTUsNyArNDk2LDcgQEAgdm9pZCBGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50JiBpbnQKICAgICAgICAgZWxzZQogICAgICAgICAgICAgYWxpZ25tZW50ID0gbV9hbHdh
eXNBbGlnbkN1cnNvck9uU2Nyb2xsV2hlblJldmVhbGluZ1NlbGVjdGlvbiA/IFNjcm9sbEFsaWdu
bWVudDo6YWxpZ25Ub3BBbHdheXMgOiBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVk
ZWQ7CiAKLSAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKG1fc2VsZWN0aW9uUmV2ZWFsTW9kZSwgYWxp
Z25tZW50LCBSZXZlYWxFeHRlbnQsIHNjcm9sbEJlaGF2aW9yKTsKKyAgICAgICAgcmV2ZWFsU2Vs
ZWN0aW9uKG1fc2VsZWN0aW9uUmV2ZWFsTW9kZSwgYWxpZ25tZW50LCByZXZlYWxFeHRlbnQsIHNj
cm9sbEJlaGF2aW9yKTsKICAgICB9CiAKICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKGludGVudCk7CkBAIC0yMzI1LDE0ICsyMzI2LDI3IEBAIEZsb2F0UmVjdCBGcmFt
ZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzKENsaXBUb1Zpc2libGVDb250ZW50IGNsaXBUb1Zp
c2libGVDb250CiAgICAgaWYgKCFyZW5kZXJWaWV3KQogICAgICAgICByZXR1cm4gTGF5b3V0UmVj
dCgpOwogCisgICAgaWYgKCFtX3NlbGVjdGlvbi5yYW5nZSgpKQorICAgICAgICByZXR1cm4gTGF5
b3V0UmVjdCgpOworICAgIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYXV0byBzZWxl
Y3Rpb25HZW9tZXRyaWVzID0gUmVuZGVyT2JqZWN0Ojpjb2xsZWN0U2VsZWN0aW9uR2VvbWV0cmll
cyhtX3NlbGVjdGlvbi5yYW5nZSgpLnZhbHVlKCkpOworICAgIEludFJlY3QgdmlzaWJsZVNlbGVj
dGlvblJlY3Q7CisgICAgZm9yIChhdXRvIGdlb21ldHJ5IDogc2VsZWN0aW9uR2VvbWV0cmllcykK
KyAgICAgICAgdmlzaWJsZVNlbGVjdGlvblJlY3QudW5pdGUoZ2VvbWV0cnkucmVjdCgpKTsKKyAg
ICAKKyAgICBpZiAoY2xpcFRvVmlzaWJsZUNvbnRlbnQgPT0gQ2xpcFRvVmlzaWJsZUNvbnRlbnQ6
Ok5vKQorICAgICAgICByZXR1cm4gdmlzaWJsZVNlbGVjdGlvblJlY3Q7CisjZWxzZQogICAgIGF1
dG8mIHNlbGVjdGlvbiA9IHJlbmRlclZpZXctPnNlbGVjdGlvbigpOworICAgIGF1dG8gdmlzaWJs
ZVNlbGVjdGlvblJlY3QgPSBzZWxlY3Rpb24uYm91bmRzQ2xpcHBlZFRvVmlzaWJsZUNvbnRlbnQo
KTsKKyAgICAKKyAgICBpZiAoY2xpcFRvVmlzaWJsZUNvbnRlbnQgPT0gQ2xpcFRvVmlzaWJsZUNv
bnRlbnQ6Ok5vKQorICAgICAgICByZXR1cm4gc2VsZWN0aW9uLmJvdW5kcygpOworI2VuZGlmCisg
ICAgCisgICAgcmV0dXJuIGludGVyc2VjdGlvbih2aXNpYmxlU2VsZWN0aW9uUmVjdCwgcmVuZGVy
Vmlldy0+ZnJhbWVWaWV3KCkudmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpMZWdh
Y3lJT1NEb2N1bWVudFZpc2libGVSZWN0KSk7CiAKLSAgICBpZiAoY2xpcFRvVmlzaWJsZUNvbnRl
bnQgPT0gQ2xpcFRvVmlzaWJsZUNvbnRlbnQ6OlllcykgewotICAgICAgICBhdXRvIHNlbGVjdGlv
blJlY3QgPSBzZWxlY3Rpb24uYm91bmRzQ2xpcHBlZFRvVmlzaWJsZUNvbnRlbnQoKTsKLSAgICAg
ICAgcmV0dXJuIGludGVyc2VjdGlvbihzZWxlY3Rpb25SZWN0LCByZW5kZXJWaWV3LT5mcmFtZVZp
ZXcoKS52aXNpYmxlQ29udGVudFJlY3QoU2Nyb2xsYWJsZUFyZWE6OkxlZ2FjeUlPU0RvY3VtZW50
VmlzaWJsZVJlY3QpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc2VsZWN0aW9uLmJvdW5kcygpOwog
fQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjpnZXRDbGlwcGVkVmlzaWJsZVRleHRSZWN0YW5nbGVz
KFZlY3RvcjxGbG9hdFJlY3Q+JiByZWN0YW5nbGVzLCBUZXh0UmVjdGFuZ2xlSGVpZ2h0IHRleHRS
ZWN0SGVpZ2h0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmlu
ZGV4IDdlMWQ4OTQ5ZDA3MTc5NTAxMzcyOTc1OTNkOTE5OWY0N2JlNDk1MmUuLmI0YzEwOTk1NzIw
MDE4ODhhNDdmZDgwMjM2YjBjYjJkYTI1Zjg3ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmgKQEAgLTEyNCw3ICsxMjQsOCBAQCBwdWJsaWM6CiAgICAgICAgIFJldmVh
bFNlbGVjdGlvbiA9IDEgPDwgNywKICAgICAgICAgUmV2ZWFsU2VsZWN0aW9uVXBUb01haW5GcmFt
ZSA9IDEgPDwgOCwKICAgICAgICAgU21vb3RoU2Nyb2xsID0gMSA8PCA5LAotICAgICAgICBEZWxl
Z2F0ZU1haW5GcmFtZVNjcm9sbCA9IDEgPDwgMTAKKyAgICAgICAgRGVsZWdhdGVNYWluRnJhbWVT
Y3JvbGwgPSAxIDw8IDEwLAorICAgICAgICBSZXZlYWxTZWxlY3Rpb25Cb3VuZHMgPSAxIDw8IDEx
CiAgICAgfTsKICAgICBzdGF0aWMgY29uc3RleHByIE9wdGlvblNldDxTZXRTZWxlY3Rpb25PcHRp
b24+IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKEVVc2VyVHJpZ2dlcmVkID0gTm90VXNlclRy
aWdnZXJlZCk7CiAKQEAgLTI2Myw3ICsyNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVG
cm9tQXNzb2NpYXRlZExpdmVSYW5nZSgpOwogCiBwcml2YXRlOgotICAgIHZvaWQgdXBkYXRlQW5k
UmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiwgU2Nyb2xsQmVo
YXZpb3IgPSBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudCk7CisgICAgdm9pZCB1cGRhdGVBbmRSZXZl
YWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmLCBTY3JvbGxCZWhhdmlv
ciA9IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBSZXZlYWxFeHRlbnRPcHRpb24gPSBSZXZlYWxF
eHRlbnRPcHRpb246OlJldmVhbEV4dGVudCk7CiAgICAgdm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3Jz
Rm9yU2VsZWN0aW9uKCk7CiAKICAgICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0Fw
cGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIE9wdGlvblNldDxTZXRTZWxlY3Rpb25P
cHRpb24+LCBDdXJzb3JBbGlnbk9uU2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvU3luYXBzZVNQSS5oIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvU3luYXBzZVNQSS5oCmluZGV4IDgwOTI4ZTA1NDVi
MmFiOGZmNGE3MWNkZjE3ZjI1NTliYzdjMTVhNjkuLmM3MDM5MDEyZGE2YmM4ZTI1NDRhNzliZWE3
Mzc2MDU0NzZhMWE3MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0Nv
Y29hL1N5bmFwc2VTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9T
eW5hcHNlU1BJLmgKQEAgLTM3LDYgKzM3LDggQEAgdHlwZWRlZiB2b2lkKF5TWU5vdGVzQWN0aXZh
dGlvbk9ic2VydmVySGFuZGxlcikoQk9PTCBpc1Zpc2libGUpOwogCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHksIGdldHRlcj1pc1Zpc2libGUpIEJPT0wgdmlzaWJsZTsKIAorQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgdmlzaWJsZUZyYW1lOworCiAtIChpbnN0
YW5jZXR5cGUpaW5pdFdpdGhIYW5kbGVyOihudWxsYWJsZSBTWU5vdGVzQWN0aXZhdGlvbk9ic2Vy
dmVySGFuZGxlciloYW5kbGVyOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4IDQxZGU3YjkwMjMyMWNmZGQwNThmMzA0NmNj
ZmY0MjcwMTE5ZjM4MGQuLjUxOTkwMDBkOTBkYjBjN2E4MmZmMzU5ZmI1MmQ3YTMwNzk3OGNiZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1t
CkBAIC04Myw2ICs4Myw3IEBAIC0gKHZvaWQpX2FjdGlvbjooaWQpc2VuZGVyIFwKIAogc3RhdGlj
IGNvbnN0IFNlY29uZHMgZGVsYXlCZWZvcmVOb1Zpc2libGVDb250ZW50c1JlY3RzTG9nZ2luZyA9
IDFfczsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIGRlbGF5QmVmb3JlTm9Db21taXRzTG9nZ2luZyA9
IDVfczsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBoaWdobGlnaHRNYXJnaW4gPSA1OwogCiBzdGF0
aWMgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbkZvclVJSW50ZXJmYWNlT3JpZW50YXRpb24oVUlJ
bnRlcmZhY2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKIHsKQEAgLTExNTMsNiArMTE1NCwzOSBA
QCAtICh2b2lkKV9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQ
b2ludClzY3JvbGxQb3NpdGlvbiBzY3JvbAogICAgIH0KIH0KIAorLSAoZmxvYXQpX2FkanVzdFNj
cm9sbFJlY3RUb0F2b2lkSGlnaGxpZ2h0T3ZlcmxheTooV2ViQ29yZTo6RmxvYXRSZWN0KXRhcmdl
dFJlY3QKK3sKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgV2ViQ29yZTo6RmxvYXRS
ZWN0IG92ZXJsYXlSZWN0ID0gW3NlbGYgY29udmVydFJlY3Q6X3BhZ2UtPmFwcEhpZ2hsaWdodHNP
dmVybGF5UmVjdCgpIGZyb21Db29yZGluYXRlU3BhY2U6c2VsZi53aW5kb3cuc2NyZWVuLmNvb3Jk
aW5hdGVTcGFjZV07CisgICAgCisgICAgaWYgKENHUmVjdElzTnVsbChDR1JlY3ROdWxsKSkKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIAorICAgIG92ZXJsYXlSZWN0LmV4cGFuZChoaWdobGln
aHRNYXJnaW4sIGhpZ2hsaWdodE1hcmdpbik7CisgICAgCisgICAgaWYgKCF0YXJnZXRSZWN0Lmlu
dGVyc2VjdHMob3ZlcmxheVJlY3QpKQorICAgICAgICByZXR1cm4gMDsKKyAgICAKKyAgICBmbG9h
dCB0b3BHYXAgPSBvdmVybGF5UmVjdC55KCkgLSBbc2VsZiBib3VuZHNdLm9yaWdpbi55OworICAg
IGZsb2F0IGJvdHRvbUdhcCA9IChzZWxmLmJvdW5kcy5zaXplLmhlaWdodCArIHNlbGYuYm91bmRz
Lm9yaWdpbi55KSAtIG92ZXJsYXlSZWN0Lm1heFkoKTsKKyAgICAKKyAgICBmbG9hdCBtaWRTY3Jl
ZW4gPSBzZWxmLmNlbnRlci55OworCisgICAgaWYgKHRvcEdhcCA+IGJvdHRvbUdhcCkgeworICAg
ICAgICBhdXRvIG1pZEdhcCA9IHRvcEdhcCAvIDIgKyBzZWxmLmJvdW5kcy5vcmlnaW4ueTsKKyAg
ICAgICAgYXV0byBkaWZmID0gbWlkU2NyZWVuIC0gbWlkR2FwOworICAgICAgICByZXR1cm4gZGlm
ZjsKKyAgICB9CisgICAgCisgICAgYXV0byBtaWRHYXAgPSBib3R0b21HYXAgLyAyICsgc2VsZi5i
b3VuZHMub3JpZ2luLnk7CisgICAgYXV0byBkaWZmID0gbWlkR2FwIC0gbWlkU2NyZWVuOworICAg
IHJldHVybiBkaWZmOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCisKIC0gKEJP
T0wpX3Njcm9sbFRvUmVjdDooV2ViQ29yZTo6RmxvYXRSZWN0KXRhcmdldFJlY3Qgb3JpZ2luOihX
ZWJDb3JlOjpGbG9hdFBvaW50KW9yaWdpbiBtaW5pbXVtU2Nyb2xsRGlzdGFuY2U6KGZsb2F0KW1p
bmltdW1TY3JvbGxEaXN0YW5jZQogewogICAgIGlmICghW19zY3JvbGxWaWV3IGlzU2Nyb2xsRW5h
YmxlZF0pCkBAIC0xMTg3LDYgKzEyMjEsMTUgQEAgLSAoQk9PTClfc2Nyb2xsVG9SZWN0OihXZWJD
b3JlOjpGbG9hdFJlY3QpdGFyZ2V0UmVjdCBvcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQKICAg
ICBzY3JvbGxWaWV3T2Zmc2V0RGVsdGEuc2NhbGUoY29udGVudFpvb21TY2FsZShzZWxmKSk7CiAK
ICAgICBmbG9hdCBzY3JvbGxEaXN0YW5jZSA9IHNjcm9sbFZpZXdPZmZzZXREZWx0YS5kaWFnb25h
bExlbmd0aCgpOworICAgIAorICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBzdGFydFJlY3QgPSB0YXJn
ZXRSZWN0OworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBjb252ZXJ0ZWRTdGFydFJlY3QgPSBbc2Vs
ZiBjb252ZXJ0UmVjdDpzdGFydFJlY3QgZnJvbVZpZXc6c2VsZi5fY3VycmVudENvbnRlbnRWaWV3
XTsKKyAgICBjb252ZXJ0ZWRTdGFydFJlY3QubW92ZSgtc2Nyb2xsVmlld09mZnNldERlbHRhKTsK
KworICAgIGZsb2F0IGFkZGl0aW9uYWxPZmZzZXQgPSBbc2VsZiBfYWRqdXN0U2Nyb2xsUmVjdFRv
QXZvaWRIaWdobGlnaHRPdmVybGF5OmNvbnZlcnRlZFN0YXJ0UmVjdF07CisKKyAgICBzY3JvbGxW
aWV3T2Zmc2V0RGVsdGEgKz0gV2ViQ29yZTo6RmxvYXRTaXplKDAsIGFkZGl0aW9uYWxPZmZzZXQp
OworICAgIAogICAgIGlmIChzY3JvbGxEaXN0YW5jZSA8IG1pbmltdW1TY3JvbGxEaXN0YW5jZSkK
ICAgICAgICAgcmV0dXJuIE5POwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCmluZGV4IDZkNWZlYjM1YzM1ZWMwNzczNjA2MjRlZDIw
ZTU5YmI1ZTc0ZjEyMmMuLmQ4OWViYTJiMTM0NzFjNGEzY2U5Nzk4MmZmYmY3YTdlYmJmZmM5Y2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNv
Y29hLm1tCkBAIC02MDMsNiArNjAzLDEzIEBAIGJvb2wgV2ViUGFnZVByb3h5OjphcHBIaWdobGln
aHRzVmlzaWJpbGl0eSgpCiAgICAgcmV0dXJuIFttX2FwcEhpZ2hsaWdodHNPYnNlcnZlciBpc1Zp
c2libGVdOwogfQogCitDR1JlY3QgV2ViUGFnZVByb3h5OjphcHBIaWdobGlnaHRzT3ZlcmxheVJl
Y3QoKQoreworICAgIGlmICghbV9hcHBIaWdobGlnaHRzT2JzZXJ2ZXIpCisgICAgICAgIHNldFVw
SGlnaGxpZ2h0c09ic2VydmVyKCk7CisgICAgcmV0dXJuIFttX2FwcEhpZ2hsaWdodHNPYnNlcnZl
ciB2aXNpYmxlRnJhbWVdOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0VXBIaWdobGlnaHRz
T2JzZXJ2ZXIoKQogewogICAgIGlmIChtX2FwcEhpZ2hsaWdodHNPYnNlcnZlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYTY4M2IyNzFmZWQxMTk0MDU2NzQ4Mzhk
MjdiMDg1MTkwZDI2MjU4NC4uOTc0NGRhZTgxYWE4Y2Q5NDMyN2EyMDczNTQ2NWVhNGMxODk5MTFh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE5MTEsNiArMTkx
MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc3RvcmVBcHBIaWdobGlnaHRzQW5kU2Nyb2xsVG9J
bmRleChjb25zdCBWZWN0b3I8UmVmPFdlYktpdDo6U2hhcmVkTWVtb3J5Pj4mIGhpZ2hsaWdodHMs
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGluZGV4KTsKICAgICB2b2lkIHNldEFwcEhp
Z2hsaWdodHNWaXNpYmlsaXR5KGNvbnN0IFdlYkNvcmU6OkhpZ2hsaWdodFZpc2liaWxpdHkpOwog
ICAgIGJvb2wgYXBwSGlnaGxpZ2h0c1Zpc2liaWxpdHkoKTsKKyAgICBDR1JlY3QgYXBwSGlnaGxp
Z2h0c092ZXJsYXlSZWN0KCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434012</attachid>
            <date>2021-07-22 09:06:02 -0700</date>
            <delta_ts>2021-07-22 09:24:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228172-20210722090601.patch</filename>
            <type>text/plain</type>
            <size>14648</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5OTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk2MTZhMDgyMWExZDVj
ZDZmYmRlZjNlYjg3NGNiYjZmODk1NmMyOC4uZmQzNDJhOGZhNzNiZjNmN2U1MDUyYWYwNTAzMjM0
NmEwOGI2MjNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA3LTIxICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgUXVp
Y2sgTm90ZSBvdmVybGF5IHdoZW4gc2Nyb2xsaW5nIHRvIHNob3cgYSBoaWdobGlnaHQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODE3MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gc2Nyb2xsaW5n
IHRvIHNob3cgdGhlIHNlbGVjdGVkIGhpZ2hsaWdodCBhZnRlciBjbGlja2luZyBvbiBvbmUgaW4g
dGhlIFF1aWNrTm90ZSBvdmVybGF5LAorICAgICAgICBtYWtlIHN1cmUgdG8gYXZvaWQgdGhlIFF1
aWNrIE5vdGUgb3ZlcmxheSwgc28gdGhhdCB0aGUgdXNlciBjYW4gYWN0dWFsbHkgc2VlIHRoZSBo
aWdobGlnaHQuIAorICAgICAgICBUaGlzIHJlcXVpcmVkIGNhbGN1bGF0aW5nIG1vcmUgaW5mb3Jt
YXRpb24gYWJvdXQgdGhlIHNlbGVjdGlvbiByZWN0IGZvciBpT1MsIGFuZCBhbHNvIHBpcGluZyB0
aHJvdWdoCisgICAgICAgIGluZm9ybWF0aW9uIHRvIGhhdmUgdGhlIHNlbGVjdGlvbiByZWN0IGJl
IHRoZSBlbnRpcmUgcmVjdCwgcmF0aGVyIHRoYXQganVzdCB0aGUgY2FyZXQgYW5kIHRoZSBlbmQg
b2Ygc2VsZWN0aW9uLgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0
U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBIaWdobGlnaHRTdG9yYWdlOjphdHRl
bXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2U6OnNldFNl
bGVjdGlvbik6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpz
ZXRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFu
ZFJldmVhbFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2Vs
ZWN0aW9uQm91bmRzIGNvbnN0KToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6
CisKIDIwMjEtMDctMTYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
IAogICAgICAgICBNYWtlIHRoZSBsYWNrIG9mIGFuIEFOR0xFIGR5bGliIHVuY29uZGl0aW9uYWxs
eSBsb2cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggYzViYWVjZjhkM2VjZTk3ODA2MzhkOWRiZmI2NzY1ZGFmMDExNmUw
OC4uMTJhN2FmMWFkOGY4Y2EzZTMyMjY5OWQ0N2M1MDY4NzE4NzIxYjI2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMyBAQAorMjAyMS0wNy0yMSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJA
YXBwbGUuY29tPgorCisgICAgICAgIEF2b2lkIFF1aWNrIE5vdGUgb3ZlcmxheSB3aGVuIHNjcm9s
bGluZyB0byBzaG93IGEgaGlnaGxpZ2h0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjgxNzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaGVuIHNjcm9sbGluZyB0byBzaG93IHRoZSBzZWxlY3RlZCBoaWdo
bGlnaHQgYWZ0ZXIgY2xpY2tpbmcgb24gb25lIGluIHRoZSBRdWlja05vdGUgb3ZlcmxheSwKKyAg
ICAgICAgbWFrZSBzdXJlIHRvIGF2b2lkIHRoZSBRdWljayBOb3RlIG92ZXJsYXksIHNvIHRoYXQg
dGhlIHVzZXIgY2FuIGFjdHVhbGx5IHNlZSB0aGUgaGlnaGxpZ2h0LiAKKyAgICAgICAgVGhpcyBy
ZXF1aXJlZCBjYWxjdWxhdGluZyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzZWxlY3Rpb24g
cmVjdCBmb3IgaU9TLCBhbmQgYWxzbyBwaXBpbmcgdGhyb3VnaAorICAgICAgICBpbmZvcm1hdGlv
biB0byBoYXZlIHRoZSBzZWxlY3Rpb24gcmVjdCBiZSB0aGUgZW50aXJlIHJlY3QsIHJhdGhlciB0
aGF0IGp1c3QgdGhlIGNhcmV0IGFuZCB0aGUgZW5kIG9mIHNlbGVjdGlvbi4KKworICAgICAgICAq
IFBsYXRmb3JtL3NwaS9Db2NvYS9TeW5hcHNlU1BJLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgYWRqdXN0U2Nyb2xs
UmVjdDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb1JlY3Q6b3JpZ2luOm1pbmlt
dW1TY3JvbGxEaXN0YW5jZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVBy
b3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YXBwSGlnaGxpZ2h0
c05vdGVPdmVybGF5UmVjdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
CiAyMDIxLTA3LTE2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkb3B0IEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQgZm9yIGJhY2tpbmcgc3RvcmUg
KyBkaXNwbGF5IGxpc3QgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5k
ZXggNjZlZWUyNzNlODczZjgyZDgzODRmMzA3YmYzOGEwZTgxMzY5MTZlMi4uYmI1NjlhMjFjMDM0
ZjNmNTQ0ODIwOWY2MzhjMWIzNjhmYzU2MzQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTI3MCw4
ICsyNzAsOCBAQCBib29sIEFwcEhpZ2hsaWdodFN0b3JhZ2U6OmF0dGVtcHRUb1Jlc3RvcmVIaWdo
bGlnaHRBbmRTY3JvbGwoQXBwSGlnaGxpZ2h0UmFuZ2VEYQogICAgICAgICBhdXRvIHRleHRJbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UocmFuZ2UudmFsdWUoKSwgeyBU
ZXh0SW5kaWNhdG9yT3B0aW9uOjpEb05vdENsaXBUb1Zpc2libGVSZWN0IH0sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UpOwogICAgICAgICBpZiAo
dGV4dEluZGljYXRvcikKICAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuc2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLT5kYXRhKCkpOwotICAgICAg
ICAKLSAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ry
b25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bjo6RGVsZWdhdGVNYWluRnJhbWVTY3JvbGwsIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6U21v
b3RoU2Nyb2xsIH0pOworCisgICAgICAgIFRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZSBzZWxlY3Rp
b25DaGFuZ2UoKnN0cm9uZ0RvY3VtZW50LCB7IHJhbmdlLnZhbHVlKCkgfSwgeyBUZW1wb3JhcnlT
ZWxlY3Rpb25PcHRpb246OkRlbGVnYXRlTWFpbkZyYW1lU2Nyb2xsLCBUZW1wb3JhcnlTZWxlY3Rp
b25PcHRpb246OlNtb290aFNjcm9sbCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpSZXZlYWxT
ZWxlY3Rpb25Cb3VuZHMgfSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKaW5kZXggYzNiMTkyNWU2N2NkM2M3YWIzMzI2NTE3NWUyZTQ5OGYxZmQ1
ZWU1ZC4uNWNiNjM2OTk4YmFkMmY4ZDE4ZWUwZWFlZjg5NDAwMzAxYjVlZGQ5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjY5LDYgKzI2OSw4IEBAIHZvaWQgVGVtcG9yYXJ5U2Vs
ZWN0aW9uQ2hhbmdlOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0
aW9uKQogICAgICAgICBvcHRpb25zLmFkZChGcmFtZVNlbGVjdGlvbjo6RGVsZWdhdGVNYWluRnJh
bWVTY3JvbGwpOwogICAgIGlmIChtX29wdGlvbnMgJiBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246
OlNtb290aFNjcm9sbCkKICAgICAgICAgb3B0aW9ucy5hZGQoRnJhbWVTZWxlY3Rpb246OlNtb290
aFNjcm9sbCk7CisgICAgaWYgKG1fb3B0aW9ucyAmIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6
UmV2ZWFsU2VsZWN0aW9uQm91bmRzKQorICAgICAgICBvcHRpb25zLmFkZChGcmFtZVNlbGVjdGlv
bjo6UmV2ZWFsU2VsZWN0aW9uQm91bmRzKTsKICAgICBtX2RvY3VtZW50LT5zZWxlY3Rpb24oKS5z
ZXRTZWxlY3Rpb24oc2VsZWN0aW9uLCBvcHRpb25zKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmgKaW5kZXggZmQ1OWJmZmFlNzJkNWZhZjkyNDcyM2VmNDc5YjI4NTYwNjAzODk1NC4uNjM1NWZm
ZWIzNDYxZDNiMTJiZTFkODMzNjFiOTc4YTBmZDlmZWI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oCkBAIC0xMjIsNiArMTIyLDggQEAgZW51bSBjbGFzcyBUZW1wb3JhcnlTZWxlY3Rpb25PcHRp
b24gOiB1aW50OF90IHsKICAgICBTbW9vdGhTY3JvbGwgPSAxIDw8IDQsCiAgICAgCiAgICAgRGVs
ZWdhdGVNYWluRnJhbWVTY3JvbGwgPSAxIDw8IDUsCisgICAgCisgICAgUmV2ZWFsU2VsZWN0aW9u
Qm91bmRzID0gMSA8PCA2LAogfTsKIAogY2xhc3MgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggMWNhM2JmYmM5
MjFjNDU3OTY4NGIxMDM1MDJlNGM1MzMyYzI5MTEyNy4uNTUzZjU5Y2E0NWZlNzk1YmE4NzU4MTEz
NTM4MDQxZTEwMzAzYjczMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlv
bi5jcHAKQEAgLTgyLDYgKzgyLDcgQEAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIlJl
bmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiU2VsZWN0
aW9uR2VvbWV0cnkuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NTEsNyAr
NDUyLDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0aW9uU2V0PFMKICAgICBpZiAoZnJhbWVWaWV3ICYmIGZy
YW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygpKQogICAgICAgICByZXR1
cm47CiAKLSAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oaW50ZW50LCBvcHRpb25zLmNvbnRh
aW5zKFNtb290aFNjcm9sbCkgPyBTY3JvbGxCZWhhdmlvcjo6U21vb3RoIDogU2Nyb2xsQmVoYXZp
b3I6Okluc3RhbnQpOworICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQsIG9wdGlv
bnMuY29udGFpbnMoU21vb3RoU2Nyb2xsKSA/IFNjcm9sbEJlaGF2aW9yOjpTbW9vdGggOiBTY3Jv
bGxCZWhhdmlvcjo6SW5zdGFudCwgb3B0aW9ucy5jb250YWlucyhSZXZlYWxTZWxlY3Rpb25Cb3Vu
ZHMpID8gUmV2ZWFsRXh0ZW50T3B0aW9uOjpEb05vdFJldmVhbEV4dGVudCA6IFJldmVhbEV4dGVu
dE9wdGlvbjo6UmV2ZWFsRXh0ZW50KTsKIAogICAgIGlmIChvcHRpb25zICYgSXNVc2VyVHJpZ2dl
cmVkKSB7CiAgICAgICAgIGlmIChhdXRvKiBjbGllbnQgPSBwcm90ZWN0ZWREb2N1bWVudC0+ZWRp
dG9yKCkuY2xpZW50KCkpCkBAIC00NzgsNyArNDc5LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoUmV2ZWFsU2VsZWN0aW9uQWZ0ZXJVcGRhdGUgcmV2ZWFs
TW8KICAgICAgICAgdmlldy0+c2VsZWN0aW9uKCkuY2xlYXIoKTsKIH0KIAotdm9pZCBGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50JiBpbnRlbnQsIFNjcm9sbEJlaGF2aW9yIHNjcm9sbEJlaGF2aW9yKQordm9pZCBGcmFt
ZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50JiBpbnRlbnQsIFNjcm9sbEJlaGF2aW9yIHNjcm9sbEJlaGF2aW9yLCBSZXZlYWxF
eHRlbnRPcHRpb24gcmV2ZWFsRXh0ZW50KQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9u
VXBkYXRlKQogICAgICAgICByZXR1cm47CkBAIC00OTUsNyArNDk2LDcgQEAgdm9pZCBGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50JiBpbnQKICAgICAgICAgZWxzZQogICAgICAgICAgICAgYWxpZ25tZW50ID0gbV9hbHdh
eXNBbGlnbkN1cnNvck9uU2Nyb2xsV2hlblJldmVhbGluZ1NlbGVjdGlvbiA/IFNjcm9sbEFsaWdu
bWVudDo6YWxpZ25Ub3BBbHdheXMgOiBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVk
ZWQ7CiAKLSAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKG1fc2VsZWN0aW9uUmV2ZWFsTW9kZSwgYWxp
Z25tZW50LCBSZXZlYWxFeHRlbnQsIHNjcm9sbEJlaGF2aW9yKTsKKyAgICAgICAgcmV2ZWFsU2Vs
ZWN0aW9uKG1fc2VsZWN0aW9uUmV2ZWFsTW9kZSwgYWxpZ25tZW50LCByZXZlYWxFeHRlbnQsIHNj
cm9sbEJlaGF2aW9yKTsKICAgICB9CiAKICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKGludGVudCk7CkBAIC0yMzI1LDE0ICsyMzI2LDI3IEBAIEZsb2F0UmVjdCBGcmFt
ZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzKENsaXBUb1Zpc2libGVDb250ZW50IGNsaXBUb1Zp
c2libGVDb250CiAgICAgaWYgKCFyZW5kZXJWaWV3KQogICAgICAgICByZXR1cm4gTGF5b3V0UmVj
dCgpOwogCisgICAgaWYgKCFtX3NlbGVjdGlvbi5yYW5nZSgpKQorICAgICAgICByZXR1cm4gTGF5
b3V0UmVjdCgpOworICAgIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYXV0byBzZWxl
Y3Rpb25HZW9tZXRyaWVzID0gUmVuZGVyT2JqZWN0Ojpjb2xsZWN0U2VsZWN0aW9uR2VvbWV0cmll
cyhtX3NlbGVjdGlvbi5yYW5nZSgpLnZhbHVlKCkpOworICAgIEludFJlY3QgdmlzaWJsZVNlbGVj
dGlvblJlY3Q7CisgICAgZm9yIChhdXRvIGdlb21ldHJ5IDogc2VsZWN0aW9uR2VvbWV0cmllcykK
KyAgICAgICAgdmlzaWJsZVNlbGVjdGlvblJlY3QudW5pdGUoZ2VvbWV0cnkucmVjdCgpKTsKKyAg
ICAKKyAgICBpZiAoY2xpcFRvVmlzaWJsZUNvbnRlbnQgPT0gQ2xpcFRvVmlzaWJsZUNvbnRlbnQ6
Ok5vKQorICAgICAgICByZXR1cm4gdmlzaWJsZVNlbGVjdGlvblJlY3Q7CisjZWxzZQogICAgIGF1
dG8mIHNlbGVjdGlvbiA9IHJlbmRlclZpZXctPnNlbGVjdGlvbigpOworICAgIGF1dG8gdmlzaWJs
ZVNlbGVjdGlvblJlY3QgPSBzZWxlY3Rpb24uYm91bmRzQ2xpcHBlZFRvVmlzaWJsZUNvbnRlbnQo
KTsKKyAgICAKKyAgICBpZiAoY2xpcFRvVmlzaWJsZUNvbnRlbnQgPT0gQ2xpcFRvVmlzaWJsZUNv
bnRlbnQ6Ok5vKQorICAgICAgICByZXR1cm4gc2VsZWN0aW9uLmJvdW5kcygpOworI2VuZGlmCisg
ICAgCisgICAgcmV0dXJuIGludGVyc2VjdGlvbih2aXNpYmxlU2VsZWN0aW9uUmVjdCwgcmVuZGVy
Vmlldy0+ZnJhbWVWaWV3KCkudmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpMZWdh
Y3lJT1NEb2N1bWVudFZpc2libGVSZWN0KSk7CiAKLSAgICBpZiAoY2xpcFRvVmlzaWJsZUNvbnRl
bnQgPT0gQ2xpcFRvVmlzaWJsZUNvbnRlbnQ6OlllcykgewotICAgICAgICBhdXRvIHNlbGVjdGlv
blJlY3QgPSBzZWxlY3Rpb24uYm91bmRzQ2xpcHBlZFRvVmlzaWJsZUNvbnRlbnQoKTsKLSAgICAg
ICAgcmV0dXJuIGludGVyc2VjdGlvbihzZWxlY3Rpb25SZWN0LCByZW5kZXJWaWV3LT5mcmFtZVZp
ZXcoKS52aXNpYmxlQ29udGVudFJlY3QoU2Nyb2xsYWJsZUFyZWE6OkxlZ2FjeUlPU0RvY3VtZW50
VmlzaWJsZVJlY3QpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc2VsZWN0aW9uLmJvdW5kcygpOwog
fQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjpnZXRDbGlwcGVkVmlzaWJsZVRleHRSZWN0YW5nbGVz
KFZlY3RvcjxGbG9hdFJlY3Q+JiByZWN0YW5nbGVzLCBUZXh0UmVjdGFuZ2xlSGVpZ2h0IHRleHRS
ZWN0SGVpZ2h0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmlu
ZGV4IDdlMWQ4OTQ5ZDA3MTc5NTAxMzcyOTc1OTNkOTE5OWY0N2JlNDk1MmUuLmI0YzEwOTk1NzIw
MDE4ODhhNDdmZDgwMjM2YjBjYjJkYTI1Zjg3ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmgKQEAgLTEyNCw3ICsxMjQsOCBAQCBwdWJsaWM6CiAgICAgICAgIFJldmVh
bFNlbGVjdGlvbiA9IDEgPDwgNywKICAgICAgICAgUmV2ZWFsU2VsZWN0aW9uVXBUb01haW5GcmFt
ZSA9IDEgPDwgOCwKICAgICAgICAgU21vb3RoU2Nyb2xsID0gMSA8PCA5LAotICAgICAgICBEZWxl
Z2F0ZU1haW5GcmFtZVNjcm9sbCA9IDEgPDwgMTAKKyAgICAgICAgRGVsZWdhdGVNYWluRnJhbWVT
Y3JvbGwgPSAxIDw8IDEwLAorICAgICAgICBSZXZlYWxTZWxlY3Rpb25Cb3VuZHMgPSAxIDw8IDEx
CiAgICAgfTsKICAgICBzdGF0aWMgY29uc3RleHByIE9wdGlvblNldDxTZXRTZWxlY3Rpb25PcHRp
b24+IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKEVVc2VyVHJpZ2dlcmVkID0gTm90VXNlclRy
aWdnZXJlZCk7CiAKQEAgLTI2Myw3ICsyNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVG
cm9tQXNzb2NpYXRlZExpdmVSYW5nZSgpOwogCiBwcml2YXRlOgotICAgIHZvaWQgdXBkYXRlQW5k
UmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiwgU2Nyb2xsQmVo
YXZpb3IgPSBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudCk7CisgICAgdm9pZCB1cGRhdGVBbmRSZXZl
YWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmLCBTY3JvbGxCZWhhdmlv
ciA9IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBSZXZlYWxFeHRlbnRPcHRpb24gPSBSZXZlYWxF
eHRlbnRPcHRpb246OlJldmVhbEV4dGVudCk7CiAgICAgdm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3Jz
Rm9yU2VsZWN0aW9uKCk7CiAKICAgICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0Fw
cGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIE9wdGlvblNldDxTZXRTZWxlY3Rpb25P
cHRpb24+LCBDdXJzb3JBbGlnbk9uU2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvU3luYXBzZVNQSS5oIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvU3luYXBzZVNQSS5oCmluZGV4IDgwOTI4ZTA1NDVi
MmFiOGZmNGE3MWNkZjE3ZjI1NTliYzdjMTVhNjkuLmM3MDM5MDEyZGE2YmM4ZTI1NDRhNzliZWE3
Mzc2MDU0NzZhMWE3MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0Nv
Y29hL1N5bmFwc2VTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9T
eW5hcHNlU1BJLmgKQEAgLTM3LDYgKzM3LDggQEAgdHlwZWRlZiB2b2lkKF5TWU5vdGVzQWN0aXZh
dGlvbk9ic2VydmVySGFuZGxlcikoQk9PTCBpc1Zpc2libGUpOwogCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHksIGdldHRlcj1pc1Zpc2libGUpIEJPT0wgdmlzaWJsZTsKIAorQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgdmlzaWJsZUZyYW1lOworCiAtIChpbnN0
YW5jZXR5cGUpaW5pdFdpdGhIYW5kbGVyOihudWxsYWJsZSBTWU5vdGVzQWN0aXZhdGlvbk9ic2Vy
dmVySGFuZGxlciloYW5kbGVyOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4IDQxZGU3YjkwMjMyMWNmZGQwNThmMzA0NmNj
ZmY0MjcwMTE5ZjM4MGQuLjUzMmE5YTViODE3OGU3ZTdkNzA5ZGIyZWQyYTc4ODUwYTEyOWQ4ZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1t
CkBAIC04Myw2ICs4Myw3IEBAIC0gKHZvaWQpX2FjdGlvbjooaWQpc2VuZGVyIFwKIAogc3RhdGlj
IGNvbnN0IFNlY29uZHMgZGVsYXlCZWZvcmVOb1Zpc2libGVDb250ZW50c1JlY3RzTG9nZ2luZyA9
IDFfczsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIGRlbGF5QmVmb3JlTm9Db21taXRzTG9nZ2luZyA9
IDVfczsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBoaWdobGlnaHRNYXJnaW4gPSA1OwogCiBzdGF0
aWMgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbkZvclVJSW50ZXJmYWNlT3JpZW50YXRpb24oVUlJ
bnRlcmZhY2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKIHsKQEAgLTExNTMsNiArMTE1NCwzOSBA
QCAtICh2b2lkKV9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQ
b2ludClzY3JvbGxQb3NpdGlvbiBzY3JvbAogICAgIH0KIH0KIAorLSAoZmxvYXQpX2FkanVzdFNj
cm9sbFJlY3RUb0F2b2lkSGlnaGxpZ2h0T3ZlcmxheTooV2ViQ29yZTo6RmxvYXRSZWN0KXRhcmdl
dFJlY3QKK3sKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgV2ViQ29yZTo6RmxvYXRS
ZWN0IG92ZXJsYXlSZWN0ID0gW3NlbGYgY29udmVydFJlY3Q6X3BhZ2UtPmFwcEhpZ2hsaWdodHNP
dmVybGF5UmVjdCgpIGZyb21Db29yZGluYXRlU3BhY2U6c2VsZi53aW5kb3cuc2NyZWVuLmNvb3Jk
aW5hdGVTcGFjZV07CisgICAgCisgICAgaWYgKENHUmVjdElzTnVsbChvdmVybGF5UmVjdCkpCisg
ICAgICAgIHJldHVybiAwOworICAgICAgICAKKyAgICBvdmVybGF5UmVjdC5leHBhbmQoaGlnaGxp
Z2h0TWFyZ2luLCBoaWdobGlnaHRNYXJnaW4pOworICAgIAorICAgIGlmICghdGFyZ2V0UmVjdC5p
bnRlcnNlY3RzKG92ZXJsYXlSZWN0KSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgCisgICAgZmxv
YXQgdG9wR2FwID0gb3ZlcmxheVJlY3QueSgpIC0gW3NlbGYgYm91bmRzXS5vcmlnaW4ueTsKKyAg
ICBmbG9hdCBib3R0b21HYXAgPSAoc2VsZi5ib3VuZHMuc2l6ZS5oZWlnaHQgKyBzZWxmLmJvdW5k
cy5vcmlnaW4ueSkgLSBvdmVybGF5UmVjdC5tYXhZKCk7CisgICAgCisgICAgZmxvYXQgbWlkU2Ny
ZWVuID0gc2VsZi5jZW50ZXIueTsKKworICAgIGlmICh0b3BHYXAgPiBib3R0b21HYXApIHsKKyAg
ICAgICAgYXV0byBtaWRHYXAgPSB0b3BHYXAgLyAyICsgc2VsZi5ib3VuZHMub3JpZ2luLnk7Cisg
ICAgICAgIGF1dG8gZGlmZiA9IG1pZFNjcmVlbiAtIG1pZEdhcDsKKyAgICAgICAgcmV0dXJuIGRp
ZmY7CisgICAgfQorICAgIAorICAgIGF1dG8gbWlkR2FwID0gYm90dG9tR2FwIC8gMiArIHNlbGYu
Ym91bmRzLm9yaWdpbi55OworICAgIGF1dG8gZGlmZiA9IG1pZEdhcCAtIG1pZFNjcmVlbjsKKyAg
ICByZXR1cm4gZGlmZjsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKworCiAtIChC
T09MKV9zY3JvbGxUb1JlY3Q6KFdlYkNvcmU6OkZsb2F0UmVjdCl0YXJnZXRSZWN0IG9yaWdpbjoo
V2ViQ29yZTo6RmxvYXRQb2ludClvcmlnaW4gbWluaW11bVNjcm9sbERpc3RhbmNlOihmbG9hdClt
aW5pbXVtU2Nyb2xsRGlzdGFuY2UKIHsKICAgICBpZiAoIVtfc2Nyb2xsVmlldyBpc1Njcm9sbEVu
YWJsZWRdKQpAQCAtMTE4Nyw2ICsxMjIxLDE1IEBAIC0gKEJPT0wpX3Njcm9sbFRvUmVjdDooV2Vi
Q29yZTo6RmxvYXRSZWN0KXRhcmdldFJlY3Qgb3JpZ2luOihXZWJDb3JlOjpGbG9hdFBvaW50CiAg
ICAgc2Nyb2xsVmlld09mZnNldERlbHRhLnNjYWxlKGNvbnRlbnRab29tU2NhbGUoc2VsZikpOwog
CiAgICAgZmxvYXQgc2Nyb2xsRGlzdGFuY2UgPSBzY3JvbGxWaWV3T2Zmc2V0RGVsdGEuZGlhZ29u
YWxMZW5ndGgoKTsKKyAgICAKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgc3RhcnRSZWN0ID0gdGFy
Z2V0UmVjdDsKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3QgY29udmVydGVkU3RhcnRSZWN0ID0gW3Nl
bGYgY29udmVydFJlY3Q6c3RhcnRSZWN0IGZyb21WaWV3OnNlbGYuX2N1cnJlbnRDb250ZW50Vmll
d107CisgICAgY29udmVydGVkU3RhcnRSZWN0Lm1vdmUoLXNjcm9sbFZpZXdPZmZzZXREZWx0YSk7
CisKKyAgICBmbG9hdCBhZGRpdGlvbmFsT2Zmc2V0ID0gW3NlbGYgX2FkanVzdFNjcm9sbFJlY3RU
b0F2b2lkSGlnaGxpZ2h0T3ZlcmxheTpjb252ZXJ0ZWRTdGFydFJlY3RdOworCisgICAgc2Nyb2xs
Vmlld09mZnNldERlbHRhICs9IFdlYkNvcmU6OkZsb2F0U2l6ZSgwLCBhZGRpdGlvbmFsT2Zmc2V0
KTsKKyAgICAKICAgICBpZiAoc2Nyb2xsRGlzdGFuY2UgPCBtaW5pbXVtU2Nyb2xsRGlzdGFuY2Up
CiAgICAgICAgIHJldHVybiBOTzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCA2ZDVmZWIzNWMzNWVjMDc3MzYwNjI0ZWQy
MGU1OWJiNWU3NGYxMjJjLi5kODllYmEyYjEzNDcxYzRhM2NlOTc5ODJmZmJmN2E3ZWJiZmZjOWNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlD
b2NvYS5tbQpAQCAtNjAzLDYgKzYwMywxMyBAQCBib29sIFdlYlBhZ2VQcm94eTo6YXBwSGlnaGxp
Z2h0c1Zpc2liaWxpdHkoKQogICAgIHJldHVybiBbbV9hcHBIaWdobGlnaHRzT2JzZXJ2ZXIgaXNW
aXNpYmxlXTsKIH0KIAorQ0dSZWN0IFdlYlBhZ2VQcm94eTo6YXBwSGlnaGxpZ2h0c092ZXJsYXlS
ZWN0KCkKK3sKKyAgICBpZiAoIW1fYXBwSGlnaGxpZ2h0c09ic2VydmVyKQorICAgICAgICBzZXRV
cEhpZ2hsaWdodHNPYnNlcnZlcigpOworICAgIHJldHVybiBbbV9hcHBIaWdobGlnaHRzT2JzZXJ2
ZXIgdmlzaWJsZUZyYW1lXTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnNldFVwSGlnaGxpZ2h0
c09ic2VydmVyKCkKIHsKICAgICBpZiAobV9hcHBIaWdobGlnaHRzT2JzZXJ2ZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGE2ODNiMjcxZmVkMTE5NDA1Njc0ODM4
ZDI3YjA4NTE5MGQyNjI1ODQuLjk3NDRkYWU4MWFhOGNkOTQzMjdhMjA3MzU0NjVlYTRjMTg5OTEx
YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xOTExLDYgKzE5
MTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXN0b3JlQXBwSGlnaGxpZ2h0c0FuZFNjcm9sbFRv
SW5kZXgoY29uc3QgVmVjdG9yPFJlZjxXZWJLaXQ6OlNoYXJlZE1lbW9yeT4+JiBoaWdobGlnaHRz
LCBjb25zdCBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBpbmRleCk7CiAgICAgdm9pZCBzZXRBcHBI
aWdobGlnaHRzVmlzaWJpbGl0eShjb25zdCBXZWJDb3JlOjpIaWdobGlnaHRWaXNpYmlsaXR5KTsK
ICAgICBib29sIGFwcEhpZ2hsaWdodHNWaXNpYmlsaXR5KCk7CisgICAgQ0dSZWN0IGFwcEhpZ2hs
aWdodHNPdmVybGF5UmVjdCgpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434013</attachid>
            <date>2021-07-22 09:24:29 -0700</date>
            <delta_ts>2021-07-22 10:07:29 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-228172-20210722092429.patch</filename>
            <type>text/plain</type>
            <size>14674</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5OTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk2MTZhMDgyMWExZDVj
ZDZmYmRlZjNlYjg3NGNiYjZmODk1NmMyOC4uMGQyZWQzMDEwMjE1YWJkZmU5NDZmZTc3OWYzYWE0
MWZmZWRiODViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA3LTIxICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgUXVp
Y2sgTm90ZSBvdmVybGF5IHdoZW4gc2Nyb2xsaW5nIHRvIHNob3cgYSBoaWdobGlnaHQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODE3MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaCBhbmQgVGltIEhvcnRvbi4KKworICAgICAgICBX
aGVuIHNjcm9sbGluZyB0byBzaG93IHRoZSBzZWxlY3RlZCBoaWdobGlnaHQgYWZ0ZXIgY2xpY2tp
bmcgb24gb25lIGluIHRoZSBRdWlja05vdGUgb3ZlcmxheSwKKyAgICAgICAgbWFrZSBzdXJlIHRv
IGF2b2lkIHRoZSBRdWljayBOb3RlIG92ZXJsYXksIHNvIHRoYXQgdGhlIHVzZXIgY2FuIGFjdHVh
bGx5IHNlZSB0aGUgaGlnaGxpZ2h0LiAKKyAgICAgICAgVGhpcyByZXF1aXJlZCBjYWxjdWxhdGlu
ZyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzZWxlY3Rpb24gcmVjdCBmb3IgaU9TLCBhbmQg
YWxzbyBwaXBpbmcgdGhyb3VnaAorICAgICAgICBpbmZvcm1hdGlvbiB0byBoYXZlIHRoZSBzZWxl
Y3Rpb24gcmVjdCBiZSB0aGUgZW50aXJlIHJlY3QsIHJhdGhlciB0aGF0IGp1c3QgdGhlIGNhcmV0
IGFuZCB0aGUgZW5kIG9mIHNlbGVjdGlvbi4KKworICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0
L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwSGlnaGxpZ2h0
U3RvcmFnZTo6YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFuZFNjcm9sbCk6CisgICAgICAgICog
ZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGVtcG9yYXJ5U2VsZWN0aW9u
Q2hhbmdlOjpzZXRTZWxlY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAg
ICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0
aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVT
ZWxlY3Rpb246OnNlbGVjdGlvbkJvdW5kcyBjb25zdCk6CisgICAgICAgICogZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5oOgorCiAyMDIxLTA3LTE2ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVs
ZEBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSB0aGUgbGFjayBvZiBhbiBBTkdMRSBkeWxpYiB1
bmNvbmRpdGlvbmFsbHkgbG9nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM1YmFlY2Y4ZDNlY2U5NzgwNjM4ZDlkYmZi
Njc2NWRhZjAxMTZlMDguLjY2NTMwMGFlZjZhMzliNTBhZmYwNTYyYTQ5YWFjODkyYWFmMWFiNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjEtMDctMjEgIE1lZ2FuIEdhcmRuZXIgIDxt
ZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBBdm9pZCBRdWljayBOb3RlIG92ZXJs
YXkgd2hlbiBzY3JvbGxpbmcgdG8gc2hvdyBhIGhpZ2hsaWdodAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4MTcyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgV2Vuc29uIEhzaWVoIGFuZCBUaW0gSG9ydG9uLgorCisgICAgICAgIFdoZW4gc2Nyb2xsaW5n
IHRvIHNob3cgdGhlIHNlbGVjdGVkIGhpZ2hsaWdodCBhZnRlciBjbGlja2luZyBvbiBvbmUgaW4g
dGhlIFF1aWNrTm90ZSBvdmVybGF5LAorICAgICAgICBtYWtlIHN1cmUgdG8gYXZvaWQgdGhlIFF1
aWNrIE5vdGUgb3ZlcmxheSwgc28gdGhhdCB0aGUgdXNlciBjYW4gYWN0dWFsbHkgc2VlIHRoZSBo
aWdobGlnaHQuIAorICAgICAgICBUaGlzIHJlcXVpcmVkIGNhbGN1bGF0aW5nIG1vcmUgaW5mb3Jt
YXRpb24gYWJvdXQgdGhlIHNlbGVjdGlvbiByZWN0IGZvciBpT1MsIGFuZCBhbHNvIHBpcGluZyB0
aHJvdWdoCisgICAgICAgIGluZm9ybWF0aW9uIHRvIGhhdmUgdGhlIHNlbGVjdGlvbiByZWN0IGJl
IHRoZSBlbnRpcmUgcmVjdCwgcmF0aGVyIHRoYXQganVzdCB0aGUgY2FyZXQgYW5kIHRoZSBlbmQg
b2Ygc2VsZWN0aW9uLgorCisgICAgICAgICogUGxhdGZvcm0vc3BpL0NvY29hL1N5bmFwc2VTUEku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW06CisgICAgICAg
ICgtW1dLV2ViVmlldyBhZGp1c3RTY3JvbGxSZWN0Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcg
X3Njcm9sbFRvUmVjdDpvcmlnaW46bWluaW11bVNjcm9sbERpc3RhbmNlOl0pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjphcHBIaWdobGlnaHRzTm90ZU92ZXJsYXlSZWN0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisKIDIwMjEtMDctMTYgIFRpbSBIb3J0b24gIDx0aW1v
dGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRvcHQgQmlmdXJjYXRlZEdyYXBoaWNz
Q29udGV4dCBmb3IgYmFja2luZyBzdG9yZSArIGRpc3BsYXkgbGlzdCBSZW1vdGVMYXllckJhY2tp
bmdTdG9yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBw
SGlnaGxpZ2h0U3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9B
cHBIaWdobGlnaHRTdG9yYWdlLmNwcAppbmRleCA2NmVlZTI3M2U4NzNmODJkODM4NGYzMDdiZjM4
YTBlODEzNjkxNmUyLi5iYjU2OWEyMWMwMzRmM2Y1NDQ4MjA5ZjYzOGMxYjM2OGZjNTYzNDc4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRT
dG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdo
bGlnaHRTdG9yYWdlLmNwcApAQCAtMjcwLDggKzI3MCw4IEBAIGJvb2wgQXBwSGlnaGxpZ2h0U3Rv
cmFnZTo6YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFuZFNjcm9sbChBcHBIaWdobGlnaHRSYW5n
ZURhCiAgICAgICAgIGF1dG8gdGV4dEluZGljYXRvciA9IFRleHRJbmRpY2F0b3I6OmNyZWF0ZVdp
dGhSYW5nZShyYW5nZS52YWx1ZSgpLCB7IFRleHRJbmRpY2F0b3JPcHRpb246OkRvTm90Q2xpcFRv
VmlzaWJsZVJlY3QgfSwgV2ViQ29yZTo6VGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRp
b246OkJvdW5jZSk7CiAgICAgICAgIGlmICh0ZXh0SW5kaWNhdG9yKQogICAgICAgICAgICAgbV9k
b2N1bWVudC0+cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zZXRUZXh0SW5kaWNhdG9yKHRleHRJ
bmRpY2F0b3ItPmRhdGEoKSk7Ci0gICAgICAgIAotICAgICAgICBUZW1wb3JhcnlTZWxlY3Rpb25D
aGFuZ2Ugc2VsZWN0aW9uQ2hhbmdlKCpzdHJvbmdEb2N1bWVudCwgeyByYW5nZS52YWx1ZSgpIH0s
IHsgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpEZWxlZ2F0ZU1haW5GcmFtZVNjcm9sbCwgVGVt
cG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpTbW9vdGhTY3JvbGwgfSk7CisKKyAgICAgICAgVGVtcG9y
YXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ryb25nRG9jdW1lbnQsIHsgcmFu
Z2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6RGVsZWdhdGVNYWluRnJh
bWVTY3JvbGwsIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6U21vb3RoU2Nyb2xsLCBUZW1wb3Jh
cnlTZWxlY3Rpb25PcHRpb246OlJldmVhbFNlbGVjdGlvbkJvdW5kcyB9KTsKICAgICB9CiAKICAg
ICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCBjM2IxOTI1ZTY3
Y2QzYzdhYjMzMjY1MTc1ZTJlNDk4ZjFmZDVlZTVkLi41Y2I2MzY5OThiYWQyZjhkMThlZTBlYWVm
ODk0MDAzMDFiNWVkZDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0yNjksNiAr
MjY5LDggQEAgdm9pZCBUZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2U6OnNldFNlbGVjdGlvbihjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCiAgICAgICAgIG9wdGlvbnMuYWRkKEZyYW1l
U2VsZWN0aW9uOjpEZWxlZ2F0ZU1haW5GcmFtZVNjcm9sbCk7CiAgICAgaWYgKG1fb3B0aW9ucyAm
IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6U21vb3RoU2Nyb2xsKQogICAgICAgICBvcHRpb25z
LmFkZChGcmFtZVNlbGVjdGlvbjo6U21vb3RoU2Nyb2xsKTsKKyAgICBpZiAobV9vcHRpb25zICYg
VGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpSZXZlYWxTZWxlY3Rpb25Cb3VuZHMpCisgICAgICAg
IG9wdGlvbnMuYWRkKEZyYW1lU2VsZWN0aW9uOjpSZXZlYWxTZWxlY3Rpb25Cb3VuZHMpOwogICAg
IG1fZG9jdW1lbnQtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihzZWxlY3Rpb24sIG9wdGlvbnMp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCBmZDU5YmZmYWU3MmQ1ZmFmOTI0NzIz
ZWY0NzliMjg1NjA2MDM4OTU0Li42MzU1ZmZlYjM0NjFkM2IxMmJlMWQ4MzM2MWI5NzhhMGZkOWZl
YjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTEyMiw2ICsxMjIsOCBAQCBlbnVtIGNs
YXNzIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbiA6IHVpbnQ4X3QgewogICAgIFNtb290aFNjcm9s
bCA9IDEgPDwgNCwKICAgICAKICAgICBEZWxlZ2F0ZU1haW5GcmFtZVNjcm9sbCA9IDEgPDwgNSwK
KyAgICAKKyAgICBSZXZlYWxTZWxlY3Rpb25Cb3VuZHMgPSAxIDw8IDYsCiB9OwogCiBjbGFzcyBU
ZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmNwcAppbmRleCAxY2EzYmZiYzkyMWM0NTc5Njg0YjEwMzUwMmU0YzUzMzJjMjkxMTI3
Li41NTNmNTljYTQ1ZmU3OTViYTg3NTgxMTM1MzgwNDFlMTAzMDNiNzMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtODIsNiArODIsNyBAQAogI2luY2x1
ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVy
U3R5bGUuaCIKKyNpbmNsdWRlICJTZWxlY3Rpb25HZW9tZXRyeS5oIgogI2VuZGlmCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTQ1MSw3ICs0NTIsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpz
ZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBPcHRpb25TZXQ8
UwogICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5sYXlvdXRDb250ZXh0KCkuaXNMYXlv
dXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVj
dGlvbihpbnRlbnQsIG9wdGlvbnMuY29udGFpbnMoU21vb3RoU2Nyb2xsKSA/IFNjcm9sbEJlaGF2
aW9yOjpTbW9vdGggOiBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudCk7CisgICAgdXBkYXRlQW5kUmV2
ZWFsU2VsZWN0aW9uKGludGVudCwgb3B0aW9ucy5jb250YWlucyhTbW9vdGhTY3JvbGwpID8gU2Ny
b2xsQmVoYXZpb3I6OlNtb290aCA6IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBvcHRpb25zLmNv
bnRhaW5zKFJldmVhbFNlbGVjdGlvbkJvdW5kcykgPyBSZXZlYWxFeHRlbnRPcHRpb246OkRvTm90
UmV2ZWFsRXh0ZW50IDogUmV2ZWFsRXh0ZW50T3B0aW9uOjpSZXZlYWxFeHRlbnQpOwogCiAgICAg
aWYgKG9wdGlvbnMgJiBJc1VzZXJUcmlnZ2VyZWQpIHsKICAgICAgICAgaWYgKGF1dG8qIGNsaWVu
dCA9IHByb3RlY3RlZERvY3VtZW50LT5lZGl0b3IoKS5jbGllbnQoKSkKQEAgLTQ3OCw3ICs0Nzks
NyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZShSZXZlYWxT
ZWxlY3Rpb25BZnRlclVwZGF0ZSByZXZlYWxNbwogICAgICAgICB2aWV3LT5zZWxlY3Rpb24oKS5j
bGVhcigpOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rp
b24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCwgU2Nyb2xsQmVoYXZpb3Ig
c2Nyb2xsQmVoYXZpb3IpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxl
Y3Rpb24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCwgU2Nyb2xsQmVoYXZp
b3Igc2Nyb2xsQmVoYXZpb3IsIFJldmVhbEV4dGVudE9wdGlvbiByZXZlYWxFeHRlbnQpCiB7CiAg
ICAgaWYgKCFtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUpCiAgICAgICAgIHJldHVybjsKQEAgLTQ5
NSw3ICs0OTYsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rp
b24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludAogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICBhbGlnbm1lbnQgPSBtX2Fsd2F5c0FsaWduQ3Vyc29yT25TY3JvbGxXaGVuUmV2ZWFs
aW5nU2VsZWN0aW9uID8gU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvcEFsd2F5cyA6IFNjcm9sbEFs
aWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZDsKIAotICAgICAgICByZXZlYWxTZWxlY3Rpb24o
bV9zZWxlY3Rpb25SZXZlYWxNb2RlLCBhbGlnbm1lbnQsIFJldmVhbEV4dGVudCwgc2Nyb2xsQmVo
YXZpb3IpOworICAgICAgICByZXZlYWxTZWxlY3Rpb24obV9zZWxlY3Rpb25SZXZlYWxNb2RlLCBh
bGlnbm1lbnQsIHJldmVhbEV4dGVudCwgc2Nyb2xsQmVoYXZpb3IpOwogICAgIH0KIAogICAgIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoaW50ZW50KTsKQEAgLTIzMjUsMTQg
KzIzMjYsMjcgQEAgRmxvYXRSZWN0IEZyYW1lU2VsZWN0aW9uOjpzZWxlY3Rpb25Cb3VuZHMoQ2xp
cFRvVmlzaWJsZUNvbnRlbnQgY2xpcFRvVmlzaWJsZUNvbnQKICAgICBpZiAoIXJlbmRlclZpZXcp
CiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CiAKKyAgICBpZiAoIW1fc2VsZWN0aW9uLnJh
bmdlKCkpCisgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CisgICAgCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyAgICBhdXRvIHNlbGVjdGlvbkdlb21ldHJpZXMgPSBSZW5kZXJPYmplY3Q6
OmNvbGxlY3RTZWxlY3Rpb25HZW9tZXRyaWVzKG1fc2VsZWN0aW9uLnJhbmdlKCkudmFsdWUoKSk7
CisgICAgSW50UmVjdCB2aXNpYmxlU2VsZWN0aW9uUmVjdDsKKyAgICBmb3IgKGF1dG8gZ2VvbWV0
cnkgOiBzZWxlY3Rpb25HZW9tZXRyaWVzKQorICAgICAgICB2aXNpYmxlU2VsZWN0aW9uUmVjdC51
bml0ZShnZW9tZXRyeS5yZWN0KCkpOworICAgIAorICAgIGlmIChjbGlwVG9WaXNpYmxlQ29udGVu
dCA9PSBDbGlwVG9WaXNpYmxlQ29udGVudDo6Tm8pCisgICAgICAgIHJldHVybiB2aXNpYmxlU2Vs
ZWN0aW9uUmVjdDsKKyNlbHNlCiAgICAgYXV0byYgc2VsZWN0aW9uID0gcmVuZGVyVmlldy0+c2Vs
ZWN0aW9uKCk7CisgICAgYXV0byB2aXNpYmxlU2VsZWN0aW9uUmVjdCA9IHNlbGVjdGlvbi5ib3Vu
ZHNDbGlwcGVkVG9WaXNpYmxlQ29udGVudCgpOworICAgIAorICAgIGlmIChjbGlwVG9WaXNpYmxl
Q29udGVudCA9PSBDbGlwVG9WaXNpYmxlQ29udGVudDo6Tm8pCisgICAgICAgIHJldHVybiBzZWxl
Y3Rpb24uYm91bmRzKCk7CisjZW5kaWYKKyAgICAKKyAgICByZXR1cm4gaW50ZXJzZWN0aW9uKHZp
c2libGVTZWxlY3Rpb25SZWN0LCByZW5kZXJWaWV3LT5mcmFtZVZpZXcoKS52aXNpYmxlQ29udGVu
dFJlY3QoU2Nyb2xsYWJsZUFyZWE6OkxlZ2FjeUlPU0RvY3VtZW50VmlzaWJsZVJlY3QpKTsKIAot
ICAgIGlmIChjbGlwVG9WaXNpYmxlQ29udGVudCA9PSBDbGlwVG9WaXNpYmxlQ29udGVudDo6WWVz
KSB7Ci0gICAgICAgIGF1dG8gc2VsZWN0aW9uUmVjdCA9IHNlbGVjdGlvbi5ib3VuZHNDbGlwcGVk
VG9WaXNpYmxlQ29udGVudCgpOwotICAgICAgICByZXR1cm4gaW50ZXJzZWN0aW9uKHNlbGVjdGlv
blJlY3QsIHJlbmRlclZpZXctPmZyYW1lVmlldygpLnZpc2libGVDb250ZW50UmVjdChTY3JvbGxh
YmxlQXJlYTo6TGVnYWN5SU9TRG9jdW1lbnRWaXNpYmxlUmVjdCkpOwotICAgIH0KLQotICAgIHJl
dHVybiBzZWxlY3Rpb24uYm91bmRzKCk7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246OmdldENs
aXBwZWRWaXNpYmxlVGV4dFJlY3RhbmdsZXMoVmVjdG9yPEZsb2F0UmVjdD4mIHJlY3RhbmdsZXMs
IFRleHRSZWN0YW5nbGVIZWlnaHQgdGV4dFJlY3RIZWlnaHQpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggN2UxZDg5NDlkMDcxNzk1MDEzNzI5NzU5M2Q5
MTk5ZjQ3YmU0OTUyZS4uYjRjMTA5OTU3MjAwMTg4OGE0N2ZkODAyMzZiMGNiMmRhMjVmODc4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMTI0LDcgKzEyNCw4
IEBAIHB1YmxpYzoKICAgICAgICAgUmV2ZWFsU2VsZWN0aW9uID0gMSA8PCA3LAogICAgICAgICBS
ZXZlYWxTZWxlY3Rpb25VcFRvTWFpbkZyYW1lID0gMSA8PCA4LAogICAgICAgICBTbW9vdGhTY3Jv
bGwgPSAxIDw8IDksCi0gICAgICAgIERlbGVnYXRlTWFpbkZyYW1lU2Nyb2xsID0gMSA8PCAxMAor
ICAgICAgICBEZWxlZ2F0ZU1haW5GcmFtZVNjcm9sbCA9IDEgPDwgMTAsCisgICAgICAgIFJldmVh
bFNlbGVjdGlvbkJvdW5kcyA9IDEgPDwgMTEKICAgICB9OwogICAgIHN0YXRpYyBjb25zdGV4cHIg
T3B0aW9uU2V0PFNldFNlbGVjdGlvbk9wdGlvbj4gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
RVVzZXJUcmlnZ2VyZWQgPSBOb3RVc2VyVHJpZ2dlcmVkKTsKIApAQCAtMjYzLDcgKzI2NCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUZyb21Bc3NvY2lhdGVkTGl2ZVJhbmdlKCk7CiAKIHBy
aXZhdGU6Ci0gICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQmLCBTY3JvbGxCZWhhdmlvciA9IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50
KTsKKyAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihjb25zdCBBWFRleHRTdGF0ZUNo
YW5nZUludGVudCYsIFNjcm9sbEJlaGF2aW9yID0gU2Nyb2xsQmVoYXZpb3I6Okluc3RhbnQsIFJl
dmVhbEV4dGVudE9wdGlvbiA9IFJldmVhbEV4dGVudE9wdGlvbjo6UmV2ZWFsRXh0ZW50KTsKICAg
ICB2b2lkIHVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIAogICAgIGJvb2wgc2V0
U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiwgT3B0aW9uU2V0PFNldFNlbGVjdGlvbk9wdGlvbj4sIEN1cnNvckFsaWduT25TY3JvbGwsIFRl
eHRHcmFudWxhcml0eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9D
b2NvYS9TeW5hcHNlU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9TeW5h
cHNlU1BJLmgKaW5kZXggODA5MjhlMDU0NWIyYWI4ZmY0YTcxY2RmMTdmMjU1OWJjN2MxNWE2OS4u
YzcwMzkwMTJkYTZiYzhlMjU0NGE3OWJlYTczNzYwNTQ3NmExYTcxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvU3luYXBzZVNQSS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL1N5bmFwc2VTUEkuaApAQCAtMzcsNiArMzcsOCBAQCB0
eXBlZGVmIHZvaWQoXlNZTm90ZXNBY3RpdmF0aW9uT2JzZXJ2ZXJIYW5kbGVyKShCT09MIGlzVmlz
aWJsZSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzVmlzaWJs
ZSkgQk9PTCB2aXNpYmxlOwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUmVj
dCB2aXNpYmxlRnJhbWU7CisKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEhhbmRsZXI6KG51bGxh
YmxlIFNZTm90ZXNBY3RpdmF0aW9uT2JzZXJ2ZXJIYW5kbGVyKWhhbmRsZXI7CiAKIEBlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KaW5kZXgg
NDFkZTdiOTAyMzIxY2ZkZDA1OGYzMDQ2Y2NmZjQyNzAxMTlmMzgwZC4uNTMyYTlhNWI4MTc4ZTdl
N2Q3MDlkYjJlZDJhNzg4NTBhMTI5ZDhlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KQEAgLTgzLDYgKzgzLDcgQEAgLSAodm9pZClfYWN0
aW9uOihpZClzZW5kZXIgXAogCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBkZWxheUJlZm9yZU5vVmlz
aWJsZUNvbnRlbnRzUmVjdHNMb2dnaW5nID0gMV9zOwogc3RhdGljIGNvbnN0IFNlY29uZHMgZGVs
YXlCZWZvcmVOb0NvbW1pdHNMb2dnaW5nID0gNV9zOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGhp
Z2hsaWdodE1hcmdpbiA9IDU7CiAKIHN0YXRpYyBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uRm9y
VUlJbnRlcmZhY2VPcmllbnRhdGlvbihVSUludGVyZmFjZU9yaWVudGF0aW9uIG9yaWVudGF0aW9u
KQogewpAQCAtMTE1Myw2ICsxMTU0LDM5IEBAIC0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9s
bFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sCiAgICAg
fQogfQogCistIChmbG9hdClfYWRqdXN0U2Nyb2xsUmVjdFRvQXZvaWRIaWdobGlnaHRPdmVybGF5
OihXZWJDb3JlOjpGbG9hdFJlY3QpdGFyZ2V0UmVjdAoreworI2lmIEVOQUJMRShBUFBfSElHSExJ
R0hUUykKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgb3ZlcmxheVJlY3QgPSBbc2VsZiBjb252ZXJ0
UmVjdDpfcGFnZS0+YXBwSGlnaGxpZ2h0c092ZXJsYXlSZWN0KCkgZnJvbUNvb3JkaW5hdGVTcGFj
ZTpzZWxmLndpbmRvdy5zY3JlZW4uY29vcmRpbmF0ZVNwYWNlXTsKKyAgICAKKyAgICBpZiAoQ0dS
ZWN0SXNOdWxsKG92ZXJsYXlSZWN0KSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIAorICAg
IG92ZXJsYXlSZWN0LmV4cGFuZChoaWdobGlnaHRNYXJnaW4sIGhpZ2hsaWdodE1hcmdpbik7Cisg
ICAgCisgICAgaWYgKCF0YXJnZXRSZWN0LmludGVyc2VjdHMob3ZlcmxheVJlY3QpKQorICAgICAg
ICByZXR1cm4gMDsKKyAgICAKKyAgICBmbG9hdCB0b3BHYXAgPSBvdmVybGF5UmVjdC55KCkgLSBb
c2VsZiBib3VuZHNdLm9yaWdpbi55OworICAgIGZsb2F0IGJvdHRvbUdhcCA9IChzZWxmLmJvdW5k
cy5zaXplLmhlaWdodCArIHNlbGYuYm91bmRzLm9yaWdpbi55KSAtIG92ZXJsYXlSZWN0Lm1heFko
KTsKKyAgICAKKyAgICBmbG9hdCBtaWRTY3JlZW4gPSBzZWxmLmNlbnRlci55OworCisgICAgaWYg
KHRvcEdhcCA+IGJvdHRvbUdhcCkgeworICAgICAgICBhdXRvIG1pZEdhcCA9IHRvcEdhcCAvIDIg
KyBzZWxmLmJvdW5kcy5vcmlnaW4ueTsKKyAgICAgICAgYXV0byBkaWZmID0gbWlkU2NyZWVuIC0g
bWlkR2FwOworICAgICAgICByZXR1cm4gZGlmZjsKKyAgICB9CisgICAgCisgICAgYXV0byBtaWRH
YXAgPSBib3R0b21HYXAgLyAyICsgc2VsZi5ib3VuZHMub3JpZ2luLnk7CisgICAgYXV0byBkaWZm
ID0gbWlkR2FwIC0gbWlkU2NyZWVuOworICAgIHJldHVybiBkaWZmOworI2Vsc2UKKyAgICByZXR1
cm4gMDsKKyNlbmRpZgorfQorCisKIC0gKEJPT0wpX3Njcm9sbFRvUmVjdDooV2ViQ29yZTo6Rmxv
YXRSZWN0KXRhcmdldFJlY3Qgb3JpZ2luOihXZWJDb3JlOjpGbG9hdFBvaW50KW9yaWdpbiBtaW5p
bXVtU2Nyb2xsRGlzdGFuY2U6KGZsb2F0KW1pbmltdW1TY3JvbGxEaXN0YW5jZQogewogICAgIGlm
ICghW19zY3JvbGxWaWV3IGlzU2Nyb2xsRW5hYmxlZF0pCkBAIC0xMTg3LDYgKzEyMjEsMTUgQEAg
LSAoQk9PTClfc2Nyb2xsVG9SZWN0OihXZWJDb3JlOjpGbG9hdFJlY3QpdGFyZ2V0UmVjdCBvcmln
aW46KFdlYkNvcmU6OkZsb2F0UG9pbnQKICAgICBzY3JvbGxWaWV3T2Zmc2V0RGVsdGEuc2NhbGUo
Y29udGVudFpvb21TY2FsZShzZWxmKSk7CiAKICAgICBmbG9hdCBzY3JvbGxEaXN0YW5jZSA9IHNj
cm9sbFZpZXdPZmZzZXREZWx0YS5kaWFnb25hbExlbmd0aCgpOworICAgIAorICAgIFdlYkNvcmU6
OkZsb2F0UmVjdCBzdGFydFJlY3QgPSB0YXJnZXRSZWN0OworICAgIFdlYkNvcmU6OkZsb2F0UmVj
dCBjb252ZXJ0ZWRTdGFydFJlY3QgPSBbc2VsZiBjb252ZXJ0UmVjdDpzdGFydFJlY3QgZnJvbVZp
ZXc6c2VsZi5fY3VycmVudENvbnRlbnRWaWV3XTsKKyAgICBjb252ZXJ0ZWRTdGFydFJlY3QubW92
ZSgtc2Nyb2xsVmlld09mZnNldERlbHRhKTsKKworICAgIGZsb2F0IGFkZGl0aW9uYWxPZmZzZXQg
PSBbc2VsZiBfYWRqdXN0U2Nyb2xsUmVjdFRvQXZvaWRIaWdobGlnaHRPdmVybGF5OmNvbnZlcnRl
ZFN0YXJ0UmVjdF07CisKKyAgICBzY3JvbGxWaWV3T2Zmc2V0RGVsdGEgKz0gV2ViQ29yZTo6Rmxv
YXRTaXplKDAsIGFkZGl0aW9uYWxPZmZzZXQpOworICAgIAogICAgIGlmIChzY3JvbGxEaXN0YW5j
ZSA8IG1pbmltdW1TY3JvbGxEaXN0YW5jZSkKICAgICAgICAgcmV0dXJuIE5POwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCmluZGV4
IDZkNWZlYjM1YzM1ZWMwNzczNjA2MjRlZDIwZTU5YmI1ZTc0ZjEyMmMuLmQ4OWViYTJiMTM0NzFj
NGEzY2U5Nzk4MmZmYmY3YTdlYmJmZmM5Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCkBAIC02MDMsNiArNjAzLDEzIEBAIGJv
b2wgV2ViUGFnZVByb3h5OjphcHBIaWdobGlnaHRzVmlzaWJpbGl0eSgpCiAgICAgcmV0dXJuIFtt
X2FwcEhpZ2hsaWdodHNPYnNlcnZlciBpc1Zpc2libGVdOwogfQogCitDR1JlY3QgV2ViUGFnZVBy
b3h5OjphcHBIaWdobGlnaHRzT3ZlcmxheVJlY3QoKQoreworICAgIGlmICghbV9hcHBIaWdobGln
aHRzT2JzZXJ2ZXIpCisgICAgICAgIHNldFVwSGlnaGxpZ2h0c09ic2VydmVyKCk7CisgICAgcmV0
dXJuIFttX2FwcEhpZ2hsaWdodHNPYnNlcnZlciB2aXNpYmxlRnJhbWVdOworfQorCiB2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0VXBIaWdobGlnaHRzT2JzZXJ2ZXIoKQogewogICAgIGlmIChtX2FwcEhp
Z2hsaWdodHNPYnNlcnZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5k
ZXggYTY4M2IyNzFmZWQxMTk0MDU2NzQ4MzhkMjdiMDg1MTkwZDI2MjU4NC4uOTc0NGRhZTgxYWE4
Y2Q5NDMyN2EyMDczNTQ2NWVhNGMxODk5MTFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKQEAgLTE5MTEsNiArMTkxMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc3Rv
cmVBcHBIaWdobGlnaHRzQW5kU2Nyb2xsVG9JbmRleChjb25zdCBWZWN0b3I8UmVmPFdlYktpdDo6
U2hhcmVkTWVtb3J5Pj4mIGhpZ2hsaWdodHMsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+
IGluZGV4KTsKICAgICB2b2lkIHNldEFwcEhpZ2hsaWdodHNWaXNpYmlsaXR5KGNvbnN0IFdlYkNv
cmU6OkhpZ2hsaWdodFZpc2liaWxpdHkpOwogICAgIGJvb2wgYXBwSGlnaGxpZ2h0c1Zpc2liaWxp
dHkoKTsKKyAgICBDR1JlY3QgYXBwSGlnaGxpZ2h0c092ZXJsYXlSZWN0KCk7CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>