<?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>174001</bug_id>
          
          <creation_ts>2017-06-29 18:25:05 -0700</creation_ts>
          <short_desc>Add API to get WKActivatedElementInfo</short_desc>
          <delta_ts>2017-06-30 20:09:07 -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></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>bdakin</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1324205</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-06-29 18:25:05 -0700</bug_when>
    <thetext>Add API to get WKActivatedElementInfo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324206</commentid>
    <comment_count>1</comment_count>
      <attachid>314199</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-06-29 18:25:42 -0700</bug_when>
    <thetext>Created attachment 314199
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324207</commentid>
    <comment_count>2</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-06-29 18:27:38 -0700</bug_when>
    <thetext>Sorry, forgot to add descriptions to the change logs, I&apos;ll do that in the morning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324210</commentid>
    <comment_count>3</comment_count>
      <attachid>314199</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-29 18:36:20 -0700</bug_when>
    <thetext>Comment on attachment 314199
Patch

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

&gt; Source/WebKit2/ChangeLog:4
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=174001

Please include a rdar link.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:5256
&gt; +    WebKit::InteractionInformationRequest infoRequest = WebKit::InteractionInformationRequest(WebCore::roundedIntPoint(position));

I don&apos;t think we need the WebKit:: namespacing here. Also, auto infoRequest would look a bit cleaner.

&gt; Tools/ChangeLog:4
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=174001

Please include a rdar link here too.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKRequestActivatedElementInfo.mm:40
&gt; +TEST(WebKit2, WKReqestActivatedElementInfo)

These are very similar to the PositionInformationTests formerly used for drag and drop. There are a couple of scenarios there that I think we should also test here, such as calling requestActivatedElementAtPosition: from within a requestActivatedElementAtPosition: block. But I think for this patch, it should be OK (we can work on a followup that moves PositionInformationTests to this file).

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKRequestActivatedElementInfo.mm:44
&gt; +    [webView _test_waitForDidFinishNavigation];

This can be shortened to use -synchronouslyLoadTestPageNamed:

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKRequestActivatedElementInfo.mm:52
&gt; +        EXPECT_TRUE(elementInfo.image != nil);

Could we also (or instead) check the size of the image here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324211</commentid>
    <comment_count>4</comment_count>
      <attachid>314199</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-06-29 18:36:47 -0700</bug_when>
    <thetext>Comment on attachment 314199
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:5260
&gt; +        capturedBlock([_WKActivatedElementInfo infoWithType:_WKActivatedElementTypeLink withInteractionInformationAtPosition:information]);

Now&apos;s probably time to think about what we want to do with the Type here. Maybe Wenson will have an idea :)

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h:363
&gt;  - (void)_requestDraggableElementAtPosition:(CGPoint)position completionBlock:(void (^)(_WKDraggableElementInfo *))block WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));

Is this one really WK_MAC_TBA??? Isn&apos;t this TARGET_OS_IPHONE code???

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h:365
&gt; +- (void)requestActivatedElementAtPosition:(CGPoint)position completionBlock:(void (^)(_WKActivatedElementInfo *))block;

This need a leading underscore. This needs availability annotations.

&gt; Source/WebKit2/UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h:38
&gt; +- (instancetype)infoWithType:(_WKActivatedElementType)type withInteractionInformationAtPosition:(const WebKit::InteractionInformationAtPosition&amp;)information;

The instance method should be initWithType, not infoWithType. They should both have leading underscores. Also, do you need both?

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKRequestActivatedElementInfo.mm:2
&gt; + * Copyright (C) 2015 Apple Inc. All rights reserved.

Time Traveller!

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKRequestActivatedElementInfo.mm:40
&gt; +TEST(WebKit2, WKReqestActivatedElementInfo)

Request. Also, drop the WK prefix

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKRequestActivatedElementInfo.mm:43
&gt; +    [webView loadHTMLString:@&quot;&lt;html&gt;&lt;body margin: 0px; padding: 0px; &gt;&lt;a  href=&apos;testURL.test&apos; style=&apos;display: block; height: 100%;&apos; title=&apos;HitTestLinkTitle&apos; id=&apos;testID&apos;&gt;&lt;/a&gt;&lt;/body&gt;&lt;/html&gt;&quot; baseURL:nil];

You have two spaces before the href

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKRequestActivatedElementInfo.mm:47
&gt; +    [webView requestActivatedElementAtPosition:CGPointMake(50, 50) completionBlock: ^(_WKActivatedElementInfo * elementInfo) {

no space after the star</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324219</commentid>
    <comment_count>5</comment_count>
      <attachid>314199</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-29 18:42:40 -0700</bug_when>
    <thetext>Comment on attachment 314199
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:5260
&gt;&gt; +        capturedBlock([_WKActivatedElementInfo infoWithType:_WKActivatedElementTypeLink withInteractionInformationAtPosition:information]);
&gt; 
&gt; Now&apos;s probably time to think about what we want to do with the Type here. Maybe Wenson will have an idea :)

I think always passing in _WKActivatedElementTypeLink would be misleading. It seems possible to derive the _WKActivatedElementType from position information though, unless there are corner cases I might be missing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324221</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-06-29 18:43:53 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #5)
&gt; Comment on attachment 314199 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=314199&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:5260
&gt; &gt;&gt; +        capturedBlock([_WKActivatedElementInfo infoWithType:_WKActivatedElementTypeLink withInteractionInformationAtPosition:information]);
&gt; &gt; 
&gt; &gt; Now&apos;s probably time to think about what we want to do with the Type here. Maybe Wenson will have an idea :)
&gt; 
&gt; I think always passing in _WKActivatedElementTypeLink would be misleading.
&gt; It seems possible to derive the _WKActivatedElementType from position
&gt; information though, unless there are corner cases I might be missing?

Probably, we just need to think about what we want to say (esp. in the case of an image-that-is-a-link and whatnot)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324227</commentid>
    <comment_count>7</comment_count>
      <attachid>314199</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-29 18:59:26 -0700</bug_when>
    <thetext>Comment on attachment 314199
Patch

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

&gt;&gt;&gt;&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:5260
&gt;&gt;&gt;&gt; +        capturedBlock([_WKActivatedElementInfo infoWithType:_WKActivatedElementTypeLink withInteractionInformationAtPosition:information]);
&gt;&gt;&gt; 
&gt;&gt;&gt; Now&apos;s probably time to think about what we want to do with the Type here. Maybe Wenson will have an idea :)
&gt;&gt; 
&gt;&gt; I think always passing in _WKActivatedElementTypeLink would be misleading. It seems possible to derive the _WKActivatedElementType from position information though, unless there are corner cases I might be missing?
&gt; 
&gt; Probably, we just need to think about what we want to say (esp. in the case of an image-that-is-a-link and whatnot)

I think we should match the order of precedence for determining the _WKActivatedElementType for position information that already exists in -_dataForPreviewItemController:atPosition:type:. And refactor that out into a static helper function like activatedElementTypeForPositionInformation that we can use from both places.

As you mentioned on IRC, this would ideally go in a +infoWithInteractionInformationAtPosition: initializer, and we wouldn&apos;t be passing in the type when creating these things anymore, but that might require a bit of late-stage refactoring of -_dataForPreviewItemController:atPosition:type:.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324228</commentid>
    <comment_count>8</comment_count>
      <attachid>314199</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-29 19:01:11 -0700</bug_when>
    <thetext>Comment on attachment 314199
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:5256
&gt;&gt; +    WebKit::InteractionInformationRequest infoRequest = WebKit::InteractionInformationRequest(WebCore::roundedIntPoint(position));
&gt; 
&gt; I don&apos;t think we need the WebKit:: namespacing here. Also, auto infoRequest would look a bit cleaner.

Also, we don&apos;t need WebCore:: before roundedIntPoint</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324230</commentid>
    <comment_count>9</comment_count>
      <attachid>314199</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-29 19:06:14 -0700</bug_when>
    <thetext>Comment on attachment 314199
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h:363
&gt;&gt;  - (void)_requestDraggableElementAtPosition:(CGPoint)position completionBlock:(void (^)(_WKDraggableElementInfo *))block WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
&gt; 
&gt; Is this one really WK_MAC_TBA??? Isn&apos;t this TARGET_OS_IPHONE code???

We could conceivably make this work on macOS too. Though, I think I&apos;m going to just remove this entirely in the near future 🙃 (and fold PositionInformationTests into the new WKRequestActivatedElementInfo tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324679</commentid>
    <comment_count>10</comment_count>
      <attachid>314339</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-06-30 17:51:55 -0700</bug_when>
    <thetext>Created attachment 314339
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324681</commentid>
    <comment_count>11</comment_count>
      <attachid>314339</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-06-30 17:56:28 -0700</bug_when>
    <thetext>Comment on attachment 314339
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h:37
&gt; ++ (instancetype)_initWithInteractionInformationAtPosition:(const WebKit::InteractionInformationAtPosition&amp;)information;

Class methods should not start with &apos;init&apos;. This should be +ActivatedElementInfoAtPosition:

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKRequestActivatedElementInfo.mm:47
&gt; +    auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 500)]);
&gt; +    [webView loadHTMLString:@&quot;&lt;html&gt;&lt;head&gt;&lt;meta name=&apos;viewport&apos; content=&apos;initial-scale=1&apos;&gt;&lt;/head&gt;&lt;body style = &apos;margin: 0px;&apos;&gt;&lt;a href=&apos;testURL.test&apos; style=&apos;display: block; height: 100%;&apos; title=&apos;HitTestLinkTitle&apos; id=&apos;testID&apos;&gt;&lt;/a&gt;&lt;/body&gt;&lt;/html&gt;&quot; baseURL:nil];
&gt; +    [webView _test_waitForDidFinishNavigation];
&gt; +    
&gt; +    __block bool finished = false;
&gt; +    [webView _requestActivatedElementAtPosition:CGPointMake(50, 50) completionBlock: ^(_WKActivatedElementInfo *elementInfo) {

This test would be more thorough if the content were scaled and zoomed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324682</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-06-30 17:57:35 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #11)
&gt; Comment on attachment 314339 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=314339&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h:37
&gt; &gt; ++ (instancetype)_initWithInteractionInformationAtPosition:(const WebKit::InteractionInformationAtPosition&amp;)information;
&gt; 
&gt; Class methods should not start with &apos;init&apos;. This should be
&gt; +ActivatedElementInfoAtPosition:

+activatedElementInfoAtPosition:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324683</commentid>
    <comment_count>13</comment_count>
      <attachid>314339</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-06-30 17:58:03 -0700</bug_when>
    <thetext>Comment on attachment 314339
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h:37
&gt;&gt; ++ (instancetype)_initWithInteractionInformationAtPosition:(const WebKit::InteractionInformationAtPosition&amp;)information;
&gt; 
&gt; Class methods should not start with &apos;init&apos;. This should be +ActivatedElementInfoAtPosition:

Indeed, the previous review comment was explicit about which one to change but was applied overzealously :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324687</commentid>
    <comment_count>14</comment_count>
      <attachid>314340</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-06-30 18:07:14 -0700</bug_when>
    <thetext>Created attachment 314340
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324690</commentid>
    <comment_count>15</comment_count>
      <attachid>314340</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-06-30 18:15:16 -0700</bug_when>
    <thetext>Comment on attachment 314340
Patch

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

&gt; Source/WebKit2/ChangeLog:3
&gt; +        Add API to get WKActivatedElementInfo

SPI

&gt; Source/WebKit2/ChangeLog:7
&gt; +        Adding a way to get a WKActivatedElementInfo for a point on a WebView.

WKWebView or &quot;web view&quot;. WebView is the WebKitLegacy API.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:5257
&gt; +    infoRequest.includeSnapshot = true;

In some more advanced version of the API the client would be able to specify whether they want this snapshot. Since this is SPI and we know the client wants the snapshot, this is fine for now, but keep it in mind!

&gt; Source/WebKit2/UIProcess/API/Cocoa/_WKActivatedElementInfo.mm:57
&gt; ++ (instancetype)activatedElementInfoAtPosition:(const WebKit::InteractionInformationAtPosition&amp;)information

I don&apos;t know what you&apos;ve done with this name (I blame smfr, and me for not reading his suggestion better), it sounds like it would take a position, but it takes an InteractionInformationAtPosition.

Really, InteractionInformationAtPosition is a terribly named thing, but that&apos;s a separate problem.

I propose

+ (instancetype)activatedElementInfoWithInteractionInformationAtPosition:(...)

&gt; Source/WebKit2/UIProcess/API/Cocoa/_WKActivatedElementInfo.mm:77
&gt; +        _type = _WKActivatedElementTypeLink;

What if it&apos;s not a link??? What happens if you just have a &lt;div&gt;? Better add more tests :) And probably a new value to the enum.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324700</commentid>
    <comment_count>16</comment_count>
      <attachid>314346</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-06-30 18:40:02 -0700</bug_when>
    <thetext>Created attachment 314346
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324702</commentid>
    <comment_count>17</comment_count>
      <attachid>314346</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-06-30 18:43:26 -0700</bug_when>
    <thetext>Comment on attachment 314346
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/_WKActivatedElementInfo.h:37
&gt; +    _WKActivatedElementTypeUnspecified WK_API_AVAILABLE(macosx(10.13), ios(11.0)),

This has to go at the end.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKRequestActivatedElementInfo.mm:67
&gt; +TEST(WebKit2, ReqestActivatedElementInfoForNothing)

It&apos;s not nothing :) (it wouldn&apos;t have a bounding rect in that case) It&apos;s just not one of those other things!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324704</commentid>
    <comment_count>18</comment_count>
      <attachid>314347</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-06-30 18:43:34 -0700</bug_when>
    <thetext>Created attachment 314347
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324707</commentid>
    <comment_count>19</comment_count>
      <attachid>314348</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-06-30 18:46:11 -0700</bug_when>
    <thetext>Created attachment 314348
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324714</commentid>
    <comment_count>20</comment_count>
      <attachid>314348</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-06-30 19:04:17 -0700</bug_when>
    <thetext>Comment on attachment 314348
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKRequestActivatedElementInfo.mm:46
&gt; +    webView.get().scrollView.contentOffset = CGPointMake(0, 50);
&gt; +    webView.get().scrollView.zoomScale = 2.0;

I think smfr meant to make it so that the test would only pass if your hit testing was taking zoom/scrolling into account, but since your element is 100%x100%, it will pass regardless. That could be a separate test (and move these setters there). Doesn&apos;t necessarily need to happen with this patch, but should happen.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKRequestActivatedElementInfo.mm:52
&gt; +        EXPECT_TRUE([elementInfo.URL.absoluteString isEqual:@&quot;testURL.test&quot;]);

Whatever happened to EXPECT_WK_STREQ?

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKRequestActivatedElementInfo.mm:55
&gt; +        EXPECT_TRUE(elementInfo.image != nil);

EXPECT_NOT_NULL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324716</commentid>
    <comment_count>21</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-06-30 19:26:37 -0700</bug_when>
    <thetext>https://trac.webkit.org/r219034</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324737</commentid>
    <comment_count>22</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-06-30 20:09:07 -0700</bug_when>
    <thetext>https://trac.webkit.org/r219036
to fix Mac build</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314199</attachid>
            <date>2017-06-29 18:25:42 -0700</date>
            <delta_ts>2017-06-30 17:51:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174001-20170629182541.patch</filename>
            <type>text/plain</type>
            <size>13736</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODk3NSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE3LTA2LTI5ICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEFQSSB0byBn
ZXQgV0tBY3RpdmF0ZWRFbGVtZW50SW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MDAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IHJlcXVlc3RBY3RpdmF0ZWRFbGVtZW50QXRQb3NpdGlvbjpjb21w
bGV0aW9uQmxvY2s6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVt
ZW50SW5mby5tbToKKyAgICAgICAgKCtbX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gaW5mb1dpdGhU
eXBlOndpdGhJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjpdKToKKyAgICAgICAgKC1b
X1dLQWN0aXZhdGVkRWxlbWVudEluZm8gaW5mb1dpdGhUeXBlOndpdGhJbnRlcmFjdGlvbkluZm9y
bWF0aW9uQXRQb3NpdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvSW50ZXJuYWwuaDoKKwogMjAxNy0wNi0yOSAgTWF0dCBMZXdpcyAg
PGpsZXdpczNAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIy
MTg5MDMuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQkocmV2aXNpb24gMjE4OTc1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTgxLDYgKzgxLDcgQEAK
ICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiV2ViVVJMU2NoZW1lSGFuZGxl
ckNvY29hLmgiCiAjaW1wb3J0ICJXZWJWaWV3SW1wbC5oIgorI2ltcG9ydCAiX1dLQWN0aXZhdGVk
RWxlbWVudEluZm9JbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxl
Z2F0ZS5oIgogI2ltcG9ydCAiX1dLRmluZERlbGVnYXRlLmgiCiAjaW1wb3J0ICJfV0tGcmFtZUhh
bmRsZUludGVybmFsLmgiCkBAIC01MjUwLDYgKzUyNTEsMTYgQEAgLSAodm9pZClfcmVxdWVzdERy
YWdnYWJsZUVsZW1lbnRBdFBvc2l0aQogICAgIH0gZm9yUmVxdWVzdDpXZWJLaXQ6OkludGVyYWN0
aW9uSW5mb3JtYXRpb25SZXF1ZXN0KFdlYkNvcmU6OnJvdW5kZWRJbnRQb2ludChwb3NpdGlvbikp
XTsKIH0KIAorLSAodm9pZClyZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEF0UG9zaXRpb246KENHUG9p
bnQpcG9zaXRpb24gY29tcGxldGlvbkJsb2NrOih2b2lkICheKShfV0tBY3RpdmF0ZWRFbGVtZW50
SW5mbyAqKSlibG9jaworeworICAgIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVl
c3QgaW5mb1JlcXVlc3QgPSBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KFdl
YkNvcmU6OnJvdW5kZWRJbnRQb2ludChwb3NpdGlvbikpOworICAgIGluZm9SZXF1ZXN0LmluY2x1
ZGVTbmFwc2hvdCA9IHRydWU7CisgICAgCisgICAgW19jb250ZW50VmlldyBkb0FmdGVyUG9zaXRp
b25JbmZvcm1hdGlvblVwZGF0ZTpbY2FwdHVyZWRCbG9jayA9IG1ha2VCbG9ja1B0cihibG9jayld
IChXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIGluZm9ybWF0aW9uKSB7
CisgICAgICAgIGNhcHR1cmVkQmxvY2soW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGluZm9XaXRo
VHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUxpbmsgd2l0aEludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uOmluZm9ybWF0aW9uXSk7CisgICAgfSBmb3JSZXF1ZXN0OmluZm9SZXF1ZXN0
XTsKK30KKwogLSAoQ0dSZWN0KV9jb250ZW50VmlzaWJsZVJlY3QKIHsKICAgICByZXR1cm4gW3Nl
bGYgY29udmVydFJlY3Q6W3NlbGYgYm91bmRzXSB0b1ZpZXc6c2VsZi5fY3VycmVudENvbnRlbnRW
aWV3XTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oCShyZXZpc2lvbiAyMTg5NzUpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMjcsNiArMjcsNyBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAorI2ltcG9ydCA8V2ViS2l0
L19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLRmluZE9wdGlv
bnMuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tMYXlvdXRNb2RlLmg+CiAjaW1wb3J0IDxXZWJLaXQv
X1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaD4KQEAgLTM2MSw2ICszNjIsOCBAQCB0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiAtIChfV0tEcmFnZ2FibGVFbGVtZW50
SW5mbyAqKV9kcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjooQ0dQb2ludClwb3NpdGlvbiBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZv
aWQpX3JlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjooQ0dQb2ludClwb3NpdGlvbiBj
b21wbGV0aW9uQmxvY2s6KHZvaWQgKF4pKF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICopKWJsb2Nr
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
CistICh2b2lkKXJlcXVlc3RBY3RpdmF0ZWRFbGVtZW50QXRQb3NpdGlvbjooQ0dQb2ludClwb3Np
dGlvbiBjb21wbGV0aW9uQmxvY2s6KHZvaWQgKF4pKF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICop
KWJsb2NrOworCiAjZW5kaWYgLy8gVEFSR0VUX09TX0lQSE9ORQogCiAjaWYgIVRBUkdFVF9PU19J
UEhPTkUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZh
dGVkRWxlbWVudEluZm8ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5tbQkocmV2aXNpb24gMjE4OTc1KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50
SW5mby5tbQkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsMjcgQEAKICNlbmRpZgogfQogCisr
IChpbnN0YW5jZXR5cGUpaW5mb1dpdGhUeXBlOihfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZSl0eXBl
IHdpdGhJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjooY29uc3QgV2ViS2l0OjpJbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpaW5mb3JtYXRpb24KK3sKKyAgICByZXR1cm4g
W1tbc2VsZiBhbGxvY10gaW5mb1dpdGhUeXBlOnR5cGUgd2l0aEludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uOmluZm9ybWF0aW9uXSBhdXRvcmVsZWFzZV07Cit9CisKKy0gKGluc3RhbmNl
dHlwZSlpbmZvV2l0aFR5cGU6KF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlKXR5cGUgd2l0aEludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uJilpbmZvcm1hdGlvbgoreworICAgIGlmICghKHNlbGYgPSBbc3Vw
ZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworICAgIAorICAgIF9VUkwgPSBpbmZvcm1h
dGlvbi51cmw7CisgICAgX2ludGVyYWN0aW9uTG9jYXRpb24gPSBpbmZvcm1hdGlvbi5yZXF1ZXN0
LnBvaW50OworICAgIF90aXRsZSA9IGluZm9ybWF0aW9uLnRpdGxlOworICAgIF9ib3VuZGluZ1Jl
Y3QgPSBpbmZvcm1hdGlvbi5ib3VuZHM7CisgICAgX3R5cGUgPSB0eXBlOworICAgIF9pbWFnZSA9
IGluZm9ybWF0aW9uLmltYWdlOworICAgIF9JRCA9IGluZm9ybWF0aW9uLmlkQXR0cmlidXRlOwor
ICAgIAorICAgIHJldHVybiBzZWxmOworfQorCiAtIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoVHlw
ZTooX1dLQWN0aXZhdGVkRWxlbWVudFR5cGUpdHlwZSBVUkw6KE5TVVJMICopdXJsIGxvY2F0aW9u
OihDR1BvaW50KWxvY2F0aW9uIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIElEOihOU1N0cmluZyAq
KUlEIHJlY3Q6KENHUmVjdClyZWN0IGltYWdlOihXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcCopaW1h
Z2UKIHsKICAgICByZXR1cm4gW3NlbGYgX2luaXRXaXRoVHlwZTp0eXBlIFVSTDp1cmwgbG9jYXRp
b246bG9jYXRpb24gdGl0bGU6dGl0bGUgSUQ6SUQgcmVjdDpyZWN0IGltYWdlOmltYWdlIHVzZXJJ
bmZvOm5pbF07CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvSW50ZXJuYWwuaAko
cmV2aXNpb24gMjE4OTc1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tBY3RpdmF0ZWRFbGVtZW50SW5mb0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYg
KzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisjaW1w
b3J0ICJJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIgogI2ltcG9ydCAiX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8uaCIKIAogI2lmIFdLX0FQSV9FTkFCTEVECkBAIC0zMyw2ICszNCw4
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBAaW50ZXJmYWNlIF9XS0FjdGl2YXRlZEVsZW1lbnRJ
bmZvICgpCiAKKysgKGluc3RhbmNldHlwZSlpbmZvV2l0aFR5cGU6KF9XS0FjdGl2YXRlZEVsZW1l
bnRUeXBlKXR5cGUgd2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOihjb25zdCBX
ZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilpbmZvcm1hdGlvbjsKKy0g
KGluc3RhbmNldHlwZSlpbmZvV2l0aFR5cGU6KF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlKXR5cGUg
d2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOihjb25zdCBXZWJLaXQ6OkludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilpbmZvcm1hdGlvbjsKIC0gKGluc3RhbmNldHlw
ZSlfaW5pdFdpdGhUeXBlOihfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZSl0eXBlIFVSTDooTlNVUkwg
Kil1cmwgbG9jYXRpb246KENHUG9pbnQpbG9jYXRpb24gdGl0bGU6KE5TU3RyaW5nICopdGl0bGUg
SUQ6KE5TU3RyaW5nICopSUQgcmVjdDooQ0dSZWN0KXJlY3QgaW1hZ2U6KFdlYktpdDo6U2hhcmVh
YmxlQml0bWFwKilpbWFnZTsKIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhUeXBlOihfV0tBY3Rp
dmF0ZWRFbGVtZW50VHlwZSl0eXBlIFVSTDooTlNVUkwgKil1cmwgbG9jYXRpb246KENHUG9pbnQp
bG9jYXRpb24gdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgSUQ6KE5TU3RyaW5nICopSUQgcmVjdDoo
Q0dSZWN0KXJlY3QgaW1hZ2U6KFdlYktpdDo6U2hhcmVhYmxlQml0bWFwKilpbWFnZSB1c2VySW5m
bzooTlNEaWN0aW9uYXJ5ICopdXNlckluZm87CiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODk3OSkKKysrIFRvb2xzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE3LTA2LTI5ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEFQSSB0
byBnZXQgV0tBY3RpdmF0ZWRFbGVtZW50SW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MDAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9XS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5tbTogQWRkZWQuCisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNy0wNi0yOSAgSm9obiBXaWxhbmRlciAgPHdp
bGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggZm9yIGludGVybWl0dGVudCBMYXlvdXQg
VGVzdCBmYWlsIGh0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RlbGVt
ZXRyeS1nZW5lcmF0aW9uLmh0bWwKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyMTg5NzUpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTMyLDYgKzEzMiw3IEBACiAJCTNG
QkQxQjRBMUQzRDY2QUIwMEU2RDZGQSAvKiBGdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
RkJEMUI0OTFEMzlEMURCMDBFNkQ2RkEgLyogRnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRzLmh0
bWwgKi87IH07CiAJCTNGQ0M0RkU1MUVDNEU4NTIwMDc2RTM3QyAvKiBQaWN0dXJlSW5QaWN0dXJl
RGVsZWdhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzRkNDNEZFNDFFQzRFODUyMDA3NkUzN0MgLyogUGljdHVyZUluUGljdHVyZURlbGVnYXRlLm1t
ICovOyB9OwogCQkzRkNDNEZFODFFQzRFOENBMDA3NkUzN0MgLyogUGljdHVyZUluUGljdHVyZURl
bGVnYXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gM0ZDQzRGRTYxRUM0RTg3RTAwNzZFMzdDIC8qIFBpY3R1cmVJblBpY3R1cmVEZWxl
Z2F0ZS5odG1sICovOyB9OworCQk0NDgxN0EyRjFGMDQ4NkJGMDAwMDM4MTAgLyogV0tSZXF1ZXN0
QWN0aXZhdGVkRWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NDgxN0EyRTFGMDQ4NkJGMDAwMDM4MTAgLyogV0tSZXF1ZXN0QWN0aXZh
dGVkRWxlbWVudEluZm8ubW0gKi87IH07CiAJCTQ0OEQ3RTQ3MUVBNkM1NTUwMEVDQzc1NiAvKiBF
bnZpcm9ubWVudFV0aWxpdGllc1Rlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDQ4RDdFNDUxRUE2QzU1NTAwRUNDNzU2IC8qIEVudmlyb25tZW50
VXRpbGl0aWVzVGVzdC5jcHAgKi87IH07CiAJCTQ2Mzk3Qjk1MURDMkM4NTAwMDlBNzhBRSAvKiBE
T01Ob2RlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDYzOTdCOTQxREMyQzg1MDAwOUE3OEFFIC8qIERPTU5vZGUubW0gKi87IH07CiAJCTQ2NDdCMTI2
MUVCQTNCODUwMDQxRDdFRiAvKiBQcm9jZXNzRGlkVGVybWluYXRlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NDdCMTI1MUVCQTNCNzMwMDQxRDdF
RiAvKiBQcm9jZXNzRGlkVGVybWluYXRlLmNwcCAqLzsgfTsKQEAgLTExMzcsNiArMTEzOCw3IEBA
CiAJCTQxOTczQjVDMUFGMjI4NzUwMDZDN0IzNiAvKiBTaGFyZWRCdWZmZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkQnVmZmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQwQTFEMzgxNEEwMTAzQTAwOEE2NkYyIC8qIFVSTC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVUkwuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NDJCQkY2ODFDOTFDQUQ5MDAxNzA4N0YgLyogUmVmTG9nZ2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlZkxvZ2dlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0ODE3QTJFMUYwNDg2QkYwMDAwMzgxMCAv
KiBXS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdLUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDhEN0U0NTFFQTZDNTU1MDBFQ0M3NTYgLyogRW52
aXJvbm1lbnRVdGlsaXRpZXNUZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEVudmlyb25tZW50VXRpbGl0aWVzVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ0QTYyMkMxMTRBMEUyQjYwMDQ4NTE1QiAvKiBXVEZTdHJpbmdVdGlsaXRpZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV1RGU3RyaW5nVXRpbGl0aWVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2Mzk3Qjk0MURDMkM4NTAwMDlBNzhBRSAv
KiBET01Ob2RlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9N
Tm9kZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4ODAsNiArMTg4Miw3IEBA
CiAJCQkJQTE0QUFCNjExRTc4RDdERTAwQzFBREMyIC8qIFdLUERGVmlldy5tbSAqLywKIAkJCQky
RDAwMDY1RDFDMUY1ODk0MDA4OEU2QTcgLyogV0tQREZWaWV3UmVzaXplQ3Jhc2gubW0gKi8sCiAJ
CQkJMkQyMUZFNTgxRjA0NjQyODAwQjU4RTdEIC8qIFdLUERGVmlld1N0YWJsZVByZXNlbnRhdGlv
blVwZGF0ZUNhbGxiYWNrLm1tICovLAorCQkJCTQ0ODE3QTJFMUYwNDg2QkYwMDAwMzgxMCAvKiBX
S1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5tbSAqLywKIAkJCQk1RTRCMUQyQzFENDA0QzYx
MDAwNTM2MjEgLyogV0tTY3JvbGxWaWV3RGVsZWdhdGVDcmFzaC5tbSAqLywKIAkJCQk1MUM2ODNE
RDFFQTEzNERCMDA2NTAxODMgLyogV0tVUkxTY2hlbWVIYW5kbGVyLTEubW0gKi8sCiAJCQkJNUNF
MzU0RDgxRTcwRDlDMzAwQkVGRTNCIC8qIFdLQ29udGVudEV4dGVuc2lvblN0b3JlLm1tICovLApA
QCAtMzIxNyw2ICszMjIwLDcgQEAKIAkJCQk3QzU0QTRCRTFBQTExQ0NBMDAzODBGNzggLyogV0tC
dW5kbGVGaWxlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRDEyNDk4MUU3NjNCMDIw
MDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9yZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3
RjFEMUE0MTFBRTYwMDQ0N0M0QyAvKiBXS0ltYWdlQ3JlYXRlQ0dJbWFnZUNyYXNoLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTQ0ODE3QTJGMUYwNDg2QkYwMDAwMzgxMCAvKiBXS1JlcXVlc3RBY3Rp
dmF0ZWRFbGVtZW50SW5mby5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3NUUwRTE3MUQ2NjY3NDQw
MEVGRUMyQyAvKiBXS05TTnVtYmVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdCNDdFMzAxRDY0
RTdDQTAwNUY0RUZGIC8qIFdLT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4OUQyQUMx
QTY5QjgwRDAwM0E1RkRFIC8qIFdLUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1JlcXVlc3RB
Y3RpdmF0ZWRFbGVtZW50SW5mby5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9XS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5tbQkobm9u
ZXhpc3RlbnQpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1Jl
cXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9y
bVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdE5hdmlnYXRpb25E
ZWxlZ2F0ZS5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dL
V2ViVmlldy5oPgorI2ltcG9ydCA8V2ViS2l0L19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLmg+Cisj
aW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCituYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSSB7CisgICAgCitURVNUKFdlYktpdDIsIFdLUmVxZXN0QWN0aXZhdGVk
RWxlbWVudEluZm8pCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAg
ICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxodG1sPjxib2R5IG1hcmdpbjogMHB4OyBwYWRk
aW5nOiAwcHg7ID48YSAgaHJlZj0ndGVzdFVSTC50ZXN0JyBzdHlsZT0nZGlzcGxheTogYmxvY2s7
IGhlaWdodDogMTAwJTsnIHRpdGxlPSdIaXRUZXN0TGlua1RpdGxlJyBpZD0ndGVzdElEJz48L2E+
PC9ib2R5PjwvaHRtbD4iIGJhc2VVUkw6bmlsXTsKKyAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9y
RGlkRmluaXNoTmF2aWdhdGlvbl07CisgICAgCisgICAgX19ibG9jayBCT09MIGZpbmlzaGVkID0g
MDsKKyAgICBbd2ViVmlldyByZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEF0UG9zaXRpb246Q0dQb2lu
dE1ha2UoNTAsIDUwKSBjb21wbGV0aW9uQmxvY2s6IF4oX1dLQWN0aXZhdGVkRWxlbWVudEluZm8g
KiBlbGVtZW50SW5mbykgeworICAgICAgICAKKyAgICAgICAgRVhQRUNUX1RSVUUoW2VsZW1lbnRJ
bmZvLlVSTC5hYnNvbHV0ZVN0cmluZyBpc0VxdWFsOkAidGVzdFVSTC50ZXN0Il0pOworICAgICAg
ICBFWFBFQ1RfVFJVRShbZWxlbWVudEluZm8udGl0bGUgaXNFcXVhbDpAIkhpdFRlc3RMaW5rVGl0
bGUiXSk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtlbGVtZW50SW5mby5JRCBpc0VxdWFsOkAidGVz
dElEIl0pOworICAgICAgICBFWFBFQ1RfVFJVRShlbGVtZW50SW5mby5pbWFnZSAhPSBuaWwpOwor
ICAgICAgICAKKyAgICAgICAgZmluaXNoZWQgPSBZRVM7CisgICAgfV07CisgICAgCisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7Cit9CisgICAgCit9CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314339</attachid>
            <date>2017-06-30 17:51:55 -0700</date>
            <delta_ts>2017-06-30 18:07:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174001-20170630175154.patch</filename>
            <type>text/plain</type>
            <size>14276</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODk3NSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE3LTA2LTI5ICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEFQSSB0byBn
ZXQgV0tBY3RpdmF0ZWRFbGVtZW50SW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MDAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTE2NTUx
OD4KKyAgICAgICAgCisgICAgICAgIEFkZGluZyBhIHdheSB0byBnZXQgYSBXS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvIGZvciBhIHBvaW50IG9uIGEgV2ViVmlldy4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgcmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRBdFBv
c2l0aW9uOmNvbXBsZXRpb25CbG9jazpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvLm1tOgorICAgICAgICAoK1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
byBpbmZvV2l0aFR5cGU6d2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOl0pOgor
ICAgICAgICAoLVtfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBpbmZvV2l0aFR5cGU6d2l0aEludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5hbC5oOgorCiAyMDE3LTA2LTI5ICBN
YXR0IExld2lzICA8amxld2lzM0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjIxODkwMy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCShyZXZpc2lvbiAyMTg5NzUpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtODEs
NiArODEsNyBAQAogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0ICJXZWJVUkxT
Y2hlbWVIYW5kbGVyQ29jb2EuaCIKICNpbXBvcnQgIldlYlZpZXdJbXBsLmgiCisjaW1wb3J0ICJf
V0tBY3RpdmF0ZWRFbGVtZW50SW5mb0ludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tEaWFnbm9zdGlj
TG9nZ2luZ0RlbGVnYXRlLmgiCiAjaW1wb3J0ICJfV0tGaW5kRGVsZWdhdGUuaCIKICNpbXBvcnQg
Il9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaCIKQEAgLTUyNTAsNiArNTI1MSwxNiBAQCAtICh2b2lk
KV9yZXF1ZXN0RHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpCiAgICAgfSBmb3JSZXF1ZXN0OldlYktp
dDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QoV2ViQ29yZTo6cm91bmRlZEludFBvaW50
KHBvc2l0aW9uKSldOwogfQogCistICh2b2lkKV9yZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEF0UG9z
aXRpb246KENHUG9pbnQpcG9zaXRpb24gY29tcGxldGlvbkJsb2NrOih2b2lkICheKShfV0tBY3Rp
dmF0ZWRFbGVtZW50SW5mbyAqKSlibG9jaworeworICAgIGF1dG8gaW5mb1JlcXVlc3QgPSBXZWJL
aXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KFdlYkNvcmU6OnJvdW5kZWRJbnRQb2lu
dChwb3NpdGlvbikpOworICAgIGluZm9SZXF1ZXN0LmluY2x1ZGVTbmFwc2hvdCA9IHRydWU7Cisg
ICAgCisgICAgW19jb250ZW50VmlldyBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTpb
Y2FwdHVyZWRCbG9jayA9IG1ha2VCbG9ja1B0cihibG9jayldIChXZWJLaXQ6OkludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uIGluZm9ybWF0aW9uKSB7CisgICAgICAgIGNhcHR1cmVkQmxv
Y2soW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIF9pbml0V2l0aEludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uOmluZm9ybWF0aW9uXSk7CisgICAgfSBmb3JSZXF1ZXN0OmluZm9SZXF1ZXN0
XTsKK30KKwogLSAoQ0dSZWN0KV9jb250ZW50VmlzaWJsZVJlY3QKIHsKICAgICByZXR1cm4gW3Nl
bGYgY29udmVydFJlY3Q6W3NlbGYgYm91bmRzXSB0b1ZpZXc6c2VsZi5fY3VycmVudENvbnRlbnRW
aWV3XTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oCShyZXZpc2lvbiAyMTg5NzUpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMjcsNiArMjcsNyBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAorI2ltcG9ydCA8V2ViS2l0
L19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLRmluZE9wdGlv
bnMuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tMYXlvdXRNb2RlLmg+CiAjaW1wb3J0IDxXZWJLaXQv
X1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaD4KQEAgLTM2MSw2ICszNjIsOCBAQCB0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiAtIChfV0tEcmFnZ2FibGVFbGVtZW50
SW5mbyAqKV9kcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjooQ0dQb2ludClwb3NpdGlvbiBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZv
aWQpX3JlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjooQ0dQb2ludClwb3NpdGlvbiBj
b21wbGV0aW9uQmxvY2s6KHZvaWQgKF4pKF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICopKWJsb2Nr
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
CistICh2b2lkKV9yZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEF0UG9zaXRpb246KENHUG9pbnQpcG9z
aXRpb24gY29tcGxldGlvbkJsb2NrOih2b2lkICheKShfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAq
KSlibG9jayBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CisKICNlbmRpZiAvLyBU
QVJHRVRfT1NfSVBIT05FCiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRl
ZEVsZW1lbnRJbmZvLm1tCShyZXZpc2lvbiAyMTg5NzUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC01NCw2ICs1NCwzNCBAQAogI2VuZGlmCiB9CiAKKysgKGluc3RhbmNldHlwZSlfaW5pdFdp
dGhJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFj
dGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpaW5mb3JtYXRpb24KK3sKKyAgICByZXR1cm4gW1tb
c2VsZiBhbGxvY10gX2luaXRXaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246aW5m
b3JtYXRpb25dIGF1dG9yZWxlYXNlXTsKK30KKworLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aElu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uJilpbmZvcm1hdGlvbgoreworICAgIGlmICghKHNlbGYgPSBb
c3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworICAgIAorICAgIF9VUkwgPSBpbmZv
cm1hdGlvbi51cmw7CisgICAgX2ludGVyYWN0aW9uTG9jYXRpb24gPSBpbmZvcm1hdGlvbi5yZXF1
ZXN0LnBvaW50OworICAgIF90aXRsZSA9IGluZm9ybWF0aW9uLnRpdGxlOworICAgIF9ib3VuZGlu
Z1JlY3QgPSBpbmZvcm1hdGlvbi5ib3VuZHM7CisgICAgCisgICAgaWYgKGluZm9ybWF0aW9uLmlz
QXR0YWNobWVudCkKKyAgICAgICAgX3R5cGUgPSBfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUF0dGFj
aG1lbnQ7CisgICAgZWxzZSBpZiAoaW5mb3JtYXRpb24uaXNJbWFnZSkKKyAgICAgICAgX3R5cGUg
PSBfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUltYWdlOworICAgIGVsc2UKKyAgICAgICAgX3R5cGUg
PSBfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUxpbms7CisgICAgCisgICAgX2ltYWdlID0gaW5mb3Jt
YXRpb24uaW1hZ2U7CisgICAgX0lEID0gaW5mb3JtYXRpb24uaWRBdHRyaWJ1dGU7CisgICAgCisg
ICAgcmV0dXJuIHNlbGY7Cit9CisKIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhUeXBlOihfV0tB
Y3RpdmF0ZWRFbGVtZW50VHlwZSl0eXBlIFVSTDooTlNVUkwgKil1cmwgbG9jYXRpb246KENHUG9p
bnQpbG9jYXRpb24gdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgSUQ6KE5TU3RyaW5nICopSUQgcmVj
dDooQ0dSZWN0KXJlY3QgaW1hZ2U6KFdlYktpdDo6U2hhcmVhYmxlQml0bWFwKilpbWFnZQogewog
ICAgIHJldHVybiBbc2VsZiBfaW5pdFdpdGhUeXBlOnR5cGUgVVJMOnVybCBsb2NhdGlvbjpsb2Nh
dGlvbiB0aXRsZTp0aXRsZSBJRDpJRCByZWN0OnJlY3QgaW1hZ2U6aW1hZ2UgdXNlckluZm86bmls
XTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVk
RWxlbWVudEluZm9JbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5hbC5oCShyZXZpc2lv
biAyMTg5NzUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2
YXRlZEVsZW1lbnRJbmZvSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBA
QAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKyNpbXBvcnQgIklu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgiCiAjaW1wb3J0ICJfV0tBY3RpdmF0ZWRF
bGVtZW50SW5mby5oIgogCiAjaWYgV0tfQVBJX0VOQUJMRUQKQEAgLTMzLDYgKzM0LDggQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIEBpbnRlcmZhY2UgX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKCkK
IAorKyAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilpbmZv
cm1hdGlvbjsKKy0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhJbnRlcmFjdGlvbkluZm9ybWF0aW9u
QXRQb3NpdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
biYpaW5mb3JtYXRpb247CiAtIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoVHlwZTooX1dLQWN0aXZh
dGVkRWxlbWVudFR5cGUpdHlwZSBVUkw6KE5TVVJMICopdXJsIGxvY2F0aW9uOihDR1BvaW50KWxv
Y2F0aW9uIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIElEOihOU1N0cmluZyAqKUlEIHJlY3Q6KENH
UmVjdClyZWN0IGltYWdlOihXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcCopaW1hZ2U7CiAtIChpbnN0
YW5jZXR5cGUpX2luaXRXaXRoVHlwZTooX1dLQWN0aXZhdGVkRWxlbWVudFR5cGUpdHlwZSBVUkw6
KE5TVVJMICopdXJsIGxvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uIHRpdGxlOihOU1N0cmluZyAq
KXRpdGxlIElEOihOU1N0cmluZyAqKUlEIHJlY3Q6KENHUmVjdClyZWN0IGltYWdlOihXZWJLaXQ6
OlNoYXJlYWJsZUJpdG1hcCopaW1hZ2UgdXNlckluZm86KE5TRGljdGlvbmFyeSAqKXVzZXJJbmZv
OwogCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMTg5NzkpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNyBAQAorMjAxNy0wNi0yOSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJA
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBBUEkgdG8gZ2V0IFdLQWN0aXZhdGVkRWxlbWVudElu
Zm8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDAw
MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjkxNjU1MTg+CisgICAgICAgIAorICAgICAgICBU
ZXN0cyBmb3Igbm93IEFQSSB0byBnZXQgYWN0aXZhdGVkRWxlbWVudEluZm8uCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5t
bTogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNy0wNi0yOSAg
Sm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggZm9yIGlu
dGVybWl0dGVudCBMYXlvdXQgVGVzdCBmYWlsIGh0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3RlbGVtZXRyeS1nZW5lcmF0aW9uLmh0bWwKSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAyMTg5NzUpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTMy
LDYgKzEzMiw3IEBACiAJCTNGQkQxQjRBMUQzRDY2QUIwMEU2RDZGQSAvKiBGdWxsc2NyZWVuTGF5
b3V0Q29uc3RyYWludHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzRkJEMUI0OTFEMzlEMURCMDBFNkQ2RkEgLyogRnVsbHNjcmVlbkxh
eW91dENvbnN0cmFpbnRzLmh0bWwgKi87IH07CiAJCTNGQ0M0RkU1MUVDNEU4NTIwMDc2RTM3QyAv
KiBQaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzRkNDNEZFNDFFQzRFODUyMDA3NkUzN0MgLyogUGljdHVyZUlu
UGljdHVyZURlbGVnYXRlLm1tICovOyB9OwogCQkzRkNDNEZFODFFQzRFOENBMDA3NkUzN0MgLyog
UGljdHVyZUluUGljdHVyZURlbGVnYXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0ZDQzRGRTYxRUM0RTg3RTAwNzZFMzdDIC8qIFBp
Y3R1cmVJblBpY3R1cmVEZWxlZ2F0ZS5odG1sICovOyB9OworCQk0NDgxN0EyRjFGMDQ4NkJGMDAw
MDM4MTAgLyogV0tSZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDgxN0EyRTFGMDQ4NkJGMDAwMDM4MTAg
LyogV0tSZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEluZm8ubW0gKi87IH07CiAJCTQ0OEQ3RTQ3MUVB
NkM1NTUwMEVDQzc1NiAvKiBFbnZpcm9ubWVudFV0aWxpdGllc1Rlc3QuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ4RDdFNDUxRUE2QzU1NTAwRUND
NzU2IC8qIEVudmlyb25tZW50VXRpbGl0aWVzVGVzdC5jcHAgKi87IH07CiAJCTQ2Mzk3Qjk1MURD
MkM4NTAwMDlBNzhBRSAvKiBET01Ob2RlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDYzOTdCOTQxREMyQzg1MDAwOUE3OEFFIC8qIERPTU5vZGUubW0g
Ki87IH07CiAJCTQ2NDdCMTI2MUVCQTNCODUwMDQxRDdFRiAvKiBQcm9jZXNzRGlkVGVybWluYXRl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NDdC
MTI1MUVCQTNCNzMwMDQxRDdFRiAvKiBQcm9jZXNzRGlkVGVybWluYXRlLmNwcCAqLzsgfTsKQEAg
LTExMzcsNiArMTEzOCw3IEBACiAJCTQxOTczQjVDMUFGMjI4NzUwMDZDN0IzNiAvKiBTaGFyZWRC
dWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkQnVm
ZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQwQTFEMzgxNEEwMTAzQTAw
OEE2NkYyIC8qIFVSTC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBV
UkwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDJCQkY2ODFDOTFDQUQ5MDAx
NzA4N0YgLyogUmVmTG9nZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlZkxvZ2dlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0ODE3QTJF
MUYwNDg2QkYwMDAwMzgxMCAvKiBXS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLUmVxdWVzdEFjdGl2YXRlZEVs
ZW1lbnRJbmZvLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDhEN0U0NTFFQTZD
NTU1MDBFQ0M3NTYgLyogRW52aXJvbm1lbnRVdGlsaXRpZXNUZXN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVudmlyb25tZW50VXRpbGl0aWVzVGVzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0QTYyMkMxMTRBMEUyQjYwMDQ4NTE1QiAvKiBX
VEZTdHJpbmdVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV1RG
U3RyaW5nVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2Mzk3Qjk0
MURDMkM4NTAwMDlBNzhBRSAvKiBET01Ob2RlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gRE9NTm9kZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE4ODAsNiArMTg4Miw3IEBACiAJCQkJQTE0QUFCNjExRTc4RDdERTAwQzFBREMyIC8qIFdLUERG
Vmlldy5tbSAqLywKIAkJCQkyRDAwMDY1RDFDMUY1ODk0MDA4OEU2QTcgLyogV0tQREZWaWV3UmVz
aXplQ3Jhc2gubW0gKi8sCiAJCQkJMkQyMUZFNTgxRjA0NjQyODAwQjU4RTdEIC8qIFdLUERGVmll
d1N0YWJsZVByZXNlbnRhdGlvblVwZGF0ZUNhbGxiYWNrLm1tICovLAorCQkJCTQ0ODE3QTJFMUYw
NDg2QkYwMDAwMzgxMCAvKiBXS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5tbSAqLywKIAkJ
CQk1RTRCMUQyQzFENDA0QzYxMDAwNTM2MjEgLyogV0tTY3JvbGxWaWV3RGVsZWdhdGVDcmFzaC5t
bSAqLywKIAkJCQk1MUM2ODNERDFFQTEzNERCMDA2NTAxODMgLyogV0tVUkxTY2hlbWVIYW5kbGVy
LTEubW0gKi8sCiAJCQkJNUNFMzU0RDgxRTcwRDlDMzAwQkVGRTNCIC8qIFdLQ29udGVudEV4dGVu
c2lvblN0b3JlLm1tICovLApAQCAtMzIxNyw2ICszMjIwLDcgQEAKIAkJCQk3QzU0QTRCRTFBQTEx
Q0NBMDAzODBGNzggLyogV0tCdW5kbGVGaWxlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxRDEyNDk4MUU3NjNCMDIwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9yZS5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDQ0U3RjFEMUE0MTFBRTYwMDQ0N0M0QyAvKiBXS0ltYWdlQ3JlYXRlQ0dJ
bWFnZUNyYXNoLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ0ODE3QTJGMUYwNDg2QkYwMDAwMzgx
MCAvKiBXS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTM3NUUwRTE3MUQ2NjY3NDQwMEVGRUMyQyAvKiBXS05TTnVtYmVyLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMzdCNDdFMzAxRDY0RTdDQTAwNUY0RUZGIC8qIFdLT2JqZWN0Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0M4OUQyQUMxQTY5QjgwRDAwM0E1RkRFIC8qIFdLUGFnZUNvbmZpZ3VyYXRpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9XS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1JlcXVlc3RBY3RpdmF0ZWRF
bGVtZW50SW5mby5tbQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9XS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5tbQkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
CisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9y
dCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgor
I2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlldy5oPgorI2ltcG9ydCA8V2ViS2l0L19XS0FjdGl2YXRl
ZEVsZW1lbnRJbmZvLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKKyNpZiBXS19BUElf
RU5BQkxFRAorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisgICAgCitURVNUKFdlYktpdDIs
IFJlcWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwg
MzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8aHRtbD48aGVhZD48
bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0naW5pdGlhbC1zY2FsZT0xJz48L2hlYWQ+PGJv
ZHkgc3R5bGUgPSAnbWFyZ2luOiAwcHg7Jz48YSBocmVmPSd0ZXN0VVJMLnRlc3QnIHN0eWxlPSdk
aXNwbGF5OiBibG9jazsgaGVpZ2h0OiAxMDAlOycgdGl0bGU9J0hpdFRlc3RMaW5rVGl0bGUnIGlk
PSd0ZXN0SUQnPjwvYT48L2JvZHk+PC9odG1sPiIgYmFzZVVSTDpuaWxdOworICAgIFt3ZWJWaWV3
IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKyAgICAKKyAgICBfX2Jsb2NrIGJv
b2wgZmluaXNoZWQgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBfcmVxdWVzdEFjdGl2YXRlZEVsZW1l
bnRBdFBvc2l0aW9uOkNHUG9pbnRNYWtlKDUwLCA1MCkgY29tcGxldGlvbkJsb2NrOiBeKF9XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvICplbGVtZW50SW5mbykgeworICAgICAgICAKKyAgICAgICAgRVhQ
RUNUX1RSVUUoW2VsZW1lbnRJbmZvLlVSTC5hYnNvbHV0ZVN0cmluZyBpc0VxdWFsOkAidGVzdFVS
TC50ZXN0Il0pOworICAgICAgICBFWFBFQ1RfVFJVRShbZWxlbWVudEluZm8udGl0bGUgaXNFcXVh
bDpAIkhpdFRlc3RMaW5rVGl0bGUiXSk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtlbGVtZW50SW5m
by5JRCBpc0VxdWFsOkAidGVzdElEIl0pOworICAgICAgICBFWFBFQ1RfVFJVRShlbGVtZW50SW5m
by5pbWFnZSAhPSBuaWwpOworICAgICAgICBFWFBFQ1RfRVEoZWxlbWVudEluZm8uYm91bmRpbmdS
ZWN0LnNpemUud2lkdGgsIDMyMCk7CisgICAgICAgIEVYUEVDVF9FUShlbGVtZW50SW5mby5ib3Vu
ZGluZ1JlY3Quc2l6ZS5oZWlnaHQsIDUwMCk7CisgICAgICAgIEVYUEVDVF9FUShlbGVtZW50SW5m
by5pbWFnZS5zaXplLndpZHRoLCAzMjApOworICAgICAgICBFWFBFQ1RfRVEoZWxlbWVudEluZm8u
aW1hZ2Uuc2l6ZS5oZWlnaHQsIDUwMCk7CisgICAgICAgIAorICAgICAgICBmaW5pc2hlZCA9IHRy
dWU7CisgICAgfV07CisgICAgCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hl
ZCk7Cit9CisgICAgCit9CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314340</attachid>
            <date>2017-06-30 18:07:14 -0700</date>
            <delta_ts>2017-06-30 18:40:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174001-20170630180714.patch</filename>
            <type>text/plain</type>
            <size>14356</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODk3NSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE3LTA2LTI5ICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEFQSSB0byBn
ZXQgV0tBY3RpdmF0ZWRFbGVtZW50SW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MDAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTE2NTUx
OD4KKyAgICAgICAgCisgICAgICAgIEFkZGluZyBhIHdheSB0byBnZXQgYSBXS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvIGZvciBhIHBvaW50IG9uIGEgV2ViVmlldy4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgcmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRBdFBv
c2l0aW9uOmNvbXBsZXRpb25CbG9jazpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvLm1tOgorICAgICAgICAoK1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
byBpbmZvV2l0aFR5cGU6d2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOl0pOgor
ICAgICAgICAoLVtfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBpbmZvV2l0aFR5cGU6d2l0aEludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5hbC5oOgorCiAyMDE3LTA2LTI5ICBN
YXR0IExld2lzICA8amxld2lzM0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjIxODkwMy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCShyZXZpc2lvbiAyMTg5NzUpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtODEs
NiArODEsNyBAQAogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0ICJXZWJVUkxT
Y2hlbWVIYW5kbGVyQ29jb2EuaCIKICNpbXBvcnQgIldlYlZpZXdJbXBsLmgiCisjaW1wb3J0ICJf
V0tBY3RpdmF0ZWRFbGVtZW50SW5mb0ludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tEaWFnbm9zdGlj
TG9nZ2luZ0RlbGVnYXRlLmgiCiAjaW1wb3J0ICJfV0tGaW5kRGVsZWdhdGUuaCIKICNpbXBvcnQg
Il9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaCIKQEAgLTUyNTAsNiArNTI1MSwxNiBAQCAtICh2b2lk
KV9yZXF1ZXN0RHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpCiAgICAgfSBmb3JSZXF1ZXN0OldlYktp
dDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QoV2ViQ29yZTo6cm91bmRlZEludFBvaW50
KHBvc2l0aW9uKSldOwogfQogCistICh2b2lkKV9yZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEF0UG9z
aXRpb246KENHUG9pbnQpcG9zaXRpb24gY29tcGxldGlvbkJsb2NrOih2b2lkICheKShfV0tBY3Rp
dmF0ZWRFbGVtZW50SW5mbyAqKSlibG9jaworeworICAgIGF1dG8gaW5mb1JlcXVlc3QgPSBXZWJL
aXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KFdlYkNvcmU6OnJvdW5kZWRJbnRQb2lu
dChwb3NpdGlvbikpOworICAgIGluZm9SZXF1ZXN0LmluY2x1ZGVTbmFwc2hvdCA9IHRydWU7Cisg
ICAgCisgICAgW19jb250ZW50VmlldyBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTpb
Y2FwdHVyZWRCbG9jayA9IG1ha2VCbG9ja1B0cihibG9jayldIChXZWJLaXQ6OkludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uIGluZm9ybWF0aW9uKSB7CisgICAgICAgIGNhcHR1cmVkQmxv
Y2soW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFjdGl2YXRlZEVsZW1lbnRJbmZvQXRQb3NpdGlv
bjppbmZvcm1hdGlvbl0pOworICAgIH0gZm9yUmVxdWVzdDppbmZvUmVxdWVzdF07Cit9CisKIC0g
KENHUmVjdClfY29udGVudFZpc2libGVSZWN0CiB7CiAgICAgcmV0dXJuIFtzZWxmIGNvbnZlcnRS
ZWN0OltzZWxmIGJvdW5kc10gdG9WaWV3OnNlbGYuX2N1cnJlbnRDb250ZW50Vmlld107CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGUuaAkocmV2aXNpb24gMjE4OTc1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3
LDcgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKKyNpbXBvcnQgPFdlYktpdC9fV0tBY3RpdmF0
ZWRFbGVtZW50SW5mby5oPgogI2ltcG9ydCA8V2ViS2l0L19XS0ZpbmRPcHRpb25zLmg+CiAjaW1w
b3J0IDxXZWJLaXQvX1dLTGF5b3V0TW9kZS5oPgogI2ltcG9ydCA8V2ViS2l0L19XS1JlbmRlcmlu
Z1Byb2dyZXNzRXZlbnRzLmg+CkBAIC0zNjEsNiArMzYyLDggQEAgdHlwZWRlZiBOU19FTlVNKE5T
SW50ZWdlciwgX1dLSW1tZWRpYXRlQQogLSAoX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gKilfZHJh
Z2dhYmxlRWxlbWVudEF0UG9zaXRpb246KENHUG9pbnQpcG9zaXRpb24gV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9yZXF1ZXN0
RHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246KENHUG9pbnQpcG9zaXRpb24gY29tcGxldGlvbkJs
b2NrOih2b2lkICheKShfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqKSlibG9jayBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAorLSAodm9pZClf
cmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRBdFBvc2l0aW9uOihDR1BvaW50KXBvc2l0aW9uIGNvbXBs
ZXRpb25CbG9jazoodm9pZCAoXikoX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKikpYmxvY2sgV0tf
QVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworCiAjZW5kaWYgLy8gVEFSR0VUX09TX0lQ
SE9ORQogCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8ubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5m
by5tbQkocmV2aXNpb24gMjE4OTc1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5tbQkod29ya2luZyBjb3B5KQpAQCAtNTQsNiAr
NTQsMzQgQEAKICNlbmRpZgogfQogCisrIChpbnN0YW5jZXR5cGUpYWN0aXZhdGVkRWxlbWVudElu
Zm9BdFBvc2l0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uJilpbmZvcm1hdGlvbgoreworICAgIHJldHVybiBbW1tzZWxmIGFsbG9jXSBfaW5pdFdpdGhJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjppbmZvcm1hdGlvbl0gYXV0b3JlbGVhc2Vd
OworfQorCistIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24m
KWluZm9ybWF0aW9uCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAg
IHJldHVybiBuaWw7CisgICAgCisgICAgX1VSTCA9IGluZm9ybWF0aW9uLnVybDsKKyAgICBfaW50
ZXJhY3Rpb25Mb2NhdGlvbiA9IGluZm9ybWF0aW9uLnJlcXVlc3QucG9pbnQ7CisgICAgX3RpdGxl
ID0gaW5mb3JtYXRpb24udGl0bGU7CisgICAgX2JvdW5kaW5nUmVjdCA9IGluZm9ybWF0aW9uLmJv
dW5kczsKKyAgICAKKyAgICBpZiAoaW5mb3JtYXRpb24uaXNBdHRhY2htZW50KQorICAgICAgICBf
dHlwZSA9IF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlQXR0YWNobWVudDsKKyAgICBlbHNlIGlmIChp
bmZvcm1hdGlvbi5pc0ltYWdlKQorICAgICAgICBfdHlwZSA9IF9XS0FjdGl2YXRlZEVsZW1lbnRU
eXBlSW1hZ2U7CisgICAgZWxzZQorICAgICAgICBfdHlwZSA9IF9XS0FjdGl2YXRlZEVsZW1lbnRU
eXBlTGluazsKKyAgICAKKyAgICBfaW1hZ2UgPSBpbmZvcm1hdGlvbi5pbWFnZTsKKyAgICBfSUQg
PSBpbmZvcm1hdGlvbi5pZEF0dHJpYnV0ZTsKKyAgICAKKyAgICByZXR1cm4gc2VsZjsKK30KKwog
LSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFR5cGU6KF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlKXR5
cGUgVVJMOihOU1VSTCAqKXVybCBsb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbiB0aXRsZTooTlNT
dHJpbmcgKil0aXRsZSBJRDooTlNTdHJpbmcgKilJRCByZWN0OihDR1JlY3QpcmVjdCBpbWFnZToo
V2ViS2l0OjpTaGFyZWFibGVCaXRtYXAqKWltYWdlCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9pbml0
V2l0aFR5cGU6dHlwZSBVUkw6dXJsIGxvY2F0aW9uOmxvY2F0aW9uIHRpdGxlOnRpdGxlIElEOklE
IHJlY3Q6cmVjdCBpbWFnZTppbWFnZSB1c2VySW5mbzpuaWxdOwpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mb0ludGVybmFsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3Rp
dmF0ZWRFbGVtZW50SW5mb0ludGVybmFsLmgJKHJldmlzaW9uIDIxODk3NSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5h
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorI2ltcG9ydCAiSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb24uaCIKICNpbXBvcnQgIl9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLmgiCiAKICNpZiBX
S19BUElfRU5BQkxFRApAQCAtMzMsNiArMzQsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogQGlu
dGVyZmFjZSBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAoKQogCisrIChpbnN0YW5jZXR5cGUpYWN0
aXZhdGVkRWxlbWVudEluZm9BdFBvc2l0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uJilpbmZvcm1hdGlvbjsKKy0gKGluc3RhbmNldHlwZSlfaW5pdFdp
dGhJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFj
dGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpaW5mb3JtYXRpb247CiAtIChpbnN0YW5jZXR5cGUp
X2luaXRXaXRoVHlwZTooX1dLQWN0aXZhdGVkRWxlbWVudFR5cGUpdHlwZSBVUkw6KE5TVVJMICop
dXJsIGxvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIElE
OihOU1N0cmluZyAqKUlEIHJlY3Q6KENHUmVjdClyZWN0IGltYWdlOihXZWJLaXQ6OlNoYXJlYWJs
ZUJpdG1hcCopaW1hZ2U7CiAtIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoVHlwZTooX1dLQWN0aXZh
dGVkRWxlbWVudFR5cGUpdHlwZSBVUkw6KE5TVVJMICopdXJsIGxvY2F0aW9uOihDR1BvaW50KWxv
Y2F0aW9uIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIElEOihOU1N0cmluZyAqKUlEIHJlY3Q6KENH
UmVjdClyZWN0IGltYWdlOihXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcCopaW1hZ2UgdXNlckluZm86
KE5TRGljdGlvbmFyeSAqKXVzZXJJbmZvOwogCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTg5NzkpCisrKyBUb29scy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0wNi0yOSAgTWVnYW4g
R2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBBUEkgdG8g
Z2V0IFdLQWN0aXZhdGVkRWxlbWVudEluZm8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3NDAwMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjkxNjU1
MTg+CisgICAgICAgIAorICAgICAgICBUZXN0cyBmb3Igbm93IEFQSSB0byBnZXQgYWN0aXZhdGVk
RWxlbWVudEluZm8uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1JlcXVl
c3RBY3RpdmF0ZWRFbGVtZW50SW5mby5tbTogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKwogMjAxNy0wNi0yOSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBGaXggZm9yIGludGVybWl0dGVudCBMYXlvdXQgVGVzdCBmYWlsIGh0dHAv
dGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RlbGVtZXRyeS1nZW5lcmF0aW9u
Lmh0bWwKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMTg5NzUpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMTMyLDYgKzEzMiw3IEBACiAJCTNGQkQxQjRBMUQzRDY2QUIw
MEU2RDZGQSAvKiBGdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkJEMUI0OTFEMzlEMURC
MDBFNkQ2RkEgLyogRnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRzLmh0bWwgKi87IH07CiAJCTNG
Q0M0RkU1MUVDNEU4NTIwMDc2RTM3QyAvKiBQaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkNDNEZFNDFFQzRF
ODUyMDA3NkUzN0MgLyogUGljdHVyZUluUGljdHVyZURlbGVnYXRlLm1tICovOyB9OwogCQkzRkND
NEZFODFFQzRFOENBMDA3NkUzN0MgLyogUGljdHVyZUluUGljdHVyZURlbGVnYXRlLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0ZDQzRG
RTYxRUM0RTg3RTAwNzZFMzdDIC8qIFBpY3R1cmVJblBpY3R1cmVEZWxlZ2F0ZS5odG1sICovOyB9
OworCQk0NDgxN0EyRjFGMDQ4NkJGMDAwMDM4MTAgLyogV0tSZXF1ZXN0QWN0aXZhdGVkRWxlbWVu
dEluZm8ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NDgxN0EyRTFGMDQ4NkJGMDAwMDM4MTAgLyogV0tSZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEluZm8u
bW0gKi87IH07CiAJCTQ0OEQ3RTQ3MUVBNkM1NTUwMEVDQzc1NiAvKiBFbnZpcm9ubWVudFV0aWxp
dGllc1Rlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDQ4RDdFNDUxRUE2QzU1NTAwRUNDNzU2IC8qIEVudmlyb25tZW50VXRpbGl0aWVzVGVzdC5j
cHAgKi87IH07CiAJCTQ2Mzk3Qjk1MURDMkM4NTAwMDlBNzhBRSAvKiBET01Ob2RlLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzOTdCOTQxREMyQzg1
MDAwOUE3OEFFIC8qIERPTU5vZGUubW0gKi87IH07CiAJCTQ2NDdCMTI2MUVCQTNCODUwMDQxRDdF
RiAvKiBQcm9jZXNzRGlkVGVybWluYXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NDdCMTI1MUVCQTNCNzMwMDQxRDdFRiAvKiBQcm9jZXNzRGlk
VGVybWluYXRlLmNwcCAqLzsgfTsKQEAgLTExMzcsNiArMTEzOCw3IEBACiAJCTQxOTczQjVDMUFG
MjI4NzUwMDZDN0IzNiAvKiBTaGFyZWRCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2hhcmVkQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDQwQTFEMzgxNEEwMTAzQTAwOEE2NkYyIC8qIFVSTC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVUkwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0NDJCQkY2ODFDOTFDQUQ5MDAxNzA4N0YgLyogUmVmTG9nZ2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlZkxvZ2dlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQ0ODE3QTJFMUYwNDg2QkYwMDAwMzgxMCAvKiBXS1JlcXVlc3RBY3Rp
dmF0ZWRFbGVtZW50SW5mby5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdLUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NDhEN0U0NTFFQTZDNTU1MDBFQ0M3NTYgLyogRW52aXJvbm1lbnRVdGlsaXRp
ZXNUZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVudmlyb25t
ZW50VXRpbGl0aWVzVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0QTYy
MkMxMTRBMEUyQjYwMDQ4NTE1QiAvKiBXVEZTdHJpbmdVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV1RGU3RyaW5nVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ2Mzk3Qjk0MURDMkM4NTAwMDlBNzhBRSAvKiBET01Ob2RlLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NTm9kZS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4ODAsNiArMTg4Miw3IEBACiAJCQkJQTE0QUFCNjEx
RTc4RDdERTAwQzFBREMyIC8qIFdLUERGVmlldy5tbSAqLywKIAkJCQkyRDAwMDY1RDFDMUY1ODk0
MDA4OEU2QTcgLyogV0tQREZWaWV3UmVzaXplQ3Jhc2gubW0gKi8sCiAJCQkJMkQyMUZFNTgxRjA0
NjQyODAwQjU4RTdEIC8qIFdLUERGVmlld1N0YWJsZVByZXNlbnRhdGlvblVwZGF0ZUNhbGxiYWNr
Lm1tICovLAorCQkJCTQ0ODE3QTJFMUYwNDg2QkYwMDAwMzgxMCAvKiBXS1JlcXVlc3RBY3RpdmF0
ZWRFbGVtZW50SW5mby5tbSAqLywKIAkJCQk1RTRCMUQyQzFENDA0QzYxMDAwNTM2MjEgLyogV0tT
Y3JvbGxWaWV3RGVsZWdhdGVDcmFzaC5tbSAqLywKIAkJCQk1MUM2ODNERDFFQTEzNERCMDA2NTAx
ODMgLyogV0tVUkxTY2hlbWVIYW5kbGVyLTEubW0gKi8sCiAJCQkJNUNFMzU0RDgxRTcwRDlDMzAw
QkVGRTNCIC8qIFdLQ29udGVudEV4dGVuc2lvblN0b3JlLm1tICovLApAQCAtMzIxNyw2ICszMjIw
LDcgQEAKIAkJCQk3QzU0QTRCRTFBQTExQ0NBMDAzODBGNzggLyogV0tCdW5kbGVGaWxlSGFuZGxl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRDEyNDk4MUU3NjNCMDIwMDJCMjgyMCAvKiBXS0hU
VFBDb29raWVTdG9yZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjFEMUE0MTFBRTYwMDQ0
N0M0QyAvKiBXS0ltYWdlQ3JlYXRlQ0dJbWFnZUNyYXNoLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTQ0ODE3QTJGMUYwNDg2QkYwMDAwMzgxMCAvKiBXS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5m
by5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3NUUwRTE3MUQ2NjY3NDQwMEVGRUMyQyAvKiBXS05T
TnVtYmVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdCNDdFMzAxRDY0RTdDQTAwNUY0RUZGIC8q
IFdLT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4OUQyQUMxQTY5QjgwRDAwM0E1RkRF
IC8qIFdLUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50
SW5mby5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9XS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5tbQkobm9uZXhpc3RlbnQpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1JlcXVlc3RBY3RpdmF0ZWRF
bGVtZW50SW5mby5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgor
I2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgorI2lt
cG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlldy5oPgorI2lt
cG9ydCA8V2ViS2l0L19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLmg+CisjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7CisgICAgCitURVNUKFdlYktpdDIsIFJlcWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvKQorewor
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgbG9hZEhU
TUxTdHJpbmc6QCI8aHRtbD48aGVhZD48bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0naW5p
dGlhbC1zY2FsZT0xJz48L2hlYWQ+PGJvZHkgc3R5bGUgPSAnbWFyZ2luOiAwcHg7Jz48YSBocmVm
PSd0ZXN0VVJMLnRlc3QnIHN0eWxlPSdkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAxMDAlOycgdGl0
bGU9J0hpdFRlc3RMaW5rVGl0bGUnIGlkPSd0ZXN0SUQnPjwvYT48L2JvZHk+PC9odG1sPiIgYmFz
ZVVSTDpuaWxdOworICAgIFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9u
XTsKKyAgICB3ZWJWaWV3LmdldCgpLnNjcm9sbFZpZXcuY29udGVudE9mZnNldCA9IENHUG9pbnRN
YWtlKDAsIDUwKTsKKyAgICB3ZWJWaWV3LmdldCgpLnNjcm9sbFZpZXcuem9vbVNjYWxlID0gMi4w
OworICAgIAorICAgIF9fYmxvY2sgYm9vbCBmaW5pc2hlZCA9IGZhbHNlOworICAgIFt3ZWJWaWV3
IF9yZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2UoNTAsIDUwKSBj
b21wbGV0aW9uQmxvY2s6IF4oX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKmVsZW1lbnRJbmZvKSB7
CisgICAgICAgIAorICAgICAgICBFWFBFQ1RfVFJVRShbZWxlbWVudEluZm8uVVJMLmFic29sdXRl
U3RyaW5nIGlzRXF1YWw6QCJ0ZXN0VVJMLnRlc3QiXSk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtl
bGVtZW50SW5mby50aXRsZSBpc0VxdWFsOkAiSGl0VGVzdExpbmtUaXRsZSJdKTsKKyAgICAgICAg
RVhQRUNUX1RSVUUoW2VsZW1lbnRJbmZvLklEIGlzRXF1YWw6QCJ0ZXN0SUQiXSk7CisgICAgICAg
IEVYUEVDVF9UUlVFKGVsZW1lbnRJbmZvLmltYWdlICE9IG5pbCk7CisgICAgICAgIEVYUEVDVF9F
UShlbGVtZW50SW5mby5ib3VuZGluZ1JlY3Quc2l6ZS53aWR0aCwgMzIwKTsKKyAgICAgICAgRVhQ
RUNUX0VRKGVsZW1lbnRJbmZvLmJvdW5kaW5nUmVjdC5zaXplLmhlaWdodCwgNTAwKTsKKyAgICAg
ICAgRVhQRUNUX0VRKGVsZW1lbnRJbmZvLmltYWdlLnNpemUud2lkdGgsIDMyMCk7CisgICAgICAg
IEVYUEVDVF9FUShlbGVtZW50SW5mby5pbWFnZS5zaXplLmhlaWdodCwgNTAwKTsKKyAgICAgICAg
CisgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICAKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkKTsKK30KKyAgICAKK30KKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314346</attachid>
            <date>2017-06-30 18:40:02 -0700</date>
            <delta_ts>2017-06-30 18:43:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174001-20170630184002.patch</filename>
            <type>text/plain</type>
            <size>16174</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODk3NSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE3LTA2LTI5ICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEFQSSB0byBn
ZXQgV0tBY3RpdmF0ZWRFbGVtZW50SW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MDAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTE2NTUx
OD4KKyAgICAgICAgCisgICAgICAgIEFkZGluZyBhIHdheSB0byBnZXQgYSBXS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvIGZvciBhIHBvaW50IG9uIGEgV0tXZWJWaWV3LgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyByZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEF0
UG9zaXRpb246Y29tcGxldGlvbkJsb2NrOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
QWN0aXZhdGVkRWxlbWVudEluZm8ubW06CisgICAgICAgICgrW19XS0FjdGl2YXRlZEVsZW1lbnRJ
bmZvIGluZm9XaXRoVHlwZTp3aXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246XSk6
CisgICAgICAgICgtW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGluZm9XaXRoVHlwZTp3aXRoSW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mb0ludGVybmFsLmg6CisKIDIwMTctMDYtMjkg
IE1hdHQgTGV3aXMgIDxqbGV3aXMzQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMjE4OTAzLgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHJldmlzaW9uIDIxODk3NSkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC04
MSw2ICs4MSw3IEBACiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIldlYlVS
TFNjaGVtZUhhbmRsZXJDb2NvYS5oIgogI2ltcG9ydCAiV2ViVmlld0ltcGwuaCIKKyNpbXBvcnQg
Il9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0RpYWdub3N0
aWNMb2dnaW5nRGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS0ZpbmREZWxlZ2F0ZS5oIgogI2ltcG9y
dCAiX1dLRnJhbWVIYW5kbGVJbnRlcm5hbC5oIgpAQCAtNTI1MCw2ICs1MjUxLDE2IEBAIC0gKHZv
aWQpX3JlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGkKICAgICB9IGZvclJlcXVlc3Q6V2Vi
S2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdChXZWJDb3JlOjpyb3VuZGVkSW50UG9p
bnQocG9zaXRpb24pKV07CiB9CiAKKy0gKHZvaWQpX3JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50QXRQ
b3NpdGlvbjooQ0dQb2ludClwb3NpdGlvbiBjb21wbGV0aW9uQmxvY2s6KHZvaWQgKF4pKF9XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvICopKWJsb2NrCit7CisgICAgYXV0byBpbmZvUmVxdWVzdCA9IFdl
YktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QoV2ViQ29yZTo6cm91bmRlZEludFBv
aW50KHBvc2l0aW9uKSk7CisgICAgaW5mb1JlcXVlc3QuaW5jbHVkZVNuYXBzaG90ID0gdHJ1ZTsK
KyAgICAKKyAgICBbX2NvbnRlbnRWaWV3IGRvQWZ0ZXJQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRl
OltjYXB0dXJlZEJsb2NrID0gbWFrZUJsb2NrUHRyKGJsb2NrKV0gKFdlYktpdDo6SW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb24gaW5mb3JtYXRpb24pIHsKKyAgICAgICAgY2FwdHVyZWRC
bG9jayhbX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gYWN0aXZhdGVkRWxlbWVudEluZm9XaXRoSW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246aW5mb3JtYXRpb25dKTsKKyAgICB9IGZvclJl
cXVlc3Q6aW5mb1JlcXVlc3RdOworfQorCiAtIChDR1JlY3QpX2NvbnRlbnRWaXNpYmxlUmVjdAog
ewogICAgIHJldHVybiBbc2VsZiBjb252ZXJ0UmVjdDpbc2VsZiBib3VuZHNdIHRvVmlldzpzZWxm
Ll9jdXJyZW50Q29udGVudFZpZXddOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHJldmlzaW9uIDIxODk3NSkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBXS19BUElfRU5BQkxFRAog
CisjaW1wb3J0IDxXZWJLaXQvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaD4KICNpbXBvcnQgPFdl
YktpdC9fV0tGaW5kT3B0aW9ucy5oPgogI2ltcG9ydCA8V2ViS2l0L19XS0xheW91dE1vZGUuaD4K
ICNpbXBvcnQgPFdlYktpdC9fV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oPgpAQCAtMzYxLDYg
KzM2Miw4IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUEKIC0gKF9X
S0RyYWdnYWJsZUVsZW1lbnRJbmZvICopX2RyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOihDR1Bv
aW50KXBvc2l0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogLSAodm9pZClfcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOihD
R1BvaW50KXBvc2l0aW9uIGNvbXBsZXRpb25CbG9jazoodm9pZCAoXikoX1dLRHJhZ2dhYmxlRWxl
bWVudEluZm8gKikpYmxvY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAKKy0gKHZvaWQpX3JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50QXRQb3Np
dGlvbjooQ0dQb2ludClwb3NpdGlvbiBjb21wbGV0aW9uQmxvY2s6KHZvaWQgKF4pKF9XS0FjdGl2
YXRlZEVsZW1lbnRJbmZvICopKWJsb2NrIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEp
KTsKKwogI2VuZGlmIC8vIFRBUkdFVF9PU19JUEhPTkUKIAogI2lmICFUQVJHRVRfT1NfSVBIT05F
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5oCShyZXZpc2lvbiAyMTg5NzUpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNlbmRpZgogCiB0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZSkgeworICAgIF9XS0FjdGl2YXRl
ZEVsZW1lbnRUeXBlVW5zcGVjaWZpZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBp
b3MoMTEuMCkpLAogICAgIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlTGluaywKICAgICBfV0tBY3Rp
dmF0ZWRFbGVtZW50VHlwZUltYWdlLAogICAgIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlQXR0YWNo
bWVudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSksCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZv
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
QWN0aXZhdGVkRWxlbWVudEluZm8ubW0JKHJldmlzaW9uIDIxODk3NSkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8ubW0JKHdvcmtp
bmcgY29weSkKQEAgLTU0LDYgKzU0LDM2IEBACiAjZW5kaWYKIH0KIAorKyAoaW5zdGFuY2V0eXBl
KWFjdGl2YXRlZEVsZW1lbnRJbmZvV2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9u
Oihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilpbmZvcm1h
dGlvbgoreworICAgIHJldHVybiBbW1tzZWxmIGFsbG9jXSBfaW5pdFdpdGhJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbjppbmZvcm1hdGlvbl0gYXV0b3JlbGVhc2VdOworfQorCistIChp
bnN0YW5jZXR5cGUpX2luaXRXaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246KGNv
bnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKWluZm9ybWF0aW9u
Cit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7
CisgICAgCisgICAgX1VSTCA9IGluZm9ybWF0aW9uLnVybDsKKyAgICBfaW50ZXJhY3Rpb25Mb2Nh
dGlvbiA9IGluZm9ybWF0aW9uLnJlcXVlc3QucG9pbnQ7CisgICAgX3RpdGxlID0gaW5mb3JtYXRp
b24udGl0bGU7CisgICAgX2JvdW5kaW5nUmVjdCA9IGluZm9ybWF0aW9uLmJvdW5kczsKKyAgICAK
KyAgICBpZiAoaW5mb3JtYXRpb24uaXNBdHRhY2htZW50KQorICAgICAgICBfdHlwZSA9IF9XS0Fj
dGl2YXRlZEVsZW1lbnRUeXBlQXR0YWNobWVudDsKKyAgICBlbHNlIGlmIChpbmZvcm1hdGlvbi5p
c0ltYWdlKQorICAgICAgICBfdHlwZSA9IF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlSW1hZ2U7Cisg
ICAgZWxzZSBpZiAoaW5mb3JtYXRpb24uaXNMaW5rKQorICAgICAgICBfdHlwZSA9IF9XS0FjdGl2
YXRlZEVsZW1lbnRUeXBlTGluazsKKyAgICBlbHNlCisgICAgICAgIF90eXBlID0gX1dLQWN0aXZh
dGVkRWxlbWVudFR5cGVVbnNwZWNpZmllZDsKKyAgICAKKyAgICBfaW1hZ2UgPSBpbmZvcm1hdGlv
bi5pbWFnZTsKKyAgICBfSUQgPSBpbmZvcm1hdGlvbi5pZEF0dHJpYnV0ZTsKKyAgICAKKyAgICBy
ZXR1cm4gc2VsZjsKK30KKwogLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFR5cGU6KF9XS0FjdGl2
YXRlZEVsZW1lbnRUeXBlKXR5cGUgVVJMOihOU1VSTCAqKXVybCBsb2NhdGlvbjooQ0dQb2ludCls
b2NhdGlvbiB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBJRDooTlNTdHJpbmcgKilJRCByZWN0OihD
R1JlY3QpcmVjdCBpbWFnZTooV2ViS2l0OjpTaGFyZWFibGVCaXRtYXAqKWltYWdlCiB7CiAgICAg
cmV0dXJuIFtzZWxmIF9pbml0V2l0aFR5cGU6dHlwZSBVUkw6dXJsIGxvY2F0aW9uOmxvY2F0aW9u
IHRpdGxlOnRpdGxlIElEOklEIHJlY3Q6cmVjdCBpbWFnZTppbWFnZSB1c2VySW5mbzpuaWxdOwpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVt
ZW50SW5mb0ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mb0ludGVybmFsLmgJKHJldmlzaW9uIDIx
ODk3NSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVk
RWxlbWVudEluZm9JbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiAg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorI2ltcG9ydCAiSW50ZXJh
Y3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCIKICNpbXBvcnQgIl9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvLmgiCiAKICNpZiBXS19BUElfRU5BQkxFRApAQCAtMzMsNiArMzQsOCBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogQGludGVyZmFjZSBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAoKQogCisr
IChpbnN0YW5jZXR5cGUpYWN0aXZhdGVkRWxlbWVudEluZm9XaXRoSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb24mKWluZm9ybWF0aW9uOworLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aEludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uJilpbmZvcm1hdGlvbjsKIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhUeXBl
OihfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZSl0eXBlIFVSTDooTlNVUkwgKil1cmwgbG9jYXRpb246
KENHUG9pbnQpbG9jYXRpb24gdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgSUQ6KE5TU3RyaW5nICop
SUQgcmVjdDooQ0dSZWN0KXJlY3QgaW1hZ2U6KFdlYktpdDo6U2hhcmVhYmxlQml0bWFwKilpbWFn
ZTsKIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhUeXBlOihfV0tBY3RpdmF0ZWRFbGVtZW50VHlw
ZSl0eXBlIFVSTDooTlNVUkwgKil1cmwgbG9jYXRpb246KENHUG9pbnQpbG9jYXRpb24gdGl0bGU6
KE5TU3RyaW5nICopdGl0bGUgSUQ6KE5TU3RyaW5nICopSUQgcmVjdDooQ0dSZWN0KXJlY3QgaW1h
Z2U6KFdlYktpdDo6U2hhcmVhYmxlQml0bWFwKilpbWFnZSB1c2VySW5mbzooTlNEaWN0aW9uYXJ5
ICopdXNlckluZm87CiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODk3OSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA2LTI5ICBNZWdhbiBHYXJkbmVyICA8bWVn
YW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEFQSSB0byBnZXQgV0tBY3RpdmF0
ZWRFbGVtZW50SW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc0MDAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTE2NTUxOD4KKyAgICAgICAg
CisgICAgICAgIFRlc3RzIGZvciBub3cgU1BJIHRvIGdldCBhY3RpdmF0ZWRFbGVtZW50SW5mby4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLUmVxdWVzdEFjdGl2YXRlZEVs
ZW1lbnRJbmZvLm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAy
MDE3LTA2LTI5ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IEZpeCBmb3IgaW50ZXJtaXR0ZW50IExheW91dCBUZXN0IGZhaWwgaHR0cC90ZXN0cy9sb2FkaW5n
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGVsZW1ldHJ5LWdlbmVyYXRpb24uaHRtbApJbmRleDog
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIxODk3NSkKKysrIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzIsNiArMTMyLDcgQEAKIAkJM0ZCRDFCNEExRDNENjZBQjAwRTZENkZBIC8qIEZ1
bGxzY3JlZW5MYXlvdXRDb25zdHJhaW50cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGQkQxQjQ5MUQzOUQxREIwMEU2RDZGQSAvKiBG
dWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMuaHRtbCAqLzsgfTsKIAkJM0ZDQzRGRTUxRUM0RTg1
MjAwNzZFMzdDIC8qIFBpY3R1cmVJblBpY3R1cmVEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGQ0M0RkU0MUVDNEU4NTIwMDc2RTM3QyAv
KiBQaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0gKi87IH07CiAJCTNGQ0M0RkU4MUVDNEU4Q0Ew
MDc2RTM3QyAvKiBQaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkNDNEZFNjFFQzRFODdFMDA3
NkUzN0MgLyogUGljdHVyZUluUGljdHVyZURlbGVnYXRlLmh0bWwgKi87IH07CisJCTQ0ODE3QTJG
MUYwNDg2QkYwMDAwMzgxMCAvKiBXS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0ODE3QTJFMUYwNDg2
QkYwMDAwMzgxMCAvKiBXS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5tbSAqLzsgfTsKIAkJ
NDQ4RDdFNDcxRUE2QzU1NTAwRUNDNzU2IC8qIEVudmlyb25tZW50VXRpbGl0aWVzVGVzdC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDhEN0U0NTFF
QTZDNTU1MDBFQ0M3NTYgLyogRW52aXJvbm1lbnRVdGlsaXRpZXNUZXN0LmNwcCAqLzsgfTsKIAkJ
NDYzOTdCOTUxREMyQzg1MDAwOUE3OEFFIC8qIERPTU5vZGUubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM5N0I5NDFEQzJDODUwMDA5QTc4QUUgLyog
RE9NTm9kZS5tbSAqLzsgfTsKIAkJNDY0N0IxMjYxRUJBM0I4NTAwNDFEN0VGIC8qIFByb2Nlc3NE
aWRUZXJtaW5hdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDY0N0IxMjUxRUJBM0I3MzAwNDFEN0VGIC8qIFByb2Nlc3NEaWRUZXJtaW5hdGUuY3Bw
ICovOyB9OwpAQCAtMTEzNyw2ICsxMTM4LDcgQEAKIAkJNDE5NzNCNUMxQUYyMjg3NTAwNkM3QjM2
IC8qIFNoYXJlZEJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTaGFyZWRCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDBBMUQz
ODE0QTAxMDNBMDA4QTY2RjIgLyogVVJMLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFVSTC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0MkJCRjY4
MUM5MUNBRDkwMDE3MDg3RiAvKiBSZWZMb2dnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVmTG9nZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDQ4MTdBMkUxRjA0ODZCRjAwMDAzODEwIC8qIFdLUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJ
bmZvLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tSZXF1ZXN0
QWN0aXZhdGVkRWxlbWVudEluZm8ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0
OEQ3RTQ1MUVBNkM1NTUwMEVDQzc1NiAvKiBFbnZpcm9ubWVudFV0aWxpdGllc1Rlc3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW52aXJvbm1lbnRVdGlsaXRpZXNU
ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDRBNjIyQzExNEEwRTJCNjAw
NDg1MTVCIC8qIFdURlN0cmluZ1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXVEZTdHJpbmdVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDYzOTdCOTQxREMyQzg1MDAwOUE3OEFFIC8qIERPTU5vZGUubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01Ob2RlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTg4MCw2ICsxODgyLDcgQEAKIAkJCQlBMTRBQUI2MTFFNzhEN0RFMDBDMUFE
QzIgLyogV0tQREZWaWV3Lm1tICovLAogCQkJCTJEMDAwNjVEMUMxRjU4OTQwMDg4RTZBNyAvKiBX
S1BERlZpZXdSZXNpemVDcmFzaC5tbSAqLywKIAkJCQkyRDIxRkU1ODFGMDQ2NDI4MDBCNThFN0Qg
LyogV0tQREZWaWV3U3RhYmxlUHJlc2VudGF0aW9uVXBkYXRlQ2FsbGJhY2subW0gKi8sCisJCQkJ
NDQ4MTdBMkUxRjA0ODZCRjAwMDAzODEwIC8qIFdLUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZv
Lm1tICovLAogCQkJCTVFNEIxRDJDMUQ0MDRDNjEwMDA1MzYyMSAvKiBXS1Njcm9sbFZpZXdEZWxl
Z2F0ZUNyYXNoLm1tICovLAogCQkJCTUxQzY4M0REMUVBMTM0REIwMDY1MDE4MyAvKiBXS1VSTFNj
aGVtZUhhbmRsZXItMS5tbSAqLywKIAkJCQk1Q0UzNTREODFFNzBEOUMzMDBCRUZFM0IgLyogV0tD
b250ZW50RXh0ZW5zaW9uU3RvcmUubW0gKi8sCkBAIC0zMjE3LDYgKzMyMjAsNyBAQAogCQkJCTdD
NTRBNEJFMUFBMTFDQ0EwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTFEMTI0OTgxRTc2M0IwMjAwMkIyODIwIC8qIFdLSFRUUENvb2tpZVN0b3Jl
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMUQxQTQxMUFFNjAwNDQ3QzRDIC8qIFdLSW1h
Z2VDcmVhdGVDR0ltYWdlQ3Jhc2guY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDQ4MTdBMkYxRjA0
ODZCRjAwMDAzODEwIC8qIFdLUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMzc1RTBFMTcxRDY2Njc0NDAwRUZFQzJDIC8qIFdLTlNOdW1iZXIubW0gaW4g
U291cmNlcyAqLywKIAkJCQkzN0I0N0UzMDFENjRFN0NBMDA1RjRFRkYgLyogV0tPYmplY3QubW0g
aW4gU291cmNlcyAqLywKIAkJCQk3Qzg5RDJBQzFBNjlCODBEMDAzQTVGREUgLyogV0tQYWdlQ29u
ZmlndXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL1dLUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLUmVxdWVz
dEFjdGl2YXRlZEVsZW1lbnRJbmZvLm1tCShub25leGlzdGVudCkKKysrIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0
LmgiCisjaW1wb3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgiCisjaW1wb3J0ICJUZXN0V0tX
ZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+CisjaW1wb3J0IDxXZWJLaXQv
X1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKwor
I2lmIFdLX0FQSV9FTkFCTEVECisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKyAgICAKK1RF
U1QoV2ViS2l0MiwgUmVxZXN0QWN0aXZhdGVkRWxlbWVudEluZm9Gb3JMaW5rKQoreworICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
OkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJp
bmc6QCI8aHRtbD48aGVhZD48bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0naW5pdGlhbC1z
Y2FsZT0xJz48L2hlYWQ+PGJvZHkgc3R5bGUgPSAnbWFyZ2luOiAwcHg7Jz48YSBocmVmPSd0ZXN0
VVJMLnRlc3QnIHN0eWxlPSdkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAxMDAlOycgdGl0bGU9J0hp
dFRlc3RMaW5rVGl0bGUnIGlkPSd0ZXN0SUQnPjwvYT48L2JvZHk+PC9odG1sPiIgYmFzZVVSTDpu
aWxdOworICAgIFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKyAg
ICB3ZWJWaWV3LmdldCgpLnNjcm9sbFZpZXcuY29udGVudE9mZnNldCA9IENHUG9pbnRNYWtlKDAs
IDUwKTsKKyAgICB3ZWJWaWV3LmdldCgpLnNjcm9sbFZpZXcuem9vbVNjYWxlID0gMi4wOworICAg
IAorICAgIF9fYmxvY2sgYm9vbCBmaW5pc2hlZCA9IGZhbHNlOworICAgIFt3ZWJWaWV3IF9yZXF1
ZXN0QWN0aXZhdGVkRWxlbWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2UoNTAsIDUwKSBjb21wbGV0
aW9uQmxvY2s6IF4oX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKmVsZW1lbnRJbmZvKSB7CisgICAg
ICAgIAorICAgICAgICBFWFBFQ1RfVFJVRShlbGVtZW50SW5mby50eXBlID09IF9XS0FjdGl2YXRl
ZEVsZW1lbnRUeXBlTGluayk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtlbGVtZW50SW5mby5VUkwu
YWJzb2x1dGVTdHJpbmcgaXNFcXVhbDpAInRlc3RVUkwudGVzdCJdKTsKKyAgICAgICAgRVhQRUNU
X1RSVUUoW2VsZW1lbnRJbmZvLnRpdGxlIGlzRXF1YWw6QCJIaXRUZXN0TGlua1RpdGxlIl0pOwor
ICAgICAgICBFWFBFQ1RfVFJVRShbZWxlbWVudEluZm8uSUQgaXNFcXVhbDpAInRlc3RJRCJdKTsK
KyAgICAgICAgRVhQRUNUX1RSVUUoZWxlbWVudEluZm8uaW1hZ2UgIT0gbmlsKTsKKyAgICAgICAg
RVhQRUNUX0VRKGVsZW1lbnRJbmZvLmJvdW5kaW5nUmVjdC5zaXplLndpZHRoLCAzMjApOworICAg
ICAgICBFWFBFQ1RfRVEoZWxlbWVudEluZm8uYm91bmRpbmdSZWN0LnNpemUuaGVpZ2h0LCA1MDAp
OworICAgICAgICBFWFBFQ1RfRVEoZWxlbWVudEluZm8uaW1hZ2Uuc2l6ZS53aWR0aCwgMzIwKTsK
KyAgICAgICAgRVhQRUNUX0VRKGVsZW1lbnRJbmZvLmltYWdlLnNpemUuaGVpZ2h0LCA1MDApOwor
ICAgICAgICAKKyAgICAgICAgZmluaXNoZWQgPSB0cnVlOworICAgIH1dOworICAgIAorICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQpOworfQorICAgIAorVEVTVChXZWJLaXQy
LCBSZXFlc3RBY3RpdmF0ZWRFbGVtZW50SW5mb0Zvck5vdGhpbmcpCit7CisgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0
TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxo
dG1sPjxoZWFkPjxtZXRhIG5hbWU9J3ZpZXdwb3J0JyBjb250ZW50PSdpbml0aWFsLXNjYWxlPTEn
PjwvaGVhZD48Ym9keSBzdHlsZSA9ICdtYXJnaW46IDBweDsnPjwvYm9keT48L2h0bWw+IiBiYXNl
VVJMOm5pbF07CisgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25d
OworICAgIHdlYlZpZXcuZ2V0KCkuc2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0ID0gQ0dQb2ludE1h
a2UoMCwgNTApOworICAgIHdlYlZpZXcuZ2V0KCkuc2Nyb2xsVmlldy56b29tU2NhbGUgPSAyLjA7
CisgICAgCisgICAgX19ibG9jayBib29sIGZpbmlzaGVkID0gZmFsc2U7CisgICAgW3dlYlZpZXcg
X3JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFrZSg1MCwgNTApIGNv
bXBsZXRpb25CbG9jazogXihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqZWxlbWVudEluZm8pIHsK
KyAgICAgICAgCisgICAgICAgIEVYUEVDVF9UUlVFKGVsZW1lbnRJbmZvLnR5cGUgPT0gX1dLQWN0
aXZhdGVkRWxlbWVudFR5cGVVbnNwZWNpZmllZCk7CisgICAgICAgIEVYUEVDVF9FUShlbGVtZW50
SW5mby5ib3VuZGluZ1JlY3Quc2l6ZS53aWR0aCwgMzIwKTsKKyAgICAgICAgRVhQRUNUX0VRKGVs
ZW1lbnRJbmZvLmJvdW5kaW5nUmVjdC5zaXplLmhlaWdodCwgNTAwKTsKKyAgICAgICAgCisgICAg
ICAgIGZpbmlzaGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICAKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmZpbmlzaGVkKTsKK30KKyAgICAKK30KKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314347</attachid>
            <date>2017-06-30 18:43:34 -0700</date>
            <delta_ts>2017-06-30 18:46:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174001-20170630184334.patch</filename>
            <type>text/plain</type>
            <size>16243</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODk3NSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE3LTA2LTI5ICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEFQSSB0byBn
ZXQgV0tBY3RpdmF0ZWRFbGVtZW50SW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MDAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTE2NTUx
OD4KKyAgICAgICAgCisgICAgICAgIEFkZGluZyBhIHdheSB0byBnZXQgYSBXS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvIGZvciBhIHBvaW50IG9uIGEgV0tXZWJWaWV3LgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyByZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEF0
UG9zaXRpb246Y29tcGxldGlvbkJsb2NrOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
QWN0aXZhdGVkRWxlbWVudEluZm8ubW06CisgICAgICAgICgrW19XS0FjdGl2YXRlZEVsZW1lbnRJ
bmZvIGluZm9XaXRoVHlwZTp3aXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246XSk6
CisgICAgICAgICgtW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGluZm9XaXRoVHlwZTp3aXRoSW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mb0ludGVybmFsLmg6CisKIDIwMTctMDYtMjkg
IE1hdHQgTGV3aXMgIDxqbGV3aXMzQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMjE4OTAzLgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHJldmlzaW9uIDIxODk3NSkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC04
MSw2ICs4MSw3IEBACiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIldlYlVS
TFNjaGVtZUhhbmRsZXJDb2NvYS5oIgogI2ltcG9ydCAiV2ViVmlld0ltcGwuaCIKKyNpbXBvcnQg
Il9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0RpYWdub3N0
aWNMb2dnaW5nRGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS0ZpbmREZWxlZ2F0ZS5oIgogI2ltcG9y
dCAiX1dLRnJhbWVIYW5kbGVJbnRlcm5hbC5oIgpAQCAtNTI1MCw2ICs1MjUxLDE2IEBAIC0gKHZv
aWQpX3JlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGkKICAgICB9IGZvclJlcXVlc3Q6V2Vi
S2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdChXZWJDb3JlOjpyb3VuZGVkSW50UG9p
bnQocG9zaXRpb24pKV07CiB9CiAKKy0gKHZvaWQpX3JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50QXRQ
b3NpdGlvbjooQ0dQb2ludClwb3NpdGlvbiBjb21wbGV0aW9uQmxvY2s6KHZvaWQgKF4pKF9XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvICopKWJsb2NrCit7CisgICAgYXV0byBpbmZvUmVxdWVzdCA9IFdl
YktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QoV2ViQ29yZTo6cm91bmRlZEludFBv
aW50KHBvc2l0aW9uKSk7CisgICAgaW5mb1JlcXVlc3QuaW5jbHVkZVNuYXBzaG90ID0gdHJ1ZTsK
KyAgICAKKyAgICBbX2NvbnRlbnRWaWV3IGRvQWZ0ZXJQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRl
OltjYXB0dXJlZEJsb2NrID0gbWFrZUJsb2NrUHRyKGJsb2NrKV0gKFdlYktpdDo6SW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb24gaW5mb3JtYXRpb24pIHsKKyAgICAgICAgY2FwdHVyZWRC
bG9jayhbX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gYWN0aXZhdGVkRWxlbWVudEluZm9XaXRoSW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246aW5mb3JtYXRpb25dKTsKKyAgICB9IGZvclJl
cXVlc3Q6aW5mb1JlcXVlc3RdOworfQorCiAtIChDR1JlY3QpX2NvbnRlbnRWaXNpYmxlUmVjdAog
ewogICAgIHJldHVybiBbc2VsZiBjb252ZXJ0UmVjdDpbc2VsZiBib3VuZHNdIHRvVmlldzpzZWxm
Ll9jdXJyZW50Q29udGVudFZpZXddOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHJldmlzaW9uIDIxODk3NSkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBXS19BUElfRU5BQkxFRAog
CisjaW1wb3J0IDxXZWJLaXQvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaD4KICNpbXBvcnQgPFdl
YktpdC9fV0tGaW5kT3B0aW9ucy5oPgogI2ltcG9ydCA8V2ViS2l0L19XS0xheW91dE1vZGUuaD4K
ICNpbXBvcnQgPFdlYktpdC9fV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oPgpAQCAtMzYxLDYg
KzM2Miw4IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUEKIC0gKF9X
S0RyYWdnYWJsZUVsZW1lbnRJbmZvICopX2RyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOihDR1Bv
aW50KXBvc2l0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogLSAodm9pZClfcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOihD
R1BvaW50KXBvc2l0aW9uIGNvbXBsZXRpb25CbG9jazoodm9pZCAoXikoX1dLRHJhZ2dhYmxlRWxl
bWVudEluZm8gKikpYmxvY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAKKy0gKHZvaWQpX3JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50QXRQb3Np
dGlvbjooQ0dQb2ludClwb3NpdGlvbiBjb21wbGV0aW9uQmxvY2s6KHZvaWQgKF4pKF9XS0FjdGl2
YXRlZEVsZW1lbnRJbmZvICopKWJsb2NrIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEp
KTsKKwogI2VuZGlmIC8vIFRBUkdFVF9PU19JUEhPTkUKIAogI2lmICFUQVJHRVRfT1NfSVBIT05F
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5oCShyZXZpc2lvbiAyMTg5NzUpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdl
ciwgX1dLQWN0aXZhdGVkRQogICAgIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlTGluaywKICAgICBf
V0tBY3RpdmF0ZWRFbGVtZW50VHlwZUltYWdlLAogICAgIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBl
QXR0YWNobWVudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSksCisg
ICAgX1dLQWN0aXZhdGVkRWxlbWVudFR5cGVVbnNwZWNpZmllZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMyksIGlvcygxMS4wKSksCiB9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEw
KSwgaW9zKDguMCkpOwogCiBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDgu
MCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRl
ZEVsZW1lbnRJbmZvLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8ubW0JKHJldmlzaW9uIDIxODk3NSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudElu
Zm8ubW0JKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDM2IEBACiAjZW5kaWYKIH0KIAorKyAo
aW5zdGFuY2V0eXBlKWFjdGl2YXRlZEVsZW1lbnRJbmZvV2l0aEludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uJilpbmZvcm1hdGlvbgoreworICAgIHJldHVybiBbW1tzZWxmIGFsbG9jXSBfaW5pdFdpdGhJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjppbmZvcm1hdGlvbl0gYXV0b3JlbGVhc2Vd
OworfQorCistIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24m
KWluZm9ybWF0aW9uCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAg
IHJldHVybiBuaWw7CisgICAgCisgICAgX1VSTCA9IGluZm9ybWF0aW9uLnVybDsKKyAgICBfaW50
ZXJhY3Rpb25Mb2NhdGlvbiA9IGluZm9ybWF0aW9uLnJlcXVlc3QucG9pbnQ7CisgICAgX3RpdGxl
ID0gaW5mb3JtYXRpb24udGl0bGU7CisgICAgX2JvdW5kaW5nUmVjdCA9IGluZm9ybWF0aW9uLmJv
dW5kczsKKyAgICAKKyAgICBpZiAoaW5mb3JtYXRpb24uaXNBdHRhY2htZW50KQorICAgICAgICBf
dHlwZSA9IF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlQXR0YWNobWVudDsKKyAgICBlbHNlIGlmIChp
bmZvcm1hdGlvbi5pc0ltYWdlKQorICAgICAgICBfdHlwZSA9IF9XS0FjdGl2YXRlZEVsZW1lbnRU
eXBlSW1hZ2U7CisgICAgZWxzZSBpZiAoaW5mb3JtYXRpb24uaXNMaW5rKQorICAgICAgICBfdHlw
ZSA9IF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlTGluazsKKyAgICBlbHNlCisgICAgICAgIF90eXBl
ID0gX1dLQWN0aXZhdGVkRWxlbWVudFR5cGVVbnNwZWNpZmllZDsKKyAgICAKKyAgICBfaW1hZ2Ug
PSBpbmZvcm1hdGlvbi5pbWFnZTsKKyAgICBfSUQgPSBpbmZvcm1hdGlvbi5pZEF0dHJpYnV0ZTsK
KyAgICAKKyAgICByZXR1cm4gc2VsZjsKK30KKwogLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFR5
cGU6KF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlKXR5cGUgVVJMOihOU1VSTCAqKXVybCBsb2NhdGlv
bjooQ0dQb2ludClsb2NhdGlvbiB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBJRDooTlNTdHJpbmcg
KilJRCByZWN0OihDR1JlY3QpcmVjdCBpbWFnZTooV2ViS2l0OjpTaGFyZWFibGVCaXRtYXAqKWlt
YWdlCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9pbml0V2l0aFR5cGU6dHlwZSBVUkw6dXJsIGxvY2F0
aW9uOmxvY2F0aW9uIHRpdGxlOnRpdGxlIElEOklEIHJlY3Q6cmVjdCBpbWFnZTppbWFnZSB1c2Vy
SW5mbzpuaWxdOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tB
Y3RpdmF0ZWRFbGVtZW50SW5mb0ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mb0ludGVybmFsLmgJ
KHJldmlzaW9uIDIxODk3NSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLQWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2
ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorI2lt
cG9ydCAiSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCIKICNpbXBvcnQgIl9XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvLmgiCiAKICNpZiBXS19BUElfRU5BQkxFRApAQCAtMzMsNiArMzQs
OCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogQGludGVyZmFjZSBfV0tBY3RpdmF0ZWRFbGVtZW50
SW5mbyAoKQogCisrIChpbnN0YW5jZXR5cGUpYWN0aXZhdGVkRWxlbWVudEluZm9XaXRoSW50ZXJh
Y3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb24mKWluZm9ybWF0aW9uOworLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0
aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilpbmZvcm1hdGlvbjsKIC0gKGluc3RhbmNldHlwZSlf
aW5pdFdpdGhUeXBlOihfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZSl0eXBlIFVSTDooTlNVUkwgKil1
cmwgbG9jYXRpb246KENHUG9pbnQpbG9jYXRpb24gdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgSUQ6
KE5TU3RyaW5nICopSUQgcmVjdDooQ0dSZWN0KXJlY3QgaW1hZ2U6KFdlYktpdDo6U2hhcmVhYmxl
Qml0bWFwKilpbWFnZTsKIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhUeXBlOihfV0tBY3RpdmF0
ZWRFbGVtZW50VHlwZSl0eXBlIFVSTDooTlNVUkwgKil1cmwgbG9jYXRpb246KENHUG9pbnQpbG9j
YXRpb24gdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgSUQ6KE5TU3RyaW5nICopSUQgcmVjdDooQ0dS
ZWN0KXJlY3QgaW1hZ2U6KFdlYktpdDo6U2hhcmVhYmxlQml0bWFwKilpbWFnZSB1c2VySW5mbzoo
TlNEaWN0aW9uYXJ5ICopdXNlckluZm87CiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODk3OSkKKysrIFRvb2xzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA2LTI5ICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEFQSSB0byBn
ZXQgV0tBY3RpdmF0ZWRFbGVtZW50SW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MDAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTE2NTUx
OD4KKyAgICAgICAgCisgICAgICAgIFRlc3RzIGZvciBub3cgU1BJIHRvIGdldCBhY3RpdmF0ZWRF
bGVtZW50SW5mby4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLUmVxdWVz
dEFjdGl2YXRlZEVsZW1lbnRJbmZvLm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorCiAyMDE3LTA2LTI5ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIEZpeCBmb3IgaW50ZXJtaXR0ZW50IExheW91dCBUZXN0IGZhaWwgaHR0cC90
ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGVsZW1ldHJ5LWdlbmVyYXRpb24u
aHRtbApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIxODk3NSkKKysrIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsNiArMTMyLDcgQEAKIAkJM0ZCRDFCNEExRDNENjZBQjAw
RTZENkZBIC8qIEZ1bGxzY3JlZW5MYXlvdXRDb25zdHJhaW50cy5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGQkQxQjQ5MUQzOUQxREIw
MEU2RDZGQSAvKiBGdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMuaHRtbCAqLzsgfTsKIAkJM0ZD
QzRGRTUxRUM0RTg1MjAwNzZFMzdDIC8qIFBpY3R1cmVJblBpY3R1cmVEZWxlZ2F0ZS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGQ0M0RkU0MUVDNEU4
NTIwMDc2RTM3QyAvKiBQaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0gKi87IH07CiAJCTNGQ0M0
RkU4MUVDNEU4Q0EwMDc2RTM3QyAvKiBQaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkNDNEZF
NjFFQzRFODdFMDA3NkUzN0MgLyogUGljdHVyZUluUGljdHVyZURlbGVnYXRlLmh0bWwgKi87IH07
CisJCTQ0ODE3QTJGMUYwNDg2QkYwMDAwMzgxMCAvKiBXS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50
SW5mby5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0
ODE3QTJFMUYwNDg2QkYwMDAwMzgxMCAvKiBXS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5t
bSAqLzsgfTsKIAkJNDQ4RDdFNDcxRUE2QzU1NTAwRUNDNzU2IC8qIEVudmlyb25tZW50VXRpbGl0
aWVzVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NDhEN0U0NTFFQTZDNTU1MDBFQ0M3NTYgLyogRW52aXJvbm1lbnRVdGlsaXRpZXNUZXN0LmNw
cCAqLzsgfTsKIAkJNDYzOTdCOTUxREMyQzg1MDAwOUE3OEFFIC8qIERPTU5vZGUubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM5N0I5NDFEQzJDODUw
MDA5QTc4QUUgLyogRE9NTm9kZS5tbSAqLzsgfTsKIAkJNDY0N0IxMjYxRUJBM0I4NTAwNDFEN0VG
IC8qIFByb2Nlc3NEaWRUZXJtaW5hdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDY0N0IxMjUxRUJBM0I3MzAwNDFEN0VGIC8qIFByb2Nlc3NEaWRU
ZXJtaW5hdGUuY3BwICovOyB9OwpAQCAtMTEzNyw2ICsxMTM4LDcgQEAKIAkJNDE5NzNCNUMxQUYy
Mjg3NTAwNkM3QjM2IC8qIFNoYXJlZEJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTaGFyZWRCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0NDBBMUQzODE0QTAxMDNBMDA4QTY2RjIgLyogVVJMLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVSTC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ0MkJCRjY4MUM5MUNBRDkwMDE3MDg3RiAvKiBSZWZMb2dnZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVmTG9nZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDQ4MTdBMkUxRjA0ODZCRjAwMDAzODEwIC8qIFdLUmVxdWVzdEFjdGl2
YXRlZEVsZW1lbnRJbmZvLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV0tSZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEluZm8ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ0OEQ3RTQ1MUVBNkM1NTUwMEVDQzc1NiAvKiBFbnZpcm9ubWVudFV0aWxpdGll
c1Rlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW52aXJvbm1l
bnRVdGlsaXRpZXNUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDRBNjIy
QzExNEEwRTJCNjAwNDg1MTVCIC8qIFdURlN0cmluZ1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXVEZTdHJpbmdVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDYzOTdCOTQxREMyQzg1MDAwOUE3OEFFIC8qIERPTU5vZGUubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01Ob2RlLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg4MCw2ICsxODgyLDcgQEAKIAkJCQlBMTRBQUI2MTFF
NzhEN0RFMDBDMUFEQzIgLyogV0tQREZWaWV3Lm1tICovLAogCQkJCTJEMDAwNjVEMUMxRjU4OTQw
MDg4RTZBNyAvKiBXS1BERlZpZXdSZXNpemVDcmFzaC5tbSAqLywKIAkJCQkyRDIxRkU1ODFGMDQ2
NDI4MDBCNThFN0QgLyogV0tQREZWaWV3U3RhYmxlUHJlc2VudGF0aW9uVXBkYXRlQ2FsbGJhY2su
bW0gKi8sCisJCQkJNDQ4MTdBMkUxRjA0ODZCRjAwMDAzODEwIC8qIFdLUmVxdWVzdEFjdGl2YXRl
ZEVsZW1lbnRJbmZvLm1tICovLAogCQkJCTVFNEIxRDJDMUQ0MDRDNjEwMDA1MzYyMSAvKiBXS1Nj
cm9sbFZpZXdEZWxlZ2F0ZUNyYXNoLm1tICovLAogCQkJCTUxQzY4M0REMUVBMTM0REIwMDY1MDE4
MyAvKiBXS1VSTFNjaGVtZUhhbmRsZXItMS5tbSAqLywKIAkJCQk1Q0UzNTREODFFNzBEOUMzMDBC
RUZFM0IgLyogV0tDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0gKi8sCkBAIC0zMjE3LDYgKzMyMjAs
NyBAQAogCQkJCTdDNTRBNEJFMUFBMTFDQ0EwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFEMTI0OTgxRTc2M0IwMjAwMkIyODIwIC8qIFdLSFRU
UENvb2tpZVN0b3JlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMUQxQTQxMUFFNjAwNDQ3
QzRDIC8qIFdLSW1hZ2VDcmVhdGVDR0ltYWdlQ3Jhc2guY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NDQ4MTdBMkYxRjA0ODZCRjAwMDAzODEwIC8qIFdLUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZv
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc1RTBFMTcxRDY2Njc0NDAwRUZFQzJDIC8qIFdLTlNO
dW1iZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkzN0I0N0UzMDFENjRFN0NBMDA1RjRFRkYgLyog
V0tPYmplY3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Qzg5RDJBQzFBNjlCODBEMDAzQTVGREUg
LyogV0tQYWdlQ29uZmlndXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJ
bmZvLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL1dLUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvLm1tCShub25leGlzdGVudCkKKysrIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLUmVxdWVzdEFjdGl2YXRlZEVs
ZW1lbnRJbmZvLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisj
aW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgiCisjaW1w
b3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+CisjaW1w
b3J0IDxXZWJLaXQvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaD4KKyNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
IHsKKyAgICAKK1RFU1QoV2ViS2l0MiwgUmVxZXN0QWN0aXZhdGVkRWxlbWVudEluZm9Gb3JMaW5r
KQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcg
bG9hZEhUTUxTdHJpbmc6QCI8aHRtbD48aGVhZD48bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVu
dD0naW5pdGlhbC1zY2FsZT0xJz48L2hlYWQ+PGJvZHkgc3R5bGUgPSAnbWFyZ2luOiAwcHg7Jz48
YSBocmVmPSd0ZXN0VVJMLnRlc3QnIHN0eWxlPSdkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAxMDAl
OycgdGl0bGU9J0hpdFRlc3RMaW5rVGl0bGUnIGlkPSd0ZXN0SUQnPjwvYT48L2JvZHk+PC9odG1s
PiIgYmFzZVVSTDpuaWxdOworICAgIFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZp
Z2F0aW9uXTsKKyAgICB3ZWJWaWV3LmdldCgpLnNjcm9sbFZpZXcuY29udGVudE9mZnNldCA9IENH
UG9pbnRNYWtlKDAsIDUwKTsKKyAgICB3ZWJWaWV3LmdldCgpLnNjcm9sbFZpZXcuem9vbVNjYWxl
ID0gMi4wOworICAgIAorICAgIF9fYmxvY2sgYm9vbCBmaW5pc2hlZCA9IGZhbHNlOworICAgIFt3
ZWJWaWV3IF9yZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2UoNTAs
IDUwKSBjb21wbGV0aW9uQmxvY2s6IF4oX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKmVsZW1lbnRJ
bmZvKSB7CisgICAgICAgIAorICAgICAgICBFWFBFQ1RfVFJVRShlbGVtZW50SW5mby50eXBlID09
IF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlTGluayk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtlbGVt
ZW50SW5mby5VUkwuYWJzb2x1dGVTdHJpbmcgaXNFcXVhbDpAInRlc3RVUkwudGVzdCJdKTsKKyAg
ICAgICAgRVhQRUNUX1RSVUUoW2VsZW1lbnRJbmZvLnRpdGxlIGlzRXF1YWw6QCJIaXRUZXN0TGlu
a1RpdGxlIl0pOworICAgICAgICBFWFBFQ1RfVFJVRShbZWxlbWVudEluZm8uSUQgaXNFcXVhbDpA
InRlc3RJRCJdKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoZWxlbWVudEluZm8uaW1hZ2UgIT0gbmls
KTsKKyAgICAgICAgRVhQRUNUX0VRKGVsZW1lbnRJbmZvLmJvdW5kaW5nUmVjdC5zaXplLndpZHRo
LCAzMjApOworICAgICAgICBFWFBFQ1RfRVEoZWxlbWVudEluZm8uYm91bmRpbmdSZWN0LnNpemUu
aGVpZ2h0LCA1MDApOworICAgICAgICBFWFBFQ1RfRVEoZWxlbWVudEluZm8uaW1hZ2Uuc2l6ZS53
aWR0aCwgMzIwKTsKKyAgICAgICAgRVhQRUNUX0VRKGVsZW1lbnRJbmZvLmltYWdlLnNpemUuaGVp
Z2h0LCA1MDApOworICAgICAgICAKKyAgICAgICAgZmluaXNoZWQgPSB0cnVlOworICAgIH1dOwor
ICAgIAorICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQpOworfQorICAgIAor
VEVTVChXZWJLaXQyLCBSZXFlc3RBY3RpdmF0ZWRFbGVtZW50SW5mb0Zvck5vdGhpbmcpCit7Cisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBsb2FkSFRN
TFN0cmluZzpAIjxodG1sPjxoZWFkPjxtZXRhIG5hbWU9J3ZpZXdwb3J0JyBjb250ZW50PSdpbml0
aWFsLXNjYWxlPTEnPjwvaGVhZD48Ym9keSBzdHlsZSA9ICdtYXJnaW46IDBweDsnPjwvYm9keT48
L2h0bWw+IiBiYXNlVVJMOm5pbF07CisgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlz
aE5hdmlnYXRpb25dOworICAgIHdlYlZpZXcuZ2V0KCkuc2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0
ID0gQ0dQb2ludE1ha2UoMCwgNTApOworICAgIHdlYlZpZXcuZ2V0KCkuc2Nyb2xsVmlldy56b29t
U2NhbGUgPSAyLjA7CisgICAgCisgICAgX19ibG9jayBib29sIGZpbmlzaGVkID0gZmFsc2U7Cisg
ICAgW3dlYlZpZXcgX3JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFr
ZSg1MCwgNTApIGNvbXBsZXRpb25CbG9jazogXihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqZWxl
bWVudEluZm8pIHsKKyAgICAgICAgCisgICAgICAgIEVYUEVDVF9UUlVFKGVsZW1lbnRJbmZvLnR5
cGUgPT0gX1dLQWN0aXZhdGVkRWxlbWVudFR5cGVVbnNwZWNpZmllZCk7CisgICAgICAgIEVYUEVD
VF9FUShlbGVtZW50SW5mby5ib3VuZGluZ1JlY3Quc2l6ZS53aWR0aCwgMzIwKTsKKyAgICAgICAg
RVhQRUNUX0VRKGVsZW1lbnRJbmZvLmJvdW5kaW5nUmVjdC5zaXplLmhlaWdodCwgNTAwKTsKKyAg
ICAgICAgCisgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICAKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkKTsKK30KKyAgICAKK30KKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314348</attachid>
            <date>2017-06-30 18:46:11 -0700</date>
            <delta_ts>2017-06-30 19:04:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174001-20170630184610.patch</filename>
            <type>text/plain</type>
            <size>16241</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODk3NSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE3LTA2LTI5ICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEFQSSB0byBn
ZXQgV0tBY3RpdmF0ZWRFbGVtZW50SW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MDAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTE2NTUx
OD4KKyAgICAgICAgCisgICAgICAgIEFkZGluZyBhIHdheSB0byBnZXQgYSBXS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvIGZvciBhIHBvaW50IG9uIGEgV0tXZWJWaWV3LgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyByZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEF0
UG9zaXRpb246Y29tcGxldGlvbkJsb2NrOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
QWN0aXZhdGVkRWxlbWVudEluZm8ubW06CisgICAgICAgICgrW19XS0FjdGl2YXRlZEVsZW1lbnRJ
bmZvIGluZm9XaXRoVHlwZTp3aXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246XSk6
CisgICAgICAgICgtW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGluZm9XaXRoVHlwZTp3aXRoSW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mb0ludGVybmFsLmg6CisKIDIwMTctMDYtMjkg
IE1hdHQgTGV3aXMgIDxqbGV3aXMzQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMjE4OTAzLgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHJldmlzaW9uIDIxODk3NSkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC04
MSw2ICs4MSw3IEBACiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIldlYlVS
TFNjaGVtZUhhbmRsZXJDb2NvYS5oIgogI2ltcG9ydCAiV2ViVmlld0ltcGwuaCIKKyNpbXBvcnQg
Il9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0RpYWdub3N0
aWNMb2dnaW5nRGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS0ZpbmREZWxlZ2F0ZS5oIgogI2ltcG9y
dCAiX1dLRnJhbWVIYW5kbGVJbnRlcm5hbC5oIgpAQCAtNTI1MCw2ICs1MjUxLDE2IEBAIC0gKHZv
aWQpX3JlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGkKICAgICB9IGZvclJlcXVlc3Q6V2Vi
S2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdChXZWJDb3JlOjpyb3VuZGVkSW50UG9p
bnQocG9zaXRpb24pKV07CiB9CiAKKy0gKHZvaWQpX3JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50QXRQ
b3NpdGlvbjooQ0dQb2ludClwb3NpdGlvbiBjb21wbGV0aW9uQmxvY2s6KHZvaWQgKF4pKF9XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvICopKWJsb2NrCit7CisgICAgYXV0byBpbmZvUmVxdWVzdCA9IFdl
YktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QoV2ViQ29yZTo6cm91bmRlZEludFBv
aW50KHBvc2l0aW9uKSk7CisgICAgaW5mb1JlcXVlc3QuaW5jbHVkZVNuYXBzaG90ID0gdHJ1ZTsK
KyAgICAKKyAgICBbX2NvbnRlbnRWaWV3IGRvQWZ0ZXJQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRl
OltjYXB0dXJlZEJsb2NrID0gbWFrZUJsb2NrUHRyKGJsb2NrKV0gKFdlYktpdDo6SW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb24gaW5mb3JtYXRpb24pIHsKKyAgICAgICAgY2FwdHVyZWRC
bG9jayhbX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gYWN0aXZhdGVkRWxlbWVudEluZm9XaXRoSW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246aW5mb3JtYXRpb25dKTsKKyAgICB9IGZvclJl
cXVlc3Q6aW5mb1JlcXVlc3RdOworfQorCiAtIChDR1JlY3QpX2NvbnRlbnRWaXNpYmxlUmVjdAog
ewogICAgIHJldHVybiBbc2VsZiBjb252ZXJ0UmVjdDpbc2VsZiBib3VuZHNdIHRvVmlldzpzZWxm
Ll9jdXJyZW50Q29udGVudFZpZXddOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHJldmlzaW9uIDIxODk3NSkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBXS19BUElfRU5BQkxFRAog
CisjaW1wb3J0IDxXZWJLaXQvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaD4KICNpbXBvcnQgPFdl
YktpdC9fV0tGaW5kT3B0aW9ucy5oPgogI2ltcG9ydCA8V2ViS2l0L19XS0xheW91dE1vZGUuaD4K
ICNpbXBvcnQgPFdlYktpdC9fV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oPgpAQCAtMzYxLDYg
KzM2Miw4IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUEKIC0gKF9X
S0RyYWdnYWJsZUVsZW1lbnRJbmZvICopX2RyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOihDR1Bv
aW50KXBvc2l0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogLSAodm9pZClfcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOihD
R1BvaW50KXBvc2l0aW9uIGNvbXBsZXRpb25CbG9jazoodm9pZCAoXikoX1dLRHJhZ2dhYmxlRWxl
bWVudEluZm8gKikpYmxvY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAKKy0gKHZvaWQpX3JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50QXRQb3Np
dGlvbjooQ0dQb2ludClwb3NpdGlvbiBjb21wbGV0aW9uQmxvY2s6KHZvaWQgKF4pKF9XS0FjdGl2
YXRlZEVsZW1lbnRJbmZvICopKWJsb2NrIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEp
KTsKKwogI2VuZGlmIC8vIFRBUkdFVF9PU19JUEhPTkUKIAogI2lmICFUQVJHRVRfT1NfSVBIT05F
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5oCShyZXZpc2lvbiAyMTg5NzUpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdl
ciwgX1dLQWN0aXZhdGVkRQogICAgIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlTGluaywKICAgICBf
V0tBY3RpdmF0ZWRFbGVtZW50VHlwZUltYWdlLAogICAgIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBl
QXR0YWNobWVudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSksCisg
ICAgX1dLQWN0aXZhdGVkRWxlbWVudFR5cGVVbnNwZWNpZmllZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMyksIGlvcygxMS4wKSksCiB9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEw
KSwgaW9zKDguMCkpOwogCiBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDgu
MCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRl
ZEVsZW1lbnRJbmZvLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8ubW0JKHJldmlzaW9uIDIxODk3NSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudElu
Zm8ubW0JKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDM2IEBACiAjZW5kaWYKIH0KIAorKyAo
aW5zdGFuY2V0eXBlKWFjdGl2YXRlZEVsZW1lbnRJbmZvV2l0aEludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uJilpbmZvcm1hdGlvbgoreworICAgIHJldHVybiBbW1tzZWxmIGFsbG9jXSBfaW5pdFdpdGhJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjppbmZvcm1hdGlvbl0gYXV0b3JlbGVhc2Vd
OworfQorCistIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24m
KWluZm9ybWF0aW9uCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAg
IHJldHVybiBuaWw7CisgICAgCisgICAgX1VSTCA9IGluZm9ybWF0aW9uLnVybDsKKyAgICBfaW50
ZXJhY3Rpb25Mb2NhdGlvbiA9IGluZm9ybWF0aW9uLnJlcXVlc3QucG9pbnQ7CisgICAgX3RpdGxl
ID0gaW5mb3JtYXRpb24udGl0bGU7CisgICAgX2JvdW5kaW5nUmVjdCA9IGluZm9ybWF0aW9uLmJv
dW5kczsKKyAgICAKKyAgICBpZiAoaW5mb3JtYXRpb24uaXNBdHRhY2htZW50KQorICAgICAgICBf
dHlwZSA9IF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlQXR0YWNobWVudDsKKyAgICBlbHNlIGlmIChp
bmZvcm1hdGlvbi5pc0ltYWdlKQorICAgICAgICBfdHlwZSA9IF9XS0FjdGl2YXRlZEVsZW1lbnRU
eXBlSW1hZ2U7CisgICAgZWxzZSBpZiAoaW5mb3JtYXRpb24uaXNMaW5rKQorICAgICAgICBfdHlw
ZSA9IF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlTGluazsKKyAgICBlbHNlCisgICAgICAgIF90eXBl
ID0gX1dLQWN0aXZhdGVkRWxlbWVudFR5cGVVbnNwZWNpZmllZDsKKyAgICAKKyAgICBfaW1hZ2Ug
PSBpbmZvcm1hdGlvbi5pbWFnZTsKKyAgICBfSUQgPSBpbmZvcm1hdGlvbi5pZEF0dHJpYnV0ZTsK
KyAgICAKKyAgICByZXR1cm4gc2VsZjsKK30KKwogLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFR5
cGU6KF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlKXR5cGUgVVJMOihOU1VSTCAqKXVybCBsb2NhdGlv
bjooQ0dQb2ludClsb2NhdGlvbiB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBJRDooTlNTdHJpbmcg
KilJRCByZWN0OihDR1JlY3QpcmVjdCBpbWFnZTooV2ViS2l0OjpTaGFyZWFibGVCaXRtYXAqKWlt
YWdlCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9pbml0V2l0aFR5cGU6dHlwZSBVUkw6dXJsIGxvY2F0
aW9uOmxvY2F0aW9uIHRpdGxlOnRpdGxlIElEOklEIHJlY3Q6cmVjdCBpbWFnZTppbWFnZSB1c2Vy
SW5mbzpuaWxdOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tB
Y3RpdmF0ZWRFbGVtZW50SW5mb0ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mb0ludGVybmFsLmgJ
KHJldmlzaW9uIDIxODk3NSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLQWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2
ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorI2lt
cG9ydCAiSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCIKICNpbXBvcnQgIl9XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvLmgiCiAKICNpZiBXS19BUElfRU5BQkxFRApAQCAtMzMsNiArMzQs
OCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogQGludGVyZmFjZSBfV0tBY3RpdmF0ZWRFbGVtZW50
SW5mbyAoKQogCisrIChpbnN0YW5jZXR5cGUpYWN0aXZhdGVkRWxlbWVudEluZm9XaXRoSW50ZXJh
Y3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb24mKWluZm9ybWF0aW9uOworLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0
aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilpbmZvcm1hdGlvbjsKIC0gKGluc3RhbmNldHlwZSlf
aW5pdFdpdGhUeXBlOihfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZSl0eXBlIFVSTDooTlNVUkwgKil1
cmwgbG9jYXRpb246KENHUG9pbnQpbG9jYXRpb24gdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgSUQ6
KE5TU3RyaW5nICopSUQgcmVjdDooQ0dSZWN0KXJlY3QgaW1hZ2U6KFdlYktpdDo6U2hhcmVhYmxl
Qml0bWFwKilpbWFnZTsKIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhUeXBlOihfV0tBY3RpdmF0
ZWRFbGVtZW50VHlwZSl0eXBlIFVSTDooTlNVUkwgKil1cmwgbG9jYXRpb246KENHUG9pbnQpbG9j
YXRpb24gdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgSUQ6KE5TU3RyaW5nICopSUQgcmVjdDooQ0dS
ZWN0KXJlY3QgaW1hZ2U6KFdlYktpdDo6U2hhcmVhYmxlQml0bWFwKilpbWFnZSB1c2VySW5mbzoo
TlNEaWN0aW9uYXJ5ICopdXNlckluZm87CiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODk3OSkKKysrIFRvb2xzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA2LTI5ICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEFQSSB0byBn
ZXQgV0tBY3RpdmF0ZWRFbGVtZW50SW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MDAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTE2NTUx
OD4KKyAgICAgICAgCisgICAgICAgIFRlc3RzIGZvciBub3cgU1BJIHRvIGdldCBhY3RpdmF0ZWRF
bGVtZW50SW5mby4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLUmVxdWVz
dEFjdGl2YXRlZEVsZW1lbnRJbmZvLm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorCiAyMDE3LTA2LTI5ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIEZpeCBmb3IgaW50ZXJtaXR0ZW50IExheW91dCBUZXN0IGZhaWwgaHR0cC90
ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGVsZW1ldHJ5LWdlbmVyYXRpb24u
aHRtbApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIxODk3NSkKKysrIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsNiArMTMyLDcgQEAKIAkJM0ZCRDFCNEExRDNENjZBQjAw
RTZENkZBIC8qIEZ1bGxzY3JlZW5MYXlvdXRDb25zdHJhaW50cy5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGQkQxQjQ5MUQzOUQxREIw
MEU2RDZGQSAvKiBGdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMuaHRtbCAqLzsgfTsKIAkJM0ZD
QzRGRTUxRUM0RTg1MjAwNzZFMzdDIC8qIFBpY3R1cmVJblBpY3R1cmVEZWxlZ2F0ZS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGQ0M0RkU0MUVDNEU4
NTIwMDc2RTM3QyAvKiBQaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0gKi87IH07CiAJCTNGQ0M0
RkU4MUVDNEU4Q0EwMDc2RTM3QyAvKiBQaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkNDNEZF
NjFFQzRFODdFMDA3NkUzN0MgLyogUGljdHVyZUluUGljdHVyZURlbGVnYXRlLmh0bWwgKi87IH07
CisJCTQ0ODE3QTJGMUYwNDg2QkYwMDAwMzgxMCAvKiBXS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50
SW5mby5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0
ODE3QTJFMUYwNDg2QkYwMDAwMzgxMCAvKiBXS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5t
bSAqLzsgfTsKIAkJNDQ4RDdFNDcxRUE2QzU1NTAwRUNDNzU2IC8qIEVudmlyb25tZW50VXRpbGl0
aWVzVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NDhEN0U0NTFFQTZDNTU1MDBFQ0M3NTYgLyogRW52aXJvbm1lbnRVdGlsaXRpZXNUZXN0LmNw
cCAqLzsgfTsKIAkJNDYzOTdCOTUxREMyQzg1MDAwOUE3OEFFIC8qIERPTU5vZGUubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM5N0I5NDFEQzJDODUw
MDA5QTc4QUUgLyogRE9NTm9kZS5tbSAqLzsgfTsKIAkJNDY0N0IxMjYxRUJBM0I4NTAwNDFEN0VG
IC8qIFByb2Nlc3NEaWRUZXJtaW5hdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDY0N0IxMjUxRUJBM0I3MzAwNDFEN0VGIC8qIFByb2Nlc3NEaWRU
ZXJtaW5hdGUuY3BwICovOyB9OwpAQCAtMTEzNyw2ICsxMTM4LDcgQEAKIAkJNDE5NzNCNUMxQUYy
Mjg3NTAwNkM3QjM2IC8qIFNoYXJlZEJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTaGFyZWRCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0NDBBMUQzODE0QTAxMDNBMDA4QTY2RjIgLyogVVJMLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVSTC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ0MkJCRjY4MUM5MUNBRDkwMDE3MDg3RiAvKiBSZWZMb2dnZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVmTG9nZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDQ4MTdBMkUxRjA0ODZCRjAwMDAzODEwIC8qIFdLUmVxdWVzdEFjdGl2
YXRlZEVsZW1lbnRJbmZvLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV0tSZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEluZm8ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ0OEQ3RTQ1MUVBNkM1NTUwMEVDQzc1NiAvKiBFbnZpcm9ubWVudFV0aWxpdGll
c1Rlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW52aXJvbm1l
bnRVdGlsaXRpZXNUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDRBNjIy
QzExNEEwRTJCNjAwNDg1MTVCIC8qIFdURlN0cmluZ1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXVEZTdHJpbmdVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDYzOTdCOTQxREMyQzg1MDAwOUE3OEFFIC8qIERPTU5vZGUubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01Ob2RlLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg4MCw2ICsxODgyLDcgQEAKIAkJCQlBMTRBQUI2MTFF
NzhEN0RFMDBDMUFEQzIgLyogV0tQREZWaWV3Lm1tICovLAogCQkJCTJEMDAwNjVEMUMxRjU4OTQw
MDg4RTZBNyAvKiBXS1BERlZpZXdSZXNpemVDcmFzaC5tbSAqLywKIAkJCQkyRDIxRkU1ODFGMDQ2
NDI4MDBCNThFN0QgLyogV0tQREZWaWV3U3RhYmxlUHJlc2VudGF0aW9uVXBkYXRlQ2FsbGJhY2su
bW0gKi8sCisJCQkJNDQ4MTdBMkUxRjA0ODZCRjAwMDAzODEwIC8qIFdLUmVxdWVzdEFjdGl2YXRl
ZEVsZW1lbnRJbmZvLm1tICovLAogCQkJCTVFNEIxRDJDMUQ0MDRDNjEwMDA1MzYyMSAvKiBXS1Nj
cm9sbFZpZXdEZWxlZ2F0ZUNyYXNoLm1tICovLAogCQkJCTUxQzY4M0REMUVBMTM0REIwMDY1MDE4
MyAvKiBXS1VSTFNjaGVtZUhhbmRsZXItMS5tbSAqLywKIAkJCQk1Q0UzNTREODFFNzBEOUMzMDBC
RUZFM0IgLyogV0tDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0gKi8sCkBAIC0zMjE3LDYgKzMyMjAs
NyBAQAogCQkJCTdDNTRBNEJFMUFBMTFDQ0EwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFEMTI0OTgxRTc2M0IwMjAwMkIyODIwIC8qIFdLSFRU
UENvb2tpZVN0b3JlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMUQxQTQxMUFFNjAwNDQ3
QzRDIC8qIFdLSW1hZ2VDcmVhdGVDR0ltYWdlQ3Jhc2guY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NDQ4MTdBMkYxRjA0ODZCRjAwMDAzODEwIC8qIFdLUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZv
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc1RTBFMTcxRDY2Njc0NDAwRUZFQzJDIC8qIFdLTlNO
dW1iZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkzN0I0N0UzMDFENjRFN0NBMDA1RjRFRkYgLyog
V0tPYmplY3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Qzg5RDJBQzFBNjlCODBEMDAzQTVGREUg
LyogV0tQYWdlQ29uZmlndXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJ
bmZvLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL1dLUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvLm1tCShub25leGlzdGVudCkKKysrIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLUmVxdWVzdEFjdGl2YXRlZEVs
ZW1lbnRJbmZvLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisj
aW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgiCisjaW1w
b3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+CisjaW1w
b3J0IDxXZWJLaXQvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaD4KKyNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
IHsKKyAgICAKK1RFU1QoV2ViS2l0MiwgUmVxZXN0QWN0aXZhdGVkRWxlbWVudEluZm9Gb3JMaW5r
KQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcg
bG9hZEhUTUxTdHJpbmc6QCI8aHRtbD48aGVhZD48bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVu
dD0naW5pdGlhbC1zY2FsZT0xJz48L2hlYWQ+PGJvZHkgc3R5bGUgPSAnbWFyZ2luOiAwcHg7Jz48
YSBocmVmPSd0ZXN0VVJMLnRlc3QnIHN0eWxlPSdkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAxMDAl
OycgdGl0bGU9J0hpdFRlc3RMaW5rVGl0bGUnIGlkPSd0ZXN0SUQnPjwvYT48L2JvZHk+PC9odG1s
PiIgYmFzZVVSTDpuaWxdOworICAgIFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZp
Z2F0aW9uXTsKKyAgICB3ZWJWaWV3LmdldCgpLnNjcm9sbFZpZXcuY29udGVudE9mZnNldCA9IENH
UG9pbnRNYWtlKDAsIDUwKTsKKyAgICB3ZWJWaWV3LmdldCgpLnNjcm9sbFZpZXcuem9vbVNjYWxl
ID0gMi4wOworICAgIAorICAgIF9fYmxvY2sgYm9vbCBmaW5pc2hlZCA9IGZhbHNlOworICAgIFt3
ZWJWaWV3IF9yZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2UoNTAs
IDUwKSBjb21wbGV0aW9uQmxvY2s6IF4oX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKmVsZW1lbnRJ
bmZvKSB7CisgICAgICAgIAorICAgICAgICBFWFBFQ1RfVFJVRShlbGVtZW50SW5mby50eXBlID09
IF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlTGluayk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtlbGVt
ZW50SW5mby5VUkwuYWJzb2x1dGVTdHJpbmcgaXNFcXVhbDpAInRlc3RVUkwudGVzdCJdKTsKKyAg
ICAgICAgRVhQRUNUX1RSVUUoW2VsZW1lbnRJbmZvLnRpdGxlIGlzRXF1YWw6QCJIaXRUZXN0TGlu
a1RpdGxlIl0pOworICAgICAgICBFWFBFQ1RfVFJVRShbZWxlbWVudEluZm8uSUQgaXNFcXVhbDpA
InRlc3RJRCJdKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoZWxlbWVudEluZm8uaW1hZ2UgIT0gbmls
KTsKKyAgICAgICAgRVhQRUNUX0VRKGVsZW1lbnRJbmZvLmJvdW5kaW5nUmVjdC5zaXplLndpZHRo
LCAzMjApOworICAgICAgICBFWFBFQ1RfRVEoZWxlbWVudEluZm8uYm91bmRpbmdSZWN0LnNpemUu
aGVpZ2h0LCA1MDApOworICAgICAgICBFWFBFQ1RfRVEoZWxlbWVudEluZm8uaW1hZ2Uuc2l6ZS53
aWR0aCwgMzIwKTsKKyAgICAgICAgRVhQRUNUX0VRKGVsZW1lbnRJbmZvLmltYWdlLnNpemUuaGVp
Z2h0LCA1MDApOworICAgICAgICAKKyAgICAgICAgZmluaXNoZWQgPSB0cnVlOworICAgIH1dOwor
ICAgIAorICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQpOworfQorICAgIAor
VEVTVChXZWJLaXQyLCBSZXFlc3RBY3RpdmF0ZWRFbGVtZW50SW5mb0ZvckJsYW5rKQoreworICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgbG9hZEhUTUxT
dHJpbmc6QCI8aHRtbD48aGVhZD48bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0naW5pdGlh
bC1zY2FsZT0xJz48L2hlYWQ+PGJvZHkgc3R5bGUgPSAnbWFyZ2luOiAwcHg7Jz48L2JvZHk+PC9o
dG1sPiIgYmFzZVVSTDpuaWxdOworICAgIFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hO
YXZpZ2F0aW9uXTsKKyAgICB3ZWJWaWV3LmdldCgpLnNjcm9sbFZpZXcuY29udGVudE9mZnNldCA9
IENHUG9pbnRNYWtlKDAsIDUwKTsKKyAgICB3ZWJWaWV3LmdldCgpLnNjcm9sbFZpZXcuem9vbVNj
YWxlID0gMi4wOworICAgIAorICAgIF9fYmxvY2sgYm9vbCBmaW5pc2hlZCA9IGZhbHNlOworICAg
IFt3ZWJWaWV3IF9yZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2Uo
NTAsIDUwKSBjb21wbGV0aW9uQmxvY2s6IF4oX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKmVsZW1l
bnRJbmZvKSB7CisgICAgICAgIAorICAgICAgICBFWFBFQ1RfVFJVRShlbGVtZW50SW5mby50eXBl
ID09IF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlVW5zcGVjaWZpZWQpOworICAgICAgICBFWFBFQ1Rf
RVEoZWxlbWVudEluZm8uYm91bmRpbmdSZWN0LnNpemUud2lkdGgsIDMyMCk7CisgICAgICAgIEVY
UEVDVF9FUShlbGVtZW50SW5mby5ib3VuZGluZ1JlY3Quc2l6ZS5oZWlnaHQsIDUwMCk7CisgICAg
ICAgIAorICAgICAgICBmaW5pc2hlZCA9IHRydWU7CisgICAgfV07CisgICAgCisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7Cit9CisgICAgCit9CisKKyNlbmRpZgo=
</data>
<flag name="review"
          id="335252"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>